;** Rm_0980 ********************************************************************
;* Resumo de Manifestos                                                        *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 12/02/2004 por Anivel Augusto Rodrigues
;Ultima Alteracao: 27/08/2004 por Davi Pereira Carrano
;Motivo Alteracao: Apresentar a Diferen‡a real
;Alterado em     : 10/07/2006 por Antonio Marcelo Alves
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 14/08/2007 por Antonio Marcelo Alves
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   

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

;****** Manifestos *************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Check
        Moveto [Serie do Documento     ] Check
        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Tipo do Documento      ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Codigo do Representante] Check
        Moveto [Nome Fantasia Represent] Check
        Moveto [Descricao da Destinacao] TypeIn "MANIFE.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Placa do Veiculo       ] Check
        Moveto [UF Veiculo             ] Check
        Moveto [Codigo da Tabela       ] Check
        Moveto [Situacao               ] TypeIn "Not C"
        Do_It!
        ClearAll

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

        Adiciona_Dados1()


        {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 [Numero_Carregamento    ] Check  TypeIn "~VSDGNCARREG"
        Moveto [Descricao da Destinacao] TypeIn "MANIFE.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
				{Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("MANIFESTOS")

EndIf

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV")
   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" TypeIn ", as Numero Temp"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Descricao da Destinacao] TypeIn "..VENDA.. ..MANIFE.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Tipo de Pagamento      ] Check
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("VENDAS")


        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Check Example "ndoc" TypeIn ", as Numero Temp"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Descricao da Destinacao] TypeIn "..VENDA.. ..MANIFE.."
        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 [Data de Emissao        ] 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
        Moveto [Numero de Dias         ] Check
        Do_It!
        ClearAll

        Adiciona_Dados3()
EndIf

;****** Retornos - Manifesto ****************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   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 "..RET.. ..MANIFE.."
        Moveto [Tipo Movimento Estoque ] TypeIn "E"
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("RETORNOS")
EndIf

;****** Bonificacoes ***********************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   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" TypeIn ", as Numero Temp"
        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"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("BONIFICACOES")
EndIf

;****** Trocas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   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" TypeIn ", as Numero Temp"
        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"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("TROCAS")
EndIf

;****** Devolucoes - Manifesto ****************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   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" TypeIn ", as Numero Temp"
        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"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("DEVOLUCOES")
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
   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 Nota Original   ] Check TypeIn "as Numero do Documento"
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
        Moveto [Numero do Lancamento   ] Example "nlan"
        Moveto [Sequencia do Lancamento] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Do_It!
        ClearAll

        Adiciona_Dados2("DEVOLUCOES")
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.."
        {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"DupBaixa" Enter
        Moveto [Numero do Lancamento   ] Example "nlan"
        Moveto [Sequencia da Baixa     ] Check
        Moveto [Valor do Recebimento   ] Check
        Moveto [Valor do Juros         ] Check
        Moveto [Valor do Desconto      ] Check
        Moveto [Numero_Carregamento    ] Check TypeIn "~VSDGNCARREG"
        Moveto [Valor Dinheiro         ] Check
        Moveto [Valor Cheque           ] Check
        Moveto [Valor Cheque Pre_Datado] Check
        Moveto [Tipo da Baixa          ] Check
        Do_It!
        ClearAll

        Adiciona_Dados4()
EndIf

EndProc   ;  (Seleciona)

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados1()
If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Numero_Carregamento    ] Example "ncar"
Moveto [Tipo do Documento      ] Example "tdoc"
Moveto [Serie do Documento     ] Example "sdoc"
Moveto [Numero do Documento    ] Example "ndoc"
Moveto [Nome Fantasia Empresa  ] Example "nemp"
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 [UF Veiculo             ] Example "ufve"
Moveto [Codigo da Tabela       ] Example "ctab"
{Ask} TypeIn Tabela1 Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Numero_Carregamento    ] Example "ncar"
Moveto [Tipo do Documento      ] Example "tdoc"
Moveto [Serie do Documento     ] Example "sdoc"
Moveto [Numero do Documento    ] Example "ndoc"
Moveto [Nome Fantasia Empresa  ] Example "nemp"
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 [UF Veiculo             ] Example "ufve"
Moveto [Codigo da Tabela       ] Example "ctab"
Do_It!
ClearAll

EndProc

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

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela2
CoEdit "Answer"
Scan
  Moveto Tabela2
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa  ],
         [Answer->Numero_Carregamento],
         [Answer->Codigo do Item     ]
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa  ]=[Answer->Codigo da Empresa  ]
          [Numero_Carregamento]=[Answer->Numero_Carregamento]
          [Codigo do Item     ]=[Answer->Codigo do Item     ]
  EndIf
  Switch
    Case Tipo="MANIFESTOS":
         [Saida_Qtd      ]=[Saida_Qtd    ]+[Answer->Quantidade    ]
         [Saida_Vr       ]=[Answer->Preco Unitario]
         [Saida_VrTotal  ]=[Saida_VrTotal]+[Answer->Preco Total   ]
    Case Tipo="RETORNOS":
         [Retorno_Qtd    ]=[Retorno_Qtd    ]+[Answer->Quantidade    ]
         [Retorno_VrTotal]=[Retorno_Qtd    ]*[Saida_Vr]
    Case Tipo="VENDAS":
         [Venda_Qtd      ]=[Venda_Qtd      ]+[Answer->Quantidade ]
         [Venda_VrTotal  ]=[Venda_VrTotal  ]+[Answer->Preco Total]
         [Venda_DescTotal]=[Venda_DescTotal]+[Answer->Valor Desconto Total]

         VRCAL=([Answer->Preco Total]-[Answer->Valor Desconto Total])-([Answer->Quantidade]*[Saida_Vr])
         Switch
           Case VRCAL<0 : [Desconto_Apurado ]=[Desconto_Apurado ]+(VRCAL*-1)
           Case VRCAL>0 : [Acrescimo_Apurado]=[Acrescimo_Apurado]+VRCAL
         EndSwitch
    Case Tipo="TROCAS":
         [Troca_Qtd      ]=[Troca_Qtd      ]+[Answer->Quantidade]
         [Troca_VrTotal  ]=[Troca_Qtd      ]*[Saida_Vr]
    Case Tipo="BONIFICACOES":
         [Bonif_Qtd      ]=[Bonif_Qtd      ]+[Answer->Quantidade]
         [Bonif_VrTotal  ]=[Bonif_Qtd      ]*[Saida_Vr]
    Case Tipo="DEVOLUCOES":
         [Devol_Qtd      ]=[Devol_Qtd      ]+[Answer->Quantidade]
         [Devol_VrTotal  ]=[Devol_Qtd      ]*[Saida_Vr]
  EndSwitch

  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
  Moveto Tabela3
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa    ],
         [Answer->Numero_Carregamento  ],
         "",
         [Answer->Tipo de Pagamento    ],
         [Answer->Forma de Pagamento   ]
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
          [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
        ;;[Condicao de Pagamento]=[Answer->Condicao de Pagamento]
          [Tipo de Pagamento    ]=[Answer->Tipo de Pagamento    ]
          [Forma de Pagamento   ]=[Answer->Forma de Pagamento   ]
  EndIf
  [Valor]=[Valor]+[Answer->Valor]

  Moveto "Answer"
EndScan
Do_It!
ClearAll


View Tabela3B
CoEdit "Answer"
Scan
 ;; NDD=[Data]-[Data de Emissao]
  NDD=[Numero de Dias]

  Moveto Tabela3B
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa    ],
         [Answer->Numero_Carregamento  ],
         [Answer->Forma de Pagamento   ], NDD
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
          [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
          [Forma de Pagamento   ]=[Answer->Forma de Pagamento   ]
          [Numero de Dias       ]=NDD
  EndIf
  [Valor]=[Valor]+[Answer->Valor]

  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

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

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela4
CoEdit "Answer"
Scan
  Moveto Tabela4
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa    ],
         [Answer->Numero_Carregamento  ]
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa    ]=[Answer->Codigo da Empresa    ]
          [Numero_Carregamento  ]=[Answer->Numero_Carregamento  ]
  EndIf
  [Valor do Juros         ]=[Valor do Juros         ]+[Answer->Valor do Juros         ]
  [Valor do Desconto      ]=[Valor do Desconto      ]+[Answer->Valor do Desconto      ]
  [Valor Dinheiro         ]=[Valor Dinheiro         ]+[Answer->Valor Dinheiro         ]
  [Valor Cheque           ]=[Valor Cheque           ]+[Answer->Valor Cheque           ]
  [Valor Cheque Pre_Datado]=[Valor Cheque Pre_Datado]+[Answer->Valor Cheque Pre_Datado]

  Switch
    Case [Answer->Tipo da Baixa]="NORMAL"   : [Valor do Recebimento    ]=[Valor do Recebimento    ]+[Answer->Valor do Recebimento]
                                              [Valor do Juros          ]=[Valor do Juros          ]+[Answer->Valor do Juros      ]
                                              [Valor do Desconto       ]=[Valor do Desconto       ]+[Answer->Valor do Desconto   ]

    Case [Answer->Tipo da Baixa]="DEVOLUCAO": [Valor Recebimento Devol ]=[Valor Recebimento Devol ]+[Answer->Valor do Recebimento]
    Case [Answer->Tipo da Baixa]="CANCELADO": [Valor Recebimento Cancel]=[Valor Recebimento Cancel]+[Answer->Valor do Recebimento]
  EndSwitch

  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc Processa()

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Moveto [Unidade Fiscal         ] Example "unf"
{Ask} TypeIn Tabela2 Enter TypeIn "Fast"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] TypeIn "changeto _dite"
Moveto [Unidade Fiscal         ] TypeIn "changeto _unf"
Do_It!
ClearAll

EndProc   ;  (Processa)

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

Print File ARQIMP ASP1+CI_15CPP+ASP2+"\n"
Print File ARQIMP ASP1+CI_6LPP+ASP2+"\n"
If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="TESTE" EndIf

Sort Tabela2 On "Codigo da Empresa", "Numero_Carregamento", "Descricao do Item" To "Answer"
ClearAll

View "AcCarrgC"
View "AcCarrgV"
View Tabela4
View Tabela3B
View Tabela3
View Tabela1
View "Answer"
EMPANT  = "****"
CARANT  = "****"

pag=0
lin=0
Scan

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

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

          Moveto Tabela1
          Moveto [Codigo da Empresa]
          Locate EMPANT, CARANT

          Cabecalho()
  EndIf

  QTDDIFER=[Saida_Qtd]-([Retorno_Qtd]+[Venda_Qtd]+[Bonif_Qtd]+[Troca_Qtd])

  If (VSDGOPITE="T") Or
     (VSDGOPITE="D" And QTDDIFER<>0)
     Then Detalhe()

          TIT_SAIDA=TIT_SAIDA+[Saida_VrTotal  ]
          TIT_VENDA=TIT_VENDA+[Venda_VrTotal  ]
  EndIf

  TOT_SAIDA=TOT_SAIDA+[Saida_VrTotal  ]

  TOT_RETOR=TOT_RETOR+[Retorno_VrTotal]
  TOT_BONIF=TOT_BONIF+[Bonif_VrTotal  ]
  TOT_TROCA=TOT_TROCA+[Troca_VrTotal  ]
  TOT_DEVOL=TOT_DEVOL+[Devol_VrTotal  ]

  TOT_VENDA=TOT_VENDA+([Venda_VrTotal ]-[Venda_DescTotal])
  TOT_DESCT=TOT_DESCT+[Venda_DescTotal]

  TOT_DESCA=TOT_DESCA+[Desconto_Apurado ]
  TOT_ACREA=TOT_ACREA+[Acrescimo_Apurado]

EndScan
TotalItem()
TotalFinanc()

;;Print File ARQIMP ASP1+CI_10CPP+ASP2
;;Print File ARQIMP ASP1+CI_6LPP+ASP2
Do_It!
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 QuitLoop
          EndIf
  EndIf

  Moveto Tabela1
  Print File ARQIMP ASP1+Fill("-",137)+ASP2+"\n"
  Print File ARQIMP ASP1+COMPLETA(NOMEMPRESA,97," ")+"Emissao.: "+
             AlinhM(LTrim(Format("D13",Today())),10)+"-"+
             AlinhM(LTrim(Time()),8)+"  Pag.:"+Format("W4,EIC",pag)+ASP2+"\n"
  Print File ARQIMP ASP1+Fill("-",137)+ASP2+"\n\n"
  Print File ARQIMP ASP1+Format("W137,AC","Diferenca de Manifesto X Vendas X Retornos")+ASP2+"\n\n"
  Print File ARQIMP ASP1+COMPLETA("Empresa: "+[Codigo da Empresa]+" "+[Nome Fantasia Empresa],40," ")
  Print File ARQIMP      "No Carr: "+COMPLETA([Numero_Carregamento],17," ")
  Print File ARQIMP      "Emissao: "+Format("D13",[Data de Emissao])+"           Itens: "+VSDGDESCOPITE+ASP2+"\n"
  Print File ARQIMP ASP1+COMPLETA("Repres.: "+[Codigo do Representante]+" "+[Nome Fantasia Represent],40," ")
  Print File ARQIMP      "Veiculo: "+COMPLETA([Placa do Veiculo],10," ")+"/"+COMPLETA([UF Veiculo],6," ")
  Print File ARQIMP      "Tabela.: "+COMPLETA([Codigo da Tabela],20," ")
  Print File ARQIMP      "Docto: "+[Tipo do Documento]+"/"+[Numero do Documento]+ASP2+"\n\n"

  Print File ARQIMP ASP1+"Produto                                 UN      Saida    Retorno  %       Venda   Bonif.   Troca   Devol.    Difer.   Vr.Venda   Vr.Saida"+ASP2+"\n"
  Print File ARQIMP ASP1+"--------------------------------------- -- ---------- --------------- --------- -------- ------- -------- --------- ---------- ----------"+ASP2+"\n"
                         ;1234567890 1234567890123456789012345678 XX 999.999,99 999.999,9 999,9 999.999,9 99.999,9 9.999,9 99.999,9 99.999,99 999.999,99 999.999,99

  Moveto "Answer"

  QuitLoop
EndWhile
lin=11

EndProc   ; (Cabecalho)

;*******************************************************************************
;* Rotina p/ Detalhe                                                           *
;*******************************************************************************
Proc Detalhe()
ChecaLinhaPagina(59)
While True
  If OPCAOPAG<>"Todas"
     Then If pag<OPCAOPAGINI Or
             pag>OPCAOPAGFIM
             Then QuitLoop
          EndIf
  EndIf

  Print File ARQIMP ASP1+COMPLETA([Codigo do Item   ],11," ")
  Print File ARQIMP COMPLETA([Descricao do Item],28," ")+Spaces(1)
  Print File ARQIMP COMPLETA([Unidade Fiscal   ],02," ")
  Print File ARQIMP Format("W11.2,EIC",[Saida_Qtd  ])
  Print File ARQIMP Format("W10.2,EIC",[Retorno_Qtd])
  Print File ARQIMP Format("W06.1,EIC",([Retorno_Qtd]/[Saida_Qtd])*100)
  Print File ARQIMP Format("W10.2,EIC",[Venda_Qtd  ])
  Print File ARQIMP Format("W09.1,EIC",[Bonif_Qtd  ])
  Print File ARQIMP Format("W08.1,EIC",[Troca_Qtd  ])
  Print File ARQIMP Format("W09.1,EIC",[Devol_Qtd  ])
  Print File ARQIMP Format("W10.2,EIC",QTDDIFER)
  Print File ARQIMP Format("W11.2,EIC",[Venda_VrTotal])
  Print File ARQIMP Format("W11.2,EIC",[Saida_VrTotal])
  Print File ARQIMP ASP2+"\n"
  QuitLoop
EndWhile
lin=lin+1
EndProc    ;  (Detalhe)

;*******************************************************************************
;* Rotina p/ SubTotal                                                          *
;*******************************************************************************
Proc TotalItem()
While pag>0
  ChecaLinhaPagina(57)
  lin=lin+2

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

  Print File ARQIMP ASP1+Format("W137,AR","---------- ----------")+ASP2+"\n"
  Print File ARQIMP ASP1+Format("W115,AR","Total...")
  Print File ARQIMP      Format("W11.2,EIC",TIT_VENDA)
  Print File ARQIMP      Format("W11.2,EIC",TIT_SAIDA)+ASP2+"\n"

  QuitLoop
EndWhile
EndProc    ;  (Total)

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

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

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

  Carregamento()

  Print File ARQIMP ASP1+Spaces(05)+"***  R E S U L T A D O"+ASP2+"\n"
  Print File ARQIMP ASP1+Spaces(10)+"***  T I T U L O S  R E C E B I D O S"+ASP2+"\n"
  Print File ARQIMP ASP1+Spaces(14)+"    Titulos       +Juros    -Descontos    =Recebido     Dinheiro       Cheque  Cheque Pre      =Total   Diferenca"+ASP2+"\n"
  Moveto Tabela4                     ;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
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT
  If RetVal
     Then
          TOT_TITUL=[Valor do Recebimento   ]
          SOMA_FR  =[Valor Dinheiro         ]+
                    [Valor Cheque           ]+
                    [Valor Cheque Pre_Datado]
          DIFE_FR  =TOT_TITUL-SOMA_FR

          Print File ARQIMP ASP1+Spaces(10)+
                Format("W15.2,EIC",([Valor do Recebimento]-[Valor do Juros])+[Valor do Desconto   ]  )+"  "+
                Format("W11.2,EIC",[Valor do Juros         ])+"    "+
                Format("W10.2,EIC",[Valor do Desconto      ])+"   "+
                Format("W10.2,EIC",[Valor do Recebimento   ])+"   "+
                Format("W10.2,EIC",[Valor Dinheiro         ])+"   "+
                Format("W10.2,EIC",[Valor Cheque           ])+"  "+
                Format("W10.2,EIC",[Valor Cheque Pre_Datado])+"  "+
                Format("W10.2,EIC",SOMA_FR)+"  "+
                Format("W10.2,EIC",DIFE_FR)+ASP2+"\n"

          If [Valor Recebimento Devol ]>0 Or
             [Valor Recebimento Cancel]>0
             Then Print File ARQIMP ASP1+Spaces(14)+"  Devolucao    Cancelado"+ASP2+"\n"
                  Print File ARQIMP ASP1+Spaces(10)+
                        Format("W15.2,EIC",[Valor Recebimento Devol ])+"  "+
                        Format("W10.2,EIC",[Valor Recebimento Cancel])+ASP2+"\n"

          EndIf
     Else Print File ARQIMP ASP1+""+ASP2+"\n"
  EndIf
  Print File ARQIMP ASP1+""+ASP2+"\n"

  Print File ARQIMP ASP1+Spaces(10)+"***  F O R M A  P A G T O  V E N D A S"+ASP2+"\n"
  TOT_AVISTA  =0
  TOT_FPGTO   =0
  TOT_CHEQUEPD=0
  Moveto Tabela3
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT
  If RetVal
     Then wnc  =0
          LINHA=Spaces(10)
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT

            If wnc=3
               Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
                    wnc  =0
                    LINHA=Spaces(10)
            EndIf
            LINHA=LINHA+[Tipo de Pagamento]+"/"+COMPLETA([Descricao Tipo Pagamento],22,".")+Format("W11.2,EIC",[Valor])+Spaces(3)
            wnc=wnc+1
            If [Forma de Pagamento]="CP" Then TOT_CHEQUEPD=TOT_CHEQUEPD+[Valor] EndIf

            TOT_FPGTO=TOT_FPGTO+[Valor]
        ;;;;If [Tipo de Pagamento]="V" Then TOT_AVISTA=TOT_AVISTA+[Valor] EndIf
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          If wnc=3
             Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
                  LINHA=Spaces(10)
          EndIf
          LINHA=LINHA+COMPLETA("* TOTAL",24,".")+Format("W11.2,EIC",TOT_FPGTO)
          Print File ARQIMP ASP1+LINHA+ASP2+"\n"
     Else Print File ARQIMP ASP1+""+ASP2+"\n"
  EndIf
  Moveto "Answer"

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



  Moveto Tabela3B
  Moveto [Codigo da Empresa]
  Locate EMPANT, CARANT
  If RetVal
     Then FPANT=[Forma de Pagamento]
          wnc  =0
          LINHA=Spaces(10)
          While [Codigo da Empresa  ]=EMPANT And
                [Numero_Carregamento]=CARANT

            If wnc=6 Or [Forma de Pagamento]<>FPANT
               Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
                    wnc  =0
                    LINHA=Spaces(10)
                    FPANT=[Forma de Pagamento]
            EndIf
            LINHA=LINHA+COMPLETA([Forma de Pagamento],2," ")+Format("W03,AR",[Numero de Dias])+":"+Format("W10.2,EIC",[Valor])+Spaces(03)
            wnc=wnc+1
            If [Numero de Dias]=0  Then TOT_AVISTA=TOT_AVISTA+[Valor] EndIf
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
          If wnc>0
             Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
          EndIf
     Else Print File ARQIMP ASP1+""+ASP2+"\n"
  EndIf
  Moveto "Answer"



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

  TOT_AVEND=TOT_SAIDA-(TOT_RETOR+TOT_BONIF+TOT_TROCA+TOT_DEVOL)
  TOT_VBASE=(TOT_AVEND-TOT_DESCA)+TOT_ACREA
  TOT_DIFAV=TOT_VENDA-TOT_VBASE
  TOT_DIFPG=TOT_VENDA-TOT_FPGTO
  TOT_DIFCO=(TOT_LFITA+TOT_DESPE)-(TOT_TITUL+TOT_AVISTA)

;   Carregamento     -Retorno  -Bonificacao       -Troca   -Devolucao    =A Vender
;     999.999,99   999.999,99    999.999,99   999.999,99   999.999,99   999.999,99
;
;    Venda Bruta    -DesctoAP    +AcrescAP = Venda Liqda     - Acerto   =Diferenca    DesctoAP   AcrescAP
;     999.999,99   999.999,99   999.999,99    999.999,99   999.999,99   999.999,99     999,99%    999,99%
;
;         Acerto  Forma Pagto     Diferenca (AC,FP)
;     999.999,99   999.999,99    999.999,99
;
;     Total Fita   -Recebidos      -A Vista    -Despesas   =Diferenca
;     999.999,99   999.999,99    999.999,99   999.999,99   999.999,99

  If VSDGOPACVR="C"
     Then

     Print File ARQIMP ASP1+Spaces(10)+"   Carregamento     -Retorno  -Bonificacao       -Troca   -Devolucao    =A Vender"+ASP2+"\n"
     Print File ARQIMP ASP1+Spaces(15)+
           Format("W10.2,EIC",TOT_SAIDA)+"   "+
           Format("W10.2,EIC",TOT_RETOR)+"    "+
           Format("W10.2,EIC",TOT_BONIF)+"   "+
           Format("W10.2,EIC",TOT_TROCA)+"   "+
           Format("W10.2,EIC",TOT_DEVOL)+"   "+
           Format("W10.2,EIC",TOT_AVEND)+ASP2+"\n\n"

     Print File ARQIMP ASP1+Spaces(10)+"    Venda Bruta    -DesctoAP     +AcrescAP =Venda Liquida   - Acerto   =Diferenca"+
                                       "     DesctoAP   AcrescAP"+ASP2+"\n"
     Print File ARQIMP ASP1+Spaces(15)+
           Format("W10.2,EIC",TOT_AVEND)+"   "+
           Format("W10.2,EIC",TOT_DESCA)+"    "+
           Format("W10.2,EIC",TOT_ACREA)+"   "+
           Format("W10.2,EIC",TOT_VBASE)+"   "+
           Format("W10.2,EIC",TOT_VENDA)+"   "+
           Format("W10.2,EIC",TOT_DIFAV)+"      "+
           Format("W06.2,EIC",Round(((TOT_DESCA/TOT_AVEND)*100),2))+"%    "+
           Format("W06.2,EIC",Round(((TOT_ACREA/TOT_AVEND)*100),2))+"%"+ASP2+"  \n\n"

     Print File ARQIMP ASP1+Spaces(10)+"         Acerto -Forma Pagto    =Diferenca (VL,FP)"+ASP2+"\n"
     Print File ARQIMP ASP1+Spaces(15)+
           Format("W10.2,EIC",TOT_VENDA)+"   "+
           Format("W10.2,EIC",TOT_FPGTO)+"    "+
           Format("W10.2,EIC",TOT_DIFPG)+ASP2+"\n\n"

     Print File ARQIMP ASP1+Spaces(10)+"     Total Fita -Rec.Titulos      -A Vista    +Despesas   =Diferenca"+ASP2+"\n"
     Print File ARQIMP ASP1+Spaces(15)+
           Format("W10.2,EIC",TOT_LFITA)+"   "+
           Format("W10.2,EIC",TOT_TITUL)+"    "+
           Format("W10.2,EIC",TOT_AVISTA)+"   "+
           Format("W10.2,EIC",TOT_DESPE)+"   "+
           Format("W10.2,EIC",TOT_DIFCO)+ASP2+"\n\n"

  EndIf
  
  If VSDGOPACVR="S"
     Then TOT_REAL=TOT_LFITA-TOT_CHEQUEPD-TOT_AVISTA+[Accarrgc->Total Despesas]
          Print File ARQIMP ASP1+SPACES(10)+"Diferenca Real: "+Format("W10.2,EIC",TOT_LFITA)+" - "+Format("W10.2,EIC",TOT_AVISTA)
          Print File ARQIMP " - "+Format("W10.2,EIC",TOT_CHEQUEPD)+" + "+Format("W10.2,EIC",[Accarrgc->Total Despesas])+" = "+Format("W10.2,EIC",TOT_REAL)+ASP2+"\n"
  EndIf

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

  Print File ARQIMP ASP1+"\f"+ASP2+"\n"

  QuitLoop
EndWhile

TOT_SAIDA=0   TOT_RETOR=0   TOT_VENDA=0
TOT_DESCT=0   TOT_BONIF=0   TOT_TROCA=0
                            TOT_DEVOL=0
TOT_VBRUT=0   TOT_FPGTO=0   TOT_TITUL=0
TOT_DESPE=0   TOT_DESCA=0   TOT_ACREA=0

TIT_SAIDA=0   TIT_VENDA=0

EndProc    ;  (TotalFinanc)

;*******************************************************************************
;* Rotina p/ Total                                                             *
;*******************************************************************************
Proc Carregamento()
TOT_LFITA=0
TOT_TITUL=0
TOT_DESPE=0

Print File ARQIMP ASP1+Spaces(05)+"***  A C E R T O"+ASP2+"\n"
Print File ARQIMP ASP1+Spaces(10)+"***  F I T A  F I N A N C E I R A"+ASP2+"\n"

Moveto "AcCarrgV"
Moveto [Numero_Carregamento]
Locate CARANT
If RetVal
   Then
        wnc  =0
        LINHA=""
        While [Numero_Carregamento]=CARANT

          If wnc=3
             Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
                  wnc  =0
                  LINHA=""
          EndIf
          LINHA=LINHA+Spaces(10)+COMPLETA([Descricao Tipo Pagamento],20,".")+Format("W11.2,EIC",[Valor])
          wnc=wnc+1

          TOT_LFITA=TOT_LFITA+[Valor]
          Skip
          If EOT() Then QuitLoop EndIf
        EndWhile
        If wnc=3
           Then Print File ARQIMP ASP1+LINHA+ASP2+"\n"
                LINHA=""
        EndIf
        LINHA=LINHA+Spaces(10)+COMPLETA("* TOTAL",20,".")+Format("W11.2,EIC",TOT_LFITA)
        Print File ARQIMP ASP1+LINHA+ASP2+"\n"
   Else Print File ARQIMP ASP1+""+ASP2+"\n"
EndIf

Print File ARQIMP ASP1+""+ASP2+"\n"
Print File ARQIMP ASP1+Spaces(10)+"***  V E I C U L O"+ASP2+"\n"

ENCONTRADO=False
Moveto "AcCarrgC"
Moveto [Numero_Carregamento]
Locate CARANT
If RetVal
   Then ENCONTRADO=True
EndIf

Print File ARQIMP ASP1+Spaces(10)+"Placa       Km Saida  Km Chegada  Km Rodado   Comb/Lts  Media "+ASP2+"\n"
If ENCONTRADO
   Then Print File ARQIMP ASP1+Spaces(10)+
              Format("W10,AL",[Placa do Veiculo])+" "+
              Format("W09.1,EI",[Km Saida  ])   +"   "+
              Format("W09.1,EI",[Km Chegada])   +"  "+
              Format("W09.1,EI",[Km Rodado ])   +"  "+
              Format("W09.2,EIC",[Litros Combustivel])+"  "+
              Format("W05.1,EIC",[Media Consumo     ])+" Km/Lt"+ASP2+"\n"
   Else Print File ARQIMP ASP1+""+ASP2+"\n"
EndIf
Print File ARQIMP ASP1+""+ASP2+"\n"

Print File ARQIMP ASP1+Spaces(10)+"***  D E S P E S A S"+ASP2+"\n"
If ENCONTRADO
   Then
        TOT_DESPE=[Total Despesas]
        Print File ARQIMP ASP1+Spaces(10)+"Combustivel  Hospedagem    Refeicao  Manutencao      Outras       Total"+ASP2+"\n"
        Print File ARQIMP ASP1+Spaces(10)+
              Format("W11.2,EIC",[Valor Combustivel ])+"  "+
              Format("W10.2,EIC",[Despesas Hospedagem])+"  "+
              Format("W10.2,EIC",[Despesas Refeicao  ])+"  "+
              Format("W10.2,EIC",[Despesas Manutencao])+"  "+
              Format("W10.2,EIC",[Despesas Outras    ])+"  "+
              Format("W10.2,EIC",[Total Despesas     ])+ASP2+"\n"
   Else Print File ARQIMP ASP1+""+ASP2+"\n"
EndIf
Print File ARQIMP ASP1+""+ASP2+"\n"

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

Moveto "Answer"

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_OPITE"         : Campo="TG_NCARREG"
            Case Campo="TG_OPACVR"        : Campo="TG_OPITE"
            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="MANIFESTO"
                            Then Campo="TG_OPITE"
                            Else Mensagem("Tipo carregamento invalido !")
                         EndIf
                    Case Campo="TG_OPITE"   : Campo="TG_OPACVR"
                         VSDGOPITE=ControlValue("TG_OPITE")
                         If VSDGOPITE="T"
                            Then VSDGDESCOPITE="TODOS"
                            Else VSDGOPITE    ="D"
                                 VSDGDESCOPITE="C/ DIFERENCA"
                         EndIf
                    Case Campo="TG_OPACVR"   : Campo="YES"
                         VSDGOPACVR=ControlValue("TG_OPACVR")
                         If VSDGOPACVR="C"
                            Then VSDGDESCOPACVR="COM VALORES"
                            Else VSDGOPACVR    ="S"
                                 VSDGDESCOPACVR="SEM VALORES"
                         EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_NCARREG":
     MSG_CAMPO="Informe o N£mero do Carregamento"
  Case Campo="TG_OPITE":
     MSG_CAMPO="Imprimir itens: T=Todos  D=com Diferen‡a"
  Case Campo="TG_OPACVR":
     MSG_CAMPO="Imprimir Acerto: C=Com Valores  S=Sem Valores"
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 "Resumo de Acerto/Manifesto" 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 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  @ 00,35 "Op‡„o de Itens" For "TG_OPITE"
    Accept @ 01,39 Width 04 "A1"  Picture "D,T" Tag "TG_OPITE" To VSDGOPITE
    Accept @ 01,44 Width 25 "A20"  Picture "!*!" Tag "TG_DESCOPITE" To VSDGDESCOPITE

    Label  @ 02,35 "Op‡„o de Valores" For "TG_OPACVR"
    Accept @ 03,39 Width 04 "A1"  Picture "C,S" Tag "TG_OPACVR" To VSDGOPACVR
    Accept @ 03,44 Width 25 "A20"  Picture "!*!" Tag "TG_DESCOPACVR" To VSDGDESCOPACVR

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf

  DISPOSITIVO()
  If OK=""  Then Loop EndIf

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

  Tabela1=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0980a" Tabela1
  Tabela2=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0980b" Tabela2
  Tabela3=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0980c" Tabela3
  Tabela3B=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0980f" Tabela3B
  Tabela4=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0980d" Tabela4

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

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

  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")
  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 Tabela1
  Delete Tabela2
  Delete Tabela3
  Delete Tabela3B
  Delete Tabela4
  Delete "Answer"

EndWhile
ClearAll
Release Vars All
Release Procs All

