;** Rm_1602 ********************************************************************
;* Resumo de Saida Mostruario por Pessoa                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 12/03/2018 por Anivel Augusto Rodrigues
;Ultima Alteracao:   /  /     por  
;Motivo Alteracao: 

;*******************************************************************************
;* Rotina p/ Ajustar Registros                                                *
;*******************************************************************************
Proc Ajusta_Dados()
Private Wi
ClearAll                              
        
Tabela=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\RM_0983a" Tabela
ClearAll
Empty(Tabela)
                                             
For Wi From 1 To 2                    
  If Wi=1
     Then If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
             Then 
                  {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
                  Moveto [Codigo do Representante] typein "_crep"
                  Moveto [Codigo_Pessoa          ] typein "_pes"
                  
                  {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 [Codigo                 ] Check TypeIn "_cpes, ~VSDGDESTINAT.."
                  Moveto [Codigo do Representante] Check TypeIn "_crep"
                  Moveto [Codigo do Representante] Check
                  Moveto [Nome Fantasia Represent] Check
                  Moveto [Descricao da Destinacao] Check TypeIn "..MOSTRU.."
                  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\\Cadastro\\Represen" Enter
                  Moveto [Codigo do Representante] typein "_crep"
                  Moveto [Codigo_Pessoa          ] typein "_pes"
                  {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
                  Moveto [Serie do Documento     ] Check
                  Moveto [Tipo do Documento      ] Check
                  Moveto [Razao Social           ] Check
                  Moveto [Valor Nota Fiscal      ] Check
                  Moveto [Tipo                   ] Check TypeIn "as Tipo Movimento Estoque"
                  Moveto [Codigo                 ] Check TypeIn "_cpes, ~VSDGDESTINAT.."
                  Moveto [Codigo do Representante]       TypeIn "_crep"
                  Do_It!
                  ClearAll
          EndIf
  EndIf
  If Not IsEmpty("Answer")
     Then If Wi=1
             Then 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 ]
                    [Valor Nota Fiscal      ]=[Answer->Valor Nota Fiscal      ]
                    [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              ]
                    [Razao Social           ]=[Answer->Razao Social        ]
                    [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()

;****** Mostruario *************************************************************
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 "MOSTRU.."
        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 MOSTRUARIO=False
                MENSAGEM("Mostru rio n„o encontrado !")
                Return
           Else MOSTRUARIO=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 [Razao Social           ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Descricao da Destinacao] TypeIn "MOSTRU.."
        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("MOSTRUARIO")
EndIf

If VSDGOPRELANALSINT="1"
   Then Return
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 [Razao Social             ] Check
        Moveto [Data de Emissao          ] Check
        Moveto [Descricao da Destinacao  ] TypeIn "..VENDA.. ..MOSTRU.."
        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 - Mostruario ***************************************************
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 [Razao Social           ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Descricao da Destinacao] TypeIn "..RET.. ..MOSTRU.."
        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              

;****** Trocas *****************************************************************
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 [Razao Social           ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Descricao da Destinacao] TypeIn "..TROCA.. ..MOSTRU.."
        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

;****** Devolucoes - Mostruario  **************************************************
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 [Razao Social           ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Descricao da Destinacao] TypeIn "..DEVOL.. ..MOSTRU.."
        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
        Moveto [Razao Social           ] Check 
        Moveto [Data de Emissao        ] 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 [Data de Emissao          ] Check
        Moveto [Descricao da Destinacao  ] TypeIn "..VENDA.. ..MOSTRU.."
        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_Dados3()
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 HI

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela2
CoEdit "Answer"
Scan
  Moveto Tabela2       
  End
  Down
  [Codigo da Empresa  ]=[Answer->Codigo da Empresa  ]
  [Numero do Documento]=[Answer->Numero do Documento]
  [Tipo do Documento  ]=[Answer->Tipo do Documento  ]
  [Codigo             ]=[Answer->Codigo             ]
  [Razao Social       ]=[Answer->Razao Social       ]
  [Codigo do Item     ]=[Answer->Codigo do Item     ]
  [Preco Unitario     ]=[Answer->Preco Unitario     ]
  [Data de Emissao    ]=[Answer->Data de Emissao    ]

  Switch
    Case Tipo="MOSTRUARIO": 
         [Saida_Qtd      ]=[Saida_Qtd    ]+[Answer->Quantidade    ]
         [Saida_Vr       ]=[Answer->Preco Unitario]
         [Saida_VrTotal  ]=[Saida_VrTotal]+[Answer->Preco Total   ]
    Case Tipo="RETORNOS":   
         [Retorno_Qtd          ]=[Retorno_Qtd      ]+[Answer->Quantidade]
         [Retorno_VrTotal      ]=[Retorno_Qtd      ]*[Preco Unitario    ]
        ; Para fazer esse calculo, deveria criar uma tabela agrupando os itens
        ; como no RM_1501 e depois verificar com essa rotina,depois da tabela gerada
        ; se o item possui saida ou nao entrando assim em outros retornos.
        ; [RetornoOutros_Qtd    ]=[RetornoOutros_Qtd]+[Answer->Quantidade]
        ; [RetornoOutros_VrTotal]=[RetornoOutros_Qtd]*[Preco Unitario    ]
    Case Tipo="VENDAS":
         [Venda_Qtd      ]=[Venda_Qtd      ]+[Answer->Quantidade ]
         [Venda_VrTotal  ]=[Venda_VrTotal  ]+[Answer->Preco Total]
         [Venda_DescTotal]=[Venda_DescTotal]+[Answer->Valor Desconto Total]

         VRCAL=([Answer->Preco Total]-[Answer->Valor Desconto Total])-([Answer->Quantidade]*[Saida_Vr])
         Switch
           Case VRCAL<0 : [Desconto_Apurado ]=[Desconto_Apurado ]+(VRCAL*-1)
           Case VRCAL>0 : [Acrescimo_Apurado]=[Acrescimo_Apurado]+VRCAL
         EndSwitch
    Case Tipo="TROCAS":
         [Saida_Qtd      ]=[Saida_Qtd    ]+[Answer->Quantidade]
         [Saida_Vr       ]=[Answer->Preco Unitario]
         [Saida_VrTotal  ]=[Saida_Qtd    ]*[Saida_Vr]
         ;[Troca_Qtd      ]=[Troca_Qtd      ]+[Answer->Quantidade]
         ;[Troca_VrTotal  ]=[Troca_Qtd      ]*[Saida_Vr]
    Case Tipo="DEVOLUCOES":
         [Retorno_Qtd    ]=[Retorno_Qtd    ]+[Answer->Quantidade    ]
         [Retorno_VrTotal]=[Retorno_Qtd    ]*[Saida_Vr]
         ;[Devol_Qtd      ]=[Devol_Qtd      ]+[Answer->Quantidade]
         ;[Devol_VrTotal  ]=[Devol_Qtd      ]*[Saida_Vr]
  EndSwitch

  REFDOCTO=[Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento]+"  "
  Switch
    Case Tipo="MOSTRUARIO"  : 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

If VSDGOPRELANALSINT="1"
   Then If Tipo="MOSTRUARIO"
           Then Verifica_Vencimento_Mostruario()  
        EndIF
EndIf

EndProc

;*******************************************************************************
;* Rotina para verificar data de vencimento de mostruario                      *
;*******************************************************************************
Proc Verifica_Vencimento_Mostruario()

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Check Example "cemp" 
Moveto [Numero do Documento    ] Check Example "ndoc"
Moveto [Serie do Documento     ] Check Example "sdoc"
{Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV" Enter
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Numero do Documento    ] Example "ndoc"
Moveto [Serie do Documento     ] Example "sdoc"
Moveto [Data                   ] Check
Do_It!
ClearAll  

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Numero do Documento    ] Example "ndoc"
Moveto [Data                   ] Example "DtVc"
{Ask} TypeIn Tabela2 Enter
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Numero do Documento    ] Example "ndoc"
Moveto [Data de Vencimento     ] TypeIn "Changeto _DtVc"
Do_It!
ClearAll

EndProc ;Verifica_Vencimento_Mostruario()

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

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_Dados3()

;*******************************************************************************
;* 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_0983e" Tabela2  

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

Seleciona()

If Not MOSTRUARIO
   Then Return
EndIf

If IsEmpty(Tabela2)
   Then MENSAGEM("N„o existem registros a processar")
        Delete Tabela1
        Delete Tabela2

        Release Vars Tabela,Tabela1,Tabela2 
        
        Return
EndIf

EndProc ;Gera_Dados()
;*******************************************************************************
;* Rotina p/ Impressao                                                         *
;*******************************************************************************
Proc Gera_Rel()
Private VENDA_PROJETADA, VENDA_REALIZADA, QUANTIDADE
If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf 
  
AGUARDE("Aguarde, processando dados")

Gera_Dados()

If Not MOSTRUARIO
   Then Return
EndIf

View Tabela2

{Ask} TypeIn Tabela2 Enter
Moveto [Codigo da Empresa    ] Check
Moveto [Codigo               ] Check
Moveto [Numero do Documento  ] Check
Moveto [Tipo do Documento    ] Check
Moveto [Razao Social         ] Check
Moveto [Data de Emissao      ] Check
Moveto [Saida_Qtd            ] TypeIn "Calc Sum As \"Saida_Qtd\""
Moveto [Saida_VrTotal        ] TypeIn "Calc Sum As \"Saida_VrTotal\""
Moveto [Retorno_Qtd          ] TypeIn "Calc Sum As \"Retorno_Qtd\""
Moveto [Retorno_VrTotal      ] TypeIn "Calc Sum As \"Retorno_VrTotal\""
Moveto [RetornoOutros_Qtd    ] TypeIn "Calc Sum As \"RetornoOutros_Qtd\""
Moveto [RetornoOutros_VrTotal] TypeIn "Calc Sum As \"RetornoOutros_VrTotal\""
Moveto [Venda_Qtd            ] TypeIn "Calc Sum As \"Venda_Qtd\""
Moveto [Venda_VrTotal        ] TypeIn "Calc Sum As \"Venda_VrTotal\""
Moveto [Venda_DescTotal      ] TypeIn "Calc Sum As \"Venda_DescTotal\""
Moveto [Saldo_Qtd            ] Check
Moveto [Saldo_VrTotal        ] Check
Moveto [Data de Vencimento   ] Check
Do_It!
ClearAll
                                                             
Coedit "Answer"
Scan                                
  VENDA_PROJETADA = [Saida_VrTotal]-[Retorno_VrTotal]
  VENDA_REALIZADA = VENDA_PROJETADA-[Venda_VrTotal]-[RetornoOutros_VrTotal]-[Venda_DescTotal]

  QUANTIDADE = [Saida_Qtd]-[Retorno_Qtd]-[Venda_Qtd]
  
  [Saldo_Qtd    ]=QUANTIDADE
  [Saldo_VrTotal]=VENDA_REALIZADA
  
  Release Vars VENDA_PROJETADA, VENDA_REALIZADA, QUANTIDADE
  
EndScan
Do_It!
ClearAll

Rename "Answer" Tabela2

If VSDGOPRELANALSINT="1"
   Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_0983e" "2" Tabela2 "R"
   Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_0983e" "1" Tabela2 "R"
EndIf

IMPRIREL(Tabela2,"R")

EndProc   ;  Gera_Rel()

;*******************************************************************************
;* 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_DTINI"         : Campo="TG_DESTINAT"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPRELANALSINT" : Campo="TG_DTFIM"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA"       : Campo="TG_DESTINAT"
                    Case Campo="TG_DESTINAT"      : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"         : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"         : Campo="TG_OPRELANALSINT"
                    Case Campo="TG_OPRELANALSINT" : Campo="YES"
                         VSDGNOMOPRELANALSINT=ControlValue("TG_OPRELANALSINT")
                         If IsBlank(VSDGOPRELANALSINT)
                            Then VSDGOPRELANALSINT="2"
                         EndIf
                         Switch
                           Case VSDGOPRELANALSINT="1" : VSDGNOMOPRELANALSINT="SAIDA DOS MOSTRU·RIOS"
                           Case VSDGOPRELANALSINT="2" : VSDGNOMOPRELANALSINT="POSICAO DOS MOSTRUµRIOS"
                         EndSwitch
                  EndSwitch
          EndIf         
          RefreshDialog
   EndSwitch
EndIf

Switch
  Case Campo="TG_OPRELANALSINT":
       MSG_CAMPO="Op‡”es: 1=SAIDA DOS MOSTRU·RIOS  2=POSI€¶O DOS MOSTRU·RIOS"
EndSwitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Seleciona lancamentos para exibicao de relatorio
;*******************************************************************************
Proc CHAVE()

While True
  CHAVE=1
  End
  Down    
  Moveto [Codigo da Empresa]
  While True

  TECLA="F4=Gerar Relat˘rio  "

  AguardaTeclasPadrao()

  Switch
        Case RetVal=-94 : MsgTeclasPadrao()
        Case RetVal="F4" And Field()="Codigo da Empresa": 
             AGUARDE("Gerando Relat˘rio")
             DISPOSITIVO()
             If OK<>""
                Then AGUARDE("Aguarde, Gerando o Relat˘rio")
                     Gera_Rel()
             EndIf
             CHAVE=9
             QuitLoop                  
        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

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

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

While True
  ShowDialog "Resumo de Acerto/Mostruario por Pessoa" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
    @ 05,12   Height 11 Width 72

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

    Label  @ 02,00 "Pessoa"  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 do Relat˘rio" For "TG_OPRELANALSINT"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELANALSINT" To VSDGOPRELANALSINT
    Accept @ 01,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPRELANASINT" To VSDGNOMOPRELANALSINT

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

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

  If IsBlank(VSDGDTFIM)
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf

  Dir_Trab=""
  
  AGUARDE("Aguarde, Ajustando registros")
  Ajusta_Dados()
  
  If IsEmpty(Tabela) 
     Then MENSAGEM("N„o existem registros a processar")
          Loop    
  EndIf
  
  AGUARDE("Gerando Relat˘rio")
  DISPOSITIVO()
  If OK<>""
     Then AGUARDE("Aguarde, Gerando o Relat˘rio")
          Gera_Rel()
  EndIf
   
  Echo Normal
  Echo Off
  ClearAll
  
EndWhile
ClearAll
Release Vars All
Release Procs All
