;** 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"
;Ultima Alteracao: 29/01/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes observacao da nota fiscal                       
;Ultima Alteracao: 27/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes deduzir descontos nos calculos e no faturaI/pedidoI enova estrutura
                                                                               
;*******************************************************************************
;* Rotina p/ Ajustar Registros                                                 *
;*******************************************************************************
Proc Seleciona_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 [Comissao do Representante] 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]
                    [Comissao do Representante]=[Answer->Comissao do Representante]
                    [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 ; Seleciona_Dados() 

;*******************************************************************************
;* 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 
            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                       " : "F5",
              "F6 Gerar Ordem de Faturamento" : " Fun‡„o para gerar ordem de faturamento          " : "F6",
              "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 Loop
               Else RetVal=MenuVar
            EndIf
    EndIf

    Switch
      Case RetVal=-94                : MsgTeclasPadrao()
  
      Case RetVal="F4"               : del
                                       play "RM_1501A"        
                                       if not Retorno_ok
                                          Then quitLoop 
                                          Else CHAVE=3
                                               return
                                       EndIf
  
      Case RetVal="F5"               : del
                                       play "RM_1501B"        
                                       if not Retorno_ok
                                          Then quitLoop 
                                          Else CHAVE=3
                                               return
                                       EndIf

      Case RetVal="F6" Or RetVal=-64 : del
                                       play "RM_1501C"        
                                       if not Retorno_ok
                                          Then quitLoop 
                                          Else CHAVE=3
                                               return
                                       EndIf
  
      Case RetVal="F8"               : del
                                       play "RM_1501D"        
                                       if not Retorno_ok
                                          Then quitLoop 
                                          Else CHAVE=9
                                               return
                                       EndIf
  
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME" And Field()="Codigo da Empresa":
           While True
             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":  
           del
           CHAVE=9
           Return

    EndSwitch
  EndWhile                      
  
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 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 return false
        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 [Valor Desconto Item    ] 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 [Valor Desconto Item    ] 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
        Moveto [Comissao do Representante] 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 [Valor Desconto Item      ] 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 [Valor Desconto Item    ] 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 [Valor Desconto Item    ] 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 
        Moveto [Valor Desconto Unitario] Check typein "As \"Valor Desconto Item\""    
        Do_It!
        ClearAll

        if not isblank("Answer")
           then {Ask}{Answer} typein "Fast"
                Moveto [Valor Desconto Item    ] typein "changeto blank"
                do_it!
                clearall
        endif            

        Adiciona_Dados2("DEVOLUCOES")
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)
private vrcomissao

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_Qtd    ]*[Saida_Vr]
         [Saida_DescTotal]=[Saida_DescTotal]+[Answer->Valor Desconto Total]+[Answer->Valor Desconto Item]
                    
    Case Tipo="TROCAS":
         [Saida_Qtd      ]=[Saida_Qtd    ]+[Answer->Quantidade]
         [Saida_Vr       ]=[Answer->Preco Unitario]
         [Saida_VrTotal  ]=[Saida_Qtd    ]*[Saida_Vr]         
         [Saida_DescTotal]=[Saida_DescTotal]+[Answer->Valor Desconto Total]+[Answer->Valor Desconto Item]

    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_Vr       ]=[Answer->Preco Unitario]
         [Venda_VrTotal  ]=[Venda_Qtd    ]*[Venda_Vr]
         [Venda_DescTotal]=[Venda_DescTotal]+[Answer->Valor Desconto Total]+[Answer->Valor Desconto Item]

         vrcomissao =  [Answer->Quantidade ]*[Answer->Preco Unitario]
         vrcomissao =  vrcomissao - ([Answer->Valor Desconto Total]+[Answer->Valor Desconto Item])  
         vrcomissao = (vrcomissao * [Answer->Comissao do Representante])/100
         [Venda_Comissao ]=[Venda_Comissao ]+vrcomissao

         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/ 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/ 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_Dados()
private result

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=""

result=true
Seleciona()
If not IsEmpty(Tabela1) 
   Then
        Processa()
   else
        MENSAGEM("N„o existem registros a processar")
        result=false
EndIf

Return result

EndProc ;Gera_Dados()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
proc DeletaTabelas()

Delete Tabela1
Delete Tabela2
Delete Tabela3        
Delete Tabela5

Release Vars Tabela1,Tabela2,Tabela3,Tabela5 

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")
  Seleciona_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
