;** Rm_1501 ********************************************************************
;* Resumo de Saida Consignado II                                               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 26/09/2011 por Bruno Carvalho
;Ultima Alteracao: 29/09/2011 por Bruno CArvalho 
;Motivo Alteracao: Novos Ajustes para Debito e Credito
;Ultima Alteracao: 18/10/2011 por Bruno CArvalho 
;Motivo Alteracao: Ajustes Item c/ Valor Unitario no Retorno diferente do Consignado
;Ultima Alteracao: 12/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Descontos da Venda aplicado em Outros Retornos           
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 18/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Outros retornos, diferen‡as                              
;Ultima Alteracao: 10/04/2013 por Karina Andrade
;Motivo Alteracao: Ajustes leiaute impressao e comissÆo
;Ultima Alteracao: 30/04/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes [Data de Vencimento] <= DTFIM                                
;Ultima Alteracao: 06/06/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Devolu‡äes NotaI faltava check no campo [Codigo]          
;Ultima Alteracao: 11/06/2014 por Anivel/Bruno
;Motivo Alteracao: Ajustes [RetornoOutros_Qtd] Adiciona_Dados2() PARAM="RETORNOS"
;Ultima Alteracao: 25/06/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes TotalFinanc() p/ controle de linhas
;Ultima Alteracao: 27/05/2016 por Bruno Carvalho 
;Motivo Alteracao: Alterado NUM_LANCTO = PROXLANCTO_NLANC -> Padroniza‡Æo da rotina de Numero_Lancamento() 
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()
;Ultima Alteracao: 29/05/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo "F7" p/ gerar comissÆo liquida a pagar 
;Ultima Alteracao: 08/06/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado no filtro op‡Æo de valor p/ retorno -> Verifica_Valor_Unitario()
;Ultima Alteracao: 08/06/2017 por Bruno Carvalho
;Motivo Alteracao: InclusÆo de um novo valor PROJECAO (Vendas Projetadas - Outros Retornos) -> TotalFinanc()   
;Ultima Alteracao: 13/06/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado "TpPagto" ao abrir tabelas nas procs Gera_OF() e Gera_Pedidos -> Saindo do sistema
;Ultima Alteracao: 14/06/2017 por Bruno Carvalho
;Motivo Alteracao: Novo layout p/ realizar opera‡äes ap¢s a sele‡Æo das notas realizada pelo usu rio -> Imprimir, Gerar Pedidos/OF e Acerto Consignado/ComissÆo
;Ultima Alteracao: 21/06/2017 por Bruno Carvalho
;Motivo Alteracao: ASP1 ausente na linha de impressÆo "(T) Credito" -> TotalFinanc() 
;Ultima Alteracao: 18/08/2017 por Bruno Carvalho
;Motivo Alteracao: Removido [Condicao de Pagamento] e [Composicao de Dias] na proc Grava_FaturaI()
;Ultima Alteracao: 29/08/2017 por Bruno/kamila
;Motivo Alteracao: Ajustes para quando VSDGOPRET="2" -> Adiciona_Dados2() *Manter o [Preco Unitario] do Retorno
;Ultima Alteracao: 19/10/2017 por Bruno Carvalho
;Motivo Alteracao: Removido de Grava_PedidoI() -> Condicao de Pagamento, Composicao de Dias
;Ultima Alteracao: 31/10/2017 por Bruno Carvalho
;Motivo Alteracao: Removido de Grava_PedidoI() -> Empresa Atendimento
;Ultima Alteracao: 07/11/2017 por Bruno Carvalho
;Motivo Alteracao: Vari vel MSG estava sem valor inicial -> Atualiza_Acerto()
;Ultima Alteracao: 16/11/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes 0391 ignorar devolucao nota de entrada
;Ultima Alteracao: 10/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes destina‡Æo conforme destino da consigna‡Æo
;Ultima Alteracao: 18/06/2018 por Kamila Gomes
;Motivo Alteracao: Ajustes proc Gera_pedidos() View "Destin"                                                                               
;*******************************************************************************
;* Rotina p/ Ajustar Registros                                                 *
;*******************************************************************************
Proc Ajusta_Dados()
Private Wi
ClearAll                          
                                             
For Wi From 1 To 2
  If Wi=1
     Then If IsTable("\\Sistemas\\Vendas\\NotaC")
             Then {Ask} TypeIn "\\Sistemas\\Vendas\\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 TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                  Moveto [Razao Social           ] Check
                  Moveto [Codigo                 ] Check TypeIn "~VSDGDESTINAT.."
                  Moveto [Codigo do Representante] Check
                  Moveto [Nome Fantasia Represent] Check
                  Moveto [Descricao da Destinacao] Check TypeIn "..CONSIG.."
                  Moveto [Tipo Movimento Estoque ] Check
                  Moveto [Placa do Veiculo       ] Check
                  Moveto [Valor Nota Fiscal      ] Check
                  Moveto [UF Veiculo             ] Check
                  Moveto [Codigo da Tabela       ] Check
                  Moveto [Situacao               ] Check TypeIn "Not C"
                  Moveto [Tipo de Pagamento      ] Check
                  Moveto [Data de Acerto         ] Check TypeIn "Blank"
                  Do_It!
                  ClearAll
          EndIf
     Else 
          if sys_codigo_Cliente="0391"  ; ignorar para este cliente
             then loop
          EndIf       
                                             
          If IsTable("\\Sistemas\\Estoque\\NotaEC")
             Then {Ask} TypeIn "\\Sistemas\\Estoque\\NotaEC" Enter
                  Moveto [Numero do Lancamento   ] Check 
                  Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
                  Moveto [Tipo de Operacao       ] TypeIn "D"
                  Moveto [Data de Emissao        ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                  Moveto [Numero do Documento    ] Check ;TypeIn "as Numero do Documento"   
                  Moveto [Serie do Documento     ] Check
                  Moveto [Tipo do Documento      ] Check
                  Moveto [Codigo                 ] Check TypeIn "~VSDGDESTINAT.."
                  Moveto [Valor Nota Fiscal      ] Check
                  Moveto [Tipo                   ] Check TypeIn "as Tipo Movimento Estoque"
                  Do_It!
                  ClearAll
          EndIf                                          
  EndIf
  
  
  If Not IsEmpty("Answer")
     Then Coedit Tabela,"Answer"
          If Wi=1
             Then Scan
                    Moveto Tabela
                    End Down
                    [Codigo da Empresa      ]=[Answer->Codigo da Empresa      ]
                    [Numero do Documento    ]=[Answer->Numero do Documento    ]
                    [Serie do Documento     ]=[Answer->Serie do Documento     ]
                    [Nome Fantasia Empresa  ]=[Answer->Nome Fantasia Empresa  ]
                    [Tipo do Documento      ]=[Answer->Tipo do Documento      ]
                    [Data de Emissao        ]=[Answer->Data de Emissao        ]
                    [Razao Social           ]=[Answer->Razao Social           ]
                    [Codigo                 ]=[Answer->Codigo                 ]
                    [Codigo do Representante]=[Answer->Codigo do Representante]
                    [Nome Fantasia Represent]=[Answer->Nome Fantasia Represent]
                    [Descricao da Destinacao]=[Answer->Descricao da Destinacao]
                    [Tipo Movimento Estoque ]=[Answer->Tipo Movimento Estoque ]
                    [Placa do Veiculo       ]=[Answer->Placa do Veiculo       ]
                    [Valor Nota Fiscal      ]=[Answer->Valor Nota Fiscal      ]
                    [UF Veiculo             ]=[Answer->UF Veiculo             ]
                    [Codigo da Tabela       ]=[Answer->Codigo da Tabela       ]
                    [Situacao               ]=[Answer->Situacao               ]
                    [Tipo de Pagamento      ]=[Answer->Tipo de Pagamento      ]

                    UnlockRecord
                    Moveto "Answer"
                    
                  EndScan 
                   
                  Do_It!
                  ClearAll     
             
             Else Scan  
                    Moveto Tabela
                    End Down
                    [Numero do Lancamento   ]=[Answer->Numero do Lancamento]
                    [Codigo da Empresa      ]=[Answer->Codigo da Empresa   ] 
                    [Numero do Documento    ]=[Answer->Numero do Documento ] 
                    [Serie do Documento     ]=[Answer->Serie do Documento  ]
                    [Data de Emissao        ]=[Answer->Data de Emissao     ] 
                    [Tipo do Documento      ]=[Answer->Tipo do Documento   ] 
                    [Codigo                 ]=[Answer->Codigo              ]
                    [Valor Nota Fiscal      ]=[Answer->Valor Nota Fiscal   ]
                    [Tipo Movimento Estoque ]="E"
                    [Descricao da Destinacao]="DEVOLUCAO"  

                    UnlockRecord
                    Moveto "Answer"
                    
                  EndScan
                  Do_It!
                  ClearAll
          EndIf        
  EndIf
  
EndFor

EndProc ; Ajusta_Dados() 
;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona()

;****** Consignado *ÿ***********************************************************
If IsTable("\\Sistemas\\Vendas\\NotaI")
   Then {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Check
        Moveto [Codigo                 ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Tipo do Documento      ] Check
        Moveto [Serie do Documento     ] Check
        Moveto [Descricao da Destinacao] TypeIn "CONSIG.."
        Moveto [Numero do Documento    ] Check
        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Codigo do Representante] Check
        Moveto [Nome Fantasia Represent] Check
        Moveto [Placa do Veiculo       ] Check
        Moveto [UF Veiculo             ] Check
        Moveto [Codigo da Tabela       ] Check
        Moveto [Razao Social           ] Check
        Moveto [Valor Nota Fiscal      ] Check
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Do_It!
        ClearAll

        If IsEmpty("Answer")
           Then CONSIGNADO=False
                MENSAGEM("Consignado n„o encontrado !")
                Return
           Else CONSIGNADO=True
        EndIf

        Adiciona_Dados1()

        {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" 
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Tipo do Documento      ] Check
        Moveto [Codigo                 ] Check 
        Moveto [Descricao da Destinacao] TypeIn "CONSIG.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
				{Ask} TypeIn "\\Sistemas\\Vendas\\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("CONSIGNADO")
EndIf

;****** Trocas *****************************************************************1
If IsTable("\\Sistemas\\Vendas\\NotaI")
   Then {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" 
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Tipo do Documento      ] Check           
        Moveto [Codigo                 ] Check 
        Moveto [Descricao da Destinacao] TypeIn "..TROCA.. ..CONSIG.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        {Ask} TypeIn "\\Sistemas\\Vendas\\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

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\NotaI")
   Then {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa        ] Check Example "cemp" 
        Moveto [Numero do Documento      ] Check Example "ndoc"
        Moveto [Serie do Documento       ] Check Example "sdoc"
        Moveto [Tipo do Documento        ] Check
        Moveto [Codigo                   ] Check
        Moveto [Descricao da Destinacao  ] TypeIn "..VENDA.. ..CONSIG.."
        Moveto [Tipo Movimento Estoque   ] TypeIn "S"
        Moveto [Tipo de Pagamento        ] Check
        {Ask} TypeIn "\\Sistemas\\Vendas\\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")
EndIf

;****** Retornos - Consignado ***************************************************
If IsTable("\\Sistemas\\Vendas\\NotaI")
   Then
        {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp"
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Tipo do Documento      ] Check
        Moveto [Codigo                 ] Check
        Moveto [Descricao da Destinacao] TypeIn "..RET.. ..CONSIG.."
        Moveto [Tipo Movimento Estoque ] TypeIn "E"
        {Ask} TypeIn "\\Sistemas\\Vendas\\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

;****** Devolucoes - Consignado  ***********************************************
If IsTable("\\Sistemas\\Vendas\\NotaI")
   Then {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" 
        Moveto [Numero do Documento    ] Check Example "ndoc"
        Moveto [Serie do Documento     ] Check Example "sdoc"
        Moveto [Tipo do Documento      ] Check
        Moveto [Codigo                 ] Check     
        Moveto [Descricao da Destinacao] TypeIn "..DEVOL.. ..CONSIG.."
        Moveto [Tipo Movimento Estoque ] TypeIn "E"
        {Ask} TypeIn "\\Sistemas\\Vendas\\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\\NotaEI")
   Then
        {Ask} TypeIn Tabela Enter
        Moveto [Numero do Lancamento   ] Check Example "nlan"
        Moveto [Codigo da Empresa      ] Check Example "cemp" 
        Moveto [Numero do Documento    ] Check 
        Moveto [Tipo do Documento      ] Check
        Moveto [Codigo                 ] Check 
        {Ask} TypeIn "\\Sistemas\\Estoque\\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   

;****** Totaliza Nota(s) *******************************************************
If IsTable("\\Sistemas\\Vendas\\NotaC")
   Then {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa        ] Example "cemp" 
        Moveto [Numero do Documento      ] Example "ndoc"
        Moveto [Serie do Documento       ] Example "sdoc"
        Moveto [Descricao da Destinacao  ] TypeIn "..VENDA.. ..CONSIG.."
        Moveto [Tipo Movimento Estoque   ] TypeIn "S"
        {Ask} TypeIn "\\Sistemas\\Vendas\\NotaC" Enter
        Moveto [Codigo da Empresa        ] Example "cemp"
        Moveto [Numero do Documento      ] Example "ndoc"
        Moveto [Serie do Documento       ] Example "sdoc"
        Moveto [Comissao do Representante] Check
        Moveto [Valor Desconto           ] Check 
        Moveto [Valor Mercadoria         ] Check
        Do_It!
        ClearAll

        Adiciona_Totalizador()
EndIf

;****** Debito *****************************************************************
If IsTable("\\Sistemas\\CtaRec\\Duplic")
   Then {Ask} TypeIn "\\Sistemas\\CtaRec\\Duplic" Enter
        Moveto [Codigo do Destinatario ] Check TypeIn "~VSDGDESTINAT.., as Codigo"
        Moveto [Numero do Documento    ] Check 
        Moveto [Tipo do Documento      ] Check 
        Moveto [Data de Vencimento     ] Check TypeIn "<=~VSDGDTFIM"
        Moveto [Data de Emissao        ] Check
        Moveto [Data Limite Desconto   ] Check
        Moveto [Saldo do Documento     ] Check TypeIn ">0.01"
        Moveto [Valor do Documento     ] Check TypeIn ">0.01" 
        Moveto [Observacoes            ] Check 
        Moveto [Valor do Desconto      ] Check 
        Moveto [Taxa de Juros          ] Check 
        Moveto [Multa                  ] Check  
        Moveto [NDias Taxa de Juros    ] Check   
        Moveto [Valor de Juros         ] Check       
        Moveto [Tipo Docto Gerador     ] Check
        Moveto [Numero Docto Gerador   ] Check
        Do_It!
        ClearAll

        Adiciona_DebCred("DEBITO")        
EndIf

;****** Credito *****************************************************************
If IsTable("\\Sistemas\\CtaPag\\Titulos")
   Then {Ask} TypeIn "\\Sistemas\\CtaPag\\Titulos" Enter
        Moveto [Codigo do Emitente     ] Check TypeIn "~VSDGDESTINAT.., as Codigo"
        Moveto [Numero do Documento    ] Check
        Moveto [Tipo do Documento      ] Check
        Moveto [Data de Vencimento     ] Check TypeIn "<=~VSDGDTFIM"
        Moveto [Data de Emissao        ] Check
        Moveto [Data Limite Desconto   ] Check
        Moveto [Saldo do Documento     ] Check TypeIn ">0.01"
        Moveto [Valor do Documento     ] Check TypeIn ">0.01"                   
        Moveto [Observacoes            ] Check 
        Do_It!
        ClearAll

        Adiciona_DebCred("CREDITO")        
EndIf

EndProc

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

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo                 ] Example "ccli"
Moveto [Data de Emissao        ] Example "dtem"
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 [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"
Moveto [Razao Social           ] Example "ncli"
Moveto [Valor Nota Fiscal      ] Example "VrNF"

{Ask} TypeIn Tabela1 Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo                 ] Example "ccli"
Moveto [Data de Emissao        ] Example "dtem"
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 [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"
Moveto [Razao Social           ] Example "ncli"
Moveto [Valor Nota Fiscal      ] Example "VrNF"    
Do_It!
ClearAll

EndProc                                           

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

If IsEmpty("Answer")
   Then Return
EndIf

If VSDGOPRET="1"
   Then If Tipo="CONSIGNADO" Or Tipo="RETORNOS"
           Then Verifica_Valor_Unitario(Tipo)
        EndIf   
EndIf
                         
View Tabela2
CoEdit "Answer"
Scan
  Moveto Tabela2       
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa  ],[Answer->Codigo],[Answer->Codigo do Item],[Answer->Preco Unitario]
  If Not RetVal
     Then End
          Down
          [Codigo da Empresa]=[Answer->Codigo da Empresa  ]
          [Codigo           ]=[Answer->Codigo             ]
          [Codigo do Item   ]=[Answer->Codigo do Item     ]
          [Preco Unitario   ]=[Answer->Preco Unitario     ]     
  EndIf
  Switch
    Case Tipo="CONSIGNADO":
         [Saida_Qtd      ]=[Saida_Qtd    ]+[Answer->Quantidade    ]
         [Saida_Vr       ]=[Answer->Preco Unitario]
         [Saida_VrTotal  ]=[Saida_VrTotal]+[Answer->Preco Total   ]           
    Case Tipo="TROCAS":
         [Saida_Qtd      ]=[Saida_Qtd    ]+[Answer->Quantidade]
         [Saida_Vr       ]=[Answer->Preco Unitario]
         [Saida_VrTotal  ]=[Saida_Qtd    ]*[Saida_Vr]
    Case Tipo="RETORNOS"  Or Tipo="DEVOLUCOES":
         If VSDGOPRET="2" And Tipo="RETORNOS" 
            Then [Retorno_Qtd          ]=[Retorno_Qtd      ]+[Answer->Quantidade]
                 [Retorno_VrTotal      ]=[Retorno_Qtd      ]*[Preco Unitario]
           Else If Not IsBlank([Saida_Qtd])  
                   Then 
                        If ([Retorno_Qtd      ]+[Answer->Quantidade])>[Saida_Qtd]
                           Then 
                                [RetornoOutros_Qtd    ]=[RetornoOutros_Qtd]+(([Retorno_Qtd]+[Answer->Quantidade])-[Saida_Qtd])
                                [RetornoOutros_VrTotal]=[RetornoOutros_Qtd]*[Saida_Vr          ]
          
                                [Retorno_Qtd          ]=[Saida_Qtd        ]
                                [Retorno_VrTotal      ]=[Retorno_Qtd      ]*[Saida_Vr          ]
                           Else
                                [Retorno_Qtd          ]=[Retorno_Qtd      ]+[Answer->Quantidade]
                                [Retorno_VrTotal      ]=[Retorno_Qtd      ]*[Saida_Vr          ]
                        EndIf    
                        
                   Else [RetornoOutros_Qtd    ]=[RetornoOutros_Qtd]+[Answer->Quantidade]
                        [RetornoOutros_VrTotal]=[RetornoOutros_Qtd]*[Preco Unitario    ]
                EndIf
         EndIf       
    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
  EndSwitch

  REFDOCTO=[Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento]+"  "
  Switch
    Case Tipo="CONSIGNADO"  : If Search(REFDOCTO,RELDOCTO_SAIDA)=0 Then RELDOCTO_SAIDA=RELDOCTO_SAIDA+REFDOCTO EndIf
    Case Tipo="RETORNOS"    : If Search(REFDOCTO,RELDOCTO_RETOR)=0 Then RELDOCTO_RETOR=RELDOCTO_RETOR+REFDOCTO EndIf
    Case Tipo="VENDAS"      : If Search(REFDOCTO,RELDOCTO_VENDA)=0 Then RELDOCTO_VENDA=RELDOCTO_VENDA+REFDOCTO EndIf
    Case Tipo="TROCAS"      : If Search(REFDOCTO,RELDOCTO_TROCA)=0 Then RELDOCTO_TROCA=RELDOCTO_TROCA+REFDOCTO EndIf
    Case Tipo="DEVOLUCOES"  : If Search(REFDOCTO,RELDOCTO_DEVOL)=0 Then RELDOCTO_DEVOL=RELDOCTO_DEVOL+REFDOCTO EndIf
  EndSwitch

  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Verifica_Valor_Unitario(Tipo)
Private PRECO_UNITARIO,Tipo

If Tipo="CONSIGNADO" 
   Then Tabela4=Cria_Temp(PrivDir())
        Copy "Answer" Tabela4
   Else View Tabela4
        CoEdit "Answer"
        Scan
          PRECO_UNITARIO=0
          Moveto Tabela4
          Moveto [Codigo do Item]
          Locate [Answer->Codigo do Item]
          If RetVal
             Then PRECO_UNITARIO=[Preco Unitario]
          EndIf
          Moveto "Answer"
          If PRECO_UNITARIO>0 And [Preco Unitario]<>PRECO_UNITARIO 
             Then [Preco Unitario]=PRECO_UNITARIO
          EndIf        
        EndScan
        Do_It!
        ClearAll  
EndIf

EndProc ;Verifica_Valor_Unitario()

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

COMISSAOREP=0   ; Comissao do Representante
VR_DESCONTO=0   ; Valor Desconto
VR_MERCADOR=0   ; Valor Mercadoria Liquido

If IsEmpty("Answer")
   Then Return
EndIf

COMISSAOREP=0   ; Comissao do Representante
VR_DESCONTO=0   ; Valor Desconto
VR_MERCADOR=0   ; Valor Mercadoria Liquido

Coedit "Answer"
Scan
  VR_MERCADOR = VR_MERCADOR + [Valor Mercadoria]
  VR_DESCONTO = VR_DESCONTO + [Valor Desconto]
  COMISSAOREP = COMISSAOREP + (([Valor Mercadoria]-[Valor Desconto])*[Comissao do Representante]/100)
EndScan
Do_It!
ClearAll

Delete "Answer"

EndProc ;Adiciona_Totalizador()
;*******************************************************************************
;* Rotina p/ processar Db Temporaria                                           *
;*******************************************************************************
Proc Adiciona_DebCred(Tipo)
Private Tipo

If IsEmpty("Answer")
   Then Return
EndIf

If Tipo = "DEBITO" 
   Then View "Answer"
        CoEdit Tabela
        Scan
          TPDOCTO=[Tipo do Documento  ]
          NDOCTO =[Numero do Documento]
        
          Moveto "Answer"
          Moveto [Numero Docto Gerador]
          Locate NDOCTO
          If RetVal
             Then If TPDOCTO=[Tipo Docto Gerador]
                     Then While TPDOCTO=[Tipo Docto Gerador] And NDOCTO=[Numero Docto Gerador]
                             Del
                             If Eot() Then QuitLoop EndIf
                          EndWhile
                  EndIf
          EndIf
          Moveto Tabela
        EndScan
        Do_It!
        ClearAll
EndIf

View Tabela3
CoEdit "Answer"
Scan
  Moveto Tabela3
  End Down
 
  [Codigo              ]=[Answer->Codigo              ] 
  [Numero do Documento ]=[Answer->Numero do Documento ] 
  [Tipo do Documento   ]=[Answer->Tipo do Documento   ] 
  [Data de Vencimento  ]=[Answer->Data de Vencimento  ] 
  [Data de Emissao     ]=[Answer->Data de Emissao     ]
  [Data Limite Desconto]=[Answer->Data Limite Desconto] 
  [Saldo do Documento  ]=[Answer->Saldo do Documento  ]  
  [Valor do Documento  ]=[Answer->Valor do Documento  ]                     
  [Observacoes         ]=[Answer->Observacoes         ] 
  
  Switch
    Case Tipo = "DEBITO" : [Valor do Desconto  ]=[Answer->Valor do Desconto  ]  
                           [Taxa de Juros      ]=[Answer->Taxa de Juros      ] 
                           [NDias Taxa de Juros]=[Answer->NDias Taxa de Juros]    
                           [Valor de Juros     ]=[Answer->Valor de Juros     ]   
                           [Multa              ]=[Answer->Multa              ] 
                           [Tipo               ]="D" 
    Case Tipo = "CREDITO": [Tipo               ]="C"
  EndSwitch

  Moveto "Answer"
EndScan  
Do_It!
ClearAll

If Tipo = "DEBITO"
   Then CalcJuros()
EndIf

EndProc     ; (Adiciona_DebCred)  
;*******************************************************************************
;* Rotina p/ processar Db Temporaria                                           *
;*******************************************************************************
Proc CalcJuros()

Coedit Tabela3
Scan For Not IsBlank([Data de Vencimento]) And [Tipo]="D"
   If [Data de Vencimento]<Today()
      Then NDA=Today()-[Data de Vencimento]
           TXM=[Multa]
      Else NDA=0
           TXM=0
   EndIf

   If [Data Limite Desconto]>=Today()
      Then VRDESCT=[Valor do Desconto]
      Else VRDESCT=0
   EndIf
                     
   If [Taxa de Juros]>0
      Then TXJ=([Taxa de Juros]/[NDias Taxa de Juros])*NDA
           VRJUROS=Round((([Saldo do Documento]*TXJ)/100)+([Saldo do Documento]*TXM/100),2)
      Else VRJUROS=Round((([Valor de Juros]/[NDias Taxa de Juros])*NDA),2)
           VRJUROS=VRJUROS+Round((([Saldo do Documento]*TXM)/100),2)
   EndIf

   [Saldo do Documento]=([Saldo do Documento]+VRJUROS)-VRDESCT                  ;[Valor do Documento]
   [Valor do Desconto ]=VRJUROS+(VRDESCT*-1)
EndScan
Do_It!
ClearAll
EndProc     ; (CalcJuros)    
;*******************************************************************************
;* 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

;If Not CheckTG_OPFAT[1] And Not CheckTG_OPFAT2[1] And CheckTG_COMISSAO[1]
;   Then Return
;EndIf

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

Seq5=0
View Tabela5
CoEdit "Answer"
Scan            
  QTDDIFER=([Saida_Qtd]+[Troca_Qtd])-([Retorno_Qtd]+[Devol_Qtd]+[Venda_Qtd])
  
  If QTDDIFER>0
     Then Venda_Item()
  EndIf
EndScan
Do_It!
ClearAll

EndProc   ;  (Processa)

;*******************************************************************************
;* Rotina p/ Impressao                                                         *
;*******************************************************************************
Proc Gera_Valores(PARAM)

AGUARDE("Aguarde, processando dados")
Gera_Dados()
                   
If Not CONSIGNADO
   Then Return
EndIf

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

TOT_SAIDA=0    TOT_RETOR=0    TOT_VENDA=0    TOT_VENDA_PROJ=0
TOT_BONIF=0    TOT_TROCA=0    TOT_DEVOL=0

TOT_QSAIDA=0   TOT_QRETOR=0   TOT_QVENDA=0   TOT_QRETOU=0
TOT_QBONIF=0   TOT_QTROCA=0   TOT_QDEVOL=0   TOT_QVENDA_PROJ=0

TIT_QTD  =0    TIT_RETOR=0    TIT_RETOU=0
TIT_SAIDA=0    TIT_VENDA=0    TOT_RETOU=0          
   
View "\\Sistemas\\Cadastro\\Represen"
View Tabela1
View "Answer"

Scan
  QTDDIFER=([Saida_Qtd]+[Troca_Qtd])-([Retorno_Qtd]+[RetornoOutros_Qtd]+[Devol_Qtd]+[Venda_Qtd])
  
  Switch
    Case QTDDIFER=0 : QTDDIFER=BlankNum() 
    OtherWise       : QTDDIFER=QTDDIFER*-1 
  EndSwitch
    
  If (VSDGOPITE="T") Or
     (VSDGOPITE="D" And QTDDIFER<>0)
     Then If OPPROCESSO<>"COMISSAO" Then Detalhe() EndIf
          TIT_SAIDA=TIT_SAIDA+[Saida_VrTotal        ]
          TIT_VENDA=TIT_VENDA+[Venda_VrTotal        ]
          TIT_QTD  =TIT_QTD  +QTDDIFER
          TIT_RETOR=TIT_RETOR+[Retorno_VrTotal      ]
          TIT_RETOU=TIT_RETOU+[RetornoOutros_VrTotal]
  EndIf
  
  TOT_SAIDA       = TOT_SAIDA+[Saida_VrTotal        ]    TOT_QSAIDA      = TOT_QSAIDA+[Saida_Qtd        ]
  TOT_RETOR       = TOT_RETOR+[Retorno_VrTotal      ]    TOT_QRETOR      = TOT_QRETOR+[Retorno_Qtd      ]
  TOT_RETOU       = TOT_RETOU+[RetornoOutros_VrTotal]    TOT_QRETOU      = TOT_QRETOU+[RetornoOutros_Qtd] 
  TOT_VENDA       = TOT_VENDA+[Venda_VrTotal        ]    TOT_QVENDA      = TOT_QVENDA+[Venda_Qtd        ] ; Vendas Realizadas
  TOT_VENDA_PROJ  = TOT_SAIDA-TOT_RETOR                  TOT_QVENDA_PROJ = TOT_QSAIDA-TOT_QRETOR          ; Vendas Projetadas

  Moveto "Answer"
EndScan

;---- Apura dados financeiros -------------------------------------------------- 
VR_DEBITO  = 0
VR_CREDITO = 0

If Not IsEmpty(Tabela3)
   Then For CONT From 1 To 2
            Switch 
              Case CONT=1 : TIPO = "D"
              Case CONT=2 : TIPO = "C"  
            EndSwitch
            
            VR_DEBCRED    = 0
            SALDO_DEBCRED = 0
            
            View Tabela3
            Scan For [Tipo]=TIPO                                         
              Switch
                Case [Tipo]="D" : DEB_CRED = "DEBITO   " 
                Case [Tipo]="C" : DEB_CRED = "CREDITO  "
              EndSwitch  
              VR_DEBCRED    = VR_DEBCRED    + [Saldo do Documento] ;[Valor do Documento]    
              SALDO_DEBCRED = SALDO_DEBCRED + [Saldo do Documento] 
            EndScan  
            Switch 
              Case CONT=1 : VR_DEBITO  = VR_DEBCRED
              Case CONT=2 : VR_CREDITO = VR_DEBCRED
            EndSwitch
        EndFor   
        IMPRIME_APURACAO = False 
EndIf
ClearAll

TXDESCTO    = (VR_DESCONTO/VR_MERCADOR)*100
TOT_RETOU   = TOT_RETOU-(Round((TOT_RETOU*TXDESCTO)/100,2))
TX_COMISDOC = (COMISSAOREP/(VR_MERCADOR-VR_DESCONTO))*100
COMISSAORET = (TOT_RETOU*TX_COMISDOC)/100
COMISSAOLIQ = COMISSAOREP-COMISSAORET  
                         
If PARAM = "Comissao"
   Then If COMISSAOLIQ>0 Or TOT_RETOU>0
            Then Retorno_ok=False
                 Play "VC_GC"
                 If Retorno_ok
                    Then MSG = ""
                         If LANCTO_COMISSAO<>""
                            Then MSG = MSG + Completa("- Titulo COMISSAO LIQUIDA: "+LANCTO_COMISSAO,45," ")+"////"
                         EndIf    
                         If LANCTO_OUTROS<>""
                            Then MSG = MSG + Completa("- Titulo  OUTROS RETORNOS: "+LANCTO_OUTROS,45," ")+"////"
                         EndIf
                         If LANCTO_COMISSAO<>"" And LANCTO_OUTROS<>""
                            Then MSG = MSG + Completa("  Gerados no Contas a Pagar!",45," ")
                            Else MSG = MSG + Completa("  Gerado no Contas a Pagar!",45," ")
                         EnDIf   
                         Mensagem(MSG)
                 EndIf
                 MSG = ""
        EndIf
EndIf

Delete Tabela1
Delete Tabela2
Delete Tabela3
Delete Tabela5

Release Vars Tabela1,Tabela2,Tabela3,Tabela5

EndProc ;Gera_Valores()          
         
;*******************************************************************************
;* Rotina p/ Impressao                                                         *
;*******************************************************************************
Proc Gera_Dados()

Do_It!
ClearAll

Tabela1=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\RM_0983a" Tabela1  
Tabela2=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\RM_0983b" Tabela2  
Tabela3=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\RM_0983c" Tabela3
Tabela5=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\RM_0983d" Tabela5  

RELDOCTO_SAIDA=""
RELDOCTO_RETOR=""
RELDOCTO_VENDA=""
RELDOCTO_TROCA=""
RELDOCTO_DEVOL=""

Seleciona()

If Not CONSIGNADO
   Then Return
EndIf

If IsEmpty(Tabela2)
   Then MENSAGEM("N„o existem registros a processar")
        Delete Tabela1
        Delete Tabela2
        Delete Tabela3        
        Delete Tabela5
        
        Release Vars Tabela1,Tabela2,Tabela3,Tabela5 
        
        Return
EndIf
Processa()

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

Gera_Dados()
                   
If Not CONSIGNADO
   Then Return
EndIf

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

Sort Tabela2 On "Codigo da Empresa", "Codigo", "Descricao do Item" To "Answer"
ClearAll
    
View "\\Sistemas\\Cadastro\\Represen"
View Tabela1
View "Answer"

EMPANT  = "****"
CODCLI  = "****"

pag=0                 
lin=0
Scan
  
  If [Codigo da Empresa]<>EMPANT  Or
     [Codigo           ]<>CODCLI
     Then
          TotalItem()
          TotalFinanc()

          EMPANT =[Codigo da Empresa]
          CODCLI =[Codigo           ]
          
          Moveto Tabela1
          Moveto [Codigo da Empresa]
          Locate EMPANT, CODCLI
          CopyToArray REG_REPRESEN

          Moveto "\\Sistemas\\Cadastro\\Represen"
          Moveto [Codigo do Representante]
          Locate REG_REPRESEN["Codigo do Representante"]
          If RetVal
             Then TX_COMIS=[Comissao do Representante]
             Else TX_COMIS=0
          EndIf
          Moveto Tabela1
          
          Cabecalho()
  EndIf
 
  QTDDIFER=([Saida_Qtd]+[Troca_Qtd])-([Retorno_Qtd]+[RetornoOutros_Qtd]+[Devol_Qtd]+[Venda_Qtd])
  Switch
    Case QTDDIFER=0 : QTDDIFER=BlankNum() 
    OtherWise       : QTDDIFER=QTDDIFER*-1 
  EndSwitch
  
  If (VSDGOPITE="T") Or
     (VSDGOPITE="D" And QTDDIFER<>0)
     Then Detalhe()
          TIT_SAIDA=TIT_SAIDA+[Saida_VrTotal        ]
          TIT_VENDA=TIT_VENDA+[Venda_VrTotal        ]
          TIT_QTD  =TIT_QTD  +QTDDIFER
          TIT_RETOR=TIT_RETOR+[Retorno_VrTotal      ]
          TIT_RETOU=TIT_RETOU+[RetornoOutros_VrTotal]
  EndIf

  TOT_SAIDA       = TOT_SAIDA+[Saida_VrTotal        ]    TOT_QSAIDA      = TOT_QSAIDA+[Saida_Qtd        ]
  TOT_RETOR       = TOT_RETOR+[Retorno_VrTotal      ]    TOT_QRETOR      = TOT_QRETOR+[Retorno_Qtd      ]
  TOT_RETOU       = TOT_RETOU+[RetornoOutros_VrTotal]    TOT_QRETOU      = TOT_QRETOU+[RetornoOutros_Qtd] 
  TOT_VENDA       = TOT_VENDA+[Venda_VrTotal        ]    TOT_QVENDA      = TOT_QVENDA+[Venda_Qtd        ] ; Vendas Realizadas
  TOT_VENDA_PROJ  = TOT_SAIDA-TOT_RETOR                  TOT_QVENDA_PROJ = TOT_QSAIDA-TOT_QRETOR          ; Vendas Projetadas

  ;TOT_TROCA=TOT_TROCA+[Troca_VrTotal        ]    TOT_QTROCA=TOT_QTROCA+[Troca_Qtd        ]
  ;TOT_DEVOL=TOT_DEVOL+[Devol_VrTotal        ]    TOT_QDEVOL=TOT_QDEVOL+[Devol_Qtd        ]
  
  Moveto "Answer"
  
EndScan
TotalItem()
TotalFinanc()

Do_It!
ClearAll
               
Delete Tabela1
Delete Tabela2
Delete Tabela3
Delete Tabela5

Release Vars Tabela1,Tabela2,Tabela3,Tabela5 

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
  lin=13
  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 Consignado X Vendas X Retornos")+ASP2+"\n\n"

  Print File ARQIMP ASP1+"Cliente: "+[Codigo]+" "+[Razao Social]+ASP2+"\n"

  Print File ARQIMP ASP1+COMPLETA("Empresa: "+[Codigo da Empresa]+" "+[Nome Fantasia Empresa],57," ")      ;40 -> 57
  ;Print File ARQIMP      "Cliente: "+COMPLETA([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],31," ")
  Print File ARQIMP      "         "+COMPLETA("",10," ")+" "+COMPLETA("",6," ")
  Print File ARQIMP      "Tabela.: "+COMPLETA([Codigo da Tabela],20," ")+ASP2+"\n\n"
  ;Print File ARQIMP      "Docto: "+[Tipo do Documento]+"/"+[Numero do Documento]+ASP2+"\n\n"
                         
  If Not IMPRIME_APURACAO Then 
  Print File ARQIMP ASP1+"                                                                          Outros             _________________ Valores _________________"+ASP2+"\n"                                                                                                      
  Print File ARQIMP ASP1+"Produto                                   UN  Vr.Unit Saida Retorno   %   Retorn Venda Difer      Saida    Retorno  RetOutros      Venda"+ASP2+"\n"
  Print File ARQIMP ASP1+"----------------------------------------- -- -------- ----- ------------- ------ ----- ----- ---------- ---------- ---------- ----------"+ASP2+"\n"
                         ;1234567890 123456789012345678901234567890 XX 9.999,99 99999 999999 9999,9 999999 99999 99999 999.999,99 999.999,99 999.999,99 999.999,99
  lin = 10
  EndIf                       
                                                                                                            
  Moveto "Answer"

  QuitLoop
EndWhile


EndProc   ; (Cabecalho)

;*******************************************************************************
;* Rotina p/ Detalhe                                                           *
;*******************************************************************************
Proc Detalhe()
ChecaLinhaPagina(58)
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  ],30," ")+Spaces(1)
  Print File ARQIMP COMPLETA([Unidade Fiscal     ],02," ")+Spaces(1)
  Print File ARQIMP Format("W8.2,EIC",[Preco Unitario ])+Spaces(01)
  Print File ARQIMP Format("W5,AR",[Saida_Qtd    ])+Spaces(01)
  Print File ARQIMP Format("W6,AR",[Retorno_Qtd  ])+Spaces(01)
  Print File ARQIMP Format("W6.1,EIC",([Retorno_Qtd]/[Saida_Qtd])*100)
  Print File ARQIMP Format("W7,AR",[RetornoOutros_Qtd])+Spaces(01) 
  ;Print File ARQIMP Format("W7,AR",[Troca_Qtd    ]) 
  ;Print File ARQIMP Format("W7,AR",[Devol_Qtd    ])+Spaces(01) 
  Print File ARQIMP Format("W5,AR",[Venda_Qtd    ])+Spaces(01) 
  Print File ARQIMP Format("W5,AR,S+",QTDDIFER)
  Print File ARQIMP Format("W11.2,EIC",[Saida_VrTotal  ])
  Print File ARQIMP Format("W11.2,EIC",[Retorno_VrTotal])
  Print File ARQIMP Format("W11.2,EIC",[RetornoOutros_VrTotal])  
  Print File ARQIMP Format("W11.2,EIC",[Venda_VrTotal  ])  
  Print File ARQIMP ASP2+"\n"
  QuitLoop
EndWhile
lin=lin+1                                 
EndProc    ;  (Detalhe)

;*******************************************************************************
;* Rotina p/ SubTotal                                                          *
;*******************************************************************************
Proc TotalItem()
While pag>0
  ChecaLinhaPagina(58)
  lin=lin+2
  
  If OPCAOPAG<>"Todas"
     Then If pag<OPCAOPAGINI Or
             pag>OPCAOPAGFIM
             Then QuitLoop
          EndIf
  EndIf
                                            
  Print File ARQIMP ASP1+Format("W136,AR","----- ---------- ---------- ---------- ----------")+ASP2+"\n"
  Print File ARQIMP ASP1+CI_INEG+Format("W85,AR","Total...")
  Print File ARQIMP      Format("W7,AR",TIT_QTD)
  Print File ARQIMP      Format("W11.2,EIC",TIT_SAIDA)
  Print File ARQIMP      Format("W11.2,EIC",TIT_RETOR)
  Print File ARQIMP      Format("W11.2,EIC",TIT_RETOU)
  Print File ARQIMP      Format("W11.2,EIC",TIT_VENDA)+CI_FNEG+ASP2+"\n" 
  QuitLoop
EndWhile 

EndProc    ;  (Total)                

;*******************************************************************************
;* Cabecalho Apuracao                                                          *
;*******************************************************************************
Proc Cabecalho_Apuracao()

LINHA_AP = LINHA_AP + 3

Print File ARQIMP ASP1+ASP2+"\n"
Print File ARQIMP ASP1+CI_INEG+"Apura‡”es: "+CI_FNEG+ASP2+"\n"
Print File ARQIMP ASP1+CI_INEG+"         DtEmiss„o  DtVencto   Documento         SaldoDocto      VrDocto    Observa‡„o"+CI_FNEG+ASP2+"\n"

EndProc ;Cabecalho_Apuracao()     

;*******************************************************************************
;* Rotina p/ Total                                                             *
;*******************************************************************************
Proc TotalFinanc()  
Private CONT, TIPO, VR_DEBITO, VR_CREDITO, TOTAL, CONTROLA_TOTAL
  
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"

  If Not IsBlank(RELDOCTO_SAIDA) Then Print File ARQIMP ASP1+"Notas de Saida  : "+RELDOCTO_SAIDA+ASP2+"\n" EndIf
  If Not IsBlank(RELDOCTO_RETOR) Then Print File ARQIMP ASP1+"Notas de Retorno: "+RELDOCTO_RETOR+ASP2+"\n" EndIf
  If Not IsBlank(RELDOCTO_VENDA) Then Print File ARQIMP ASP1+"Notas de Venda  : "+RELDOCTO_VENDA+ASP2+"\n" EndIf
  If Not IsBlank(RELDOCTO_TROCA) Then Print File ARQIMP ASP1+"Notas de Troca  : "+RELDOCTO_TROCA+ASP2+"\n" EndIf
  
  VR_DEBITO  = 0
  VR_CREDITO = 0
  
  If Not IsEmpty(Tabela3)
     Then ;--- Adicionado em 25.06.2014 - Controle de Linha (Cabecalho_Apuracao(), LINHA_AP, LINHA_MAX, IMPRIME_APURACAO) ------
          LINHA_MAX = 93
          LINHA_AP  = lin
          IMPRIME_APURACAO = True
          Cabecalho_Apuracao()
          For CONT From 1 To 2
              Switch 
                Case CONT=1 : TIPO = "D"
                Case CONT=2 : TIPO = "C"  
              EndSwitch
              
              VR_DEBCRED    = 0
              SALDO_DEBCRED = 0
              
              View Tabela3
              Scan For [Tipo]=TIPO                                         
                Switch
                  Case [Tipo]="D" : DEB_CRED = "DEBITO   " 
                  Case [Tipo]="C" : DEB_CRED = "CREDITO  "
                EndSwitch  
                
                VR_DEBCRED    = VR_DEBCRED    + [Saldo do Documento] ;[Valor do Documento]    
                SALDO_DEBCRED = SALDO_DEBCRED + [Saldo do Documento] 
                LINHA_AP      = LINHA_AP      + 1
                
                LINHA_AP = LINHA_AP + 1
                Print File ARQIMP ASP1+DEB_CRED+Format("D13",[Data de Emissao])+" "+Format("D13",[Data de Vencimento])+Spaces(01)+
                                       Format("W5,AL",[Tipo do Documento])+Format("W11,AL",[Numero do Documento])+Format("W12.2,EIC",[Saldo do Documento])+
                                       Spaces(01)+Format("W12.2,EIC",[Valor do Documento])+Spaces(04)+Format("W40,AL",[Observacoes])+ASP2+"\n"
                
                If LINHA_AP >= LINHA_MAX
                   Then Print File ARQIMP ASP1+"\f"+ASP2+"\n"
                        LINHA_MAX = 105
                        LINHA_AP  = 0
                        Cabecalho()
                        Cabecalho_Apuracao()
                EndIf     
                Moveto Tabela3                               
              EndScan                                                     
              If SALDO_DEBCRED<>0 Or VR_DEBCRED<>0
                 Then Print File ARQIMP ASP1+CI_INEG+Spaces(37)+"Total...: "+Format("W12.2,EIC",SALDO_DEBCRED)+Spaces(01)+
                                        Format("W12.2,EIC",VR_DEBCRED)+CI_FNEG+ASP2+"\n"
              EndIf            
              ClearImage 

              Switch 
                Case CONT=1 : VR_DEBITO  = VR_DEBCRED
                Case CONT=2 : VR_CREDITO = VR_DEBCRED
              EndSwitch
          EndFor   
          IMPRIME_APURACAO = False 
  EndIf
  
  Print File ARQIMP ASP1+Fill("-",137)+ASP2+"\n"

  If VSDGOPACVR="S"
     Then Print File ARQIMP ASP1+"\f"+ASP2+"\n"
          QuitLoop
  EndIf

  txdescto    = (VR_DESCONTO/VR_MERCADOR)*100
  TOT_RETOU   = TOT_RETOU-(Round((TOT_RETOU*txdescto)/100,2))
  TX_COMISDOC = (COMISSAOREP/(VR_MERCADOR-VR_DESCONTO))*100
  COMISSAORET = (TOT_RETOU*TX_COMISDOC)/100
  COMISSAOLIQ = COMISSAOREP-COMISSAORET
  
  Print File ARQIMP ASP1+CI_INEG+"Operacao                                 Pecas       Valor            Apura‡„o de Valores"+CI_FNEG+ASP2+"\n"
                                                      
  Print File ARQIMP ASP1+"(S) Saidas                      :"+Format("W13,EIC",TOT_QSAIDA)+Format("W12.2,EIC",TOT_SAIDA) +"(=)"+Spaces(9)+
                         "(V) Vendas                          :"+Format("W12.2,EIC",VR_MERCADOR)+"(=)"+ASP2+"\n"

  Print File ARQIMP ASP1+"(R) Retornos                    :"+Format("W13,EIC",TOT_QRETOR)+Format("W12.2,EIC",TOT_RETOR)+"(-)"+Spaces(9)+
                         "(D) Descontos                       :"+Format("W12.2,EIC",VR_DESCONTO)+"(-)  "+Format("W6.2",txdescto)+"%"+ASP2+"\n"

  Print File ARQIMP ASP1+"(P) Vendas Projetadas (S-R)     :"+Format("W13,EIC",TOT_QVENDA_PROJ)+Format("W12.2,EIC",TOT_VENDA_PROJ)+"(=)"+Spaces(9)+
                         "(L) Liquido (V-D)                   :"+Format("W12.2,EIC",(VR_MERCADOR-VR_DESCONTO))      +"(=)"+ASP2+"\n"
                                                       
  Print File ARQIMP ASP1+"(Z) Vendas Realizadas =(V)      :"+Format("W13,EIC",TOT_QVENDA)+Format("W12.2,EIC",TOT_VENDA)+"(=)"+Spaces(9)+
                         "(C) Comissao Vendas (%) (L)         :"+Format("W12.2,EIC",COMISSAOREP)+"(=)  "+Format("W6.2",TX_COMISDOC)+"%"+ASP2+"\n"
                         
  Print File ARQIMP ASP1+Spaces(70)+"(O) Outros Retornos - Desconto      :"+Format("W12.2,EIC",TOT_RETOU)+"(-)"+ASP2+"\n"
 
  Print File ARQIMP ASP1+CI_INEG+"    Diferen‡a: (P-Z)            :"+Format("W13,EIC",(TOT_QVENDA_PROJ-TOT_QVENDA))+
                                                                     Format("W12.2,EIC",(TOT_VENDA_PROJ-TOT_VENDA))+"(=)"+CI_FNEG+Spaces(9)+
                         "(M) Comissao Out.Retornos (%) (O)   :"+Format("W12.2,EIC",COMISSAORET)+"(=)  "+Format("W6.2",TX_COMISDOC)+"%"+ASP2+"\n"
                         
  Print File ARQIMP ASP1+Spaces(70)+"(N) Comissao Liquida (C-M)          :"+Format("W12.2,EIC",(COMISSAOLIQ))+"(-)"+ASP2+"\n"                        
  
  Print File ARQIMP ASP1+"(U) Outros Retornos             :"+Format("W13,EIC",TOT_QRETOU)+Format("W12.2,EIC",TOT_RETOU)+"(U)"+Spaces(9)+
                                                                   "(B) Outros Debitos                  :"+Format("W12.2,EIC",VR_DEBITO)+"(+)"+ASP2+"\n"
  
  If SYS_CODIGO_CLIENTE="0266"
      Then Print File ARQIMP ASP1+CI_INEG+"Diferen‡a "+CI_FNEG+"(Saidas-Ret.-Out.Ret.):"+
                                  CI_INEG+Format("W13,EIC",TOT_QSAIDA-TOT_QRETOR-TOT_QRETOU)+
                                  Format("W12.2,EIC",TOT_SAIDA-TOT_RETOR-TOT_RETOU)+"( )"+ 
                                  Spaces(09)+"(T) Credito                         :"+Format("W12.2,EIC",VR_CREDITO)+"(-)"+ASP2+"\n"
      Else Print File ARQIMP ASP1+Spaces(70)+"(T) Credito                         :"+Format("W12.2,EIC",VR_CREDITO)+"(-)"+ASP2+"\n"
  EndIf
                                                    
  TOTAL=VR_MERCADOR+VR_DEBITO-(VR_DESCONTO+COMISSAOLIQ+TOT_RETOU+VR_CREDITO)
  If TOTAL >=0
     Then CONTROLA_TOTAL="Liquido a Receber "
     Else CONTROLA_TOTAL="Cr‚dito a Pagar   " 
  EndIF

  Print File ARQIMP ASP1+"    Vendas(P)-Outros Retornos(U):"+Format("W13,EIC",TOT_QVENDA_PROJ-TOT_QRETOU)+Format("W12.2,EIC",TOT_VENDA_PROJ-TOT_RETOU)+"   "+Spaces(9)+
             CI_INEG+CONTROLA_TOTAL+"(L-O-N-T)+(B)     :"+  Format("W12.2,EIC",TOTAL)+"(=)"+CI_FNEG+ASP2+"\n"

  Moveto Tabela1
  Print File ARQIMP ASP1+ASP2+"\n"
  Print File ARQIMP ASP1+"Recebemos de "+[Razao Social]+" no dia ___/___/___"+ASP2+"\n"
  Moveto "Answer"

  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_VENDA_PROJ=0
TOT_BONIF=0    TOT_TROCA=0    TOT_DEVOL=0

TOT_QSAIDA=0   TOT_QRETOR=0   TOT_QVENDA=0   TOT_QRETOU=0
TOT_QBONIF=0   TOT_QTROCA=0   TOT_QDEVOL=0   TOT_QVENDA_PROJ=0

TIT_QTD  =0    TIT_RETOR=0    TIT_RETOU=0
TIT_SAIDA=0    TIT_VENDA=0    TOT_RETOU=0

EndProc    ;  (TotalFinanc)

;*******************************************************************************
;* Rotina p/ Complemento de Item                                               *
;*******************************************************************************
Proc Venda_Item()

Seq5=Seq5+1
Moveto Tabela5
End
Down
[Codigo da Empresa  ]=[Answer->Codigo da Empresa  ]
[Codigo             ]=[Answer->Codigo             ]
[Sequencia          ]=Seq5
[Codigo do Item     ]=[Answer->Codigo do Item     ]
[Descricao do Item  ]=[Answer->Descricao do Item  ]
[Unidade Fiscal     ]=[Answer->Unidade Fiscal     ]
[Complemento_Qtd    ]=[Complemento_Qtd            ]+QTDDIFER
[Complemento_Vr     ]=[Answer->Saida_Vr           ]
[Complemento_VrTotal]=[Complemento_Qtd            ]*[Complemento_Vr]
Moveto "Answer"

EndProc

;*******************************************************************************
;* Rotina p/ Geracao de Pedidos de Retorno/Complemento                         *
;*******************************************************************************
Proc Gera_Pedidos()
AGUARDE("Aguarde, gerando pedidos")

MSG="Verificar gera‡„o do Pedido !// //"

;**** Vendas ****
INICIO=True
    
;If Not CheckTG_OPFAT[1] And Not CheckTG_OPFAT2[1] And Not CheckTG_COMISSAO[1]
;   Then Sort Tabela2 On "Codigo da Empresa", "Codigo", "Descricao do Item" To "Answer"
;        ClearAll
;EndIf

View Tabela1
View "\\Sistemas\\Cadastro\\TpPagto"
View "Destin"
View "NotaC"
View "PedidoC"
View "PedidoI"
CoEdit "Answer"
Scan
  CODEMP=[Codigo da Empresa]
  CODCLI=[Codigo           ]
  
  QTDDIFER=[Saida_Qtd]-([Retorno_Qtd]+[Venda_Qtd]+[Bonif_Qtd]+[Troca_Qtd])
  
  If QTDDIFER>0
     Then If INICIO
             Then If Not Grava_PedidoC()
                     Then QuitLoop
                  EndIf
          EndIf
          Grava_PedidoI([Codigo do Item],QTDDIFER,[Saida_Vr])
  EndIf

EndScan
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Geracao de Pedidos de Retorno/Complemento                         *
;*******************************************************************************
Proc Gera_OF()
AGUARDE("Aguarde, gerando ordem de faturamento")

MSG="Verificar gera‡„o da ordem de faturamento !// //"

;**** Vendas ****
INICIO=True
    
;If Not CheckTG_OPFAT[1] And Not CheckTG_OPFAT2[1] And Not CheckTG_COMISSAO[1]
;   Then Sort Tabela2 On "Codigo da Empresa", "Codigo", "Descricao do Item" To "Answer"
;        ClearAll
;EndIf
                                                                          
View Tabela1
View "\\Sistemas\\Cadastro\\TpPagto"
View "Destin"
View "NotaC"
View "FaturaC"
View "FaturaI"
CoEdit "Answer"
Scan
  CODEMP=[Codigo da Empresa]
  CODCLI=[Codigo           ]
  
  QTDDIFER=[Saida_Qtd]-([Retorno_Qtd]+[Venda_Qtd]+[Bonif_Qtd]+[Troca_Qtd])
  
  If QTDDIFER>0
     Then If INICIO
             Then If Not Grava_FaturaC()
                     Then QuitLoop
                  EndIf
          EndIf
          Grava_FaturaI([Codigo do Item],QTDDIFER,[Saida_Vr])
  EndIf

EndScan
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Grava FaturaC                                                     *
;*******************************************************************************
Proc Grava_FaturaC()
private destinok

INICIO=False

Moveto Tabela1
Moveto [Codigo da Empresa]
Locate CODEMP, CODCLI
If RetVal
   Then NUMDOC=[Numero do Documento] 
        SERDOC=[Serie do Documento ]
   Else Moveto "Answer"
        Mensagem("Erro ao localizar o cliente !")
        Return False
EndIf

Moveto "NotaC"
Moveto [Codigo da Empresa]
Locate CODEMP, NUMDOC, SERDOC
If Not RetVal
   Then Moveto "Answer"
        Mensagem("Erro ao localizar a Nota de Consigna‡Æo !// //Verificar !")
        Return False
EndIf

destinok=false
Moveto "Destin"
Scan
  If Search("VEND",[Descricao da Destinacao])>0 And
     Search("CONS",[Descricao da Destinacao])>0 And
     substr([CFO],1,1)                       =substr([NotaC->CFO],1,1)
     then DESTIN  =[Codigo da Destinacao]
          destinok=true
  endif    
endscan
if not destinok
   then Moveto "Answer" 
        Mensagem("Erro ao localizar a Destina‡Æo para a Venda de Consignado !// //Verificar !")
        DESTIN=False
        return false
endif

Moveto "FaturaC"
Moveto [Numero da OF]
While True
  End
  If Numero_Lancamento("Interno","")
     Then OF = PROXLANCTO_NLANC
  EndIf
  Down
  [Numero da OF]=OF
  If Not IsLockRecord()
     Then QuitLoop
     Else Del
  EndIf
EndWhile
[Codigo da Empresa       ]=[NotaC->Codigo da Empresa]
[Data de Emissao         ]=Today()
[Data de Saida           ]=Today()
[Hora de Saida           ]=Time()
[Codigo da Destinacao    ]=DESTIN
[Codigo                  ]=[NotaC->Codigo]
[Codigo do Representante ]=[NotaC->Codigo do Representante ]
[Codigo da Tabela        ]=[NotaC->Codigo da Tabela        ]
[Condicao de Pagamento   ]=[NotaC->Condicao de Pagamento   ]
[Forma de Pagamento      ]=[NotaC->Forma de Pagamento      ]
[Codigo da Transportadora]=[NotaC->Codigo da Transportadora]
[Frete por Conta         ]=[NotaC->Frete por Conta         ]
[Placa do Veiculo        ]=[NotaC->Placa do Veiculo        ]
[UF Veiculo              ]=[NotaC->UF Veiculo              ]
[Frete Incluso na Nota   ]=":"
[Observacao na Nota Fiscal]="VENDAS DE ITEN(S) DA CONSIGNACAO NF No "+[NotaC->Numero do Documento]+" DE "+Format("D13",[NotaC->Data de Emissao])+"."
Controle_Dia()
MSG=MSG+"Ordem de Faturamento: "+OF+" - "+[Descricao da Destinacao]+"// //"
UnLockRecord

Moveto "Answer"

SEQI=0

Return True
EndProc

;*******************************************************************************
;* Rotina p/ Gravar FaturaI                                                    *
;*******************************************************************************
Proc Grava_FaturaI(ITEM,QTD,VR)
SEQI=SEQI+1

Moveto "FaturaI"
End
Down
[Numero da OF         ]=OF
[Item da OF           ]=SEQI
[Codigo do Item       ]=ITEM
[Quantidade           ]=QTD
[Preco Unitario       ]=VR
[Preco Unitario Tabela]=[Preco Unitario              ]
[Preco Total          ]=[Quantidade]*[Preco Unitario ]

If [Aliquota de ICMS]>0
   Then [Valor do ICMS]=NDecimal(([Preco Total]*[Aliquota de ICMS])/100,2)
EndIf

[Codigo da Tabela     ]=[NotaC->Codigo da Tabela     ]
UnLockRecord

Moveto "Answer"

EndProc

;*******************************************************************************
;* Rotina p/ Gravar PedidoC                                                    *
;*******************************************************************************
Proc Grava_PedidoC()
private destinok

INICIO=False

Moveto Tabela1
Moveto [Codigo da Empresa]
Locate CODEMP, CODCLI
If RetVal
   Then NUMDOC=[Numero do Documento] 
        SERDOC=[Serie do Documento ]
   Else Moveto "Answer"
        Mensagem("Erro ao localizar o cliente !")
        Return False
EndIf

Moveto "NotaC"
Moveto [Codigo da Empresa]
Locate CODEMP, NUMDOC, SERDOC
If Not RetVal
   Then Moveto "Answer"
        Mensagem("Erro ao localizar a Nota!")
        Return False
EndIf

destinok=false
Moveto "Destin"
Scan
  If Search("VEND",[Descricao da Destinacao])>0 And
     Search("CONS",[Descricao da Destinacao])>0 And
     substr([CFO],1,1)                       =substr([NotaC->CFO],1,1)
     then DESTIN  =[Codigo da Destinacao]
          destinok=true
  endif    
endscan
if not destinok
   then Moveto "Answer" 
        Mensagem("Erro ao localizar a Destina‡Æo para a Venda de Consignado !// //Verificar !")
        DESTIN=False
        return false
endif

Moveto "PedidoC"
Moveto [Numero do Pedido]
While True
  End
  If Numero_Lancamento("Interno","")
     Then PEDIDO = PROXLANCTO_NLANC
  EndIf
  Down
  [Numero do Pedido]=PEDIDO
  If Not IsLockRecord()
     Then QuitLoop
     Else Del
  EndIf
EndWhile
[Codigo da Empresa       ]=[NotaC->Codigo da Empresa]
[Situacao do Pedido      ]="ABERTO"
[Data de Emissao         ]=Today()
[Data de Entrega         ]=Today()
[Codigo da Destinacao    ]=DESTIN
[Codigo                  ]=[NotaC->Codigo]
[Codigo do Representante ]=[NotaC->Codigo do Representante ]
[Codigo da Tabela        ]=[NotaC->Codigo da Tabela        ]
[Condicao de Pagamento   ]=[NotaC->Condicao de Pagamento   ]
[Forma de Pagamento      ]=[NotaC->Forma de Pagamento      ]
[Codigo da Transportadora]=[NotaC->Codigo da Transportadora]
[Frete por Conta         ]=[NotaC->Frete por Conta         ]
[Placa do Veiculo        ]=[NotaC->Placa do Veiculo        ]
[UF Veiculo              ]=[NotaC->UF Veiculo              ]
[Frete Incluso na Nota   ]=":"
;[Numero_Carregamento     ]=[NotaC->Numero_Carregamento     ]

[Observacao na Nota Fiscal]="VENDAS DE ITEN(S) DA CONSIGNACAO NF No "+
[NotaC->Numero do Documento]+" DE "+Format("D13",[NotaC->Data de Emissao])+"."
Controle_Dia()
 
MSG=MSG+"Pedido: "+PEDIDO+" - "+[Descricao da Destinacao]+"// //"
UnLockRecord

Moveto "Answer"

SEQI=0

Return True
EndProc

;*******************************************************************************
;* Rotina p/ Gravar PedidoI                                                    *
;*******************************************************************************
Proc Grava_PedidoI(ITEM,QTD,VR)
SEQI=SEQI+1

Moveto "PedidoI"
End
Down
[Numero do Pedido     ]=PEDIDO
[Item do Pedido       ]=SEQI
[Codigo do Item       ]=ITEM
[Quantidade           ]=QTD
[Preco Unitario       ]=VR
[Preco Unitario Tabela]=[Preco Unitario              ]
[Preco Total          ]=[Quantidade]*[Preco Unitario ]

If [Aliquota de ICMS]>0
   Then [Valor do ICMS]=NDecimal(([Preco Total]*[Aliquota de ICMS])/100,2)
EndIf
[Codigo da Tabela     ]=[NotaC->Codigo da Tabela     ]

UnLockRecord

Moveto "Answer"

EndProc

;*******************************************************************************
;* Data de Acerto                                                              *
;*******************************************************************************
Proc Data_Acerto()
Private NUMDOCACERTO, SERIEDOCACERTO, CODEMPACERTO

Do_It!
ClearAll

View "NotaC"
Coedit Tabela

Scan
  CODEMPACERTO=[Codigo da Empresa]
  NUMDOCACERTO  =[Numero do Documento]
  SERIEDOCACERTO=[Serie do Documento ]
  Moveto "NotaC" 
  Moveto [Codigo da Empresa]
  Locate CODEMPACERTO, NUMDOCACERTO, SERIEDOCACERTO 
  If RetVal
     Then [Data de Acerto]=VSDGDTREFERENTE
  EndIf
  
  Moveto Tabela  
EndScan
Do_It!
ClearAll

EndProc ;Data_Acerto()

;*******************************************************************************
;* Seleciona processos p/ Consignados                                          * 
;*******************************************************************************
Proc Funcao()
             
TELA = 2
                         
Moveto Tabela                         
SetaCorRegistro("Padrao")

While True
  Echo Normal
  Echo Off                                           
  ShowPopup " Fun‡”es " CENTERED
    "F4 ~I~mprimir                " : " Imprime relat¢rio de consignados                " : "F4",
    "F5 Gerar Pedido              " : " Fun‡„o para gerar pedidos                       " : "F6",
    "F6 Gerar Ordem de Faturamento" : " Fun‡„o para gerar ordem de faturamento          " : "F7",
    "F8 Atualizar Acerto          " : " Atualizar acerto de consignado/comiss„o l¡quida " : "F8",
    Separator,
    "~C~ancelar                   " : " Cancelar a Opera‡„o                             " : "CANCELAR"
  EndMenu
  To MenuVar
  
  Echo Off
  If MenuVar="CANCELAR" or MenuVar="Esc"
     Then QuitLoop
     Else RetVal=MenuVar
  EndIf
                     
  Switch
    Case RetVal="F4" : OPPROCESSO = "IMPRIMIR"
                       If Not Monta_Relatorio()
                          Then Loop
                       EndIf
    Case RetVal="F6" : OPPROCESSO = "PEDIDO"
                       If Not Processo_GeraPedido()
                          Then Loop
                       EndIf
    Case RetVal="F7" : OPPROCESSO = "OF"
                       If Not Processo_GeraOF()
                          Then Loop
                       EndIf
    Case RetVal="F8" : OPPROCESSO = "ACERTO"
                       If Not Atualiza_Acerto()
                          Then Loop
                          Else CHAVE=9
                               Return True
                       EndIf
  EndSwitch
  QuitLoop      
EndWhile

RECARREGA_CHAVE()
Moveto Tabela
End Down                         
SetaCorRegistro("Editar")

TELA = 1

EndProc ;Funcao()

;*******************************************************************************
;* Monta Relat¢rio p/ ImpressÆo do Consignado                                  * 
;*******************************************************************************
Proc Monta_Relatorio()             
 
ConfGeral("Deseja imprimir o relat¢rio de consignado ?")
If Ok<>"S"
   Then Return False
EndIf                       
 
DISPOSITIVO()
If OK=""
    Then Return False
EndIf
Del
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 CONSIGNADO
  Then 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)
                 FastMsg("Impress„o Concluida !")
          Else If OK="I"
                  Then ;---- Imprime Arquivo Impressao ------------------------------------------------
                       ImpriArq(ARQIMP)
                       FastMsg("Impress„o Concluida !")
                  Else SELECIONAI()     
               EndIf
       EndIf
EndIf
Return True

EndProc ;Monta_Relatorio()

;*******************************************************************************
;* Processo p/ gerar ordem de faturamento                                      * 
;*******************************************************************************
Proc Processo_GeraOF()

ConfGeral("Deseja gerar a ordem de faturamento ?")
If Ok<>"S"
   Then Return False
EndIf

Gera_Dados()
If CONSIGNADO
   Then Gera_OF()
        If IsAssigned(DESTIN)
           Then If DESTIN=False
                   Then MSG="Destina‡„o de VENDA CONSIGNADA n„o encontrada!"
                EndIf
           Else MSG=MSG+"Confirmar Ordem de Faturamento !"
        EndIf
        Mensagem(MSG)
EndIf

Return True

EndProc ;Processo_GeraOF() 

;*******************************************************************************
;* Processo p/ gerar peiddo                                                    * 
;*******************************************************************************
Proc Processo_GeraPedido()

ConfGeral("Deseja gerar um pedido ?")
If Ok<>"S"
   Then Return False
EndIf

Gera_Dados()
If CONSIGNADO
   Then Gera_Pedidos()
        If IsAssigned(DESTIN)
           Then If DESTIN=False
                   Then MSG="Destina‡„o de VENDA CONSIGNADA n„o encontrada!"
                   Else MSG=MSG+"Confirmar Pedido antes de Faturar !"
                EndIf
           Else MSG=MSG+"Confirmar Pedido antes de Faturar !"
        EndIf
        Mensagem(MSG)
EndIf        

Return True

EndProc ;Processo_GeraPedido()

;*******************************************************************************
;* Processo p/ gerar a comiss„o liquida no contas a pagar                      * 
;*******************************************************************************
Proc Atualiza_Acerto()

TELA = 3

Array TG_COMISSAO[1]
TG_COMISSAO[1]="Gerar comiss„o/outros retornos no contas a pagar"

Array CheckTG_COMISSAO[ArraySize(TG_COMISSAO)]
CheckTG_COMISSAO[1]=False
        
VSDGDTREFERENTE=BlankDate()                              
Echo Normal
Echo Off
While True
  ShowDialog "Acerto" 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 08 Width 77
                        
      Label  @ 00,00 "Data p/ Acerto: " For "TG_DATAREFERENTE"
      Accept @ 00,18 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DATAREFERENTE" To VSDGDTREFERENTE
     
      CheckBoxes @ 02,00 Height 1 Width 55 Tag "TG_COMISSAO"
      TG_COMISSAO[1] to CheckTG_COMISSAO[1]
  
      Pushbutton @ 04,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
      Pushbutton @ 04,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue   
     
    EndDialog                    
    If Not RetVal 
       Then Return False
    EndIf   
    
    If Not CheckTG_COMISSAO[1] And VSDGDTREFERENTE = BlankDate()
       Then Loop
    EndIf        
    
    If CheckTG_COMISSAO[1] And VSDGDTREFERENTE = BlankDate()
       Then Mensagem("Data para acerto n„o informado!")
            Loop
    EndIf        
    
    If VSDGDTREFERENTE<>BlankDate() And Not CheckTG_COMISSAO[1]
     Then COR_MENSAGEM="ALERTA"
          ConfGeral(Completa("Foi identificado que a data de acerto foi informada, por‚m a comiss„o/",72," ")+"//"+
                    Completa("outros retornos n„o foi marcada, assim n„o ocorrer   o  lan‡amento  de",72," ")+"//"+
                    Completa("comissionamento automatico no CONTAS A PAGAR.",72," ")+"//"+
                    Completa("Deseja realmente continuar com este processo?",72," "))
                    If Ok<>"S"              
                       Then Loop
                    EndIf   
   EndIf
   
   If CheckTG_COMISSAO[1]
      Then OPPROCESSO = "COMISSAO"
           Gera_Dados()
           If CONSIGNADO
              Then MSG = ""
                   Gera_Valores("Comissao")
                   If IsAssigned(DESTIN)
                      Then If DESTIN=False
                              Then MSG="Destina‡„o de VENDA CONSIGNADA n„o encontrada!"
                           EndIf
                   EndIf
                   If MSG<>"" Then Mensagem(MSG) EndIf
           EndIf
   EndIf   
   
   If VSDGDTREFERENTE<>BlankDate()
      Then OPPROCESSO = "ACERTO"
           Data_Acerto()
           FastMsg("Opera‡Æo Realizada!")
   EndIF
   QuitLoop
EndWhile

Return True
            
TELA = 1

Return True
                          
EndProc ;Atualiza_Acerto()

;*******************************************************************************
;* Seleciona lancamentos para exibicao de relatorio e altera‡Æo na data de acerto
;*******************************************************************************
Proc CHAVE()

While True
  CHAVE=1
  End
  Down    
  Moveto [Codigo da Empresa]                         
  SetaCorRegistro("Editar")
  While True

  TECLA = "F4=Imprimir  F8=Atualizar Acerto  "
  AguardaTeclasPadrao()

  If RetVal=-33
     Then Funcao()
          If CHAVE=9
             Then QuitLoop
          EndIf     
  EndIf

  Switch
        Case RetVal=-94                : MsgTeclasPadrao()
        Case RetVal="F4"               : OPPROCESSO = "IMPRIMIR"
                                         If Not Monta_Relatorio()
                                            Then Loop
                                            Else CHAVE=3
                                                 QuitLoop
                                         EndIf     
        Case RetVal="F6" Or RetVal=-64 : OPPROCESSO = "OF"
                                         If Not Processo_GeraOF()
                                            Then Loop 
                                            Else CHAVE=3
                                                 QuitLoop
                                         EndIf
        Case RetVal="F5"               : OPPROCESSO = "PEDIDO"   
                                         If Not Processo_GeraPedido()
                                            Then Loop 
                                            Else CHAVE=3
                                                 QuitLoop
                                         EndIf
        Case RetVal="F8"               : OPPROCESSO = "ACERTO"
                                         If Not Atualiza_Acerto()
                                            Then Loop 
                                            Else CHAVE=9
                                                 QuitLoop
                                         EndIf                            
        Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME" And Field()="Codigo da Empresa":
             While True
               CHAVE=1
               PAGINA(Tabela,"MR")
               If EDITAR<>"S"
                  Then If EXCLUIR="S"
                          Then CONFIRMA()
                               If OK="S"
                                  Then DEL
                                  Else UnLockRecord
                               EndIf
                          Else QuitLoop
                       EndIf
                  Else MENSAGEM("Impossivel edi‡„o!")     
               EndIf
               ;SetaPosForm()
             EndWhile
             QuitLoop
        Case Retval="ESC":  
             CHAVE=9
             Del
             Return
      EndSwitch
  EndWhile                      
  If CHAVE=0 OR CHAVE=9 Or CHAVE=3 
     Then QuitLoop
  EndIf
EndWhile
EndProc
  
;*******************************************************************************
;* Processo p/ Recarregar Chave                                                *
;*******************************************************************************
Proc RECARREGA_CHAVE()

Do_It!
ClearAll

CoEdit Tabela
PickForm "F"
SetHighLight Current Record 23 Field 31

CHAVE=1

EndProc ;RECARREGA_CHAVE()

;*******************************************************************************
;* Seleciona Registros para Emissao de Cheque                                  *
;*******************************************************************************
Proc SELECIONAI()

Sort Tabela On "Codigo da Empresa" , "Data de Emissao" , "Tipo Movimento Estoque" 

CoEdit Tabela
PickForm "F"
SetHighLight Current Record 23 Field 31
While True
  CHAVE()
  If CHAVE=9 
     Then Do_It!
          QuitLoop     
  EndIf
  If CHAVE=3
     Then RECARREGA_CHAVE()
  EndIf
EndWhile
ClearAll
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_FINALIDADE"    : Campo="NO"
            Case Campo="TG_DATAREFERENTE" : Campo="NO"
            Case Campo="TG_DESTINAT"      : Campo="TG_EMPRESA"
            Case Campo="TG_DTINI"         : Campo="TG_DESTINAT"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPITE"         : Campo="TG_DTFIM"
            Case Campo="TG_OPACVR"        : Campo="TG_OPITE"
            Case Campo="TG_OPRET"         : Campo="TG_OPACVR"
            Case Campo="TG_COMISSAO"      : Campo="TG_DATAREFERENTE"
            Case Campo="YES" Or Campo="NO": Switch 
                                              Case TELA = 1 : Campo="TG_EMPRESA"
                                              Case TELA = 2 : Campo="TG_FINALIDADE"
                                              Case TELA = 3 : Campo="TG_DATAREFERENTE"
                                            EndSwitch   
          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" : 
                         If IsBlank(VSDGEMPRESA)
                            Then VSDGNOMEMP=""
                            Else Campo="TG_DESTINAT"
                         EndIf   
                    Case Campo="TG_DESTINAT" :
                         If Not IsBlank(VSDGDESTINAT)
                            Then Campo="TG_DTINI"
                            Else VSDGNOMDEST=""
                         EndIf
                    Case Campo="TG_DTINI"         : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"         : Campo="TG_OPITE"
                    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="TG_OPRET"
                         VSDGOPACVR=ControlValue("TG_OPACVR")
                         If VSDGOPACVR="C"
                            Then VSDGDESCOPACVR="COM VALORES"
                            Else VSDGOPACVR    ="S"
                                 VSDGDESCOPACVR="SEM VALORES"
                         EndIf
                    Case Campo="TG_OPRET"        : Campo="YES"
                         VSDGOPRET = ControlValue("TG_OPRET")
                         Switch  
                           Case VSDGOPRET="2"    : VSDGDESCOPRET = "MANTER O VALOR DO RETORNO"
                           OtherWise             : VSDGOPRET     = "1"
                                                   VSDGDESCOPRET = "IGUALAR AO VALOR DA SAIDA"
                         EndSwitch
                    Case Campo="TG_FINALIDADE"    : Campo="YES"
                    Case Campo="TG_DATAREFERENTE" :  
                         VSDGDTREFERENTE = ControlValue("TG_DATAREFERENTE")
                         If Not IsBlank(VSDGDTREFERENTE)
                            Then Campo="TG_COMISSAO"
                         EndIf
                    Case Campo="TG_COMISSAO"      : Campo="YES"            
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
        
Switch
  Case Campo="TG_DATAREFERENTE" :
       MSG_CAMPO="Informe a Data para Acerto"
  Case Campo="TG_EMPRESA"    : 
       MSG_CAMPO="Informe a Empresa"
  Case Campo="TG_DESTINAT" :
       MSG_CAMPO="Informe o Cliente"
  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"
  Case Campo="TG_OPRET"    :
       MSG_CAMPO="Op‡„o Vr Retorno: 1=Igualar ao Vr da Saida  2=Manter o Vr do Retorno"
  Case Campo="TG_FINALIDADE":
       MensagemRadioButtons()
  Case Campo="TG_COMISSAO" :
       MSG_CAMPO="Defina a op‡„o"
       TECLA="Barra de Espa‡o=Marca/Desmarca  "             
Endswitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc
                  
;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
If Not IsAssigned(SYS_CODIGO_CLIENTE) Then SYS_CODIGO_CLIENTE="" EndIf
LimpAguarde()
SYS_VALOR()

IMPRIME_APURACAO  = False
VSDGEMPRESA       = ""
VSDGNOMEMP        = ""
VSDGDESTINAT      = ""
VSDGNOMDEST       = ""
VSDGOPITE         = ""
VSDGDESCOPITE     = ""
VSDGOPACVR        = ""
VSDGDESCOPACVR    = ""
VSDGDESCOPRET     = ""
VSDGDESCOPRET     = ""
VSDGDTINI         = BlankDate()
VSDGDTFIM         = BlankDate()

While True
  TELA = 1
  ShowDialog "Resumo de Acerto/Consignado II" 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 12 Width 77
                      
    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 "Cliente"  For "TG_DESTINAT"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMCLI" To VSDGNOMDEST     

    Label  @ 04,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 05,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 05,16 "at‚" For "TG_DTFIM"
    Accept @ 05,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    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 30 "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 30 "A20"  Picture "!*!" Tag "TG_DESCOPACVR" To VSDGDESCOPACVR
    
    Label  @ 04,35 "Op‡„o de Valores no Retorno" For "TG_OPRET"
    Accept @ 05,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRET" To VSDGOPRET
    Accept @ 05,44 Width 30 "A27"  Picture "!*!" Tag "TG_DESCOPRET" To VSDGDESCOPRET
                                    
    Pushbutton @ 08,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 08,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog                    
  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGDTFIM)
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf
  
  If IsBlank(VSDGDESTINAT)
     Then Mensagem("Informe o cliente para prosseguir!")
          Loop
  EndIf
  
  Tabela=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_0983a" Tabela
  
  AGUARDE("Aguarde, Ajustando registros")
  Ajusta_Dados()
  
  
  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Loop
  EndIf

  CopyForm "\\Base\\Sistemas\\Vendas\\RM_0983a" "F" Tabela "F"
  SELECIONAI()
  
  Echo Normal
  Echo Off
  ClearAll
  
EndWhile
ClearAll
Release Vars All
Release Procs All
