;** Rm_0067 ********************************************************************
;*  Emissao da Apuracao da Comissao usando % da Nota Fiscal A Vista/Recebidas  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 06/05/2004 por Anivel Augusto Rodrigues
;Ultima Alteracao: 14/12/2004 por Anivel Augusto Rodrigues
;Motivo Alteracao: Mes Fechado
;Ultima Alteracao: 14/04/2014 por Bruno/Gustavo
;Motivo Alteracao: Ajustes p/ Inclusao de Rateio de Comissao de Representante
;Ultima Alteracao: 10/06/2014 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo para filtrar por rateio de comissao de representante
;Ultima Alteracao: 11/06/2014 por Luis Gustavo
;Motivo Alteracao: Adicionado Filtro por Gerˆncia
;Ultima Alteracao: 16/06/2014 por Luis Gustavo
;Motivo Alteracao: Ajsutes no filtro Gerencia
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;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

;*******************************************************************************
;* Rotina para Selecionar Registros Vendas a Vista                             *
;*******************************************************************************
Proc SelecionaVAV()
ClearAll

;****** Vendas/Devolu‡äes *******
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaIC")
   Then For wi2 From 1 To 2 
          For wi From INICIO_RATEIO To FIM_RATEIO 
           {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
            
           If wi = 2
              Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaIC" Enter
                    Moveto [Codigo da Empresa        ] Example "a"
                    Moveto [Numero do Documento      ] Example "b"
                    Moveto [Serie do Documento       ] Example "c"
                    Moveto [Item do Documento        ] TypeIn "0"
                    Moveto [Codigo do Representante  ] Check TypeIn "_crep, ~VSDGREPRESEN.."
                    Moveto [Nome Fantasia Represent  ] Check
                    Moveto [Comissao do Representante] Check
           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 [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
           Moveto [Nome Fantasia Empresa  ] Check
           Moveto [Codigo do Documento    ] Check
           Moveto [Tipo do Documento      ] Check
           Moveto [Data de Emissao        ] Check
           Moveto [Valor Nota Fiscal      ] Check
           Moveto [Codigo                 ] Check
           Moveto [Razao Social           ] Check
           Moveto [Forma de Pagamento     ] Check
           Moveto [Taxa de Desconto       ] Check
           Moveto [Valor do Desconto      ] Check
           Moveto [Valor Mercadoria       ] Check
           Moveto [Tipo de Pagamento      ] TypeIn "V"
           Moveto [Situacao               ] TypeIn "Not C"

           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   
         
           If wi = 1
              Then Moveto [Codigo do Representante  ] Check TypeIn "_crep, ~VSDGREPRESEN.."
                   Moveto [Nome Fantasia Represent  ] Check
                   Moveto [Comissao do Representante] Check
           EndIf 
           Do_It!
           ClearAll
           
           View Tabela
           CoEdit "Answer"
           Scan
    
              If VSDGOPCOMISSAO="S" And [Answer->Comissao do Representante]>0
                 Then Loop
              EndIf
    
              If VSDGOPCOMISSAO="C" And [Answer->Comissao do Representante]<=0
                 Then Loop
              EndIf
    
              Moveto Tabela
              End Down
              [Codigo da Empresa       ]=[Answer->Codigo da Empresa        ]
              [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa    ]
              [Ordem                   ]="0"
              [Descricao da Ordem      ]="VENDAS A VISTA"
              [Codigo do Documento     ]=[Answer->Codigo do Documento      ]
              [Tipo do Documento       ]=[Answer->Tipo do Documento        ]
              [Serie do Documento      ]=[Answer->Serie do Documento       ]
              [Numero do Documento     ]=[Answer->Numero do Documento      ]
              [Data de Emissao         ]=[Answer->Data de Emissao          ]
              [Data de Vencimento      ]=[Answer->Data de Emissao          ]
              [Data Pagamento          ]=[Answer->Data de Emissao          ]
              [Valor A Vista           ]=[Answer->Valor Nota Fiscal        ]
              [Valor do Documento      ]=[Valor A Vista                    ]
              If VSDGOPCALCULO="D"
                 Then [Taxa da Comissao ]=[Answer->Comissao do Representante]
                 Else [Taxa da Comissao ]=VSDGTAXA
              EndIf
              [Valor da Comissao]=NDecimal(([Valor do Documento]*[Taxa da Comissao])/100,2)
              [Codigo                  ]=[Answer->Codigo                   ]
              [Razao Social            ]=[Answer->Razao Social             ]
              [Codigo do Representante ]=[Answer->Codigo do Representante  ]
              [Nome Fantasia Represent ]=[Answer->Nome Fantasia Represent  ]
              [Tipo do Pagamento       ]=[Answer->Forma de Pagamento       ]
    
              If [Answer->Taxa de Desconto]>0
                 Then Tx_Descto=[Answer->Taxa de Desconto ]
                 Else Vr_Descto=[Answer->Valor do Desconto]
                      Tx_Descto=(Vr_Descto/[Answer->Valor Mercadoria])*100
              EndIf
              [Taxa de Desconto]=Tx_Descto
    
              Moveto "Answer"
            EndScan
            Do_It!
            ClearAll
          EndFor
        EndFor
EndIf
EndProc   ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros Recebidos de Vendas a Prazo 							 *
;*******************************************************************************
Proc SelecionaRVP()
ClearAll

If IsTable("\\Sistemas\\CtaRec\\"+Dir_Trab+"Duplic") And
	 IsTable("\\Sistemas\\CtaRec\\"+Dir_Trab+"DupBaixa")
	 Then {Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"Duplic" Enter Check
        Moveto [Numero do Lancamento   ] Example "lanc"
        Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
				Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
        Moveto [Tipo do Documento      ] TypeIn "Not CH"
				{Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"DupBaixa" Enter Check
        Moveto [Numero do Lancamento   ] Example "lanc"
        Moveto [Data do Pagamento      ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
       ;Moveto [Data Pagamento Comissao] TypeIn "Blank"
        Moveto [Tipo da Baixa          ] TypeIn "NORMAL Or Blank"
				Do_It!
				ClearAll

        View Tabela
        CoEdit "Answer"
        Scan

          If VSDGOPCOMISSAO="S" And [Answer->Valor da Comissao-1]>0
             Then Loop
          EndIf

          If VSDGOPCOMISSAO="C" And [Answer->Valor da Comissao-1]<=0
             Then Loop
          EndIf

          Moveto Tabela
          End Down
          [Codigo da Empresa       ]=[Answer->Codigo da Empresa        ]
          [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa    ]
          [Ordem                   ]="1"
          [Descricao da Ordem      ]="VENDAS A PRAZO/RECEBIDO"
          [Codigo do Documento     ]=[Answer->Codigo do Documento      ]
          [Tipo do Documento       ]=[Answer->Tipo do Documento        ]
          [Serie do Documento      ]=[Answer->Serie do Documento       ]
          [Numero do Documento     ]=[Answer->Numero do Documento      ]
          [Data de Emissao         ]=[Answer->Data de Emissao          ]
          [Data de Vencimento      ]=[Answer->Data de Vencimento       ]
          [Data Pagamento          ]=[Answer->Data do Pagamento        ]
          [Valor A Prazo Recebido  ]=[Answer->Valor do Recebimento]+
                                     [Answer->Valor do Desconto-1 ]-
                                     [Answer->Valor do Juros      ]
          [Valor do Documento      ]=[Valor A Prazo Recebido      ]
          If VSDGOPCALCULO="D"
             Then [Valor da Comissao]=[Answer->Valor da Comissao-1     ]
             Else [Valor da Comissao]=NDecimal(([Valor do Documento]*VSDGTAXA)/100,2)
          EndIf
          [Codigo                  ]=[Answer->Codigo do Destinatario   ]
          [Razao Social            ]=[Answer->Razao Social             ]
          [Codigo do Representante ]=[Answer->Codigo do Representante  ]
          [Nome Fantasia Represent ]=[Answer->Nome Fantasia Represent  ]
          [Tipo do Pagamento       ]=[Answer->Tipo do Pagamento        ]
          [Numero do Lancamento    ]=[Answer->Numero do Lancamento     ]
          [Sequencia da Baixa      ]=[Answer->Sequencia da Baixa       ]
          [Codigo da Conta         ]=[Answer->Codigo da Conta-1        ]

          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf
EndProc

;*******************************************************************************
;* Rotina para Selecionar Registros Vendas a Prazo com entrada a Vista                             *
;*******************************************************************************
Proc SelecionaVCPAV()
ClearAll
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter Check
        Moveto [Codigo da Empresa      ] Example "Emp," TypeIn "~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Example "Num"
        Moveto [Serie do Documento     ] Example "Ser"
        Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
        Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Descricao da Destinacao] TypeIn "..VEND.."
        Moveto [Tipo de Pagamento      ] TypeIn "P"
      ;;Moveto [Forma de Pagamento     ] TypeIn "CP"
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV" Enter
        Moveto [Codigo da Empresa      ] Example "Emp" Check
        Moveto [Numero do Documento    ] Example "Num" Check
        Moveto [Serie do Documento     ] Example "Ser" Check
        Moveto [Sequencia              ] Check
        Moveto [Numero de Dias         ] TypeIn "0"    Check
        Moveto [Data                   ] Check
        Moveto [Valor                  ] Check
        Moveto [Forma de Pagamento     ] TypeIn "DN Or CH" Check
        Moveto [Valor da Comissao      ] Check
        Do_It!
        ClearAll
        If IsEmpty("Answer") Then Return False EndIf

        View Tabela
        CoEdit "Answer"
        Scan For [Data]=[Data de Emissao]

          If VSDGOPCOMISSAO="S" And [Answer->Comissao do Representante]>0
             Then Loop
          EndIf

          If VSDGOPCOMISSAO="C" And [Answer->Comissao do Representante]<=0
             Then Loop
          EndIf

          Moveto Tabela
          End Down
          [Codigo da Empresa       ]=[Answer->Codigo da Empresa        ]
          [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa    ]
          [Ordem                   ]="2"
          [Descricao da Ordem      ]="VENDAS A PRAZO C/ ENTRADA"
          [Codigo do Documento     ]=[Answer->Codigo do Documento      ]
          [Tipo do Documento       ]=[Answer->Tipo do Documento        ]
          [Serie do Documento      ]=[Answer->Serie do Documento       ]
          [Numero do Documento     ]=[Answer->Numero do Documento      ]
          [Data de Emissao         ]=[Answer->Data de Emissao          ]
          [Data de Vencimento      ]=[Answer->Data]
          [Data Pagamento          ]=[Answer->Data]
          [Valor A Vista           ]=[Answer->Valor]
          [Valor do Documento      ]=[Valor A Vista]
          [Valor da Comissao       ]=[Answer->Valor da Comissao        ]
          [Codigo                  ]=[Answer->Codigo                   ]
          [Razao Social            ]=[Answer->Razao Social             ]
          [Codigo do Representante ]=[Answer->Codigo do Representante  ]
          [Nome Fantasia Represent ]=[Answer->Nome Fantasia Represent  ]
          [Tipo do Pagamento       ]=[Answer->Forma de Pagamento-1     ]

          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf
EndProc   ; (Seleciona)

;*******************************************************************************
;* Selecionar Registros Vendas a Prazo com Cheques Pre-Datados Recebidos       *
;*******************************************************************************
Proc SelecionaVCPCP()
ClearAll
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter Check
        Moveto [Codigo da Empresa      ] Example "Emp," TypeIn "~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Example "Num"
        Moveto [Serie do Documento     ] Example "Ser"
        Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
        Moveto [Descricao da Destinacao] TypeIn "..VEND.."
        Moveto [Tipo de Pagamento      ] TypeIn "P"
       ;Moveto [Forma de Pagamento     ] TypeIn "CP"
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV" Enter
        Moveto [Codigo da Empresa      ] Example "Emp" Check
        Moveto [Numero do Documento    ] Example "Num" Check
        Moveto [Serie do Documento     ] Example "Ser" Check
        Moveto [Sequencia              ] Check
        Moveto [Numero de Dias         ] TypeIn ">0"   Check
        Moveto [Data                   ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" Check
        Moveto [Valor                  ] Check
        Moveto [Forma de Pagamento     ] TypeIn "CP"   Check
        Moveto [Valor da Comissao      ] Check
        Do_It!
        ClearAll
        If IsEmpty("Answer") Then Return False EndIf


        View Tabela
        CoEdit "Answer"
        Scan

          If VSDGOPCOMISSAO="S" And [Answer->Comissao do Representante]>0
             Then Loop
          EndIf

          If VSDGOPCOMISSAO="C" And [Answer->Comissao do Representante]<=0
             Then Loop
          EndIf

          Moveto Tabela
          End Down
          [Codigo da Empresa       ]=[Answer->Codigo da Empresa        ]
          [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa    ]
          [Ordem                   ]="3"
          [Descricao da Ordem      ]="VENDAS CHEQUE PRE-DATADO"
          [Codigo do Documento     ]=[Answer->Codigo do Documento      ]
          [Tipo do Documento       ]=[Answer->Tipo do Documento        ]
          [Serie do Documento      ]=[Answer->Serie do Documento       ]
          [Numero do Documento     ]=[Answer->Numero do Documento      ]
          [Data de Emissao         ]=[Answer->Data de Emissao          ]
          [Data de Vencimento      ]=[Answer->Data]
          [Data Pagamento          ]=[Answer->Data]
          [Valor A Prazo Cheque_Pre]=[Answer->Valor]
          [Valor do Documento      ]=[Valor A Prazo Cheque_Pre]
          [Valor da Comissao       ]=[Answer->Valor da Comissao        ]
          [Codigo                  ]=[Answer->Codigo                   ]
          [Razao Social            ]=[Answer->Razao Social             ]
          [Codigo do Representante ]=[Answer->Codigo do Representante  ]
          [Nome Fantasia Represent ]=[Answer->Nome Fantasia Represent  ]
          [Tipo do Pagamento       ]=[Answer->Forma de Pagamento-1     ]

          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf
EndProc   ; (Seleciona)

;*******************************************************************************
;* Rotina p/                                                                   *
;*******************************************************************************
Proc GeraComissao()
ClearAll


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

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

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

EndProc     

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_REPRESEN"      : Campo="TG_EMPRESA"
            Case Campo="TG_GERENCIA"      : Campo="TG_REPRESEN"
            Case Campo="TG_OPCALCULO"     : Campo="TG_GERENCIA"
            Case Campo="TG_TAXA"          : Campo="TG_OPCALCULO"
            Case Campo="TG_DTINI"         : Campo="TG_OPCALCULO"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPCAO"         : Campo="TG_DTFIM"
            Case Campo="TG_OPCOMISSAO"    : Campo="TG_OPCAO"
            Case Campo="TG_OPRELANALSINT" : Campo="TG_OPCOMISSAO"
            Case Campo="TG_COMISSAO"      : Campo="TG_OPRELANALSINT"
            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_OPCALCULO"
                    Case Campo="TG_OPCALCULO"     :
                         VSDGOPCALCULO=ControlValue("TG_OPCALCULO")
                         Switch
                           Case VSDGOPCALCULO="I": VSDGNOMOPCALCULO="TAXA INFORMADA ="
                                                   Campo="TG_TAXA"
                           OtherWise             : VSDGOPCALCULO="D"
                                                   VSDGNOMOPCALCULO="TAXA DO DOCUMENTO"
                                                   VSDGTAXA     =BlankNum()
                                                   Campo="TG_DTINI"
                         EndSwitch
                    Case Campo="TG_TAXA"         :Campo="TG_DTINI"
                         VSDGTAXA=ControlValue("TG_TAXA")
										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_OPCOMISSAO"										
                    Case Campo="TG_OPCOMISSAO"    :Campo="TG_OPRELANALSINT"
                         VSDGOPCOMISSAO=ControlValue("TG_OPCOMISSAO")
                         Switch
                           Case VSDGOPCOMISSAO="S": VSDGNOMOPCOMISSAO="TITULOS S/ COMISSAO"
                           Case VSDGOPCOMISSAO="C": VSDGNOMOPCOMISSAO="TITULOS C/ COMISSAO"
                           OtherWise              : VSDGOPCOMISSAO="T"
                                                    VSDGNOMOPCOMISSAO="TODOS TITULOS"
                         EndSwitch
										Case Campo="TG_OPRELANALSINT" : Campo="TG_COMISSAO"
                    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_OPCALCULO":
       MSG_CAMPO="Op‡„o: D=Taxa do Documento    I=Informar a Taxa"
  Case Campo="TG_OPCOMISSAO":
       MSG_CAMPO="Op‡„o: T=Todos   S=Sem Comiss„o   C=Com Comiss„o"
  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      = ""
VSDGOPRELANALSINT = ""
VSDGOPCAO         = ""
VSDGNOMOPCAO      = ""
VSDGDTINI         = BlankDate()
VSDGDTFIM         = BlankDate()
VSDGTAXA          = BlankNum()

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

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

While True

  ShowDialog "Apura‡„o de Comiss„o - A Vista/Tit.Recebidos" 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 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 "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 "Op‡„o Calculo" For "TG_OPCALCULO"
    Accept @ 07,04 Width 04 "A1"  Picture "D,I" Tag "TG_OPCALCULO" To VSDGOPCALCULO
    Accept @ 07,09 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPCALCULO" To VSDGNOMOPCALCULO

    Label  @ 08,08 "% Comiss„o"  For "TG_TAXA"
    Accept @ 09,09 Width 12 "N" Tag "TG_TAXA" To VSDGTAXA

    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 "A30" Picture "!*!" Tag "TG_NOMOPCAO" To VSDGNOMOPCAO

    Label  @ 02,35 "Op‡„o Comiss„o" For "TG_OPCOMISSAO"
    Accept @ 03,39 Width 04 "A1"  Picture "T,S,C" Tag "TG_OPCOMISSAO" To VSDGOPCOMISSAO
    Accept @ 03,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPCOMISSAO" To VSDGNOMOPCOMISSAO

    Label  @ 04,35 "Op‡„o do Relat¢rio" For "TG_OPRELANALSINT"
    Accept @ 05,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELANALSINT" To VSDGOPRELANALSINT
    Accept @ 05,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPRELANASINT" To VSDGNOMOPRELANALSINT

    CheckBoxes @ 07,35 Height 1 Width 35 Tag "TG_COMISSAO"
    TG_COMISSAO[1] to CheckTG_COMISSAO[1]        

    Pushbutton @ 13,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 13,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 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())
  Empty "\\Base\\Sistemas\\Vendas\\Rm_0067"
  Copy "\\Base\\Sistemas\\Vendas\\Rm_0067" Tabela

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    SelecionaVAV()
    SelecionaRVP()
    SelecionaVCPAV()
  EndWhile

  Monta_Dir_Trab((VSDGDTINI-180),VSDGDTFIM)
  While Novo_Dir_Trab()
    SelecionaVCPCP()
  EndWhile

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela
          Loop
  EndIf

  if CheckTG_COMISSAO[1]
     then
          GeraComissao()
     else
        	If VSDGOPRELANALSINT="1"
        		 Then IMPRIREL(Tabela,"R")
        		 Else IMPRIREL(Tabela,"1")
        	EndIf
	endif

  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All

