;** Rm_0987 ********************************************************************
;* Conferencia Pre-Venda                                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 12/07/2006 por Anivel Augusto Rodrigues
;Ultima Alteracao: 10/08/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Modamil
;Ultima Alteracao: 14/08/2007 por Antonio Marcelo Alves
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog    
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT
;Ultima Alteracao: 01/08/2016 por Bruno Carvalho
;Motivo Alteracao: Removido [Numero Nota Original] de onde ‚ realizado a ASK referente … NOTA                

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

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter Check
        Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
        Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        Adiciona_Clie()

        {Ask} {Answer}
        Moveto [Codigo da Empresa      ] Example "emp"
        Moveto [Codigo                 ] Example "cli"
        Moveto [Data de Emissao        ] Example "dtem"
        Moveto [Tipo do Documento      ] Example "tdoc"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Razao Social           ] Example "raz"
        Moveto [Codigo do Representante] Example "crep"
        Moveto [Nome Fantasia Represent] Example "nrep"
        Moveto [Condicao de Pagamento  ] Example "cpg"
        Moveto [Descricao CondPagto    ] Example "dpg"
        Moveto [Tipo de Pagamento      ] Example "tpg"
        Moveto [Forma de Pagamento     ] Example "fpg"
        Moveto [Codigo da Destinacao   ] Example "cdes"
        Moveto [Descricao da Destinacao] Example "ndes"
        Moveto [Tipo Movimento Estoque ] Example "tme"
        Moveto [Valor Mercadoria       ] Example "vmer"
        Moveto [Valor Desconto         ] Example "vdes"
        Moveto [Valor Nota Fiscal      ] Example "vnf"
        Moveto [Numero do Pedido       ] Example "npe"
        Moveto [Situacao               ] Example "sit"
        Moveto [Numero_Carregamento    ] Example "nc"
        {Ask} TypeIn Tab_Rom Enter TypeIn "Fast Insert"
        Moveto [Codigo da Empresa      ] Example "emp"
        Moveto [Codigo                 ] Example "cli"
        Moveto [Data de Emissao        ] Example "dtem"
        Moveto [Tipo do Documento      ] Example "tdoc"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Razao Social           ] Example "raz"
        Moveto [Codigo do Representante] Example "crep"
        Moveto [Nome Fantasia Represent] Example "nrep"
        Moveto [Condicao de Pagamento  ] Example "cpg"
        Moveto [Descricao CondPagto    ] Example "dpg"
        Moveto [Tipo de Pagamento      ] Example "tpg"
        Moveto [Forma de Pagamento     ] Example "fpg"
        Moveto [Codigo da Destinacao   ] Example "cdes"
        Moveto [Descricao da Destinacao] Example "ndes"
        Moveto [Tipo Movimento Estoque ] Example "tme"
        Moveto [Valor Mercadoria       ] Example "vmer"
        Moveto [Valor Desconto         ] Example "vdes"
        Moveto [Valor Nota Fiscal      ] Example "vnf"
        Moveto [Numero do Pedido       ] Example "npe"
        Moveto [Situacao               ] Example "sit"
        Moveto [Numero_Carregamento    ] Example "nc"
        Do_It!
        ClearAll
EndIf

;****** Vendas/Vencimentos *****************************************************
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" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
        Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV" Enter Check
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Do_It!
        ClearAll

        Add "Answer" Tab_RomV
        ClearAll
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC")
   Then {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter Check
        Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
        Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG"
        Moveto [Tipo de Operacao       ] TypeIn "D"
        Do_It!
        ClearAll

        Adiciona_Clie()

        {Ask} {Answer}
        Moveto [Codigo da Empresa      ] Example "emp"
        Moveto [Codigo                 ] Example "cli"
        Moveto [Data de Entrada        ] Example "dtem"
        Moveto [Tipo do Documento      ] Example "tdoc"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Razao Social           ] Example "raz"
        Moveto [Codigo do Representante] Example "crep"
        Moveto [Nome Fantasia Represent] Example "nrep"
        Moveto [Tipo de Pagamento      ] Example "tpg"
        Moveto [Descricao da Operacao  ] Example "ndes"
        Moveto [Valor Mercadoria       ] Example "vmer"
        Moveto [Valor Desconto         ] Example "vdes"
        Moveto [Valor Nota Fiscal      ] Example "vnf"
        Moveto [Numero Nota Original   ] Example "nno"
        Moveto [Numero_Carregamento    ] Example "nc"
        {Ask} TypeIn Tab_Rom Enter TypeIn "Fast Insert"
        Moveto [Codigo da Empresa      ] Example "emp"
        Moveto [Codigo                 ] Example "cli"
        Moveto [Data de Emissao        ] Example "dtem"
        Moveto [Tipo do Documento      ] Example "tdoc"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Razao Social           ] Example "raz"
        Moveto [Codigo do Representante] Example "crep"
        Moveto [Nome Fantasia Represent] Example "nrep"
        Moveto [Tipo de Pagamento      ] Example "tpg"
        Moveto [Descricao da Destinacao] Example "ndes"
        Moveto [Tipo Movimento Estoque ] TYpeIn "E"
        Moveto [Valor Mercadoria       ] Example "vmer"
        Moveto [Valor Desconto         ] Example "vdes"
        Moveto [Valor Nota Fiscal      ] Example "vnf"
        Moveto [Numero Nota Original   ] Example "nno"
        Moveto [Numero_Carregamento    ] Example "nc"
        Do_It!
        ClearAll
EndIf

;****** Titulos Gerados ********************************************************
If IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic")
   Then {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic" Enter Check
        Moveto [Codigo da Empresa       ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo do Destinatario  ] TypeIn "as Codigo, ~VSDGDESTINAT.."
        Moveto [Numero_Carregamento_Orig] TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        Adiciona_Clie()

        {Ask} {Answer}
        Moveto [Codigo da Empresa       ] Example "emp"
        Moveto [Codigo                  ] Example "cli"
        Moveto [Tipo Docto Gerador      ] Example "tdg"
        Moveto [Numero Docto Gerador    ] Example "ndg"
        Moveto [Sequencia Gerador       ] Example "sg"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Tipo do Documento       ] Example "tdoc"
        Moveto [Numero do Documento     ] Example "ndoc"
        Moveto [Data de Vencimento      ] Example "dtve"
        Moveto [Valor do Documento      ] Example "vd"
        Moveto [Tipo do Pagamento       ] Example "tpg"
        Moveto [Documento Referente     ] Example "rdoc"
        Moveto [Numero_Carregamento_Orig] Example "nco"
        {Ask} TypeIn Tab_Tit Enter TypeIn "Fast Insert"
        Moveto [Codigo da Empresa       ] Example "emp"
        Moveto [Codigo                  ] Example "cli"
        Moveto [Tipo Docto Gerador      ] Example "tdg"
        Moveto [Numero Docto Gerador    ] Example "ndg"
        Moveto [Sequencia Gerador       ] Example "sg"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Tipo do Documento       ] Example "tdoc"
        Moveto [Numero do Documento     ] Example "ndoc"
        Moveto [Data de Vencimento      ] Example "dtve"
        Moveto [Valor do Documento      ] Example "vd"
        Moveto [Tipo do Pagamento       ] Example "tpg"
        Moveto [Documento Referente     ] Example "rdoc"
        Moveto [Numero_Carregamento_Orig] Example "nco"
        Do_It!
        ClearAll

EndIf

;****** Titulos Gerados e Baixados *********************************************
If IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic") And
   IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"DupBaixa")
   Then {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic" Enter Check
        Moveto [Numero do Lancamento    ] Example "nlan"
        Moveto [Codigo da Empresa       ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo do Destinatario  ] TypeIn "as Codigo, ~VSDGDESTINAT.."
        {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"DupBaixa" Enter
        Moveto [Numero do Lancamento    ] Check Example "nlan"
        Moveto [Numero_Carregamento     ] Check TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        Adiciona_Clie()

        {Ask} {Answer}
        Moveto [Codigo da Empresa       ] Example "emp"
        Moveto [Codigo                  ] Example "cli"
        Moveto [Tipo Docto Gerador      ] Example "tdg"
        Moveto [Numero Docto Gerador    ] Example "ndg"
        Moveto [Sequencia Gerador       ] Example "sg"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Tipo do Documento       ] Example "tdoc"
        Moveto [Numero do Documento     ] Example "ndoc"
        Moveto [Data de Vencimento      ] Example "dtve"
        Moveto [Valor do Documento      ] Example "vd"
        Moveto [Tipo do Pagamento       ] Example "tpg"
        Moveto [Documento Referente     ] Example "rdoc"
        Moveto [Numero_Carregamento_Orig] Example "nco"
        {Ask} TypeIn Tab_Tit Enter TypeIn "Fast Insert"
        Moveto [Codigo da Empresa       ] Example "emp"
        Moveto [Codigo                  ] Example "cli"
        Moveto [Tipo Docto Gerador      ] Example "tdg"
        Moveto [Numero Docto Gerador    ] Example "ndg"
        Moveto [Sequencia Gerador       ] Example "sg"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Tipo do Documento       ] Example "tdoc"
        Moveto [Numero do Documento     ] Example "ndoc"
        Moveto [Data de Vencimento      ] Example "dtve"
        Moveto [Valor do Documento      ] Example "vd"
        Moveto [Tipo do Pagamento       ] Example "tpg"
        Moveto [Documento Referente     ] Example "rdoc"
        Moveto [Numero_Carregamento_Orig] Example "nco"
        Do_It!
        ClearAll

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    ] Example "nlan"
        Moveto [Codigo da Empresa       ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo do Destinatario  ] TypeIn "~VSDGDESTINAT.."
        {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"DupBaixa" Enter Check
        Moveto [Numero do Lancamento    ] Example "nlan"
        Moveto [Numero_Carregamento     ] TypeIn "~VSDGNCARREG"
        Do_It!
        ClearAll

        {Ask} {Answer}
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Sequencia da Baixa      ] Example "sq"
        Moveto [Data do Pagamento       ] Example "dtpg"
        Moveto [Valor do Recebimento    ] Example "vr"
        Moveto [Valor do Desconto       ] Example "vd"
        Moveto [Valor do Juros          ] Example "vj"
        Moveto [Tipo da Baixa           ] Example "tb"
        Moveto [Numero_Carregamento     ] Example "nc"
        {Ask} TypeIn Tab_Baix Enter TypeIn "Fast Insert"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Sequencia da Baixa      ] Example "sq"
        Moveto [Data do Pagamento       ] Example "dtpg"
        Moveto [Valor do Recebimento    ] Example "vr"
        Moveto [Valor do Desconto       ] Example "vd"
        Moveto [Valor do Juros          ] Example "vj"
        Moveto [Tipo da Baixa           ] Example "tb"
        Moveto [Numero_Carregamento     ] Example "nc"
        Do_It!
        ClearAll

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 Check
        Moveto [Numero do Lancamento    ] Example "nlan"
        Moveto [Codigo da Empresa       ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo                  ] TypeIn "~VSDGDESTINAT.."
        Moveto [Numero_Carregamento_Orig] TypeIn "~VSDGNCARREG"
        {Ask} TypeIn "\\Sistemas\\Cheqrec\\"+Dir_Trab+"ChequeI" Enter Check
        Moveto [Numero do Lancamento    ] Example "nlan"
        Do_It!
        ClearAll

        Adiciona_Clie()

        {Ask} {Answer}
        Moveto [Codigo da Empresa       ] Example "emp"
        Moveto [Codigo                  ] Example "cli"
        Moveto [Tipo Docto Gerador      ] Example "tdg"
        Moveto [Numero Docto Gerador    ] Example "ndg"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Sequencia do Cheque     ] Example "sg"
        Moveto [Numero_Cheque           ] Example "nch"
        Moveto [Data Vencimento         ] Example "dtve"
        Moveto [Valor                   ] Example "vd"
        Moveto [Numero_Carregamento_Orig] Example "nco"
        {Ask} TypeIn Tab_Cheq Enter TypeIn "Fast Insert"
        Moveto [Codigo da Empresa       ] Example "emp"
        Moveto [Codigo                  ] Example "cli"
        Moveto [Tipo Docto Gerador      ] Example "tdg"
        Moveto [Numero Docto Gerador    ] Example "ndg"
        Moveto [Numero do Lancamento    ] Example "nl"
        Moveto [Sequencia do Cheque     ] Example "sg"
        Moveto [Numero_Cheque           ] Example "nch"
        Moveto [Data Vencimento         ] Example "dtve"
        Moveto [Valor                   ] Example "vd"
        Moveto [Numero_Carregamento_Orig] Example "nco"
        Do_It!
        ClearAll

EndIf

EndProc   ;  (Seleciona)

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

If IsEmpty("Answer")
   Then Return
EndIf
{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "emp"
;Moveto [Nome Fantasia Empresa  ] Example "nemp"
Moveto [Codigo                 ] Example "cod"
Moveto [Razao Social           ] Example "nome"
{Ask} TypeIn Tab_Clie Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "emp"
;Moveto [Nome Fantasia Empresa  ] Example "nemp"
Moveto [Codigo                 ] Example "cod"
Moveto [Razao Social           ] Example "nome"
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina Organiza Tabelas                                                     *
;*******************************************************************************
Proc Organiza()

{Ask} {\\Sistemas\\Cadastro\\Destinat}
Moveto [Codigo      ] Example "cli"
Moveto [Razao Social] Example "raz"
{Ask} TypeIn Tab_Clie Enter TypeIn "Fast"
Moveto [Codigo      ] Example "cli"
Moveto [Razao Social] TypeIn "Changeto " Example "raz"
Do_It!
ClearAll

{Ask} TypeIn Tab_Clie Enter Check
Do_It!
ClearAll

Rename "Answer" Tab_Clie

Sort Tab_Clie On "Codigo da Empresa","Razao Social","Codigo"
ClearAll

EndProc

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

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

EMPANT  = "****"
CODANT  = "****"

pag=0
lin=0

View Tab_Cheq   SetHighLight Current Record 23 Field 31
View Tab_Baix   SetHighLight Current Record 23 Field 31
View Tab_Tit    SetHighLight Current Record 23 Field 31
View Tab_RomV   SetHighLight Current Record 23 Field 31
View Tab_Rom    SetHighLight Current Record 23 Field 31
Edit Tab_Clie   SetHighLight Current Record 23 Field 31
Scan
  CopyToArray REG_CLIE

  If [Codigo da Empresa  ]<>EMPANT
     Then EMPANT =[Codigo da Empresa  ]
          Cabecalho()
  EndIf

  CODANT =[Codigo             ]
  Imprime_Cliente()
  TotalFinanc()

EndScan
Do_It!

Print File ARQIMP ASP1+CI_10CPP+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()
        Imprime_Cliente()
EndIf
EndProc

;*******************************************************************************
;* Rotina imprime Linha   colunas                                              *
;*******************************************************************************
Proc Imprime_Linha(Str)
 Print File ARQIMP ASP1+Str+ASP2+"\n"
 lin=lin+1
 ChecaLinhaPagina(60)
EndProc

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

If OPCAOPAG<>"Todas"
   Then If pag<OPCAOPAGINI Or
           pag>OPCAOPAGFIM
           Then Return
        EndIf
EndIf

Print File ARQIMP ASP1+CI_15CPP+CI_6LPP+Fill("-",132)+ASP2+"\n"

Print File ARQIMP ASP1+COMPLETA(NOMEMPRESA,80," ")+"Emissao.: "+
           AlinhM(LTrim(Format("D13",Today())),10)+"-"+
           AlinhM(LTrim(Time()),8)+"              Pag.:"+Format("W4,EIC",pag)+ASP2+"\n"

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

Print File ARQIMP ASP1+Format("W132,AC","Conferencia Carregamento/Acerto: "+VSDGNCARREG)+ASP2+"\n\n"

Print File ARQIMP ASP1+"Docto      Operacao            Pedido  Representante          Emissao   Vr.Merc.  Vr.Descto      Vr.NF  Pagto"+ASP2+"\n"
Print File ARQIMP ASP1+"---------- ------------------  ------  --------------------  -------- ---------- ---------- ----------  ----------------------------"+ASP2+"\n"
                       ;ROM 001233 123456789012345     123456  1111 123456789012345  99/99/99 999.999,99 999.999,99 999.999,99  p  CH  123456789012345
lin=8

EndProc   ; (Cabecalho)

;*******************************************************************************
;* Rotina imprime Cliente                                                      *
;*******************************************************************************
Proc Imprime_Cliente()
  Imprime_Linha(CI_INEG+"Cliente: "+REG_CLIE["Codigo"]+" "+REG_CLIE["Razao Social"]+CI_FNEG)
EndProc

;*******************************************************************************
;* Rotina p/ Total                                                             *
;*******************************************************************************
Proc TotalFinanc()
If pag=0
   Then Return
EndIf

ChecaLinhaPagina(60)

If OPCAOPAG<>"Todas"
   Then If pag<OPCAOPAGINI Or
           pag>OPCAOPAGFIM
           Then Moveto Tab_Clie
                Return
        EndIf
EndIf

TOT_VENDAS  =0
TOT_COBRANCA=0
TOT_DEVOL   =0
TOT_ABATDEV =0
TOT_RECEBIDO=0
TOT_DESCTOS =0
TOT_JUROS   =0
TOT_CANCELA =0
TOT_ABATDEV =0
TOT_TOT1    =0
TOT_COBRANCA=0

Moveto Tab_Rom
Moveto [Codigo da Empresa]
Locate EMPANT, CODANT
If RetVal
   Then While [Codigo da Empresa]=EMPANT And
              [Codigo           ]=CODANT
          CopyToArray REG_ROM
          LINHA=Completa([Tipo do Documento],4," ")+
                Completa([Numero do Documento],7," ")+
                Completa(SubStr([Descricao da Destinacao],1,18),20," ")+
                Completa([Numero do Pedido],8," ")+
                Completa([Codigo do Representante],5," ")+
                Completa(SubStr([Nome Fantasia Represent],1,15),17," ")+
                Format("D",[Data de Emissao])+
                Format("W11.2,EIC",[Valor Mercadoria])+
                Format("W11.2,EIC",[Valor Desconto])+
                Format("W11.2,EIC",[Valor Nota Fiscal])+"  "+
                [Tipo de Pagamento]+"  "+[Forma de Pagamento]+"  "
          If [Situacao]="C"
             Then LINHA=LINHA+"<= ** CANCELADA !!"
                  Imprime_Linha(LINHA)
             Else LINHA=LINHA+SubStr([Descricao CondPagto],1,21)
                  Imprime_Linha(LINHA)

                  If [Tipo Movimento Estoque]="S" And Search("VEND",[Descricao da Destinacao])>0
                     Then TOT_VENDAS=TOT_VENDAS+[Valor Nota Fiscal]
                          Venctos()
                          Titulos("ROM")
                         ; Cheques("ROM")
                  EndIf

                  If [Tipo Movimento Estoque]="E" And Search("DEVOL",[Descricao da Destinacao])>0
                     Then TOT_DEVOL=TOT_DEVOL+[Valor Nota Fiscal]
                  EndIf
          Endif
          Imprime_Linha(Fill("-",132))

          Moveto Tab_Rom
          Skip
          If Eot()
             Then QuitLoop
          EndIf
        EndWhile
EndIf

Titulos("Outros Carregamentos")
Cheques("Outros Carregamentos")

LINHA1="   Vendido - Cobranca  |    Devol.Fat-Baix.Devol  |    Recebido +Descontos     -Juros+Cancelados+Abat.Devol     =Total - Cobranca  "
LINHA2="999.999,99 999.999,99  |   999.999,99 999.999,99  |  999.999,99 999.999,99 999.999,99 999.999,99 999.999,99 999.999,99 999.999,99  "
LINHA3="Diferenca=>            |   Diferenca=>            |                                                        Diferenca=>             "

TOT_TOT1=(TOT_RECEBIDO+TOT_DESCTOS+TOT_CANCELA+TOT_ABATDEV)-TOT_JUROS

LINHA2=Format("W10.2,EIC",TOT_VENDAS)+
       Format("W11.2,EIC",TOT_COBRANCA)+"  |  "+
       Format("W10.2,EIC",TOT_DEVOL   )+
       Format("W11.2,EIC",TOT_ABATDEV )+"   |  "+
       Format("W10.2,EIC",TOT_RECEBIDO)+
       Format("W11.2,EIC",TOT_DESCTOS )+
       Format("W11.2,EIC",TOT_JUROS   )+
       Format("W11.2,EIC",TOT_CANCELA )+
       Format("W11.2,EIC",TOT_ABATDEV )+
       Format("W11.2,EIC",TOT_TOT1    )+
       Format("W11.2,EIC",TOT_COBRANCA)

LINHA3="Diferenca=>"+
       Format("W10.2,EIC",TOT_COBRANCA-TOT_VENDAS)+"  |  "+
			 "Diferenca=>"+
       Format("W10.2,EIC",TOT_ABATDEV-TOT_DEVOL   )+"   |  "+Spaces(54)+
			 "Diferenca=>"+
       Format("W11.2,EIC",TOT_TOT1-TOT_COBRANCA)

Imprime_Linha(Fill("-",132))
Imprime_Linha(LINHA1)
Imprime_Linha(LINHA2)
Imprime_Linha(LINHA3)

Imprime_Linha(Fill("=",132))
Imprime_Linha("")

Moveto Tab_Clie

EndProc    ;  (TotalFinanc)

;*******************************************************************************
;* Rotina Venctos                                                              *
;*******************************************************************************
Proc Venctos()
TOT_VENCTOS=0

Moveto Tab_RomV
Moveto [Codigo da Empresa]
Locate REG_ROM["Codigo da Empresa"],
       REG_ROM["Numero do Documento"],
       REG_ROM["Serie do Documento"]
If RetVal
   Then wnc=0
        LINHA="Venctos "
        While [Codigo da Empresa  ]=REG_ROM["Codigo da Empresa"]   And
              [Numero do Documento]=REG_ROM["Numero do Documento"] And
              [Serie do Documento ]=REG_ROM["Serie do Documento"]
          wnc=wnc+1
          LINHA=LINHA+"   "+Completa([Forma de Pagamento],3," ")+
                      Format("D",[Data])+
                      Format("W10.2,EIC",[Valor])
          If wnc=5
             Then Imprime_Linha(LINHA)
                  wnc=0
                  LINHA=Spaces(7)
          EndIf
          TOT_VENCTOS=TOT_VENCTOS+[Valor]

          Skip
          If EOT() Then QuitLoop EndIf
        EndWhile
        If wnc>0
           Then Imprime_Linha(LINHA)
        EndIf
EndIf
If Format("W11.2,EIC",TOT_VENCTOS)<>Format("W11.2,EIC",REG_ROM["Valor Nota Fiscal"])
   Then LINHA="    ** Diferenca Venctos/NF => "+LTrim(Format("W12.2,EIC",TOT_VENCTOS-REG_ROM["Valor Nota Fiscal"]))
        Imprime_Linha(LINHA)
EndIf

Moveto Tab_Rom

EndProc

;*******************************************************************************
;* Rotina Titulos                                                              *
;*******************************************************************************
Proc Titulos(tipo)

Moveto Tab_Tit
Moveto [Codigo da Empresa]
If Tipo="ROM"
   Then Locate REG_ROM["Codigo da Empresa"],
               REG_ROM["Codigo"],
               REG_ROM["Tipo do Documento"],
               REG_ROM["Numero do Documento"]
   Else Locate REG_ROM["Codigo da Empresa"],
               REG_ROM["Codigo"]
EndIf
If RetVal
   Then primeiravez=true
        While True
          titok=True
          If Tipo="ROM"
             Then If [Codigo da Empresa   ]<>REG_ROM["Codigo da Empresa"]  Or
                     [Codigo              ]<>REG_ROM["Codigo"]  Or
                     [Numero Docto Gerador]<>REG_ROM["Numero do Documento"] Or
                     [Tipo Docto Gerador  ]<>REG_ROM["Tipo do Documento"]
                     Then QuitLoop
                  EndIf
             Else If [Codigo da Empresa   ]<>REG_ROM["Codigo da Empresa"]  Or
                     [Codigo              ]<>REG_ROM["Codigo"]
                     Then QuitLoop
                     Else If [Situacao]="*"
                             Then titok=False
                          EndIf
                  EndIf
          EndIf
          If titok
             Then If primeiravez
                     Then primeiravez=False
                          LINHA="Cobr/Baixas      Vencto      Valor Pg Sq    Baixa Tp      Valor    Descto     Juros OutCar "
                               ;"ROM 1234567890 99/99/99 999.999,99 XX  9 99/99/99 DEV 99.999,99 99.999,99 99.999,99 123456 "
                               ;"ROM 1234567890 99/99/99 999.999,99 XX  9 99/99/99 12312345678901234567890 99.999,99 123456 "
                          If Tipo="ROM"
                             Then Imprime_Linha("")
                             Else Imprime_Linha("Outros Carregamentos")
                          EndIf
                          Imprime_Linha(LINHA)
                  EndIf

                  CopyToArray REG_TIT
                  LINHA=Completa([Tipo do Documento],4," ")+
                        Completa([Numero do Documento],11," ")+
                        Format("D",[Data de Vencimento])+
                        Format("W11.2,EIC",[Valor do Documento])+" "+
                        Completa([Tipo do Pagamento],4," ")

                  NLANCTO=[Numero do Lancamento]

                  If [Numero_Carregamento_Orig]=VSDGNCARREG
                     Then TOT_COBRANCA=TOT_COBRANCA+[Valor do Documento]
                  EndIf
                  VRTIT=0
                  VRTIT=VRTIT+[Valor do Documento]
                  [Situacao]="*"

                  Moveto Tab_Baix
                  Moveto [Numero do Lancamento]
                  Locate NLANCTO
                  If RetVal
                     Then LINHA_ANT=""
                          VRBAIXA  =0
                          While [Numero do Lancamento]=NLANCTO
                            If LINHA_ANT<>""
                               Then Imprime_Linha(LINHA_ANT)
                            EndIf

                            LINHA=LINHA+Completa([Sequencia da Baixa],2," ")+
                                        Format("D",[Data do Pagamento])+" "+
                                        SubStr([Tipo da Baixa],1,3)+
                                        Format("W10.2,EIC",[Valor do Recebimento])

                            If [Valor do Desconto]>0
                               Then LINHA=LINHA+Format("W10.2,EIC",[Valor do Desconto])
																		TOT_DESCTOS=TOT_DESCTOS+[Valor do Desconto]
                               Else LINHA=LINHA+Spaces(10)
                            EndIf
                            If [Valor do Juros]>0
                               Then LINHA=LINHA+Format("W10.2,EIC",[Valor do Juros])
																		 TOT_JUROS=TOT_JUROS+[Valor do JUros]
                               Else LINHA=LINHA+Spaces(10)
                            EndIf
                            If REG_TIT["Numero_Carregamento_Orig"]<>VSDGNCARREG
                               Then If LINHA_ANT=""
                                       Then LINHA=LINHA+" "+Completa(REG_TIT["Numero_Carregamento_Orig"],7," ")
                                            LINHA=LINHA+"<= NC !!"
                                    EndIf
                            EndIf

                            VRBAIXA=VRBAIXA+(([Valor do Recebimento]+[Valor do Desconto])-[Valor do Juros])
                            TOT_DESTOS=TOT_DESCTOS+[Valor do Desconto]
                            LINHA_ANT=LINHA
                            Switch
                              Case [Tipo da Baixa]="NORMAL"   : TOT_RECEBIDO=TOT_RECEBIDO+[Valor do Recebimento]
                              Case [Tipo da Baixa]="DEVOLUCAO": TOT_ABATDEV =TOT_ABATDEV +[Valor do Recebimento]
                              Case [Tipo da Baixa]="CANCELADO": TOT_CANCELA =TOT_CANCELA +[Valor do Recebimento]
                            EndSwitch
                            LINHA=Spaces(39)
                            Skip
                            If EOT() Then QuitLoop EndIf
                          EndWhile
                          If Format("W10.2,EIC",VRBAIXA)<>Format("W10.2,EIC",VRTIT)
                             Then LINHA_ANT=LINHA_ANT+"  "+LTrim(Format("W10.2,EIC",(VRBAIXA-VRTIT)))+" <= Diferenca !!"
                          EndIf
                          IMPRIME_LINHA(LINHA_ANT)
                     Else IMPRIME_LINHA(LINHA)
                  EndIf

                  Moveto Tab_Tit
          EndIf

          Skip
          If EOT()
             Then QuitLoop
          EndIf
        EndWhile
EndIf

Moveto Tab_Rom

EndProc

;*******************************************************************************
;* Rotina Cheques                                                              *
;*******************************************************************************
Proc Cheques(Tipo)

Moveto Tab_Cheq
Moveto [Codigo da Empresa]
If Tipo="ROM"
   Then Locate REG_ROM["Codigo da Empresa"],
               REG_ROM["Codigo"],
               REG_ROM["Tipo do Documento"],
               REG_ROM["Numero do Documento"]
   Else Locate REG_ROM["Codigo da Empresa"],
               REG_ROM["Codigo"]
EndIf
If RetVal
   Then primeiravez=true
        TOT_CHEQUES=0
        NUM_CHEQUES=0
        wnc=0
        LINHA=""
        Imprime_Linha("")
        Imprime_Linha("Cheques")

        While True
          titok=True
          If Tipo="ROM"
             Then If [Codigo da Empresa   ]<>REG_ROM["Codigo da Empresa"]  Or
                     [Codigo              ]<>REG_ROM["Codigo"]  Or
                     [Numero Docto Gerador]<>REG_ROM["Numero do Documento"] Or
                     [Tipo Docto Gerador  ]<>REG_ROM["Tipo do Documento"]
                     Then QuitLoop
                  EndIf
             Else If [Codigo da Empresa   ]<>REG_ROM["Codigo da Empresa"]  Or
                     [Codigo              ]<>REG_ROM["Codigo"]
                     Then QuitLoop
                     Else If [Situacao]="*"
                             Then titok=False
                          EndIf
                  EndIf
          EndIf
          If titok
             Then wnc=wnc+1
                  LINHA=LINHA+Completa([Numero_Cheque],11," ")+
                              Format("D",[Data Vencimento])+
                              Format("W10.2,EIC",[Valor])+"   "
                  If wnc=4
                     Then Imprime_Linha(LINHA)
                          wnc=0
                          LINHA=""
                  EndIf
                  TOT_CHEQUES=TOT_CHEQUES+[Valor]
                  NUM_CHEQUES=NUM_CHEQUES+1
          EndIf
          Skip
          If EOT()
             Then QuitLoop
          EndIf
        EndWhile
        Imprime_Linha(LINHA+"Total: "+LTrim(Format("W6,EIC",NUM_CHEQUES))+" = "+LTrim(Format("W12.2,EIC",TOT_CHEQUES)))
EndIf

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="TG_DESTINAT"      : Campo="TG_NCARREG"
            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="TG_DESTINAT"
                            Else Mensagem("Tipo carregamento invalido !")
                         EndIf
                    Case Campo="TG_DESTINAT": Campo="YES"
                  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 =""
VSDGDESTINAT=""

While True

  ShowDialog "Conferencia 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 11 Width 72

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

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

    Label  @ 04,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 05,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 05,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMDEST"  To VSDGNOMDEST

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop 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")

  Tab_Clie=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0982a" Tab_Clie
  Tab_Rom =Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0982b" Tab_Rom
  Tab_RomV=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0982c" Tab_RomV
  Tab_Tit =Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0982d" Tab_Tit
  Tab_Baix=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0982e" Tab_Baix
  Tab_Cheq=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0982f" Tab_Cheq


  Empty(Tab_Clie)
  Empty(Tab_Rom)
  Empty(Tab_RomV)
  Empty(Tab_Tit)
  Empty(Tab_Baix)
  Empty(Tab_Cheq)

  Dir_Trab=""
  Seleciona()

  If IsEmpty(Tab_Clie)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tab_Clie
          Delete Tab_Rom
          Delete Tab_RomV
          Delete Tab_Tit
          Delete Tab_Baix
          Delete Tab_Cheq
          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 Deleta_Arquivo(ARQIMP)
  EndIf

  AGUARDE("Imprimindo")

  Organiza()
  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")
          Deleta_Arquivo(ARQIMP)
     Else Mensagem("Impress„o Concluida !")
          If OK="I"
             Then ;---- Imprime Arquivo Impressao ------------------------------------------------
                  ImpriArq(ARQIMP)
          EndIf
  EndIf

  Delete Tab_Clie
  Delete Tab_Rom
  Delete Tab_RomV
  Delete Tab_Tit
  Delete Tab_Baix
  Delete Tab_Cheq

EndWhile
ClearAll
Release Vars All
Release Procs All
