//pag;l1;c1;l2;c2;desc;borda;preget;posget;preinc;posinc
 1; 3; 5;23;75;Informacoes do Receituario;;;;;
:SKEL
COMANDO ANTES M_MDATARECEI = IF(X_OPERACAO=1.AND.DAY(M_MDATARECEI)=0,DATE(),M_MDATARECEI)
COMANDO ANTES M_MDATA = IF(X_OPERACAO=1.AND.DAY(M_MDATA)=0,DATE(),M_MDATA)

COMANDO ANTES M_TIPOOPER = "3"
COMANDO ANTES zsele = Select()
COMANDO ANTES znil = if(select("SE_PROD")=0,ABRA_ARQ("SE_PROD"),"")
COMANDO ANTES znil = if(select("VB_CRM")=0,ABRA ("0",r_siga,"vb_crm","vb_crm","vb_crmC","CRM","vb_crmn","medico"),"")
COMANDO ANTES znil = if(select("VB_PCOMP")=0,ABRA ("0",r_siga,"vb_pcomp","vb_pcomp","vb_pcomp","comprador"),"")
COMANDO ANTES DBSELECTarea(zsele)

VARIAVEL zCrLf = ";"

VARIAVEL zTipRecs = padc('Os tipos de Receita Validos sao:',50)+zCrLf+padr('1-Receita Branca de Controle Especial em 2 vias',50)+zCrLf
VARIAVEL zTipRecs = zTipRecs+padr('2-Receita B (Notificacao Azul)',50)+zCrLf+padr('3-Receita Especial (Notificacao Branca)',50)+zCrLf+padr('4-Receita A (Notificacao Amarela)',50)
VARIAVEL z_blkTipRec=_CreateBlock("zOk:=(M_tipRECEITA>=1.and.M_tipRECEITA<=4),zNil:=if(zOk,'',Alert(zTipRecs,,'R/W')),zOk")
VARIAVEL z_blkLote=_CreateBlock("alert( m_plote+str(m_pcod)+str(m_mquant,6) ), zxpLote:=m_plote, Lotes('PEDE_LOTE_A_SAIR',m_pcod,ctod(''),@zxplote,m_mquant,'S'), zxpLote<>spac(10)")

VARIAVEL zTipUso = 'Uso Invalido!;Informe um dos seguintes:;1-Humano 2-Veterinario'
VARIAVEL z_blTipUso=_CreateBlock("zOk:=(str(M_usomedic,1)$'/1/2/'),zNil:=if(zOk,'',Alert(zTipUso,,'R/W')),zOk")

VARIAVEL zTipCons = 'Conselho Invalido!;Informe um dos seguintes:;CRM-Medicina CRO-Odontologia CRMV-Veterinaria'
VARIAVEL z_blTipCons=_CreateBlock("zOk:=(M_crm_cro$'/CRM /CRO /CRMV/'),zNil:=if(zOk,'',Alert(zTipCons,,'R/W')),zOk")

VARIAVEL z_blkPregMs=_CreateBlock("M_PREGMS:=se_prod->pregms,.f.")

VARIAVEL zTipIDs = 'Tipo de Documento Invalido!;Informe um dos seguintes:;'
VARIAVEL zTipIDs = zTipIDs+'1-Carteira Trabalho;2-RG-Carteira de Identidade;5-Certidao de Nascimento;6-Certidao Casamento;'
VARIAVEL zTipIDs = zTipIDs+'7-Reservista;13-Passaporte;50-Carteira Trabalho e Prev.Social;'
VARIAVEL z_blTipId =_CreateBlock("zOk:=(str(M_TIPOID,2)$'/ 1/ 2/ 4/ 5/ 6/ 7/40/13/14/20/21/22/50/'),zNil:=if(zOk,'',Alert(zTipIDs,,'R/W')),zOk")

VARIAVEL zOrgExp = 'Orgao Expedidor Invalido!;Informe um dos seguintes:;'
VARIAVEL zOrgExp = zOrgExp+' SSP PM DPF DIC CFP COREN CFN CRM CRA CRE CREA CRF OAB CBM CRO CRB CRN CRC CRP CRQ CRMV SESP SJS SJTC DGPC DFP IDAMP'
VARIAVEL zOrgExp = zOrgExp+' CFE CRCI IPF ANVISA GOVEST PREF CRBM CREFITO MTE CRFA CORECON DGPC IDAMP IFP IN JUNTA MAER MEX MM SEJSP SES VACIV VAMEN ITB MRE SSIPT '
VARIAVEL z_blOrgExp = _CreateBlock("zOk:=(' '+Alltrim(M_ORGAOEXPED)+' '$zOrgExp),zNil:=if(zOk,'',Alert(zOrgExp,,'R/W')),zOk")

VARIAVEL zUfs = 'UF Invalida!;Informe uma dos seguintes:;'
VARIAVEL zUfs = zUfs+' AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO '
VARIAVEL z_bl1Ufs = _CreateBlock("zOk:=(' '+Alltrim(m_UF)+' '$zUfs),zNil:=if(zOk,'',Alert(zUfs,,'R/W')),zOk")
VARIAVEL z_bl2Ufs = _CreateBlock("zOk:=(' '+Alltrim(m_UFEXPED)+' '$zUfs),zNil:=if(zOk,'',Alert(zUfs,,'R/W')),zOk")

VARIAVEL zbl0Med=_CreateBlock("m_medico:=if(empty(m_medico),vb_crm->medico,m_medico),.t.")
VARIAVEL zbl0Uf=_CreateBlock("m_UF:=if(empty(m_UF),vb_crm->UF,m_UF),.t.")
VARIAVEL zbl0Crm=_CreateBlock("m_crm_cro:=if(empty(m_crm_cro),vb_crm->crm_cro,m_crm_cro),.t.")

VARIAVEL zbl1oe=_CreateBlock("m_ORGAOEXPED:=if(empty(m_ORGAOEXPED),vb_pcomp->ORGAOEXPED,m_ORGAOEXPED),.t.")
VARIAVEL zbl1nd=_CreateBlock("m_NUMERODOC:=if(empty(m_NUMERODOC),vb_pcomp->cr_rg,m_NUMERODOC),.t.")
VARIAVEL zbl1uf=_CreateBlock("m_UFEXPED:=if(empty(m_UFEXPED),vb_pcomp->UFEXPED,m_UFEXPED),.t.")
VARIAVEL zbl1Tid=_CreateBlock("m_TIPOID:=if(empty(m_TIPOID),vb_pcomp->TIPOID,m_TIPOID),.t.")

*- Os comandos seguintes nao sao executados com getscreen(5)... estao ai apenas para o caso de um tb_alter() direto
COMANDO DEPOIS zFgCrm_Mudado = vb_crm->( m_medico<>medico .or. m_uf<>uf .or. m_crm_cro<>crm_cro )
COMANDO DEPOIS zFgComp_Mudado = vb_pcomp->( m_TIPOID<>TIPOID .or. m_ORGAOEXPED<>ORGAOEXPED .or. m_NUMERODOC<>CR_RG .or. m_UFEXPED<>UFEXPED )

COMANDO DEPOIS znil = if(zFgCrm_Mudado ,vb_crm->( RegLock()) ,"")
COMANDO DEPOIS znil = vb_crm->( if(zFgCrm_Mudado.and.m_medico<>medico, put_var("medico",m_medico) ,""))
COMANDO DEPOIS znil = vb_crm->( if(zFgCrm_Mudado.and.m_uf<>uf,put_var("uf",m_uf) ,""))
COMANDO DEPOIS znil = vb_crm->( if(zFgCrm_Mudado.and.m_crm_cro<>crm_cro,put_var("crm_cro",m_crm_cro) ,""))
COMANDO DEPOIS znil = if(zFgCrm_Mudado ,vb_crm->( DbCommit()) ,"")

COMANDO DEPOIS znil = if(zFgComp_Mudado , vb_pcomp->( RegLock()) ,"")
COMANDO DEPOIS znil = vb_pcomp->( if(zFgComp_Mudado.and.m_TIPOID<>TIPOID,put_var("TIPOID",m_TIPOID) ,""))
COMANDO DEPOIS znil = vb_pcomp->( if(zFgComp_Mudado.and.m_ORGAOEXPED<>ORGAOEXPED,put_var("ORGAOEXPED",m_ORGAOEXPED) ,""))
COMANDO DEPOIS znil = vb_pcomp->( if(zFgComp_Mudado.and.m_NUMERODOC<>CR_RG,put_var("CR_RG",m_NUMERODOC) ,""))
COMANDO DEPOIS znil = vb_pcomp->( if(zFgComp_Mudado.and.m_UFEXPED<>UFEXPED,put_var("UFEXPED",m_UFEXPED) ,""))
COMANDO DEPOIS znil = if(zFgComp_Mudado , vb_pcomp->( DbCommit()) ,"")

//COMANDO SAIDA ZNIL = IF(SELECT("SE_PROD")>0,SE_PROD->(dBCLOSEAREA()),"")
//COMANDO SAIDA ZNIL = IF(SELECT("VB_CRM")>0,VB_CRM->(dBCLOSEAREA()),"")
// 1;17; 2;Numero do Lote...........:;C;10;PLOTE;@!10;;evaL(z_blkLote);;;N;; 0; 0;;;
:TFIE
//pag;l;c;desc;tipo;tam;campo;pict;when;valid;dbname;objcons;chave?;seek?;le;ce;cexib;pictexib
 1; 1; 2;Codigo:;N; 6;PCOD;999999;;psq_brow;se_prod;PSEPROD;N;S; 0; 0;;;
 1; 1;20;Cupom:;N; 6;FNUMPED;999999;.f.;;;;N;; 0; 0;;;
 1; 1;37;Registro MS:;C;17;PREGMS;9.9999.9999.999-9;eval(z_blkPregMs);;;;N;; 0; 0;;;

 1; 2; 2;Paciente.................:;C;30;paciente;@!30;;Lastkey()=5.or.psq_brow;vb_pac;PVBPAC;N;S; 0; 0;;;
 1; 3; 2;Tipo de Receita..........:;N;1;tipRECEITA;9;;eval(z_blkTipRec);;;N;; 0; 0;;;
 1; 4; 2;Tipo de Operacao.........:;C; 1;TIPOOPER;!;.F.;;;;N;; 0; 0;;;
 1; 5; 2;Uso do Medicamento.......:;N; 1;USOMEDIC;9;;eval(z_blTipUso);;;N;; 0; 0;;;
 1; 6; 2;Numero da Receita........:;C;10;numRECEITA;@!10;;;;;N;; 0; 0;;;
 1; 7; 2;Data da Receita..........:;D; 8;MDATARECEI;;;;;;N;; 0; 0;;;
 1; 8; 2;CRM do Prescritor........:;C;10;CRM;@!10;;psq_brow;vb_crm;pvbcrm;N;S; 0; 0;;;
 1; 9; 2;.   Nome do Prescritor...:;C;30;medico;@!30;eval(zbl0Med);;;;N;; 0; 0;;;
 1;10; 2;.   UF do Prescritor.....:;C; 2;UF;!!;eval(zbl0Uf);eval(z_bl1Ufs);;;N;; 0; 0;;;
 1;11; 2;.   Conselho Prescritor..:;C; 4;crm_cro;!!!!;eval(zbl0Crm);eval(z_blTipCons);;;N;; 0; 0;;;
 1;12; 2;Nome do Comprador........:;C;30;COMPRADOR;@!30;;psq_brow;vb_pcomp;pvbpcomp;N;S; 0; 0;;;
 1;13; 2;.   Tipo de Identificacao:;N; 2;TIPOID;99;eval(zbl1Tid);eval(z_blTipId);;;N;; 0; 0;;;
 1;14; 2;.   Orgao Expedidor......:;C; 7;ORGAOEXPED;@!7;eval(zbl1oe);eval(z_blOrgExp);;;N;; 0; 0;;;
 1;15; 2;.   Numero Identificacao.:;C;13;NUMERODOC;@!13;eval(zbl1nd);;;;N;; 0; 0;;;
 1;16; 2;.   UF do Orgao Expedidor:;C; 2;UFEXPED;!!;eval(zbl1uf);eval(z_bl2Ufs);;;N;; 0; 0;;;
 1;17; 2;Posologia................:;N; 4;posologia;9999;;;;;N;; 0; 0;;;
 1;18; 2;Quantidade Saida.........:;N; 6;MQUANT;999999;;m_MQUANT>0;;;N;; 0; 0;;;
 1;19; 2;Data da Saida............:;D; 8;MDATA;;;;;;N;; 0; 0;;;
