;** 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                              

;*******************************************************************************
;* Rotina p/ Ajustar Registros                                                 *
;*******************************************************************************
Proc Ajusta_Dados()
Private Wi
ClearAll                          
                                             
For Wi From 1 To 2
  If Wi=1
     Then If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
             Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
                  Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
                  Moveto [Numero do Documento    ] Check
                  Moveto [Serie do Documento     ] Check
                  Moveto [Nome Fantasia Empresa  ] Check
                  Moveto [Tipo do Documento      ] Check
                  Moveto [Data de Emissao        ] Check 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 IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC")
             Then {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"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 If Wi=1
             Then Tabela=Cria_Temp(PrivDir())
                  Copy "\\Base\\Sistemas\\Vendas\\RM_0983a" Tabela
                  ClearAll
                  Empty(Tabela)
                  View Tabela                                           
                  Coedit "Answer"                                           
                  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 View Tabela
                  Coedit "Answer"
                  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\\"+Dir_Trab+"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\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check    
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("CONSIGNADO")
EndIf

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

        Adiciona_Dados2("TROCAS")
EndIf

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

        Adiciona_Dados2("VENDAS")
EndIf

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

        Adiciona_Dados2("RETORNOS")
EndIf

;****** Devolucoes - Consignado  ***********************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"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 [Descricao da Destinacao] TypeIn "..DEVOL.. ..CONSIG.."
        Moveto [Tipo Movimento Estoque ] TypeIn "E"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        Adiciona_Dados2("DEVOLUCOES")
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"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\\"+Dir_Trab+"NotaEI" Enter
        Moveto [Numero do Lancamento   ] Example "nlan"
        Moveto [Sequencia do Lancamento] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check 
        Do_It!
        ClearAll

        Adiciona_Dados2("DEVOLUCOES")
EndIf   

;****** Totaliza Nota(s) *******************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"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\\"+Dir_Trab+"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\\"+Dir_Trab+"Duplic")
   Then {Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"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
        Moveto [Data de Emissao        ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        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\\"+Dir_Trab+"Titulos")
   Then {Ask} TypeIn "\\Sistemas\\CtaPag\\"+Dir_Trab+"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
        Moveto [Data de Emissao        ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        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 Tipo="CONSIGNADO" Or Tipo="RETORNOS"
   Then Verifica_Valor_Unitario()
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 Not IsBlank([Saida_Qtd])
            Then 
                 If ([Retorno_Qtd      ]+[Answer->Quantidade])>[Saida_Qtd]
                    Then 
                         [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
    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()
Private PRECO_UNITARIO

If Not IsAssigned(Tabela4)
   Then Tabela4=Cria_Temp(PrivDir())
        Copy "Answer" Tabela4
   Else View Tabela4
        CoEdit "Answer"
        Scan
          Moveto Tabela4
          Moveto [Codigo do Item]
          Locate [Answer->Codigo do Item]
          If RetVal
             Then PRECO_UNITARIO=[Preco Unitario]
                  Moveto "Answer"
                  If [Preco Unitario]<>PRECO_UNITARIO
                     Then [Preco Unitario]=PRECO_UNITARIO
                  EndIf
          EndIf
          Moveto "Answer"
        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

   [Valor do Documento]=([Saldo do Documento]+VRJUROS)-VRDESCT
   [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]
   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()

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 Tabela,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="TESTE" 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

If CheckTG_OPGERENCIA[1]
   Then Data_Acerto()
EndIf

Delete Tabela
Delete Tabela1
Delete Tabela2
Delete Tabela3
Delete Tabela5

Release Vars Tabela,Tabela1,Tabela2,Tabela,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

  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"
                                                                                                      
  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
                                                                                                            
  Moveto "Answer"

  QuitLoop
EndWhile
lin=13

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)                      

;*******************************************************************************
;* 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 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         VrOriginal      VrTotal    Observa‡„o"+CI_FNEG+ASP2+"\n"
          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    +[Valor do Documento]    
                SALDO_DEBCRED = SALDO_DEBCRED +[Saldo do Documento] 
                
                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"                  
              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    
  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))

  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+Spaces(70)+"(C) Comissao (%) (L)                :"+Format("W12.2,EIC",COMISSAOREP)+"(-)  "+
                                                                            Format("W6.2",((COMISSAOREP/(VR_MERCADOR-VR_DESCONTO))*100))+"%"+ASP2+"\n"
        
  Print File ARQIMP ASP1+"(Z) Vendas Realizadas =(V)      :"+Format("W13,EIC",TOT_QVENDA)+Format("W12.2,EIC",TOT_VENDA)+"(=)"+Spaces(9)+
                         "(O) Outros Retornos - Desconto      :"+Format("W12.2,EIC",TOT_RETOU)+"(-)"+ASP2+"\n"

  Print File ARQIMP ASP1+"( ) Outros Retornos             :"+Format("W13,EIC",TOT_QRETOU)+Format("W12.2,EIC",TOT_RETOU)+"( )"+Spaces(9)+
                         "(B) Outros Debitos                  :"+Format("W12.2,EIC",VR_DEBITO)+"(+)"+ASP2+"\n"   
  Print File ARQIMP ASP1+Spaces(70)+"(T) Credito                         :"+Format("W12.2,EIC",VR_CREDITO)+"(-)"+ASP2+"\n"   

  TOTAL=VR_MERCADOR+VR_DEBITO-(VR_DESCONTO+COMISSAOREP+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+CI_INEG+"    Diferen‡a: (P-Z)            :"+Format("W13,EIC",(TOT_QVENDA_PROJ-TOT_QVENDA))+Format("W12.2,EIC",(TOT_VENDA_PROJ-TOT_VENDA))+"(=)"+
             Spaces(9)+          "    "+CONTROLA_TOTAL+"(L-C-O-T)+(B) :"+  Format("W12.2,EIC",TOTAL)+"(=)"+CI_FNEG+ASP2+"\n\n\n"          

   
  If SYS_CODIGO_CLIENTE="0266"
    Then Print File ARQIMP ASP1+CI_INEG+"Diferen‡a "+CI_FNEG+"(Saidas-Retornos) :"
         Print File ARQIMP CI_INEG+Format("W19,EIC",TOT_QSAIDA-TOT_QRETOR)
         Print File ARQIMP Format("W12.2,EIC",TOT_SAIDA-TOT_RETOR)+CI_FNEG+ASP2+"\n\n" 
  EndIf

  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]
   Then Sort Tabela2 On "Codigo da Empresa", "Codigo", "Descricao do Item" To "Answer"
        ClearAll
EndIf

View Tabela1
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/ Gravar PedidoC                                                    *
;*******************************************************************************
Proc Grava_PedidoC()

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

UnLockRecord
{TableAdd} {\\Sistemas\\Vendas\\Destin}
Moveto [Descricao da Destinacao]
Zoom Select "VEND.. CONS.."
If Search("VEND",[Descricao da Destinacao])>0 And
   Search("CONS",[Descricao da Destinacao])>0
   Then DESTIN=[Codigo da Destinacao]  
   Else DESTIN=False
        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

Moveto "PedidoC"
Moveto [Numero do Pedido]
While True
  End
  If IsBlank([])
     Then PEDIDO="000001"
     Else PEDIDO=AlinhM(StrVal(NumVal([])+1),6)
  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])+"."

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     ]
[Condicao de Pagamento]=[NotaC->Condicao de Pagamento]
[Composicao de Dias   ]=[NotaC->Composicao de Dias   ]
[Empresa Atendimento  ]=[NotaC->Codigo da Empresa    ]

UnLockRecord

Moveto "Answer"

EndProc

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

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()
;*******************************************************************************
;* 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_DESTINAT"      : Campo="TG_EMPRESA"
            Case Campo="TG_OPFAT"         : Campo="TG_DESTINAT"
            Case Campo="TG_OPITE"         : Campo="TG_OPFAT"
            Case Campo="TG_OPACVR"        : Campo="TG_OPITE" 
            Case Campo="TG_DTINI"         : Campo="TG_OPACVR"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPGERENCIA"    : Campo="TG_DTINI"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA" : 
                         If IsBlank(VSDGEMPRESA)
                            Then VSDGNOMEMP=""
                            Else Campo="TG_DESTINAT"
                         EndIf   
                    Case Campo="TG_DESTINAT" :
                         If Not IsBlank(VSDGDESTINAT)
                            Then Campo="TG_OPFAT"
                            Else VSDGNOMDEST=""
                         EndIf
                    Case Campo="TG_OPFAT"   :
                         If Not CheckTG_OPFAT[1]
                            Then Campo="TG_OPITE"
                            Else Campo="TG_DTINI"
                                 VSDGOPITE     =""
                                 VSDGDESCOPITE =""
                                 VSDGOPACVR    =""
                                 VSDGDESCOPACVR=""
                                 VSDGDTREFERENTE=BlankDate()
                                 CheckTG_OPGERENCIA[1]=False   
                         EndIf
                    Case Campo="TG_OPITE"   : Campo="TG_OPACVR"
                         VSDGOPITE=ControlValue("TG_OPITE")
                         If VSDGOPITE="T"
                            Then VSDGDESCOPITE="TODOS"
                            Else VSDGOPITE    ="D"
                                 VSDGDESCOPITE="C/ DIFERENCA"
                         EndIf
                    Case Campo="TG_OPACVR"   : Campo="TG_DTINI"
                         VSDGOPACVR=ControlValue("TG_OPACVR")
                         If VSDGOPACVR="C"
                            Then VSDGDESCOPACVR="COM VALORES"
                            Else VSDGOPACVR    ="S"
                                 VSDGDESCOPACVR="SEM VALORES"
                         EndIf
                    Case Campo="TG_DTINI"         : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"         : 
                         If Not CheckTG_OPFAT[1]
                            Then Campo="TG_OPGERENCIA"
                            Else Campo="YES"
                         EndIF    
                    Case Campo="TG_OPGERENCIA"   : 
                         If CheckTG_OPGERENCIA[1]
                            Then Campo="TG_DTREFERENTE"
                            Else Campo="YES"
                         EndIf 
                    Case Campo="TG_DTREFERENTE": 
                         VSDGDTREFERENTE=ControlValue("TG_DTREFERENTE")
                         If IsBlank(VSDGDTREFERENTE)
                            Then Mensagem("Informe a Data para Acerto")
                            Else If Not CheckTG_OPGERENCIA[1]
                                    Then VSDGDTREFERENTE=BlankDate()
                                         Campo="YES"  
                                    Else Campo="YES"    
                                 EndIf        
                         EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_DESTINAT":
       MSG_CAMPO="Informe o c˘digo do cliente"
  Case Campo="TG_OPFAT":
       MSG_CAMPO="Defina a op‡„o"
       TECLA="Barra de Espa‡o=Marca/Desmarca  "
  Case Campo="TG_OPITE":
       MSG_CAMPO="Imprimir itens: T=Todos  D=com Diferen‡a"
  Case Campo="TG_OPACVR":
       MSG_CAMPO="Imprimir Acerto: C=Com Valores  S=Sem Valores"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* 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]
  While True

  If Not CheckTG_OPFAT[1]
     Then TECLA="F4=Imprimir  "
     Else TECLA="F5=Gera Pedidos  "
  EndIf

  AguardaTeclasPadrao()

  If RetVal=-33
     Then Echo Normal
          Echo Off
          ShowPopup " Fun‡”es " CENTERED
           "F4 ~I~mprimir        " : " Imprimir                 " : "F4",
           "F5 Gera ~P~edidos    " : " Gera Pedidos             " : "F5",
           "~C~ancelar           " : " Cancelar a Opera‡„o      " : "CANCELAR"
          EndMenu
          To MenuVar

          Echo Off
          If MenuVar="CANCELAR" or MenuVar="Esc"
              Then Loop
          EndIf

          RetVal=MenuVar
  EndIf
    
  Switch
        Case RetVal=-94 : MsgTeclasPadrao()
        Case RetVal="F4" And Field()="Codigo da Empresa":             
             If Not CheckTG_OPFAT[1]
                Then DISPOSITIVO()
                     If OK=""
                        Then Loop
                     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)
                                       Mensagem("Impress„o Concluida !")
                                Else If OK="I"
                                        Then ;---- Imprime Arquivo Impressao ------------------------------------------------
                                             ImpriArq(ARQIMP)
                                             Mensagem("Impress„o Concluida !")
                                        Else SELECIONAI()     
                                     EndIf
                             EndIf              
                             CHAVE=9
                             QuitLoop 
                        Else CHAVE=9
                             QuitLoop
                     EndIf                           
                Else Mensagem("Opera‡„o apenas para gera‡„o de pedidos! // F5=Gera Pedidos")
             EndIf
        Case RetVal="F5" And Field()="Codigo da Empresa":
             If CheckTG_OPFAT[1]
                Then Gera_Dados()
                     If Not CONSIGNADO
                        Then CHAVE=9
                             QuitLoop
                        Else 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)
                             CHAVE=9
                             QuitLoop
                     EndIf
                Else Mensagem("Opera‡„o apenas para impress„o! // F4=Imprimir")          
             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 
     Then QuitLoop
  EndIf
EndWhile
EndProc

;*******************************************************************************
;* 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
EndWhile
ClearAll
EndProc

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

VSDGEMPRESA       = ""
VSDGDTREFERENTE   = BlankDate() 
VSDGDTINI         = BlankDate()
VSDGDTFIM         = BlankDate()

Array TG_OPGERENCIA[1]
TG_OPGERENCIA[1]="Deseja atualizar lan‡amentos como acertados"
OPGERENCIA="referente: "

Array CheckTG_OPGERENCIA[ArraySize(TG_OPGERENCIA)]
CheckTG_OPGERENCIA[1]=False

Array TG_OPFAT[1]
TG_OPFAT[1]="Gerar Pedidos c/ Vendas"

Array CheckTG_OPFAT[ArraySize(TG_OPFAT)]
CheckTG_OPFAT[1]=False

While True
  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 21 Width 60

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

    Label  @ 02,00 "Cliente"  For "TG_DESTINAT"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 03,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMCLI" To VSDGNOMDEST

    CheckBoxes @ 05,00 Height 1 Width 50 Tag "TG_OPFAT"
    TG_OPFAT[1] to CheckTG_OPFAT[1]

    Label  @ 07,00 "Op‡„o de Itens" For "TG_OPITE"
    Accept @ 08,01 Width 04 "A1"  Picture "D,T" Tag "TG_OPITE" To VSDGOPITE
    Accept @ 08,06 Width 31 "A20"  Picture "!*!" Tag "TG_DESCOPITE" To VSDGDESCOPITE

    Label  @ 09,00 "Op‡„o de Valores" For "TG_OPACVR"
    Accept @ 10,01 Width 04 "A1"  Picture "C,S" Tag "TG_OPACVR" To VSDGOPACVR
    Accept @ 10,06 Width 31 "A20"  Picture "!*!" Tag "TG_DESCOPACVR" To VSDGDESCOPACVR
                                    
    Label  @ 11,00 "Perˇodo Referente" For "TG_DTINI"
    Label  @ 12,00 "de" For "TG_DTINI"
    Accept @ 12,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 12,17 "at‚" For "TG_DTFIM"
    Accept @ 12,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    CheckBoxes @ 14,00 Height 1 Width 55 Tag "TG_OPGERENCIA"
    TG_OPGERENCIA[1] to CheckTG_OPGERENCIA[1]
                   
    Label  @ 15,04 OPGERENCIA For "TG_DTREFERENTE"
    Accept @ 15,16 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREFERENTE" To VSDGDTREFERENTE

    Pushbutton @ 17,15 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 17,29 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
          
  If CheckTG_OPFAT[1] And (CheckTG_OPGERENCIA[1] Or VSDGDTREFERENTE<>BlankDate())
     Then Mensagem("Para informar a data de acerto ou gerar pedido,//devera marcar somente op‡„o desejada!")
          Loop 
  EndIf
  
  If CheckTG_OPGERENCIA[1]                                
     Then If VSDGDTREFERENTE=BlankDate()
             Then Mensagem("Data para acerto n„o informado!")
                  Loop
          EndIF
     Else If Not IsBlank(VSDGDTREFERENTE)
             Then Mensagem("Se deseja atualizar a data de acerto, //marque a op‡Ćo para prosseguir!")
                  Loop
          EndIF 
  EndIf

  Dir_Trab=""
  
  AGUARDE("Aguarde, Ajustando registros")
  Ajusta_Dados()
  
  If Not IsAssigned(Tabela) Or 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
