;** 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]
;Ultima Alteracao: 17/03/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo 04A ("EV_0377"), copia do modelo 04F
;Ultima Alteracao: 19/05/2020 por Bruno Carvalho
;Motivo Alteracao: Alterado CopyReport "...\\Vendas\\FaturaC" p/ "...\\Vendas\\RM_0047"
;Ultima Alteracao: 09/06/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo relatorio 03A
;Ultima Alteracao: 12/07/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo "11" p/ impressora t‚rmica -> 10,0 x  7,5

;*******************************************************************************
;* 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("03A Resumo dos Itens com Separdor")
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("04A   9,9x14,5cm-NF,Pedido,Cliente,Ender,Volume,Transp,Redespacho,OC") 
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("11   10,0x 7,5cm-Origem,Destinatario,Cidade,NF,Volume,Transp,Obs")
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="03A"  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="03A" : CopyReport "\\Base\\Sistemas\\Vendas\\RM_0310" "3" "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 "\\Base\\Sistemas\\Vendas\\RM_0047" "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="04A" 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"  or
         VSDGCODMODELO="11"   :  

      dmsg="RcF"
      switch
        case VSDGCODMODELO="04A" : dmsg="ETQ"
        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="11"  : dmsg="ETQ"
        case VSDGCODMODELO=" "   : dmsg="" 
      endswitch

      DispositivoI(dmsg)
      If OK=""
         Then QuitLoop
      EndIf
      
      switch
        case VSDGCODMODELO="04"  or 
             VSDGCODMODELO="04A" 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"  or
             VSDGCODMODELO="11" :  

          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="04A" : Play "EV_0377"
       
       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="11"  : Play "EV_0444"
      
       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,\\Sistemas\\Cadastro\\Bib_Proc"
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
