;** Rm_0066 ********************************************************************
;*  Emissao da Apuracao da Comissao usando % do Item da Nota Fiscal            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 15/02/2017 por Bruno Carvalho              
;Ultima Alteracao: 08/03/2017 por Bruno Carvalho                  
;Motivo Alteracao: Ajustado p/ a apura‡Æo da comissÆo ser sempre a partir do item e nÆo do total da cabe‡a
;Ultima Alteracao: 09/03/2017 por Bruno Carvalho                  
;Motivo Alteracao: Alterado "RM_0066" -> "RM_0068" Onde os reports terÆo a comissÆo calculadas pelos itens e nÆo pelo NOTAC como ‚ feito no "RM_0066" 
;Ultima Alteracao: 23/03/2017 por Bruno Carvalho                  
;Motivo Alteracao: Ajsutes na coluna de quantidade no report 
;Ultima Alteracao: 06/04/2017 por Bruno Carvalho                  
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 13/04/2017 por Bruno Carvalho                  
;Motivo Alteracao: [Comissao] *-1 -> SelecionaDuplic()
;Ultima Alteracao: 17/05/2017 por Rafael Matos
;Motivo Alteracao: Incluso Filtro VSDGMARCA
;Ultima Alteracao: 26/07/2017 por Rafael Matos
;Motivo Alteracao: Ajustes codigo da tabela do item
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 28/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes gerar comissao 
;Ultima Alteracao: 12/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desfazer ask com representante nÆo cadastrado
;Ultima Alteracao: 25/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 07/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog     

;*******************************************************************************
;* 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 [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                ] CheckPlus
Moveto [Operacao_Descricao      ] CheckPlus
Moveto [Codigo da Empresa       ] CheckPlus
Moveto [Numero do Documento     ] CheckPlus                                     
Moveto [Serie do Documento      ] CheckPlus
Moveto [Data de Emissao         ] CheckPlus
Moveto [Nome Fantasia Empresa   ] CheckPlus
Moveto [Codigo do Representante ] CheckPlus
Moveto [Nome Fantasia Represent ] CheckPlus
Moveto [Codigo                  ] CheckPlus
Moveto [Nome Fantasia EmitDest  ] CheckPlus
Moveto [Razao Social            ] CheckPlus
Moveto [Numero da OF            ] CheckPlus
Moveto [Quantidade              ] TypeIn "Calc Sum as \"Quantidade\""
Moveto [Descricao Gerencia      ] CheckPlus
Moveto [Condicao de Pagamento   ] CheckPlus
Moveto [Descricao CondPagto     ] CheckPlus
Moveto [Descricao da Destinacao ] CheckPlus
Moveto [Data de Acerto          ] CheckPlus
Moveto [Forma de Pagamento      ] CheckPlus
Moveto [Tipo do Documento       ] CheckPlus
Moveto [Preco Total             ] CheckPlus
Moveto [Comissao                ] CheckPlus
Moveto [Aliquota Comissao       ] CheckPlus
Moveto [Media_NDias             ] CheckPlus
Do_It!
ClearAll             

Switch
  Case VSDGCODMODELO="01" :                             
       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  
  Case VSDGCODMODELO="02" :
       {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 [Quantidade              ] Example "Qtd"
       {Ask} TypeIn Tabela Enter 
       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 [Quantidade              ] TypEIn "Changeto _Qtd"
       Do_It!
       ClearAll  
       
       ;---- Verificando Item em Promo‡Æo --------------------------------------
       {Ask} {\\Sistemas\\Estoque\\Itens}
       Moveto [Codigo do Item          ] Example "CodI"
       Moveto [Referencia              ] Check
       {Ask} {\\Sistemas\\Vendas\\TbPrIte}
       Moveto [Codigo da Tabela        ] Example "TabP"
       Moveto [Codigo do Item          ] Example "CodI"
       Moveto [Em Promocao             ] TyPein "S"
       {Ask} TypeIn Tabela Enter 
       Moveto [Tabela_Preco_Item       ] Check Example "TabP"
       Do_It!
       ClearAll
       
       {Ask} {Answer}
       Moveto [Referencia              ] Example "Ref"
       Moveto [Tabela_Preco_Item       ] Example "TabP"
       {Ask} {\\Sistemas\\Estoque\\Itens}
       Moveto [Codigo do Item          ] Example "CodI"
       Moveto [Referencia              ] Example "Ref"
       {Ask} TypeIn Tabela Enter 
       Moveto [Codigo do Item          ] Example "CodI"
       Moveto [Item_Promocao           ] TypeIn "Changeto SIM"
       Moveto [Tabela_Preco_Item       ] Example "TabP"
       Do_It!
       ClearAll     
  Case VSDGCODMODELO="03" : ;Por Representante
       {Ask} {Answer} Check
       Do_It!
       ClearAll
  
       {Ask} {Answer}  
       Moveto [Codigo da Empresa       ] Check
       Moveto [Codigo do Representante ] Check
       Moveto [Nome Fantasia Represent ] Check
       Moveto [Preco Total             ] TypeIn "Calc Sum as \"Preco Total\""
       Moveto [Comissao                ] TypeIn "Calc Sum as \"Comissao\""
       Moveto [Quantidade              ] TypeIn "Calc Sum as \"Quantidade\""
       Do_It!            
       ClearAll
        
       Empty Tabela
       
       {Ask} {Answer}
       Moveto [Codigo da Empresa       ] Example "a"
       Moveto [Codigo do Representante ] Example "c"
       Moveto [Nome Fantasia Represent ] Example "d"
       Moveto [Quantidade              ] Example "e"
       Moveto [Preco Total             ] Example "f"
       Moveto [Comissao                ] Example "g"
       {Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
       Moveto [Codigo da Empresa       ] Example "a"
       Moveto [Codigo do Representante ] Example "c"
       Moveto [Nome Fantasia Represent ] Example "d"
       Moveto [Quantidade              ] Example "e"
       Moveto [Preco Total             ] Example "f"
       Moveto [Comissao                ] Example "g"
       Do_It!
       ClearAll
  Case VSDGCODMODELO="04" : ;Por Comissao
       {Ask} {Answer} Check
       Do_It!
       ClearAll
       
       {Ask} {Answer}  
       Moveto [Codigo da Empresa       ] Check
       Moveto [Codigo do Representante ] Check
       Moveto [Nome Fantasia Represent ] Check
       Moveto [Preco Total             ] TypeIn "Calc Sum as \"Preco Total\""
       Moveto [Comissao                ] TypeIn "Calc Sum as \"Comissao\""
       Moveto [Quantidade              ] TypeIn "Calc Sum as \"Quantidade\""
       Moveto [Aliquota Comissao       ] Check
       Do_It!
       ClearAll
        
       Empty Tabela
       
       {Ask} {Answer}
       Moveto [Codigo da Empresa       ] Example "a"
       Moveto [Codigo do Representante ] Example "CodR"
       Moveto [Nome Fantasia Represent ] Example "NomR"
       Moveto [Quantidade              ] Example "c"
       Moveto [Preco Total             ] Example "d"                                        
       Moveto [Comissao                ] Example "e"
       Moveto [Aliquota Comissao       ] Example "f"
       {Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
       Moveto [Codigo da Empresa       ] Example "a"
       Moveto [Codigo do Representante ] Example "CodR"
       Moveto [Nome Fantasia Represent ] Example "NomR"
       Moveto [Quantidade              ] Example "c"
       Moveto [Preco Total             ] Example "d"
       Moveto [Comissao                ] Example "e"
       Moveto [Aliquota Comissao       ] Example "f"
       Do_It!
       ClearAll
EndSwitch

{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 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 p/                                                                   *
;*******************************************************************************
Proc GeraComissao()
ClearAll


;-------------

PC_0000_AquivoDeParametrosGeraComissao="PC_0066" ; informar o Rm_XXXX como PC_XXXX nÆo esquecer 
Play "PC_0000"

;-------------

EndProc     

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

;*******************************************************************************
;* 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_GERENCIA"      : Campo="TG_EMPRESA"
            Case Campo="TG_REPRESEN"      : Campo="TG_GERENCIA"
            Case Campo="TG_MARCA"         : Campo="TG_REPRESEN"
            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_COMISSAO"      : Campo="TG_OPCAO"
            Case Campo="TG_CODMODELO"     : Campo="TG_COMISSAO"
            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_GERENCIA"
                    Case Campo="TG_GERENCIA"    :Campo="TG_REPRESEN"
                    Case Campo="TG_REPRESEN"    :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
                         Campo="TG_COMISSAO"
                    Case Campo="TG_COMISSAO"   : Campo="TG_CODMODELO" 
                    Case Campo="TG_CODMODELO"  : 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_COMISSAO":
       MSG_CAMPO="Defina a op‡„o"
       TECLA="Barra de Espa‡o=Marca/Desmarca  "
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

SYS_VALOR()

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

Array TG_COMISSAO[1]
TG_COMISSAO[1]="Gera comiss„o Contas a Pagar"

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

ModeloRelatoriosCarregaLista()

While True

  ShowDialog "Apura‡„o 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 20 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 "Gerˆncia " For "TG_GERENCIA"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_GERENCIA" To VSDGGERENCIA
    Accept @ 03,09 Width 25 "A10"  Picture "!*!" Tag "TG_DESCGERENCIA" To VSDGDESCGERENCIA

    Label  @ 04,00 "Representante"  For "TG_REPRESEN"
    Accept @ 05,01 Width 07 "A4"  Picture "#*#" Tag "TG_REPRESEN"   To VSDGREPRESEN
    Accept @ 05,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMREPR"    To VSDGNOMREPR
    
    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 25 "A34" Picture "!*!" Tag "TG_NOMOPCAO" To VSDGNOMOPCAO
        
    CheckBoxes @ 03,35 Height 1 Width 35 Tag "TG_COMISSAO"
    TG_COMISSAO[1] to CheckTG_COMISSAO[1]        

    Label  @ 13,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 14,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 14,06  Width 63 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO

    Pushbutton @ 16,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 16,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 not ValidarModelosRelatorios() then loop endif         
  
  If VSDGDTFIM=BlankDate()
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf
  
  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
  
  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    Seleciona()
  EndWhile

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela
          Loop
  EndIf
  Agrupa_Dados()
  Processa()
 
  if CheckTG_COMISSAO[1]
     then
          GeraComissao()
     else
          Switch 
            Case VSDGCODMODELO="01" :
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_0068" "R" Tabela "R"
            Case VSDGCODMODELO="02" :
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_0068" "2" Tabela "R"
            Case VSDGCODMODELO="03" : 
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_0068" "1" Tabela "R"  
            Case VSDGCODMODELO="04" :
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_0068" "3" Tabela "R"         
          EndSwitch       
          
          IMPRIREL(Tabela,"R")
  endif
  
  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All
