;** 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: 07/06/2011 por Bruno Carvalho (Pedido por Cleber #0112)
;Motivo Alteracao: Adicionado Modelo "I" para Michelle Cosmeticos
;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()                  

;*******************************************************************************
;* 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":
               ShowPopup " Impress„o " @01 ,28
                    "~1~- Acerto"           :" Rela‡„o para Carregamento (ACERTO)"   :"ACERTO",
                    "~2~- Pagamento"        :" Condi‡„o de Pagamento"                :"PGTO",
                    Separator,
                    "~4~- Etiquetas I"      :" Impress„o de Etiquetas  "             :"ETIQ",
                    "~G~- Etiquetas II"     :" Impress„o de Etiquetas 7,4 x 12,8"    :"ETIQ2",
                    "~H~- Etiquetas III"    :" Impress„o de Etiquetas 8,1 x 3,6"     :"ETIQ3",
                    "~J~- Etiquetas IV"     :" Impress„o de Etiquetas 8,9 x 2,4"     :"ETIQ4",
                    "~F~- Etiquetas/T‚rmica":" Impress„o de Etiquetas T‚rmica"       :"ETIQT",
                    "~5~- CPostal Indiv."   :" Certificado Postal Individual"        :"CERTPOSTI",
                    "~6~- CPostal Mult."    :" Certificado Postal Multiplos"         :"CERTPOSTM",
                    Separator,
                    "~3~- Carregamento I"   :" Rela‡„o para Carregamento I"          :"CARREG",
                    "~7~- Carregamento II"  :" Rela‡„o para Carregamento II"         :"CARREG2",
                    "~8~- Carregamento III" :" Rela‡„o para Carregamento III"        :"CARREG3",
                    "~9~- Carregamento IV"  :" Rela‡„o para Carregamento IV "        :"CARREG9",
                    "~A~- Carregamento V"   :" Rela‡„o para Carregamento V "         :"CARREG10",
                    "~B~- Carregamento VI"  :" Rela‡„o para Carregamento NP "        :"CARREG11",
                    "~D~- Carregamento VII" :" Rela‡„o para Carregamento VII"        :"CARREG12",
                    "~E~- Carregamento VIII":" Rela‡„o para Carregamento VIII"       :"CARREG13",
                    "~I~- Carregamento IX"  :" Rela‡„o para Carregamento IX"         :"CARREG14",
                    "~C~ancelar"            :" Cancelar Opera‡„o"                    :"CANCELAR"                    
                 EndMenu
                  To MenuVar
                  If Not Retval or (MenuVar="Cancelar") or (MenuVar="Esc")
                     Then Loop
                  EndIf

            Switch
                  Case MenuVar="ACERTO"   :
                       Sound 500 200
                       Echo Normal
                       Echo Off
                       ShowPopup " Fun‡”es " CENTERED
                             "~C~idade       " : " Emitir em Ordem Estado/Cidade/Bairro" : "Cidade  ",
                             "~D~igitada     " : " Emitir em Ordem de Digita‡„o        " : "Digitada",
                             "~C~ancelar     " : " Cancelar a Opera‡„o                 " : "CANCELAR"
                      EndMenu
                      To MenuVarn

                      echo off
                      If MenuVarn="CANCELAR" or MenuVarn="Esc" or Not RetVal
                         Then Loop
                      EndIf
                       If MenuVarn="Cancela" Then Loop EndIF
                       If MenuVarn="Cidade"
                          Then OPREL=1
                          Else OPREL=3
                       EndIf
                       Del
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="PGTO"     :
                       Del
                       OPREL=2
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="CARREG"   :
                       Del
                       OPREL=0
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="CARREG2"  :
                       Del
                       OPREL=4
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="CARREG3"  :
                       Del
                       OPREL=5
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="CARREG12" :
                       Del
                       OPREL=12
                       IMPRIME()
                       QuitLoop

                  Case MenuVar="CARREG13" :
                       Del
                       OPREL=13
                       IMPRIME()
                       QuitLoop
                       
                  Case MenuVar="CARREG14" :
                       Del
                       OPREL=14
                       IMPRIME()
                       QuitLoop
                 Case MenuVar="ETIQ"      :
                      Del
                      Do_it!
                      DispositivoI("FAT")
                      If OK=""
                         Then CoEditKey
                              QuitLoop
                      EndIf

                      {Ask} {Rcargaf} Check                  
                      Do_It!
                      ClearAll
                      {Tools} {Copy} {JustFamily} {Rcargaf} {Answer} {Replace}

                      Play "EV_0000"
                      CoEdit "RCargaF"
                      PickForm "F"

                      QuitLoop
                 Case MenuVar="ETIQ2"      : 
                      Del
                      Do_it!
                      DispositivoI("FAT")
                      If OK=""
                         Then CoEditKey
                              QuitLoop
                      EndIf
                      
                      {Ask} {Rcargaf} Check                  
                      Do_It!
                      ClearAll
                      
                      {Ask} {NotaC}
                      Moveto [Tipo do Documento] Example "TD"
                      {Ask} {Answer} 
                      Moveto [Tipo do Documento] Typein "Changeto " Example "TD"
                      Do_It!
                      ClearAll
                      
                      {Tools} {Copy} {JustFamily} {Rcargaf} {Answer} {Replace}

                      Play "EV_0005"
                      CoEdit "RCargaF"
                      PickForm "F"

                      QuitLoop
                      
                      
                 Case MenuVar="ETIQ3"      : 
                      Del
                      Do_it!
                      DispositivoI("FAT")
                      If OK=""
                         Then CoEditKey
                              QuitLoop
                      EndIf
                      
                      {Ask} {Rcargaf} Check                  
                      Do_It!
                      ClearAll
                      
                      {Ask} {NotaC}
                      Moveto [Tipo do Documento] Example "TD"
                      {Ask} {Answer} 
                      Moveto [Tipo do Documento] Typein "Changeto " Example "TD"
                      Do_It!
                      ClearAll
                      
                      {Tools} {Copy} {JustFamily} {Rcargaf} {Answer} {Replace}

                      Play "EV_0006"
                      CoEdit "RCargaF"
                      PickForm "F"

                      QuitLoop
                 Case MenuVar="ETIQ4"      :  
                      Del
                      OPREL=15
                      IMPRIME()
                      QuitLoop
                 Case MenuVar="ETIQT"     :
                      Del
                      Do_it!
                      msgdispositivo="Etiqueta"
                      DispositivoI("ETQ")
                      If OK=""
                         Then CoEditKey
                              QuitLoop
                      EndIf

                      {Ask} {Rcargaf} Check
                      Do_It!
                      ClearAll
                      {Tools} {Copy} {JustFamily} {Rcargaf} {Answer} {Replace}

                      Play "EV_0003"
                      CoEdit "RCargaF"
                      PickForm "F"

                      QuitLoop     
                 Case MenuVar="CERTPOSTI":
                      Del
                      Do_it!
                      DispositivoI("FAT")
                      If OK=""
                         Then CoEditKey
                              QuitLoop
                      EndIf

                      {Ask} {Rcargaf} Check
                      Do_It!
                      ClearAll
                      {Tools} {Copy} {JustFamily} {Rcargaf} {Answer} {Replace}

                      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
                      CoEdit "RCargaf"
                      PickForm "F"

                      QuitLoop
                 Case MenuVar="CERTPOSTM":
                      Del
                      Do_it!
                      DispositivoI("FAT")
                      If OK=""
                         Then CoEditKey
                              QuitLoop
                      EndIf

                      {Ask} {Rcargaf} Check
                      Do_It!
                      ClearAll
                      {Tools} {Copy} {JustFamily} {Rcargaf} {Answer} {Replace}

                      Switch
                        Case SYS_CODIGO_CLIENTE="0079": Play "CP_0079b"
                        Case SYS_CODIGO_CLIENTE="0098": Play "CP_0098b"
                        OtherWise                     : Play "CP_0002"
                      EndSwitch
                      CoEdit "RCargaF"
                      PickForm "F"

                      QuitLoop
                  Case MenuVar="CARREG9"  :
                       Del
                       OPREL=8
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="CARREG10"  :
                       Del
                       OPREL=10
                       IMPRIME()
                       QuitLoop
                  Case MenuVar="CARREG11"  :
                       Del
                       OPREL=11
                       IMPRIME()
                       QuitLoop

                 Case MenuVar="CANCELAR" :Loop
            EndSwitch
       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_CIDADE"        : Campo="TG_REPRESEN"
                Case Campo="TG_NCAREG"        : Campo="TG_CIDADE"
                Case Campo="TG_DTINI"         : Campo="TG_NCARREG"
                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_CIDADE"
                        Case Campo="TG_CIDADE"  :Campo="TG_NCARREG"
                        Case Campo="TG_NCARREG" :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 "Criterio de Sele‡„o" Proc "SD_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","ENTER","ESC","TAB"
     @ 05,12   Height 15 Width 40

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 23 "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 23 "A20" Picture "!*!" Tag "TG_NOMREPR"  To VSDGNOMREPR

    Label  @ 04,00 "Cidade"  For "TG_CIDADE"
    Accept @ 05,01 Width 23 "A20" Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE

    Label  @ 06,00 "N§ Carregamento" For "TG_NCARREG"
    Accept @ 07,01 Width 9  "A6"  Picture "#*#" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 07,11 Width 23 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Label  @ 08,00 "Perˇodo Referente" For "TG_DTINI"
    Label  @ 09,00 "de" For "TG_DTINI"
    Accept @ 09,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 09,17 "at‚" For "TG_DTFIM"
    Accept @ 09,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

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

  EndDialog
   
  If Not RetVal
     Then QuitLoop
     Else 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 [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
          Moveto [Descricao CondPagto    ] TypeIn "Not CONTRA APRES.."
          Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG.."
          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
  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 "Relacao de Servi‡os do Contrato com os Correios" Proc "SD_Dialog"
 Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB"
   @ 05,01   Height 09 Width 71

    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,01 Width 08 "A5"  Picture "!*!" Tag "TG_SERVECT"     To VSDGSERVECT
    Accept @ 03,10 Width 53 "A50" Picture "!*!" Tag "TG_DESCSERVECT" To VSDGDESCSERVECT

    Pushbutton @ 05,23 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 40

    Label  @ 00,00 "N§ Carregamento" For "TG_NCARREG"
    Accept @ 01,01 Width 9  "A6"  Picture "#*#" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 01,11 Width 23 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Pushbutton @ 03,06 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 03,19 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

;*******************************************************************************
;* Rotina De Impressao                                                         *
;*******************************************************************************
Proc IMPRIME()
Do_It!
ClearAll

DISPOSITIVO()
If OK=""
   Then CoEdit "RCargaF"
        PickForm "F"
        Return
EndIf
AGUARDE("Aguarde, Gerando o Relat˘rio")

Switch
  Case OPREL=2  : SELECIONA2()
  Case OPREL=1  : SELECIONA5()
  Case OPREL=3  : SELECIONA5()
  Case OPREL=4  : SELECIONA3()
  Case OPREL=5  : SELECIONA4()
  Case OPREL=10 : SELECIONA6()
  Case OPREL=11 : SELECIONA7()
  Case OPREL=12 : SELECIONA2()
  Case OPREL=13 : SELECIONA2()
  Case OPREL=14 : SELECIONA3()
  Case OPREL=15 : SELECIONA8()
  OTherWise     : SELECIONA()
EndSwitch

If IsEmpty("Answer")
   Then MENSAGEM("N„o existem registros a processar")
   Else Switch
          Case OPREL=8:
            Sort "Answer" On "Numero da OF","Descricao do Item"
            ClearAll
            Play "OC_0117"
          Case OPREL=5:
            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")
          Case OPREL=12:
            CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "4" "Answer" "R"
            IMPRIREL("Answer","R")
          Case OPREL=15:  
            CopyReport "\\Base\\Sistemas\\Vendas\\RM_1030" "1" "Answer" "R"
            IMPRIREL("Answer","R")
          Case OPREL=4:
            CopyReport "\\Base\\Sistemas\\Vendas\\RCargaF" "1" "Answer" "R"

            msgobs=""
            If Not IsEmpty("rcmsgf")
               Then View "rcmsgf"
                    msgobs=[Observacao]
                    ClearImage
            EndIf

            IMPRIREL("Answer","R")
          Case OPREL=13:
            Play("RO_5009R")
          OtherWise     :
            If OPREL=0  Then CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0310"  "R" "Answer" "R" EndIf
            If OPREL=1  Then CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0310"  "1" "Answer" "R" EndIf
            If OPREL=3  Then CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0310"  "2" "Answer" "R" EndIf
            If OPREL=2  Then CopyReport  "FaturaC"  "R" "Answer" "R" EndIf
            If OPREL=11 Then CopyReport  "\\Base\\Sistemas\\Vendas\\RCargaF"  "2"  "Answer" "R" EndIf
            IMPRIREL("Answer","R")
        EndSwitch
EndIf
Delete "Answer"

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()

{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

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

AGUARDE("Aguarde, Gerando Relat˘rio")

Empty "Answer"

View "Answer"
Coedit Tabela

Scan
  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 "idupnf01" [NotaC->Numero do Documento],
                [NotaC->Serie do Documento],[NotaC->Codigo da Empresa]
          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 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

VSDGEMPRESA  = ""
VSDGCIDADE   = ""
VSDGDTINI    = BlankDate()
VSDGDTFIM    = BlankDate()
VSDGREPRESEN = ""

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
