;** RCargaF ****** *************************************************************
;*  Alteracao e Inclusao de Faturas p/ Carregamento                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 07/10/2003 por Karen Lauar Nery
;Ultima Alteracao: 24/10/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes rcmsgf
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 11/05/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Busca_Lookup "Numero do Documento"
;Ultima Alteracao: 15/10/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Edita_Memo
;Ultima Alteracao: 30/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 06/01/2011 por Bruno Carvalho
;Motivo Alteracao: Adicionado Etiqueta "Modelo 2"
;Ultima Alteracao: 07/02/2011 por Bruno Carvalho
;Motivo Alteracao: Adicionado Etiqueta "Modelo 3"
;Ultima Alteracao: 15/06/2011 por Bruno Carvalho (Pedido por H.)
;Motivo Alteracao: Adicionado Modelo "J" (8,9 x 2,4) 
;Ultima Alteracao: 03/02/2012 por Karina Andrade
;Motivo Alteracao: Adicionado Modelo CP_0199
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes LimpaRodape()    
;Ultima Alteracao: 16/04/2015 por Andrey Fillipe
;Motivo Alteracao: Add Modelo K-Etiquetas/T‚rmica 2 #0298#
;Ultima Alteracao: 07/05/2015 por Bruno Carvalho
;Motivo Alteracao: Ajustado Modelo I "CARREG14"
;Ultima Alteracao: 20/11/2015 por Andrey Fillipe
;Motivo Alteracao: Ajustes na forma de exibicao das opcoes de impressao
;Motivo Alteracao: Adicionado Modelo "C" (8,9 x 2,4)
;Ultima Alteracao: 16/06/2016 por Bruno Carvalho 
;Motivo Alteracao: Ajustado {Ask} FaturaCC p/ Endereco de Cobranca
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Selecao()  
;Ultima Alteracao: 25/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SelecaoImprimir() Lista rela‡Æo de relatorios
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 17/02/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo "L" para impressora t‚rmica -> 10,0 x  5,0
;Ultima Alteracao: 05/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado modelo "M" para impressora t‚rmica ->  9,9 x  3,9
;Ultima Alteracao: 05/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado modelo "M" para impressora t‚rmica ->  9,9 x  3,9
;Ultima Alteracao: 07/07/2017 por Rafael Matos
;Motivo Alteracao: Adicionado modelo "O" para impressora t‚rmica -> 10,0 x  4,0
;Ultima Alteracao: 11/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes c¢cigos modelo de relatorios
;Ultima Alteracao: 22/09/2017 por Bruno Carvalho
;Motivo Alteracao: alterado dmsg = "FAT" p/ dmsg = "RcF"
;Ultima Alteracao: 13/04/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 10
;Ultima Alteracao: 18/04/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes SELECIONA8() -> P/ pegar dados de cobran‡a tamb‚m no BAIRRO/CEP/CIDADE/UF  
;Ultima Alteracao: 05/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo "04P" -> Diferencia do modelo "04L" por nÆo ter na etiqueta Endere‡o, Cidade e CEP 
;                  e a impressÆo ‚ conforme volumes e nÆo n§ de c¢pias que ‚ impresso neste modelo "04L"
;Alterado em     : 17/08/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes dupnf codigo do documento,Tipo do Documento
;Ultima Alteracao: 03/10/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo "04Q" p/ impressora t‚rmica -> 11,0 x  7,0
;Ultima Alteracao: 04/10/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo para escolher transportador na sele‡Æo "F6"
;Ultima Alteracao: 18/10/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes sele‡Æo data emissao/saida      
;Ultima Alteracao: 31/10/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes descri‡Æo modelos etiquetas,relatorios
;Ultima Alteracao: 18/01/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo 04R ("EV_0343A"), copia do modelo 04M 
;Ultima Alteracao: 10/02/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes de padroniza‡Æo nos campos [TG_CIDADE] e [TG_ESTADO]

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  Moveto [Sequencia]
  End
  CODIGO=[Sequencia]
  Down
  CODIGO=CODIGO+1
  [Sequencia]=CODIGO

  SetaCorRegistro("Editar")
  While true

  TECLA=""
  AguardaTeclasPadrao()                           
             
      If Retval=-33
         Then
           ShowPopup " Fun‡”es " CENTERED
            "C~o~rreios       [F2]": " Exportar dados p/ Sistema do Correio" : "F2",
            "~I~mprimir       [F4]": " Imprimir rela‡„o"                     : "F4",
            "~L~impar         [F5]": " Limpar rela‡„o"                       : "F5",
            "~S~ele‡„o        [F6]": " Selecionar OF's por criterio"         : "F6",
            "~N~§Carregamento [F8]": " Batizar N§Carregamento"               : "F8",
            "O~b~serva‡„o     [F9]": " Observa‡„o Relatorio Carregamento II" : "F9",
            "~C~ancelar"           : " Cancelar a Opera‡„o"                  : "CANCELAR"
           EndMenu
            To MenuVar
           echo off

           If MenuVar="CANCELAR" or MenuVar="Esc"
               Then Loop
           EndIf
           RetVal=MenuVar
      EndIf

  Switch
      Case RetVal="F3": SemFicha()
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F5":
           If QuerExcluir("desta rela‡„o")
              Then EXCLUSAO()
                   QuitLoop
           EndIf
      Case RetVal="F8":
           Del
           Selecao3()
           QuitLoop
      Case RetVal="F9":
           Del
           Observacao()
           QuitLoop
      Case RetVal="F4":
           Del
           SelecaoImprimir()
           QuitLoop    
      Case RetVal="F2":
           Del
           Selecao2()
           QuitLoop
      Case RetVal="F6":
           Del
           Selecao()
           QuitLoop
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME" And Field()="Sequencia":
           While True
             PAGINA("RCargaF","MR")
             If EDITAR="S"
                Then CHAVE=0
                     Controla_EdicaoC()
                Else If EXCLUIR="S"
                        Then If QuerExcluir("")
                                Then Del
                                Else UnLockRecord
                             EndIf
                        Else QuitLoop
                     EndIf
             EndIf
             SetaPosForm()
           EndWhile
           QuitLoop
      Case Retval="ESC":
           CHAVE=9
           Del
           Return
      Case Retval="ENTER":
           If IsBlank([])
              Then Loop
           EndIf
           CODIGO=[]
           Del
           Locate CODIGO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End Down
                   [Sequencia]=CODIGO
           EndIf
           If IsLockRecord()
              Then QuitLoop
              Else Return
           EndIf
      EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITAC()

Moveto [Numero da OF]
While True

      TECLA=" Esc=Retornar  " 

      If Field()="Numero da OF" Or
         Field()="Codigo do Documento"
         Then TECLA=TECLA+"F1=Tabelas  "
      EndIf

      If CHAVE=0
         Then TECLA=TECLA+"Del=Excluir  "
      EndIf
      

      Prompt TECLA
      
      Wait Field
           Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1"

      Switch

      Case Retval="F1":
           If Field()="Numero da OF"
              Then If CONSULTAF1()
                      Then If Busca_Lookup("Numero da OF",[Numero da OF],"SM")
                              Then [Numero do Documento]=REG_BUSCA_LOOKUP["Numero Nota Gerada"]
                           EndIf
                   EndIf                 
           EndIf
           If Field()="Codigo do Documento"
              Then CONSULTAF1()
           EndIf
      Case Retval="ESC":
           Switch
             Case Field()="Numero da OF":
                   If QuerDesfazer("")
                      Then If CHAVE=1
                              Then Del
                              Else Undo
                           EndIf
                           CHAVE=9
                           QuitLoop
                   Endif
             Case Field()="Codigo do Documento":
                  Moveto [Numero da OF]
             OtherWise: Left
           EndSwitch
      Case Retval="ENTER":
           Switch
             Case Field()="Numero da OF":
                  If IsBlank([])
                     Then Loop
                     Else If Field()="Numero da OF"
                              Then If Busca_Lookup("Numero da OF",[Numero da OF],"SM")
                                      Then [Numero do Documento]=REG_BUSCA_LOOKUP["Numero Nota Gerada"]
                                   EndIf
                          EndIf   
                  Moveto [Codigo do Documento]  
                  EndIf
             Case Field()="NCopias":
                  If IsBlank([])
                     Then []=1
                  EndIf
                  QuitLoop
             Case Field()="Numero do Documento":
                  If IsBlank([]) 
                     Then Moveto [Numero da OF]
                          If Field()="Numero da OF"
                             Then If Busca_Lookup("Numero da OF",[Numero da OF],"SM")
                                     Then [Numero do Documento]=REG_BUSCA_LOOKUP["Numero Nota Gerada"]
                                  EndIf
                          EndIf 
                          Moveto [NCopias]
                  Else Moveto [NCopias]
                  EndIf
             OtherWise: Right
           EndSwitch
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="DEL":
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Del
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina De Exclusao                                                          *
;***************************************************+***************************
Proc EXCLUSAO()
Home
While RecordStatus("New")=False
  Del
EndWhile

FormKey
{TableAdd} {rcmsgf}
While RecordStatus("New")=False
  Del
EndWhile

Do_It!
ClearImage

Moveto "RcargaF"
CoEditKey
FormKey

EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""

If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case OP_SHOW="Selecao":
              Switch
                Case Campo="TG_EMPRESA"       : Campo="NO"
                Case Campo="TG_REPRESEN"      : Campo="TG_EMPRESA"
                Case Campo="TG_TRANSP"        : Campo="TG_REPRESEN"
                Case Campo="TG_CIDADE"        : Campo="TG_TRANSP"
                Case Campo="TG_ESTADO"        : Campo="TG_CIDADE"
                Case Campo="TG_NCARREG"       : 
                     If Upper(VSDGCIDADE)="TODAS"
                        Then Campo="TG_ESTADO"
                        Else Campo="TG_CIDADE"
                     EndIf
                Case Campo="TG_OPDTES"        : Campo="TG_NCARREG"
                Case Campo="TG_DTINI"         : Campo="TG_OPDTES"
                Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
                Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
              EndSwitch
            Case OP_SHOW="Correio":
              Switch
                Case Campo="TG_CONTRATO"      : Campo="NO"
                Case Campo="TG_SERVECT"       : Campo="TG_CONTRATO"
                Case Campo="YES" Or Campo="NO": Campo="TG_CONTRATO"
              EndSwitch
            Case OP_SHOW="Carregamento":
              Switch
                Case Campo="TG_NCARREG"  :Campo="NO"
                Case Campo="YES" Or Campo="NO": Campo="TG_NCARREG"
              EndSwitch
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case OP_SHOW="Selecao":
                      Switch
                        Case Campo="TG_EMPRESA" : Campo="TG_REPRESEN"
                        Case Campo="TG_REPRESEN": Campo="TG_TRANSP"
                        Case Campo="TG_TRANSP"  : Campo="TG_CIDADE"
                        Case Campo="TG_CIDADE"  :   
                             If Upper(VSDGCIDADE)="TODAS"
                                Then Campo="TG_ESTADO"
                                Else VSDGESTADO    =""
                                     VSDGNOMESTADO ="TODOS"
                                     Campo="TG_NCARREG"
                             EndIf   
                        Case Campo="TG_ESTADO"  : Campo="TG_NCARREG"
                        Case Campo="TG_NCARREG" : Campo="TG_OPDTES"
                        Case Campo="TG_OPDTES"  : Campo="TG_DTINI"
                        Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                        Case Campo="TG_DTFIM"   : Campo="YES"
                      EndSwitch
                    Case OP_SHOW="Correio":
                      Switch
                        Case Campo="TG_CONTRATO" :Campo="TG_SERVECT"
                        Case Campo="TG_SERVECT"  :Campo="YES"
                      EndSwitch
                    Case OP_SHOW="Carregamento":
                      Switch
                        Case Campo="TG_NCARREG"  :Campo="YES"
                      EndSwitch
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_DTFIM":
     MSG_CAMPO="Informe a Data Final"
  Case Campo="TG_CONTRATO":
     MSG_CAMPO="Informe o Contrato com os Correios"
  Case Campo="TG_SERVECT":
     MSG_CAMPO="Informe o Servico contratado"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao()
LimpAguarde()
Do_It!
ClearAll
Echo Normal
Echo Off

While True
  OP_SHOW="Selecao"

  ShowDialog "Sele‡Æo de OFïs" Proc "SD_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","ENTER","ESC","TAB"
     @ 05,12   Height 15 Width 72

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Representante"  For "TG_REPRESEN"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN" To VSDGREPRESEN
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMREPR"  To VSDGNOMREPR

    Label  @ 04,00 "Transportador"  For "TG_TRANSP"
    Accept @ 05,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_TRANSP" To VSDGTRANSP
    Accept @ 05,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMTRANSP"  To VSDGNOMTRANSP
    
    Label  @ 06,00 "Cidade"  For "TG_CIDADE"
    Accept @ 07,01 Width 27 "A20"  Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE
                                   
    Label  @ 06,27 "Estado"  For "TG_ESTADO"
    Accept @ 07,28 Width 06 "A2"  Picture "!*!" Tag "TG_ESTADO" To VSDGESTADO
    
    Label  @ 08,00 "Carregamento" For "TG_NCARREG"
    Accept @ 09,01 Width 9  "A6"  Picture "[&,#][#*#]" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 90,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Label  @ 00,35 "Op‡äes de Datas" For "TG_OPDTES"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2"  Tag "TG_OPDTES" To VSDGOPDTES
    Accept @ 01,44 Width 25 "A18" Picture "!*!"  Tag "TG_NOMOPDTES" To VSDGNOMOPDTES

    Label  @ 02,35 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 03,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 03,51 "at‚" For "TG_DTFIM"
    Accept @ 03,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Pushbutton @ 11,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 11,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
   
  If Not RetVal Then QuitLoop EndIf
  
  If Upper(VSDGCIDADE)<>"TODAS" And VSDGESTADO<>""
     Then Mensagem("Selecione apenas 1 op‡„o Cidade ou Estado !")
          Loop     
  EndIf            
  LimpaRodape(0)
  Aguarde("Aguarde, Selecionando registros")
  ClearAll
  
  {Ask} {FaturaC} Check
  Moveto [Codigo da Empresa       ] TypeIn "~VSDGEMPRESA.."
  If Upper(VSDGCIDADE)<>"TODAS"
     Then Moveto [Cidade          ] TypeIn "~VSDGCIDADE"
  EndIf
  Moveto [UF                      ] TypeIn "~VSDGESTADO.."
  Switch
   Case VSDGOPDTES="1" : Moveto [Data de Emissao ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
   Case VSDGOPDTES="2" : Moveto [Data de Saida   ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
  EndSwitch
  Moveto [Codigo do Representante ] TypeIn "~VSDGREPRESEN.."
  Moveto [Descricao CondPagto     ] TypeIn "Not CONTRA APRES.."
  Moveto [Numero_Carregamento     ] TypeIn "~VSDGNCARREG.."
  Moveto [Codigo da Transportadora] TypeIn "~VSDGTRANSP.."
  Do_It!
  ClearAll
  If IsEmpty("Answer")
     Then Mensagem("N„o exitem registros conforme sele‡„o !")
          Loop
     Else View "RCargaF"
          Coedit "Answer"
          Scan
          Moveto "RCargaF"
          End
          SEQ=[Sequencia]
          Down
          [Numero do Documento]=[Answer->Numero Nota Gerada]
          [Sequencia          ]=SEQ+1
          [Codigo da Empresa  ]=[Answer->Codigo da Empresa ]
          [Numero da OF       ]=[Answer->Numero da OF      ]
          [Data de Emissao    ]=[Answer->Data de Emissao   ]
          [Codigo             ]=[Answer->Codigo            ]
          [NCopias            ]=1
          SEQ                  =[Sequencia                 ]

          UnLockRecord
          Moveto "Answer"
          EndScan
          Do_It!
          ClearAll

          QuitLoop
  EndIf
EndWhile
ClearAll
If IsTable("Answer")
   Then Delete "Answer"
EndIf
CoEdit "RCargaF"
PickForm "F"

EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao2()
LimpAguarde()
Do_It!
ClearAll
Echo Off

VSDGCONTRATO    =""
VSDGDESCCONTRATO=""
VSDGSERVECT     =""
VSDGDESCSERVECT =""

OP_SHOW="Correio"
ShowDialog "Referenciar Servi‡o do Contrato com os Correios" Proc "SD_Dialog"
 Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB"
   @ 05,01   Height 09 Width 72

    Label  @ 00,00 "Contrato"  For "TG_CONTRATO"
    Accept @ 01,01 Width 13 "A10"  Picture "#*#" Tag "TG_CONTRATO"    To VSDGCONTRATO
    Accept @ 01,15 Width 53 "A50"  Picture "!*!" Tag "TG_DESCCONTRATO" To VSDGDESCCONTRATO

    Label  @ 02,00 "Servi‡o"  For "TG_SERVECT"
    Accept @ 03,06 Width 08 "A5"  Picture "!*!" Tag "TG_SERVECT"     To VSDGSERVECT
    Accept @ 03,15 Width 53 "A50" Picture "!*!" Tag "TG_DESCSERVECT" To VSDGDESCSERVECT

    Pushbutton @ 05,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 05,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

EndDialog

If RetVal
   Then LimpaRodape(0)
        Do_It!
        ClearAll
        Play "Correios"
EndIf
ClearAll
CoEdit "RCargaF"
PickForm "F"

EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao3()
LimpAguarde()
Do_It!
ClearAll
Echo Off

VSDGNCARREG=""

OP_SHOW="Carregamento"
While True
 ShowDialog "Batizar OF's com Carregamento ?" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
   Key "F1","ENTER","ESC","TAB"
    @ 05,01   Height 07 Width 72

    Label  @ 00,00 "Carregamento" For "TG_NCARREG"
    Accept @ 01,01 Width 9  "A6"  Picture "#*#" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Pushbutton @ 03,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 03,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

 EndDialog
 If RetVal
    Then If Not IsBlank(VSDGNCARREG)
            Then AtualizaCarreg()
            Else Mensagem("Carregamento invalido !")
                 Loop
         EndIf
 EndIf
 QuitLoop
EndWhile
ClearAll
CoEdit "RCargaF"
PickForm "F"

EndProc

;*******************************************************************************
;* Seleciona NF para impressao																								 *
;*******************************************************************************
Proc SELECIONA()
{Ask} {RCargaF}
Moveto [Sequencia   ] Check
Moveto [Numero da OF] Example "NUM"
{Ask} {FaturaI} Check
Moveto [Numero da OF] Example "NUM"
Do_It!
Moveto "Answer"
ClearAll
EndProc

;*******************************************************************************
;* Seleciona NF  para impressao
;*******************************************************************************
Proc SELECIONA2()
{Ask} {RCargaF}
Moveto [Numero da OF] Example "NUM"
{Ask} {FaturaC} Check
Moveto [Numero da OF] Example "NUM"
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Seleciona NF para impressao                                            *
;*******************************************************************************
Proc SELECIONA3() 
{Ask} {RCargaF} Check
Moveto [Numero da OF] Example "NUM"
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Seleciona NF para impressao                                                 *
;*******************************************************************************
Proc SELECIONA4()
{Ask} {RCargaF}
Moveto [Numero da OF      ] Example "NUM"
{Ask} {FaturaC} Check
Moveto [Numero da OF      ] Example "NUM"
{Ask} {FaturaI} Check
Moveto [Numero da OF      ] Example "NUM"
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Seleciona NF para impressao                                            *
;*******************************************************************************
Proc SELECIONA5()
{Ask} {RCargaF}
Moveto [Sequencia   ] Check
Moveto [Numero da OF] Example "NUM"
{Ask} {FaturaC}
Moveto [Numero da OF           ] Example "NUM"
Moveto [Numero Ordem de Volumes] TypeIn "Not Blank"
{Ask} {FaturaI} Check
Moveto [Numero da OF] Example "NUM"
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc SELECIONA6()
ClearAll

{Ask} {RCargaF}
Moveto [Numero da OF           ] Example "NUM"
{Ask} {FaturaC}
Moveto [Numero da OF           ] Example "NUM"
Moveto [Codigo                 ] Check Example "cod"
Moveto [Descricao CondPagto    ] TypeIn "Not CONTRA APRES.."
Moveto [Origem do Pedido       ] TypeIn "Not BALCAO"
Moveto [Numero Ordem de Volumes] TypeIn "Not Blank"
{Ask} {FaturaI} Check
Moveto [Numero da OF           ] Example "NUM"

Do_It!
ClearAll

If Not IsEmpty("Answer")
   Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_0365" "1" "Answer" "R"

        Empty("RM_0365a")

        View "Rm_0365a"
        View "FaturaV"
        CoEdit "Answer"
        NOF="****"
        Scan
           If [Numero da OF]<>NOF
              Then NOF=[Numero da OF]
                   Moveto "FaturaV"
                   Moveto [Numero da OF]
                   Locate [Answer->Numero da OF]
                   If RetVal
                      Then i=0
                           Moveto "Rm_0365a"
                           End Down
                           [Numero da OF] = [Answer->Numero da OF]
                           While [Numero da OF] = [Answer->Numero da OF]
                             i=i+1
                             Moveto "Rm_0365a"
                             Execute "[Valor Vencimento " + StrVal(I) +       "] = [FaturaV->Valor]"
                             Execute "[Numero Dias Vencimento " + StrVal(I) + "] = [FaturaV->Numero de Dias]"
                             Execute "[Data Vencimento " + StrVal(I) +        "] = [FaturaV->Data]"

                             Moveto "FaturaV"
                             Skip
                             If EOT()
                                Then QuitLoop
                             Endif
                           EndWhile
                   Endif
                   Moveto "Answer"
           EndIf

        EndScan
        Do_It!
        ClearAll
EndIf
EndProc

;*******************************************************************************
;* Seleciona NF para impressao                                            *
;*******************************************************************************
Proc SELECIONA7()

{Ask} {RCargaF} Check
Moveto [Numero da OF      ] Example "NUM"
{Ask} {FaturaC}
Moveto [Numero da OF      ] Example "NUM"
Moveto [Forma de Pagamento] TypeIn "NP"
{Ask} {FaturaV} Check
Moveto [Numero da OF      ] Example "NUM"
Moveto [Sequencia         ]
Moveto [Valor             ]
Do_It!
Coedit "Answer"
Scan
 [Parcela]=[Sequencia-1]
 [Valor]=[Valor-1]
EndScan
Do_it!
ClearAll
EndProc

;*******************************************************************************
;* Seleciona NF para impressao                                            *
;*******************************************************************************
Proc SELECIONA8(PARAM)
Private PARAM

{Ask} {RCargaF} Check
Moveto [Numero da OF] Example "NUM"
Do_It!
ClearAll

{Ask} {Answer} 
Moveto [Numero da OF] Example "NUM"
Moveto [NCopias     ] TypeIn "Calc Sum as Copias"

{Ask} {FaturaC} 
Moveto [Numero da OF] Check Example "NUM"
Moveto [Codigo      ] Check Example "CodC"
Moveto [Razao Social] Check
Moveto [Endereco    ] Check   
Moveto [Bairro      ] Check
Moveto [CEP         ] Check
Moveto [Cidade      ] Check
Moveto [UF          ] Check

{Ask} {\\Sistemas\\Cadastro\\Destinat}
Moveto [Codigo      ] Example "CodC"
Moveto [Contato     ] Check TypeIn "as Telefone"
Do_It!
ClearAll

If PARAM="Cobranca"
   Then {Ask} {FaturaCC} 
        Moveto [Numero da OF        ] Example "NUM"
        Moveto [Endereco de Cobranca] Example "Ende"
        Moveto [Bairro de Cobranca  ] Example "Bai"
        Moveto [CEP de Cobranca     ] Example "Cep"
        Moveto [Cidade de Cobranca  ] Example "Cid"
        Moveto [UF de Cobranca      ] Example "Uf"
        Do_It!
        {Ask} {Answer}
        Moveto [Numero da OF        ] Example "NUM"
        Moveto [Endereco            ] TypeIn "Changeto _Ende"
        Moveto [Bairro              ] TypeIn "Changeto _Bai"
        Moveto [CEP                 ] TypeIn "Changeto _Cep"
        Moveto [Cidade              ] TypeIn "Changeto _Cid"
        Moveto [UF                  ] TypeIn "Changeto _Uf"
        Do_It!
        ClearAll
        
        NR = NRecords("Answer")
        Coedit "Answer"
        Scan
          Barra(NR, RecNo())
          Aguarde("Aguarde, ajustando dados "+BARRA_STRING)
          If Search("MESMO",[Endereco])>0 Or IsBlank([Endereco])
             Then GetRecord "\\Sistemas\\Vendas\\FaturaC" [Numero da OF] To REG_FATC
                  If RetVal
                     Then [Endereco] = REG_FATC["Endereco"] 
                          [Bairro  ] = REG_FATC["Bairro"]
                          [CEP     ] = REG_FATC["CEP"]
                          [Cidade  ] = REG_FATC["Cidade"]
                          [UF      ] = REG_FATC["UF"] 
                  EndIf   
          EndIf
        EndScan
        Do_It!
        ClearAll
EndIf

Tabela = Cria_Temp(PrivDir())
Copy "Answer" Tabela
Empty "Answer"

AGUARDE("Aguarde, Gerando Relat¢rio")
NR = NRecords("Answer")

View "Answer"
Coedit Tabela
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, ajustando dados "+BARRA_STRING)
  Numero_Copias=[Copias]
  CopyToArray REG
  For I From 1 to Numero_Copias
    Moveto "Answer"
    End
    Down
    CopyFromArray REG
  EndFor
  Moveto Tabela
EndScan  
Do_It!
ClearAll

{Ask} {Answer}   
Moveto [Numero da OF] CheckPlus
Moveto [Codigo      ] CheckPlus
Moveto [Razao Social] CheckPlus
Moveto [Endereco    ] CheckPlus
Moveto [Bairro      ] CheckPlus
Moveto [CEP         ] CheckPlus
Moveto [Cidade      ] CheckPlus
Moveto [UF          ] CheckPlus
Moveto [Telefone    ] CheckPlus
Do_It!
ClearAll

Sort "Answer" On "Numero da OF" 

Delete Tabela

EndProc

;*******************************************************************************
; Checa tag servico                                                            *
;*******************************************************************************
Proc Checa_Serv()

Switch
  Case Campo="TG_CONTRATO":
       VSDGCONTRATO=ControlValue("TG_CONTRATO")
       View NOWINDOW "\\Sistemas\\Vendas\\Correioc"
       If Not IsBlank(VSDGCONTRATO)
         Then VSDGCONTRATO=ALINHM(VSDGCONTRATO,10)
              Moveto [Numero do Contrato]
              Locate VSDGCONTRATO
              If Not RetVal
                 Then MENSAGEM("Contrato n„o Cadastrado !")
                      Valor=False
                 Else VSDGDESCCONTRATO=[Descricao do Contrato]
              EndIf
              ClearAll
         Else VSDGCONTRATO=[Numero do Contrato]
              VSDGDESCCONTRATO=[Descricao do Contrato]
       EndIf
  Case Campo="TG_SERVECT":
       VSDGSERVICO=ControlValue("TG_SERVECT")
       View NOWINDOW "\\Sistemas\\Vendas\\Servect"
       If Not IsBlank(VSDGSERVECT)
         Then VSDGSERVECT=Strim(VSDGSERVECT)
              Moveto [Servico ECT]
              Locate VSDGSERVECT
              If Not RetVal
                 Then MENSAGEM("Servico n„o Cadastrado !")
                      Valor=False
                 Else VSDGDESCSERVECT=[Descricao do Servico]
              EndIf
              ClearAll
         Else VSDGSERVECT=[Servico ECT]
              VSDGDESCSERVECT =[Descricao do Servico]
       EndIf
EndSwitch

EndProc

;*******************************************************************************
;* Rotina p/ Atualizacao de duplicatas emitidas                                *
;*******************************************************************************
Proc AtualizaCarreg()
AGUARDE("Aguarde, Atualizando Of's/Pedidos/Notas/Duplicatas")

{Ask} {RCargaF}
Moveto [Numero da OF       ] Example "of"
{Ask} {NotaC}
Moveto [Codigo da Empresa  ] Check
Moveto [Numero do Documento] Check
Moveto [Serie do Documento ] Check
Moveto [Numero do Pedido   ] Check
Moveto [Numero da OF       ] Check Example "of"
Moveto [Data de Emissao    ] Check
Moveto [Codigo             ] Check
Do_It!
ClearAll

View "\\Sistemas\\Ctarec\\Duplic"
View "DupI"
View "DupNF"
View "FaturaC"
View "PedidoC"
View "NotaC"
Coedit "Answer"
NR = NRecords("Answer")
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Processando "+BARRA_STRING)

  OFOk=True
  Moveto "FaturaC"
  Moveto [Numero da OF]
  Locate [Answer->Numero da OF]
  If Not RetVal
     Then OFOk=False
     Else If [Codigo]<>[Answer->Codigo] Or
             [Data de Emissao]<>[Answer->Data de Emissao] Or
             [Numero Nota Gerada]<>[Answer->Numero do Documento]
             Then OFOk=False
          EndIf
  EndIf

  If Not OFOk
     Then Moveto "Answer"
          Loop
  EndIf

  Moveto "NotaC"
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa],
         [Answer->Numero do Documento],
         [Answer->Serie do Documento]
  If RetVal
     Then [Numero_Carregamento]=VSDGNCARREG
          UnLockRecord

          If SubStr([NotaC->Codigo do Documento],1,2)="NF"
             Then DP_CDDOCTO="DUP"
                  DP_SRDOCTO=""
             Else DP_CDDOCTO=[NotaC->Codigo do Documento]
                  DP_SRDOCTO=[NotaC->Serie do Documento ]
          EndIf


          NF_EXISTE=False
          Moveto "DupNF"
          Moveto [Numero da Nota]
          Locate IndexOrder by "idupnf10" [NotaC->Numero do Documento],[NotaC->Serie do Documento],[NotaC->Codigo da Empresa],[NotaC->Codigo do Documento]
          If RetVal
             Then NF_EXISTE=True
                  DP_NUMDOCTO=[Numero do Documento]
                  DP_SRDOCTO =[Serie do Documento ]
          EndIf

          If NF_EXISTE
             Then Moveto "DupI"
                  Moveto [Codigo da Empresa]
                  Locate [NotaC->Codigo da Empresa], DP_NUMDOCTO, DP_SRDOCTO
                  If RetVal
                     Then While [Codigo da Empresa  ]=[NotaC->Codigo da Empresa  ] and
                                [Numero do Documento]=DP_NUMDOCTO and
                                [Serie do Documento ]=DP_SRDOCTO

                            CHV_EMPRESA=[DupI->Codigo da Empresa]
                            CHV_TPDOCTO=DP_CDDOCTO
                            If [DupI->Ordem do Documento]<>""
                               Then CHV_NUMERO_ORDEM=[DupI->Numero do Documento]+"/"+[DupI->Ordem do Documento]
                               Else CHV_NUMERO_ORDEM=[DupI->Numero do Documento]
                            EndIf

                            Moveto "\\Sistemas\\CtaRec\\Duplic"
                            Moveto [Codigo da Empresa]
                            Locate IndexOrder by "IndDup1" CHV_EMPRESA,CHV_TPDOCTO,CHV_NUMERO_ORDEM
                            If RetVal
                               Then [Numero_Carregamento_Orig]=VSDGNCARREG
                                    UnLockRecord
                            EndIf

                            Moveto "DupI"
                            Skip
                            If EOT() Then QuitLoop EndIf
                          EndWhile
                  EndIf
          EndIf

          Moveto "FaturaC"
          Moveto [Numero da OF]
					Locate [Answer->Numero da OF]
          If RetVal
						 Then [Numero_Carregamento]=VSDGNCARREG
									UnLockRecord
          EndIf

          Moveto "PedidoC"
          Moveto [Numero do Pedido]
					Locate [Answer->Numero do Pedido]
          If RetVal
						 Then [Numero_Carregamento]=VSDGNCARREG
									UnLockRecord
          EndIf

  EndIf

  Moveto "Answer"
EndScan
Do_It!
ClearAll

Mensagem("Atualiza‡„o concluida !")
LIMPAGUARDE()
EndProc

;*******************************************************************************
;* Rotina p/ Observacao                                                        *
;*******************************************************************************
Proc Observacao()

FormKey

{TableAdd} {rcmsgf}
ClearImage
Edita_Memo("Observacao",01,00,15,80,"Observa‡”es")
Do_It!
ClearImage

Moveto "RCargaF"
CoEditKey
FormKey

EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
;;ModeloRelatoriosAdd("01  Acerto    - Ordem Digita‡Æo")  ; inutilizado verificar qual cliente quer usar ???
;;ModeloRelatoriosAdd("01C Acerto    - Ordem Ordem Estado/Cidade/Bairro") ; inutilizado verificar qual cliente quer usar ???
ModeloRelatoriosAdd(fill(chr(196),3)+" Carregamentos:")
ModeloRelatoriosAdd("02  Resumo Condi‡Æo de Pagamento")
ModeloRelatoriosAdd("03  Resumo dos Itens")
ModeloRelatoriosAdd("09  Resumo dos Itens por Representante")
ModeloRelatoriosAdd("07  Rela‡Æo OFïs")
ModeloRelatoriosAdd("08  Rela‡Æo OFïs por Representante")
ModeloRelatoriosAdd("09D Rela‡Æo OFïs por Representante II")
;;;ModeloRelatoriosAdd("09A Carregamento V   -")  ; inutilizado verificar qual cliente quer usar ???
ModeloRelatoriosAdd("09B Rela‡Æo OFïs com vencimentos s¢ NotaPromissoria")
ModeloRelatoriosAdd("09E Rela‡Æo OFïs com Itens, Totais,Vencimentos,Obs")      
ModeloRelatoriosAdd("09I Rela‡Æo OFïs com preenchimento de recebimento")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd(fill(chr(196),3)+" Etiquetas/Impresssora T‚rmica:")
ModeloRelatoriosAdd("04M   9,9x 3,9cm-NF,Cliente,Cid,Volume,Transp")
ModeloRelatoriosAdd("04F   9,9x14,5cm-NF,Pedido,Cliente,Ender,Volume,Transp") ; tamanho etiqueta calculado via dots nÆo tem certeza
ModeloRelatoriosAdd("04K   9,8x14,5cm-NF,Cliente,Cid,UF,Volume,Empresa")      ; tamanho etiqueta calculado via dots nÆo tem certeza
ModeloRelatoriosAdd("04O  10,0x 4,0cm-Cliente,Ender,Bair,Cid")
ModeloRelatoriosAdd("04L  10,0x 5,0cm-NF,Cliente,Ender,Cid,Volume,Empresa")
ModeloRelatoriosAdd("04P  10,0x 5,0cm-NF,Cliente,Cid,Volume,Empresa")
ModeloRelatoriosAdd("10   10,5x 5,0cm-NF,Cliente+Etiqueta Remetente")
ModeloRelatoriosAdd("04Q  11,0x 7,0cm-NF,Cliente,Cid,Volume,Transp,Empresa")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd(fill(chr(196),3)+" Etiquetas/Matricial:")
ModeloRelatoriosAdd("04   13,5x 2,5cm -1Col NF,Cliente,Ender,Bair,Cid,UF,Volume") ; tamanho calculado no visual nÆo tem certeza
ModeloRelatoriosAdd("04G   7,4x12,8cm -1Col Empresa,NF,Cliente,Ender,Bair,Cid,UF,Volume")
ModeloRelatoriosAdd("04H   8,1x 3,6cm -1Col Empresa,NF,Cliente,Ender,Bair,Cid,UF,Volume")
ModeloRelatoriosAdd("04J   8,9x 2,4cm -1Col Correspondˆncia/Dados Fatura")
ModeloRelatoriosAdd("04C   8,9x 2,4cm -1Col Correspondˆncia/Dados Cobran‡a")
ModeloRelatoriosAdd("04N  10,1x 5,0cm -2Col NF,Cliente,Cid,UF,Volume")
ModeloRelatoriosAdd("04R  10,0x 3,9cm-NF,Cliente,Cid,Volume,Transp")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("05  Certificado Postal Individual")
ModeloRelatoriosAdd("06  Certificado Postal Multiplos")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc SelecaoImprimir()
private dmsg

campo="TG_CODMODELO"
if not Dialog_F1() 
   then return
endif

Do_It!
ClearAll

while true

  switch
  
    ;--- modelos report --------------------------------------------------------
    case VSDGCODMODELO="01"   or         
         VSDGCODMODELO="01C"  or 
         VSDGCODMODELO="02"   or 
         VSDGCODMODELO="04J"  or 
         VSDGCODMODELO="04C"  or 
         VSDGCODMODELO="03"   or 
         VSDGCODMODELO="07"   or 
         VSDGCODMODELO="08"   or 
         VSDGCODMODELO="09"   or 
         VSDGCODMODELO="09A"  or 
         VSDGCODMODELO="09B"  or 
         VSDGCODMODELO="09D"  or 
         VSDGCODMODELO="09E"  or 
         VSDGCODMODELO="09I"   :  
  
      DISPOSITIVO()
      If OK=""
         Then quitLoop
      endif

      AGUARDE("Aguarde, selecionado dados")
      Switch
        Case VSDGCODMODELO="02"    : SELECIONA2()
        Case VSDGCODMODELO="01C"   : SELECIONA()
        Case VSDGCODMODELO="01"    : SELECIONA()
        Case VSDGCODMODELO="07"    : SELECIONA3()
        Case VSDGCODMODELO="08"    : SELECIONA4()
        Case VSDGCODMODELO="09A"   : SELECIONA6()
        Case VSDGCODMODELO="09B"   : SELECIONA7()
        Case VSDGCODMODELO="09D"   : SELECIONA2()
        Case VSDGCODMODELO="09E"   : SELECIONA2()
        Case VSDGCODMODELO="09I"   : SELECIONA3()
        Case VSDGCODMODELO="04J"   : SELECIONA8("Fatura")
        Case VSDGCODMODELO="04C"   : SELECIONA8("Cobranca")
        OTherWise                  : SELECIONA()
      EndSwitch

      If IsEmpty("Answer")
         Then MENSAGEM("N„o existem registros a processar")
              QuitLoop
      endif
         
      AGUARDE("Aguarde, gerando o relat¢rio")
      Switch
        Case VSDGCODMODELO="09":   
            Sort "Answer" On "Numero da OF","Descricao do Item"
            ClearAll

            Play "OC_0117"
            QuitLoop

        Case VSDGCODMODELO="08":   
            CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "3" "Answer" "R"
            IMPRIREL("Answer","R")
            
            SELECIONA2()
            CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "2" "Answer" "R"
            IMPRIREL("Answer","R")

            QuitLoop

        Case VSDGCODMODELO="09D" : CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "4" "Answer" "R"
        Case VSDGCODMODELO="09I" : CopyReport "\\Base\\Sistemas\\Vendas\\RCargaF" "4" "Answer" "R"
        Case VSDGCODMODELO="04J" : CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "1" "Answer" "R"
        Case VSDGCODMODELO="04C" : CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "1" "Answer" "R"

        Case VSDGCODMODELO="07" : CopyReport "\\Base\\Sistemas\\Vendas\\RCargaF" "1" "Answer" "R"
            msgobs=""
            If Not IsEmpty("rcmsgf")
               Then View "rcmsgf"
                    msgobs=[Observacao]
                    ClearImage
            EndIf

        Case VSDGCODMODELO="09E":
          Play("RO_5009R")
          QuitLoop

        Case VSDGCODMODELO="03" : CopyReport "\\Base\\Sistemas\\Vendas\\RM_0310"  "R" "Answer" "R"  
        Case VSDGCODMODELO="01C": CopyReport "\\Base\\Sistemas\\Vendas\\RM_0310"  "1" "Answer" "R"  
        Case VSDGCODMODELO="01" : CopyReport "\\Base\\Sistemas\\Vendas\\RM_0310"  "2" "Answer" "R"  
        Case VSDGCODMODELO="02" : CopyReport "FaturaC"  "R" "Answer" "R"  
        Case VSDGCODMODELO="09B" : CopyReport "\\Base\\Sistemas\\Vendas\\RCargaF"  "2" "Answer" "R"  
      EndSwitch
      IMPRIREL("Answer","R")  

    ;--- modelos etiquetas e cerficado postal ----------------------------------
    case VSDGCODMODELO="04"  or        
         VSDGCODMODELO="04G" or 
         VSDGCODMODELO="04H" or 
         VSDGCODMODELO="04F" or 
         VSDGCODMODELO="04K" or
         VSDGCODMODELO="04L" or 
         VSDGCODMODELO="04M" or
         VSDGCODMODELO="04N" or
         VSDGCODMODELO="04O" or
         VSDGCODMODELO="04P" or
         VSDGCODMODELO="04Q" or
         VSDGCODMODELO="04R" or 
         VSDGCODMODELO="05"  or 
         VSDGCODMODELO="06"  or  
         VSDGCODMODELO="10"  :  

      dmsg="RcF"
      switch
        case VSDGCODMODELO="04F" : dmsg="ETQ" 
        case VSDGCODMODELO="04K" : dmsg="ETQ"
        case VSDGCODMODELO="04L" : dmsg="ETQ" 
        case VSDGCODMODELO="04M" : dmsg="ETQ"
        case VSDGCODMODELO="04O" : dmsg="ETQ"
        case VSDGCODMODELO="04Q" : dmsg="ETQ"
        case VSDGCODMODELO="04P" : dmsg="ETQ"
        case VSDGCODMODELO="04R" : dmsg="ETQ"
        case VSDGCODMODELO="10"  : dmsg="ETQ" 
        case VSDGCODMODELO=" "   : dmsg="" 
      endswitch

      DispositivoI(dmsg)
      If OK=""
         Then QuitLoop
      EndIf
      
      switch
        case VSDGCODMODELO="04"  or 
             VSDGCODMODELO="04F" or 
             VSDGCODMODELO="04K" or
             VSDGCODMODELO="04L" or
             VSDGCODMODELO="04M" or
             VSDGCODMODELO="04O" or
             VSDGCODMODELO="04P" or
             VSDGCODMODELO="04Q" or
             VSDGCODMODELO="04R" or
             VSDGCODMODELO="05"  or 
             VSDGCODMODELO="06"  or
             VSDGCODMODELO="10" :  

          AGUARDE("Aguarde, selecionado dados")
          
          {Ask} {RCargaF} Check
          Do_It!
          ClearAll
          If IsEmpty("Answer")
             Then MENSAGEM("N„o existem registros a processar")
                  QuitLoop
          endif
          
          {Tools} {Copy} {JustFamily} {RCargaF} {Answer} {Replace}

        case VSDGCODMODELO="04G"  or 
             VSDGCODMODELO="04H"  or
             VSDGCODMODELO="04N" :   

          AGUARDE("Aguarde, selecionado dados")
          
          {Ask} {RCargaF} Check
          Do_It!
          ClearAll
          
          {Ask} {NotaC}
          Moveto [Numero do Documento] Example "Ndoc"
          Moveto [Tipo do Documento  ] Example "TD"
          {Ask} {Answer}
          Moveto [Numero do Documento] Example "Ndoc" 
          Moveto [Tipo do Documento] Typein "Changeto " Example "TD"
          Do_It!
          ClearAll
          
          If IsEmpty("Answer")
             Then MENSAGEM("N„o existem registros a processar")
                  QuitLoop
          endif
          
          {Tools} {Copy} {JustFamily} {RCargaF} {Answer} {Replace}

        case VSDGCODMODELO="" :
          
      endswitch
      
      AGUARDE("Aguarde, imprimindo")
      Switch
       Case VSDGCODMODELO="04"  : Play "EV_0000"
      
       Case VSDGCODMODELO="04G" : Play "EV_0005"
      
       Case VSDGCODMODELO="04H" : Play "EV_0006"
      
       Case VSDGCODMODELO="04F" : Play "EV_0003"
       
       Case VSDGCODMODELO="04K" : Play "EV_0007"
       
       Case VSDGCODMODELO="04L" : Play "EV_0008"
       
       Case VSDGCODMODELO="04M" : Play "EV_0009"
       
       Case VSDGCODMODELO="04N" : Play "EV_0370"
      
       Case VSDGCODMODELO="04O" : Play "EV_0343"
       
       Case VSDGCODMODELO="04P" : Play "EV_0376"
       
       Case VSDGCODMODELO="04Q" : Play "EV_0382"
       
       Case VSDGCODMODELO="04R" : Play "EV_0343A"
       
       Case VSDGCODMODELO="10"  : Play "EV_0415"
      
       Case VSDGCODMODELO="05"  :
         Switch
           Case SYS_CODIGO_CLIENTE="0079": Play "CP_0079"
           Case SYS_CODIGO_CLIENTE="0098": Play "CP_0098"
           Case SYS_CODIGO_CLIENTE="0199": Play "CP_0199"
           OtherWise                     : Play "CP_0000"
         EndSwitch

       Case VSDGCODMODELO="06" :
         Switch
           Case SYS_CODIGO_CLIENTE="0079": Play "CP_0079b"
           Case SYS_CODIGO_CLIENTE="0098": Play "CP_0098b"
           OtherWise                     : Play "CP_0002"
         EndSwitch
      
      EndSwitch
      
  Endswitch    
  QuitLoop

Endwhile

if IsTable("Answer") then Delete "Answer" endif

CoEdit "RCargaF"
PickForm "F"

EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITAC()
If RecordStatus("Locked") Then UnLockRecord EndIf         
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
If Not IsAssigned(SYS_CHAPA_USUARIO)   Then SYS_CHAPA_USUARIO="9999" EndIf
If Not IsAssigned(SYS_EMPRESA_DEFAULT) Then SYS_EMPRESA_DEFAULT=""   EndIf
If Not IsAssigned(SYS_NOME_USUARIO)    Then SYS_NOME_USUARIO=""      EndIf
If Not IsAssigned(SYS_NIVEL_USUARIO)   Then SYS_NIVEL_USUARIO="S"    EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""    EndIf
If Not IsAssigned(SYS_CONTROLE_DIA)    Then SYS_CONTROLE_DIA=""      EndIf

ModeloRelatoriosCarregaLista()

VSDGEMPRESA   = ""
VSDGCIDADE    = ""
VSDGDTINI     = BlankDate()
VSDGDTFIM     = BlankDate()
VSDGREPRESEN  = ""
VSDGNOMREPR   = ""
VSDGTRANSP    = ""
VSDGNOMTRANSP = ""
VSDGOPDTES    =""

CoEdit "RCargaF"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
