;** AcCarreg *******************************************************************
;*  Ordem de Carregamento                                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 12/02/2004 por Anivel Augusto Rodrigues
;Ultima Alteracao: 18/04/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajuste
;Ultima Alteracao: 31/01/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Plano_Conta/CCusto Despesas
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 08/05/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CONSIGNADO
;Ultima Alteracao: 14/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: 10/09/2012 por Bruno Carvalho
;Motivo Alteracao: Altera‡Ćo Layout, adicionado rotina p/ informar notas de carregamento
;Ultima Alteracao: 14/09/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes na impressĆo e adicionado modelo X
;Ultima Alteracao: 05/10/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ "MODO_IMPRESSAO(0)" onde foi adicionado "Numero Nota Gerada"
;Ultima Alteracao: 18/10/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ Varivavel NOTAS p/ o script "EV_0319"

;*******************************************************************************
;* Rotina para Controlar Chave Carregamento                                    *
;*******************************************************************************
Proc CHAVE()
INICIO=True

While True
  Moveto "AcCarrgC"
  End
  Moveto [Numero_Carregamento]
  NUMDOC=[Numero_Carregamento]
  
  If OPCAO_FORM="F"
     Then Down
     Else PgDn Pgdn Pgdn Pgdn
  EndIf
  Moveto [Numero_Carregamento]

  SetaCorRegistro("Editar")
  While True

  TECLA=""
  AguardaTeclasPadrao()

  Switch
        Case RetVal=-33 : SemFuncoes()
        Case RetVal=-94 : MsgTeclasPadrao()
        Case RetVal="F3":
             If OPCAO_FORM="F"
                Then OPCAO_FORM="1"
                Else OPCAO_FORM="F"
             EndIf
             Del
             CHAVEC=5
             Return
        Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
             While True
               If OPCAO_FORM="F"
                  Then PAGINA("AcCarrgC","MR")
                  Else PAGINA("AcCarrgC","MT")
               EndIf
               CHAVEC=0
               NUMDOC =[Numero_Carregamento]
               If EDITAR="S"
                  Then If OPCAO_FORM="F"
                          Then PickForm "1"
                       EndIf
                       If Checa_Controle([Numero_Controle_Dia])
                          Then Controla_EdicaoC()
                          Else UnLockRecord
                       EndIf
                  Else If EXCLUIR="S"
                          Then If QuerExcluir("") And Checa_Supervisor()
                                  Then If OPCAO_FORM="F"
                                          Then PickForm "1"
                                       EndIf
                                       EXCLUSAO()
                                  Else UnLockRecord
                               EndIf
                          Else QuitLoop
                       EndIf
               EndIf
               If OPCAO_FORM="F"
                  Then PickForm "F"
               EndIf
               SetaPosForm()
            EndWhile
            QuitLoop
        Case Retval="ESC":
             CHAVEC=9
             Del
             Return
             Left
        Case Retval="ENTER":
             If IsBlank([])
                Then If IsBlank(NUMDOC)
                        Then NUMDOC="1"
                        Else NUMDOC=StrVal(NumVal(NUMDOC)+1)
                     EndIf
                     []=NUMDOC
             EndIf
             []=ALINH()
             NUMDOC=[]
             Del
             If OPCAO_FORM="F"
                Then PickForm "1"
             EndIf
             Moveto [Numero_Carregamento]
             Locate NUMDOC
             If Retval
                Then CHAVEC=0
                Else CHAVEC=1
                     End
                     If Not IsBlank([Numero_Carregamento])
                        Then PgDn PgDn Pgdn Pgdn
                     EndIf
                     Moveto [Numero_Carregamento]
                     [Numero_Carregamento]=NUMDOC
             EndIf

             If Not IsLockRecord()
                Then Echo Normal
                     Echo Off
                     If (CHAVEC=1 And Checa_Controle(SYS_CONTROLE_DIA)) Or
                        (CHAVEC=0 And Checa_Controle([Numero_Controle_Dia]))
                        Then Return
                     EndIf
             EndIf

             If IsLockRecord()
                Then If OPCAO_FORM="F"
                        Then PickForm "F"
                     EndIf
                     If CHAVEC=1
                        Then Del
                     EndIf
                     QuitLoop
             EndIf
             Return
        EndSwitch
  EndWhile
EndWhile
EndProc   ; (Chave)

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

If [Situacao]="ACERTADO" And INICIO
   Then Mensagem("Carregamento Acertado !")
        If Not Checa_Supervisor()
           Then CHAVEC=9
                Return
        EndIf
        INICIO=False
EndIf

If [Litros Combustivel]>0 And [Km Rodado]>0
   Then [Media Consumo]=Round([Km Rodado]/[Litros Combustivel],1)
EndIf

Moveto [Data de Emissao]
If CHAVEC=1
   Then [Situacao]="EM ABERTO"
EndIf

While True
      TECLA=" Esc=Retornar  "
      If Field()="Codigo do Representante" Or
         Field()="Codigo Motorista" Or
         Field()="Codigo do Veiculo"
         Then TECLA=TECLA+"F1=Tabelas  "
      EndIf        
      TECLA=TECLA+"            Alt+F=Fun‡”es  PgDn=Finalizar  "

      MSGCAMPO=Field()

      Switch
        Case Field()="Situacao"               : MSGCAMPO="EM ABERTO,ACERTADA,PENDENTE"
        Case Field()="Nome Fantasia EmitDest" : MSGCAMPO="Nome Motorista"
        Case Field()="Tipo_Carregamento"      : MSGCAMPO="MANIFESTO,PRE-VENDA,VENDAS,CONSIGNADO,OUTROS"
      EndSwitch

      Prompt TECLA

      Wait Field
           Message MSGCAMPO
           Until "F1","ESC","ENTER","FIELDVIEW","F35","F5",
                 "PGDN",-33,"F8","F9","F10",-115,-116,-68

      If RetVal=-33
        Then Echo Normal
             Echo Off

             ShowPopup " Fun‡”es " CENTERED
              "F5  ~O~bs         ": " Observa‡”es                      " :"F5",
              "F8  ~D~espesas    ": " Despesas                         " :"F8",
              "F9  ~R~ecebimentos": " Recebimentos/Fita                " :"F9",
              "F10 ~C~arregamento": " Carregamento                     " :"F10",
              "~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="F8" Or RetVal="F9" Or
            RetVal=-115 Or RetVal=-116 Or
            RetVal=-68  Or Retval="F10":
            Tecla_Funcao=RetVal
            QuitLoop       
          
      Case RetVal="F1":
           If Field()="Codigo do Representante" Or
              Field()="Codigo Motorista"        Or
              Field()="Codigo do Veiculo"       Or
              Field()="Codigo da Transportadora"
              Then If CONSULTAF1()
                      Then If Field()="Codigo Motorista"
                              Then [Nome Fantasia EmitDest]=Reg_ConsultaF1["Nome Fantasia EmitDest"]
                           EndIf
                   EndIf
           EndIf
      Case RetVal="F5" :
           CampoAnt=Field()
           Edita_Memo("Observacoes",08,07,12,65,"Observa‡”es")
           Moveto Field CampoAnt
           Prompt MSGCAMPO
      Case Retval="ESC":
           Switch
           Case Field()="Data de Emissao":
                If QuerDesfazer("")
                   Then If CHAVEC=1
                           Then Del
                           Else Undo
                        EndIf
                        CHAVEC=9
                        QuitLoop
                EndIf                 
           
           Case Field()="Placa do Veiculo"         : Moveto [Codigo do Veiculo]
           Case Field()="Codigo do Veiculo"        : Moveto [Codigo do Representante]
           Case Field()="Codigo do Representante"  : Moveto [Situacao]
           Case Field()="Nome Fantasia Represent"  : Moveto [Codigo do Representante]
           Case Field()="Nome Fantasia EmitDest"   : Moveto [Codigo Motorista]
           Case Field()="Codigo Motorista"         : Moveto [Codigo do Veiculo]
           Case Field()="Codigo da Transportadora" : Moveto [Codigo Motorista]
           Case Field()="Nome Fantasia Transport"  : Moveto [Codigo da Transportadora]
           Case Field()="Data_Saida"               : Moveto [Codigo da Transportadora]
           Case Field()="Data_Chegada"             : Moveto [Data_Saida]
           Case Field()="Km Chegada"               : Moveto [Data_Chegada]
           Case Field()="Km Saida"                 : Moveto [Data_Saida]
           Case Field()="NDiscos"                  : Moveto [Km Chegada]
           Case Field()="Valor Adiantamento"       : Moveto [NDiscos]
           OtherWise:
                Left
           EndSwitch
      Case Retval="PGDN":
           FINALIZADO=True
           CHAVEC=9
           Tecla_Funcao=""
           QuitLoop
      Case Retval="F9" And CHAVEC=0:
           Tecla_Funcao="F9"
           QuitLoop
      Case Retval="F8" And CHAVEC=0:
           Tecla_Funcao="F8"
           QuitLoop
      Case (Retval="F10" Or Retval=-68) And CHAVEC=0:
           Tecla_Funcao="F10"
           QuitLoop
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="ENTER":
        Switch
          Case Field()="Data de Emissao"     : Moveto [Tipo_Carregamento]
               If IsBlank([Data de Emissao])
                  Then [Data de Emissao]=Today()
               EndIf
          Case Field()="Tipo_Carregamento"   :
               If Not IsBlank([])
                  Then Moveto [Codigo do Representante]
               EndIf
          Case Field()="Data do Acerto"      : Moveto [Situacao]
               If Not IsBlank([Data do Acerto])
                  Then If [Data do Acerto]<[Data de Emissao]
                          Then Mensagem("Data acerto menor do que data emissao !")
                               Moveto [Data do Acerto]
                       EndIf
               EndIf
          Case Field()="Situacao"                 :
               If IsBlank([Situacao])
                  Then [Situacao]="EM ABERTO"
               EndIf
               Moveto [Codigo do Representante]
          Case Field()="Codigo do Representante"  :
               If Not IsBlank([])
                  Then Moveto [Codigo do Veiculo]
                  Else Moveto [Nome Fantasia Represent]
               EndIf
          Case Field()="Nome Fantasia Represent"  :
               Moveto [Codigo do Veiculo]
          Case Field()="Codigo do Veiculo"         :      
               If IsBlank([])
                  Then Moveto [Placa do Veiculo]
                  Else Moveto [Codigo Motorista] 
               EndIf
          Case Field()="Placa do Veiculo"         :      
               Moveto [Codigo Motorista] 
          Case Field()="Codigo Motorista"         :
               If IsBlank([])
                  Then Moveto [Nome Fantasia EmitDest]
                  Else If Busca_Lookup("Codigo",[],"")
                          Then [Nome Fantasia EmitDest]=Reg_Busca_Lookup["Nome Fantasia EmitDest"]
                               Moveto [Codigo da Transportadora]
                       EndIf
               EndIf
          Case Field()="Codigo da Transportadora" :
               If IsBlank([])
                  Then Moveto [Nome Fantasia Transport]
                  Else If Busca_Lookup("Codigo da Transportadora",[],"")
                          Then [Nome Fantasia Transport]=Reg_Busca_Lookup["Nome Fantasia Transport"]
                               Moveto [Data_Saida]
                       EndIf
               EndIf
          Case Field()="Nome Fantasia EmitDest " : Moveto [Nome Fantasia Transport]        
          Case Field()="Nome Fantasia Transport" : Moveto [Data_Saida]          
          Case Field()="Data_Saida"              : Moveto [Km Saida]
          Case Field()="Km Saida"                : Moveto [Data_Chegada]
          Case Field()="Data_Chegada"            : Moveto [Km Chegada]
          Case Field()="Km Chegada"              :
               If [Km Saida]>0 And [Km Chegada]>0
                  Then If [Km Chegada]>=[Km Saida]
                          Then [Km Rodado]=[Km Chegada]-[Km Saida]
                          Else [Km Rodado]=(1000000-[Km Saida])+[Km Chegada]
                       EndIf
                  Else [Km Rodado]=BlankNum()
               EndIf
               Moveto [NDiscos]
          Case Field()="NDiscos"           :
               Moveto [valor Adiantamento]
          Case Field()="Valor Adiantamento"  :
               If CHAVEC=1
                  Then Moveto [Codigo do Representante]
                  Else Moveto [Data_Saida]
               EndIf
          OtherWise: Right
        EndSwitch
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Localizar Despesas                                              *
;*******************************************************************************
Proc CHAVED()

While True

  TOTHOT=0
  TOTREF=0
  TOTCOM=0
  TOTLIT=0
  TOTOUT=0
  TOTMAN=0
  Scan
    Switch
      Case [Descricao Despesa]="HOTEL"        : TOTHOT=TOTHOT+[Valor]
      Case [Descricao Despesa]="MANUTENCAO"   : TOTMAN=TOTMAN+[Valor]
      Case [Descricao Despesa]="REFEICAO"     : TOTREF=TOTREF+[Valor]
      Case [Descricao Despesa]="COMBUSTIVEL"  : TOTCOM=TOTCOM+[Valor]
                                                TOTLIT=TOTLIT+[Quantidade]
      OtherWise                               : TOTOUT=TOTOUT+[Valor]
    EndSwitch
  EndScan


  Moveto "AcCarrgC"
  [Despesas Hospedagem]=TOTHOT
  [Despesas Refeicao  ]=TOTREF
  [Despesas Manutencao]=TOTMAN
  [Despesas Outras    ]=TOTOUT
  [Valor Combustivel  ]=TOTCOM
  [Litros Combustivel ]=TOTLIT

  [Total Despesas  ]=[Despesas Hospedagem]+[Despesas Refeicao]+
                     [Despesas Manutencao]+[Despesas Outras  ]+
                     [Valor Combustivel]

  If [Litros Combustivel]>0 And [Km Rodado]>0
     Then [Media Consumo]=Round([Km Rodado]/[Litros Combustivel],1)
  EndIf
  
  Moveto "AcCarrgI"

  End
  SEQ=[Sequencia]
  Down
  Moveto [Sequencia]

  SetaCorRegistro("Editar")
  While True

    TECLA=" Esc=Retornar  F7=Paginar  Alt+F=Fun‡”es  PgDn=Finalizar  "

    Prompt TECLA

    Wait Field
         Until "ESC","ENTER","F7","HOME","UP","PGUP","PGDN","F8","F9","F10",-68,-115,-116

    Switch
    Case RetVal=-115 Or RetVal=-116 :
         Tecla_Funcao=RetVal
         CHAVEG=9
         Del
         Return     
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         PAGINA("AcCarrgI","MR")
         SEQ=[Sequencia]
         If EDITAR="S"
            Then CHAVEG=0
                 Return
            Else If EXCLUIR="S"
                    Then If QuerExcluir("") And Checa_Supervisor()
                            Then Del
                         EndIf
                 EndIf
         EndIf
         QuitLoop
    Case Retval="ESC":
         Tecla_Funcao=-10
         CHAVEG=9
         Del
         Return
    Case Retval="PGDN": 
         DIGITAC=False
         Tecla_Funcao=""    
         CHAVEG=9
         Del
         Moveto "Accarrgc"
         Return
    Case Retval="ENTER":
         If IsBlank([])
            Then SEQ=SEQ+1
                 []=SEQ
         EndIf
         SEQ=[]
         Del
         Locate NUMDOC,SEQ
         If Retval
            Then CHAVEG=0
            Else CHAVEG=1
                 End Down
                 [Sequencia]=SEQ
                 SEQUENCIA=SEQ
         EndIf
         If IsLockRecord() Then QuitLoop EndIf
         Return
    EndSwitch
  EndWhile
EndWhile

EndProc ;CHAVED()

;*******************************************************************************
;* Rotina para Digitacao de Avarias
;*******************************************************************************
Proc DIGITAD()

Moveto [Data]

While True

  TECLA=" Esc=Retornar  "
  If CHAVEG=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf
  If Field()="Codigo Plano_Conta" Or
     Field()="Codigo CCusto"
     Then TECLA=TECLA+"F1=Tabelas  "
  EndIf
  Prompt TECLA

  If Field()="Quantidade" Or
     Field()="Valor"
     Then MSGCAMPO=""
     Else MSGCAMPO=Field()
  EndIf

  Wait Field
       Message MSGCAMPO
       Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1"

  Switch
       Case RetVal="F1":
       If Field()="Codigo Plano_Conta" Or
          Field()="Codigo CCusto"
          Then If CONSULTAF1()
                  Then If Field()="Codigo Plano_Conta"
                          Then [Descricao Plano_Conta]=LTrim([Descricao Plano_Conta])
                       EndIf
                       If Field()="Codigo CCusto"
                          Then [Descricao CCusto]=LTrim([Descricao CCusto])
                       EndIf
               EndIf
       EndIf
  Case Retval="ESC":
       Switch
       Case Field()="Data":
            If QuerDesfazer("")
               Then If CHAVEG=1
                       Then Del
                       Else Undo
                    EndIf
                    Return
            EndIf
       Case Field()="Codigo CCusto":
            Moveto [Codigo Plano_Conta]
       Case Field()="Quantidade":
            Moveto [Codigo CCusto]
       OtherWise: Left
       EndSwitch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVEG=0
          Then If QuerExcluir("") And Checa_Supervisor()
                  Then Del
                       CHAVEG=9
                       QuitLoop
               EndIf
       EndIf
  Case Retval="ENTER":
       Switch
       Case Field()="Codigo Plano_Conta":
            If Busca_Lookup("Codigo Plano_Conta",[],"")
               Then If REG_BUSCA_LOOKUP["Tipo de Conta"]="A" And
                       SubStr([],1,1)="2"
                       Then Moveto [Codigo CCusto]
                            [Descricao Despesa    ]=LTrim([Descricao Plano_Conta])
                            [Descricao Plano_Conta]=LTrim([Descricao Plano_Conta])
                       Else Mensagem("Conta inv lida !")
                    EndIf
            EndIf
       Case Field()="Codigo CCusto":
            If Not IsBlank([])
               Then If Busca_Lookup("Codigo CCusto",[],"")
                       Then If REG_BUSCA_LOOKUP["Tipo de Conta"]="A"
                               Then [Descricao CCusto]=LTrim([Descricao CCusto])
                                    Moveto [Quantidade]
                               Else Mensagem("Ct Custo inv lido !")
                            EndIf
                    EndIf
               Else Moveto [Quantidade]
            EndIf
       Case Field() = "Valor":
            Return
       OtherWise: Right
       EndSwitch
  EndSwitch
EndWhile

EndProc ;DIGITAD()

;*******************************************************************************
;* Rotina para Localizar Despesas                                              *
;*******************************************************************************
Proc CHAVEV()

While True

  TOTFIT=0

  Scan
    TOTFIT=TOTFIT+[Valor]
  EndScan

  Moveto "AcCarrgC"
  [Total Fita]=TOTFIT

  Moveto "AcCarrgV"
  End
  SEQ=[Sequencia]
  Down
  Moveto [Sequencia]

  SetaCorRegistro("Editar")
  While True

    TECLA=" Esc=Retornar  F7=Paginar  Alt+F=Fun‡”es  PgDn=Finalizar  "

    Prompt TECLA

    Wait Field
         Until "ESC","ENTER","F7","HOME","UP","PGUP","PGDN","F8","F9","F10",-68,-115,-116

    If RetVal=-33
      Then Echo Normal
           Echo Off

           ShowPopup " Fun‡”es " CENTERED
            "F5  ~O~bs         ": " Observa‡”es                      " :"F5",
            "F8  ~D~espesas    ": " Despesas                         " :"F8",
            "F9  ~R~ecebimentos": " Recebimentos/Fita                " :"F9",
            "F10 ~C~arregamento": " Carregamento                     " :"F10",
            "~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=-115 Or RetVal=-116 :
         Tecla_Funcao=RetVal
         CHAVEG=9
         Del
         Return  
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         PAGINA("AcCarrgV","MR")
         SEQ=[Sequencia]
         If EDITAR="S"
            Then CHAVEG=0
                 Return
            Else If EXCLUIR="S"
                    Then If QuerExcluir("") And Checa_Supervisor()
                            Then Del
                         EndIf
                 EndIf
         EndIf
         QuitLoop
    Case Retval="ESC":
         Tecla_Funcao="F8"     
         CHAVEG=9
         Del
         Return
    Case Retval="PGDN":
         DIGITAC=False
         Tecla_Funcao=""    
         CHAVEG=9
         Del
         Moveto "Accarrgc"
         Return
    Case Retval="ENTER":
         If IsBlank([])
            Then SEQ=SEQ+1
                 []=SEQ
         EndIf
         SEQ=[]
         Del
         Locate NUMDOC,SEQ
         If Retval
            Then CHAVEG=0
            Else CHAVEG=1
                 End Down
                 [Sequencia]=SEQ
                 SEQUENCIA=SEQ
         EndIf
         If IsLockRecord() Then QuitLoop EndIf
         Return
    EndSwitch
  EndWhile
EndWhile

EndProc ;CHAVEV()

;*******************************************************************************
;* Rotina para Digitacao de Avarias
;*******************************************************************************
Proc DIGITAV()

Moveto [Tipo de Pagamento]

While True

  TECLA=" Esc=Retornar  "

  If Field()="Forma de Pagamento"
     Then TECLA=TECLA+"F1=Tabelas  "
  EndIf

  If CHAVEG=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf
  Prompt TECLA

  MSGCAMPO=Field()

  Switch
    Case Field()="Tipo de Pagamento"      : MSGCAMPO="V=A Vista, P=A Prazo, O=Outros"
  EndSwitch

  Wait Field
       Message MSGCAMPO
       Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1"

  Switch
  Case RetVal="F1":
       If Field()="Forma de Pagamento"
          Then CONSULTAF1()
       EndIf
  Case Retval="ESC":
       Switch
       Case Field()="Tipo de Pagamento":
            If QuerDesfazer("")
               Then If CHAVEG=1
                       Then Del
                       Else Undo
                    EndIf
                    Return
            EndIf
       Case Field()="Valor":
            Moveto [Forma de Pagamento]
       OtherWise: Left
       EndSwitch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVEG=0
          Then If QuerExcluir("") And Checa_Supervisor()
                  Then Del
                       CHAVEG=9
                       QuitLoop
               EndIf
       EndIf
  Case Retval="ENTER":
       Switch
       Case Field() = "Tipo de Pagamento":
            If Not IsBlank([])
               Then Moveto [Forma de Pagamento]
            EndIf
       Case Field() = "Forma de Pagamento":
            If Not IsBlank([])
               Then Moveto [Valor]
            EndIf
       Case Field() = "Valor":
            Return
       OtherWise: Right
       EndSwitch
  EndSwitch
EndWhile

EndProc ;DIGITAV()

;*******************************************************************************
;* Rotina para Localizar Despesas                                              *
;*******************************************************************************
Proc CHAVEF()

While True  
  Moveto "AcCarrgF"

  End
  SEQ=[Sequencia]
  Down
  Moveto [Sequencia]

  SetaCorRegistro("Editar")
  While True

    TECLA=" Esc=Retornar  F7=Paginar  Alt+F=Fun‡”es  PgDn=Finalizar  "

    Prompt TECLA

    Wait Field
         Until "ESC","ENTER","F7","HOME","UP","PGUP","PGDN",
               "F2","F4","F6","F8","F9",-115,-116,-33

    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",
          "~S~ele‡„o              [F6]" : " Selecionar OF's por criterio"         : "F6",
          "~B~atizar 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=-115 Or RetVal=-116 :
         Tecla_Funcao=RetVal
         CHAVEG=9
         Del
         Return  
    Case RetVal="F2": 
         Del
         Selecao2()
         Tecla_Funcao="F10"
         CHAVEG=9
         Return     
    Case RetVal="F4": 
         Del
         ImprimeRel()
         Tecla_Funcao="F10"
         CHAVEG=9
         Return
    Case RetVal="F6":
         Del
         Selecao()
         Tecla_Funcao="F10"
         CHAVEG=9
         Return         
    Case RetVal="F8":
         Del
         Selecao3()
         Tecla_Funcao="F10"
         CHAVEG=9
         Return
    Case RetVal="F9":
         CampoAnt=Field()
         Edita_Memo("Observacao",08,07,12,65,"Observa‡”es")
         Moveto Field CampoAnt
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         PAGINA("AcCarrgF","MR")
         SEQ=[Sequencia]
         If EDITAR="S"
            Then CHAVEG=0
                 Return
            Else If EXCLUIR="S"
                    Then If QuerExcluir("") And Checa_Supervisor()
                            Then ExcluiCarreg()
                         EndIf
                 EndIf
         EndIf
         QuitLoop
    Case Retval="ESC":
         Tecla_Funcao="F9"     
         CHAVEG=9
         Del
         Return

         Tecla_Funcao=-10
         CHAVEG=9
         Del
         Return
    Case Retval="PGDN": 
         DIGITAC=False
         Tecla_Funcao=""    
         CHAVEG=9
         Del
         Moveto "Accarrgc"
         Return
    Case Retval="ENTER":
         If IsBlank([])
            Then SEQ=SEQ+1
                 []=SEQ
         EndIf
         SEQ=[]
         Del
         Locate NUMDOC,SEQ
         If Retval
            Then CHAVEG=0
            Else CHAVEG=1
                 End Down
                 [Sequencia]=SEQ
                 SEQUENCIA=SEQ
         EndIf
         If IsLockRecord() Then QuitLoop EndIf
         Return
    EndSwitch
  EndWhile
EndWhile

EndProc ;CHAVEF()

;*******************************************************************************
;* Rotina para Digitacao de Avarias
;*******************************************************************************
Proc DIGITAF()

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 CHAVEG=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"]
                                   NUM_OF=[Numero da OF]
                                   If REG_BUSCA_LOOKUP["Numero_Carregamento"]<>""
                                      Then If REG_BUSCA_LOOKUP["Numero_Carregamento"]<>NUMDOC
                                              Then Mensagem("Essa nota j  possui um carregamento!//Carregamento N§.: "+REG_BUSCA_LOOKUP["Numero_Carregamento"]) 
                                                   Del
                                                   QuitLoop
                                           EndIf 
                                   EndIf
                                   Moveto [Numero da OF]
                                   Locate NUM_OF
                                   If Retval
                                      Then While [Numero da OF]=NUM_OF
                                             Skip
                                             If Eot() Then QuitLoop EndIf
                                             
                                             Locate Next NUM_OF                                                   
                                             If RetVal
                                                Then Mensagem("Esse n§. de carregamento j  foi adicionado!")
                                                     Del
                                                     Return
                                             EndIf
                                           EndWhile
                                   EndIf     
                           EndIf
                   EndIf                 
           EndIf
           If Field()="Codigo do Documento"
              Then CONSULTAF1()
           EndIf
      Case Retval="ESC":
           Switch
             Case Field()="Numero da OF":
                   If QuerDesfazer("")
                      Then If CHAVEG=1
                              Then Del
                              Else Undo
                           EndIf
                           CHAVEG=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"]
                                           NUM_OF=[Numero da OF]
                                           If REG_BUSCA_LOOKUP["Numero_Carregamento"]<>""
                                              Then If REG_BUSCA_LOOKUP["Numero_Carregamento"]<>NUMDOC
                                                      Then Mensagem("Essa nota j  possui um carregamento!//Carregamento N§.: "+REG_BUSCA_LOOKUP["Numero_Carregamento"]) 
                                                           Del
                                                           QuitLoop
                                                   EndIf 
                                           EndIf
                                           Moveto [Numero da OF]
                                           Locate NUM_OF
                                           If Retval
                                              Then While [Numero da OF]=NUM_OF
                                                     Skip
                                                     If Eot() Then QuitLoop EndIf
                                                     
                                                     Locate Next NUM_OF                                                   
                                                     If RetVal
                                                        Then Mensagem("Esse n§. de carregamento j  foi adicionado!")
                                                             Del
                                                             Return
                                                     EndIf
                                                   EndWhile
                                           EndIf
                                   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 CHAVEG=0
              Then If QuerExcluir("")
                      Then Del
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile

EndProc ;DIGITAF()

;*******************************************************************************
;* 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_DTINI"         : Campo="TG_CIDADE"
                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"  :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 PARA LIMPAR AGUARDE       *
;************************************
Proc LimpAguarde2L()
@ 23,0 ?? Fill(" ",80)
PaintCanvas Attribute 31 23,0,23,79
@ 24,0 ?? Fill(" ",80)
PaintCanvas Attribute 31 24,0,24,79
EndProc ; (LimpAguarde2L)

;*******************************************************************************
;* Imprime Carregamentos                                                       *
;*******************************************************************************
Proc ImprimeRel() 

While True
  FAZ_ROTINA=True
  
  ShowPopup " Impress„o " @01 ,29
    "~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",
    "~K~- Carregamento X"   :" Rela‡„o para Carregamento X"          :"CARREG15",
    "~C~ancelar"            :" Cancelar Opera‡„o"                    :"CANCELAR"                    
 EndMenu
  To MenuVar
  If Not Retval or (MenuVar="CANCELAR") or (MenuVar="ESC")
     Then OPREL=""
          QuitLoop
  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 Return
        EndIf
        If MenuVarn="Cancela" Then Loop EndIF
        If MenuVarn="Cidade"
           Then OPREL=1
           Else OPREL=3
        EndIf
        QuitLoop
    Case MenuVar="PGTO"     :
         OPREL=2
         QuitLoop
    Case MenuVar="CARREG"   :
         OPREL=0
         QuitLoop
    Case MenuVar="CARREG"   :
         OPREL=0
         QuitLoop
    Case MenuVar="CARREG2"  :
         OPREL=4
         QuitLoop
    Case MenuVar="CARREG3"  :
         OPREL=5
         QuitLoop
    Case MenuVar="CARREG12" :
         OPREL=12
         QuitLoop
    Case MenuVar="CARREG13" :
         OPREL=13
         QuitLoop
    Case MenuVar="CARREG14" :
         OPREL=14
         QuitLoop
    Case MenuVar="CARREG15" :
         FAZ_ROTINA=False
         OPREL=16
         QuitLoop
    Case MenuVar="ETIQ"     :
         OPREL=-1
         FAZ_ROTINA=False
         QuitLoop         
    Case MenuVar="ETIQ2"    : 
         OPREL=-2
         FAZ_ROTINA=False
         QuitLoop       
    Case MenuVar="ETIQ3"    : 
         OPREL=-3
         FAZ_ROTINA=False
         QuitLoop       
    Case MenuVar="ETIQ4"    : 
         OPREL=15
         QuitLoop       
    Case MenuVar="ETIQT"     :
         OPREL=-4
         FAZ_ROTINA=False
         QuitLoop
    Case MenuVar="CERTPOSTI":
         OPREL=-5
         FAZ_ROTINA=False
         QuitLoop
    Case MenuVar="CERTPOSTM":
         OPREL=-6
         FAZ_ROTINA=False
         QuitLoop 
    Case MenuVar="CARREG9"  :
         OPREL=8
         QuitLoop
    Case MenuVar="CARREG10"  :
         OPREL=10
         QuitLoop
    Case MenuVar="CARREG11"  :
         OPREL=11
         QuitLoop            
  EndSwitch
EndWhile

If OPREL<>""
   Then Do_It!
        ClearAll                     
 
        DISPOSITIVO()
        If OK=""
           Then CoEdit "AcCarrgc"
                Moveto [Numero_Carregamento]
                Locate NUMDOC
                PickForm "1"
                Return
        EndIf
        AGUARDE("Aguarde, Gerando o Relat˘rio")
        
        Switch
          Case OPREL=-1  : MODO_IMPRESSAO(-1)
          Case OPREL=-2  : MODO_IMPRESSAO(-2)
          Case OPREL=-3  : MODO_IMPRESSAO(-3)
          Case OPREL=-4  : MODO_IMPRESSAO(-4)
          Case OPREL=-5  : MODO_IMPRESSAO(-5)
          Case OPREL=-6  : MODO_IMPRESSAO(-6)
          Case OPREL=1   : MODO_IMPRESSAO(5)
          Case OPREL=2   : MODO_IMPRESSAO(2)
          Case OPREL=3   : MODO_IMPRESSAO(5)
          Case OPREL=4   : MODO_IMPRESSAO(3)
          Case OPREL=5   : MODO_IMPRESSAO(4)
          Case OPREL=10  : MODO_IMPRESSAO(6)
          Case OPREL=11  : MODO_IMPRESSAO(7)
          Case OPREL=12  : MODO_IMPRESSAO(2)
          Case OPREL=13  : MODO_IMPRESSAO(2)
          Case OPREL=14  : MODO_IMPRESSAO(3)
          Case OPREL=16  : MODO_IMPRESSAO(0)
          Case OPREL=15  : MODO_IMPRESSAO(8)
          OTherWise      : MODO_IMPRESSAO(1)
        EndSwitch  
        
        If IsEmpty("Answer") 
           Then MENSAGEM("N„o existem registros a processar")
           Else If FAZ_ROTINA
                   Then 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")
                          MODO_IMPRESSAO(2)
                          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"
        EndIf  
        CoEdit "AcCarrgc"
        Moveto [Numero_Carregamento]
        Locate NUMDOC
        PickForm "1"
EndIf

EndProc ;ImprimeRel() 

;*******************************************************************************
;* Seleciona NF para impressao																								 *
;*******************************************************************************
Proc MODO_IMPRESSAO(ORDEM)
Private ORDEM

Switch      
  Case ORDEM=0 : 
       
       {Ask} {AcCarrgF} Check                  
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Do_It!
       ClearAll

       {Ask} {Answer} Check
       Moveto [Numero da OF         ] Example "Nof"          
       {Ask} {FaturaC}
       Moveto [Numero da OF         ] Example "Nof"
       Moveto [Numero Nota Gerada   ] Check    
       Do_It!
       ClearAll
       
       Tab_Cont=0
       NOTAS   =""
       
       TabelaT=Cria_Temp(PrivDir())
       Rename "Answer" TabelaT
       
       {Ask} TypeIn TabelaT Enter
       Moveto [Numero Nota Gerada   ] Check  
       Do_It!
       ClearAll
       
       View "Answer"
       Scan
         Tab_Cont=Tab_Cont+1
         If Tab_Cont=1
            Then NOTAS = NOTAS  + [Numero Nota Gerada]
            Else NOTAS = NOTAS + ", " + [Numero Nota Gerada]
         EndIf   
       EndScan
       ClearAll

       {Ask} TypeIn TabelaT Enter Check
       Do_It!
       ClearAll      

       {Ask} {Answer}
       Moveto [Numero da OF         ] Check Example "Nof"    
       Moveto [Numero Nota Gerada   ] Check      
       {Ask} {FaturaI}
       Moveto [Numero da OF         ] Example "Nof"
       Moveto [Codigo do Item       ] Check
       Moveto [Quantidade           ] Check
       Moveto [Volumes              ] Check
       Moveto [Peso Liquido         ] Check
       Do_It!
       ClearAll
       
       ;******* Itens *************************************
       {Ask} {\\Sistemas\\Estoque\\Itens}
       Moveto [Codigo do Item    ] Check Example "CodI"
       Moveto [Descricao do Item ] Check
       Moveto [Referencia        ] Check
       Moveto [Codigo da Marca   ] Check
       Moveto [Descricao da Marca] Check
       Moveto [Unidade Fiscal    ] Check
       {Ask} {Answer}                         
       Moveto [Numero da OF      ] Check
       Moveto [Quantidade        ] Check
       Moveto [Codigo do Item    ] Example "CodI"
       Moveto [Volumes           ] Check
       Moveto [Peso Liquido      ] Check
       Moveto [Numero Nota Gerada] Check  
       Do_It!
       ClearAll   

       Play "EV_0319"

  Case ORDEM=-1 :                                                               ;ETIQ1
       {Ask} {AcCarrgF} Check                  
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Do_It!
       ClearAll
       
       {Tools} {Copy} {JustFamily} {AcCarrgF} {Answer} {Replace}
       
       Play "EV_0000"
       
  Case ORDEM=-2            :                                                    ;ETIQ2
       {Ask} {AcCarrgF} Check                  
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       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} {AcCarrgF} {Answer} {Replace}
  
       Play "EV_0005"       

  Case ORDEM=-3      :                                                        ;ETIQ3
       {Ask} {AcCarrgF} Check                  
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       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} {AcCarrgF} {Answer} {Replace}

       Play "EV_0006"
                                                  
   Case ORDEM=-4     :                                                        ;ETIQT
        {Ask} {AcCarrgF} Check
        Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
        Do_It!
        ClearAll
        
        {Tools} {Copy} {JustFamily} {AcCarrgF} {Answer} {Replace}

        Play "EV_0003"

  Case ORDEM=-5     :                                                         ;CERTPOSTI
       {Ask} {AcCarrgF} Check
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Do_It!
       ClearAll
        
       {Tools} {Copy} {JustFamily} {AcCarrgF} {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

  Case ORDEM=-6     :                                                         ;CERTPOSTM
       {Ask} {AcCarrgF} Check
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Do_It!
       ClearAll
       
       {Tools} {Copy} {JustFamily} {AcCarrgF} {Answer} {Replace}

       Switch
         Case SYS_CODIGO_CLIENTE="0079": Play "CP_0079b"
         Case SYS_CODIGO_CLIENTE="0098": Play "CP_0098b"
         OtherWise                     : Play "CP_0002"
       EndSwitch
       
  Case ORDEM=1 : 
       {Ask} {AcCarrgF}
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Moveto [Sequencia          ] Check
       Moveto [Numero da OF       ] Example "NUM"
       {Ask} {FaturaI} Check
       Moveto [Numero da OF       ] Example "NUM"
       Do_It!
       Moveto "Answer"
       ClearAll

  Case ORDEM=2 : 
       {Ask} {AcCarrgF}
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Moveto [Numero da OF       ] Example "NUM"
       {Ask} {FaturaC} Check
       Moveto [Numero da OF       ] Example "NUM"
       Do_It!
       ClearAll
       
  Case ORDEM=3 : 
       {Ask} {AcCarrgF} Check
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       Moveto [Numero da OF       ] Example "NUM"
       Do_It!
       ClearAll

  Case ORDEM=4 : 
       {Ask} {AcCarrgF}
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       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

  Case ORDEM=5 : 
       {Ask} {AcCarrgF}
       Moveto [Numero_Carregamento    ] TypeIn "~NUMDOC"
       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
    
  Case ORDEM=6 : 
       {Ask} {AcCarrgF}
       Moveto [Numero_Carregamento    ] TypeIn "~NUMDOC"
       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

  Case ORDEM=7 : 
       {Ask} {AcCarrgF} Check
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       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
      
  Case ORDEM=8 :       
       {Ask} {AcCarrgF} Check
       Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
       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
EndSwitch

EndProc ;MODO_IMPRESSAO()

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

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

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 "Transportadora"  For "TG_TRANSP"
    Accept @ 05,01 Width 06 "A4"  Picture "[&,#][#*#]" Tag "TG_TRANSP"    To VSDGTRANSP
    Accept @ 05,08 Width 23 "A20" Picture "!*!" Tag "TG_NOMTRANSP" To VSDGNOMTRANSP
    
    Label  @ 06,00 "Cidade"  For "TG_CIDADE"
    Accept @ 07,01 Width 23 "A20" Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE

    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 [Codigo da Transportadora] TypeIn "~VSDGTRANSP.."
          Moveto [Descricao CondPagto     ] TypeIn "Not CONTRA APRES.."
          Moveto [Numero_Carregamento     ] TypeIn "Blank"
          
          Do_It!
          ClearAll
          If IsEmpty("Answer")
             Then Mensagem("N„o exitem registros conforme sele‡„o !")
                  Loop
             Else View "AcCarrgF"
                  Moveto [Numero_Carregamento]
                  Locate NUMDOC
                  If RetVal
                     Then While [Numero_Carregamento]=NUMDOC
                          SEQ=[Sequencia]
                          Skip
                          If Eot() Then QuitLoop EndIf
                          EndWhile
                     Else SEQ=0     
                  EndIf    
                  
                  Coedit "Answer"    
                  Scan
                  Moveto "AcCarrgF"
                  Moveto [Numero_Carregamento]
                  Locate NUMDOC
                  If RetVal
                     Then While [Numero_Carregamento]=NUMDOC
                            SEQ=[Sequencia]
                            Skip
                            If Eot() Then QuitLoop EndIf
                          EndWhile
                     Else SEQ=0
                  EndIf   
                  End 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
                  [Numero_Carregamento]=NUMDOC  
                  SEQ                  =[Sequencia                 ]
  
                  UnLockRecord
                  Moveto "Answer"
                  EndScan
                  Do_It!
                  ClearAll

                  QuitLoop
          EndIf
  EndIf
EndWhile
ClearAll
If IsTable("Answer")
   Then Delete "Answer"
EndIf

CoEdit "AcCarrgc"
Moveto [Numero_Carregamento]
Locate NUMDOC
PickForm "1"

EndProc ;Selecao()

;*******************************************************************************
;* 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 "AcCarrgc"
Moveto [Numero_Carregamento]
Locate NUMDOC
PickForm "1"

EndProc ;Selecao2()

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao3()
LimpAguarde()

ConfGeral("Deseja batizar as notas com esse carregamento ?")
If Ok<>"S"
   Then Return
EndIf

Do_It!
ClearAll

Echo Off
AtualizaCarreg()

CoEdit "AcCarrgc"          
Moveto [Numero_Carregamento]
Locate NUMDOC
PickForm "1"

EndProc ;Selecao3()

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

{Ask} {AcCarrgF}
Moveto [Numero_Carregamento] TypeIn "~NUMDOC"
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]=NUMDOC
          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]=NUMDOC
                                    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]=NUMDOC
									UnLockRecord
          EndIf
          
          Moveto "PedidoC"
          Moveto [Numero do Pedido]
					Locate [Answer->Numero do Pedido]
          If RetVal
						 Then [Numero_Carregamento]=NUMDOC  
									UnLockRecord
          EndIf
  EndIf

  Moveto "Answer"
EndScan
Do_It!
ClearAll

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

EndProc ;AtualizaCarreg

;*******************************************************************************
;* Exclusao Carregamento                                                       *
;*******************************************************************************
Proc ExcluiCarreg()
Private NPED

NPED   = ""
NUM_OF = [Numero da OF] 
Del

Do_It!
ClearAll

Excluir_Carregamento=False

View "\\Sistemas\\CtaRec\\Duplic"
View "DupI"
View "DupNF"
View "NotaC"
View "PedidoC"
Coedit "FaturaC"
Moveto [Numero_Carregamento] 
Locate NUMDOC
If RetVal
   Then SeExisteCarregExclui()
EndIf

Do_It!
ClearAll

CoEdit "AcCarrgc"
Moveto [Numero_Carregamento]
Locate NUMDOC
PickForm "1"       

EndProc ;ExcluiCarreg()

;*******************************************************************************
;* Se Existe Carregamento, Exclui!                                             *
;*******************************************************************************
Proc SeExisteCarregExclui()

Moveto "FaturaC"
Moveto [Numero da Of]
Locate NUM_OF
If RetVal
   Then NPED = [Numero do Pedido]
        If [Numero_Carregamento]=NUMDOC 
           Then Moveto [Numero_Carregamento]
                CtrlBackSpace 
                UnLockRecord                                                 
        EndIf
EndIf    

If NPED<>""
   Then Moveto "PedidoC"
        Moveto [Numero do Pedido]
        Locate NPED
        If RetVal
           Then If [Numero_Carregamento]=NUMDOC 
                   Then Moveto [Numero_Carregamento]
                        CtrlBackSpace 
                        UnLockRecord
                EndIf        
        EndIf
EndIf    

Moveto "NotaC"
Moveto [Numero da Of]
Locate NUM_OF
If RetVal
   Then If [Numero_Carregamento]=NUMDOC 
           Then Moveto [Numero_Carregamento]
                CtrlBackSpace 
                UnLockRecord
                Excluir_Carregamento=True  
        EndIf
EndIf  

If Excluir_Carregamento
   Then CODEMP     = [Codigo da Empresa]  
        NDOCUMENTO = [Numero do Documento]
        SERDOC     = [Serie do Documento]
 
        If SubStr([Codigo do Documento],1,2)="NF"
           Then DP_CDDOCTO="DUP"
                DP_SRDOCTO=""
           Else DP_CDDOCTO=[Codigo do Documento]
                DP_SRDOCTO=[Serie do Documento ]
        EndIf

        NF_EXISTE=False
        Moveto "DupNF"
        Moveto [Numero da Nota]
          Locate IndexOrder by "idupnf01" NDOCUMENTO,SERDOC,CODEMP
          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 CODEMP, DP_NUMDOCTO, DP_SRDOCTO
                  If RetVal
                     Then While [Codigo da Empresa  ]=CODEMP      And
                                [Numero do Documento]=DP_NUMDOCTO And
                                [Serie do Documento ]=DP_SRDOCTO

                            CHV_EMPRESA=[Codigo da Empresa]
                            CHV_TPDOCTO=DP_CDDOCTO
                            
                            If [Ordem do Documento]<>""
                               Then CHV_NUMERO_ORDEM=[Numero do Documento]+"/"+[Ordem do Documento]
                               Else CHV_NUMERO_ORDEM=[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 If [Numero_Carregamento_Orig]=NUMDOC
                                       Then Moveto [Numero_Carregamento_Orig]
                                            CtrlBackSpace
                                            UnLockRecord
                                    EndIf                
                            EndIf

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

EndProc ;SeExisteCarregExclui()

;*******************************************************************************
;* Exclusao de Registros                                                       *
;*******************************************************************************
Proc EXCLUSAO()

Moveto "AcCarrgI"
While RecordStatus("New")=False
   Del
EndWhile

Moveto "AcCarrgV"
While RecordStatus("New")=False
    Del
EndWhile

Excluir_Carregamento=False

Do_It!
ClearAll

View "\\Sistemas\\CtaRec\\Duplic"
View "DupI"
View "DupNF"
View "NotaC"
View "PedidoC"
View "FaturaC"
View "AcCarrgC"

Coedit "AcCarrgF"
Moveto [Numero_Carregamento]
Locate NUMDOC
If RetVal
   Then While [Numero_Carregamento]=NUMDOC
           NUM_OF = [Numero da OF]
           SeExisteCarregExclui()
           
           Moveto "AcCarrgF"
           Del
        EndWhile
EndIf

Moveto "AcCarrgC"
Moveto [Numero_Carregamento]
Locate NUMDOC
If RetVal
   Then Del
EndIf   

Do_It!
ClearAll

CoEdit "AcCarrgc"
PickForm "R"

EndProc ;EXCLUSAO()

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoD()
DIGITAD()
Endproc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoV()
DIGITAV()
Endproc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoF()
DIGITAF()
Endproc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITAC=True

While DIGITAC
  Moveto "Accarrgc"
  
  DIGITAC()
  If CHAVEC=9 Then QuitLoop EndIf  
  
  If CHAVEC=1
     Then Controle_Dia()
  EndIf

  While Not IsBlank(Tecla_Funcao)
    Switch
      Case Tecla_Funcao=-116:
           Switch
             Case Table()="Accarrgc"  : Tecla_Funcao="F8"       ;F8  => Despesas
						 Case Table()="Accarrgi"  : Tecla_Funcao="F9"       ;F9  => Recebimentos 
             Case Table()="Accarrgv"  : Tecla_Funcao="F10"      ;F10 => Carregamento
             Case Table()="Accarrgf"  : Tecla_Funcao=-10        ;-10 => Geral
             OtherWise                : Tecla_Funcao=""
           EndSwitch     
      Case Tecla_Funcao=-115:
           Switch
             Case Table()="Accarrgc"  : Tecla_Funcao="F10"
						 Case Table()="Accarrgi"  : Tecla_Funcao=-10
             Case Table()="Accarrgv"  : Tecla_Funcao="F8"
             Case Table()="Accarrgf"  : Tecla_Funcao="F9"
             OtherWise                : Tecla_Funcao=""
           EndSwitch
    EndSwitch

    Switch
      Case Tecla_Funcao=-10  :          
           Moveto "Accarrgc"
           QuitLoop

      Case Tecla_Funcao="F8" :          
           Moveto "AcCarrgi"
           While True
             CHAVED()
             If CHAVEG=9 Or CHAVEG=8
                Then QuitLoop 
             EndIf
             Controla_EdicaoD()
           EndWhile

      Case Tecla_Funcao="F9" : 
           Moveto "AcCarrgv"
           While True
             CHAVEV()
             If CHAVEG=9 Or CHAVEG=8
                Then QuitLoop 
             EndIf
             Controla_EdicaoV()
           EndWhile
           
      Case Tecla_Funcao="F10" : 
           Moveto "AcCarrgf"
           While True
             CHAVEF()
             If CHAVEG=9 Or CHAVEG=8
                Then QuitLoop 
             EndIf
             Controla_EdicaoF()
           EndWhile
    EndSwitch
  EndWhile
EndWhile

If RecordStatus("Locked") Then UnLockRecord EndIf         
If OPCAO_FORM="F"
   Then PickForm "F"
EndIf
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

If Not IsAssigned(SYS_EMPRESA_DEFAULT) Then SYS_EMPRESA_DEFAULT="" EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf
If Not IsAssigned(SYS_CONTROLE_DIA)    Then SYS_CONTROLE_DIA=""    EndIf

CoEdit "AcCarrgc"
PickForm "F"
OPCAO_FORM="F"
While True
  CHAVE()
  If CHAVEC=9 Then QuitLoop EndIf
  If CHAVEC=1 Then Controle_Dia() EndIf
  If CHAVEC=5
     Then If OPCAO_FORM="F"
             Then PickForm "F"
             Else PickForm "1"
          EndIf
          Loop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All