;** C_ClieC  *******************************************************************
;*  Consulta da Posi‡„o do Cliente                                             *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 24/10/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Forma de Pagamento
;Ultima Alteracao: 13/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 24/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes PGDN=Finalizar
;Ultima Alteracao: 22/02/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Credito e Cheques                         
;Ultima Alteracao: 12/01/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Cheques em Cobranca
;Ultima Alteracao: 25/05/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Edicao F1
;Ultima Alteracao: 04/06/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Maximo Dias Atraso, Ajustes Layout/Impressao
;Ultima Alteracao: 10/06/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Transportadora      Ajustes Layout/Impressao
;Ultima Alteracao: 08/06/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Cheques Trocados   
;Ultima Alteracao: 30/06/2010 por Bruno Carvalho
;Motivo Alteracao: Adiconado Oberva‡”es para Vendas
;Ultima Alteracao: 14/10/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Edita_Memo
;Ultima Alteracao: 21/10/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Observacoes para Vendas
;Ultima Alteracao: 04/01/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas    
;Ultima Alteracao: 21/02/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes no Novo Layout  
;Ultima Alteracao: 15/07/2011 por Karina Andrade
;Motivo Alteracao: Ajustes Novo Layout e add analise vendas por grafico.
;Ultima Alteracao: 30/11/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes na Rotina de Vizualiza‡Æo da Observa‡Æo  
;Ultima Alteracao: 10/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 27/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Teclas retorno em Funcäes

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True      
     
  Finalizar=False                          
;** Criando Registro Master **
  While True
     End
     SeqMaster=[Sequencia Master]+1
     PgDn PgDn PgDn PgDn PgDn
     [Sequencia Master]=SeqMaster
     LockRecord
     If RetVal Then QuitLoop EndIf
  EndWhile

  Moveto [Codigo]

  While True

  TECLA="F1=Tabela"
  BarraPadrao = "A"
  AguardaTeclas2()
             
  Switch
      Case RetVal=-33 : SemFuncoes()
      Case RetVal="F3": SemFicha()
      Case RetVal=-94 : MsgTeclasPadrao()
      Case Retval="F1":
           CONSULTAF1()
      Case Retval="ESC":
           CHAVE=9
           Del
           Return
      Case Retval="ENTER":
           If IsBlank([])
              Then Loop
           EndIf
           CODIGO=[]
           If [Tipo]<>"C"
              Then Mensagem("Tipo n„o ‚ Cliente !")
           EndIf
           CHAVE=0
           Exclusao()
           Selecionar()
           Return
      EndSwitch
   EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Fun‡Æo                                                                      *
;*******************************************************************************
Proc Funcao()  
  
If Not IsAssigned(Retval) Then Retval="" EndIF

If Retval=-33
   Then
      ShowPopup " Fun‡”es " CENTERED
      "[F2 ] ~E~ditar/Gravar                  " : " [F2] Editar/Gravar         "                           : "F2",
      "[F4 ] Com~p~lementos                   " : " [F4] Complementos          "                           : "F4",
      "[F5 ] ~O~bserva‡”es                    " : " [F5] Observa‡”es gerais    "                           : "F5",
      "[F11] O~b~serva‡”es p/ Vendas          " : " [F11] Observa‡”es p/ Venda "                           : "F11",
      "[F6 ] ~P~edidos em aberto              " : " [F6] Rela‡ao de Pedidos em Aberto"                     : "F6",
      "[F7 ] ~C~heques a descontar/a compensar" : " [F7] Rela‡„o de Cheques a Descontar ou em Compensa‡„o (-7 Dias)" : "F7",
      "[F8 ] T¡tulos ~V~encidos               " : " [F8] Rela‡„o de T¡tulos Vencidos"                      : "F8",
      "[F9 ] T¡tulos ~A~ vencer               " : " [F9] Rela‡„o de T¡tulos a Vencer"                      : "F9",
      "[F12] An lise por ~G~r fico            " : " [F12] An lise de Vendas por Gr fico"                   : "F12",
      "[F3 ] ~I~mprimir                       " : " [F3] Imprimir Posi‡„o do cliente"                      : "F3",
      "~C~ancelar                             " : " Cancelar"                                              : "CANCELAR"
     EndMenu
      To MenuVar
     echo off

     If MenuVar="CANCELAR" or MenuVar="Esc"
         Then Return False
     EndIf
     RetVal=MenuVar

EndIf    
  
EndProc ;Funcao()

;*******************************************************************************
;* Checa Teclas                                                                *
;*******************************************************************************
Proc ChecaTeclasFuncao()  

Switch
  Case RetVal=-94: MsgTeclasPadrao()
  Case Retval="F2" :
       If Table()<>"C_cliec"
        Then CHAVE=9  Return 
       EndIf       
       If Not EM_EDICAO
        Then If Checa_Supervisor()
              Then EM_EDICAO=True
                   ImageRights
             EndIf
        Else Atualizar()
             EM_EDICAO=False
             ImageRights ReadOnly
       EndIf       
  Case Retval="F3" :
       Moveto "C_cliec"
       Moveto [Razao Social] 
       Do_it!
       DispositivoI("CFG")
       If OK=""
          Then CoEditKey
               Return
       EndIf
       ArqImp=PrivDir()+"PosClie.Txt"
       Deleta_Arquivo(ArqImp)
       AGUARDE("Imprimindo Posi‡„o do Cliente ...")
       Imprimir()
       ;---- Imprime Arquivo Impressao ------------------------------------------------
       ImpriArq(ARQIMP)
       LIMPAGUARDE()    
  Case Retval="F4" : Moveto "C_cliec"
                     Complemento()
  Case Retval="F5" : Moveto "C_cliec"
                     If EM_EDICAO 
                        Then Edita_Memo("Observacoes",10,01,13,76,"Observa‡”es")
                        Else Ver_Memo("Observacoes",10,01,13,76,"Observa‡”es")
                     EndIf     
  Case RetVal="F6" : PAGINA("C_Cliep","MR")  
  Case Retval=-116 : Switch
                      Case Table()="C_cliec"  : PAGINA("C_Cliep","MR") 
                      Case Table()="C_cliep"  : TABIDA="C_cliecq"
                      Case Table()="C_cliecq" : TABIDA="C_cliev"
                      Case Table()="C_cliev"  : TABIDA="C_clieav"
                      Case Table()="C_clieav" : Return         
                     EndSwitch
  Case Retval="F7" : PAGINA("C_Cliecq","MR")
  Case Retval="F8" : PAGINA("C_Cliev","MR")
  Case RetVal="F9" : PAGINA("C_Clieav","MR")
  Case Retval=-115 : Switch
                      Case Table()="C_cliep"  : Return         
                      Case Table()="C_cliecq" : TABIDA="C_cliep"
                      Case Table()="C_cliev"  : TABIDA="C_cliecq"
                      Case Table()="C_clieav" : TABIDA="C_cliev"
                     EndSwitch   
  Case Retval="F11" or Retval=-133: Moveto "C_cliec"
                                    If EM_EDICAO 
                                       Then Edita_Memo("Obs_Vendas",10,01,13,76,"Observa‡”es p/ Vendas")
                                       Else Ver_Memo("Obs_Vendas",10,01,13,76,"Observa‡”es p/ Vendas")
                                    EndIf 
  Case Retval="F12" or Retval=-134: Grafico()
                                         
EndSwitch      

EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()
Moveto [Razao Social]
LockRecord

EM_EDICAO=False
ImageRights ReadOnly

While True
      
  If Field()="Situacao do Cliente" And EM_EDICAO
     Then TECLA="F1=Consulta  ";Ctrl+"+Chr(27)+" "+Chr(26)
     Else TECLA=""
          ;TECLA="Ctrl+"+Chr(27)+" "+Chr(26)
  EndIf

  MSG=Field()                                        
  If Field()="Maior Fatura"
     Then MSG="Valor da Maior Fatura"
  EndIf
  
  If RetVal="F2"
    Then ChecaTeclasFuncao()
  EndIf   
  
  BarraPadrao = "B"
  AguardaTeclas2()
  
  Funcao()

  Switch
    Case RetVal="ZOOM" Or RetVal="ZOOMNEXT":
         NaoLocaliza() 
    Case Retval="F1" And EM_EDICAO :
         If Field()="Situacao do Cliente"
             Then
                 Echo Normal
                 Echo Off
                 ShowPopup " Situa‡”es " CENTERED
                  "~BOM~       ": " Bom cliente                   " :"BOM",
                  "~R~egular   ": " Aten‡„o para novas vendas     " :"REGULAR",
                  "~P~‚ssimo   ": " Impedir novas vendas          " :"PESSIMO",
                  "R~e~cadastro": " N„o vender sem recadastramento" :"RECADASTRO",
                  "~C~ancelar  ": " Cancelar a Opera‡„o           " : "CANCELAR"
                 EndMenu
                 To MenuVar
                 Echo Off
    
                If MenuVar="CANCELAR" or MenuVar="Esc"
                    Then Loop
                    Else []=MenuVar
                EndIf
         EndIf                   
    Case Retval="PGDN":
         Finalizar=True       
    Case Retval="FIELDVIEW" or Retval="F35":
         EDITFIELD()
    Case Retval="ESC":
         Switch
           Case Field()="Razao Social"            : Finalizar=True
           Case Field()="Valor da Primeira Compra": Moveto [Data da Primeira Compra]
           Case Field()="Data da Ultima Compra"   : Moveto [Valor da Primeira Compra]
           Case Field()="Valor da Ultima Compra"  : Moveto [Data da Ultima Compra]
           Case Field()="Data da Maior Fatura"    : Moveto [Valor da Ultima Compra]
           Case Field()="Maior Fatura"            : Moveto [Data da Maior Fatura]
           Case Field()="Data_Cadastro"           : Moveto [Maior Fatura]
           Case Field()="Maior Atraso"            : Moveto [Data_Cadastro]
           Case Field()="Data do Maior Atraso"    : Moveto [Maior Atraso]
           Case Field()="Valor do Maior Atraso"   : Moveto [Data do Maior Atraso]
           Case Field()="Numero de Atrasos"       : Moveto [Valor do Maior Atraso]
           Case Field()="Situacao do Cliente"     : Moveto [Numero de Atrasos]
           Case Field()="Maximo Dias Atraso"      : Moveto [Situacao do Cliente]
           Case Field()="Limite de Credito"       : Moveto [Maximo Dias Atraso]
           OtherWise: Left
         EndSwitch         
    Case Retval="ENTER":
         Switch
           Case Field() = "UF":
                If IsBlank([])Then Loop EndIf
                Right
           Case Field()="CGC":
                ;validar cgc/cpf
                ;123456789012345678
                ;##.###.###/####-##  CGC
                ;12345678901234
                ;###.###.###-##      CPF
                Validar=False
                If SubStr([],03,1)="." and
                   SubStr([],07,1)="." and
                   SubStr([],11,1)="/" and
                   SubStr([],16,1)="-"
                   Then WVR=""               ;CGC
                        WVR=SubStr([],01,2)+
                            SubStr([],04,3)+
                            SubStr([],08,3)+
                            SubStr([],12,4)+
                            SubStr([],17,2)
                        CHECACGC(WVR)
                        If WB=0
                           Then Validar=True
                        EndIf
                   Else If SubStr([],04,1)="." and
                           SubStr([],08,1)="." and
                           SubStr([],12,1)="-"
                           Then WVR=""               ;CPF
                                WVR=SubStr([],01,3)+
                                    SubStr([],05,3)+
                                    SubStr([],09,3)+
                                    SubStr([],13,2)
                                CHECACPF(WVR)
                                If WB=0
                                   Then Validar=True
                                EndIf
                        EndIf
                EndIf
                If Not Validar
                   Then Mensagem("CGC/CPF Invalido, Checar Formato CGC=##.###.###/####-##, // //CPF=###.###.###-##")
                EndIf
                Right
    
           Case Field()="Data da Primeira Compra"  : Moveto [Valor da Primeira Compra]
           Case Field()="Valor da Primeira Compra" : Moveto [Data da Ultima Compra]
           Case Field()="Data da Ultima Compra"    : Moveto [Valor da Ultima Compra]
           Case Field()="Valor da Ultima Compra"   : Moveto [Data da Maior Fatura]
           Case Field()="Data da Maior Fatura"     : Moveto [Maior Fatura]
           Case Field()="Maior Fatura"             : Moveto [Data_Cadastro]
           Case Field()="Data_Cadastro"            : Moveto [Maior Atraso]
           Case Field()="Maior Atraso"             : Moveto [Data do Maior Atraso]
           Case Field()="Data do Maior Atraso"     : Moveto [Valor do Maior Atraso]
           Case Field()="Valor do Maior Atraso"    : Moveto [Numero de Atrasos]
           Case Field()="Numero de Atrasos"        : Moveto [Situacao do Cliente]
           Case Field()="Situacao do Cliente"      : If IsBlank([]) Then []="BOM" EndIf
                                                     Moveto [Maximo Dias Atraso]
           Case Field()="Maximo Dias Atraso"       : Moveto [Limite de Credito]
           Case Field()="Limite de Credito"        : 
                If RetVal = "ESC"
                   Then Moveto [Limite de Credito]
                   Else Moveto [Razao Social]
                Endif
           OtherWise:
                Right
         EndSwitch
         OtherWise: ChecaTeclasFuncao() 
  EndSwitch          

  If Finalizar
     Then ImageRights
          Exclusao()
          Del
          QuitLoop
  EndIf

EndWhile       
EndProc

;*******************************************************************************
;* Rotina de Controle p/ ShowDialog                                            *
;*******************************************************************************
Proc Geral_Dialog(Disparo,Campo,Evento,Elemento)

TECLA   =""
MSGCAMPO=""
Temp=True

If INICIO_DIALOG
   Then If Not EM_EDICAO
           Then Campo="TG_NADA"
        Endif
Endif

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then

   Switch
      Case Evento["KeyCode"] = 9 Or Evento["KeyCode"] = -15: Temp=False
      Case Evento["KeyCode"] = -81:
           Switch
             Case Campo="C_Referencia Comercial1" : VSD_REF_COM1=ControlValue("C_Referencia Comercial1")
             Case Campo="C_Referencia Comercial2" : VSD_REF_COM2=ControlValue("C_Referencia Comercial2")
             Case Campo="C_Referencia Comercial3" : VSD_REF_COM3=ControlValue("C_Referencia Comercial3")
             Case Campo="C_Referencia Bancaria"   : VSD_REF_BANC=ControlValue("C_Referencia Bancaria")
                                                    Message "Sim ou Nao"
             Case Campo="C_SPC"                   : VSD_SPC=ControlValue("C_SPC")
             Case Campo="C_Consulta SPC"          : VSD_CONSULTA_SPC=ControlValue("C_Consulta SPC")
             Case Campo="C_Pai Socio"             : VSD_PAI_SOCIO=ControlValue("C_Pai Socio")
             Case Campo="C_Mae Socio"             : VSD_MAE_SOCIO=ControlValue("C_Mae Socio")
             Case Campo="C_Renda Faturamento"     : VSD_RENDA_FAT=ControlValue("C_Renda Faturamento")
             Case Campo="C_Nome Parente"          : VSD_N_PARENTE=ControlValue("C_Nome Parente")
             Case Campo="C_Endereco Parente"      : VSD_END_PARENTE=ControlValue("C_Endereco Parente")
             Case Campo="C_Local Trabalho"        : VSD_LOCAL_TRAB=ControlValue("C_Local Trabalho")
             Case Campo="C_Endereco Trabalho"     : VSD_END_TRAB=ControlValue("C_Endereco Trabalho")
             Case Campo="C_Tempo Trabalho"        : VSD_TEMPO_TRAB=ControlValue("C_Tempo Trabalho")
             Case Campo="C_Nome_Fiador"           : VSD_Nome_Fiador=ControlValue("C_Nome_Fiador")
             Case Campo="C_CGC_Fiador"            : VSD_CGC_Fiador=ControlValue("C_CGC_Fiador")
             Case Campo="C_End_Fiador"            : VSD_End_Fiador=ControlValue("C_End_Fiador")
             Case Campo="C_Tel_Fiador"            : VSD_Tel_Fiador=ControlValue("C_Tel_Fiador")
             Case Campo="C_Imovel Proprio/Valor"  : VSD_IMOVEL_P=ControlValue("C_Imovel Proprio/Valor")
             Case Campo="C_Data de Nascimento"    : VSD_DATA_NASC=ControlValue("C_Data de Nascimento")
           EndSwitch
           If EM_EDICAO
              Then Grava_Complemento()
           Endif
           CancelDialog

      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="C_Referencia Comercial1" : CancelDialog
             Case Campo="C_Referencia Comercial2" : Campo="C_Referencia Comercial1"
             Case Campo="C_Referencia Comercial3" : Campo="C_Referencia Comercial2"
             Case Campo="C_Referencia Bancaria"   : Campo="C_Referencia Comercial3"
             Case Campo="C_SPC"                   : Campo="C_Referencia Bancaria"
             Case Campo="C_Consulta SPC"          : Campo="C_SPC"
                                                    MSGCAMPO="Sim ou Nao"
             Case Campo="C_Pai Socio"             : Campo="C_Consulta SPC"
             Case Campo="C_Mae Socio"             : Campo="C_Pai Socio"
             Case Campo="C_Renda Faturamento"     : Campo="C_Mae Socio"
             Case Campo="C_Nome Parente"          : Campo="C_Renda Faturamento"
             Case Campo="C_Endereco Parente"      : Campo="C_Nome Parente"
             Case Campo="C_Local Trabalho"        : Campo="C_Endereco Parente"
             Case Campo="C_Endereco Trabalho"     : Campo="C_Local Trabalho"
             Case Campo="C_Tempo Trabalho"        : Campo="C_Endereco Trabalho"
             Case Campo="C_Nome_Fiador"           : Campo="C_Tempo Trabalho"
             Case Campo="C_CGC_Fiador"            : Campo="C_Nome_Fiador"
             Case Campo="C_End_Fiador"            : Campo="C_CGC_Fiador"
             Case Campo="C_Tel_Fiador"            : Campo="C_End_Fiador"
             Case Campo="C_Imovel Proprio/Valor"  : Campo="C_Tel_Fiador"
             Case Campo="C_Data de Nascimento"    : Campo="C_Imovel Proprio/Valor"
           EndSwitch
           If EM_EDICAO
              Then Grava_Complemento()
           Endif
           CancelDialog

      Case Evento["KeyCode"] = 13:
           Switch
             Case Campo="C_Referencia Comercial1":
                  VSD_REF_COM1=ControlValue("C_Referencia Comercial1")
                  Campo="C_Referencia Comercial2"
             Case Campo="C_Referencia Comercial2":
                  VSD_REF_COM2=ControlValue("C_Referencia Comercial2")
                  Campo="C_Referencia Comercial3"
             Case Campo="C_Referencia Comercial3":
                  VSD_REF_COM3=ControlValue("C_Referencia Comercial3")
                  Campo="C_Referencia Bancaria"
             Case Campo="C_Referencia Bancaria":
                  VSD_REF_BANC=ControlValue("C_Referencia Bancaria")
                  Campo="C_SPC"
                  MSGCAMPO="Utiliza SPC: Sim/N„o"
             Case Campo="C_SPC":
                  VSD_SPC=ControlValue("C_SPC")
                  Campo="C_Consulta SPC"
             Case Campo="C_Consulta SPC":
                  VSD_CONSULTA_SPC=ControlValue("C_Consulta SPC")
                  Campo="C_Pai Socio"
             Case Campo="C_Pai Socio":
                  VSD_PAI_SOCIO=ControlValue("C_Pai Socio")
                  Campo="C_Mae Socio"
             Case Campo="C_Mae Socio":
                  VSD_MAE_SOCIO=ControlValue("C_Mae Socio")
                  Campo="C_Renda Faturamento"
             Case Campo="C_Renda Faturamento":
                  VSD_RENDA_FAT=ControlValue("C_Renda Faturamento")
                  Campo="C_Nome Parente"
             Case Campo="C_Nome Parente":
                  VSD_N_PARENTE=ControlValue("C_Nome Parente")
                  Campo="C_Endereco Parente"
             Case Campo="C_Endereco Parente":
                  VSD_END_PARENTE=ControlValue("C_Endereco Parente")
                  Campo="C_Local Trabalho"
             Case Campo="C_Local Trabalho":
                  VSD_LOCAL_TRAB=ControlValue("C_Local Trabalho")
                  Campo="C_Endereco Trabalho"
             Case Campo="C_Endereco Trabalho":
                  VSD_END_TRAB=ControlValue("C_Endereco Trabalho")
                  Campo="C_Tempo Trabalho"
             Case Campo="C_Tempo Trabalho":
                  VSD_TEMPO_TRAB=ControlValue("C_Tempo Trabalho")
                  Campo="C_Nome_Fiador"
             Case Campo="C_Nome_Fiador":
                  VSD_Nome_Fiador=ControlValue("C_Nome_Fiador")
                  Campo="C_CGC_Fiador"
             Case Campo="C_CGC_Fiador":
                  VSD_CGC_Fiador=ControlValue("C_CGC_Fiador")
                  If Not IsBlank(VSD_CGC_Fiador)
                     Then If Checa_CGC_CPF_Formatado(VSD_CGC_Fiador)
                             Then Campo="C_End_Fiador"
                          EndIf
                     Else Campo="C_End_Fiador"
                  EndIf
             Case Campo="C_End_Fiador":
                  VSD_End_Fiador=ControlValue("C_End_Fiador")
                  Campo="C_Tel_Fiador"
             Case Campo="C_Tel_Fiador":
                  VSD_Tel_Fiador=ControlValue("C_Tel_Fiador")
                  Campo="C_Imovel Proprio/Valor"
             Case Campo="C_Imovel Proprio/Valor":
                  VSD_IMOVEL_P=ControlValue("C_Imovel Proprio/Valor")
                  Campo="C_Data de Nascimento"
             Case Campo="C_Data de Nascimento":
                  VSD_DATA_NASC=ControlValue("C_Data de Nascimento")
                  If EM_EDICAO
                     Then Grava_Complemento()
                  Endif
                  UnLockRecord
                  CancelDialog
           EndSwitch
   EndSwitch
EndIf
RefreshDialog
SelectControl Campo
TECLA=" Esc=Retornar  PgDn=Finalizar   "

Switch
   Case Campo="C_CGC_Fiador":
        MSGCAMPO="CPF/CGC do Fiador"
   Case Campo="C_CGC_Fiador":
        MSGCAMPO="CPF/CGC do Fiador"
   Case Campo="C_Tel_Fiador":
        MSGCAMPO="Telefone do Fiador"
EndSwitch

@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))
PaintCanvas Attribute 31 24,0,24,79
Message(MSGCAMPO)
Return TEMP
EndProc   ; (Geral_Dialog)

;*******************************************************************************
;* Rotina para Impress„o da Posi‡Æo do Cliente                                 *
;*******************************************************************************
Proc Imprimir()
Moveto "C_Cliec"
Print File ARQIMP CI_10CPP+"\n"
Print File ARQIMP Fill("-",80)+"\n"
Print File ARQIMP Format("W38,AL",NOMEMPRESA)+Spaces(04)+"Emissao: "+Format("D13",Today())+"-"+Time()+"\n"
Print File ARQIMP Fill("-",80)+"\n\n"

Print File ARQIMP Spaces(30)+"EPosicao do ClienteF"+"\n\n"

Print File ARQIMP "* Cliente: "+Format("W42,AL",[Razao Social])+[CGC]+"\n"

Print File ARQIMP "    "+Format("W7,AL",[Codigo])+Format("W42,AL",[Endereco])+[IE]+"\n"

Print File ARQIMP Spaces(11)+Format("W22,AL",[Bairro])+Format("W22,AL",[Cidade])
Print File ARQIMP Format("W5,AL",[UF])+[CEP]+"\n"

Print File ARQIMP Spaces(11)+Format("W22,AL",[Nome Fantasia Represent])+Format("W22,AL",[Contato])
Print File ARQIMP Format("W20,AL",[Telefone])+"\n\n"

Print File ARQIMP "* Compras:"+ Spaces(30)
Print File ARQIMP "* Atrasos:     "+"[ Maximo Dias: "+LTrim(StrVal(Format("W10,EIC",[Maximo Dias Atraso])))+" ] "+"\n"

Print File ARQIMP Spaces(14)+"Data"+Spaces(11)+"Valor"+Spaces(06)
Print File ARQIMP " O maior foi "+Format("W6,AL",[Maior Atraso])+ " Dias em "+Format("W10,AL",Format("D10",[Data do Maior Atraso]))+"\n"
Print File ARQIMP "Primeira:"+Spaces(03)+Format("W10,AL",Format("D13",[Data da Primeira Compra]))+Spaces(03)+Format("W11.2,EIC",[Valor da Primeira Compra])+Spaces(04)
Print File ARQIMP " com "+LTrim(Format("W11.2,EIC",[Valor do Maior Atraso]))+" frequencia "+StrVal([Numero de Atrasos])+"\n"
Print File ARQIMP "Ultima  :"+Spaces(03)+Format("W10,AL",Format("D13",[Data da Ultima Compra]))+Spaces(03)+Format("W11.2,EIC",[Valor da Ultima Compra])+"\n"
Print File ARQIMP "Maior   :"+Spaces(03)+Format("W10,AL",Format("D13",[Data da Maior Fatura]))+Spaces(03)+Format("W11.2,EIC",[Maior Fatura])+Spaces(04)
Print File ARQIMP "* Situacao do Cliente: "+Format("W20,AL",[Situacao do Cliente])+"\n\n"

Print File ARQIMP "* Resumo dos Movimentos: "+"\n"
Print File ARQIMP "(+)Pedido em Aberto......:"+Format("W10.2,EIC",[Total Pedidos])+"\n"

Print File ARQIMP "(+)Titulos a Vencer......:"+Format("W10.2,EIC",[Total A Vencer])+Spaces(04)
Print File ARQIMP "(+)Titulos Vencidos......:"+Format("W10.2,EIC",[Total Vencido])+"\n"

Print File ARQIMP "(+)Cheques a Descontar...:"+Format("W10.2,EIC",[Total Cheques a Descontar])+Spaces(04)
Print File ARQIMP "(+)Cheques em Compensacao:"+Format("W10.2,EIC",[Total Cheques a Compensar])+"\n"

Print File ARQIMP "(=)Total Cheques.........:"+Format("W10.2,EIC",[Total Cheques]+[Total a Vencer]+[Total Vencido])+"\n"

Print File ARQIMP "(-)Limite de Credito.....:"+Format("W10.2,EIC",[Limite de Credito])+"\n"
Print File ARQIMP "(=)Disponibilidade.......:"+Format("W10.2,EIC",[Limite de Credito]-([Total Pedidos]+[Total A Vencer]+[Total Vencido])+[Total Cheques])+"\n\n"
LINHA=25
If SubStr([Observacoes],1,78)<>""
   Then Print File ARQIMP "* Observacoes:"+"\n"
        Print File ARQIMP SubStr([Observacoes],1,78)+"\n"
        LINHA=LINHA+2
        If SubStr([Observacoes],79,78)<>""
           Then Print File ARQIMP SubStr([Observacoes],79,78)+"\n"
                LINHA=LINHA+1
           Else Print File ARQIMP "\n"
                LINHA=LINHA+1
        EndIf
        If SubStr([Observacoes],157,78)<>""
           Then Print File ARQIMP SubStr([Observacoes],157,78)+"\n\n"
                LINHA=LINHA+2
        EndIf
EndIf

Print File ARQIMP Fill("-",80)+"\n"
Print File ARQIMP "* Cheques a Descontar/Em Compensacao:"+"\n"
Print File ARQIMP "Vencto      Sit    BCO   N§ do Cheque  Titular                          Valor"+"\n"
CODI=[Codigo]     ;99/99/9999  12345  1234  123456789012341234567890123456789012345678123999.999,99
LINHA=LINHA+3
Moveto "C_Cliecq"
Scan
 If (LINHA>60)
    Then Print File ARQIMP "\f"
         LINHA=0
 EndIf
 LINHA=LINHA+1
 Print File ARQIMP Format("W12,AL",Format("D13,AL",[Data de Vencimento]))+Format("W5,AL",[Situacao])+Spaces(02)
 Print File ARQIMP Format("W6,AL",[Codigo_Banco])+Format("W14,AL",[Numero_Cheque])
 Print File ARQIMP Format("W24,AL",LTrim([Titular_Cheque]))+Format("W14.2,EIC",[Valor])+"\n"
EndScan
Moveto "C_cliec"

If LINHA>60
   Then Print File ARQIMP "\f"
        LINHA=0
EndIf
Print File ARQIMP Spaces(50)+"Total Cheques:"+Format("W13.2,EIC",[Total Cheques])+"\n\n"
LINHA=LINHA+2

If LINHA>60
   Then Print File ARQIMP "\f"
        LINHA=0
EndIf
Print File ARQIMP Fill("-",80)+"\n"
Print File ARQIMP "* Titulos a Vencer:"+"\n"
Print File ARQIMP "Vencto      NDD  Emissao     Documento       FP TpCarteira              Valor"+"\n"
LINHA=LINHA+3

Moveto "C_clieav"
Scan
 If LINHA>60
    Then Print File ARQIMP "\f"
         LINHA=0
 EndIf
 LINHA=LINHA+1
 Print File ARQIMP Format("D13,AL",[Data de Vencimento])+" "+Format("W3,AL",[Data de Vencimento]-Today())+Spaces(03)
 Print File ARQIMP Format("D13,AL",[Data de Emissao])+"  "+Format("W3,AL",[Tipo do Documento])+" "+Format("W10,AL",[Numero do Documento])+Spaces(02)
 Print File ARQIMP Format("W03,AL",[Tipo do Pagamento])+Format("W15,AL",[Descricao do Lancamento])+Spaces(04)+Format("W10.2,EIC",[Valor])+"\n"
EndScan

Moveto "C_cliec"

If LINHA>60
   Then Print File ARQIMP "\f"
        LINHA=0
EndIf
Print File ARQIMP Spaces(49)+"Total A Vencer:"+Format("W13.2,EIC",[Total A Vencer])+"\n\n"
LINHA=LINHA+2

If LINHA>60
   Then LINHA=0
        Print File ARQIMP "\f"
EndIf
Print File ARQIMP Fill("-",80)+"\n"
Print File ARQIMP "* Titulos Vencidos:"+"\n"
Print File ARQIMP "Vencto      NDD   Emissao     Documento       FP TpCarteira             Valor"+"\n"
LINHA=LINHA+3

Moveto "C_cliev"
Scan
 If LINHA>60
    Then LINHA=0
         Print File ARQIMP "\f"
 EndIf
 LINHA=LINHA+1
 Print File ARQIMP Format("D13,AL",[Data de Vencimento])+" "+Format("W4,AL",Today()-[Data de Vencimento])+Spaces(03)
 Print File ARQIMP Format("D13,AL",[Data de Emissao])+"  "+Format("W3,AL",[Tipo do Documento])+" "+Format("W10,AL",[Numero do Documento])+Spaces(02)
 Print File ARQIMP Format("W03,AL",[Tipo do Pagamento])+Format("W14,AL",[Descricao do Lancamento])+Spaces(04)+Format("W10.2,EIC",[Valor])+"\n"
EndScan

Moveto "C_cliec"
If LINHA>60
   Then LINHA=0
        Print File ARQIMP "\f"
EndIf
Print File ARQIMP Spaces(49)+"Total Vencidos:"+Format("W13.2,EIC",[Total Vencido])+"\n\n"
LINHA=LINHA+2

If LINHA>60
   Then LINHA=0
        Print File ARQIMP "\f"
EndIf
Print File ARQIMP Fill("-",80)+"\n"
Print File ARQIMP "* Pedidos em Aberto:"+"\n"
Print File ARQIMP "Entregar     Emissao     Numero  Cond.Pagto                             Valor"+"\n"
LINHA=LINHA+3

Moveto "C_cliep"
Scan
 If LINHA>60
    Then LINHA=0
         Print File ARQIMP "\f"
 EndIf
 LINHA=LINHA+1
 Print File ARQIMP Format("D13,AL",[Data de Entrega])+"   "+Format("D13,AL",[Data de Emissao])+Spaces(02)
 Print File ARQIMP Format("W6,AL",[Numero do Pedido])+"  "+Format("W29,AL",[Descricao CondPagto])+Spaces(02)
 Print File ARQIMP Format("W13.2,EIC",[Preco Total])+"\n"
EndScan

Moveto "C_cliec"

If LINHA>60
   Then LINHA=0
        Print File ARQIMP "\f"
EndIf
Print File ARQIMP Spaces(48)+"Total Em Aberto:"+Format("W13.2,EIC",[Total Pedidos])+"\n\n"
LINHA=LINHA+1

Print File ARQIMP "\f"
Moveto "C_cliec"
Moveto [Razao Social]
CoeditKey
EndProc;

;*******************************************************************************
;* Rotina Wait p/ Pagina()                                                     *
;*******************************************************************************
proc wait_pagina(triggertype,event,cyclenumber)
private ncampo,nrec

If triggertype="TOUCHRECORD" And Event["TYPE"]="MOUSE"
   Then  Return 1
EndIf

If Event["TYPE"]="KEY" And triggertype="EVENT"
   Then Switch
          Case event["KEYCODE"]=-94:
               MSG=    "      Esc= Voltar                                                //"
               MSG=MSG+"    Alt+F= Fun‡”es                                               //"
               MSG=MSG+"   Ctrl+Z= Localizar registro                                    //"
               MSG=MSG+"    Alt+Z= Localizar pr¢ximo registro                            // //"

               MSG=MSG+"     Home= primeiro registro     Up"+Chr(25)+"= registro anterior          //"
               MSG=MSG+"      End= £ltimo registro     Down"+Chr(24)+"= Pr¢ximo registro           //"
               MSG=MSG+"  Page Up= P gina anterior     * Ctrl+Page Up                    //"
               MSG=MSG+"Page Down= Pr¢xima p gina      * Ctrl+Page Down                  // //"
               
               MSG=MSG+"* Para localizar r pido bastar teclar no campo desejado! //"
               MSG=MSG+"       BackSpace= Limpa um caracter/localiza r pido      //"
               MSG=MSG+"  Ctrl+BackSpace= Limpar/localiza r pido                 // //"
               MSG=MSG+"  Ctrl+F1= Ajuda/Teclas [?]                                       "
               MsgHelp("Teclas/Fun‡”es",MSG)
               return 1
          Case event["KEYCODE"]=-33       : tcwait=-33  Return 2
          Case event["KEYCODE"]=-115      : tcwait=-115 Return 2
          Case event["KEYCODE"]=-116      : tcwait=-116 Return 2
          Case event["KEYCODE"]=Asc("F2") : tcwait="F2" Return 2
          Case event["KEYCODE"]=Asc("F4") : tcwait="F4" Return 2
          Case event["KEYCODE"]=Asc("F5") : tcwait="F5" Return 2
          Case event["KEYCODE"]=Asc("F6") : tcwait="F6" Return 2
          Case event["KEYCODE"]=Asc("F7") : tcwait="F7" Return 2
          Case event["KEYCODE"]=Asc("F8") : tcwait="F8" Return 2
          Case event["KEYCODE"]=Asc("F9") : tcwait="F9" Return 2
          Case event["KEYCODE"]=Asc("F11") Or
               event["KEYCODE"]=-133      : tcwait="F11" Return 2
          Case event["KEYCODE"]=Asc("F12")Or
               event["KEYCODE"]=-134      : tcwait="F12" Return 2                                
          Case event["KEYCODE"]=Asc("F35") Or
               event["KEYCODE"]=Asc("F1")  Or
               event["KEYCODE"]=Asc("F3")  Or
               event["KEYCODE"]=Asc("F4")  Or
               event["KEYCODE"]=Asc("F5")  Or
               event["KEYCODE"]=Asc("F6")  Or
               event["KEYCODE"]=Asc("F7")  Or
               event["KEYCODE"]=Asc("F8")  Or
               event["KEYCODE"]=Asc("F10") Or
               event["KEYCODE"]=Asc("F11") Or
               event["KEYCODE"]=Asc("F12") Or
               event["KEYCODE"]=-31        Or
               event["KEYCODE"]=-45        Or        
               event["KEYCODE"]=6 :        
               return 1
          Case Event["KEYCODE"]=Asc("ZOOM"):
               PESQUISA()
               prompt TEXTO_LOCATE
               return 1
          Case Event["KEYCODE"]=Asc("ZOOMNEXT"):
               PESQUISACON()
               return 1
          Case Event["KEYCODE"]=Asc("ESC"):
               tcwait="ESC"
               Return 2
          Case Event["KEYCODE"]=Asc("DEL"):
               Return 1
          Case Event["KEYCODE"]=Asc("F9") Or
               Event["KEYCODE"]=Asc("F2") Or
               Event["KEYCODE"]=Asc("ENTER") Or
               ISFIELDVIEW():
               Return 1
          Case Event["KEYCODE"]=Asc("DOWN"):
               If SubStr(tpform,1,2)="MR"
                  Then If Not AtLast()
                          Then nrec=recno() 
                               ncampo=Field()
                               Down
                               If recno()=nrec
                                  Then Down
                               EndIf   
                               moveto field ncampo
                               Return 1
                          Else Return 1
                       EndIf
                  Else Right
               EndIf
               Return 1
          Case Event["KEYCODE"]=Asc("PGUP") Or
               Event["KEYCODE"]=Asc("PGDN"):
               If npages()=1
                  Then ncampo=Field()
                       KeyPress Event["KEYCODE"]
                       moveto field ncampo
                  Else KeyPress Event["KEYCODE"]
               EndIf        
               return 1
          Case Event["KEYCODE"]=Asc("UP"):
               If SubStr(tpform,1,2)="MR"
                  Then nrec=recno() 
                       ncampo=Field()
                       Up
                       If recno()=nrec
                          Then Up
                       EndIf   
                       moveto field ncampo
                  Else Left
               EndIf
               Return 1

          Case Event["KEYCODE"]=Asc("CTRLBACKSPACE"):
               TEXTO_LOCATE=""
               prompt TEXTO_LOCATE
               
               Return 1
          Case Event["KEYCODE"]=Asc("BACKSPACE"):
               If Field()<>FIELD_LOCATE
                  Then FIELD_LOCATE=Field()
                       TEXTO_LOCATE=""
                       prompt TEXTO_LOCATE
               Endif        

               TEXTO_LOCATE=SubStr(TEXTO_LOCATE,1,Len(TEXTO_LOCATE)-1)
               prompt TEXTO_LOCATE
               
               If Not IsBlank(TEXTO_LOCATE)
                  Then Zoom Select TEXTO_LOCATE+".."
               EndIf   
               
               Return 1
          Case (Event["KEYCODE"]>=32 And Event["KEYCODE"]<=125):
               If Field()<>FIELD_LOCATE
                  Then FIELD_LOCATE=Field()
                       TEXTO_LOCATE=""
                       prompt TEXTO_LOCATE
               Endif        

               TEXTO_LOCATE=TEXTO_LOCATE+UPPER(Chr(Event["KEYCODE"]))
               prompt TEXTO_LOCATE
               Zoom Select TEXTO_LOCATE+".."

               Return 1

          Case Event["KEYCODE"]=Asc("CTRLBACKSPACE"):
               TEXTO_LOCATE=""
               prompt TEXTO_LOCATE
               
               Return 1
          Case Event["KEYCODE"]=Asc("BACKSPACE"):
               If Field()<>FIELD_LOCATE
                  Then FIELD_LOCATE=Field()
                       TEXTO_LOCATE=""
                       prompt TEXTO_LOCATE
               Endif        

               TEXTO_LOCATE=SubStr(TEXTO_LOCATE,1,Len(TEXTO_LOCATE)-1)
               prompt TEXTO_LOCATE
               
               If Not IsBlank(TEXTO_LOCATE)
                  Then Zoom Select TEXTO_LOCATE+".."
               EndIf   
               
               Return 1
          Case (Event["KEYCODE"]>=32 And Event["KEYCODE"]<=125):
               If Field()<>FIELD_LOCATE
                  Then FIELD_LOCATE=Field()
                       TEXTO_LOCATE=""
                       prompt TEXTO_LOCATE
               Endif        

               TEXTO_LOCATE=TEXTO_LOCATE+UPPER(Chr(Event["KEYCODE"]))
               prompt TEXTO_LOCATE
               Zoom Select TEXTO_LOCATE+".."

               Return 1
          OtherWise:
              KeyPress Event["KEYCODE"]
              return 1
      EndSwitch
endif

return 0

EndProc
;*******************************************************************************
;*  ROTINA PARA PAGINACAO DE TABELA EM FORM                                    *
;*******************************************************************************
Proc Pagina(TabIda,Tipo)
Private TABIDA,TIPO

While True
  tcwait=""
  
  Mouse Show
  Moveto TABIDA
  If RecordStatus("New")=True
     Then Del
  EndIf
  
  tpform =TIPO
  
  EDITAR ="N"
  EXCLUIR="N"
  If RecordStatus("New")
     Then If SubStr(TIPO,1,2)="MT"
             Then MENSAGEM("Tabela sem Registros !")
          EndIf   
  EndIf
  
  If SubStr(TIPO,1,2)="MR"
     Then Switch
            Case RetVal="F7" or RetVal="HOME":
                 Home
            Case RetVal="PGUP":
                 PgUp
          EndSwitch
     Else Switch
            Case RetVal="F7" or RetVal="HOME":
                 Home
          EndSwitch
  EndIf
  TABIDA=Table()
  
  ImageRights ReadOnly
  SetaCorRegistro("Paginar")

  msgcampo =""            
  Prompt ""
  SpeedBar "["+Chr(17)+"]"       :"ESC",
           "~Fun‡”es~"           :-33,
             "<"+Chr(17)         :-115,
             Chr(16)+">"         :-116,
             "~Localizar~"       :"ZOOM",
             "~Loc~|"+Chr(16)    :"ZOOMNEXT",
             "~?~"               :-94,
             "|"+Chr(17)         :"HOME",
             Chr(17)             :"PGUP",
             Chr(16)             :"PGDN",
             Chr(16)+"|"         :"END"
                    
  FIELD_LOCATE=Field()
  TEXTO_LOCATE=""
                                        
  wait workspace
    proc "wait_pagina"
    trigger "ALL"
    Message "ALL"
    Key "ALL"
  endwait
  ClearSpeedBar
  
  If Table()<>TABIDA
     Then Moveto TABIDA
  EndIf   
  SetaCorRegistro("Editar")
  ImageRights
  
  RetVal=tcwait                       
  Funcao()
  ChecaTeclasFuncao()

  If Retval="ESC" or CHAVE=9
    Then QuitLoop
  EndIf

EndWhile

Moveto "C_ClieC"
Moveto [Razao Social]
 
EndProc  
;*******************************************************************************
;* Exclusao de Registros                                                       *
;*******************************************************************************
Proc EXCLUSAO()
Private i

For i From 1 to 4
  Switch
    Case i=1: Moveto "C_ClieP"
    Case i=2: Moveto "C_ClieCQ"
    Case i=3: Moveto "C_ClieAV"
    Case i=4: Moveto "C_ClieV"
  EndSwitch
  While RecordStatus("New")=False
    Del
  EndWhile
EndFor

Moveto "C_ClieC"
Moveto [Razao Social]
EndProc

;*******************************************************************************
;* Selecionar Dados                                                            *
;*******************************************************************************
Proc Selecionar()
MSG_AGUARDE="Aguarde, Preparando Consulta"

UnLockRecord
FormKey

;; Titulos a Vencer
Aguarde(MSG_AGUARDE+Barra(4,1))
TOTAV=0
TOTV =0
ws=0
Moveto "C_ClieV"
Moveto "C_ClieAV"
Moveto "\\Sistemas\\CtaRec\\Duplic"
Moveto [Codigo do Destinatario]
OrderTable {Inddup22}
Locate IndexOrder by "Inddup22" CODIGO
If RetVal
   Then While [Codigo do Destinatario]=CODIGO
          If [Saldo do Documento]>0.01
             Then ws=ws+1
                  If [Data de Vencimento]>=Today()
                     Then TOTAV=TOTAV+[Saldo do Documento]
                          Moveto "C_ClieAV"
                          End Down
                          [Sequencia Master       ]=SeqMaster
                          [Sequencia              ]=ws
                          [Tipo do Documento      ]=[\Sistemas\CtaRec\Duplic->Tipo do Documento      ]
                          [Numero do Documento    ]=[\Sistemas\CtaRec\Duplic->Numero do Documento    ]
                          [Data de Emissao        ]=[\Sistemas\CtaRec\Duplic->Data de Emissao        ]
                          [Data de Vencimento     ]=[\Sistemas\CtaRec\Duplic->Data de Vencimento     ]
                          [Valor                  ]=[\Sistemas\CtaRec\Duplic->Saldo do Documento     ]
                          [Tipo do Pagamento      ]=[\Sistemas\CtaRec\Duplic->Tipo do Pagamento      ]
                          [Descricao do Lancamento]=[\Sistemas\CtaRec\Duplic->Descricao do Lancamento]
                          UnLockRecord
                     Else TOTV =TOTV +[Saldo do Documento]
                          Moveto "C_ClieV"
                          End Down
                          [Sequencia Master       ]=SeqMaster
                          [Sequencia              ]=ws
                          [Tipo do Documento      ]=[\Sistemas\CtaRec\Duplic->Tipo do Documento      ]
                          [Numero do Documento    ]=[\Sistemas\CtaRec\Duplic->Numero do Documento    ]
                          [Data de Emissao        ]=[\Sistemas\CtaRec\Duplic->Data de Emissao        ]
                          [Data de Vencimento     ]=[\Sistemas\CtaRec\Duplic->Data de Vencimento     ]
                          [Valor                  ]=[\Sistemas\CtaRec\Duplic->Saldo do Documento     ]
                          [Tipo do Pagamento      ]=[\Sistemas\CtaRec\Duplic->Tipo do Pagamento      ]
                          [Descricao do Lancamento]=[\Sistemas\CtaRec\Duplic->Descricao do Lancamento]
                          UnLockRecord
                  EndIf
                  Moveto "\\Sistemas\\CtaRec\\Duplic"
					EndIf
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "Inddup22" Next CODIGO
				EndWhile
EndIf

;;; Pedidos a entregar
Aguarde(MSG_AGUARDE+Barra(4,2))
TOTP=0
Moveto "C_ClieP"
Moveto "\\Sistemas\\Vendas\\PedidoI"
Moveto "\\Sistemas\\Vendas\\PedidoC"
Moveto [Codigo]
OrderTable {IndPed01}
Locate IndexOrder by "IndPed01" CODIGO
If RetVal
   Then While [Codigo]=CODIGO
          If [Situacao do Pedido ]="ABERTO" And
             Search("VEND",[Descricao da Destinacao])>0
             Then SOMAP=0
                  Moveto "\\Sistemas\\Vendas\\PedidoI"
                  Moveto [Numero do Pedido]
                  Locate [\Sistemas\Vendas\PedidoC->Numero do Pedido]
                  If RetVal
                     Then While [Numero do Pedido]=[\Sistemas\Vendas\PedidoC->Numero do Pedido]
                            If [Quantidade]>[Quantidade Faturada]
                               Then SOMAP=SOMAP+([\Sistemas\Vendas\PedidoI->Preco Unitario]*
                                                  ([\Sistemas\Vendas\PedidoI->Quantidade]-
                                                   [\Sistemas\Vendas\PedidoI->Quantidade Faturada]))
                            EndIf
                            Skip
                            If EOT()
                               Then QuitLoop
                            EndIf
                          EndWhile
                          If SOMAP>0
                             Then Moveto "C_cliep"
                                  End Down
                                  [Sequencia Master    ]=SeqMaster
                                  [Numero do Pedido    ]=[\Sistemas\Vendas\PedidoC->Numero do Pedido    ]
                                  [Numero Pedido Origem]=[\Sistemas\Vendas\PedidoC->Numero Pedido Origem]
                                  [Data de Emissao     ]=[\Sistemas\Vendas\PedidoC->Data de Emissao     ]
                                  [Descricao CondPagto ]=[\Sistemas\Vendas\PedidoC->Descricao CondPagto ]
                                  [Data de Entrega     ]=[\Sistemas\Vendas\PedidoC->Data de Entrega     ]
                                  [Preco Total         ]=SOMAP
                                  TOTP=TOTP+SOMAP
                                  UnLockRecord
                          EndIf
                  EndIf
                  Moveto "\\Sistemas\\Vendas\\PedidoC"
          EndIf
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "IndPed01" Next CODIGO
				EndWhile
EndIf

;;; Cheques a Descontar
Aguarde(MSG_AGUARDE+Barra(4,3))
TOTCQAD=0
TOTCQAC=0
TOTSEMF=0
ws=0

Moveto "C_Cliecq"
Moveto "\\Sistemas\\CheqRec\\ChequeI"
Moveto [Codigo_Cliente]
OrderTable {IndChI01}
Locate IndexOrder by "IndChI01" CODIGO
If RetVal
   Then While [Codigo_Cliente]=CODIGO
          If [Situacao]<>"LIQUIDADO"   And
             [Situacao]<>"EM COBRANCA" And
             Search("TROCADO",[Situacao])=0
             Then Moveto "C_Cliecq"
                  End Down
                  ws=ws+1
                  [Sequencia Master    ]=SeqMaster
                  [Codigo_Banco        ]=[\Sistemas\CheqRec\ChequeI->Codigo_Banco      ]
                  [Numero_Cheque       ]=[\Sistemas\CheqRec\ChequeI->Numero_Cheque     ]
                  [Titular_Cheque      ]=[\Sistemas\CheqRec\ChequeI->Titular_Cheque    ]
                  [Valor               ]=[\Sistemas\CheqRec\ChequeI->Valor             ]
                  [Data de Vencimento  ]=[\Sistemas\CheqRec\ChequeI->Data Vencimento   ]
                  [Situacao            ]=[\Sistemas\CheqRec\ChequeI->Situacao          ]
                  [Sequencia           ]=ws
                  If [\Sistemas\CheqRec\ChequeI->Situacao]="SEM FUNDO"
                     Then [Sequencia Ordem     ]="4"
                          TOTSEMF=TOTSEMF+[Valor]
                     Else [Sequencia Ordem     ]="1"
                          TOTCQAD=TOTCQAD+[Valor]
                  EndIf
                  UnLockRecord
                  Moveto "\\Sistemas\\CheqRec\\ChequeI"

          EndIf
          If [Situacao]="LIQUIDADO"
             Then Switch
                   Case SYS_CODIGO_CLIENTE="0157" Or
                        SYS_CODIGO_CLIENTE="0130":
                   If [Data Vencimento]>=Today()
 										 Then Moveto "C_Cliecq"
 													End Down
 													ws=ws+1
                           [Sequencia Master    ]=SeqMaster
                           [Sequencia Ordem     ]="7"
                           [Codigo_Banco        ]=[\Sistemas\CheqRec\ChequeI->Codigo_Banco      ]
                           [Numero_Cheque       ]=[\Sistemas\CheqRec\ChequeI->Numero_Cheque     ]
                           [Titular_Cheque      ]=[\Sistemas\CheqRec\ChequeI->Titular_Cheque    ]
                           [Valor               ]=[\Sistemas\CheqRec\ChequeI->Valor             ]
                           [Data de Vencimento  ]=[\Sistemas\CheqRec\ChequeI->Data Vencimento   ]
                           [Situacao            ]=[\Sistemas\CheqRec\ChequeI->Situacao          ]
                           [Sequencia           ]=ws
	 	 	                     TOTCQAC=TOTCQAC+[Valor]
                           UnLockRecord
  	 								EndIf
                   OtherWise:
                   If [Data Vencimento]>=(Today()-7)
 										 Then Moveto "C_Cliecq"
 													End Down
 													ws=ws+1
                           [Sequencia Master    ]=SeqMaster
                           [Sequencia Ordem     ]="7"
                           [Codigo_Banco        ]=[\Sistemas\CheqRec\ChequeI->Codigo_Banco      ]
                           [Numero_Cheque       ]=[\Sistemas\CheqRec\ChequeI->Numero_Cheque     ]
                           [Titular_Cheque      ]=[\Sistemas\CheqRec\ChequeI->Titular_Cheque    ]
                           [Valor               ]=[\Sistemas\CheqRec\ChequeI->Valor             ]
                           [Data de Vencimento  ]=[\Sistemas\CheqRec\ChequeI->Data Vencimento   ]
                           [Situacao            ]=[\Sistemas\CheqRec\ChequeI->Situacao          ]
                           [Sequencia           ]=ws
 													TOTCQAC=TOTCQAC+[Valor]
                           UnLockRecord
 									EndIf
									EndSwitch
          EndIf
          Moveto "\\Sistemas\\CheqRec\\ChequeI"
          Skip
          If EOT()
             Then QuitLoop
          EndIf
          Locate IndexOrder by "IndChI01" Next CODIGO
        EndWhile
EndIf

Moveto "C_Cliecq"
End Down
ws=ws+1
[Sequencia Master    ]=SeqMaster
[Sequencia Ordem     ]="2"
[Titular_Cheque      ]="          Total a Descontar =>"
[Valor               ]=TOTCQAD
[Sequencia           ]=ws
UnLockRecord

End Down
ws=ws+1
[Sequencia Master    ]=SeqMaster
[Sequencia Ordem     ]="3"
[Sequencia           ]=ws
UnLockRecord

End Down
ws=ws+1
[Sequencia Master    ]=SeqMaster
[Sequencia Ordem     ]="5"
[Titular_Cheque      ]="          Total Sem Fundo   =>"
[Valor               ]=TOTSEMF
[Sequencia           ]=ws
UnLockRecord

End Down
ws=ws+1
[Sequencia Master    ]=SeqMaster
[Sequencia Ordem     ]="6"
[Sequencia           ]=ws
UnLockRecord

End Down
ws=ws+1
[Sequencia Master    ]=SeqMaster
[Sequencia Ordem     ]="8"
[Titular_Cheque      ]="          Total a Compensar =>"
[Valor               ]=TOTCQAC
[Sequencia           ]=ws
UnLockRecord

;; Extrai Dados da Tabela FichaCli\DestObs
Aguarde(MSG_AGUARDE+Barra(4,4))
Moveto "Fichacli"
Moveto [Codigo]
Locate CODIGO
If RetVal
   Then Moveto "C_Cliec"
        [Data da Maior Fatura    ]=[FichaCli->Data da Maior Fatura    ]
        [Maior Fatura            ]=[FichaCli->Maior Fatura            ]
        [Maior Atraso            ]=[FichaCli->Maior Atraso            ]
        [Data Do Maior Atraso    ]=[FichaCli->Data Do Maior Atraso    ]
        [Valor Do Maior Atraso   ]=[FichaCli->Valor Do Maior Atraso   ]
        [Numero de Atrasos       ]=[FichaCli->Numero de Atrasos       ]
        [Data da Primeira Compra ]=[FichaCli->Data da Primeira Compra ]
        [Valor da Primeira Compra]=[FichaCli->Valor da Primeira Compra]
        [Data da Ultima Compra   ]=[FichaCli->Data da Ultima Compra   ]
        [Valor da Ultima Compra  ]=[FichaCli->Valor da Ultima Compra  ]
        [Limite de Credito       ]=[FichaCli->Limite de Credito       ]
        [Maximo Dias Atraso      ]=[FichaCli->Maximo Dias Atraso      ]
EndIf



Moveto "DestObs"
Moveto [Codigo]
Locate CODIGO
If RetVal
   Then Moveto "C_Cliec"
        [Observacoes]=[DestObs->Observacoes]
EndIf

Moveto "DestMsg"
Moveto [Codigo]
Locate CODIGO
If RetVal
   Then Moveto "C_Cliec"
        [Obs_Vendas] =[DestMsg->Observacoes]
EndIf

Moveto "C_Cliec"
[Total Pedidos ]=TOTP
[Total A Vencer]=TOTAV
[Total Vencido ]=TOTV
[Total Cheques ]=TOTCQAC+TOTCQAD+TOTSEMF
[Total Cheques a Compensar]=TOTCQAC
[Total Cheques a Descontar]=TOTCQAD+TOTSEMF
UnLockRecord
FormKey

LimpAguarde()
EndProc

;*******************************************************************************
;* Atualiza Dados nas Tabelas Mestres                                          *
;*******************************************************************************
Proc Atualizar()
Aguarde("Aguarde, Atualizando Dados")

UnLockRecord
FormKey

Moveto "FichaCli" ImageRights
Moveto [Codigo]
Locate [C_Cliec->Codigo]
If Not RetVal
   Then End Down
        [Codigo          ]=[C_Cliec->Codigo                  ]
Endif
[Data da Maior Fatura    ]=[C_Cliec->Data da Maior Fatura    ]
[Maior Fatura            ]=[C_Cliec->Maior Fatura            ]
[Maior Atraso            ]=[C_Cliec->Maior Atraso            ]
[Data Do Maior Atraso    ]=[C_Cliec->Data Do Maior Atraso    ]
[Valor Do Maior Atraso   ]=[C_Cliec->Valor Do Maior Atraso   ]
[Numero de Atrasos       ]=[C_Cliec->Numero de Atrasos       ]
[Data da Primeira Compra ]=[C_Cliec->Data da Primeira Compra ]
[Valor da Primeira Compra]=[C_Cliec->Valor da Primeira Compra]
[Data da Ultima Compra   ]=[C_Cliec->Data da Ultima Compra   ]
[Valor da Ultima Compra  ]=[C_Cliec->Valor da Ultima Compra  ]
[Limite de Credito       ]=[C_Cliec->Limite de Credito       ]
[Maximo Dias Atraso      ]=[C_Cliec->Maximo Dias Atraso      ]
UnLockRecord
ImageRights ReadOnly

Moveto "DestObs"  ImageRights
Moveto [Codigo]
Locate [C_Cliec->Codigo]
If Not RetVal
   Then End Down
        [Codigo]=[C_Cliec->Codigo]
Endif
[Observacoes]=[C_Cliec->Observacoes]  

UnLockRecord
ImageRights ReadOnly

Moveto "DestMsg"  ImageRights
Moveto [Codigo]
Locate [C_Cliec->Codigo]
If Not RetVal
   Then End Down
        [Codigo]=[C_Cliec->Codigo]
Endif
[Observacoes]=[C_Cliec->Obs_Vendas]

UnLockRecord
ImageRights ReadOnly

Moveto "Destinat"  ImageRights
Moveto [Codigo]
Locate [C_Cliec->Codigo]
If Not RetVal
   Then End Down
        [Codigo         ]=[C_Cliec->Codigo]
        [Tipo           ]="C"
Endif
[Razao Social           ]=[C_Cliec->Razao Social]
[Endereco               ]=[C_Cliec->Endereco]
[Bairro                 ]=[C_Cliec->Bairro]
[CEP                    ]=[C_Cliec->CEP]
[Cidade                 ]=[C_Cliec->Cidade]
[UF                     ]=[C_Cliec->UF]
[CGC                    ]=[C_Cliec->CGC]
[IE                     ]=[C_Cliec->IE]
[Telefone               ]=[C_Cliec->Telefone]
[Celular                ]=[C_Cliec->Celular]
[Fax                    ]=[C_Cliec->Fax]
[Contato                ]=[C_Cliec->Contato]
[Situacao do Cliente    ]=[C_Cliec->Situacao do Cliente]
[Endereco_Eletronico    ]=[C_Cliec->Endereco_Eletronico]
UnLockRecord
ImageRights ReadOnly

Moveto "C_ClieC"
FormKey
LimpAguarde()

EndProc

;*******************************************************************************
;* Rotina para Digitacao Complemento de Clientes                               *
;*******************************************************************************
Proc COMPLEMENTO()

Tabela=Table()
Campo2 =Field()

ResyncKey
UnLockRecord
FormKey

Moveto "DestInfo"
TECLA=" Esc=Cancelar"
If EM_EDICAO
   Then ImageRights
        TECLA=TECLA+"F2=Gravar"
EndIf
Moveto [Codigo]
Locate [C_clieC->Codigo]
If RetVal
   Then VSD_REF_COM1    =[Referencia Comercial1]
        VSD_REF_COM2    =[Referencia Comercial2]
        VSD_REF_COM3    =[Referencia Comercial3]
        VSD_REF_BANC    =[Referencia Bancaria  ]
        VSD_SPC         =[Spc                  ]
        VSD_CONSULTA_SPC=[Consulta Spc         ]
        VSD_PAI_SOCIO   =[Pai Socio            ]
        VSD_MAE_SOCIO   =[Mae Socio            ]
        VSD_RENDA_FAT   =[Renda Faturamento    ]
        VSD_N_PARENTE   =[Nome Parente         ]
        VSD_END_PARENTE =[Endereco Parente     ]
        VSD_LOCAL_TRAB  =[Local Trabalho       ]
        VSD_END_TRAB    =[Endereco Trabalho    ]
        VSD_TEMPO_TRAB  =[Tempo Trabalho       ]
        VSD_NOME_FIADOR =[Nome Fiador          ]
        VSD_CGC_FIADOR  =[Endereco Fiador      ]
        VSD_END_FIADOR  =[CGC/CPF Fiador       ]
        VSD_TEL_FIADOR  =[Telefone Fiador      ]
        VSD_IMOVEL_P    =[Imovel Proprio/Valor ]
        VSD_DATA_NASC   =[Data de Nascimento   ]
        VSD_NADA        =""
   Else End Down
        [Codigo        ]=[C_clieC->Codigo]
        VSD_REF_COM1    =""
        VSD_REF_COM2    =""
        VSD_REF_COM3    =""
        VSD_REF_BANC    =""
        VSD_SPC         =""
        VSD_CONSULTA_SPC=BlankDate()
        VSD_PAI_SOCIO   =""
        VSD_MAE_SOCIO   =""
        VSD_RENDA_FAT   =0
        VSD_N_PARENTE   =""
        VSD_END_PARENTE =""
        VSD_LOCAL_TRAB  =""
        VSD_END_TRAB    =""
        VSD_TEMPO_TRAB  =""
        VSD_NOME_FIADOR =""
        VSD_CGC_FIADOR  =""
        VSD_END_FIADOR  =""
        VSD_TEL_FIADOR  =""
        VSD_IMOVEL_P    =""
        VSD_DATA_NASC   =BlankDate()
        VSD_NADA        =""
Endif

Moveto [Referencia Comercial1]
INICIO_DIALOG=True
Showdialog "Complemento de Clientes " Proc "Geral_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
    @ 1,01 height 23 width 75

   @ 00,01 ?? "Referˆncia Comercial"
   Label  @ 01,01  "1" for "C_Referencia Comercial1"
   Accept @ 01,04   Width 40 "A40" picture "!*!" Tag "C_Referencia Comercial1" to VSD_REF_COM1
   Label  @ 02,01  "2" for "C_Referencia Comercial2"
   Accept @ 02,04   Width 40 "A40" picture "!*!" Tag "C_Referencia Comercial2" to VSD_REF_COM2
   Label  @ 03,01  "3" for "C_Referencia Comercial3"
   Accept @ 03,04   Width 40 "A40" picture "!*!" Tag "C_Referencia Comercial3" to VSD_REF_COM3

   @ 04,01 ?? "Referˆncia Bancaria"
   Label  @ 05,01  "1" for "C_Referencia Bancaria"
   Accept @ 05,04   Width 40 "A40" picture "!*!" Tag "C_Referencia Bancaria" to VSD_REF_BANC

   Label  @ 04,44  "SPC" for "C_SPC"
   Accept @ 05,45   Width 6 "A3" picture "Sim,N„o" Tag "C_SPC" to VSD_SPC
   Label  @ 04,51  "Ultima Consulta" for "C_Consulta SPC"
   Accept @ 05,53   Width 13 "D" picture "#[#];.##;.##[##]" Tag "C_Consulta SPC" to VSD_CONSULTA_SPC

   @ 06,01 ?? "Pais/Socios/Conjuge"
   Label  @ 07,01  "1" for "C_Pai Socio"
   Accept @ 07,04   Width 40 "A40" picture "!*!" Tag "C_Pai Socio" to VSD_Pai_Socio
   Label  @ 08,01  "2" for "C_Mae Socio"
   Accept @ 08,04   Width 40 "A40" picture "!*!" Tag "C_Mae Socio" to VSD_Mae_Socio
   Label  @ 07,45  "Renda/Faturamento" for "C_Renda Faturamento"
   Accept @ 08,48   Width 13 "$" picture "#*#.[##]" Tag "C_Renda Faturamento" to VSD_RENDA_FAT

   @ 09,01 ?? "Parente"
   Label  @ 10,01  "Nome" for "C_Nome Parente"
   Accept @ 10,11   Width 40 "A40" picture "!*!" Tag "C_Nome Parente" to VSD_N_PARENTE
   Label  @ 11,01  "Endere‡o" for "C_Endereco Parente"
   Accept @ 11,11   Width 40 "A40" picture "!*!" Tag "C_Endereco Parente" to VSD_END_PARENTE

   @ 12,01 ?? "Trabalho"
   Label  @ 13,01  "Local" for "C_Local Trabalho"
   Accept @ 13,11   Width 40 "A40" picture "!*!" Tag "C_Local Trabalho" to VSD_LOCAL_TRAB
   Label  @ 14,01  "Endere‡o" for "C_Endereco Trabalho"
   Accept @ 14,11   Width 40 "A40" picture "!*!" Tag "C_Endereco Trabalho" to VSD_END_TRAB
   Label  @ 15,01  "Tempo" for "C_Tempo Trabalho"
   Accept @ 15,11   Width 40 "A40" picture "!*!" Tag "C_Tempo Trabalho" to VSD_TEMPO_TRAB

   @ 16,01 ?? "Fiador"
   Label  @ 17,01  "Nome" for "C_Nome_Fiador"
   Accept @ 17,11   Width 40 "A40" picture "!*!" Tag "C_Nome_Fiador" to VSD_NOME_FIADOR
   Accept @ 17,52   Width 20 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_Fiador" to VSD_CGC_FIADOR
   Label  @ 18,01  "Endere‡o" for "C_End_Fiador"
   Accept @ 18,11   Width 40 "A40" picture "!*!" Tag "C_End_Fiador" to VSD_End_FIADOR
   Accept @ 18,52   Width 20 "A18" picture "!*!" Tag "C_Tel_Fiador" to VSD_Tel_FIADOR

   Label  @ 19,00  "Imovel Proprio/Valor" for "C_Imovel Proprio/Valor"
   Accept @ 20,02   Width 40 "A40" picture "!*!" Tag "C_Imovel Proprio/Valor" to VSD_IMOVEL_P
   Label  @ 19,42  "Data de Nascimento" for "C_Data de Nascimento"
   Accept @ 20,44   Width 15 "D" picture "##.##.##[##]" Tag "C_Data de Nascimento" to VSD_DATA_NASC

   Accept @ 23,60 Width 1 "S" Tag "TG_NADA" To VSD_NADA

Enddialog

Moveto "C_Cliec"
FormKey
Moveto Tabela
Moveto Field Campo2

EndProc  ; (Complemento)


;*******************************************************************************
;* Rotina para Gravar Complemento                                              *
;*******************************************************************************
Proc Grava_Complemento()

   [Referencia Comercial1]=VSD_REF_COM1
   [Referencia Comercial2]=VSD_REF_COM2
   [Referencia Comercial3]=VSD_REF_COM3
   [Referencia Bancaria  ]=VSD_REF_BANC
   [Spc                  ]=VSD_SPC
   [Consulta Spc         ]=VSD_CONSULTA_SPC
   [Pai Socio            ]=VSD_PAI_SOCIO
   [Mae Socio            ]=VSD_MAE_SOCIO
   [Renda Faturamento    ]=VSD_RENDA_FAT
   [Nome Parente         ]=VSD_N_PARENTE
   [Endereco Parente     ]=VSD_END_PARENTE
   [Local Trabalho       ]=VSD_LOCAL_TRAB
   [Endereco Trabalho    ]=VSD_END_TRAB
   [Tempo Trabalho       ]=VSD_TEMPO_TRAB
   [Imovel Proprio/Valor ]=VSD_IMOVEL_P
   [Data de Nascimento   ]=VSD_DATA_NASC
   [Nome Fiador          ]=VSD_NOME_FIADOR
   [Endereco Fiador      ]=VSD_CGC_FIADOR
   [CGC/CPF Fiador       ]=VSD_END_FIADOR
   [Telefone Fiador      ]=VSD_TEL_FIADOR

EndProc  ; (Grava_Complemento)

;*******************************************************************************
;* Rotina aguarda teclas padrao                                                *
;*******************************************************************************
Proc AguardaTeclas2()

If BarraPadrao = "A"
   Then BarraPadraoA()
   Else BarraPadraoB()
        If BarraPadrao = "B"
           Then If Not EM_EDICAO
                   Then MSGRODAPE="Modo de Visualiza‡„o"
                   Else MSGRODAPE="Modo de Edi‡„o"
                EndIf 
        EndIf
EndIf                     

MSGCAMPO= Field()
Switch
  Case Field()="Obs_Vendas"            : MSGCAMPO=""
  Case Field()="Data_Cadastro"         : MSGCAMPO="Data do Cadastro"
  Case Field()="Situacao do Cliente"   : MSGCAMPO="Situacao do Cliente"
EndSwitch

Wait Field
  Message MSGCAMPO  
  Until "ESC","ENTER","DOWN","DEL","FIELDVIEW","LEFT","RIGHT",
        "HOME","END","UP","PGDN","PGUP","INS","F35","ZOOM","ZOOMNEXT",
        -94,-33,-22,
        "F1","F2","F3","F4","F5","F6","F7","F8","F9","F11","F12","F35",
        -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140,
        -115, -116, -133,-134

ClearSpeedBar      

IsTeclaAtalho()
Endproc

;*******************************************************************************
;* Rotina Barra Funcoes Customizada                                            *
;*******************************************************************************
Proc NaoLocaliza() 
FastMsg("Fun‡„o Desativada !")
EndProc ;NaoLocaliza() 
;*******************************************************************************
;* Rotina Barra Funcoes Customizada                                            *
;*******************************************************************************
Proc BarraPadraoA()
If Not IsAssigned(TECLA) Then TECLA="" EndIf


Prompt TECLA 
SpeedBar "["+Chr(254)+"]"  :"ESC"
         
Endproc
;*******************************************************************************
Proc BarraPadraoB()
If Not IsAssigned(TECLA) Then TECLA="" EndIf

Prompt TECLA 
SpeedBar "["+Chr(17)+"]"       :"ESC",
         "~Fun‡”es~"           :-33,
           "<"+Chr(17)         :-115,
           Chr(16)+">"         :-116,
           "~Localizar~"       :"ZOOM",
           "~Loc~|"+Chr(16)    :"ZOOMNEXT",
           "~?~"               :-94,
           "|"+Chr(17)         :"Del",
           Chr(17)             :"Del",
           Chr(16)             :"Del",
           Chr(16)+"|"         :"Del"
Endproc

;*******************************************************************************
;* Rotina Mensagem Teclas Padrao                                               *
;*******************************************************************************
Proc MsgTeclasPadrao()
MSG=    "    Esc= Voltar Menu                 //"
MSG=MSG+"     F2= Edita/Grava Registro        //"
MSG=MSG+"   PgDn= Finaliza                    //"
MSG=MSG+"  Alt+F= Fun‡”es                     "
MsgHelp("Teclas/Fun‡”es",MSG)
Endproc   

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros Grafico                           *
;*******************************************************************************
Proc SELECIONA()

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Emissao        ] check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Moveto [Descricao da Destinacao] TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.."
        Moveto [Situacao               ] TypeIn "Not C"
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Valor Nota Fiscal      ] TypeIn "Calc Sum as Valor Total"
        Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
        Do_It!
        ClearAll
EndIf
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros Grafico                           *
;*******************************************************************************
Proc PROCESSA()

{Ask} TypeIn Tabela Enter Check
Do_It!
ClearAll

View PrivDir()+"GR_0005a"
CoEdit "Answer"
Scan
   If IsBlank([Data de Emissao]) Then Loop EndIf
   Moveto PrivDir()+"GR_0005a"
   Moveto [Ano]
   Locate Year([Answer->Data de Emissao]),Month([Answer->Data de Emissao])
   If Not RetVal
      Then End Down
           [Ano   ]=Year ([Answer->Data de Emissao])
           [Mes   ]=Month([Answer->Data de Emissao])
   EndIf
   [Valor Total]=[Valor Total]+[Answer->Valor Total]
   Moveto "Answer"
EndScan
Do_It!
ClearAll

{Ask} TypeIn PrivDir()+"GR_0005a" Enter Check 
Do_It!
ClearAll

Mes=0
View PrivDir()+"GR_0005"
CoEdit "Answer"
Scan
   Moveto PrivDir()+"GR_0005"
   End Down
   [Mes        ]=Substr(mesext(NumVal([Answer->Mes])),1,3)
   [Valor Total]=[Answer->Valor Total]
   If Mes <> 0
      Then While True
             If Mes = 12 Then Mes=0 EndIf

             If NumVal([Answer->Mes]) <> Mes+1
                Then Ins
                     [Mes         ]=Substr(mesext(NumVal(Mes+1)),1,3)
                     [Valor Total ]=0
                     Mes=Mes+1
                     Down
                Else Mes=NumVal([Answer->Mes])
                     QuitLoop
             EndIf
           EndWhile
      Else Mes=NumVal([Answer->Mes])
   EndIf
   Moveto "Answer"
EndScan
Do_it!
ClearAll

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_MESANO"  : Campo="TG_EMPRESA"
            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_MESANO"
                    Case Campo="TG_MESANO" : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Analise de Vendas por Grafico                                        *
;*******************************************************************************
Proc Grafico()

ncampo=Field()   
nTabela=Table()
VSDGDESTINAT=[C_ClieC->Codigo]
VSDGNOMDEST =[C_ClieC->Razao Social]
UnLockRecord
Do_It!
ClearAll

VSDGEMPRESA =""
VSDGMESANO = AlinhM(StrVal(Month(Today())),2)+"."+AlinhM(StrVal(Year(Today())),4)

While True
  ShowDialog "Evolu‡„o das vendas mensais" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,07   Height 09 Width 40

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

    Label  @ 02,00 "Ate Mes/Ano" For "TG_MESANO"
    Accept @ 03,01 Width 13 "A7"  Picture "##;.####" Tag "TG_MESANO" To VSDGMESANO

    Pushbutton @ 05,08 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 05,20 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If VSDGEMPRESA=""
     Then Mensagem("Empresa Invalida !")
          Loop
  EndIf

  MES=Substr(VSDGMESANO,1,2)
  ANO=Substr(VSDGMESANO,4,4)
  If NumVal(MES) > 12 Or NumVal(MES) <= 0
     Then Loop
  EndIf

  MESINI=AlinhM(StrVal((NumVal(MES))),2)
  ANOINI=StrVal((NumVal(ANO)-1))
  VSDGDTINI=DateVal(MESINI+"/"+"01"+"/"+ANOINI)

  MESFIM=AlinhM(StrVal((NumVal(MES)+1)),2)
  If NumVal(MESFIM)=13
     Then MESFIM="01"
          ANOFIM=StrVal((NumVal(ANO)+1))
     Else ANOFIM=ANO
  EndIf
  VSDGDTFIM=DateVal(MESFIM+"/"+"01"+"/"+ANOFIM)-1

  DISPOSITIVOG()
  If OK="" Then Loop EndIf

  Copy "\\Base\\Sistemas\\Vendas\\GR_0005"  PrivDir()+"GR_0005"
  Copy "\\Base\\Sistemas\\Vendas\\GR_0005a" PrivDir()+"GR_0005a"
  Empty(PrivDir()+"GR_0005")
  Empty(PrivDir()+"GR_0005a")

  AGUARDE("Aguarde, Gerando Dados")
  Tabela=Cria_Temp(PrivDir())

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer")     Then Delete "Answer" EndIf
    Seleciona()
    If Not IsTable("Answer") Then Loop EndIf
    If IsTable(Tabela)
       Then Add "Answer" Tabela
       Else Rename "Answer" Tabela
    EndIf
  EndWhile

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

  GRAF_TAB= PrivDir()+"GR_0005"
  GRAF_TIPO= "3"
  GRAF_TIT1= "Evolu‡„o das vendas por cliente"
  GRAF_TIT2= VSDGNOMDEST+" at‚ "+VSDGMESANO
  GRAF_LINX= "Valor"
  GRAF_LINY= "Mes"

  MONTAGRAFICO(GRAF_TAB)

  Delete PrivDir()+"GR_0005"
  Delete PrivDir()+"GR_0005a"
  Delete "Answer"
  Delete Tabela

EndWhile

ClearAll
Carrega_Tabelas()
Moveto [Sequencia Master]
Locate SeqMaster
PickForm "F"
Moveto nTabela
Moveto Field ncampo

Endproc   
;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Carrega_Tabelas()

View NoWindow "\\Sistemas\\Cadastro\\Destinat"  ImageRights ReadOnly
View NoWindow "\\Sistemas\\Cadastro\\DestObs"   ImageRights ReadOnly 
View NoWindow "\\Sistemas\\Cadastro\\DestMsg"   ImageRights ReadOnly
View NoWindow "\\Sistemas\\Cadastro\\FichaCli"  ImageRights ReadOnly

View NoWindow "\\Sistemas\\CtaRec\\Duplic"      ImageRights ReadOnly
View NoWindow "\\Sistemas\\Vendas\\PedidoI"     ImageRights ReadOnly
View NoWindow "\\Sistemas\\Vendas\\PedidoC"     ImageRights ReadOnly
View NoWindow "\\Sistemas\\CheqRec\\ChequeI"    ImageRights ReadOnly

View NoWindow "C_ClieV"
View NoWindow "C_ClieAV"
View NoWindow "C_ClieP"
View NoWindow "C_Cliecq"
View NoWindow "Destinfo"
CoEdit NoWindow "C_ClieC"

PickForm "F"

EndProc
;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf
If Not IsAssigned(NOMEPRESA)           Then NOMEMPRESA=""          EndIf

CHAVE=""
MSGRODAPE=""
Carrega_Tabelas()

While True
  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
  DIGITA()
  If CHAVE=9 Then QuitLoop EndIf
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
