;** XX_1200  *******************************************************************
;* Relatorio Controle de Caixa                                                 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 13/04/2005 por Anivel augusto Rodrigues
;Ultima Alteracao: 14/11/2005 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao do filtro por destinacao
;Ultima Alteracao: 06/04/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Saldo Calculdado/Real/Diferenca
;Ultima Alteracao: 21/05/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Troca na Venda                 
;Ultima Alteracao: 17/06/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Troca na Venda Credito         
;Ultima Alteracao: 13/07/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes historico                      
;Ultima Alteracao: 14/04/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Sequencia Venda/Troca 
;Ultima Alteracao: 21/05/2014 por Luis Gustavo
;Motivo Alteracao: Relatorio Analitico e Sintetico, inclusao Outras Opera‡äes  
;Ultima Alteracao: 24/09/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes Proc SelecionaVendas_Devolucoes()
;Ultima Alteracao: 07/10/2014 por Luis Gustavo
;Motivo Alteracao: Ajustes Proc SelecionaVendas_Devolucoes(). Estava somando errado.
;Ultima Alteracao: 10/10/2014 por Luis Gustavo
;Motivo Alteracao: Adicionado na Proc SelecionaVendas_Devolucoes() o Sys_codigo_cliente da Auditoria
;Ultima Alteracao: 22/10/2014 por Luis Gustavo
;Motivo Alteracao: Ajustes na rotina de vendas a prazo com entrada, estava mostrando o titulos duas vezes
;Ultima Alteracao: 21/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes inclusao titulo de credito     
;Ultima Alteracao: 24/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes inclusao SelecionaRecebimentos2(), calculo saldo com juros e descontos
;Ultima Alteracao: 12/01/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado VSDG_USUCONTA p/ ser exibido apenas p/ usu rios daquele registro pertecente …quela conta
;Ultima Alteracao: 25/01/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes SelecionaRecebimentos2() onde estava com CHECK, cancelando determinados campos necess rios para o funcionamento da rotina 
;Ultima Alteracao: 26/01/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro por usuario e vrjuros/descto no acerto
;Ultima Alteracao: 27/01/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes bug
;Ultima Alteracao: 07/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes report R
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog 
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()                  
;Ultima Alteracao: 11/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CL=CartÆo Parcelado
;Ultima Alteracao: 17/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Recebimentos de titulos a prazo no mesmo dia
;Ultima Alteracao: 26/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes lancamento caixa manuel e nota de entrada
;Ultima Alteracao: 28/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ignorar recebimentos CH,CP do dia
;Ultima Alteracao: 05/08/2017 por Bruno Carvalho
;Motivo Alteracao: Substituido [Valor INSS] -> [Valor TC]
;Ultima Alteracao: 10/02/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_DESTIN, TG_TPMOVDESTIN                  
;Ultima Alteracao: 25/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 26/09/2020 por Bruno Carvalho             
;Motivo Alteracao: Alterado Picture "TG_DESTIN" de "[&,#][#*#]" para "!*!", permitir caracter "?" p/ ListaRegra

;*******************************************************************************
;* Rotina p/ Selecionar Vendas                                                 *
;*******************************************************************************
Proc SelecionaVendas_Devolucoes()
ClearAll

{Ask} {\\Sistemas\\Vendas} {NotaC} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ] TypeIn "~VSDGDTREF"
switch
 case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
 otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
endswitch
Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
Moveto [Tipo Movimento Estoque ] TypeIn "S"
Moveto [Situacao               ] TypeIn "Not C"

If VSDG_USUCONTA[1]
   Then Moveto [Codigo_Usuario] TypeIn "_Usu"
   
        {Ask} {\\Sistemas\\Cadastro\\Usuarios}
        Moveto [Chapa          ] TypeIn "_Usu"
        Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
EndIf

Do_It!
ClearAll

Sort "Answer" on "Codigo da Empresa","Tipo de Pagamento","Tipo do Documento","Numero do Documento"
ClearAll

TOTTCGERADOS=0 ; TC nas saidas
TOTTCGERADOE=0 ; TC nas entradas

TOTVENDASAV =0
TOTVENDASAP =0
TOTVENDASOU =0
                
                
;*************** Apurando vendas e troca por tipo de pagamento *****************
NR = NRecords("Answer")

View "\\Sistemas\\Estoque\\NotaEC"
CoEdit Tabela,"Answer"
If nr>0
   Then seq=0
        Scan
        
          Switch
            Case [Answer->Tipo de Pagamento]="V": TOTVENDASAV=TOTVENDASAV+[Valor Nota Fiscal]
            Case [Answer->Tipo de Pagamento]="P": TOTVENDASAP=TOTVENDASAP+[Valor Nota Fiscal]
            OtherWise                           : TOTVENDASOU=TOTVENDASOU+[Valor Nota Fiscal]
          EndSwitch
          
          If VSDGCODMODELO="1"
             Then Moveto Tabela
                  End Down
                  Switch
                    Case [Answer->Tipo de Pagamento]="V": [Ordem   ]="02.1.2"
                    Case [Answer->Tipo de Pagamento]="P": [Ordem   ]="02.2.2"
                    OtherWise                           : [Ordem   ]="02.4.2"
                  EndSwitch
                  Seq=Seq+1
                  [Sequencia]=Seq
                  [Valor    ]=[Answer->Valor Nota Fiscal]
                  [Descricao]="  "+Completa([Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento],12,"  ")+
                              [Answer->Forma de Pagamento]+"  "
                       
                  desctcg=""   
                  if [Answer->Valor TC]>0
                     then desctcg=Substr([Answer->Razao Social     ],1,30)+"|TCG"+format("W8.2,EIC",[Answer->Valor TC])
                     else desctcg=[Answer->Razao Social     ]
                  endif   
                  [Descricao]=[Descricao]+desctcg
  
                  UnLockRecord
                  Moveto "Answer"
          EndIf

          if [Answer->Valor TC]>0
             then TOTTCGERADOS=TOTTCGERADOS+[Answer->Valor TC]
          endif
          
          If [Answer->Tipo Movimento Estoque ]="S" And
             Search("TROCA",[Answer->Descricao da Destinacao])>0
             Then           
  								NE_ENCONTRADA=False
  								Moveto "\\Sistemas\\Estoque\\NotaEC"
  								Moveto [Codigo]
  								Locate IndexOrder By "NotaEC01" [Answer->Codigo],
  								       [Answer->Numero do Documento], [Answer->Serie do Documento]
  								If RetVal
  								   then If [Codigo da Empresa]=[Answer->Codigo da Empresa] And
  								           [Tipo de Operacao ]="D"
                             Then NE_ENCONTRADA=True
                                  If [Answer->Valor Nota Fiscal]>[Valor Nota Fiscal] 
                                     Then VRNF=[Valor Nota Fiscal]
                                     Else VRNF=[Answer->Valor Nota Fiscal] 
                                  EndIf
  								        EndIf
  								EndIf
  								
  								If NE_ENCONTRADA
                     Then 
  							          Switch
  							            Case [Answer->Tipo de Pagamento]="V": TOTVENDASAV=TOTVENDASAV-VRNF
  							            Case [Answer->Tipo de Pagamento]="P": TOTVENDASAP=TOTVENDASAP-VRNF
  							            OtherWise                           : TOTVENDASOU=TOTVENDASOU-VRNF
  							          EndSwitch
          
  							          If VSDGCODMODELO="1"
  							             Then Moveto Tabela
  							                  End Down
                                  Switch
                                    Case [Answer->Tipo de Pagamento]="V": [Ordem   ]="02.1.2"
                                    Case [Answer->Tipo de Pagamento]="P": [Ordem   ]="02.2.2"
                                    OtherWise                           : [Ordem   ]="02.4.2"
                                  EndSwitch
                                  Seq=Seq+1
                                  [Sequencia]=Seq
  							                  [Valor    ]=([\Sistemas\Estoque\NotaEC->Valor Nota Fiscal]*-1)
  							                  [Descricao]="  "+Completa([Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento],12,"  ")+
  							                              " \"      \"  * COM TROCA NA VENDA"
  							                  UnLockRecord
  							                  Moveto "Answer"
  							          EndIf
                  EndIf
          EndIf
  				Moveto "Answer"
        
        EndScan
EndIf

Moveto Tabela
End Down
[Ordem    ]="02"
[Descricao]="Vendas"
[Valor]=TOTVENDASAV+TOTVENDASAP+TOTVENDASOU
UnLockRecord

End Down
[Ordem    ]="02.0"

If TOTVENDASAV>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="02.1"
        [Descricao]="  A Vista"
        [Sinal    ]=""
        [Valor    ]=TOTVENDASAV
        UnLockRecord

        End Down
        [Ordem]="02.1.9"
        UnLockRecord
EndIf

If TOTVENDASAP>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="02.2"
        [Descricao]="  A Prazo"
        [Valor    ]=TOTVENDASAP
        UnLockRecord

        End Down
        [Ordem]="02.2.9"
        UnLockRecord
EndIf

If TOTVENDASOU>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="02.4"
        [Descricao]="  Outros"
        [Valor    ]=TOTVENDASOU
        UnLockRecord

        End Down
        [Ordem]="02.4.9"
        UnLockRecord
EndIf

Do_It!
ClearAll

;*************** Apurando vendas a prazo c/ entrada ****************************
{Ask} {\\Sistemas\\Vendas} {NotaC}
Moveto [Codigo da Empresa      ] Example "Empresa" TypeIn ", ~VSDGEMPRESA.."
Moveto [Numero do Documento    ] Example "Docto"
Moveto [Serie do Documento     ] Example "Serie"
Moveto [Data de Emissao        ] TypeIn "~VSDGDTREF"
switch
 case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
 otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
endswitch
Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
Moveto [Tipo Movimento Estoque ] TypeIn "S"
Moveto [Tipo de Pagamento      ] TypeIn "P"
Moveto [Situacao               ] TypeIn "Not C"
Moveto [Tipo do Documento      ] Check
Moveto [Razao Social           ] Check

If VSDG_USUCONTA[1]
   Then Moveto [Codigo_Usuario] TypeIn "_Usu"
   
        {Ask} {\\Sistemas\\Cadastro\\Usuarios}
        Moveto [Chapa          ] TypeIn "_Usu"
        Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
EndIf

{Ask} {\\Sistemas\\Vendas} {NotaV} Check
Moveto [Codigo da Empresa      ] Example "Empresa"
Moveto [Numero do Documento    ] Example "Docto"
Moveto [Serie do Documento     ] Example "Serie"
Do_It!
ClearAll

Sort "Answer" on "Codigo da Empresa","Tipo do Documento","Numero do Documento"
ClearAll

TOTVENDASEN=0

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then Scan For [Data]=VSDGDTREF
          TOTVENDASEN=TOTVENDASEN+[Valor]
        EndScan
EndIf
If TOTVENDASEN>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="02.3"
        [Descricao]="  A Prazo com Entrada"
        [Sinal    ]=""
        [Valor    ]=TOTVENDASEN
        UnLockRecord
EndIf
Do_It!
ClearAll

;*************** Apurando vendas e forma de pagamento **************************
VENDASAP =0
VENDASAV =0
VENDASOU =0

For wi from 1 to 3
  {Ask} {\\Sistemas\\Cadastro} {TpPagto}
  Moveto [Tipo do Pagamento        ] Example "tpg"
  Moveto [Descricao Tipo Pagamento ] Check
  {Ask} {\\Sistemas\\Vendas} {NotaC}
  Moveto [Codigo da Empresa        ] Example "Empresa" TypeIn ",~VSDGEMPRESA.."
  Moveto [Numero do Documento      ] Example "Docto"
  Moveto [Serie do Documento       ] Example "Serie"
  Moveto [Data de Emissao          ] Example "dte" TypeIn ",~VSDGDTREF"
  Moveto [Situacao                 ] TypeIn "Not C"
  switch
    case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
    otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
  endswitch
  Moveto [Descricao da Destinacao  ] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
  Moveto [Tipo Movimento Estoque   ] TypeIn "S"
  Switch
    Case wi=1: Moveto [Tipo de Pagamento        ] TypeIn "V"
    Case wi=2: Moveto [Tipo de Pagamento        ] TypeIn "P"
    Case wi=3: Moveto [Tipo de Pagamento        ] TypeIn "O"
  EndSwitch

  If VSDG_USUCONTA[1]
     Then Moveto [Codigo_Usuario] TypeIn "_Usu"
     
          {Ask} {\\Sistemas\\Cadastro\\Usuarios}
          Moveto [Chapa          ] TypeIn "_Usu"
          Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
  EndIf
  
  {Ask} {\\Sistemas\\Vendas} {NotaV}
  Moveto [Codigo da Empresa        ] Example "Empresa"
  Moveto [Numero do Documento      ] Example "Docto"
  Moveto [Serie do Documento       ] Example "Serie"
  If wi=2
     Then Moveto [Data                     ] TypeIn ">_dte"
  EndIf
  Moveto [Forma de Pagamento       ] Check Example "tpg"
  Moveto [Valor                    ] TypeIn "Calc Sum As Soma"
  Do_It!
  ClearAll

  nr=nrecords("answer")
  
  CoEdit Tabela,"Answer"
  If nr>0
     Then 
          Scan
            Moveto Tabela
            End Down
            [Descricao]="    "+Completa([Answer->Descricao Tipo Pagamento],20," ")+
                        " = "+Format("W11.2,AR,EIC",[Answer->Soma])
            Switch
              Case wi=1:
               [Ordem    ]="02.1.3"
               If [Answer->Forma de Pagamento]="DN" Or
                  [Answer->Forma de Pagamento]="CH" Or
                  [Answer->Forma de Pagamento]="CP"
                  Then [Descricao]=[Descricao]+"(+)"
                       VENDASAV=VENDASAV+[Answer->Soma]
               EndIf
               If [Answer->Forma de Pagamento]="CT"
                  Then [Ordem    ]="02.1.4"
               EndIf
               If [Answer->Forma de Pagamento]="CD"
                  Then [Ordem    ]="02.1.6"
               EndIf
              Case wi=2:
               [Ordem    ]="02.2.3"
               If [Answer->Forma de Pagamento]="DN" Or
                  [Answer->Forma de Pagamento]="CH" Or
                  [Answer->Forma de Pagamento]="CP"
                  Then [Descricao]=[Descricao]+"(+)"
                       VENDASAP =VENDASAP +[Answer->Soma]
               EndIf
               If [Answer->Forma de Pagamento]="CT"
                  Then [Ordem    ]="02.2.4"
               EndIf
               If [Answer->Forma de Pagamento]="CD"
                  Then [Ordem    ]="02.2.6"
               EndIf
              Case wi=3:
               [Ordem    ]="02.3.3"
               If [Answer->Forma de Pagamento]="DN" Or
                  [Answer->Forma de Pagamento]="CH" Or
                  [Answer->Forma de Pagamento]="CP"
                  Then [Descricao]=[Descricao]+"(+)"
                       VENDASOU =VENDASOU +[Answer->Soma]
               EndIf
               If [Answer->Forma de Pagamento]="CT"
                  Then [Ordem    ]="02.2.4"
               EndIf
               If [Answer->Forma de Pagamento]="CD"
                  Then [Ordem    ]="02.2.6"
               EndIf
            EndSwitch
            UnLockRecord
            Moveto "Answer"
          EndScan
  EndIf
  Do_It!
  ClearAll
  
  {Ask} {\\Sistemas\\Vendas} {NotaC}
  Moveto [Codigo da Empresa        ] Example "Empresa" TypeIn ",~VSDGEMPRESA.."
  Moveto [Numero do Documento      ] Example "Docto"
  Moveto [Serie do Documento       ] Example "Serie"
  Moveto [Data de Emissao          ] Example "dte" TypeIn ",~VSDGDTREF"
  Moveto [Situacao                 ] TypeIn "Not C"
  switch
    case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
    otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
  endswitch
  Moveto [Descricao da Destinacao  ] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
  Moveto [Tipo Movimento Estoque   ] TypeIn "S"
  Switch
    Case wi=1: Moveto [Tipo de Pagamento        ] TypeIn "V"
    Case wi=2: Moveto [Tipo de Pagamento        ] TypeIn "P"
    Case wi=3: Moveto [Tipo de Pagamento        ] TypeIn "O"
  EndSwitch
  
  If VSDG_USUCONTA[1]
     Then Moveto [Codigo_Usuario] TypeIn "_Usu"
     
          {Ask} {\\Sistemas\\Cadastro\\Usuarios}
          Moveto [Chapa          ] TypeIn "_Usu"
          Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
  EndIf
  
  {Ask} {\\Sistemas\\Vendas} {NotaV}
  Moveto [Codigo da Empresa        ] Example "Empresa"
  Moveto [Numero do Documento      ] Example "Docto"
  Moveto [Serie do Documento       ] Example "Serie"
  Moveto [Forma de Pagamento       ] Check TypeIn "CT or CD"
  Moveto [Nome do Cartao           ] Check
  Moveto [Valor                    ] TypeIn "Calc Sum As Soma"
  Do_It!
  ClearAll

  nr=nrecords("answer")
  
  CoEdit Tabela,"Answer"
  If nr>0
     Then 
          Scan
            Moveto Tabela
            End Down
            [Descricao]="      "+Completa([Answer->Nome do Cartao],18," ")+
                        " = "+Format("W11.2,AR,EIC",[Answer->Soma])
            Switch
              Case wi=1:
               If [Answer->Forma de Pagamento]="CT"
                  Then [Ordem    ]="02.1.5"
               EndIf
               If [Answer->Forma de Pagamento]="CD"
                  Then [Ordem    ]="02.1.7"
               EndIf
              Case wi=2:
               If [Answer->Forma de Pagamento]="CT"
                  Then [Ordem    ]="02.2.5"
               EndIf
               If [Answer->Forma de Pagamento]="CD"
                  Then [Ordem    ]="02.2.7"
               EndIf
              Case wi=3:
               If [Answer->Forma de Pagamento]="CT"
                  Then [Ordem    ]="02.3.5"
               EndIf
               If [Answer->Forma de Pagamento]="CD"
                  Then [Ordem    ]="02.3.7"
               EndIf
            EndSwitch
            UnLockRecord
            Moveto "Answer"
          EndScan
  EndIf
  Do_It!
  ClearAll
EndFor

;*************** Apurando vendas e forma de pagamento, aprazo c/ entrada *******

{Ask} {\\Sistemas\\Cadastro} {TpPagto}
Moveto [Tipo do Pagamento        ] Example "tpg"
Moveto [Descricao Tipo Pagamento ] Check
{Ask} {\\Sistemas\\Vendas} {NotaC}
Moveto [Codigo da Empresa        ] Example "Empresa" TypeIn ",~VSDGEMPRESA.."
Moveto [Numero do Documento      ] Example "Docto"
Moveto [Serie do Documento       ] Example "Serie"
Moveto [Data de Emissao          ] Example "dte" TypeIn ",~VSDGDTREF"
Moveto [Situacao                 ] TypeIn "Not C"
switch
 case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
 otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
endswitch
Moveto [Descricao da Destinacao  ] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
Moveto [Tipo Movimento Estoque   ] TypeIn "S"
Moveto [Tipo de Pagamento        ] TypeIn "P"

If VSDG_USUCONTA[1]
   Then Moveto [Codigo_Usuario] TypeIn "_Usu"
   
        {Ask} {\\Sistemas\\Cadastro\\Usuarios}
        Moveto [Chapa          ] TypeIn "_Usu"
        Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
EndIf

{Ask} {\\Sistemas\\Vendas} {NotaV}
Moveto [Codigo da Empresa        ] Example "Empresa"
Moveto [Numero do Documento      ] Example "Docto"
Moveto [Serie do Documento       ] Example "Serie"
Moveto [Data                     ] TypeIn "=_dte"
Moveto [Forma de Pagamento       ] Check Example "tpg"
Moveto [Valor                    ] TypeIn "Calc Sum As Soma"
Do_It!
ClearAll

VENDASAPE=0

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then seq=0
        Scan
          Moveto Tabela
          End Down
          [Ordem    ]="02.3.3"
          Seq=Seq+1
          [Sequencia]=Seq
          [Descricao]="    "+Completa([Answer->Descricao Tipo Pagamento],20," ")+
                      " = "+Format("W11.2,AR,EIC",[Answer->Soma])
          If [Answer->Forma de Pagamento]="DN" Or
             [Answer->Forma de Pagamento]="CH" Or
             [Answer->Forma de Pagamento]="CP"
             Then [Descricao]=[Descricao]+"(+)"
                  VENDASAPE=VENDASAPE+[Answer->Soma]
          EndIf
          UnLockRecord
          Moveto "Answer"

        EndScan
               ;-------  Deixar uma linha em branco -------
        Moveto Tabela
        End Down
        [Ordem    ]="02.3.4" 
EndIf
Do_It!
ClearAll

;********************** Outras Saidas ******************************************
     
{Ask} {\\Sistemas\\Vendas} {NotaC} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ] TypeIn "~VSDGDTREF"
Moveto [Situacao               ] TypeIn "Not C"
switch
 case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
 otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
endswitch
Moveto [Descricao da Destinacao] TypeIn "Not ..VEND.. or Not..SERV.. or Not..SAIDA.."
Moveto [Tipo de Pagamento      ] TypeIn "O"
Moveto [Tipo Movimento Estoque ] TypeIn "S"

If VSDG_USUCONTA[1]
   Then Moveto [Codigo_Usuario] TypeIn "_Usu"
   
        {Ask} {\\Sistemas\\Cadastro\\Usuarios}
        Moveto [Chapa          ] TypeIn "_Usu"
        Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
EndIf

Do_It!
CLearAll

Sort "Answer" on "Codigo da Empresa","Tipo do Documento","Numero do Documento"
ClearAll

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then 
        Moveto Tabela
        End Down
        [Ordem    ]="11"
        [Descricao]="Outras Opera‡äes"
        
        Moveto "Answer"
        seq=0
        Scan
          Moveto Tabela 
          End Down
          [Ordem]="11.1"
          Seq=Seq+1
          [Sequencia]=Seq
          [Valor    ]=[Answer->Valor Nota Fiscal]
          If VSDGCODMODELO="1"
             Then 
                  [Descricao]="  "+Completa([Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento],12,"  ")+
                              [Answer->Forma de Pagamento]+"  "
                       
                  desctcg=""   
                  if [Answer->Valor TC]>0
                     then desctcg=Substr([Answer->Razao Social     ],1,30)+"|TCG"+format("W8.2,EIC",[Answer->Valor TC])
                     else desctcg=[Answer->Razao Social     ]
                  endif   
                  [Descricao]=[Descricao]+desctcg
          
          EndIf                   
          if [Answer->Valor TC]>0
             then TOTTCGERADOS=TOTTCGERADOS+[Answer->Valor TC]
          endif
        
        
          UnLockRecord
          Moveto "Answer"
        EndScan
endif
Do_It!
ClearAll

;*************** Apurando devolu‡äes *******************************************

{Ask} {\\Sistemas\\Vendas} {NotaC} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ] TypeIn "~VSDGDTREF"
Moveto [Situacao               ] TypeIn "Not C"
switch
 case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
 otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
endswitch
Moveto [Descricao da Destinacao] TypeIn "..DEVOL.."
Moveto [Tipo Movimento Estoque ] TypeIn "E"

If VSDG_USUCONTA[1]
   Then Moveto [Codigo_Usuario] TypeIn "_Usu"
   
        {Ask} {\\Sistemas\\Cadastro\\Usuarios}
        Moveto [Chapa          ] TypeIn "_Usu"
        Moveto [Conta Padrao   ] TypeIn "~VSDGCONTA.." 
EndIf

Do_It!
ClearAll

Sort "Answer" on "Codigo da Empresa","Tipo do Documento","Numero do Documento"
ClearAll

TOTDEVOL   =0

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then seq=0
        Scan
          TOTDEVOL   =TOTDEVOL   +[Valor Nota Fiscal]
          If VSDGCODMODELO="1"
             Then Moveto Tabela
                  End Down
                  [Ordem   ]="03.1.1"
                  Seq=Seq+1
                  [Sequencia]=Seq
                  [Valor    ]=[Answer->Valor Nota Fiscal]
                  [Descricao]="  "+Completa([Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento],12,"  ")+
                              [Answer->Forma de Pagamento]+"  "
                       
                  desctcg=""   
                  if [Answer->Valor TC]>0
                     then desctcg=Substr([Answer->Razao Social     ],1,30)+"|TCG"+format("W8.2,EIC",[Answer->Valor TC])
                     else desctcg=[Answer->Razao Social     ]
                  endif   
                  [Descricao]=[Descricao]+desctcg
                                    
                  UnLockRecord
                  Moveto "Answer"
          EndIf
          if [Answer->Valor TC]>0
             then TOTTCGERADOE=TOTTCGERADOE+[Answer->Valor TC]
          endif
          
        EndScan
EndIf

Moveto Tabela
End Down
[Ordem    ]="03.1"
[Descricao]="Devolucoes"
[Valor    ]=TOTDEVOL
UnLockRecord

If TOTDEVOL>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="04"
        [Descricao]="Vendas Liquidas"
        [Valor    ]=(TOTVENDASAV+TOTVENDASAP+TOTVENDASOU)-TOTDEVOL
        UnLockRecord

EndIf
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Recebimentos                                           *
;*******************************************************************************
Proc SelecionaRecebimentos()

ClearAll

{Ask} {\\Sistemas\\Ctarec} {DupliC}
Moveto [Numero do Lancamento    ] Example "lanc"
Moveto [Tipo do Documento       ] Check
Moveto [Numero do Documento     ] Check
Moveto [Razao Social            ] Check
Moveto [Data de Emissao         ] Check
Moveto [Data de Vencimento      ] Check
Moveto [Tipo do Pagamento       ] Check
{Ask} {\\Sistemas\\Ctarec} {DupBaixa} Check
Moveto [Numero do Lancamento    ] Example "lanc"
Moveto [Data do Pagamento       ] TypeIn "~VSDGDTREF"
Moveto [Tipo da Baixa           ] TypeIn "Blank or NORMAL"
Moveto [Codigo da Conta         ] TypeIn "~VSDGCONTA.."   
Do_It!
ClearAll

Sort "Answer" on "Codigo da Conta","Tipo do Documento","Numero do Documento"
ClearAll

TOTRECTO =0
nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then 
        seq=0
        Scan
        
          if ( [Data de Emissao]<>VSDGDTREF ) or
             ( [Data de Emissao] =VSDGDTREF and [Data de Vencimento]>VSDGDTREF ) 
             then
             
                  if [Data de Emissao]=VSDGDTREF and ( [Tipo do Pagamento]="CH" or  [Tipo do Pagamento]="CP" )
                     then loop
                  endif   
             
                  TOTRECTO=TOTRECTO+[Valor do Recebimento]
                  If VSDGCODMODELO="1"
                     Then Moveto Tabela
                          End Down
                          [Ordem    ]="05.1"
                          Seq=Seq+1
                          [Sequencia]=Seq
                          [Valor    ]=[Answer->Valor do Recebimento]
                          [Descricao]="  "+Completa([Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento],16,"  ")+
                                      [Answer->Razao Social     ]
                          UnLockRecord
                          
                          Moveto "Answer"
                  EndIf
          EndIf
          
        EndScan
EndIf
If TOTRECTO>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="05"
        [Descricao]="Recebimentos de Titulos"
        [Sinal    ]="(+)"
        [Valor    ]=TOTRECTO
        UnLockRecord
EndIf
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Recebimentos 2                                         *
;*******************************************************************************
Proc SelecionaRecebimentos2()
private reg_duplic

ClearAll

{Ask} {\\Sistemas\\Ctarec} {DupliC}
Moveto [Numero do Lancamento    ] Example "lanc"
Moveto [Data de Emissao         ] TypeIn "~VSDGDTREF"
Moveto [Sistema Gerador         ] Check TypeIn "not blank"
{Ask} {\\Sistemas\\Ctarec} {DupBaixa}
Moveto [Numero do Lancamento    ] Check Example "lanc"
Moveto [Sequencia da Baixa      ] Check 
Moveto [Data do Pagamento       ] TypeIn "~VSDGDTREF"
Moveto [Tipo da Baixa           ] TypeIn "Blank or NORMAL"
Moveto [Valor do Juros          ] Check
Moveto [Valor do Desconto       ] Check
Moveto [Codigo da Conta         ] TypeIn "~VSDGCONTA.."
Do_It!
ClearAll

TOTRECJUR=0
TOTRECDES=0

View "Answer" 
Scan
  if [Answer->Sistema Gerador]="FT" or
     [Answer->Sistema Gerador]="BA" or
     [Answer->Sistema Gerador]="TR" or
     [Answer->Sistema Gerador]="DI"     
     then
          TOTRECJUR=TOTRECJUR+[Answer->Valor do Juros      ]
          TOTRECDES=TOTRECDES+[Answer->Valor do Desconto   ]
  endif
EndScan

ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Pagamentos                                             *
;*******************************************************************************
Proc SelecionaPagamentos()
ClearAll

{Ask} {\\Sistemas\\Ctapag} {Titulos}
Moveto [Numero do Lancamento    ] Example "lanc"
Moveto [Tipo do Documento       ] Check
Moveto [Numero do Documento     ] Check
Moveto [Razao Social            ] Check
{Ask} {\\Sistemas\\Ctapag} {TitBaixa} Check
Moveto [Numero do Lancamento    ] Example "lanc"
Moveto [Data do Pagamento       ] TypeIn "~VSDGDTREF"
Moveto [Tipo da Baixa           ] TypeIn "Blank or NORMAL"
Moveto [Codigo da Conta         ] TypeIn "~VSDGCONTA.."   
Do_It!
ClearAll

Sort "Answer" on "Codigo da Conta","Tipo do Documento","Numero do Documento"
ClearAll

TOTPAGTO=0

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then 
        seq=0
        Scan
          TOTPAGTO=TOTPAGTO+[Valor do Pagamento]
          If VSDGCODMODELO="1"
             Then Moveto Tabela
                  End Down
                  [Ordem    ]="07.1"
                  Seq=Seq+1
                  [Sequencia]=Seq
                  [Valor    ]=[Answer->Valor do Pagamento]
                  [Descricao]="  "+Completa([Answer->Tipo do Documento]+"/"+[Answer->Numero do Documento],16,"  ")+
                              [Answer->Razao Social     ]
                  UnLockRecord
                  Moveto "Answer"
          EndIf
        EndScan
EndIf

If TOTPAGTO>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="07"
        [Descricao]="Pagamentos de Titulos"
        [Sinal    ]="(-)"
        [Valor    ]=TOTPAGTO
        UnLockRecord
EndIf
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Outras Entradas/Saidas                                 *
;*******************************************************************************
Proc SelecionaOutrasEntradasSaidas()
ClearAll

{Ask} {\\Sistemas\\Ctacor} {MovCont} Check
Moveto [Data                  ] TypeIn "~VSDGDTREF"
Moveto [Codigo da Conta       ] TypeIn "~VSDGCONTA.."
Do_It!
ClearAll

Sort "Answer" on "Codigo da Conta","Numero do Lancamento"
ClearAll

TOTOUTENT =0
TOTOUTSAI =0

TOTOUTENTD=0
TOTOUTSAID=0

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then 
        seq=0
        Scan
	        If [Answer->Tipo Movimento]="E"
	           Then TOTOUTENTD=TOTOUTENTD+[Valor]
	           Else TOTOUTSAID=TOTOUTSAID+[Valor]
	        EndIf
          Switch
					  Case [Sistema Gerador]="MA" or 
					       [Sistema Gerador]="NE": 
		          If [Answer->Tipo Movimento]="E"
		             Then TOTOUTENT =TOTOUTENT +[Valor]
		             Else TOTOUTSAI =TOTOUTSAI +[Valor]
		          EndIf
		          If VSDGCODMODELO="1"
		             Then Moveto Tabela
		                  End Down
		                  If [Answer->Tipo Movimento]="E"
		                     Then [Ordem   ]="06.1"
		                     Else [Ordem   ]="08.1"
		                  EndIf
                      Seq=Seq+1
                      [Sequencia]=Seq
		                  [Valor    ]=[Answer->Valor]
		                  [Descricao]="  "+[Answer->Descricao do Historico]
		                  UnLockRecord
		                  Moveto "Answer"
		          EndIf
          EndSwitch
        EndScan
EndIf

If TOTOUTENT>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="06"
        [Descricao]="Outras Entradas"
        [Sinal    ]="(+)"
        [Valor]=TOTOUTENT
        UnLockRecord
EndIf
If TOTOUTSAI>0
   Then Moveto Tabela
        End Down
        [Ordem    ]="08"
        [Descricao]="Outras Saidas"
        [Sinal    ]="(-)"
        [Valor]=TOTOUTSAI
        UnLockRecord
EndIf
Do_It!
ClearAll

EndProc   ; (Seleciona)

;*******************************************************************************
;* Rotina p/ Selecionar Conta                                                  *
;*******************************************************************************
Proc SelecionaConta()
ClearAll

SALDOINI =0
ANOREF   =StrVal(Year(VSDGDTREF))
MESREF   =AlinhM(StrVal(Month(VSDGDTREF)),2)
VSDGDTINI=DateVal(MESREF+"/"+"01"+"/"+ANOREF)
                
View "\\Sistemas\\Ctacor\\SaldCont"
Moveto [Codigo da Conta]
Locate VSDGCONTA,ANOREF,MESREF
If Not RetVal
   Then Mensagem("Conta sem Saldo Inicial Informado !// //Saldo Inicial ser  = 0")
   Else SALDOINI=[Saldo Inicial]
EndIf
ClearImage

{Ask} {\\Sistemas\\Ctacor} {Movcont}
Moveto [Codigo da Conta        ] TypeIn "~VSDGCONTA.."
Moveto [Data                   ] TypeIn ">=~VSDGDTINI, <~VSDGDTREF"
Moveto [Tipo Movimento         ] Check
Moveto [Valor                  ] TypeIn "Calc Sum as Soma"
Do_It!
ClearAll

TOTENTRA=0
TOTSAIDA=0

nr=nrecords("answer")

CoEdit Tabela,"Answer"
If nr>0
   Then 
        Scan
          If [Tipo Movimento]="E" Then TOTENTRA=[Soma] EndIf
          If [Tipo Movimento]="S" Then TOTSAIDA=[Soma] EndIf
        EndScan
EndIf

Moveto Tabela
End Down
[Ordem    ]="01"
[Descricao]="Saldo Inicial"
[Sinal    ]="(=)"
[Valor    ]=(SALDOINI+TOTENTRA)-TOTSAIDA
UnLockRecord

Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Somatoria                                              *
;*******************************************************************************
Proc SelecionaSomatorias()
ClearAll


SALDOCALC=(((SALDOINI+TOTENTRA)-TOTSAIDA)+
            (VENDASAV+VENDASAP+VENDASOU+VENDASAPE+TOTOUTENT+TOTRECTO))-
            (TOTOUTSAI+TOTPAGTO)
              
SALDOCONT=(((SALDOINI+TOTENTRA)-TOTSAIDA)+TOTOUTENTD)-TOTOUTSAID

SALDODIFE=SALDOCALC-SALDOCONT

CoEdit Tabela

if TOTTCGERADOS>0 or
   TOTTCGERADOE>0 or
   SYS_CODIGO_CLIENTE="0377"
   then 
        End Down
        [Ordem    ]="09.1"
        [Sequencia]=1
        [Valor    ]=blanknum()
        UnLockRecord
        
        End Down
        [Ordem    ]="09.1"
        [Sequencia]=2
        [Descricao]="Titulo de Credito CONCEDIDO"
        [Sinal    ]=""
        [Valor    ]=TOTTCGERADOS
        UnLockRecord

        if TOTTCGERADOE>0 
           then
                End Down
                [Ordem    ]="09.1"
                [Sequencia]=3
                [Descricao]="Titulo de Credito OBTIDO"
                [Sinal    ]=""
                [Valor    ]=TOTTCGERADOE
                UnLockRecord
        endif

endif

End Down
[Ordem    ]="10"
[Sequencia]=1
[Descricao]=""
[Sinal    ]=""
[Valor    ]=blanknum()
UnLockRecord

if TOTTCGERADOS>0 or
   TOTTCGERADOE>0 or
   SYS_CODIGO_CLIENTE="0377"
   then 
        End Down
        [Ordem    ]="10"
        [Sequencia]=2
        [Descricao]="Saldo Bruto do dia Calculado"
        [Sinal    ]="(=)"
        [Valor    ]=SALDOCALC
        UnLockRecord
        
        End Down
        [Ordem    ]="10"
        [Sequencia]=3
        [Descricao]="Descontos Concedidos        "
        [Sinal    ]="(-)"
        [Valor    ]=TOTRECDES
        UnLockRecord
        
        End Down
        [Ordem    ]="10"
        [Sequencia]=4
        [Descricao]="Juros Obtidos               "
        [Sinal    ]="(+)"
        [Valor    ]=TOTRECJUR
        UnLockRecord
        
        SALDOCALC=(SALDOCALC+TOTRECJUR)-TOTRECDES
        SALDODIFE=SALDOCALC-SALDOCONT
endif

End Down
[Ordem    ]="10"
[Sequencia]=5
[Descricao]="Saldo Final do dia Calculado"
[Sinal    ]="(=)"
[Valor    ]=SALDOCALC
UnLockRecord

End Down
[Ordem    ]="10"
[Sequencia]=6
[Descricao]=""
[Sinal    ]=""
[Valor    ]=blanknum()
UnLockRecord

End Down
[Ordem    ]="10"
[Sequencia]=7
[Descricao]="Saldo Real  do dia na Conta"
[Sinal    ]="(=)"
[Valor    ]=SALDOCONT

UnLockRecord

End Down
[Ordem    ]="10"
[Sequencia]=8
[Descricao]="Diferenca de Saldos no dia"
[Sinal    ]="(=)"
[Valor    ]=SALDODIFE
UnLockRecord

Do_It!
ClearAll

EndProc   ; (Seleciona)


;*******************************************************************************
;* 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"] = -60: ListaRegra_F2()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_CONTA"         : Campo="TG_EMPRESA"
            Case Campo="TG_DESTIN"        : Campo="TG_CONTA"
            Case Campo="TG_TPMOVDESTIN"   : Campo="TG_DESTIN"
            Case Campo="TG_DTREF"         : Campo="TG_TPMOVDESTIN"
            Case Campo="TG_USUCONTA"      : Campo="TG_DTREF"
            Case Campo="TG_CODMODELO"     : Campo="TG_USUCONTA"
            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_CONTA"
                    Case Campo="TG_CONTA"        : Campo="TG_DESTIN"
                    Case Campo="TG_DESTIN"       : Campo="TG_TPMOVDESTIN"
                    Case Campo="TG_TPMOVDESTIN"  : Campo="TG_DTREF"
                    Case Campo="TG_DTREF"        : Campo="TG_USUCONTA"
                    Case Campo="TG_USUCONTA"     : Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"    : Campo="YES"
                 EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESA"  :
     MSG_CAMPO="Somente uma Empresa disponivel"
  Case Campo="TG_CONTA"    :
     MSG_CAMPO="Somente uma Conta disponivel"
  Case Campo="TG_USUCONTA" :
     MensagemCheckBoxes()
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("1   Anal¡tico")
ModeloRelatoriosAdd("2   Sint‚tico")
ModeloRelatoriosAdd("Fim")

EndProc ;ModeloRelatoriosCarregaLista

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

If Not IsAssigned(SYS_CONTROLE_DIA)    Then SYS_CONTROLE_DIA    =""  EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE  =""  EndIf

VSDGEMPRESA  =""
VSDGCONTA    =""
VSDGNCONTROLE=SYS_CONTROLE_DIA
VSDGDTREF    =Today()
VSDGDESTIN  =""
VSDGTPMOVDESTIN=""

Array VSDG_USUCONTA[1]
VSDG_USUCONTA[1] = False

ListaRegra_Funcao("ListaRegra_TGAtivado","[TG_DESTIN]")

ModeloRelatoriosCarregaLista()

While True

  ShowDialog "Controle do Caixa" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140, -60  
   @ 05,12   Height 16 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_NOMEMP" To VSDGNOMEMP

    Label  @ 02,00 "Conta"  For "TG_CONTA"
    Accept @ 03,01 Width 07 "A4"  Picture "#*#" Tag "TG_CONTA"    To VSDGCONTA
    Accept @ 03,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMCONTA" To VSDGNOMCONTA

    Label  @ 04,00 "Destinacao"  For "TG_DESTIN"
    Accept @ 05,02 Width 06 "A3"  Picture "!*!" Tag "TG_DESTIN"    To VSDGDESTIN
    Accept @ 05,09 Width 21 "A30" Picture "!*!" Tag "TG_NOMDESTIN" To VSDGNOMDESTIN

    Label  @ 04,28 "TpMov" For "TG_TPMOVDESTIN"
    Accept @ 05,30 Width 04 "A1"  Picture "E,S" Tag "TG_TPMOVDESTIN" To VSDGTPMOVDESTIN

    Label  @ 06,00 "Data Referente" For "TG_DTREF"
    Accept @ 07,01 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF

    CheckBoxes @01,35 Height 1 Width 33 Tag "TG_USUCONTA"
    "Conta padr„o por usu rio" to VSDG_USUCONTA[1]

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

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If VSDGCONTA=""
     Then Mensagem("Conta Invalida !")
          Loop
  EndIf

  If VSDGTPCONTA<>"X"
     Then Mensagem("Tipo de conta inv lida !// Informar conta tipo CAIXA !")
          Loop
  EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, processando")
  Tabela=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\Rm_1200" Tabela
  Empty(Tabela)

  Seq=0
  SelecionaConta()
  SelecionaVendas_Devolucoes()
  SelecionaRecebimentos()
  SelecionaRecebimentos2()
  SelecionaOutrasEntradasSaidas()
  SelecionaPagamentos()
  SelecionaSomatorias()

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

  IMPRIREL(Tabela,"R")
  Delete Tabela
  
EndWhile
ClearAll
Release Vars All
Release Procs All
