;** Rm_0068 ********************************************************************
;*  Acerto da Comissao usando % do Item da Nota Fiscal                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 08/06/2017 por Bruno Carvalho              
;Ultima Alteracao: 08/06/2017 por Bruno Carvalho                  
;Motivo Alteracao: Atribuido VSDGDDTACERTO=Today() e removido do filtro p/ n„o ocorrer altera‡Æo
;Ultima Alteracao: 16/06/2017 por Bruno Carvalho                  
;Motivo Alteracao: Ajustes Apuracao_Valores() -> Ajustando Devolu‡Æo p/ Valor Positivo 
;Ultima Alteracao: 26/07/2017 por Rafael Matos
;Motivo Alteracao: Ajustes codigo da tabela do item
;Ultima Alteracao: 12/09/2017 por Kamila Gomes
;Motivo Alteracao: Ajustes erro de digita‡Æo 
;Ultima Alteracao: 20/03/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes no imprimir()

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona()
ClearAll

;---- Vendas/Devolu‡äes --------------------------------------------------------
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")  And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")  And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV")
   Then For wi2 From 1 To 2 
         {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
         Moveto [Codigo do Representante] Example "crep"
         Moveto [Codigo da Gerencia     ] Check
         If Not IsBlank(VSDGGERENCIA)
            Then Moveto [Codigo da Gerencia] TypeIn "~VSDGGERENCIA"
         EndIf
                       
         {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
         Moveto [Codigo da Empresa        ] Check Example "a" TypeIn ", ~VSDGEMPRESA.."
         Moveto [Numero do Documento      ] Check Example "b"
         Moveto [Serie do Documento       ] Check Example "c"
         Moveto [Tipo do Documento        ] Check
         Moveto [Data de Emissao          ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
         Moveto [Data de Acerto           ] TypeIn "Blank"
         Moveto [Situacao                 ] TypeIn "Not C"
         Moveto [Nome Fantasia Empresa    ] Check
         Moveto [Codigo                   ] Check 
         Moveto [Nome Fantasia EmitDest   ] Check
         Moveto [Razao Social             ] Check
         Moveto [Numero da OF             ] Check
         Moveto [Forma de Pagamento       ] Check
         Moveto [Condicao de Pagamento    ] Check
         Moveto [Descricao CondPagto      ] Check
         Moveto [Valor Mercadoria Liquido ] Check TypeIn "as \"Preco Total_NotaC\""
         Moveto [Valor Desconto           ] Check TypeIn "as \"Valor Descto Total_NotaC\""
         Moveto [Codigo do Representante  ] Check TypeIn "_crep, ~VSDGREPRESEN.."
         Moveto [Nome Fantasia Represent  ] Check
         Moveto [Comissao do Representante] Check TypeIn "as \"Aliquota Comissao_NotaC\""            
            
         Switch 
           Case  wi2 = 1 : Moveto [Descricao da Destinacao  ] TypeIn "..VEND.." 
                           Moveto [Tipo Movimento Estoque   ] TypeIn "S"
           Case  wi2 = 2 : Moveto [Descricao da Destinacao  ] TypeIn "..DEVOL.."
                           Moveto [Tipo Movimento Estoque   ] TypeIn "E"
         EndSwitch   
            
         {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
         Moveto [Codigo da Empresa      ] Example "a"
         Moveto [Numero do Documento    ] Example "b"
         Moveto [Serie do Documento     ] Example "c"
         Moveto [Item do Documento      ] Check
         Moveto [Codigo do Item         ] Check Example "coditem"
         Moveto [Descricao do Item      ] Check
         Moveto [Quantidade             ] Check
         Moveto [Unidade Fiscal         ] Check
         Moveto [Preco Total            ] Check
         Moveto [Valor Desconto Total   ] Check
         Moveto [Comissao do Item       ] Check
         Moveto [Situacao_Item          ] TypeIn "Not C"
         Moveto [Codigo da Tabela       ] Check TypeIn "as \"Tabela_Preco_Item\"" 
         Do_It!
         ClearAll
         
         {Ask} {Answer} Check
         Moveto [Codigo do Item          ] Example "coditem"
         {Ask} {\\Sistemas\\Estoque\\Itens}  
         Moveto [Codigo do Item          ] Example "coditem"
         Moveto [Codigo da Marca         ] TypeIn "~VSDGMARCA.." 
         Do_It!
         ClearAll                      
         
         {Ask} {Answer}
         Moveto [Codigo da Empresa       ] Example "a"
         Moveto [Numero do Documento     ] Example "b"
         Moveto [Serie do Documento      ] Example "c"
         Moveto [Tipo do Documento       ] Example "tipd"
         Moveto [Codigo do Representante ] Example "d"
         Moveto [Data de Emissao         ] Example "e"
         Moveto [Nome Fantasia Empresa   ] Example "ne"
         Moveto [Nome Fantasia Represent ] Example "nr"
         Moveto [Codigo                  ] Example "cc"
         Moveto [Nome Fantasia EmitDest  ] Example "nc"
         Moveto [Razao Social            ] Example "rz"
         Moveto [Numero da OF            ] Example "no"
         Moveto [Forma de Pagamento      ] Example "fp"
         Moveto [Condicao de Pagamento   ] Example "conp"
         Moveto [Descricao CondPagto     ] Example "desp"
         Moveto [Codigo do Item          ] Example "f"
         Moveto [Descricao do Item       ] Example "descr"
         Moveto [Quantidade              ] Example "g"
         Moveto [Unidade Fiscal          ] Example "uf"
         Moveto [Preco Total             ] Example "h"
         Moveto [Valor Desconto Total    ] Example "i"
         Moveto [Comissao do Item        ] Example "TAXA"
         
         Moveto [Preco Total_NotaC       ] Example "NotCVr"
         Moveto [Valor Descto Total_NotaC] Example "NotCDes"
         Moveto [Aliquota Comissao_NotaC ] Example "TAXAC"
         Moveto [Tabela_Preco_Item       ] Example "TabP"
         
         {Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
         Switch
            Case wi2 = 1 : Moveto [Operacao          ] TypeIn "\"Vendas\""
                           Moveto [Operacao_Descricao] TypeIn "\"01-Vendas\""
            Case wi2 = 2 : Moveto [Operacao          ] TypeIn "\"Devolucoes\""
                           Moveto [Operacao_Descricao] TypeIn "\"02-Devolucoes\""
         EndSwitch
         Moveto [Codigo da Empresa       ] Example "a"
         Moveto [Numero do Documento     ] Example "b"
         Moveto [Serie do Documento      ] Example "c"
         Moveto [Tipo do Documento       ] Example "tipd"
         Moveto [Codigo do Representante ] Example "d"
         Moveto [Data de Emissao         ] Example "e"
         Moveto [Nome Fantasia Empresa   ] Example "ne"
         Moveto [Nome Fantasia Represent ] Example "nr"
         Moveto [Codigo                  ] Example "cc"
         Moveto [Nome Fantasia EmitDest  ] Example "nc"
         Moveto [Razao Social            ] Example "rz"
         Moveto [Numero da OF            ] Example "no"
         Moveto [Forma de Pagamento      ] Example "fp"
         Moveto [Condicao de Pagamento   ] Example "conp"
         Moveto [Descricao CondPagto     ] Example "desp"
         Moveto [Codigo do Item          ] Example "f"
         Moveto [Descricao do Item       ] Example "descr"
         Moveto [Unidade Fiscal          ] Example "uf"
         Moveto [Aliquota Comissao       ] Example "TAXA"
         Moveto [Preco Total_NotaC       ] Example "NotCVr"
         Moveto [Valor Descto Total_NotaC] Example "NotCDes"   ;Descto J  ‚ concedido no Valor da Mercadoria Liquido
         Moveto [Aliquota Comissao_NotaC ] Example "TAXAC"
         Moveto [Comissao_NotaC          ] TypeIn "("Example "NotCVr" TypeIn "*" Example "TAXAC" TypeIn ")/100"
         Moveto [Tabela_Preco_Item       ] Example "TabP"
         
         Switch
            Case wi2 = 1 : Moveto [Quantidade          ] Example "g"
                           Moveto [Preco Total         ] Example "h" TypeIn "-" Example "i"           ;Preco Total - Valor Desconto Total
                           Moveto [Comissao            ] TypeIn "(("Example "h" TypeIn "-" Example "i" TypeIn ")*" Example "TAXA" TypeIn ")/100"
            Case wi2 = 2 : Moveto [Quantidade          ] Example "g" TypeIn "*-1"
                           Moveto [Preco Total         ] TypeIn "(" Example "h" TypeIn "-" Example "i" TypeIn ")*-1"
                           Moveto [Comissao            ] TypeIn "((("Example "h" TypeIn "-" Example "i" TypeIn ")*" Example "TAXA" TypeIn ")/100)*-1"        
         EndSwitch
         Do_It!
         ClearAll
        EndFor
        
        ;Calculando a M‚dia do Numero de Dias
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV" Enter 
        Moveto [Codigo da Empresa      ] Check Example "a"
        Moveto [Numero do Documento    ] Check Example "b"
        Moveto [Serie do Documento     ] Check Example "c"
        Moveto [Numero de Dias         ] TypeIn "Calc Average as Numero de Dias"
        {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Example "a"
        Moveto [Numero do Documento    ] Example "b"
        Moveto [Serie do Documento     ] Example "c"
        Do_It!
        ClearAll
                                                                               
        {Ask} {Answer}
        Moveto [Codigo da Empresa      ] Example "a"
        Moveto [Numero do Documento    ] Example "b"
        Moveto [Serie do Documento     ] Example "c"
        Moveto [Numero de Dias         ] Example "Num"
        {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Example "a"
        Moveto [Numero do Documento    ] Example "b"
        Moveto [Serie do Documento     ] Example "c"
        Moveto [Media_NDias            ] TypeIn "Changeto _Num"
        Do_It!
        ClearAll
EndIf
                        
;****** Devolucoes *******
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
   Then {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."
        EndIf
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEc" Enter
        Moveto [Numero do Lancamento     ] Example "x"
        Moveto [Codigo da Empresa        ] CheckPlus TypeIn "~VSDGEMPRESA.."
        Moveto [Numero do Documento      ] CheckPlus
        Moveto [Serie do Documento       ] CheckPlus
        Moveto [Tipo do Documento        ] CheckPlus
        Moveto [Codigo do Representante  ] CheckPlus Example "crep" TypeIn " ,~VSDGREPRESEN.."
        Moveto [Data de Entrada          ] CheckPlus TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Tipo de Operacao         ] TypeIn "D"
        Moveto [Nome Fantasia Empresa    ] CheckPlus
        Moveto [Nome Fantasia Represent  ] CheckPlus
        Moveto [Comissao do Representante] CheckPlus TypeIn "as \"Aliquota Comissao_NotaC\""
        Moveto [Codigo                   ] CheckPlus 
        Moveto [Nome Fantasia EmitDest   ] CheckPlus
        Moveto [Razao Social             ] CheckPlus
        Moveto [Tipo de Pagamento        ] CheckPlus typein "as Condicao de Pagamento"
        Moveto [Descricao Tipo Pagamento ] CheckPlus Typein "as Descricao CondPagto"  
        Moveto [Valor Mercadoria Liquido ] CheckPlus TypeIn "as \"Preco Total_NotaC\""
        Moveto [Valor Desconto           ] CheckPlus TypeIn "as \"Valor Descto Total_NotaC\""
        
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
        Moveto [Numero do Lancamento     ] Example "x"
        Moveto [Codigo do Item           ] CheckPlus Example "coditem"
        Moveto [Descricao do Item        ] CheckPlus
        Moveto [Quantidade               ] CheckPlus
        Moveto [Unidade Fiscal           ] CheckPlus
        Moveto [Preco Total              ] CheckPlus
        Moveto [Valor Desconto Total     ] CheckPlus
        Moveto [Comissao do Item         ] CheckPlus
        Do_It!
        ClearAll
        
        {Ask} {Answer} Check
        Moveto [Codigo do Item          ] Example "coditem"
        {Ask} {\\Sistemas\\Estoque\\Itens}  
        Moveto [Codigo do Item          ] Example "coditem"
        Moveto [Codigo da Marca         ] TypeIn "~VSDGMARCA.." 
        Do_It!
        ClearAll

        {Ask} {Answer}
        Moveto [Codigo da Empresa       ] Example "a"
        Moveto [Numero do Documento     ] Example "b"
        Moveto [Serie do Documento      ] Example "c"
        Moveto [Tipo do Documento       ] Example "tipd"
        Moveto [Codigo do Representante ] Example "d"
        Moveto [Data de Entrada         ] Example "e"
        Moveto [Nome Fantasia Empresa   ] Example "ne"
        Moveto [Nome Fantasia Represent ] Example "nr"
        Moveto [Codigo                  ] Example "cc"
        Moveto [Nome Fantasia EmitDest  ] Example "nc"
        Moveto [Razao Social            ] Example "rz"
        Moveto [Condicao de Pagamento   ] Example "conp"
        Moveto [Descricao CondPagto     ] Example "desp"
        Moveto [Codigo do Item          ] Example "f"
        Moveto [Descricao do Item       ] Example "descr"
        Moveto [Quantidade              ] Example "g"
        Moveto [Unidade Fiscal          ] Example "uf"
        Moveto [Preco Total             ] Example "h"
        Moveto [Valor Desconto Total    ] Example "i"
        Moveto [Comissao do Item        ] Example "TAXA"
        Moveto [Preco Total_NotaC       ] Example "NotCVr"
        Moveto [Valor Descto Total_NotaC] Example "NotCDes"
        Moveto [Aliquota Comissao_NotaC ] Example "TAXAC"
 
        {Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
        Moveto [Operacao                ] TypeIn "\"Devolucoes\""
        Moveto [Operacao_Descricao      ] TypeIn "\"02-Devolucoes\""
        Moveto [Codigo da Empresa       ] Example "a"
        Moveto [Numero do Documento     ] Example "b"
        Moveto [Serie do Documento      ] Example "c"
        Moveto [Tipo do Documento       ] Example "tipd"
        Moveto [Codigo do Representante ] Example "d"
        Moveto [Data de Emissao         ] Example "e"
        Moveto [Nome Fantasia Empresa   ] Example "ne"
        Moveto [Nome Fantasia Represent ] Example "nr"
        Moveto [Codigo                  ] Example "cc"
        Moveto [Nome Fantasia EmitDest  ] Example "nc"
        Moveto [Razao Social            ] Example "rz"
        Moveto [Condicao de Pagamento   ] Example "conp"
        Moveto [Descricao CondPagto     ] Example "desp"
        Moveto [Codigo do Item          ] Example "f"                                  
        Moveto [Descricao do Item       ] Example "descr"
        Moveto [Quantidade              ] Example "g" TypeIn "*-1"
        Moveto [Unidade Fiscal          ] Example "uf"
        Moveto [Preco Total             ] TypeIn "(" Example "h" TypeIn "-" Example "i" TypeIn ")*-1"
        Moveto [Comissao                ] TypeIn "((("Example "h" TypeIn "-" Example "i" TypeIn ")*" Example "TAXA" TypeIn ")/100)*-1"
        Moveto [Aliquota Comissao       ] Example "TAXA"
        
        Moveto [Preco Total_NotaC       ] Example "NotCVr"
        Moveto [Valor Descto Total_NotaC] Example "NotCDes"   ;Descto J  ‚ concedido no Valor da Mercadoria Liquido
        Moveto [Aliquota Comissao_NotaC ] Example "TAXAC"
        Moveto [Comissao_NotaC          ] TypeIn "("Example "NotCVr" TypeIn "*" Example "TAXAC" TypeIn ")/100"
        Do_It!
        ClearAll   
        ;NÆo foi realizado o calculo da media do numero de dias do nota de entrada        
EndIf

EndProc   ; (Seleciona)

;*******************************************************************************
;* Rotina p/ Agrupar Dados                                                     *
;*******************************************************************************
Proc Agrupa_Dados()

;Quantidade TOTAL da Nota
{Ask} TypeIn Tabela Enter  
Moveto [Operacao                ] Check
Moveto [Operacao_Descricao      ] Check
Moveto [Codigo da Empresa       ] Check
Moveto [Numero do Documento     ] Check                                     
Moveto [Serie do Documento      ] Check
Moveto [Data de Emissao         ] Check
Moveto [Nome Fantasia Empresa   ] Check
Moveto [Codigo do Representante ] Check
Moveto [Nome Fantasia Represent ] Check
Moveto [Codigo                  ] Check
Moveto [Nome Fantasia EmitDest  ] Check
Moveto [Razao Social            ] Check
Moveto [Numero da OF            ] Check
Moveto [Quantidade              ]       TypeIn "Calc Sum as \"Quantidade\""
Moveto [Descricao Gerencia      ] Check
Moveto [Condicao de Pagamento   ] Check
Moveto [Descricao CondPagto     ] Check
Moveto [Descricao da Destinacao ] Check
Moveto [Data de Acerto          ] Check
Moveto [Forma de Pagamento      ] Check
Moveto [Tipo do Documento       ] Check
Moveto [Preco Total             ]       TypeIn "Calc Sum as \"Preco Total\""
Moveto [Comissao                ]       TypeIn "Calc Sum as Comissao"
Moveto [Aliquota Comissao       ] Check
Moveto [Media_NDias             ] Check
Do_It!
ClearAll 
                                        
Empty Tabela
   
{Ask} {Answer} Check
Moveto [Preco Total             ] Check TypeIn "Calc Sum as Preco Total"
Moveto [Comissao                ] Check TypeIn "Calc Sum as Comissao"
Moveto [Quantidade              ] Check TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll 

{Ask} {Answer}
Moveto [Operacao                ] Example "a"
Moveto [Operacao_Descricao      ] Example "aa" 
Moveto [Codigo da Empresa       ] Example "b"
Moveto [Numero do Documento     ] Example "c"
Moveto [Serie do Documento      ] Example "d"
Moveto [Data de Emissao         ] Example "e"
Moveto [Codigo do Representante ] Example "g"
Moveto [Nome Fantasia Represent ] Example "h"
Moveto [Codigo                  ] Example "i"
Moveto [Nome Fantasia EmitDest  ] Example "j"
Moveto [Razao Social            ] Example "k"                                                                                        
Moveto [Numero da OF            ] Example "l"
Moveto [Descricao Gerencia      ] Example "n"
Moveto [Condicao de Pagamento   ] Example "o"
Moveto [Descricao CondPagto     ] Example "p"
Moveto [Descricao da Destinacao ] Example "q"
Moveto [Data de Acerto          ] Example "r"
Moveto [Forma de Pagamento      ] Example "s"
Moveto [Tipo do Documento       ] Example "t"
Moveto [Preco Total             ] Example "u"
Moveto [Comissao                ] Example "x"
Moveto [Aliquota Comissao       ] Example "z"
Moveto [Media_NDias             ] Example "w" 
Moveto [Quantidade              ] Example "m"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Operacao                ] Example "a"
Moveto [Operacao_Descricao      ] Example "aa" 
Moveto [Codigo da Empresa       ] Example "b"
Moveto [Numero do Documento     ] Example "c"
Moveto [Serie do Documento      ] Example "d"
Moveto [Data de Emissao         ] Example "e"
Moveto [Codigo do Representante ] Example "g"
Moveto [Nome Fantasia Represent ] Example "h"
Moveto [Codigo                  ] Example "i"
Moveto [Nome Fantasia EmitDest  ] Example "j"
Moveto [Razao Social            ] Example "k"
Moveto [Numero da OF            ] Example "l"
Moveto [Descricao Gerencia      ] Example "n"
Moveto [Condicao de Pagamento   ] Example "o"
Moveto [Descricao CondPagto     ] Example "p"
Moveto [Descricao da Destinacao ] Example "q"
Moveto [Data de Acerto          ] Example "r"
Moveto [Forma de Pagamento      ] Example "s"
Moveto [Tipo do Documento       ] Example "t"
Moveto [Preco Total             ] Example "u"
Moveto [Comissao                ] Example "x"
Moveto [Aliquota Comissao       ] Example "z"
Moveto [Media_NDias             ] Example "w"
Moveto [Quantidade              ] Example "m"
Do_It!
ClearAll  

{Ask} {\\Sistemas\\Cadastro\\Empresas}
Moveto [Codigo da Empresa       ] Example "a"
Moveto [Nome Fantasia Empresa   ] Example "b"
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa       ] Example "a"
Moveto [Nome Fantasia Empresa   ] Typein "Changeto _b"
Do_It!
ClearAll 

EndProc ;Agrupa_Dados()

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc SelecionaVales()
ClearAll

If IsTable("\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont")
  Then
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Check TypeIn "~VSDGREPRESEN.."
        Moveto [Nome Fantasia Represent] Check
        Moveto [Descricao Gerencia     ] Check
        Moveto [Codigo da Gerencia     ] Check
        If Not IsBlank(VSDGGERENCIA)
           Then TypeIn "~VSDGGERENCIA"
        EndIf
        Moveto [Codigo_Pessoa         ] Example "codemit"
        {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
        Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA.."
        Moveto [Tipo de Operacao      ] TypeIn "05 or 06 or 07 or 13 or 14"
        Moveto [Data                  ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Moveto [Codigo do EmitDest    ] Example "codemit"
        Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
        Do_It!
        ClearAll                                                                         

        Coedit Tabela,"Answer"
        Scan For Not IsBlank([Codigo da Empresa])
          Moveto Tabela
          End Down
          [Operacao                 ]="Valores"
          [Operacao_Descricao       ]="03-Valores"
          [Codigo da Empresa        ]=[Answer->Codigo da Empresa        ]
          [Nome Fantasia Empresa    ]=[Answer->Nome Fantasia Empresa    ]
          [Data de Emissao          ]=[Answer->Data                     ]
          [Tipo do Documento        ]=[Answer->Tipo do Documento        ]
          [Numero do Documento      ]=[Answer->Numero do Documento      ]
          [Codigo do Representante  ]=[Answer->Codigo do Representante  ]
          [Nome Fantasia Represent  ]=[Answer->Nome Fantasia Represent  ]
          ;[Codigo da Gerencia       ]=[Answer->Codigo da Gerencia       ]
          [Descricao Gerencia       ]=[Answer->Descricao Gerencia       ]
          [Codigo                   ]=[Answer->Codigo do EmitDest       ]
          [Razao Social             ]=[Answer->Razao Social             ]
          [Descricao da Destinacao  ]=LTrim([Answer->Descricao Plano_Conta])
          ;[Observacoes              ]=[Answer->Descricao do Historico   ]
          [Preco Total              ]=[Answer->Valor                    ]
          [Comissao                 ]=[Answer->Valor]*-1
          [Numero da OF             ]=[Answer->Numero do Lancamento     ]
          
          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf
EndProc ;SelecionaVales()

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc SelecionaDuplic()
ClearAll               

If IsTable("\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic")
   Then ;--- A Receber Representante -------------------------------------------
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante ] Check TypeIn "~VSDGREPRESEN.."
        Moveto [Nome Fantasia Represent ] Check
        Moveto [Descricao Gerencia      ] Check
        Moveto [Codigo da Gerencia      ] Check 
        If Not IsBlank(VSDGGERENCIA)
           Then TypeIn "~VSDGGERENCIA"
        EndIf       
        Moveto [Codigo_Pessoa           ] Example "codemit"
        
        {Ask} TypeIn "\\Sistemas\\Ctarec\\"+Dir_Trab+"Duplic" Enter Check
        Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo do Destinatario] Example "codemit"
        Moveto [Data de Vencimento    ] TypeIn "<=~VSDGDDTACERTO"
        Moveto [Saldo do Documento    ] TypeIn ">0.01"
        Do_It!
        ClearAll
        
        Coedit Tabela,"Answer"
        Scan For Not IsBlank([Codigo da Empresa])
          Moveto Tabela
          End Down                     
          [Operacao                 ]="A ReceberR"
          [Operacao_Descricao       ]="04-A Receber/Representante"
          [Codigo da Empresa        ]=[Answer->Codigo da Empresa        ]
          [Nome Fantasia Empresa    ]=[Answer->Nome Fantasia Empresa    ]
          [Data de Emissao          ]=[Answer->Data de Vencimento       ]
          [Tipo do Documento        ]=[Answer->Tipo do Documento        ]
          [Numero do Documento      ]=[Answer->Numero do Documento      ]
          [Codigo do Representante  ]=[Answer->Codigo do Representante  ]
          [Nome Fantasia Represent  ]=[Answer->Nome Fantasia Represent  ]
          ;[Codigo da Gerencia       ]=[Answer->Codigo da Gerencia       ]
          [Descricao Gerencia       ]=[Answer->Descricao Gerencia       ]
          [Codigo                   ]=[Answer->Codigo do Destinatario   ]
          [Razao Social             ]=[Answer->Razao Social             ]
          [Descricao da Destinacao  ]=LTrim([Answer->Descricao Plano_Conta])
          ;[Observacoes              ]="Emissao "+Format("D10",[Answer->Data de Emissao])+" * "+[Answer->Observacoes ]+" "+msgsaldo
          [Preco Total              ]=[Answer->Saldo do Documento]
          [Comissao                 ]=[Answer->Saldo do Documento]*-1
          [Numero da OF             ]=[Answer->Numero do Lancamento]   
          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf

EndProc ;SelecionaDuplic()

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc SelecionaTitulos()
ClearAll

If IsTable("\\Sistemas\\Ctapag\\"+Dir_Trab+"Titulos")
   Then {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Check TypeIn "~VSDGREPRESEN.."
        Moveto [Nome Fantasia Represent] Check
        Moveto [Descricao Gerencia     ] Check
        Moveto [Codigo_Pessoa          ] Example "codemit"
        Moveto [Codigo da Gerencia     ] Check
        If Not IsBlank(VSDGGERENCIA)
           Then TypeIn "~VSDGGERENCIA"
        EndIf
        {Ask} TypeIn "\\Sistemas\\Ctapag\\"+Dir_Trab+"Titulos" Enter Check
        Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo do Emitente    ] Example "codemit"
        Moveto [Data de Vencimento    ] TypeIn "<=~VSDGDDTACERTO"
        Moveto [Saldo do Documento    ] TypeIn ">0.01"
        Do_It!
        ClearAll

        Coedit Tabela,"Answer"
        Scan For Not IsBlank([Codigo da Empresa])
          Moveto Tabela
          End Down
          [Operacao                 ]="A PagarR"
          [Operacao_Descricao       ]="07-A Pagar/Representante"
          [Codigo da Empresa        ]=[Answer->Codigo da Empresa        ]
          [Nome Fantasia Empresa    ]=[Answer->Nome Fantasia Empresa    ]
          [Data de Emissao          ]=[Answer->Data de Emissao          ]
          [Tipo do Documento        ]=[Answer->Tipo do Documento        ]
          [Numero do Documento      ]=[Answer->Numero do Documento      ]
          [Codigo do Representante  ]=[Answer->Codigo do Representante  ]
          [Nome Fantasia Represent  ]=[Answer->Nome Fantasia Represent  ]
          [Descricao Gerencia       ]=[Answer->Descricao Gerencia       ]
          ;[Codigo da Gerencia       ]=[Answer->Codigo da Gerencia       ]
          [Codigo                   ]=[Answer->Codigo do Emitente       ]
          [Razao Social             ]=[Answer->Razao Social             ]                                         
          [Descricao da Destinacao  ]=LTrim([Answer->Descricao Plano_Conta])
          ;[Observacoes              ]="Vencto "+Format("D13",[Answer->Data de Vencimento])+" * "+[Answer->Observacoes]
          [Preco Total              ]=[Answer->Saldo do Documento]
          [Comissao                 ]=[Answer->Saldo do Documento]
          [Numero da OF             ]=[Answer->Numero do Lancamento]   
          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf

EndProc  ;SelecionaTitulos()

;*******************************************************************************
;* Rotina para processar Db temporaria                                         *
;*******************************************************************************
Proc Processa()
;****** Taxa Administrativa sobre Devolucoes *******

If Not VSDGTAXAD>0
   Then Return
EndIf

{Ask} TypeIn Tabela Enter
Moveto [Operacao               ] Check TypeIn "Devolucoes"
Moveto [Operacao_Descricao     ] Check
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo do Representante] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Nome Fantasia Represent] Check
Moveto [Preco Total            ] TypeIn "Calc Sum as \"Preco Total\""
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "a"
Moveto [Codigo do Representante] Example "d"
Moveto [Nome Fantasia Empresa  ] Example "ne"
Moveto [Nome Fantasia Represent] Example "nr"
Moveto [Preco Total            ] Example "h"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Operacao               ] TypeIn "\"Administr.\""
Moveto [Codigo da Empresa      ] Example "a"
Moveto [Codigo do Representante] Example "d"
Moveto [Nome Fantasia Empresa  ] Example "ne"
Moveto [Nome Fantasia Represent] Example "nr"
Moveto [Nome Fantasia EmitDest ] TypeIn "\"SOBRE DEVOLUCOES\""
Moveto [Razao Social           ] TypeIn "\"SOBRE DEVOLUCOES\""
Moveto [Aliquota Comissao      ] TypeIn "~VSDGTAXAD"
Moveto [Comissao               ] TypeIn "("Example "h" TypeIn "*~VSDGTAXAD)/100"
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Operacao               ] TypeIn "Not \"Administr.\""
Moveto [Aliquota Comissao      ] TypeIn "Changeto Blank"
Do_It!
ClearAll

EndProc   ;  (Processa)

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01  RELACAO DE NOTAS")
ModeloRelatoriosAdd("02  RELACAO DE NOTAS COM ITENS")
ModeloRelatoriosAdd("03  SINTETICO/REPRESENTANTE")
ModeloRelatoriosAdd("04  SINTETICO/%COMISSAO")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista()

;*******************************************************************************
;* Cabecalho                                                                   *
;*******************************************************************************
Proc Cabecalho()

NPAG = NPAG + 1
If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf

Print File ARQIMP CI_15CPP+"\n"
Print File ARQIMP CI_6LPP +"\n"

Print File ARQIMP Spaces(2)+"-----------------------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP Spaces(2)+Format("W30",NOMEMPRESA)+Spaces(63)+"EmissÆo: "+Format("D13",Today())+"-"+StrVal(Time())+"  Pag: "+Format("W3,AR",NPAG)+"\n"
Print File ARQIMP Spaces(2)+"-----------------------------------------------------------------------------------------------------------------------------------"+"\n\n"
Print File ARQIMP Spaces(2)+Format("W132,AC","Apuracao de Comissao de "+StrVal(VSDGDTINI)+" at‚ "+StrVal(VSDGDTFIM))+"\n\n"
Print File ARQIMP Spaces(2)+"   Data    Documento   Lancto Cliente                        Quantidade   Valor Total   %       Valor Condi‡„o Pagamento   FP NDias"+"\n"
Print File ARQIMP Spaces(2)+"---------- ----------- ------ ---------------------------- ------------ ------------- ----- --------- -------------------- -- -----"+"\n"
Print File ARQIMP Spaces(2)+"      Empresa: "+[Codigo da Empresa]+" "+[Nome Fantasia Empresa]+"\n\n"
Print File ARQIMP Spaces(2)+"Representante: "+[Codigo do Representante]+" "+[Nome Fantasia Represent]+"\n\n"
Print File ARQIMP Spaces(2)+[Operacao_Descricao]+"\n"

LINHA = 12 

EndProc ;Cabecalho()

;*******************************************************************************
;* Corpo                                                                   *
;*******************************************************************************
Proc Imprimir()

Sort Tabela On "Codigo da Empresa","Codigo do Representante","Operacao_Descricao"
CleaRall

If CheckTG_COMISSAO[1]
  Then Tabela_Comissao = Cria_Tabela("","Codigo da Empresa(A4),"+
                                        "Nome Fantasia Empresa(A20),"+
                                        "Codigo do Representante(A4),"+
                                        "Nome Fantasia Represent(A20),"+
                                        "Data(D),"+
                                        "Valor da Comissao($)")
       View "\\Sistemas\\CtaCor\\PlContas"
       View Tabela_Comissao
       Coedit Tabela                                 
  Else View "\\Sistemas\\CtaCor\\PlContas" 
       View Tabela    
EndIf
TOTAL_LINHAS = 61
NPAG = 0
Cabecalho()
Totalizador("LIMPAR_EMPRESA") 
Totalizador("LIMPAR_REPRESENTANTE")
Totalizador("LIMPAR_OPERACAO")

FEZ_RODAPE = False
OPERACAO = ""
EMPRESA  = ""
AUX_REP  = ""
Scan
  Barra(NRecords(Tabela), RecNo())
  Aguarde("Aguarde, imprimindo registros "+BARRA_STRING)

  If EMPRESA<>[Codigo da Empresa] 
     Then If EMPRESA<>""
             Then FEZ_RODAPE = True
                  Rodape("OPERACAO")          
                  Rodape("REPRESENTANTE")
                  Rodape("EMPRESA")
                  Cabecalho()
          EndIf
          EMPRESA =[Codigo da Empresa]
  EndIf

  If AUX_REP<>[Codigo do Representante] 
     Then If AUX_REP<>"" And Not FEZ_RODAPE
             Then FEZ_RODAPE=True
                  Rodape("OPERACAO")
                  OPERACAO=[Operacao_Descricao]     
                  Rodape("REPRESENTANTE")
                  Cabecalho()
          EndIf
          AUX_REP       = [Codigo do Representante]
          REPRESENTANTE = [Codigo do Representante]+" "+[Nome Fantasia Represent]
  EndIf

  If OPERACAO<>[Operacao_Descricao] 
     Then If OPERACAO<>"" And Not FEZ_RODAPE
             Then FEZ_RODAPE=True
                  Rodape("OPERACAO")
                  Print File ARQIMP Spaces(2)+[Operacao_Descricao]+"\n"        
          EndIf
          OPERACAO = [Operacao_Descricao]
  EndIf
  If FEZ_RODAPE Then FEZ_RODAPE = False EndIf

  Print File ARQIMP Spaces(2)+Format("D13",[Data de Emissao])
  Print File ARQIMP Spaces(1)+Format("W11",[Tipo do Documento]+" "+[Numero do Documento])
  Print File ARQIMP Spaces(1)+Format("W6",[Numero da OF])
  Print File ARQIMP Spaces(1)+Format("W28",[Razao Social])
  Print File ARQIMP Spaces(1)+Format("W12.3",[Quantidade])
  Print File ARQIMP Spaces(1)+Format("W13.2,EIC",[Preco Total])
  Print File ARQIMP Spaces(1)+Format("W5,AR",[Aliquota Comissao])
  Print File ARQIMP Spaces(1)+Format("W9.2,EIC",[Comissao])
  Print File ARQIMP Spaces(1)+Format("W20",[Descricao CondPagto])
  Print File ARQIMP Spaces(1)+Format("W2",[Forma de Pagamento])
  Print File ARQIMP Spaces(1)+Format("W5",[Media_NDias])+"\n"
  LINHA = LINHA + 1
  Conta_Linhas(LINHA)
  
  Totalizador("APURACAO")
  Totalizador("EMPRESA")
  Totalizador("REPRESENTANTE")
  Totalizador("OPERACAO")  
EndScan
Rodape("OPERACAO")
Rodape("REPRESENTANTE")
;Rodape("EMPRESA")

If CheckTG_COMISSAO[1]
   Then Do_it!
        ClearAll
EndIf        

EndProc ;Imprimir()

;*******************************************************************************
;* Rodape                                                                      *
;*******************************************************************************
Proc Rodape(PARAM)

Switch
  Case PARAM = "EMPRESA" :
       ;---- Empresa -------------------------------------- 
       TOT_QTD  = EMPRESA_TOT_QTD
       TOT_PRT  = EMPRESA_TOT_PRT 
       TOT_COM  = EMPRESA_TOT_COM 
       MED_TOT  = EMPRESA_MED_TOT / EMPRESA_MED_CONT 
  
  Case PARAM = "REPRESENTANTE" :      
       ;---- Representante --------------------------------
       TOT_QTD  = REP_TOT_QTD 
       TOT_PRT  = REP_TOT_PRT 
       TOT_COM  = REP_TOT_COM 
       MED_TOT  = REP_MED_TOT / REP_MED_CONT 
  
  Case PARAM = "OPERACAO" :     
       ;---- Operacao -------------------------------------
       TOT_QTD  = OPERACAO_TOT_QTD 
       TOT_PRT  = OPERACAO_TOT_PRT 
       TOT_COM  = OPERACAO_TOT_COM 
       MED_TOT  = OPERACAO_MED_TOT / OPERACAO_MED_CONT
EndSwitch  

Switch
  Case PARAM = "EMPRESA"       : TOTAL = "por Empresa"
  Case PARAM = "REPRESENTANTE" : TOTAL = "por Representante"
  Case PARAM = "OPERACAO"      : TOTAL = Rtrim(OPERACAO) 
EndSwitch  

;---- Imprimindo Totalizador apenas da OPERACAO -------------------------------- 
If PARAM = "OPERACAO"
   Then Print File ARQIMP Spaces(12)
        Print File ARQIMP Spaces(12)
        Print File ARQIMP Spaces(7)
        Print File ARQIMP Format("W29,AR","Total "+TOTAL+":")
        Print File ARQIMP Spaces(1)+Format("W12.3",TOT_QTD)
        Print File ARQIMP Spaces(1)+Format("W13.2,EIC",TOT_PRT)
        Print File ARQIMP Spaces(6)
        Print File ARQIMP Spaces(1)+Format("W9.2,EIC",TOT_COM)  
        Print File ARQIMP Spaces(21)
        Print File ARQIMP Spaces(3)
        Print File ARQIMP Spaces(1)+Format("W5",MED_TOT)+"\n"
        Print File ARQIMP Spaces(2)+"-----------------------------------------------------------------------------------------------------------------------------------"+"\n\n"
        LINHA = LINHA + 3
        Conta_Linhas(LINHA)
EndIf    

If PARAM = "REPRESENTANTE"
   Then ;---- Acerto Representante ---------------------------------------------
        If Not APURACAO_PARA_ACERTO
           Then Print File ARQIMP Spaces(12)
                Print File ARQIMP Spaces(12)
                Print File ARQIMP Spaces(7)
                Print File ARQIMP Spaces(29)
                Print File ARQIMP Spaces(13)
                Print File ARQIMP Spaces(14)
                Print File ARQIMP Spaces(6)
                Print File ARQIMP Spaces(2)+Format("W37","Acerto Representante... "+Format("W13.3,EIC",TOT_COM))+"\f"
           Else Apuracao_Valores()
                Print File ARQIMP "\f"
        EndIf
        If CheckTG_COMISSAO[1]
           Then If AUX_COM_LIQ>0
                   Then Adicona_Comissao_Tabela()
                   Else If VSDGREPRESEN<>""
                           Then Mensagem("N„o h  comiss„o para este representante!")
                        EndIf   
                EndIf
        EndIf      
EndIf          

Switch
  Case PARAM = "EMPRESA"       : Totalizador("LIMPAR_EMPRESA")
  Case PARAM = "REPRESENTANTE" : Totalizador("LIMPAR_REPRESENTANTE")
  Case PARAM = "OPERACAO"      : Totalizador("LIMPAR_OPERACAO")
                                 ;Print File ARQIMP "\f" 
EndSwitch  

EndProc ;Rodape()

;*******************************************************************************
;* Apura‡Æo de Valores                                                         *
;*******************************************************************************
Proc Apuracao_Valores()                

;"Operacao             Quantidade           Valor                   Apuracao de Comissao"
;"(V) Vendas        :  1234567890    123456789012(=)                (A) Vendas                        : 123456789012(=)"
;"(D) Devolu‡äes    :  1234567890    123456789012(-)                (E) Devolu‡äes                    : 123456789012(-)"
;"(L) Liquido (V-D) :  1234567890    123456789012(=)                (T) Liquido (A-E)                 : 123456789012(=)"
;"                                                                  (P) A Pagar                       : 123456789012(+)"
;"                                                                  (R) A Receber                     : 123456789012(-)"
;"                                                                  (V) Vales                         : 123456789012(-)"
;"                                                                  Liquido a Receber (T)+(R)-(P)-(V) : 123456789012(=)"

DEVOL_TOT_PRT = DEVOL_TOT_PRT *-1
DEVOL_TOT_QTD = DEVOL_TOT_QTD *-1
DEVOL_TOT_COM = DEVOL_TOT_COM *-1

AUX_TOT_LIQ  =  VENDA_TOT_PRT - DEVOL_TOT_PRT
AUX_QTD_LIQ  =  VENDA_TOT_QTD - DEVOL_TOT_QTD
AUX_COM_LIQ  =  VENDA_TOT_COM - DEVOL_TOT_COM ;(T) 
AUX_TOTAL    =  AUX_COM_LIQ + APAG_TOTAL + AVAL_TOTAL - AREC_TOTAL

;If DEVOL_TOT_QTD=0 Then DEVOL_TOT_QTD = BlankNum() EndIf
;If DEVOL_TOT_PRT=0 Then DEVOL_TOT_PRT = BlankNum() EndIf

LINHA = LINHA + 8
Conta_Linhas(LINHA)

Print File ARQIMP CI_INEG+Spaces(2)+"Operacao             Quantidade           Valor                   Apuracao de Comissao"+CI_FNEG+"\n"
Print File ARQIMP Spaces(2) +"(V) Vendas        :  "+Format("W10.3",VENDA_TOT_QTD)+Spaces(4)+Format("W12.2,EIC",VENDA_TOT_PRT)+"(=)"+
                  Spaces(16)+"(A) Vendas                        : "+Format("W12.2,EIC",VENDA_TOT_COM)+"(=)"+"\n"
Print File ARQIMP Spaces(2) +"(D) Devolu‡äes    :  "+Format("W10.3",DEVOL_TOT_QTD)+Spaces(4)+Format("W12.2,EIC",DEVOL_TOT_PRT)+"(-)"+
                  Spaces(16)+"(E) Devolu‡äes                    : "+Format("W12.2,EIC",DEVOL_TOT_COM)+"(-)"+"\n"
Print File ARQIMP Spaces(2) +"(L) Liquido (V-D) :  "+Format("W10.3",AUX_QTD_LIQ)+Spaces(4)+Format("W12.2,EIC",AUX_TOT_LIQ)+"(=)"+
                  Spaces(16)+"(T) Liquido (A-E)                 : "+Format("W12.2,EIC",AUX_COM_LIQ)+"(=)"+"\n"
Print File ARQIMP Spaces(68)+"(P) A Pagar                       : "+Format("W12.2,EIC",APAG_TOTAL)+"(+)"+"\n"
Print File ARQIMP Spaces(68)+"(R) A Receber                     : "+Format("W12.2,EIC",AREC_TOTAL)+"(-)"+"\n"
Print File ARQIMP Spaces(68)+"(V) Vales                         : "+Format("W12.2,EIC",AVAL_TOTAL)+"(-)"+"\n"
Print File ARQIMP Spaces(68)+CI_INEG+"Liquido a Receber (T)+(P)-(R)-(V) : "+Format("W12.2,EIC",AUX_TOTAL)+"(=)"+CI_FNEG+"\n"      

EndProc ;Apuracao_Valores()

;*******************************************************************************
;* Corpo                                                                       *
;*******************************************************************************
Proc Conta_Linhas(PARAM)

If PARAM>=TOTAL_LINHAS
   Then Print File ARQIMP "\f"
        Cabecalho()     
EndIf

EndProc ;Conta_Linhas()

;*******************************************************************************
;* Corpo                                                                       *
;*******************************************************************************
Proc Totalizador(PARAM)

Switch
  Case PARAM = "LIMPAR_EMPRESA" :
       ;---- Empresa -------------------------------------- 
       EMPRESA_TOT_QTD = 0
       EMPRESA_TOT_PRT = 0
       EMPRESA_TOT_COM = 0
       EMPRESA_MED_CONT= 0
       EMPRESA_MED_TOT = 0
  
  Case PARAM = "LIMPAR_REPRESENTANTE" :      
       ;---- Representante --------------------------------
       REP_TOT_QTD = 0
       REP_TOT_PRT = 0
       REP_TOT_COM = 0
       REP_MED_CONT= 0
       REP_MED_TOT = 0
       
       VENDA_TOT_QTD = 0
       DEVOL_TOT_QTD = 0

       VENDA_TOT_PRT = 0
       DEVOL_TOT_PRT = 0
       
       VENDA_TOT_COM = 0
       DEVOL_TOT_COM = 0
       
       APAG_TOTAL = 0
       AREC_TOTAL = 0
       AVAL_TOTAL = 0
  
  Case PARAM = "LIMPAR_OPERACAO" :     
       ;---- Operacao -------------------------------------
       OPERACAO_TOT_QTD = 0
       OPERACAO_TOT_PRT = 0
       OPERACAO_TOT_COM = 0
       OPERACAO_MED_CONT= 0
       OPERACAO_MED_TOT = 0
        
  Case PARAM = "EMPRESA" :
       ;---- Empresa -------------------------------------- 
       EMPRESA_TOT_QTD  = EMPRESA_TOT_QTD  + [Quantidade]
       EMPRESA_TOT_PRT  = EMPRESA_TOT_PRT  + [Preco Total]
       EMPRESA_TOT_COM  = EMPRESA_TOT_COM  + [Comissao]
       If [Media_NDias]<>BlankNum()
          Then EMPRESA_MED_CONT = EMPRESA_MED_CONT + 1
       EndIf
       EMPRESA_MED_TOT  = EMPRESA_MED_TOT  + [Media_NDias]
        
  Case PARAM = "REPRESENTANTE" :      
       ;---- Representante --------------------------------
       REP_TOT_QTD  = REP_TOT_QTD  + [Quantidade]
       REP_TOT_PRT  = REP_TOT_PRT  + [Preco Total]
       REP_TOT_COM  = REP_TOT_COM  + [Comissao]
       If [Media_NDias]<>BlankNum()
          Then REP_MED_CONT = REP_MED_CONT + 1
       EndIf
       REP_MED_TOT  = REP_MED_TOT  + [Media_NDias]
        
  Case PARAM = "OPERACAO" :      
       ;---- Operacao -------------------------------------
       OPERACAO_TOT_QTD  = OPERACAO_TOT_QTD  + [Quantidade]
       OPERACAO_TOT_PRT  = OPERACAO_TOT_PRT  + [Preco Total]
       OPERACAO_TOT_COM  = OPERACAO_TOT_COM  + [Comissao]
       If [Media_NDias]<>BlankNum()
          Then OPERACAO_MED_CONT = OPERACAO_MED_CONT + 1
       EndIf   
       OPERACAO_MED_TOT  = OPERACAO_MED_TOT  + [Media_NDias]
       
  Case PARAM = "APURACAO" :
       If Not APURACAO_PARA_ACERTO
          Then Return
       EndIf
       
       Switch
         Case Search("VENDAS",Upper([Operacao_Descricao]))>0 : VENDA_TOT_QTD = VENDA_TOT_QTD + [Quantidade ]
                                                               VENDA_TOT_PRT = VENDA_TOT_PRT + [Preco Total]
                                                               VENDA_TOT_COM = VENDA_TOT_COM + [Comissao   ]
         Case Search("DEVOL",Upper([Operacao_Descricao]))>0  : DEVOL_TOT_QTD = DEVOL_TOT_QTD + [Quantidade ]
                                                               DEVOL_TOT_PRT = DEVOL_TOT_PRT + [Preco Total]
                                                               DEVOL_TOT_COM = DEVOL_TOT_COM + [Comissao   ]
         Case Search("REC",Upper([Operacao_Descricao]))>0    : AREC_TOTAL    = AREC_TOTAL    + [Preco Total]
         Case Search("PAG",Upper([Operacao_Descricao]))>0    : APAG_TOTAL    = APAG_TOTAL    + [Preco Total]
         Case Search("VAL",Upper([Operacao_Descricao]))>0    : AVAL_TOTAL    = AVAL_TOTAL    + [Preco Total]                                                      
       EndSwitch                
EndSwitch

EndProc ;Totalizador()

;*******************************************************************************
;* Rotina para adicionar valores de comissionamento dos representantes         *
;*******************************************************************************
Proc Adicona_Comissao_Tabela()
Private TAB_ANT                

TAB_ANT = Table()

Moveto Tabela_Comissao
End Down 
[Codigo da Empresa      ] = EMPRESA 
;[Nome Fantasia Empresa  ] = 
[Codigo do Representante] = AUX_REP
;[Nome Fantasia Represent] =
[Valor da Comissao      ] = AUX_COM_LIQ
UnLockRecord

Moveto TAB_ANT
Release Vars TAB_ANT

EndProc ;Adicona_Comissao_Tabela()

;*******************************************************************************
;* 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_REPRESEN"      : Campo="TG_EMPRESA"
            Case Campo="TG_GERENCIA"      : Campo="TG_REPRESEN"
            Case Campo="TG_MARCA"         : Campo="TG_GERENCIA"
            Case Campo="TG_TAXAD"         : Campo="TG_MARCA"
            Case Campo="TG_DTINI"         : Campo="TG_TAXAD"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPCAO"         : Campo="TG_DTFIM"
            Case Campo="TG_DTACERTO"      : Campo="TG_OPCAO"
            Case Campo="TG_COMISSAO"      : Campo="TG_DTACERTO"
            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_REPRESEN"
                    Case Campo="TG_REPRESEN"       :Campo="TG_GERENCIA"
                    Case Campo="TG_GERENCIA"       :Campo="TG_MARCA"
                    Case Campo="TG_MARCA"          :Campo="TG_TAXAD"
                    Case Campo="TG_TAXAD"          :Campo="TG_DTINI"
                    Case Campo="TG_DTINI"          :Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"          :Campo="TG_OPCAO"
                    Case Campo="TG_OPCAO"   : 
                         VSDGOPCAO = ControlValue("TG_OPCAO")
                         If IsBlank(VSDGOPCAO) Then VSDGOPCAO = "1" EndIf
                         Switch
                           Case VSDGOPCAO = "1" : VSDGNOMOPCAO = "SEM RATEIO"
                           Case VSDGOPCAO = "2" : VSDGNOMOPCAO = "COM RATEIO"
                           Case VSDGOPCAO = "3" : VSDGNOMOPCAO = "APENAS RATEIO"
                         EndSwitch
                         VSDGCODMODELO        = "01"
                         VSDGNOMOPRELANALSINT = "RELACAO DE NOTAS"
                         Campo="TG_DTACERTO" 
                    Case Campo="TG_DTACERTO"   : Campo="TG_COMISSAO" 
                         VSDGDDTACERTO = ControlValue("TG_DTACERTO")
                    Case Campo="TG_COMISSAO"   : Campo="YES"      
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_OPCAO"         :
     MSG_CAMPO="1=SEM RATEIO  2=COM RATEIO  3=APENAS RATEIO"
  Case Campo="TG_DTFIM"         :
     MSG_CAMPO="Informe a Data Final"
  Case Campo="TG_COMISSAO":
       MSG_CAMPO="Defina a op‡„o"
       TECLA="Barra de Espa‡o=Marca/Desmarca  "
  Case Campo="TG_DTACERTO"         :
     MSG_CAMPO="Informe a Data de Acerto"               
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()
SYS_VALOR()

APURACAO_PARA_ACERTO = True

VSDGEMPRESA          = ""
VSDGREPRESEN         = ""
VSDGCSITENS          = ""
VSDGNOMCSITENS       = ""
VSDGCODMODELO        = ""
VSDGMODELO           = ""
VSDGOPCAO            = ""
VSDGNOMOPCAO         = ""
VSDGTAXAD            = BlankNum()
VSDGDTINI            = BlankDate()
VSDGDTFIM            = BlankDate()
VSDGDDTACERTO        = BlankDate()
VSDGFINAL            = "3"
VSDGOPCAO            = "3"

Array TG_COMISSAO[1]
TG_COMISSAO[1]="Gerar comiss„o liquida a pagar"

Array CheckTG_COMISSAO[ArraySize(TG_COMISSAO)]
CheckTG_COMISSAO[1]=False

ModeloRelatoriosCarregaLista()   

While True

  ShowDialog "Acerto de Comiss„o p/ Repres.- % Item/Nota Fiscal" 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 17 Width 76

    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 "Representante"  For "TG_REPRESEN"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN" To VSDGREPRESEN
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMREPR"  To VSDGNOMREPR

    Label  @ 04,00 "Gerˆncia " For "TG_GERENCIA"
    Accept @ 05,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_GERENCIA" To VSDGGERENCIA
    Accept @ 05,09 Width 25 "A10"  Picture "!*!" Tag "TG_DESCGERENCIA" To VSDGDESCGERENCIA
    
    Label  @ 06,00 "Marca"  For "TG_MARCA"
    Accept @ 07,02 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 07,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA  
    
    Label  @ 08,08 "% Devoluc„o"  For "TG_TAXAD"
    Accept @ 09,09 Width 12 "N" Tag "TG_TAXAD" To VSDGTAXAD
                         
    Label  @ 10,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 11,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 11,16 "at‚" For "TG_DTFIM"
    Accept @ 11,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM  

    Label  @ 00,35 "Rateio de Comiss„o" For "TG_OPCAO"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2,3" Tag "TG_OPCAO" To VSDGOPCAO
    Accept @ 01,44 Width 29 "A34" Picture "!*!" Tag "TG_NOMOPCAO" To VSDGNOMOPCAO
    
    Label  @ 04,38  "Data de Acerto"  For "TG_DTACERTO"
    Accept @ 05,39 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTACERTO" To VSDGDDTACERTO    
    
    CheckBoxes @ 07,35 Height 1 Width 35 Tag "TG_COMISSAO"
    TG_COMISSAO[1] to CheckTG_COMISSAO[1]        

    Pushbutton @ 13,24 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 13,38 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Usuario_Vendedor() Then Loop EndIf  
  
  If VSDGDTFIM=BlankDate()
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf   
  
  If VSDGDDTACERTO=BlankDate() And CheckTG_COMISSAO[1]
     Then Mensagem("Informe a Data de Acerto!")
          Loop
  EndIf   
  
  VSDGCODMODELO        = "01"
  VSDGNOMOPRELANALSINT = "RELACAO DE NOTAS"
    
  Switch
    Case VSDGOPCAO = "1" : INICIO_RATEIO = 1
                           FIM_RATEIO    = 1 
    Case VSDGOPCAO = "2" : INICIO_RATEIO = 1
                           FIM_RATEIO    = 2
    Case VSDGOPCAO = "3" : INICIO_RATEIO = 2
                           FIM_RATEIO    = 2
  EndSwitch     

  DISPOSITIVO()
  If OK="" Then Loop EndIf                           

  AGUARDE("Aguarde, Gerando o Relat¢rio")
  Tabela=Cria_Temp(PrivDir())

  ;Tabela "Rm_0066" tem resports totalizando a comissÆo pelo NOTAC e nÆo a comissÆo pelos itens
  Empty "\\Base\\Sistemas\\Vendas\\RM_0068"
  Copy  "\\Base\\Sistemas\\Vendas\\RM_0068" Tabela
  
  Switch
    Case SYS_CODIGO_CLIENTE="0051" : PLCONTAS="2.1.01.05.009"
    Case SYS_CODIGO_CLIENTE="0222" : 
         PLCONTAS ="2.1.09.02"
         PLCONTAS2="2.4.01.01.002"
         PLCONTAS3="2.4.01.01.004"
    Case SYS_CODIGO_CLIENTE="0200" : PLCONTAS="2.1.09.02"
    Case SYS_CODIGO_CLIENTE="0231" : PLCONTAS="2.1.01.14"
    Case SYS_CODIGO_CLIENTE="0262" : PLCONTAS="2.1.09.02"
    OtherWise                      : PLCONTAS="NAO FAZ NADA"
  EndSwitch
  
  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    Seleciona()
    SelecionaVales()
    SelecionaDuplic()  
    SelecionaTitulos()           
  EndWhile                                  

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela
          Loop
  EndIf
  Agrupa_Dados()
  Processa()
  
  ARQIMP = PrivDir()+"RM_0068.txt"
  If IsFile(ARQIMP)
      Then Deleta_Arquivo(ARQIMP)
  EndIf
  
  If APURACAO_PARA_ACERTO
     Then Imprimir()
          If IsFile(ARQIMP)
             Then ImpriArq(ARQIMP)
                  Deleta_Arquivo(ARQIMP)
          EndIf          
          If CheckTG_COMISSAO[1]
             Then ConfGeral("Deseja gerar a comiss„o liquida a pagar para cada representante?")
                  If Ok="S"
                     Then RM_0068=True
                          Play "VC_GC"
                          Release Vars RM_0068
                          If IsAssigned(GEROU_CTAPAG) And GEROU_CTAPAG 
                             Then If IsAssigned(NUMERO_COMISSOES) And NUMERO_COMISSOES=1
                                     Then Mensagem("Comiss„o a pagar gerada no CONTAS A PAGAR no lan‡amento "+LANCTO_COMISSAO+"!")
                                     Else Mensagem("Comiss”es a pagar geradas no CONTAS A PAGAR!") 
                                  EndIf   
                          EndIf   
                  EndIf   
          EndIf
     Else ;Modelo Anterior onde nÆo ‚ exibido o acerto no final de cada representante
          CopyReport "\\Base\\Sistemas\\Vendas\\RM_0068" "4" Tabela "R"
          IMPRIREL(Tabela,"R")
  EndIf
  Delete Tabela
EndWhile
ClearAll
Release Vars All
Release Procs All
