;** Rm_0986 ********************************************************************
;* Acerto Pre-Venda                                                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 10/01/2006 por Anivel Augusto Rodrigues
;Ultima Alteracao: 09/06/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Trucamento

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona()
ClearAll

;****** Carregamento ***********************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"AcCarrgC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"AcCarrgC" Enter Check
        Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        If IsEmpty("Answer")
           Then MENSAGEM("Carregamento n„o encontrado !")
                Return
        EndIf
        Adiciona_Dados1()

EndIf

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Example "cemp" Check TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Example "ndoc" Check
        Moveto [Serie do Documento     ] Example "sdoc" Check
        Moveto [Data de Emissao        ] Check
        Moveto [Descricao da Destinacao] TypeIn "VENDA.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Condicao de Pagamento  ] Check
        Moveto [Descricao CondPagto    ] Check
        Moveto [Tipo de Pagamento      ] Check
        Moveto [Valor Nota Fiscal      ] Check
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Sequencia              ] Check
        Moveto [Data                   ] Check
        Moveto [Valor                  ] Check
        Moveto [Forma de Pagamento     ] Check
        Do_It!
        ClearAll

        Adiciona_Dados2("VENDAS")
        Adiciona_Dados3()
EndIf

;****** Bonificacoes ***********************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Descricao da Destinacao] TypeIn "BONIFICA.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Valor Nota Fiscal      ] Check
        Do_It!
        ClearAll

        Adiciona_Dados2("BONIFICACOES")
EndIf

;****** Trocas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Descricao da Destinacao] TypeIn "..TROCA.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Valor Nota Fiscal      ] Check
        Do_It!
        ClearAll

        Adiciona_Dados2("TROCAS")
EndIf

;****** Devolucoes ****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Descricao da Destinacao] TypeIn "..DEVOL.."
        Moveto [Tipo Movimento Estoque ] TypeIn "E"
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Valor Nota Fiscal      ] Check
        Moveto [Tipo de Pagamento      ] Check
        Moveto [Forma de Pagamento     ] Check
        Do_It!
        ClearAll

        Adiciona_Dados2("DEVOLUCOES1")
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC")
   Then {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
        Moveto [Numero do Lancamento   ] Check Example "nlan"
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Tipo de Operacao       ] TypeIn "D"
        Moveto [Numero do Documento    ] Check
        Moveto [Serie do Documento     ] Check
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Valor Nota Fiscal      ] Check
        Moveto [Tipo de Pagamento      ] Check
        Do_It!
        ClearAll

        Adiciona_Dados2("DEVOLUCOES2")
EndIf

;****** Titulos Gerados ********************************************************
If IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic")
   Then {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic" Enter
        Moveto [Numero do Lancamento   ] Check
        Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Emissao        ] Check
        Moveto [Data de Vencimento     ] Check
        Moveto [Valor do Documento     ] Check
        Moveto [Tipo do Pagamento      ] Check
        Moveto [Numero_Carregamento_Orig] Check TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        Adiciona_Dados2T()
EndIf

;****** Titulos Baixados *******************************************************
If IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic") And
   IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"DupBaixa")
   Then {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic" Enter
        Moveto [Numero do Lancamento   ] Check Example "nlan"
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Data de Emissao        ] Check
        Moveto [Data de Vencimento     ] Check
        Moveto [Valor do Documento     ] Check
        Moveto [Tipo do Pagamento      ] Check
        Moveto [Numero_Carregamento_Orig] Check
        {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"DupBaixa" Enter
        Moveto [Numero do Lancamento   ] Example "nlan"
        Moveto [Sequencia da Baixa     ] Check
        Moveto [Tipo da Baixa          ] Check
        Moveto [Data do Pagamento      ] Check
        Moveto [Valor do Recebimento   ] Check
        Moveto [Valor do Desconto      ] Check
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        Adiciona_Dados4()
EndIf

;****** Cheques Recebidos ******************************************************
If IsTable("\\Sistemas\\Cheqrec\\"+Dir_Trab+"ChequeC") And
   IsTable("\\Sistemas\\Cheqrec\\"+Dir_Trab+"ChequeI")
   Then {Ask} TypeIn "\\Sistemas\\Cheqrec\\"+Dir_Trab+"ChequeC" Enter
        Moveto [Numero do Lancamento    ] Check Example "nlan"
        Moveto [Codigo da Empresa       ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero_Carregamento_Orig] Check TypeIn "~VSDGNCARREG"
        Moveto [Data de Entrada         ] Check
        {Ask} TypeIn "\\Sistemas\\Cheqrec\\"+Dir_Trab+"ChequeI" Enter
        Moveto [Numero do Lancamento    ] Example "nlan"
        Moveto [Sequencia do Cheque     ] Check
        Moveto [Data Vencimento         ] Check
        Moveto [Valor                   ] Check
        Do_It!
        ClearAll

        Adiciona_Dados5()
EndIf

EndProc   ;  (Seleciona)

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados1()

If IsEmpty("Answer")
   Then Return
EndIf
{Ask} {Answer}
Moveto [Numero_Carregamento    ] Example "ncar"
Moveto [Data de Emissao        ] Example "dtem"
Moveto [Codigo Motorista       ] Example "cmot"
Moveto [Nome Fantasia EmitDest ] Example "nmot"
Moveto [Codigo do Representante] Example "crep"
Moveto [Nome Fantasia Represent] Example "nrep"
Moveto [Placa do Veiculo       ] Example "plac"
Moveto [Km Saida               ] Example "kms"
Moveto [Km Chegada             ] Example "kmc"
Moveto [Km Rodado              ] Example "kmr"
Moveto [Litros Combustivel     ] Example "ltc"
Moveto [Valor Combustivel      ] Example "vrc"
Moveto [Media Consumo          ] Example "vrm"
Moveto [Data_Saida             ] Example "dts"
Moveto [Data_Chegada           ] Example "dtc"
Moveto [NDiscos                ] Example "nd"
{Ask} TypeIn Tabela1 Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] TypeIn VSDGEMPRESA
Moveto [Numero_Carregamento    ] Example "ncar"
Moveto [Data de Emissao        ] Example "dtem"
Moveto [Codigo do Representante] Example "crep"
Moveto [Nome Fantasia Represent] Example "nrep"
Moveto [Placa do Veiculo       ] Example "plac"
Moveto [Codigo Motorista       ] Example "cmot"
Moveto [Nome Fantasia EmitDest ] Example "nmot"
Moveto [Km Saida               ] Example "kms"
Moveto [Km Chegada             ] Example "kmc"
Moveto [Km Rodado              ] Example "kmr"
Moveto [Litros Combustivel     ] Example "ltc"
Moveto [Valor Combustivel      ] Example "vrc"
Moveto [Media Consumo          ] Example "vrm"
Moveto [Data_Saida             ] Example "dts"
Moveto [Data_Chegada           ] Example "dtc"
Moveto [NDiscos                ] Example "nd"
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados2(Tipo)

If IsEmpty("Answer")
   Then Return
EndIf

EMPANT="***"
EMPDOC="***"
EMPSER="***"
View Tabela2
CoEdit "Answer"
Scan

  If Tipo="VENDAS"
     Then If (  [Answer->Data]=[Answer->Data de Emissao] ) Or
             (  IsBlank([Answer->Data]) ) Or
             ( ([Answer->Data]-[Answer->Data de Emissao])<=7 And
                [Answer->Forma de Pagamento]<>"CP" )
             Then TipoPg="1"
             Else If [Answer->Forma de Pagamento]="CP"
                     Then TipoPg="2"
                     Else TipoPg="3"
                  EndIf
          EndIf
     Else If Tipo="DEVOLUCOES1" Or Tipo="DEVOLUCOES2"
             Then If [Answer->Tipo de Pagamento]="V" Or
                     [Answer->Tipo de Pagamento]="O"
                     Then TipoPg="1"
                     Else If [Answer->Forma de Pagamento]="CP"
                             Then TipoPg="2"
                             Else TipoPg="3"
                          EndIf
                  EndIf
             Else TipoPg="1"
          EndIf
  EndIf

  Moveto Tabela2
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa  ],
         [Answer->Numero_Carregamento],
         TipoPg
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa  ]=[Answer->Codigo da Empresa  ]
          [Numero_Carregamento]=[Answer->Numero_Carregamento]
          [Tipo de Pagamento  ]=TipoPg
  EndIf

  If [Answer->Codigo da Empresa  ]<>EMPANT Or
     [Answer->Numero do Documento]<>EMPDOC Or
     [Answer->Serie do Documento ]<>EMPSER
     Then Switch
            Case Tipo="TROCAS"      : [Troca_VrTotal  ]=[Troca_VrTotal  ]+[Answer->Valor Nota Fiscal]
            Case Tipo="BONIFICACOES": [Bonif_VrTotal  ]=[Bonif_VrTotal  ]+[Answer->Valor Nota Fiscal]
            Case Tipo="DEVOLUCOES1" : [Devol_VrTotal  ]=[Devol_VrTotal  ]+[Answer->Valor Nota Fiscal]
            Case Tipo="DEVOLUCOES2" : [Devol_VrTotal  ]=[Devol_VrTotal  ]+[Answer->Valor Nota Fiscal]
            Case Tipo="VENDAS"      : [Total_VrTotal  ]=[Total_VrTotal  ]+[Answer->Valor Nota Fiscal]
          EndSwitch

          EMPANT=[Answer->Codigo da Empresa  ]
          EMPDOC=[Answer->Numero do Documento]
          EMPSER=[Answer->Serie do Documento ]
  EndIf
  If Tipo="VENDAS"
     Then [Venda_VrTotal  ]=[Venda_VrTotal  ]+[Answer->Valor]
  EndIf

  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados2T()

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela2
CoEdit "Answer"
Scan

  If (  [Answer->Data de Vencimento]=[Answer->Data de Emissao] ) Or
     (  IsBlank([Answer->Data de Vencimento]) ) Or
     ( ([Answer->Data de Vencimento]-[Answer->Data de Emissao])<=7 And
        [Answer->Tipo do Pagamento]<>"CP" )
     Then TipoPg="1"
     Else If [Answer->Tipo do Pagamento]="CP"
             Then TipoPg="2"
             Else TipoPg="3"
          EndIf
  EndIf

  Moveto Tabela2
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa  ],
         [Answer->Numero_Carregamento_Orig],
         TipoPg
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa  ]=[Answer->Codigo da Empresa  ]
          [Numero_Carregamento]=[Answer->Numero_Carregamento_Orig]
          [Tipo de Pagamento  ]=TipoPg
  EndIf
  [Titul_VrTotal  ]=[Titul_VrTotal  ]+[Answer->Valor do Documento]

  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados3()

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela3
CoEdit "Answer"
Scan
  ;*** Resumo por Forma de Pagamento
  Moveto Tabela3
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa    ],
         [Answer->Numero_Carregamento  ],
         "0",
         "",
         [Answer->Forma de Pagamento   ]
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
          [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
          [Tipo                 ]="0"
          [Forma de Pagamento   ]=[Answer->Forma de Pagamento   ]
  EndIf
  [Valor]=[Valor]+[Answer->Valor]


  ;*** Resumo por Condicao de Pagamento
  Moveto Tabela3
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa    ],
         [Answer->Numero_Carregamento  ],
         "1",
         [Answer->Condicao de Pagamento],
         ""
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
          [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
          [Tipo                 ]="1"
          [Condicao de Pagamento]=[Answer->Condicao de Pagamento]
  EndIf
  [Valor]=[Valor]+[Answer->Valor]


  ;*** Resumo A Prazo com Cheque Pre
  If [Answer->Tipo de Pagamento ]="P" And
     [Answer->Forma de Pagamento]="CP"
     Then
          Moveto Tabela3
          Moveto [Codigo da Empresa]
          Locate [Answer->Codigo da Empresa    ],
                 [Answer->Numero_Carregamento  ],
                 "2",
                 "",
                 [Answer->Forma de Pagamento   ]
          If Not RetVal
             Then End
                  Down
                  [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
                  [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
                  [Tipo                 ]="2"
                  [Forma de Pagamento   ]=[Answer->Forma de Pagamento   ]
          EndIf
          [Valor]=[Valor]+[Answer->Valor]
  EndIf

  Moveto "Answer"
EndScan

Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados4()

If IsEmpty("Answer")
   Then Return
EndIf

NLANT="**"
View Tabela4
CoEdit "Answer"
Scan

  If [Numero_Carregamento_Orig]=[Numero_Carregamento]
     Then If (  [Answer->Data de Vencimento]=[Answer->Data de Emissao] ) Or
             (  IsBlank([Answer->Data de Vencimento]) ) Or
             ( ([Answer->Data de Vencimento]-[Answer->Data de Emissao])<=7 And
                [Answer->Tipo do Pagamento]<>"CP" )
             Then TipoPg="1"
             Else If [Answer->Tipo do Pagamento]="CP"
                     Then TipoPg="2"
                     Else TipoPg="4"
                  EndIf
          EndIf
     Else TipoPg="3"
  EndIf

  Moveto Tabela4
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa    ],
         [Answer->Numero_Carregamento  ], TipoPg
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
          [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
          [Tipo de Pagamento    ]=TipoPg
  EndIf
  Switch
    Case [Answer->Tipo da Baixa]="NORMAL"    : [Valor Recebido  ]=[Valor Recebido  ]+[Answer->Valor do Recebimento   ]
    Case [Answer->Tipo da Baixa]="DEVOLUCAO" : [Valor Devolucao ]=[Valor Devolucao ]+[Answer->Valor do Recebimento   ]
  EndSwitch

  If [Answer->Numero do Lancamento]<>NLANT
     Then [Valor Original]=[Valor Original]+[Answer->Valor do Documento]
          [Valor Desconto]=[Valor Desconto]+[Answer->Valor do Desconto ]
          NLANT=[Answer->Numero do Lancamento]
  EndIf
  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados5()

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela5
CoEdit "Answer"
Scan

  NDIAS=[Data Vencimento]-[Data de Entrada]

  Moveto Tabela5
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa  ],
         [Answer->Numero_Carregamento_Orig]
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa  ]=[Answer->Codigo da Empresa  ]
          [Numero_Carregamento]=[Answer->Numero_Carregamento_Orig]
  EndIf

  Switch
   Case NDIAS>120              :
      [Mais_120_Valor ]=[Mais_120_Valor ]+[Answer->Valor]
      [Mais_120_Nchq  ]=[Mais_120_NChq  ]+1
   Case NDIAS>90 AND NDIAS<=120:
      [91_120_Valor    ]=[91_120_Valor    ]+[Answer->Valor]
      [91_120_Nchq     ]=[91_120_NChq     ]+1
   Case NDIAS>60 AND NDIAS<=90 :
      [61_90_Valor     ]=[61_90_Valor     ]+[Answer->Valor]
      [61_90_Nchq      ]=[61_90_NChq      ]+1
   Case NDIAS>30 AND NDIAS<=60 :
      [31_60_Valor     ]=[31_60_Valor     ]+[Answer->Valor]
      [31_60_Nchq      ]=[31_60_NChq      ]+1
   Case NDIAS>1 AND NDIAS<=30  :
      [2_30_Valor      ]=[2_30_Valor      ]+[Answer->Valor]
      [2_30_Nchq       ]=[2_30_NChq       ]+1
   OtherWise:
      [Ate_1_Valor     ]=[Ate_1_Valor     ]+[Answer->Valor]
      [Ate_1_Nchq      ]=[Ate_1_NChq      ]+1
  EndSwitch

  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina imprime Linha 3 colunas                                              *
;*******************************************************************************
Proc Imprime_Linha()
If wnc=3
   Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
        wnc  =0
        LINHA=""
EndIf
wnc=wnc+1
EndProc

;*******************************************************************************
;* Rotina p/ Impressao                                                         *
;*******************************************************************************
Proc Imprimir()
AGUARDE("Aguarde, processando dados")

If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="TESTE" EndIf

EMPANT  = "****"
CARANT  = "****"

pag=0
lin=0

View "AcCarrgC"
View "AcCarrgV"
View Tabela5
View Tabela4
View Tabela3
View Tabela2
View Tabela1
Scan

  If [Codigo da Empresa  ]<>EMPANT  Or
     [Numero_Carregamento]<>CARANT
     Then TotalFinanc()

          EMPANT =[Codigo da Empresa  ]
          CARANT =[Numero_Carregamento]

          Moveto Tabela1
          Cabecalho()
  EndIf

EndScan

TotalFinanc()

;;Print File ARQIMP ASP1+CI_10CPP+ASP2
;;Print File ARQIMP ASP1+CI_6LPP+ASP2
ClearAll
EndProc   ;  (Imprimir)


;*******************************************************************************
;* Rotina checagem n. de linhas                                                *
;*******************************************************************************
Proc ChecaLinhaPagina(MaxLin)
Private MaxLin

If lin>=MaxLin
   Then While True
          If OPCAOPAG<>"Todas"
             Then If pag<OPCAOPAGINI Or
                     pag>OPCAOPAGFIM
                     Then QuitLoop
                  EndIf
          EndIf
          Print File ARQIMP ASP1+"\f"+ASP2+"\n"
          QuitLoop
        EndWhile
        Cabecalho()
EndIf
EndProc

;*******************************************************************************
;* Rotina p/ Cabecalho                                                         *
;*******************************************************************************
Proc Cabecalho()
While True
  pag=pag+1

  If OPCAOPAG<>"Todas"
     Then If pag<OPCAOPAGINI Or
             pag>OPCAOPAGFIM
             Then Moveto Tabela1
                  QuitLoop
          EndIf
  EndIf

  Moveto Tabela1
  Print File ARQIMP ASP1+CI_10CPP+CI_6LPP+ASP2+Fill("-",78)+ASP2+"\n"
  Print File ARQIMP ASP1+COMPLETA(NOMEMPRESA,38," ")+"Emissao.: "+
             AlinhM(LTrim(Format("D13",Today())),10)+"-"+
             AlinhM(LTrim(Time()),8)+"  Pag.:"+Format("W4,EIC",pag)+ASP2+"\n"
  Print File ARQIMP ASP1+Fill("-",78)+ASP2+"\n"
  Print File ARQIMP ASP1+Format("W80,AC","Acerto Pre-Venda")+ASP2+"\n"
  Print File ARQIMP ASP1+COMPLETA("Empresa......: "+VSDGEMPRESA+" "+VSDGNOMEMP,43," ")
  Print File ARQIMP      "No Carr: "+[Numero_Carregamento]+ASP2+"\n"
  Print File ARQIMP ASP1+COMPLETA("Repr/Vendedor: "+[Codigo do Representante]+" "+[Nome Fantasia Represent],43," ")
  Print File ARQIMP      "Veiculo: "+COMPLETA([Placa do Veiculo],10," ")+ASP2+"\n"
  Print File ARQIMP ASP1+COMPLETA("Motorista....: "+[Codigo Motorista]+" "+[Nome Fantasia EmitDest],43," ")+ASP2+"\n"

  Print File ARQIMP ASP1+COMPLETA("DtSaida.. "+Format("D13",[Data_Saida]),22," ")+
                         COMPLETA("KmSaida.. "+Format("W10.1,EIC",[Km Saida]),22," ")+
                         COMPLETA("LtComb "+Format("W10.2,EIC",[Litros Combustivel]),17," ")+
                         COMPLETA(Format("W6.1,EIC",[Media Consumo])+" Km/Lt",15," ")+ASP2+"\n"

  Print File ARQIMP ASP1+COMPLETA("DtChegada "+Format("D13",[Data_Chegada]),22," ")+
                         COMPLETA("KmChegada "+Format("W10.1,EIC",[Km Chegada]),22," ")+
                         COMPLETA("VrComb "+Format("W10.2,EIC",[Valor Combustivel]),17," ")+
                         COMPLETA(Format("W8.3,EIC",[Valor Combustivel]/[Litros Combustivel] )+" Vr/Lt",15," ")+ASP2+"\n"

  Print File ARQIMP ASP1+COMPLETA("No Discos "+Format("W4,EIC",[NDiscos]),22," ")+
                         COMPLETA("KmRodado. "+Format("W10.1,EIC",[Km Rodado]),22," ")+ASP2+"\n"

  Print File ARQIMP ASP1+Fill("-",78)+ASP2+"\n"

  QuitLoop
EndWhile
lin=11

EndProc   ; (Cabecalho)

;*******************************************************************************
;* Rotina p/ Total                                                             *
;*******************************************************************************
Proc TotalFinanc()
While pag>0
  ChecaLinhaPagina(40)

  If OPCAOPAG<>"Todas"
     Then If pag<OPCAOPAGINI Or
             pag>OPCAOPAGFIM
             Then Moveto Tabela1
                  QuitLoop
          EndIf
  EndIf

  TOT_DEVV=0  TOT_DEVP=0  TOT_DEVPCP=0
  TOT_RECV=0  TOT_RECP=0  TOT_RECPCP=0  TOT_RECB=0
  TOT_VENV=0  TOT_VENP=0  TOT_VENPCP=0  TOT_VEND=0
  TOT_ORIG=0  TOT_DEVF=0  TOT_TROC=0    TOT_BONI=0  TOT_DFGR=0

  Print File ARQIMP ASP1+"-Faturas       [A]         [B]                                 [C]       [A-C]"+ASP2+"\n"
  Print File ARQIMP ASP1+"            Vendas  Devolucoes      Trocas Bonificacoes  A Receber   Diferenca"+ASP2+"\n"
  Moveto Tabela2                 ;999.999,99  999.999,99  999.999,99  999.999,99  999.999,99  999.999,99
                                 ;----------  ----------  ----------  ----------  ----------  ----------
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT
  If RetVal
     Then wnc=0
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT
            wnc=wnc+1

            Switch
              Case [Tipo de Pagamento]="1":
                   LINHA="A Vista "
                   TOT_DEVV=TOT_DEVV+[Devol_VrTotal]
                   TOT_VENV=TOT_VENV+[Venda_VrTotal]
              Case [Tipo de Pagamento]="2":
                   LINHA="Prazo CP"
                   TOT_DEVPCP=TOT_DEVPCP+[Devol_VrTotal]
                   TOT_VENPCP=TOT_VENPCP+[Venda_VrTotal]
              Case [Tipo de Pagamento]="3":
                   LINHA="Prazo Ou"
                   TOT_DEVP=TOT_DEVP+[Devol_VrTotal]
                   TOT_VENP=TOT_VENP+[Venda_VrTotal]
            EndSwitch
            VR_DIF_FAT_GREC=[Venda_VrTotal]-[Titul_VrTotal]

            LINHA=LINHA+Format("W10.2,EIC",[Venda_VrTotal])+" "+
                        Format("W11.2,EIC",[Devol_VrTotal])+" "+
                        Format("W11.2,EIC",[Troca_VrTotal])+" "+
                        Format("W11.2,EIC",[Bonif_VrTotal])+" "+
                        Format("W11.2,EIC",[Titul_VrTotal])+" "+
                        Format("W11.2,EIC",VR_DIF_FAT_GREC)
            Print File ARQIMP ASP1+LINHA+ASP2+"\n"

            TOT_ORIG=TOT_ORIG+[Venda_VrTotal]
            TOT_DEVF=TOT_DEVF+[Devol_VrTotal]
            TOT_TROC=TOT_TROC+[Troca_VrTotal]
            TOT_BONI=TOT_BONI+[Bonif_VrTotal]
            TOT_VEND=TOT_VEND+[Total_VrTotal]
            TOT_RECB=TOT_RECB+[Titul_VrTotal]
            TOT_DFGR=TOT_DFGR+VR_DIF_FAT_GREC
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          If wnc>1
             Then Print File ARQIMP ASP1+"        ----------  ----------  ----------  ----------  ----------  ----------"+ASP2+"\n"
                  Print File ARQIMP ASP1+"Total.."+
                                         Format("W11.2,EIC",TOT_ORIG)+" "+
                                         Format("W11.2,EIC",TOT_DEVF)+" "+
                                         Format("W11.2,EIC",TOT_TROC)+" "+
                                         Format("W11.2,EIC",TOT_BONI)+" "+
                                         Format("W11.2,EIC",TOT_RECB)+" "+
                                         Format("W11.2,EIC",TOT_DFGR)+ASP2+"\n"
          EndIf
          If TOT_VEND<>(TOT_ORIG)
             Then Print File ARQIMP ASP1+"Real..."+
                                         Format("W11.2,EIC",TOT_VEND)+" "+
                                         Format("W11.2,EIC",TOT_ORIG-TOT_VEND)+" <=Diferenca"+ASP2+"\n"
          EndIf
  EndIf
  Print File ARQIMP ASP1+""+ASP2+"\n"

  Print File ARQIMP ASP1+Spaces(01)+"Formas Pagto Vendas"+ASP2+"\n"
  TOT_FPGTO =0
  Moveto Tabela3
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT, "0"
  If RetVal
     Then wnc  =0
          LINHA=""
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT And
                [Tipo               ]="0"
            Imprime_Linha()
            LINHA=LINHA+Spaces(01)+COMPLETA(SubStr([Descricao Tipo Pagamento],1,12),12,".")+Format("W11.2,EIC",[Valor])+"   "
            TOT_FPGTO=TOT_FPGTO+[Valor]
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          Imprime_Linha()
          LINHA=LINHA+Spaces(01)+COMPLETA("Total",12,".")+Format("W11.2,EIC",TOT_FPGTO)+"   "
          If TOT_FPGTO<>TOT_VEND
             Then Imprime_Linha()
                  LINHA=LINHA+Spaces(01)+" Diferenca=>"+Format("W11.2,EIC",(TOT_FPGTO-TOT_VEND))+"   "
          EndIf
          Print File ARQIMP ASP1+LINHA+ASP2+"\n"
  EndIf
  Print File ARQIMP ASP1+""+ASP2+"\n"

  Print File ARQIMP ASP1+Spaces(01)+"Condicoes Pagto Vendas"+ASP2+"\n"
  TOT_CPGTO =0
  Moveto Tabela3
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT, "1"
  If RetVal
     Then wnc  =0
          LINHA=""
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT And
                [Tipo               ]="1"
            Imprime_Linha()
            LINHA=LINHA+Spaces(01)+COMPLETA(SubStr([Descricao CondPagto],1,12),12,".")+Format("W11.2,EIC",[Valor])+"   "
            TOT_CPGTO=TOT_CPGTO+[Valor]
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          Imprime_Linha()
          LINHA=LINHA+Spaces(01)+COMPLETA("Total",12,".")+Format("W11.2,EIC",TOT_CPGTO)+"   "
          If TOT_CPGTO<>TOT_VEND
             Then Imprime_Linha()
                  LINHA=LINHA+Spaces(01)+" Diferenca=>"+Format("W11.2,EIC",(TOT_CPGTO-TOT_VEND))+"   "
          EndIf
          Print File ARQIMP ASP1+LINHA+ASP2+"\n"
  EndIf
  Print File ARQIMP ASP1+Fill("-",78)+ASP2+"\n"

  TOT_DOCT=0
  TOT_DEVT=0
  TOT_DESC=0
  TOT_RECE=0  TOT_RECP=0  TOT_RECPCP=0
  TOT_DTB=0
  TOT_DFB=0

  Print File ARQIMP ASP1+"-Cobr/Baixas   [D]         [E]         [F]         [G] [D-(E+F+G)]       [B-E]"+ASP2+"\n"
  Print File ARQIMP ASP1+"        Vr Titulos  Devolucoes   Descontos    Recebido   Diferenca   Dif.Devol"+ASP2+"\n"
  Print File ARQIMP ASP1+"          Original                                        Tit/Baix    Fat/Baix"+ASP2+"\n"
  Moveto Tabela4                 ;999.999,99  999.999,99  999.999,99  999.999,99  999.999,99  999.999,99
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT
  If RetVal
     Then wnc=0
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT
            wnc=wnc+1

            VR_DIFTB=([Valor Recebido]+[Valor Devolucao]+[Valor Desconto])-[Valor Original ]

            Switch
              Case [Tipo de Pagamento]="1":
                   LINHA="A Vista "
                   VR_DIFFB  =TOT_DEVV  -[Valor Devolucao]
              Case [Tipo de Pagamento]="2":
                   LINHA="Prazo CP"
                   VR_DIFFB  =TOT_DEVPCP-[Valor Devolucao]
                   TOT_RECPCP=TOT_RECPCP+[Valor Recebido ]
              Case [Tipo de Pagamento]="3":
                   LINHA="Anterior"
                   VR_DIFFB  =TOT_DEVP  -[Valor Devolucao]
                   TOT_RECP  =TOT_RECP  +[Valor Recebido ]
              Case [Tipo de Pagamento]="4":
                   LINHA="Outros  "
                   VR_DIFFB  =0
            EndSwitch
            LINHA=LINHA+
                  Format("W10.2,EIC",[Valor Original    ])+" "+
                  Format("W11.2,EIC",[Valor Devolucao   ])+" "+
                  Format("W11.2,EIC",[Valor Desconto    ])+" "+
                  Format("W11.2,EIC",[Valor Recebido    ])+" "+
                  Format("W11.2,EIC",VR_DIFTB)+" "+
                  Format("W11.2,EIC",VR_DIFFB)
            Print File ARQIMP ASP1+LINHA+ASP2+"\n"

            TOT_DOCT=TOT_DOCT+[Valor Original    ]
            TOT_DEVT=TOT_DEVT+[Valor Devolucao   ]
            TOT_DESC=TOT_DESC+[Valor Desconto    ]
            TOT_RECE=TOT_RECE+[Valor Recebido    ]
            TOT_DTB=TOT_DTB+VR_DIFTB
            TOT_DFB=TOT_DFB+VR_DIFFB
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          If wnc>1
             Then Print File ARQIMP ASP1+"        ----------  ----------  ----------  ----------  ----------  ----------"+ASP2+"\n"
                  Print File ARQIMP ASP1+"Total.."+
                                         Format("W11.2,EIC",TOT_DOCT)+" "+
                                         Format("W11.2,EIC",TOT_DEVT)+" "+
                                         Format("W11.2,EIC",TOT_DESC)+" "+
                                         Format("W11.2,EIC",TOT_RECE)+" "+
                                         Format("W11.2,EIC",TOT_DTB)+" "+
                                         Format("W11.2,EIC",TOT_DFB)+ASP2+"\n"
          EndIf
  EndIf
  Print File ARQIMP ASP1+Fill("-",78)+ASP2+"\n"

  Print File ARQIMP ASP1+"-Cheques recebidos por No Dias"+ASP2+"\n"
  Print File ARQIMP ASP1+"      Ate       de 2      de 31      de 61      de 91       mais        Total"+ASP2+"\n"
  Print File ARQIMP ASP1+"    1 Dia     ate 30     ate 60     ate 90    ate 120     de 120             "+ASP2+"\n"

  Moveto Tabela5
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT
  If RetVal
     Then LINHA1=""
          LINHA2=""
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT

            TOT_CH_VR=[Ate_1_Valor     ]+
                      [2_30_Valor      ]+
                      [31_60_Valor     ]+
                      [61_90_Valor     ]+
                      [91_120_Valor    ]+
                      [Mais_120_Valor  ]

            TOT_CH_NC=[Ate_1_Nchq      ]+
                      [2_30_Nchq       ]+
                      [31_60_Nchq      ]+
                      [61_90_Nchq      ]+
                      [91_120_Nchq     ]+
                      [Mais_120_Nchq   ]

            LINHA1=LINHA1+Format("W09.2,EIC",[Ate_1_Valor     ])+"  "+
                          Format("W09.2,EIC",[2_30_Valor      ])+"  "+
                          Format("W09.2,EIC",[31_60_Valor     ])+"  "+
                          Format("W09.2,EIC",[61_90_Valor     ])+"  "+
                          Format("W09.2,EIC",[91_120_Valor    ])+"  "+
                          Format("W09.2,EIC",[Mais_120_Valor ])+"  "+
                          Format("W11.2,EIC",TOT_CH_VR)

            LINHA2=LINHA2+Format("W09,EIC",[Ate_1_Nchq      ])+"  "+
                          Format("W09,EIC",[2_30_Nchq       ])+"  "+
                          Format("W09,EIC",[31_60_Nchq      ])+"  "+
                          Format("W09,EIC",[61_90_Nchq      ])+"  "+
                          Format("W09,EIC",[91_120_Nchq     ])+"  "+
                          Format("W09,EIC",[Mais_120_Nchq  ])+"  "+
                          Format("W11,EIC",TOT_CH_NC)

            Print File ARQIMP ASP1+LINHA1+ASP2+"\n"
            Print File ARQIMP ASP1+LINHA2+ASP2+"\n"

            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile

  EndIf

  Print File ARQIMP ASP1+Fill("-",78)+ASP2+"\n"

  Print File ARQIMP ASP1+"-Carregamento"+ASP2+"\n"
  Print File ARQIMP ASP1+" Fita Financeira / Moedas recebidas"+ASP2+"\n"
  TOT_FITA=0
  Moveto "AcCarrgV"
  Moveto [Numero_Carregamento]
  Locate CARANT
  If RetVal
     Then wnc  =0
          LINHA=""
          While [Numero_Carregamento]=CARANT
            Imprime_Linha()
            LINHA=LINHA+Spaces(01)+COMPLETA(SubStr([Descricao Tipo Pagamento],1,12),12,".")+Format("W11.2,EIC",[Valor])+"   "
            TOT_FITA=TOT_FITA+[Valor]
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          Imprime_Linha()
          LINHA=LINHA+Spaces(01)+COMPLETA("Total",12,".")+Format("W11.2,EIC",TOT_FITA)+"   "
          Print File ARQIMP ASP1+LINHA+ASP2+"\n"
  EndIf
  Print File ARQIMP ASP1+""+ASP2+"\n"

  Print File ARQIMP ASP1+" Despesas"+ASP2+"\n"
  TOT_DESP=0
  TOT_ADIA=0
  Moveto "AcCarrgC"
  Moveto [Numero_Carregamento]
  Locate CARANT
  If RetVal
     Then TOT_DESP=[Total Despesas]
          TOT_ADIA=[Valor Adiantamento]
          wnc  =0
          LINHA=""
          For wii From 1 To 6
            NLINHA=""
            Switch
              Case wii=1 And [Valor Combustivel  ]>0:
                   Imprime_Linha()
                   NLINHA=Spaces(01)+COMPLETA("Combustivel",12,".")+Format("W11.2,EIC",[Valor Combustivel  ])+"   "
              Case wii=2 And [Despesas Hospedagem]>0:
                   Imprime_Linha()
                   NLINHA=Spaces(01)+COMPLETA("Hospedagem.",12,".")+Format("W11.2,EIC",[Despesas Hospedagem])+"   "
              Case wii=3 And [Despesas Refeicao  ]>0:
                   Imprime_Linha()
                   NLINHA=Spaces(01)+COMPLETA("Refeicao...",12,".")+Format("W11.2,EIC",[Despesas Refeicao  ])+"   "
              Case wii=4 And [Despesas Manutencao]>0:
                   Imprime_Linha()
                   NLINHA=Spaces(01)+COMPLETA("Manutencao.",12,".")+Format("W11.2,EIC",[Despesas Manutencao])+"   "
              Case wii=5 And [Despesas Outras    ]>0:
                   Imprime_Linha()
                   NLINHA=Spaces(01)+COMPLETA("Outras.....",12,".")+Format("W11.2,EIC",[Despesas Outras    ])+"   "
              Case wii=6 And [Total Despesas     ]>0:
                   Imprime_Linha()
                   NLINHA=Spaces(01)+COMPLETA("Total......",12,".")+Format("W11.2,EIC",[Total Despesas     ])+"   "
            EndSwitch
            LINHA=LINHA+NLINHA
          EndFor
          Print File ARQIMP ASP1+LINHA+ASP2+"\n"
  EndIf
  Print File ARQIMP ASP1+Fill("-",78)+ASP2+"\n"

  TOT_SOMA=TOT_ADIA+TOT_RECP+TOT_VENV+TOT_VENPCP
  TOT_VRAP=TOT_SOMA-(TOT_DESP+TOT_DEVF)
  TOT_DIF1=TOT_RECE-TOT_VRAP
  TOT_DIF2=(TOT_FITA+TOT_DESP)-TOT_RECE

  Print File ARQIMP ASP1+"-Calculos Finais"+ASP2+"\n"
  Print File ARQIMP ASP1+"Adiantamento."+Format("W11.2,EIC",TOT_ADIA)+"   "+
                         "A apresentar."+Format("W11.2,EIC",TOT_VRAP)+"=  "+
                         "Recebido....."+Format("W11.2,EIC",TOT_RECE)+"   "+ASP2+"\n"
  Print File ARQIMP ASP1+"Venda a Vista"+Format("W11.2,EIC",TOT_VENV)+"+  "+
                         "Recebido....."+Format("W11.2,EIC",TOT_RECE)+"-  "+
                         "Adiantamento."+Format("W11.2,EIC",TOT_ADIA)+"+  "+ASP2+"\n"
  Print File ARQIMP ASP1+"'' a Prazo CP"+Format("W11.2,EIC",TOT_VENPCP)+"+  "+
                         "  Diferenca=>"+Format("W11.2,EIC",TOT_DIF1)+"=  "+
                         "Despesas....."+Format("W11.2,EIC",TOT_DESP)+"-  "+ASP2+"\n"
  Print File ARQIMP ASP1+"Receb.a Prazo"+Format("W11.2,EIC",TOT_RECP)+"+  "+
                         "             "+Spaces(11)                  +"   "+
                         "   Montante=>"+Format("W11.2,EIC",(TOT_RECE+TOT_ADIA)-TOT_DESP)+"=  "+ASP2+"\n"
  Print File ARQIMP ASP1+"Soma recursos"+Format("W11.2,EIC",TOT_SOMA)+"+  "+
                         "             "+Spaces(11)                  +"   "+
                         "Fita Financ.."+Format("W11.2,EIC",TOT_FITA)+"-  "+ASP2+"\n"
  Print File ARQIMP ASP1+"Devolucoes..."+Format("W11.2,EIC",TOT_DEVF)+"-  "+
                         "             "+Spaces(11)                  +"   "+
                         "  Diferenca=>"+Format("W11.2,EIC",TOT_FITA-((TOT_RECE+TOT_ADIA)-TOT_DESP))+"=  "+ASP2+"\n"
  Print File ARQIMP ASP1+"Despesas....."+Format("W11.2,EIC",TOT_DESP)+"-  "+ASP2+"\n\n\n\n"

  Print File ARQIMP ASP1+"      _________________________   ___/___/____   _________________________"+ASP2+"\n"
  Print File ARQIMP ASP1+"         Responsavel/Acerto           Data         Motorista/Entregador   \f"+ASP2+"\n"

  Moveto Tabela1
  QuitLoop
EndWhile

TOT_VENDA=0   TOT_BONIF=0   TOT_TROCA=0   TOT_DEVOL=0
TOT_FPGTO=0   TOT_CPGTO=0   TOT_TITUL=0
TOT_DESPE=0


EndProc    ;  (TotalFinanc)

;*******************************************************************************
;* Rotina p/ Total                                                             *
;*******************************************************************************
Proc Carregamento()

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 Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_NCARREG"       : Campo="TG_EMPRESA"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA" : Campo="TG_NCARREG"
                    Case Campo="TG_NCARREG" :
                         If VSDGNOMNCARREG="PRE-VENDA" Or
                            VSDGNOMNCARREG="OUTROS"
                            Then Campo="YES"
                            Else Mensagem("Tipo carregamento invalido !")
                         EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_NCARREG":
     MSG_CAMPO="Informe o N£mero do Carregamento"
  Case Campo="TG_EMPRESA":
     MSG_CAMPO="Informe uma Empresa"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()

VSDGEMPRESA =""
VSDGNCARREG =""

While True

  ShowDialog "Acerto Pre-Venda" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 09 Width 56

    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 "N§ Carregamento" For "TG_NCARREG"
    Accept @ 03,01 Width 9  "A6"  Picture "#*#" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 03,11 Width 23 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGNCARREG)
     Then Mensagem("Informe o carregamento !")
          Loop
  EndIf
  If IsBlank(VSDGEMPRESA)
     Then Mensagem("Informe uma Empresa !")
          Loop
  EndIf

  DISPOSITIVO()
  If OK=""  Then Loop EndIf

  AGUARDE("Aguarde, gerando o relat¢rio")

  Tabela1=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0981a" Tabela1
  Tabela2=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0981b" Tabela2
  Tabela3=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0981c" Tabela3
  Tabela4=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0981d" Tabela4
  Tabela5=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0981e" Tabela5

  Dir_Trab=""
  ;Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  ;While Novo_Dir_Trab()
    Seleciona()
  ;EndWhile

  If IsEmpty(Tabela1)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela1
          Delete Tabela2
          Delete Tabela3
          Delete Tabela4
          Delete Tabela5
          Loop
  EndIf

  ASP1=""
  ASP2=""
  ARQIMP = DIREPORT+"ACERTO.TXT"
  Switch
    Case OK="A": ARQIMP = DIREPORT+ARQUIVO+".TXT"
    Case OK="V": ASP1="\""
                 ASP2="\""
  EndSwitch
  If IsFile(ARQIMP) Then Run NoRefresh "Del " + ARQIMP EndIf

  AGUARDE("Imprimindo")

  Imprimir()

  If OK="V"
     Then If IsTable("Answer") Then Delete "Answer" EndIf
          {Tools} {Copy} {Table} {\\Base\\Sistemas\\Estoque\\Rm_tx250} {Answer} ClearAll
          {Tools} {ExportImport} {Import} {ASCII} {AppendDelimited} TypeIn ARQIMP Enter
          {Answer} ClearAll
          OPCAOPAG="Todas"
          IMPRIREL("Answer","1")
          Run NoRefresh "Del "+ARQIMP
     Else Mensagem("Impress„o Concluida !")
          If OK="I"
             Then For I From 1 to NumVal(NUMCOPIA)
                      Run NoRefresh "Copy " + ARQIMP + " " + SETA_PRINTER + ":"
                  EndFor
                  Run NoRefresh "Del "+ARQIMP
          EndIf
  EndIf

  Delete Tabela1
  Delete Tabela2
  Delete Tabela3
  Delete Tabela4
  Delete Tabela5
  Delete "Answer"

EndWhile
ClearAll
Release Vars All
Release Procs All
