;** 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
;Ultima Alteracao: 11/05/2012 por Bruno Carvalho
;Motivo Alteracao: Add aba "Observa‡Æo" e visualiza‡Æo de consulta do SPC
;Ultima Alteracao: 21/08/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes "Situacao do Cliente" p/ permitir situa‡Æo como OTIMO
;Ultima Alteracao: 24/03/2014 por Kamila Gomes
;Motivo Alteracao: Adicionado campo INATIVO.
;Ultima Alteracao: 05/05/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes na impressÆo, onde o c lculo DISPONIBILIDADE estava incorreto
;Ultima Alteracao: 14/05/2014 por Luis Gustavo
;Motivo Alteracao: Alterado o Label Data de Nascimento da proc Complemento(), para Data de Nascimento/Funda‡Æo
;Ultima Alteracao: 05/11/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Cheques em COBRANCAPGTO nÆo esta mais em aberto/pendente a receber
;Ultima Alteracao: 12/06/2015 por Kamila Gomes
;Motivo Alteracao: Adicionada mensagem de cliente
;Ultima Alteracao: 27/07/2015 por Kamila Gomes
;Motivo Alteracao: Adicionado Campo Valor do Documento dos Titulos
;Ultima Alteracao: 27/07/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo "F10" p/ quando cliente tiver clientes vinculados
;Ultima Alteracao: 28/07/2016 por Bruno Carvalho
;Motivo Alteracao: Removido das Fun‡äes (-33) os processos que podem ser controlados pelas ABAS, ganhando estas teclas para novas fun‡äes
;Ultima Alteracao: 17/08/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Tecla F12 grafico, e nova opc‡äes de grafico= gr_0016 vendas
;Ultima Alteracao: 06/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Totalizar titulo de credito
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes Show Dialog  
;Ultima Alteracao: 03/01/2017 por Rafael Matos
;Motivo Alteracao: Ajustes showdialog MensagemRadioButtons()                                      
;Ultima Alteracao: 07/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes cor editar
;Ultima Alteracao: 14/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes layout    
;Ultima Alteracao: 17/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Ctrl+Pgdn=Finalizar
;Ultima Alteracao: 22/05/2017 por Bruno Carvalho
;Motivo Alteracao: Alterado GR_0005 -> GR_0008 *GR_0005 pertence a outra estrutura que foi modificada gerando erros
;                  foi entÆo criado a GR_0008 p/ pertencer a estrutura alterada, mantendo a GR_0005 original
;Ultima Alteracao: 14/06/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Titulos_Recebidos() -> Op‡Æo "F7" e "F8" Sol.30325
;Ultima Alteracao: 23/06/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Posicao_Pedidos() -> Op‡Æo "F9" Sol.30524
;Ultima Alteracao: 09/08/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Relacao_DocumentosEmitidos() -> Op‡Æo "F10"
;Ultima Alteracao: 13/09/2017 por Bruno Carvalho
;Motivo Alteracao: Ver_Memo() substitu¡do por Ler_Memo()
;Ultima Alteracao: 26/04/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ [Data de Nascimento] ser consultada/armazenada pela Destinat

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

  Moveto [Codigo]

  While True
  EM_EDICAO=False

  TECLA=""
  MSGCAMPO=""
  SetaCorRegistro("Editando")

  BarraPadrao = "CH"
  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
           If [Situacao do Cliente]="PESSIMO"
              Then Mensagem("Verificar a Situa‡„o do Cliente com a Gerencia !")
           EndIf
           CHAVE=0   
           Exclusao()
           Selecionar()
           If Not IsEmpty("\\Sistemas\\Cadastro\\GPessoaI")
              Then Clientes_Vinculados("Verifica_Clientes")
           EndIf
           Return
      EndSwitch
   EndWhile
EndWhile
EndProc

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

tmptecla=""

If Retval=-33
   Then
      MSGCAMPO=""
      
      Echo Normal
      Echo Off
      
      ShowPopup " Fun‡”es " CENTERED
      "[F2 ] ~E~ditar/Gravar                  " : " [F2]  Editar/Gravar         "                           : "F2",
      "[F3 ] ~I~mprimir                       " : " [F3]  Imprimir Posi‡„o do cliente"                      : "F3",
      "[F4 ] Com~p~lementos                   " : " [F4]  Complementos          "                           : "F4",
      "[F5 ] ~O~bserva‡”es                    " : " [F5]  Observa‡”es gerais    "                           : "F5",
      "[F6 ] ~C~lientes Vinculados            " : " [F6]  Clientes Vinculados   "                           : "F6",
      "[F7 ] ~T~¡tulos Recebidos Dt Pagto     " : " [F7]  T¡tulos Recebidos por Data de Pagamento"          : "F7",
      "[F8 ] T¡t~u~los Recebidos Dt Pagto/Chq " : " [F8]  T¡tulos Recebidos por Data de Pagamento/Cheque"   : "F8",
      "[F9 ] Posi‡„o da C~a~rteira de Pedidos " : " [F9]  Posi‡Æo da Carteira de Pedidos"                   : "F9",
      "[F10] O~b~serva‡”es p/ Vendas          " : " [F10] Observa‡”es p/ Venda  "                           : "F10",
      "[F11] Rela‡„o de Documentos Emitidos   " : " [F11] Rela‡„o de Documentos Emitido"                    : "F11",
      "[F12] An lise por ~G~r fico            " : " [F12] An lise de Vendas por Gr fico"                    : "F12",
      Separator,
      "~C~ancelar                             " : " Cancelar"                                               : "CANCELAR"
     EndMenu
      To MenuVar
     echo off

     If MenuVar="CANCELAR" or MenuVar="Esc"
         Then Retval=""    
     EndIf
     RetVal=MenuVar

EndIf    

Switch
  Case RetVal=-94  : MsgTeclasPadrao()

  Case Retval="F2" : If Not EM_EDICAO
                       Then If Checa_Supervisor()
                             Then EM_EDICAO=True
                            EndIf
                       
                       Else Atualizar()
                            EM_EDICAO=False
                            
                            tmptecla="ATUALIZAR"                       
                     EndIf 

  Case Retval="F3" : Moveto "C_cliec"
                     Do_it!
                     
                     DispositivoI("CFG")
                     If OK=""
                        Then CoEditKey
                             Return False
                     EndIf
          
                     ArqImp=PrivDir()+"PosClie.Txt"
                     Deleta_Arquivo(ArqImp)
                     AGUARDE("Imprimindo Posi‡„o do Cliente ...")
                     Imprimir()
                     ImpriArq(ARQIMP)
                     LIMPAGUARDE()   

  Case Retval="F4" : Moveto "C_cliec"
                     Complemento()  
                     
  Case Retval="F5" : Moveto "C_cliec"
                     If EM_EDICAO 
                        Then Edita_Memo("Observacoes",09,01,13,76,"Observa‡”es")
                        Else AUX_MSG = [Observacoes]
                             If AUX_MSG<>""
                                Then Ler_Memo("Observa‡”es",09,01,13,76,AUX_MSG)
                             EndIf
                     EndIf
                     
  Case Retval="F7" Or
       Retval=-65   : Moveto "C_cliec"
                      Titulos_Recebidos("RM_0110")
       
  Case Retval="F8" Or
       Retval=-66   : Moveto "C_cliec"
                      Titulos_Recebidos("RM_0110B")

  Case Retval="F9" Or
       Retval=-67   : Moveto "C_cliec"
                      Posicao_Pedidos()

  Case Retval="F10" or
       Retval=-68 : Moveto "C_cliec"
                     If EM_EDICAO 
                        Then Edita_Memo("Obs_Vendas",09,00,13,76,"Observa‡”es p/ Vendas")
                        Else AUX_MSG = [Obs_Vendas]
                             If AUX_MSG<>""
                                Then Ler_Memo("Observa‡”es p/ Vendas",09,00,13,76,AUX_MSG)
                             EndIf
                     EndIf
  Case Retval="F11" or
       Retval=-133 : Moveto "C_cliec"
                     Relacao_DocumentosEmitidos()
       
  Case RetVal="F6" : Moveto "C_cliec"
                     CLIENTE_ESCOLHA=""
                     Clientes_Vinculados("Mostra_Clientes")

  Case Retval="F12" or 
       Retval=-134 : Moveto "C_cliec"
                     Grafico()

  Case Retval=-116 : tmptecla=-116         
  Case Retval=-115 : tmptecla=-115         

  Case Retval=-118 : tmptecla=-118

EndSwitch      

if tmptecla=""
   then return false
endif    
   
Tecla_Funcao=tmptecla
   
return true
EndProc

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

Switch
  case BarraPadrao = "CH": BarraPadraoCH()

  case BarraPadrao = "A" : BarraPadraoA()

  case BarraPadrao = "B" : BarraPadraoB()
endSwitch

MSGCAMPO= Field()
Switch
  Case Field()="Data_Ultima_Consulta"    : MSGCAMPO="Data da Ultima Consulta"
  Case Field()="Protocolo_Obs_Consulta"  : MSGCAMPO="Protocolo/Observa‡„o da Consulta"
  Case Field()="Data_Cadastro"           : MSGCAMPO="Data do Cadastro"
  Case Field()="CGC"                     : MSGCAMPO="CNPJ/CPF"
  Case Field()="Codigo"                  : MSGCAMPO="Informe o c¢digo, [F1]Consultar tabela"
  case Field()="Situacao do Cliente" And 
       EM_EDICAO                         : MSGCAMPO="Situa‡„o do Cliente, [F1]Consultar tabela"
  case Field()="Situacao_Consulta"   And 
       EM_EDICAO                         : MSGCAMPO="Situa‡Æo da Consulta: Regular, Irregular"
  case Field()="Maior Fatura"            : MSGCAMPO="Valor da Maior Fatura"
  case Field()="Inativo"                 : MSGCAMPO="Inativo Sim/NÆo"
EndSwitch  

Wait Field
  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","F10","F11","F12","F35",-65,
        -66,-67,-68,-104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139,
        -140,-115, -116, -133,-134,-118

ClearSpeedBar      

IsTeclaAtalho()
Endproc

;*******************************************************************************
;* Rotina Barra Funcoes Customizada                                            *
;*******************************************************************************
Proc BarraPadraoCH()
If Not IsAssigned(TECLA) Then TECLA="" EndIf

Prompt TECLA 
SpeedBar "["+Chr(254)+"]"  :"ESC"        
         
Endproc

;*******************************************************************************
;* Rotina Barra Funcoes Customizada                                            *
;*******************************************************************************
Proc BarraPadraoA()
private modo

If Not EM_EDICAO
  Then modo="[Ver   ]"
  Else modo="[Editar]"
EndIf 

If Not IsAssigned(TECLA) Then TECLA="" EndIf

TECLA="Esc=Retornar              Ctrl+PgDn=Finalizar   "

Prompt TECLA 
SpeedBar "["+Chr(17)+"]"       :"ESC",
         "~Fun‡”es~"           :-33,
           "<"+Chr(17)         :-115,
           Chr(16)+">"         :-116,
         modo                  :"Del"
           
Endproc

;*******************************************************************************
;* Rotina Barra Funcoes Customizada                                            *
;*******************************************************************************
Proc BarraPadraoB()
If Not IsAssigned(TECLA) Then TECLA="" EndIf

TECLA="Esc=Retornar              Ctrl+PgDn=Finalizar   "

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+"Ctrl+PgDn= Finaliza                    //"
MSG=MSG+"    Alt+F= Fun‡”es                     "
MsgHelp("Teclas/Fun‡”es",MSG)
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 ""
  Prompt " Ctrl+PgDn=Finalizar   "
  
  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

  RetVal=tcwait                       

  If Retval="ESC" 
    Then RetVal=-115
  EndIf

  if ChecaTeclasFuncao()
     then return
  endif   


EndWhile

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"]=-118      : tcwait=-118 Return 2  ;Ctrl+PgDn

          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("F7")Or
               event["KEYCODE"]=-65       : tcwait="F7" Return 2          
          Case event["KEYCODE"]=Asc("F8")Or
               event["KEYCODE"]=-66       : tcwait="F8" Return 2
          Case event["KEYCODE"]=Asc("F9") : tcwait="F9" Return 2
          Case event["KEYCODE"]=Asc("F10") Or
               event["KEYCODE"]=-68       : tcwait="F10" 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

;*******************************************************************************
;* Exclusao de Registros                                                       *
;*******************************************************************************
Proc EXCLUSAO()
Private i

Moveto "C_ClieC"
ImageRights
If RecordStatus("Locked") Then UnLockRecord EndIf         

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
  ImageRights
  While RecordStatus("New")=False
    Del
  EndWhile
EndFor

Moveto "C_ClieC"

EndProc


;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()

While True
     
  if EM_EDICAO
     then ImageRights          SetaCorRegistro("Editando")
     else ImageRights ReadOnly SetaCorRegistro("Paginar")
  endif   
  
  BarraPadrao = "A"
  AguardaTeclas2()
  
  Switch
    Case RetVal="ZOOM" Or RetVal="ZOOMNEXT":
         FastMsg("Fun‡„o Desativada !")
         Loop
    Case Retval="F1" And EM_EDICAO :
         If Field()="Situacao do Cliente"
             Then
                 MSGCAMPO=""
                 
                 Echo Normal
                 Echo Off
                 
                 ShowPopup " Situa‡”es " CENTERED
                  "~O~timo     ": " Otimo cliente                 " :"OTIMO",
                  "~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" or Retval=-118:
         CHAVE=9 
         return       
    Case Retval="FIELDVIEW" or Retval="F35":
         EDITFIELD()
    Case Retval="ESC":
         Switch
           Case Field()="Razao Social"            : CHAVE=9 
                                                    return
                                                    
           Case Field() = "Endereco"               : moveto [Razao Social]
           Case Field() = "Cidade"                 : moveto [Endereco]
           Case Field() = "UF"                     : moveto [Cidade]
           Case Field() = "Bairro"                 : moveto [UF]
           Case Field() = "CEP"                    : moveto [Bairro]
           Case Field() = "Endereco_Eletronico"    : moveto [CEP]
           
           Case Field() = "CGC"                    : moveto [Endereco_Eletronico]
           Case Field() = "IE"                     : moveto [CGC]
           Case Field() = "Contato"                : moveto [IE]
           Case Field() = "Telefone"               : moveto [Contato]
           Case Field() = "Celular"                : moveto [Telefone]
                                                    
                                                    
           Case Field()="Data da Primeira Compra" : Moveto [Celular]
           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()="Maior Atraso"            : Moveto [Maior Fatura]
           Case Field()="Data do Maior Atraso"    : Moveto [Maior Atraso]
           Case Field()="Numero de Atrasos"       : Moveto [Valor do Maior Atraso]
           Case Field()="Maximo Dias Atraso"      : Moveto [Numero de Atrasos]       

           Case Field()="Data_Ultima_Consulta"    : Moveto [Maximo Dias Atraso]
           Case Field()="Situacao_Consulta"       : Moveto [Data_Ultima_Consulta]
           Case Field()="Protocolo_Obs_Consulta"  : Moveto [Situacao_Consulta]           
           Case Field()="Limite de Credito"       : Moveto [Protocolo_Obs_Consulta]
           Case Field()="Situacao do Cliente"     : Moveto [Limite de Credito]
           
           OtherWise: Left
         EndSwitch         
    Case Retval="ENTER":
         Switch
           Case Field() = "Razao Social"           : moveto [Endereco]
           Case Field() = "Endereco"               : moveto [Cidade]
           Case Field() = "Cidade"                 : moveto [UF]
           Case Field() = "UF":
                If IsBlank([])Then Loop EndIf
                Moveto [Bairro]
                
           Case Field() = "Bairro"                 : moveto [CEP]
           Case Field() = "CEP"                    : moveto [Endereco_Eletronico]
           Case Field() = "Endereco_Eletronico"    : moveto [CGC]
           
           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
                moveto [IE] 

           Case Field() = "IE"                     : moveto [Contato]
           Case Field() = "Contato"                : moveto [Telefone]
           Case Field() = "Telefone"               : moveto [Celular]
           Case Field() = "Celular"                : moveto [Data da Primeira Compra]
    
           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 [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 [Maximo Dias Atraso]

           Case Field()="Maximo Dias Atraso"       : Moveto [Data_Ultima_Consulta]
           Case Field()="Data_Ultima_Consulta"     : Moveto [Situacao_Consulta]
           Case Field()="Situacao_Consulta"        : Moveto [Protocolo_Obs_Consulta]
           Case Field()="Protocolo_Obs_Consulta"   : Moveto [Limite de Credito] 


           Case Field()="Limite de Credito"        : Moveto [Situacao do Cliente]

           Case Field()="Situacao do Cliente"      : If IsBlank([]) Then []="BOM" EndIf
                                                     Tecla_Funcao=-116
                                                     return

           OtherWise:
                Right
         EndSwitch
         
    OtherWise: if ChecaTeclasFuncao()
                  then return
               endif   
     
  EndSwitch          

EndWhile       
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc VEROBS()

moveto "C_Cliec"
moveto [Data_Cadastro]

While True
     
  if EM_EDICAO
     then ImageRights          SetaCorRegistro("Editando")
     else ImageRights ReadOnly SetaCorRegistro("Paginar")
  endif   
  
  BarraPadrao = "A"
  AguardaTeclas2()
  
  Switch
    Case Retval="PGDN" or Retval=-118:
         Tecla_Funcao=""
         DIGITAC     =false
         return       
    Case RetVal="ZOOM" Or RetVal="ZOOMNEXT":
         FastMsg("Fun‡„o Desativada !")
         Loop
    Case Retval="FIELDVIEW" or Retval="F35":
         EDITFIELD()
    Case Retval="ESC":
         Switch
           Case Field()="Data_Cadastro"            : Tecla_Funcao=-115
                                                     campo="Data da Primeira Compra"
                                                     return
           OtherWise: Left
         EndSwitch         
    Case Retval="ENTER":
         Switch
           Case Field()="Data_Cadastro"            : Moveto [Inativo]
           Case Field()="Inativo":
                If IsBlank([]) Then []="N" EndIf
                Moveto [Fax]
           Case Field()="Fax"                      : Tecla_Funcao=-115
                                                     campo="Data da Primeira Compra"
                                                     return
           
           OtherWise:
                Right
         EndSwitch
         
    OtherWise: if ChecaTeclasFuncao()
                  then return
               endif   
     
  EndSwitch          

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="OPEN"  
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
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 or Evento["KeyCode"] = -118:
           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")
             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
           AcceptDialog

      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="TG_NADA"                : CancelDialog
             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_Renda Faturamento"   
             Case Campo="C_Renda Faturamento": 
                  Campo="C_Referencia Comercial3"
             Case Campo="C_Referencia Pessoal"  :
                  Campo="C_Referencia Bancaria"     
             Case Campo="C_Pai Socio":
                  Campo="C_Referencia Pessoal"
             Case Campo="C_CGC_PAI":
                  Campo="C_Pai Socio"
             Case Campo="C_Mae Socio":
                  Campo="C_CGC_PAI"
             Case Campo="C_CGC_MAE":
                  Campo="C_Mae Socio"                  
             Case Campo="C_Nome Parente":
                  Campo="C_CGC_MAE"    
             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

      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_Renda Faturamento"
             Case Campo="C_Renda Faturamento":  
                  VSD_RENDA_FAT=ControlValue("C_Renda Faturamento")
                  Campo="C_Referencia Bancaria"
             Case Campo="C_Referencia Bancaria":
                  VSD_REF_BANC=ControlValue("C_Referencia Bancaria")
                  Campo="C_Referencia Pessoal"
             Case Campo="C_Referencia Pessoal" :
                  VSD_REF_PESSOAL=ControlValue("C_Referencia Pessoal")
                  Campo="C_Pai Socio"     
             Case Campo="C_Pai Socio":
                  VSD_PAI_SOCIO=ControlValue("C_Pai Socio")
                  Campo="C_CGC_PAI"  
             Case Campo="C_CGC_PAI":
                  VSD_CGC_PAI=ControlValue("C_CGC_PAI")
                  If Not IsBlank(VSD_CGC_PAI)
                     Then If Checa_CGC_CPF_Formatado(VSD_CGC_PAI)
                             Then Campo="C_Mae Socio"
                          EndIf
                     Else Campo="C_Mae Socio"
                  EndIf                 
             Case Campo="C_Mae Socio":
                  VSD_MAE_SOCIO=ControlValue("C_Mae Socio")
                  Campo="C_CGC_MAE"
             Case Campo="C_CGC_MAE":
                  VSD_CGC_MAE=ControlValue("C_CGC_MAE")
                  If Not IsBlank(VSD_CGC_MAE)
                     Then If Checa_CGC_CPF_Formatado(VSD_CGC_MAE)
                             Then Campo="C_Nome Parente"
                          EndIf
                     Else Campo="C_Nome Parente"
                  EndIf
             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
                  AcceptDialog
           EndSwitch
   EndSwitch
EndIf
RefreshDialog
SelectControl Campo

TECLA="Esc=Retornar  "
If Not EM_EDICAO
  Then TECLA=TECLA+"[Ver   ]  "
  Else TECLA=TECLA+"[Editar]  "
EndIf 
TECLA=TECLA+"                                   Ctrl+PgDn=Finalizar   "

Switch             
 Case Campo="C_Referencia Comercial1":
      MSGCAMPO="1§ Referˆncia Comercial"
 Case Campo="C_Referencia Comercial2":
      MSGCAMPO="2§ Referˆncia Comercial"
 Case Campo="C_Referencia Comercial3":
      MSGCAMPO="3§ Referˆncia Comercial"
 Case Campo="C_Renda Faturamento"    :
      MSGCAMPO="Renda do Faturamento"
 Case Campo="C_Referencia Bancaria"  :
      MSGCAMPO="Referˆncia Banc ria"
 Case Campo="C_Referencia Pessoal"   :
      MSGCAMPO="Referˆncia Pessoal"
 Case Campo="C_Pai Socio"            :
      MSGCAMPO="Nome Pai S¢cio"
 Case Campo="C_Mae Socio"            :
      MSGCAMPO="Nome M„e S¢cio"
 Case Campo="C_CGC_PAI"              : 
      MSGCAMPO="CPF/CGC Pai S¢cio"
 Case Campo="C_CGC_MAE"              :
      MSGCAMPO="CPF/CGC M„e S¢cio"
 Case Campo="C_Nome Parente"         :
      MSGCAMPO="Nome do Parente"                                           
 Case Campo="C_Endereco Parente"     :
      MSGCAMPO="Endere‡o do Parente"
 Case Campo="C_Local Trabalho"       :
      MSGCAMPO="Local de Trabalho"
 Case Campo="C_Endereco Trabalho"    :
      MSGCAMPO="Endere‡o de Trabalho"
 Case Campo="C_Tempo Trabalho"       :
      MSGCAMPO="Tempo de Trabalho"
 Case Campo="C_Nome_Fiador"          :
      MSGCAMPO="Nome do Fiador"
 Case Campo="C_CGC_Fiador"           :
      MSGCAMPO="CPF/CGC do Fiador"
 Case Campo="C_End_Fiador"           :
      MSGCAMPO="Endere‡o do Fiador"
 Case Campo="C_Tel_Fiador"           :
      MSGCAMPO="Telefone do Fiador"
 Case Campo="C_Imovel Proprio/Valor" :
      MSGCAMPO="Im¢vel"
 Case Campo="C_Data de Nascimento"   :            
      MSGCAMPO="Data de Nascimento/Funda‡Æo"   
EndSwitch

MontaRodapeSD(MSGCAMPO, TECLA)

Return TEMP
EndProc   ; (Geral_Dialog)


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

Tabela=Table()
Campo2 =Field()

ResyncKey
UnLockRecord
FormKey

;** Data de Nascimento no Cadastro da Pessoa "Destinat"
GetRecord "Destinat" [C_clieC->Codigo] To REG_PESSOA
If RetVal
   Then VSD_DATA_NASC   =REG_PESSOA["Data de Nascimento"]
   Else VSD_DATA_NASC   =BlankDate()
EndIf

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_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_NADA        =""
   Else End Down
        [Codigo        ]=[C_clieC->Codigo]
        VSD_REF_COM1    =""
        VSD_REF_COM2    =""
        VSD_REF_COM3    =""
        VSD_REF_BANC    =""
        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_NADA        =""
Endif

Moveto [Referencia Comercial1]
INICIO_DIALOG=True
Showdialog "Dados complementares do cliente " Proc "Geral_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN",-118
    @ 01,00 height 23 width 80

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

   Label  @ 00,39  "Renda/Faturamento" for "C_Renda Faturamento"
   Accept @ 01,40   Width 13 "$" picture "#*#.[##]" Tag "C_Renda Faturamento" to VSD_RENDA_FAT

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

   @ 06,01 ?? "Referˆncia Pessoal"
   Accept @ 07,01   Width 76 "A80" picture "!*!" Tag "C_Referencia Pessoal" to VSD_REF_PESSOAL

   @ 08,01 ?? "Pais/S¢cios/Conjuge"
   ;Label  @ 09,01  "1" for "C_Pai Socio"
   Accept @ 09,01   Width 38 "A40" picture "!*!" Tag "C_Pai Socio" to VSD_Pai_Socio
   ;Label  @ 10,01  "2" for "C_Mae Socio"
   Accept @ 10,01   Width 38 "A40" picture "!*!" Tag "C_Mae Socio" to VSD_Mae_Socio
   Accept @ 09,40   Width 20 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_PAI" to VSD_CGC_PAI
   Accept @ 10,40   Width 20 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_MAE" to VSD_CGC_MAE

   @ 11,01 ?? "Parente.: Nome/Endere‡o"
   ;Label  @ 10,01  "Nome" for "C_Nome Parente"                                                     
   Accept @ 12,01   Width 38 "A40" picture "!*!" Tag "C_Nome Parente" to VSD_N_PARENTE
   ;Label  @ 11,01  "Endere‡o" for "C_Endereco Parente"
   Accept @ 12,40   Width 37 "A40" picture "!*!" Tag "C_Endereco Parente" to VSD_END_PARENTE

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

   @ 16,01 ?? "Fiador..: Nome/CGC/Endere‡o/Telefone"
   ;Label  @ 17,01  "Nome" for "C_Nome_Fiador"
   Accept @ 17,01   Width 38 "A40" picture "!*!" Tag "C_Nome_Fiador" to VSD_NOME_FIADOR
   Accept @ 17,40   Width 37 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_Fiador" to VSD_CGC_FIADOR
   ;Label  @ 18,01  "Endere‡o" for "C_End_Fiador"
   Accept @ 18,01   Width 38 "A40" picture "!*!" Tag "C_End_Fiador" to VSD_End_FIADOR
   Accept @ 18,40   Width 37 "A18" picture "!*!" Tag "C_Tel_Fiador" to VSD_Tel_FIADOR
            
   Label  @ 19,00  "Im¢vel..: Pr¢prio/Valor" for "C_Imovel Proprio/Valor"
   Accept @ 20,01   Width 38 "A40" picture "!*!" Tag "C_Imovel Proprio/Valor" to VSD_IMOVEL_P
   Label  @ 19,39  "Data Nascimento/Funda‡Æo" for "C_Data de Nascimento"
   Accept @ 20,40   Width 15 "D" picture "##.##.##[##]" Tag "C_Data de Nascimento" to VSD_DATA_NASC

   Accept @ 20,75 Width 1 "A1" 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()
Private ACHOU_PESSOA,Ant_Tab,Ant_Fie

Ant_Tab = Table()
Ant_Fie = Field()

[Referencia Comercial1]=VSD_REF_COM1
[Referencia Comercial2]=VSD_REF_COM2
[Referencia Comercial3]=VSD_REF_COM3
[Referencia Bancaria  ]=VSD_REF_BANC
[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
[Nome Fiador          ]=VSD_NOME_FIADOR
[Endereco Fiador      ]=VSD_CGC_FIADOR
[CGC/CPF Fiador       ]=VSD_END_FIADOR
[Telefone Fiador      ]=VSD_TEL_FIADOR

If VSD_DATA_NASC<>BlankDate() And Type(DateVal(VSD_DATA_NASC))="D"
   Then ACHOU_PESSOA=False
        Moveto "Destinat" ImageRights 
        If [Codigo]<>[C_clieC->Codigo] 
           Then Moveto [Codigo]  
                Locate [C_clieC->Codigo]
                If RetVal
                   Then ACHOU_PESSOA=True
                EndIf
           Else ACHOU_PESSOA= True
        EndIf 
        If ACHOU_PESSOA
          Then [Destinat->Data de Nascimento]=VSD_DATA_NASC
                UnLockRecord
        EndIf
        ImageRights ReadOnly
        
        Moveto Ant_Tab
        Moveto Field Ant_Fie
EndIf
Release Vars ACHOU_PESSOA,Ant_Tab,Ant_Fi

EndProc ;Grava_Complemento()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog_CliVin(Disparo,Campo,Evento,Elemento)

Temp=True
TECLA    =""
MSG_CAMPO=""

If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9: Temp=False
     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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_Registro"      : Campo="NO"
            Case Campo="YES" Or Campo="NO": Campo="TG_Registro"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_Registro": Campo="YES"
                         CLIENTE_ESCOLHA = SubStr(CLIENTE_VINCULADO[ControlValue("TG_Registro")],1,4)
                  EndSwitch
          EndIf                     
   EndSwitch 
EndIf

Switch  
  Case Campo="TG_Registro":
       MSG_CAMPO="Selecione o Cliente"
EndSwitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina para Mostrar Clientes Vinculados                                     *
;*******************************************************************************
Proc Clientes_Vinculados(PARAM)
Private PARAM,i,ANT_TAB,ANT_CAMP,GRUPO_CODIGO,GRUPO_DESCRICAO,CLIENTE_VINCULADO,CONT_CLI,REG_CLIVIN
 
ANT_TAB=Table()
ANT_CAMP =Field()

ResyncKey
UnLockRecord
FormKey

Release Vars CLIENTE_VINCULADO

GRUPO_CODIGO    = ""
GRUPO_DESCRICAO = ""
CONT_CLI        = 0
DynArray CLIENTE_VINCULADO[]

Moveto "\\Sistemas\\Cadastro\\GPessoaI"
Moveto [Codigo]
Locate [C_Cliec->Codigo]
If RetVal
   Then GRUPO_CODIGO = [CodigoGrupoPessoa]
        GETRECORD "\\Sistemas\\Cadastro\\GPessoaC" GRUPO_CODIGO To REG_CLIVIN 
        If Retval  
           Then GRUPO_DESCRICAO = REG_CLIVIN["DescricaoGrupoPessoa"]
        EndIf   
        Release Vars REG_CLIVIN
        Home
        Moveto [CodigoGrupoPessoa]
        Locate GRUPO_CODIGO
        While GRUPO_CODIGO = [CodigoGrupoPessoa]
          If [C_Cliec->Codigo] <> [Codigo]
             Then CONT_CLI = CONT_CLI + 1
                  CLIENTE_VINCULADO[CONT_CLI] = [Codigo]+" "+[Nome Fantasia EmitDest]
          EndIf         
          Skip
          If Eot() Then QuitLoop EndIf
        EndWhile
EndIf

Moveto "C_Cliec"
FormKey
Moveto ANT_TAB
Moveto Field ANT_CAMP

If PARAM <> "Mostra_Clientes"
   Then If CONT_CLI > 0
           Then Mensagem("Possui "+StrVal(CONT_CLI)+" Cliente(s) Vinculados!////Pressione [F6] para verificar estes clientes!")
        EndIf   
        Return
EndIf      

If CONT_CLI > 0
   Then CLIENTE_ESCOLHA=""
        While True
          Mouse Show 
          ShowDialog "GRUPO -> "+GRUPO_CODIGO+" "+GRUPO_DESCRICAO Proc "SD_Dialog_CliVin"
          Trigger "OPEN","ARRIVE","SELECT"
          Key "ENTER","ESC","TAB", "F1"
           @ 02,16   Height 14 Width 56
        
           @ 00,02 ?? "Clientes Vinculados "
           PickDynArray @1,01 Height 08 width 52
            Columns 1
             CLIENTE_VINCULADO
              Tag "TG_Registro"
               To ArrayElement
        
          Pushbutton @ 10,16 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
          Pushbutton @ 10,28 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue
        
          EndDialog
          If Not RetVal 
             Then CLIENTE_ESCOLHA=""
                  QuitLoop 
          EndIf
          
          If CLIENTE_ESCOLHA<>""
             Then GetRecord "\\Sistemas\\Cadastro\\Destinat" CLIENTE_ESCOLHA To REG_CLIVIN
                  If ReTval
                     Then If REG_CLIVIN["Tipo"]<>"C"
                              Then Mensagem("Tipo n„o ‚ Cliente !")
                                   Loop
                          EndIf
                          If REG_CLIVIN["Situacao do Cliente"]="PESSIMO"
                             Then Mensagem("Verificar a Situa‡„o do Cliente com a Gerencia !")
                                  Loop
                          EndIf
                          
                  EndIf
                  
                  ImageRights
                  Exclusao()
                  Del
                  
                  While True
                    End
                    SeqMaster=[Sequencia Master]+1
                    CtrlPGDn
                    [Sequencia Master]=SeqMaster
                    LockRecord
                    If RetVal Then QuitLoop EndIf
                  EndWhile
                
                  CODIGO = CLIENTE_ESCOLHA
                  Moveto [Codigo]
                  [] = CODIGO
                  
                  CHAVE=0
                  Exclusao()
                  Selecionar()  
                  QuitLoop
          EndIf
       EndWhile
   Else Mensagem("Este cliente n„o possui nenhum v¡nculo com outro cliente!")    
EndIf

Release Vars CLIENTE_VINCULADO

EndProc ;Clientes_Vinculados()


;*******************************************************************************
;* Rotina para Impress„o da Posi‡Æo do Cliente                                 *
;*******************************************************************************
Proc Imprimir()
private l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14
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("W47,AL",[Razao Social])+[CGC]+"\n"

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

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

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


l1 ="* Compras    Data            Valor"
l2 ="Primeira. "+Format("W10,AL",Format("D13",[Data da Primeira Compra]))+Spaces(03)+Format("W11.2,EIC",[Valor da Primeira Compra])
l3 ="Ultima... "+Format("W10,AL",Format("D13",[Data da Ultima Compra  ]))+Spaces(03)+Format("W11.2,EIC",[Valor da Ultima Compra  ])
l4 ="Maior.... "+Format("W10,AL",Format("D13",[Data da Maior Fatura   ]))+Spaces(03)+Format("W11.2,EIC",[Maior Fatura            ])
l5 =""
l6 ="* Atrasos:     "+"[ Maximo "+LTrim(StrVal(Format("W10,EIC",[Maximo Dias Atraso])))+" Dias ]"
l7 ="O maior foi "+rtrim(Format("W6,AL",[Maior Atraso]))+" dias em "+Format("D13",[Data do Maior Atraso])
l8 ="com "+LTrim(Format("W11.2,EIC",[Valor do Maior Atraso]))+" , frequencia "+StrVal([Numero de Atrasos])+" vezes"
l9 =""
l10="* Ultimas Consultas"
l11="  SPC      "+Format("D13",[Data_Ultima_COnsulta  ])+" - "+[Situacao_Consulta]
l12="  Sintegra "+Format("D13",[Data_Consulta_Sintegra])+" - "+[Sit_Consulta_Sintegra]
l13=""
l14="* Situacao do Cliente: "+Format("W20,AL",[Situacao do Cliente]) 

Print File ARQIMP format("W40,AL",l1 )+"* Resumo dos Movimentos"+"\n"
Print File ARQIMP format("W40,AL",l2 )+"(+)Pedido em Aberto......:"+Format("W13.2,EIC",[Total Pedidos])+"\n"
Print File ARQIMP format("W40,AL",l3 )+"(+)Titulos a Vencer......:"+Format("W13.2,EIC",[Total A Vencer])+"\n"
Print File ARQIMP format("W40,AL",l4 )+"(+)Titulos Vencidos......:"+Format("W13.2,EIC",[Total Vencido])+"\n"                  
Print File ARQIMP format("W40,AL",l5 )+"(+)Cheques a Descontar...:"+Format("W13.2,EIC",[Total Cheques a Descontar])+"\n"
Print File ARQIMP format("W40,AL",l6 )+"(+)Cheques em Compensacao:"+Format("W13.2,EIC",[Total Cheques a Compensar])+"\n"
Print File ARQIMP format("W40,AL",l7 )+"                          -------------"+"\n"
Print File ARQIMP format("W40,AL",l8 )+"(=)Total ................:"+Format("W13.2,EIC",[Total Pedidos]+[Total a Vencer]+[Total Vencido]+[Total Cheques])+"\n"
Print File ARQIMP format("W40,AL",l9 )+"(-)Limite de Credito.....:"+Format("W13.2,EIC",[Limite de Credito])+"\n"
Print File ARQIMP format("W40,AL",l10)+"(-)T¡tulo de Credito.....:"+Format("W13.2,EIC",[Total TC         ])+"\n"
Print File ARQIMP format("W40,AL",l11)+"                          -------------"+"\n"
Print File ARQIMP format("W40,AL",l12)+"(=)Disponibilidade.......:"+Format("W13.2,EIC",(([Limite de Credito]+[Total TC])-([Total Pedidos]+
                                                                                         [Total A Vencer]+[Total Vencido]+[Total Cheques])))+"\n"
Print File ARQIMP format("W40,AL",l13)+"\n"
Print File ARQIMP format("W40,AL",l14)+"\n\n"

LINHA=27   
Release Vars l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l112,l13,l14
                                                                                                                                      
If [Observacoes]<>""
   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

If [Obs_Vendas]<>""
   Then Print File ARQIMP "* Observacoes de Venda:"+"\n"
        Print File ARQIMP SubStr([Obs_Vendas],1,78)+"\n"
        LINHA=LINHA+2
        If SubStr([Obs_Vendas],79,78)<>""
           Then Print File ARQIMP SubStr([Obs_Vendas],79,78)+"\n"
                LINHA=LINHA+1
           Else Print File ARQIMP "\n"
                LINHA=LINHA+1
        EndIf
        If SubStr([Obs_Vendas],157,78)<>""
           Then Print File ARQIMP SubStr([Obs_Vendas],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;


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

UnLockRecord
FormKey

;; Titulos a Vencer
Aguarde(MSG_AGUARDE+Barra(5,1))

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 
                          VStotav=VStotav+[Saldo do Documento]
                          Vcav   =Vcav  +1
                     
                          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]
                          [Valor do Documento     ]=[\Sistemas\CtaRec\Duplic->Valor do Documento     ]
                          UnLockRecord
                     Else 
                          VStotv =VStotv+[Saldo do Documento]
                          Vcv    =Vcv   +1
                          
                          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]
                          [Valor do Documento     ]=[\Sistemas\CtaRec\Duplic->Valor do Documento     ]
                          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(5,2))

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
                                  UnLockRecord
                                  
                                  VStotped=VStotped+SOMAP
                                  Vcped   =Vcped+1
                          EndIf
                  EndIf
                  Moveto "\\Sistemas\\Vendas\\PedidoC"
          EndIf
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "IndPed01" Next CODIGO
				EndWhile
EndIf

  Vcchq   =blankNum()



;;; Cheques a Descontar
Aguarde(MSG_AGUARDE+Barra(5,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
             [Situacao]<>"COBRANCAPGTO" 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
                  
                  Vcchq   =Vcchq+1
                  
                  Moveto "\\Sistemas\\CheqRec\\ChequeI"

          EndIf
          If [Situacao]="LIQUIDADO"
             Then 
                  Vcchq   =Vcchq+1
                 
                  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

VStotchq=TOTCQAC+TOTCQAD+TOTSEMF

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(5,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      ]
        [Data_Ultima_Consulta    ]=[FichaCli->Data_Ultima_Consulta    ]
        [Situacao_Consulta       ]=[FichaCli->Situacao_Consulta       ]
        [Protocolo_Obs_Consulta  ]=[FichaCli->Protocolo_Obs_Consulta  ]
        [Data_Consulta_Sintegra  ]=[FichaCli->Data_Consulta_Sintegra  ]
        [Sit_Consulta_Sintegra   ]=[FichaCli->Sit_Consulta_Sintegra   ]
        
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



;; Titulos de Credito
Aguarde(MSG_AGUARDE+Barra(5,5))
TOTTC=0

Moveto "\\Sistemas\\Ctapag\\Titulos"
Moveto [Codigo do Emitente]
OrderTable {Indtit21}
Locate IndexOrder by "Indtit21" CODIGO
If RetVal
   Then While [Codigo do Emitente]=CODIGO 
          If [Saldo do Documento]>0.01 and [Tipo do Pagamento]="TC"
             Then TOTTC=TOTTC+[Saldo do Documento]
					EndIf
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "Indtit21" Next CODIGO
				EndWhile
EndIf

Moveto "C_Cliec"
[Total Pedidos            ]=VStotped
[Total A Vencer           ]=VStotav
[Total Vencido            ]=VStotv
[Total Cheques            ]=VStotchq
[Total Cheques a Compensar]=TOTCQAC
[Total Cheques a Descontar]=TOTCQAD+TOTSEMF
[Total TC                 ]=TOTTC                 
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      ]
[Data_Ultima_Consulta    ]=[C_Cliec->Data_Ultima_Consulta    ]
[Situacao_Consulta       ]=[C_Cliec->Situacao_Consulta       ]
[Protocolo_Obs_Consulta  ]=[C_Cliec->Protocolo_Obs_Consulta  ]
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]
[Inativo                ]=[C_Cliec->Inativo]
UnLockRecord
ImageRights ReadOnly

Moveto "C_ClieC"
FormKey
LimpAguarde()

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc SELECIONA()
ClearAll
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then If VSDGOPAG=1 Or VSDGOPAG=3 Or VSDGOPAG=4 Then
           {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
           Moveto [Codigo da Empresa      ] Example "cemp" TypeIn ",~VSDGEMPRESA2.."
           Moveto [Numero do Documento    ] Example "ndoc"
           Moveto [Serie do Documento     ] Example "sdoc"
           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 ] Check TypeIn "S"
           Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
           Switch
               Case VSDGOPANALISE="1" :
                  Moveto [Valor Nota Fiscal      ] TypeIn "Calc Sum as Valor Total"
               Case VSDGOPANALISE="2" :
                  {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
                  Moveto [Codigo da Empresa      ] Example "cemp"
                  Moveto [Numero do Documento    ] Example "ndoc"
                  Moveto [Serie do Documento     ] Example "sdoc"
                  Moveto [Preco Total            ] TypeIn "Calc Sum as Valor Total"
                  Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
                  Moveto [Situacao_Item          ] TypeIn "Not C"
           EndSwitch
           Do_It!
           ClearAll
           
           Processa()
        EndIf
           
        If VSDGOPAG=2 Or VSDGOPAG=3 Or VSDGOPAG=4 Then
           {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
           Moveto [Codigo da Empresa      ] Example "cemp" TypeIn ",~VSDGEMPRESA2.."
           Moveto [Numero do Documento    ] Example "ndoc"
           Moveto [Serie do Documento     ] Example "sdoc"
           Moveto [Data de Emissao        ] check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
           Moveto [Descricao da Destinacao] TypeIn "..DEVOL.."
           Moveto [Situacao               ] TypeIn "Not C"
           Moveto [Tipo Movimento Estoque ] Check TypeIn "E"
           Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
           Switch
               Case VSDGOPANALISE="1" :
                  Moveto [Valor Nota Fiscal      ] TypeIn "Calc Sum as Valor Total"
               Case VSDGOPANALISE="2" :
                  {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
                  Moveto [Codigo da Empresa      ] Example "cemp"
                  Moveto [Numero do Documento    ] Example "ndoc"
                  Moveto [Serie do Documento     ] Example "sdoc"
                  Moveto [Preco Total            ] TypeIn "Calc Sum as Valor Total"
                  Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
                  Moveto [Situacao_Item          ] TypeIn "Not C"
           EndSwitch
           Do_It!
           ClearAll
           
           Processa()
        EndIf      
EndIf
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc SELECIONA2()
ClearAll

If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
   Then
        If VSDGOPAG=2 Or VSDGOPAG=3 Or VSDGOPAG=4 Then
           {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
           Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA2.."
           Moveto [Numero do Lancamento   ] Example "nlan"
           Moveto [Data de Entrada        ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM, as Data de Emissao"
           Moveto [Tipo de Operacao       ] Check TypeIn "D, as Tipo Movimento Estoque"
           Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
           Switch
               Case VSDGOPANALISE="1" :
                  Moveto [Valor Nota Fiscal      ] TypeIn "Calc Sum as Valor Total"
               Case VSDGOPANALISE="2" :
                  {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
                  Moveto [Numero do Lancamento   ] Example "nlan"
                  Moveto [Preco Total            ] TypeIn "Calc Sum as Valor Total"
                  Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
           EndSwitch
           Do_It!
           ClearAll

           Processa()
        EndIf
EndIf
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc Cria_Registros()
ClearAll

Mes_Aux=NumVal(MESINI)
Ano_Aux=NumVal(ANOINI)
CoEdit PrivDir()+"GR_0008a"
For wi From 1 to 13
    End Down
    [Ano          ]=Ano_Aux
    [Mes          ]=Mes_Aux
    [MesExt       ]=mesext(NumVal(Mes_Aux))
    [Valor 1]=0
    [Valor 2]=0
    If Mes_Aux = 12 
       Then Mes_Aux=0
            Ano_Aux=Ano_Aux+1
    EndIf
    Mes_Aux=Mes_Aux+1
EndFor
Do_It!
ClearAll

EndProc

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

View PrivDir()+"GR_0008a"
CoEdit "Answer"
Scan
   If IsBlank([Data de Emissao]) Then Loop EndIf
   Moveto PrivDir()+"GR_0008a"
   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
   If VSDGOPANALISE = "1"
      Then If [Answer->Tipo Movimento Estoque]="S"
              Then [Valor 1]=[Valor 1]+[Answer->Valor Total]
              Else [Valor 2]=[Valor 2]+[Answer->Valor Total]
           EndIf
      Else If [Answer->Tipo Movimento Estoque]="S"
              Then [Valor 1]=[Valor 1]+[Answer->Valor Total]-[Answer->Valor Desconto Total]
              Else [Valor 2]=[Valor 2]+[Answer->Valor Total]-[Answer->Valor Desconto Total]
           EndIf
   EndIf
   Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc PROCESSA2()
ClearAll

VRTOTAL=0 
VRTOTALDEV=0 
{Ask} TypeIn PrivDir()+"GR_0008a" Enter Check
Do_It!
ClearAll

View PrivDir()+"GR_0008"
CoEdit "Answer"
Scan
   CopytoArray Reg
   
   Moveto PrivDir()+"GR_0008"
   End Down
   [Mes        ]=StrVal(Reg["Ano"])+"/"+Substr(mesext(NumVal(Reg["Mes"])),1,3)
   Switch
      Case VSDGOPAG=1: [Valor 1 ] =Reg["Valor 1"]
                       VRTOTAL    =VRTOTAL+[Valor 1]
      Case VSDGOPAG=2: [Valor 1 ] =Reg["Valor 2"]
                       VRTOTAL    =VRTOTAL+[Valor 1]
      Case VSDGOPAG=3: [Valor 1 ] =Reg["Valor 1"]
                       [Valor 2 ] =Reg["Valor 2"]
                       VRTOTAL    =VRTOTAL+[Valor 1]
                       VRTOTALDEV =VRTOTALDEV+[Valor 2]
      Case VSDGOPAG=4: [Valor 1 ] =Reg["Valor 1"]-Reg["Valor 2"]
                       VRTOTAL    =VRTOTAL+[Valor 1]
   EndSwitch
   
   Moveto "Answer"
EndScan

Do_It!
ClearAll

If VSDGOPAG<>3 Then
   {Ask} TypeIn PrivDir()+"GR_0008" Enter
   Moveto [Mes    ] Example "dd"
   Moveto [Valor 1] Example "vr"
   {Ask} TypeIn PrivDir()+"GR_0008b" Enter TypeIn "Fast Insert"
   Moveto [Mes    ] Example "dd"
   Moveto [Valor 1] Example "vr"
   Do_It!
   ClearAll
EndIf

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_OPANALISE"     : Campo="TG_EMPRESA"
            Case Campo="TG_MESANO"        : Campo="TG_OPANALISE"
            Case Campo="TG_OPAG"          : Campo="TG_MESANO"
            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" :
                         If Not IsBlank(VSDGEMPRESA)
                            Then Campo="TG_OPANALISE"
                            Else VSDGNOMEMP=""
                         Endif
                    Case Campo="TG_OPANALISE"   :Campo="TG_MESANO"
                         VSDGOPANALISE=ControlValue("TG_OPANALISE")
                         Switch
                           Case VSDGOPANALISE="2":
                                VSDGNOMOPANALISE="Valor Total Produtos"
                           OtherWise:
                                VSDGOPANALISE="1"
                                VSDGNOMOPANALISE="Valor Total Nota"
                         EndSwitch
                    Case Campo="TG_MESANO"  : Campo="TG_OPAG"
                    Case Campo="TG_OPAG"    : Campo="YES"
                         VSDGOPAG=ControlValue("TG_OPAG")
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="":
     MSG_CAMPO=""
  Case Campo="TG_OPANALISE":
     MSG_CAMPO="Op‡”es: 1=Valor Total Nota  2=Valor Total Produtos"
  Case Campo="TG_OPAG":
     MensagemRadioButtons()
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Analise de Vendas por Grafico                                        *
;*******************************************************************************
Proc Posicao_Pedidos()
Private ntabela, ncampo

PARAM_CCLIEC = True

ncampo=Field()   
nTabela=Table()

VSDGDESTINAT  = [C_ClieC->Codigo]
VSDGNOMDEST   = [C_ClieC->Razao Social]
VSDGDESTINAT2 = VSDGDESTINAT
      
UnLockRecord
Do_It!
ClearAll

VSDGEMPRESA = ""
VSDGOPAG    = 1

Play "\\Sistemas\\Vendas\\RM_0501"

ClearAll
Carrega_Tabelas()

Moveto [Sequencia Master]
Locate SeqMaster
PickForm "F"

Moveto nTabela
Moveto Field ncampo

Release Vars PARAM_CCLIEC

EndProc ;Posicao_Pedidos()

;*******************************************************************************
;* Rela‡Æo de Nota Fiscal por Cliente                                          *
;*******************************************************************************
Proc Relacao_DocumentosEmitidos()

PARAM_CCLIEC = True

ncampo=Field()   
nTabela=Table()

VSDGEMPRESA  = ""
VSDGNOMEMP   = "Todas"

VSDGDESTINAT  = [C_ClieC->Codigo]
VSDGNOMDEST   = [C_ClieC->Razao Social]
VSDGDESTINAT2 = VSDGDESTINAT
      
UnLockRecord
Do_It!
ClearAll

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

Play "\\Sistemas\\Vendas\\RM_0028"

ClearAll
Carrega_Tabelas()

Moveto [Sequencia Master]
Locate SeqMaster
PickForm "F"

Moveto nTabela
Moveto Field ncampo

Release Vars PARAM_CCLIEC

EndProc ;Relacao_DocumentosEmitidos()

;*******************************************************************************
;* Rotina Analise de Vendas por Grafico                                        *
;*******************************************************************************
Proc Titulos_Recebidos(PARAM)
Private PARAM,ntabela, ncampo

PARAM_CCLIEC = True

ncampo=Field()   
nTabela=Table()

VSDGDESTINAT =[C_ClieC->Codigo]
VSDGNOMDEST  =[C_ClieC->Razao Social]
VSDGDESTINAT2=VSDGDESTINAT
      
UnLockRecord
Do_It!
ClearAll

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

Play "\\Sistemas\\CtaRec\\"+PARAM ;RM_0110 ou RM_0110B

ClearAll
Carrega_Tabelas()

Moveto [Sequencia Master]
Locate SeqMaster
PickForm "F"

Moveto nTabela
Moveto Field ncampo

Release Vars PARAM_CCLIEC

EndProc ;Titulos_Recebidos()

;*******************************************************************************
;* Rotina Analise de Vendas por Grafico                                        *
;*******************************************************************************
Proc Grafico()
private ntabela, ncampo

ncampo=Field()   
nTabela=Table()

VSDGDESTINAT =[C_ClieC->Codigo]
VSDGNOMDEST  =[C_ClieC->Razao Social]

VSDGDESTINAT2=[C_ClieC->Codigo]
VSDGNOMDEST2 =[C_ClieC->Razao Social]

UnLockRecord
Do_It!
ClearAll

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

While True
  ShowDialog "Evolu‡„o das vendas mensais por cliente" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 06,12   Height 13 Width 72

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

    Label  @ 02,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT"   To VSDGDESTINAT2
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMDEST"    To VSDGNOMDEST2

    Label  @ 04,00 "Op‡„o p/ Analise" For "TG_OPANALISE"
    Accept @ 05,01 Width 07 "A1"  Picture "1,2" Tag "TG_OPANALISE" To VSDGOPANALISE
    Accept @ 05,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMOPANALISE" To VSDGNOMOPANALISE

    Label  @ 06,00 "At‚ Mˆs/Ano" For "TG_MESANO"
    Accept @ 07,01 Width 13 "A7"  Picture "##;.####" Tag "TG_MESANO" To VSDGMESANO

    Label  @ 00,35 "Op‡Æo de Visualiza‡Æo: "  For "TG_OPAG"
    RadioButtons @ 01,35 Height 4 Width 33
     "~V~endas",
     "~D~evolu‡”es",
     "~A~mbos [V/D]",
     "~L~¡quido [V-D]"
     Tag "TG_OPAG"
     To VSDGOPAG

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If VSDGEMPRESA=""
     Then Mensagem("Empresa Invalida !")
          Loop
  EndIf
  If VSDGEMPRESA="0000"
     Then VSDGEMPRESA2=""
     Else VSDGEMPRESA2=VSDGEMPRESA
  EndIf

  If VSDGDESTINAT=""
     Then Mensagem("Cliente Invalido !")
          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_0008"  PrivDir()+"GR_0008"
  Copy "\\Base\\Sistemas\\Vendas\\GR_0008a" PrivDir()+"GR_0008a"
  Copy "\\Base\\Sistemas\\Vendas\\GR_0008b" PrivDir()+"GR_0008b"
  Empty(PrivDir()+"GR_0008")
  Empty(PrivDir()+"GR_0008a")
  Empty(PrivDir()+"GR_0008b")

  AGUARDE("Aguarde, Gerando Dados")
  
  Cria_Registros()

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    Seleciona()
    Seleciona2()
  EndWhile
  
  If IsTable(PrivDir()+"GR_0008a")
     Then View PrivDir()+"GR_0008a"
          Moveto [Valor 1]
          VR1=ImageCsum()
          Moveto [Valor 2]
          VR2=ImageCsum()
          ClearAll
          If VR1=0 And VR2=0
             Then MENSAGEM("N„o existem registros a processar")
                  Loop
          EndIf
  EndIf

  Processa2()

  GRAF_TIPO= "3"
  Switch
    Case VSDGOPAG=1 : GRAF_TIT1 = "Evolu‡„o das Vendas por Cliente dos éltimos 13 Meses at‚ "+rTrim(mesext(NumVal(Substr(VSDGMESANO,1,2))))+"/"+Substr(VSDGMESANO,4,4)
                      GRAF_TAB  = PrivDir()+"GR_0008b"
    Case VSDGOPAG=2 : GRAF_TIT1 = "Evolu‡„o das Devolu‡äes por Cliente dos éltimos 13 Meses at‚ "+rTrim(mesext(NumVal(Substr(VSDGMESANO,1,2))))+"/"+Substr(VSDGMESANO,4,4)
                      GRAF_TAB  = PrivDir()+"GR_0008b"
    Case VSDGOPAG=3 : GRAF_TIT1 = "Evolu‡„o das Vendas/Devolu‡”es por Cliente dos éltimos 13 Meses at‚ "
                      +rTrim(mesext(NumVal(Substr(VSDGMESANO,1,2))))+"/"+Substr(VSDGMESANO,4,4)
                      GRAF_TAB  = PrivDir()+"GR_0008"
                      GRAF_LENG = "Y"
                      GRAF_LENG1= "Vendas"
                      GRAF_LENG2= "Devolucoes"
    Case VSDGOPAG=4 : GRAF_TIT1 = "Evolu‡„o das Vendas L¡quidas [V-D] por Cliente dos éltimos 13 Meses at‚ "+rTrim(mesext(NumVal(Substr(VSDGMESANO,1,2))))+
                      "/"+Substr(VSDGMESANO,4,4)
                      GRAF_TAB  = PrivDir()+"GR_0008b"
  EndSwitch
  Switch
    Case VSDGOPAG=3 : GRAF_TIT2= "Empresa: "+VSDGEMPRESA+"-"+VSDGNOMEMP+" Cliente: "+VSDGDESTINAT+"-"+VSDGNOMDEST+" [ Total: V- "+LTrim(Format("W13.2,EIC",VRTOTAL))+
                      "     D- "+LTrim(Format("W13.2,EIC",VRTOTALDEV))+" ]"
    OtherWise       : GRAF_TIT2= "Empresa: "+VSDGEMPRESA+"-"+VSDGNOMEMP+" Cliente: "+VSDGDESTINAT+"-"+VSDGNOMDEST+" [ Total: "+LTrim(Format("W13.2,EIC",VRTOTAL))+" ]"
  EndSwitch
  
  GRAF_LINX= "Valor"
  GRAF_LINY= "Mes"
  
  MONTAGRAFICO(GRAF_TAB)

  Delete PrivDir()+"GR_0008"
  Delete PrivDir()+"GR_0008a"
  Delete PrivDir()+"GR_0008b"
  Delete "Answer"

  quitloop
EndWhile

ClearAll
Carrega_Tabelas()

Moveto [Sequencia Master]
Locate SeqMaster
PickForm "F"

Moveto nTabela
Moveto Field ncampo

Endproc


;*******************************************************************************
;* Rotina para controlar Edicao do registro cabeca                             *
;*******************************************************************************
Proc Controla_EdicaoC()
private campo

campo="Razao Social"
       
DIGITAC=True
While DIGITAC
  Moveto "C_Cliec"
  moveto field campo
  
  Tecla_Funcao=""
  MSGCAMPO    =""

  DIGITA()
  If CHAVE=9
     Then QuitLoop
  EndIf
  campo=Field()
  
  SetaCorRegistro("Padrao")

  While Not IsBlank(Tecla_Funcao)

    Switch
      Case Tecla_Funcao=-118:
           DIGITAC     =False
           Tecla_Funcao=""                               
      
      Case Tecla_Funcao=-116:
           Switch
             Case Table()="C_cliec" and  PageNo()=1      : Tecla_Funcao="VEROBS"
						 
             Case Table()="C_cliec" and  PageNo()=2      : Tecla_Funcao="PEDIDOS"

             Case Table()="C_cliep"                      : Tecla_Funcao="CHEQUES"
             Case Table()="C_cliecq"                     : Tecla_Funcao="VENCIDOS"
             Case Table()="C_cliev"                      : Tecla_Funcao="AVENCER"
             OtherWise                                   : Tecla_Funcao=""
           EndSwitch
           
			Case Tecla_Funcao=-115:
           Switch
             Case Table()="C_cliec" and  PageNo()=1      : Tecla_Funcao="AVENCER"

             Case Table()="C_cliec" and  PageNo()=2      : Tecla_Funcao=""

             Case Table()="C_cliep"                      : Tecla_Funcao="VEROBS"
             Case Table()="C_cliecq"                     : Tecla_Funcao="PEDIDOS"
             Case Table()="C_cliev"                      : Tecla_Funcao="CHEQUES"
             Case Table()="C_clieav"                     : Tecla_Funcao="VENCIDOS"
             OtherWise                                   : Tecla_Funcao=""
           EndSwitch  
    EndSwitch

    Switch
      Case Tecla_Funcao="PEDIDOS"   : Pagina("C_cliep" ,"MR")
      Case Tecla_Funcao="CHEQUES"   : Pagina("C_cliecq","MR")
      Case Tecla_Funcao="VENCIDOS"  : Pagina("C_cliev" ,"MR")
      Case Tecla_Funcao="AVENCER"   : Pagina("C_clieav","MR")
      Case Tecla_Funcao="VEROBS"    : VerObs()
      OtherWise                     : QuitLoop
    EndSwitch

    SetaCorRegistro("Padrao")

  EndWhile
  
EndWhile

EXCLUSAO()
Del

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\\Cadastro\\GPessoaC"  ImageRights ReadOnly
View NoWindow "\\Sistemas\\Cadastro\\GPessoaI"  ImageRights ReadOnly

View NoWindow "\\Sistemas\\CtaRec\\Duplic"      ImageRights ReadOnly
View NoWindow "\\Sistemas\\CtaPag\\Titulos"     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

  VStotped=blankNum()
  VStotchq=blankNum()
  VStotv  =blankNum()
  VStotav =blankNum()

  Vcped   =blankNum()
  Vcchq   =blankNum()
  Vcv     =blankNum()
  Vcav    =blankNum()

  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
  
  EM_EDICAO=False
  Controla_EdicaoC() 
  
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
