;** NotaePV ********************************************************************
;*  Nota de Entrada/Pre‡o Venda                                                *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 14/02/2014 por Bruno Carvalho
;Ultima Alteracao: 06/03/2014 por Bruno Carvalho 
;Motivo Alteracao: Altera‡äes conforme solicita‡Æo 8768 MySuite
;Ultima Alteracao: 19/03/2014 por Kamila Gomes 
;Motivo Alteracao: Ajustes conforme solicita‡Æo 8768 MySuite
;Ultima Alteracao: 17/04/2014 por Andrey Fillipe 
;Motivo Alteracao: Inclusao funcao F6 "Ver custo" 
;Ultima Alteracao: 02/07/2014 por Kamila Gomes 
;Motivo Alteracao: Ajustes calc de custos para itens de consumo
;Ultima Alteracao: 25/05/2015 por Bruno Carvalho
;Motivo Alteracao: Alterado rotina Calc_Custo_Unitario() para o script "FT_CUSTO" 
;Ultima Alteracao: 28/05/2015 por Bruno Carvalho
;Motivo Alteracao: Add PARAM_ACRES_DIF_ALIQ_CUST na rela‡Æo dos parƒmetros que estava faltando conforme o NOTAEC
;Ultima Alteracao: 03/11/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado para atualizar tabela de preco para Tipo de Operacao "O" (Outros)
;Ultima Alteracao: 21/05/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes GetRecord "Iten_Com" -> [Indice Preco de Venda]
;Ultima Alteracao: 20/06/2016 por Bruno Carvalho
;Motivo Alteracao: Posicionado fora da condi‡Æo (ANT_I_Preco_VendaOk<>VSD_I_Preco_VendaOk) -> Tabela_Preco("IncAlt") 
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes showdialog TG_DESTINAT
;Ultima Alteracao: 15/03/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes exclusÆo rotinas controle de pecas
;Ultima Alteracao: 18/12/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes  
;Ultima Alteracao: 18/09/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado op‡Æo F9 p/ carregamento da imagem do produto
;Ultima Alteracao: 24/12/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado Bib_Proc
;Ultima Alteracao: 19/08/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ quando VR_ANTER nÆo houver valor definido
;Ultima Alteracao: 01/02/2021 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes VSD_I_Indice_PrVenda = blank tem que ser VSD_I_Indice_PrVenda>0 

;*******************************************************************************
;* Rotina para Controlar Chave da Ordem de Faturamento                         *
;*******************************************************************************
Proc CHAVEC()

FACA_DIGITAC  = True
INICIO_PAGINA = True

VCITENS =BlankNum()
VSQTDE  =BlankNum()
VSVRMERC=BlankNum()

While True
  Moveto Tabela
  End
  Moveto [Numero do Lancamento]
  LANCTO=[Numero do Lancamento]

  If OPCAO_FORM="F"
     Then Down
     Else PgDn PgDn PgDn
  EndIf
  Moveto [Numero do Lancamento]

  SetaCorRegistro("Editar")
  While True

  TECLA=" F3=Sair da Rotina"
  
  Prompt TECLA
  AguardaTeclasPadrao()
  
     If RetVal=-33
        Then Echo Normal
             Echo Off

             ShowPopup " Op‡”es " CENTERED
               "[~F3~] Sair da Rotina   " : " Sair da Rotina                                " : "F3",
               ;"[~F5~] Atualizar Tabela " : " Atualizar Tabela de Pre‡o conforme altera‡”es " : "F5",
               ;"[~F6~] Imprimir Rela‡„o " : " Imprime a rela‡„o das altera‡”es realizadas   " : "F6",
               Separator,
               "~C~ancela          " : " Cancelar a Opera‡„o                           " : "CANCELA"
             EndMenu
             To MenuVar

             Echo Off

             If Not Retval Or MenuVar="CANCELA" or MenuVar="Esc"
                Then QuitLoop
             EndIf
             RetVal = MenuVar
     EndIf
        
     Switch
        Case Retval="ESC"   : Mensagem("Para finalizar utilize a tecla F3!")
        Case RetVal=-94     : MsgTeclasPadrao()
        Case Retval="F3"    :
             ;**** Cancelado em 06.03.2014 - Imprimir rela‡Æo no ato da mudan‡a *****
             ;If Not GEROU_ROTINA And DynArraySize(ATUALIZA_LANCTO)>0
             ;   Then ConfGeral_N("Deseja sair desta rotina sem atualizar os pre‡os que foram alterados ?")
             ;        If Ok="S"
             ;           Then CHAVEC=9
             ;                Del
             ;                Return
             ;        EndIf
             ;   Else CHAVEC=9
             ;        Del
             ;        Return
             ;EndIf
             CHAVEC=9
             Del
             Return    
        Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
             Del
             While True
               FACA_DIGITAC  = True
               INICIO_PAGINA = True

               VCITENS     =BlankNum()
               VSQTDE      =BlankNum()
               VSVRMERC    =BlankNum()

               If OPCAO_FORM="F"
                  Then PAGINA(Tabela,"MR")
                  Else PAGINA(Tabela,"MT")
               EndIf
               
               Moveto Tabela
               LANCTO=[Numero do Lancamento]
               If Not IsBlank([Data de Entrada])
                  Then MES=ALINHM(StrVal(Month([Data de Entrada])),2)
                       ANO=ALINHM(StrVal(Year([Data de Entrada])),4)
                  Else MES="00"
                       ANO="0000"
               EndIf
               
               Switch
                 Case EDITAR="S":
                      PickForm "1"
                      Echo Normal
                      Echo Off
                      If Checa_Controle([Numero_Controle_Dia])
                         Then CHAVEC=0
                              Controla_EdicaoC()
                         Else UnLockRecord
                      EndIf
                 Case EXCLUIR="S":
                      ConfGeral("Deseja excluir o lan‡amento "+LANCTO+" da rela‡„o ?")
                      If Ok="S"
                         Then Del
                      EndIf
                  OtherWise : QuitLoop     
               EndSwitch
               If OPCAO_FORM="1"
                  Then PickForm "1"
                  Else PickForm "F"
               EndIf
               SetaPosForm()
             EndWhile
             QuitLoop
        ;**** Cancelado em 06.03.2014 - Imprimir rela‡Æo no ato da mudan‡a *****
        ;Case RetVal = "F5" : 
        ;     Switch
        ;       Case ATUALIZA=0 : Mensagem("Nenhum ajuste de pre‡o foi realizado !")
        ;       Case ATUALIZA=1 : ConfGeral("Deseja atualizar o pre‡o do item na tabela de pre‡o,// deste aqui alterado ?")
        ;                         If Ok="S" Then Atualiza_TabPreco("Inclui/Ajusta") EndIf          
        ;       OtherWise       : ConfGeral("Deseja atualizar os pre‡os dos itens na tabela de pre‡o,// destes aqui alterados ?")  
        ;                         If Ok="S" Then Atualiza_TabPreco("Inclui/Ajusta") EndIf
        ;     EndSwitch   
        ;Case RetVal="F6"   :  Atualiza_TabPreco("")
        
        Case Retval="ENTER"  :
             Del
             FastMsg("Inclus„o de registro n„o permitida !")
             QuitLoop
        EndSwitch
  EndWhile
EndWhile         

EndProc   ; ChaveC()
 
;*******************************************************************************
;* Rotina para Localizar Item                                                  *
;*******************************************************************************
Proc CHAVEI()
FACA_DIGITAF=True

GEROU_ROTINA = False
ATUALIZA     = 0
DynArray ATUALIZA_LANCTO[] 

While True
  Moveto "NotaEI"

  SomatoriaDosItens()

  Moveto [Sequencia do Lancamento ] End
  NITEM = [Sequencia do Lancamento] Down
  Moveto [Sequencia do Lancamento ]

  Seta_Sequencia(NITEM,False)
  If IsLockRecord()
     Then Del
          Loop
  EndIf

  Sw_Item_Pesquisado=""

  Opcao_Ver    =False
  SetaCorRegistro("Editar")
  While True
                                                              
    TECLA=" Esc=Retornar  F6=Imprimir   PgUp  PgDn=Finalizar  "

    Prompt TECLA

    Wait Field
         Until "ESC","ENTER","HOME","UP","PGUP","PGDN","PGUP","F6",-64

		Switch
    Case Retval="F6" Or RetVal=-64 :
         Del
         DISPOSITIVO()
         If OK="" 
            Then QuitLoop
         EndIf
         If Imprimir()
            Then GEROU_ROTINA = True
         EndIf  
         QuitLoop
    Case Retval="PGDN":
         ;If IsAssigned(ATUALIZA_LANCTO)
         ;   Then If DynArraySize(ATUALIZA_LANCTO)>0 And Not GEROU_ROTINA 
         ;           Then ConfGeral("Deseja sair desta rotina sem atualizar os pre‡os que foram alterados ?")
         ;                If Ok<>"S"
         ;                   Then Loop
         ;                EndIf   
         ;        EndIf
         ;EndIf
         Del
         Moveto [Sequencia do Lancamento]
         CHAVEI=9
         Return
         
    Case Retval="PGUP" Or RetVal="ESC":
         If IsAssigned(ATUALIZA_LANCTO)
            Then If DynArraySize(ATUALIZA_LANCTO)>0 And Not GEROU_ROTINA 
                    Then ConfGeral("Deseja sair desta rotina sem atualizar os pre‡os que foram alterados ?")
                         If Ok<>"S"
                            Then Loop
                         EndIf   
                 EndIf
         EndIf
         GEROU_ROTINA = False
         Del
         CHAVEI=9
         FACA_CHAVEI =False
         FACA_DIGITAF=False
         Return
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           PAGINA("NotaEI","MR")
           SEQIT=[Sequencia do Lancamento]
           If EDITAR="S"
              Then If [Tipo do Item]<>"T"
                      Then FastMsg("Inclus„o de registro n„o permitida !") 
                           Loop
                   EndIf     
                   CHAVEI=0
                   Controla_EdicaoI()
              Else QuitLoop
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
         
    Case Retval="ENTER":
         If Not Seta_Sequencia(NITEM,True)
            Then Del
                 QuitLoop
         EndIf
         Del
         FastMsg("Inclus„o de registro n„o permitida !")
         QuitLoop

    EndSwitch
  EndWhile
EndWhile

EndProc   ; (ChaveI)

;*******************************************************************************
;* Rotina para Digitacao da Cabeca                                             *
;*******************************************************************************
Proc DIGITAC()
                      
If Not Carrega_Parametros()
   Then CHAVEC=9
        Return
EndIf

Moveto Tabela
Moveto Tabela SetaCorRegistro("Padrao")
Moveto Tabela
DATAENT_ANT=[Data de Entrada]

Moveto [Flag]

FACA_CHAVEI   = True
INICIO_PAGINA = False

CODREP=[Codigo do Representante]
V_FORN=[Codigo]
V_CGC =[CGC   ]
V_NOC =[Numero da OC]

While True

      Prompt TECLA

      FORMMSGCAMPO=""
      MSGCAMPO=Field()
      Switch
        Case Field()="Flag" : MSGCAMPO="Enter para prosseguir !"
      
      EndSwitch

      Wait Field
        Message MSGCAMPO
         Until "ESC","ENTER","PGDN"
 
      Switch
        Case RetVal="PGDN"       : QuitLoop
        Case Retval="ESC"        : If Field()="Flag" 
                                      Then CHAVEC=9
                                           QuitLoop
                                   EndIf        
        Case Retval="ENTER"      : If Field()="Flag"  
                                      Then QuitLoop
                                   EndIf   
      EndSwitch     
EndWhile

EndProc  ;DigitaC()

;*******************************************************************************
;* Rotina para Confirmacao de Valores                                          *
;*******************************************************************************
Proc DIGITAF()
CHAVEF=0

Moveto Tabela

Moveto [Lookup_OCV]

While True
      TECLA=" Esc=Retornar    PgUp  PgDn=Finalizar  "
      MSGCAMPO=""

      Prompt TECLA

      Wait Field
           Message MSGCAMPO
           Until "ESC","ENTER","PGDN","PGUP","F1","F5","F6",-59 
    
    Switch
      Case RetVal="F1" Or RetVal=-59 :
           If Field()="Lookup_OCV"
              Then 
           EndIf   
      Case RetVal="PGUP":
           CHAVEF=9
           QuitLoop
      Case RetVal="PGDN":
           QuitLoop
      Case RetVal="ESC":
        Switch
           Case Field()="Lookup_OCV" : CHAVEF=9
                                       QuitLoop
        EndSwitch        
      Case RetVal="ENTER": 
        Switch
           Case Field()="Lookup_OCV" :  QuitLoop
        EndSwitch
    EndSwitch
EndWhile

EndProc   ;DigitaF()

;*******************************************************************************
;* Somatoria de valores dos itens para variaveis do FORM Fatura                *
;*******************************************************************************
Proc SomatoriaDosItens()

VSVRMERC = 0
VSQTDE   = 0
VCITENS  = 0

scan
  VSVRMERC = VSVRMERC + [Preco Total   ]
  VSQTDE   = VSQTDE   + [Quantidade    ]
  VCITENS  = VCITENS  + 1
endscan

endproc  

;*******************************************************************************
;* Rotina para Digitacao Item                                                  *
;*******************************************************************************
Proc DigitaI()
Private TIT_COFINS1, TIT_CONFIS2

ANT_I_Indice_PrVenda = VSD_I_Indice_PrVenda 
ANT_I_Preco_VendaOk  = VSD_I_Preco_VendaOk
ANT_I_Preco_Tabela   = VSD_I_Preco_Tabela 
       
Sw_Dialog="Item"
Echo Normal
Echo Off
Showdialog "Dados do Item [     ]" Proc "Item_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","HOME","END","PGDN","PGUP",-33,"F6","F7","F8",-67,"F9"
    @ 03,0 height 20 width 80

   Accept @ -01,43 Width 5 "A2" Tag "I_Seq" To VSD_I_SEQ

   Label  @ 00,08 "Compra" For "I_OC"
   Accept @ 01,08 Width 09 "A06" picture "#*#" Tag "I_OC" to VSD_I_OC
   Label  @ 00,16 "/Item" For "I_OC_Item"
   Accept @ 01,18 Width 05 "N" picture "!*!" Tag "I_OC_Item" to VSD_I_OC_Item
   Label  @ 00,32 "Codigo Item/Fornecedor" For "I_Codigo_Fornecedor"
   Accept @ 01,33 Width 23 "A20" picture "!*!" Tag "I_Codigo_Fornecedor" to VSD_I_Codigo_Fornecedor
   Label  @ 00,56 "Referˆncia" For "I_Referencia"
   Accept @ 01,57 Width 14 "A12" picture "!*!" Tag "I_Referencia" to VSD_I_Referencia

   Label  @ 02,01 "Codigo Item" For "I_Codigo_Item"
   Accept @ 03,01 Width 16 "A25" picture "!*!" Tag "I_Codigo_Item" to VSD_I_Codigo_Item
   Label  @ 02,18 "Descricao Item" For "I_Descricao_Item"
   Accept @ 03,18 Width 33 "A30" picture "!*!" Tag "I_Descricao_Item" to VSD_I_Descricao_Item         
   Label  @ 02,51 "Tipo" For "I_Tipo_Item"
   Accept @ 03,52 Width 04 "A1" picture "&" Tag "I_Tipo_Item" to VSD_I_Tipo_Item

   Label  @ 04,01 "Quantidade" For "I_Quantidade"
   Accept @ 05,01 Width 13 "N" picture "#*#.[#####]" Tag "I_Quantidade" to VSD_I_Quantidade
   Label  @ 04,15 "UnC" For "I_UN_Item"
   Accept @ 05,15 Width 05 "A2" picture "!*!" Tag "I_UN_Item" to VSD_I_UN_Item
   Label  @ 04,21 "Pr.Unitario" For "I_Preco_Unitario"
   Accept @ 05,21 Width 12 "N" picture "#*#.[#####]" Tag "I_Preco_Unitario" to VSD_I_Preco_Unitario

   Label  @ 04,34 "%/" For "I_Taxa_Desconto_Unitario"
   Accept @ 05,34 Width 11 "N" picture "#*#.[####]" Tag "I_Taxa_Desconto_Unitario" to VSD_I_Taxa_Desconto_Unitario
   Label  @ 04,37 "Vr.Desconto" For "I_Valor_Desconto_Unitario"
   Accept @ 05,46 Width 12 "N" picture "#*#.[#####]" Tag "I_Valor_Desconto_Unitario" to VSD_I_Valor_Desconto_Unitario
   Label  @ 04,59 "Pr.Total" For "I_Preco_Total"
   Accept @ 05,59 Width 12 "$" picture "#*#.[##]" Tag "I_Preco_Total" to VSD_I_Preco_Total
   
   @ 06,00 ?? "Impostos CST  %Red     Aliq.  BC         Valor" 
   Label  @ 07,00 "  ICMS" For "I_CST_Item"
   Accept @ 07,80 Width 03 "A1" picture "!" Tag "I_TICMS" to VSD_I_TICMS ; Ficar invisivel
   Accept @ 07,08 Width 06 "A3" picture "###" Tag "I_CST_Item" to VSD_I_CST_Item
   Accept @ 07,13 Width 10 "N" picture "#*#.[####]" Tag "I_RBC_ICMS" to VSD_I_RBC_ICMS
   Accept @ 07,22 Width 08 "N" picture "#*#.[##]" Tag "I_AICMS" to VSD_I_AICMS
   Accept @ 07,29 Width 12 "$" picture "#*#.[##]" Tag "I_BC_ICMS" to VSD_I_BC_ICMS
   Accept @ 07,40 Width 12 "$" picture "#*#.[##]" Tag "I_Valor_ICMS" to VSD_I_Valor_ICMS

   Label  @ 08,00 " CSOSN" For "I_CSOSN"
   Accept @ 08,08 Width 07 "A4" picture "####" Tag "I_CSOSN" to VSD_I_CSOSN
   PaintCanvas Attribute 112 08, 10, 08, 51

   Label  @ 09,00 "    ST" For "I_BC_ST"
   Accept @ 09,14 Width 09 "N" picture "#*#.[##]" Tag "I_MVA" to VSD_I_MVA
   @ 09,10 ?? "%MVA"
   PaintCanvas Attribute 112 09, 08, 09, 21
   Accept @ 09,22 Width 08 "N" picture "#*#.[##]" Tag "I_AST" to VSD_I_AST
   Accept @ 09,29 Width 12 "$" picture "#*#.[##]" Tag "I_BC_ST" to VSD_I_BC_ST
   Accept @ 09,40 Width 12 "$" picture "#*#.[##]" Tag "I_Valor_ST" to VSD_I_Valor_ST

   Label  @ 10,00 "   IPI" For "I_CST_IPI"
   Accept @ 10,80 Width 03 "A1" picture "!" Tag "I_TIPI" to VSD_I_TIPI ; Ficar invisivel
   Accept @ 10,08 Width 16 "A2" picture "##" Tag "I_CST_IPI" to VSD_I_CST_IPI  
   Accept @ 10,22 Width 08 "N" picture "#*#.[##]" Tag "I_AIPI" to VSD_I_AIPI
   Accept @ 10,29 Width 12 "$" picture "#*#.[##]" Tag "I_BC_IPI" to VSD_I_BC_IPI
   Accept @ 10,40 Width 12 "$" picture "#*#.[##]" Tag "I_Valor_IPI" to VSD_I_Valor_IPI

   Label  @ 11,00 " ISSQN" For "I_TISSQN"
   Accept @ 11,08 Width 21 "A1" picture "D,N,I,S,R" Tag "I_TISSQN" to VSD_I_TISSQN
   Accept @ 11,22 Width 08 "N" picture "#*#.[##]"   Tag "I_AISSQN" to VSD_I_AISSQN
   Accept @ 11,29 Width 12 "$" picture "#*#.[##]"   Tag "I_BC_ISSQN" to VSD_I_BC_ISSQN
   Accept @ 11,40 Width 12 "$" picture "#*#.[##]"   Tag "I_Valor_ISSQN" to VSD_I_Valor_ISSQN

   Label  @ 12,00 "   PIS" For "I_CST_PIS"
   Accept @ 12,08 Width 16 "A2" picture "##" Tag "I_CST_PIS" to VSD_I_CST_PIS  
   Accept @ 12,22 Width 08 "N" picture "#*#.[##]" Tag "I_APIS" to VSD_I_APIS
   Accept @ 12,29 Width 12 "$" picture "#*#.[##]" Tag "I_BC_PIS" to VSD_I_BC_PIS
   Accept @ 12,40 Width 12 "$" picture "#*#.[##]" Tag "I_Valor_PIS" to VSD_I_Valor_PIS

   Label  @ 13,00 "COFINS" For "I_CST_COFINS"
   Accept @ 13,08 Width 16 "A2" picture "##" Tag "I_CST_COFINS" to VSD_I_CST_COFINS
   Accept @ 13,22 Width 08 "N" picture "#*#.[##]" Tag "I_ACOFINS" to VSD_I_ACOFINS
   Accept @ 13,29 Width 12 "$" picture "#*#.[##]" Tag "I_BC_COFINS" to VSD_I_BC_COFINS
   Accept @ 13,40 Width 12 "$" picture "#*#.[##]" Tag "I_Valor_COFINS" to VSD_I_Valor_COFINS

   Label  @ 06,52 "CFOP" For "I_CFOP"
   Accept @ 07,53 Width 10 "A4" picture "####" Tag "I_CFOP" to VSD_I_CFOP
   Label  @ 06,63 "NCM" For "I_NCM"
   Accept @ 07,64 Width 12 "A8" picture "#*#" Tag "I_NCM" to VSD_I_NCM

   Label  @ 10,53 "Servi‡o" For "I_CDSERV"
   Accept @ 11,53 Width 10 "N" picture "#*#" Tag "I_CDSERV" to VSD_I_CDSERV
   Label  @ 10,63 "Munic¡pio" For "I_MUNSERV"
   Accept @ 11,63 Width 10 "N" picture "#*#" Tag "I_MUNSERV" to VSD_I_MUNSERV
   Label  @ 10,73 "UF" For "I_UFSERV"
   Accept @ 11,73 Width 5  "A2" picture "!!" Tag "I_UFSERV" to VSD_I_UFSERV

   Label  @ 14,01 "Ajustes +/-" For "I_Acrescimos_Desctos"
   Accept @ 15,01 Width 13 "N" picture "[-]#*#.[#####]" Tag "I_Acrescimos_Desctos" to VSD_I_Acrescimos_Desctos
   @ 14,14 ?? "/"
   Accept @ 15,15 Width 05 "A2" picture "!*!" to VSD_I_UN_Item

   Label  @ 14,21 "Ft.Conversao=>" For "I_Fator_Conversao"
   Accept @ 15,22 Width 13 "N" picture "#*#.[#####]" Tag "I_Fator_Conversao" to VSD_I_Fator_Conversao
   Label  @ 14,36 "Quantidade" For "I_Quantidade_Convertida"
   Accept @ 15,36 Width 13 "N" picture "#*#.[###]" Tag "I_Quantidade_Convertida" to VSD_I_Quantidade_Convertida
   Label  @ 14,49 "UnI" For "I_Unidade_Interna"
   Accept @ 15,49 Width 05 "A2" picture "!!" Tag "I_Unidade_Interna" to VSD_I_Unidade_Interna
   Label  @ 14,55 "Custo" For "I_Ct_Unitario"
   Accept @ 15,55 Width 12 "N" picture "#*#.[#####]" Tag "I_Ct_Unitario" to VSD_I_Ct_Unitario
   @ 15,35 ?? "="
   @ 15,54 ?? "/"

   Label  @ 16,01 "Centro Custo" For "I_CCusto"
   Accept @ 17,01 Width 10 "A7" picture "###.###" Tag "I_CCusto" to VSD_I_CCusto
   Accept @ 17,10 Width 25 "A25" picture "!*!" Tag "I_Descricao_CCusto" to VSD_I_Descricao_CCusto

   Label  @ 16,35 "Tabela=" For "I_Tabela_Preco"
   Accept @ 17,36 Width 08 "A5" picture "!*!" Tag "I_Tabela_Preco" to VSD_I_Tabela_Preco
   Label  @ 16,42 "Pre‡o/" For "I_Preco_Tabela"
   Accept @ 17,44 Width 12 "N" picture "#*#.[#####]" Tag "I_Preco_Tabela" to VSD_I_Preco_Tabela
   @ 16,49 ?? VSD_I_Unidade_Interna
   Label  @ 16,54 "%Venda" For "I_Indice_PrVenda"
   Accept @ 17,54 Width 09 "$" picture "#*#.[##]" Tag "I_Indice_PrVenda" to VSD_I_Indice_PrVenda
   Label  @ 16,63 "PrVenda/" For "I_Preco_VendaOk"
   Accept @ 17,63 Width 12 "N" picture "#*#.[#####]" Tag "I_Preco_VendaOk" to VSD_I_Preco_VendaOk
   @ 16,72 ?? VSD_I_Unidade_Interna

   Accept @ 17,75 Width 1 "A1" picture "!" Tag "I_Flag" to VSD_I_Flag

EndDialog
Mouse Show

If Not RetVal
   Then VSD_I_Indice_PrVenda = ANT_I_Indice_PrVenda
        VSD_I_Preco_VendaOk  = ANT_I_Preco_VendaOk

        Registro_Item("Gravar")
EndIf   

EndProc  ;  DigitaI()

;*******************************************************************************
;* Rotina para Ver Calculo do Custo                                            *
;*******************************************************************************
Proc Ver_CalcCusto()
Private Tit

Sw_Dialog="Custo"
Tit=" C lculo custo unit rio por ["+VSD_I_UN_Item+"] "
INICIO_DIALOG=True
Showdialog Tit Proc "Item_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "ESC"
     @ 15,0 height 08 width 80

   @ 00,00 ?? "(=)Pre‡o.."+Format("W11.2,EIC",VCU_Preco_Unitario)+Spaces(3)
   @ 01,00 ?? "(-)Descto."+Format("W14.5,EIC",VCU_Desconto)
   @ 02,00 ?? "(=)Liquido"+Format("W14.5,EIC",VCU_Preco_Unitario-VCU_Desconto)
   @ 03,00 ?? "(+)Outros."+Format("W14.5,EIC",VCU_Acrescimos)
   @ 04,00 ?? "("+VCU_SINAL_IPI+     ")IPI...."+Format("W14.5,EIC",VCU_IPI)
   @ 05,00 ?? "(+)ST....."+Format("W14.5,EIC",VCU_VR_Subst)

   @ 00,25 ?? "("+VCU_SINAL_COFINSCR+")"+TIT_COFINSCR+Format("W14.5,EIC",VCU_COFINSCR)
   @ 01,25 ?? "("+VCU_SINAL_COFINSDB+")"+TIT_COFINSDB+Format("W14.5,EIC",VCU_COFINSDB)
   @ 02,25 ?? "("+VCU_SINAL_ICMSCR  +")"+TIT_ICMSCR  +Format("W14.5,EIC",VCU_ICMSCR)
   @ 03,25 ?? "("+VCU_SINAL_ICMSDB  +")"+TIT_ICMSDB  +Format("W14.5,EIC",VCU_ICMSDB)
   @ 04,25 ?? "("+VCU_SINAL_PIS     +")"+TIT_PIS     +Format("W14.5,EIC",VCU_PIS)
   @ 05,25 ?? "("+VCU_SINAL_AJUSTES +")Ajustes.."    +Format("W14.5,EIC",VCU_AJUSTES)           
   
   @ 00,52 ?? "(=)Custo."+Format("W14.5,EIC",VSD_I_Custo_Unitario)
   @ 01,52 ?? "(*)BC.PV."+Format("W14.5,EIC",VCU_BC_PrVenda)
   @ 02,52 ?? "(+)IC.PV."+Format("W14.5,EIC",VCU_VrIndice_PrVenda)
   @ 03,52 ?? "(=)Venda."+Format("W11.2,EIC",VSD_I_Preco_Venda)+"/"+VSD_I_UN_Item
   @ 04,52 ?? "         "+Format("W11.2,EIC",VSD_I_Preco_VendaI)+"/"+VSD_I_Unidade_Interna

   Accept @ 05,75 Width 1 "A1" picture "!" Tag "I_Flag2" to VSD_I_Flag2

   PaintCanvas Attribute 32  00, 00, 05, 77

   PaintCanvas Attribute 47  00, 11, 05, 23
   PaintCanvas Attribute 47  00, 37, 05, 50
   PaintCanvas Attribute 47  00, 61, 00, 77
   PaintCanvas Attribute 47  03, 61, 03, 77

EndDialog
Sw_Dialog="Item"
EndProc  ;  (Ver_CalcCusto)

;*******************************************************************************
;* Rotina de Digitacao Dados do Item                                           *
;*******************************************************************************
Proc Item_Dialog(Disparo,Campo,Evento,Elemento)
Private JANELA, WinArray5

TECLA=" Esc=Retornar  "
MSG_CAMPO=""
Temp=True

If CHAVEI=0
   Then Moveto [Codigo do Item]
        Ativa_Lookup()
        Locate [Notaei->Codigo do Item]
        VSD_I_Referencia=[Referencia]
        KeyPress "ESC"
EndIf

If INICIO_DIALOG
   Then If Sw_Dialog="Custo"
           Then Campo="I_Flag2"
           Else Campo="I_Indice_PrVenda"
                INICIO_DIALOG = False
        EndIf        
EndIf    

If Opcao_Ver=True Then Campo="I_Seq" EndIf

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   
   If Evento["KeyCode"] = -33
      Then Echo Normal
           Echo Off
           ShowPopup " Fun‡”es " CENTERED
           "[F6] ~V~er Custo             ": " Visualiza o custo do item          " : "F6", 
           "[F9] ~C~arregar Imagem     "  : " Carregar a Imagem do Produto"        : "F9",
           "~S~air                      " : " Ignorar op‡äes                    "  : "CANCELAR"
          EndMenu
          To MenuVar
          Echo Off  
          If MenuVar="CANCELAR" or MenuVar="Esc"
             Then Return
          EndIf                                         
          Evento["KeyCode"]=MenuVar
   EndIf 
   
   Switch
      Case Evento["KeyCode"] = -64 Or Evento["KeyCode"] = "F6" :
            Temp=False
            Ver_CalcCusto()

     Case Evento["KeyCode"] =  -67 Or Evento["KeyCode"] = "F9" :
          Temp=False
          If PARAM_IMAGEM
            Then 
                 GetRecord "\\Sistemas\\Estoque\\Iten_eco" VSD_I_Codigo_Item To REG_ITENECO
                 If RetVal
                    Then If REG_ITENECO["Link_Imagem"] = ""
                            Then Mensagem("Caminho da imagem ‚ inv lido!")
                            Else IMAGEPATH = REG_ITENECO["Link_Imagem"] 
                                 ExecVise("EXE c:\\vise\\ImageGlass\\ImageGlass.exe "+IMAGEPATH) 
                         EndIf   
                    Else Mensagem("N„o foi localizado cadastro de e-commerce para o item "+REG_ITEM["Codigo do Item"]+"!")
                 EndIf 
            Else Mensagem("Op‡„o n„o liberada !//Verificar com o Suporte Vise !")     
          EndIf    
      
      Case Evento["KeyCode"] = 27:  
           Switch
             Case Campo="I_Indice_PrVenda"  : If QuerDesfazer("")
                                                 Then CHAVEI=9
                                                      CancelDialog
                                              Endif
             Case Campo="I_Preco_VendaOk"   : Campo="I_Indice_PrVenda"
             Case Campo="I_Flag"            : Campo="I_Indice_PrVenda"
             Case Campo="I_Flag2"           : AcceptDialog
           EndSwitch
           Temp=False
      Case Evento["KeyCode"] = 13:
           Switch          
             Case Campo="I_Indice_PrVenda"  : 
                  VSD_I_Indice_PrVenda = ControlValue("I_Indice_PrVenda")
                  VSD_I_Preco_VendaOk  = VSD_I_Preco_VendaI
                  
                  ;**** Conforme esta no NOTAEC quando o Campo ‚ "I_Tabela_Preco" ****
                  If Not IsBlank(VSD_I_Tabela_Preco)
                     Then Moveto [Lookup_Tabela_Preco]
                          Ativa_Lookup()
                          Moveto [Codigo da Tabela]
                          Locate VSD_I_Tabela_Preco
                          If RetVal
                             Then VSD_I_Tabela_Preco=[Codigo da Tabela]
                                  KeyPress "ESC"
                                  Moveto "NotaeI"
                                  Campo="I_Preco_VendaOk"
                                  ;Tabela_Preco("Procura")
                             Else KeyPress "ESC"
                          EndIf   
                  EndIf                  

                  If IsBlank(VSD_I_Tabela_Preco) And VSD_I_Indice_PrVenda>0
                     Then Mensagem("N„o ‚ poss¡vel realizar altera‡„o neste item !")
                          VSD_I_Indice_PrVenda = BlankNum()
                          VSD_I_Preco_VendaOk  = BlankNum()
                          Campo="I_Flag"
                  EndIf                                   
             Case Campo="I_Preco_VendaOk":
                  VSD_I_Preco_VendaOk=ControlValue("I_Preco_VendaOk")
                  If IsBlank(VSD_I_Tabela_Preco) And Not IsBlank(VSD_I_Preco_VendaOk)
                     Then Mensagem("N„o ‚ poss¡vel realizar altera‡„o neste item !")
                          VSD_I_Indice_PrVenda = BlankNum()
                          VSD_I_Preco_VendaOk  = BlankNum()
                  EndIf
                  Campo="I_Flag"

             Case Campo="I_Flag" : 
                  If ANT_I_Preco_VendaOk <> VSD_I_Preco_VendaOk
                     Then ATUALIZA = ATUALIZA + 1
                  EndIf
                  Tabela_Preco("IncAlt")
                  
                  ;**** Cancelado em 06.03.2014 - Imprimir rela‡Æo no ato da mudan‡a *****
                  ;If ANT_I_Preco_Tabela <> VSD_I_Preco_VendaOk
                  ;   Then If GEROU_ROTINA
                  ;           Then ATUALIZA       = 0
                  ;                GEROU_ROTINA   = False
                  ;                GEROU_PROCESSO = 1
                  ;                DynArray ATUALIZA_LANCTO[]
                  ;        EndIf
                  ;        If Not GEROU_ROTINA
                  ;           Then If ANT_I_Preco_Tabela="" Or ANT_I_Preco_Tabela=BlankNum() 
                  ;                   Then ANT_I_Preco_Tabela = 0
                  ;                EndIf
                  ;                                
                  ;                If ANT_I_Preco_VendaOk <> VSD_I_Preco_VendaOk Or VSD_I_Indice_PrVenda <> VSD_I_Indice_PrVenda            
                  ;                   Then GetRecord "\\Sistemas\\Estoque\\Itens" VSD_I_Codigo_Item To ITEM 
                  ;                        If RetVal
                  ;                             Then COD_BARRA = ITEM["Codigo de Barras"]
                  ;                             Else COD_BARRA = "" 
                  ;                        EndIf                                          
                  ;                                                           
                  ;                        ATUALIZA = ATUALIZA + 1
                  ;                        ATUALIZA_LANCTO[ATUALIZA] = AlinhM(StrVal(ATUALIZA),6)+AlinhM(StrVal(LANCTO),6)+
                  ;                                                   Completa(VSD_I_Codigo_Item,10," ")+Format("W12.2",ANT_I_Preco_Tabela)+
                  ;                                                   Format("W12.2",VSD_I_Preco_VendaOk)+Completa(VSD_I_Descricao_Item,30," ")+
                  ;                                                   Completa(VSD_I_Tabela_Preco,6," ")+Completa(VSD_I_Tipo_Item,1," ")+
                  ;                                                   Format("W12.5",VSD_I_Ct_Unitario)+Completa(COD_BARRA,25," ")
                  ;                EndIf                                   
                  ;        EndIf                                                                                        
                  ;EndIf
                  AcceptDialog
             Case Campo="I_Flag2": CancelDialog     
           EndSwitch
           Temp=False
   EndSwitch
EndIf
                                                             
If CHAVEI<>9 And CHAVEI<>6 Then Registro_Item("Gravar") EndIf

If Campo="I_Preco_VendaOk"
   Then VSD_I_Preco_VendaOk=VSD_I_Preco_VendaI
EndIf

SelectControl Campo
Switch
  Case Campo="I_Indice_PrVenda"          : MSGCAMPO="Indice p/ c lculo do pre‡o de venda"
  Case Campo="I_Preco_VendaOk"           : MSGCAMPO="Pre‡o de venda a praticar"
  OtherWise                              : MSGCAMPO=""
EndSwitch

TECLA=" Esc=Retornar  "

@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))
PaintCanvas Attribute 31 24,0,24,79
Message(MSGCAMPO)
Mouse Hide
RefreshDialog
Return TEMP 

EndProc  ; Item_Dialog()

;*******************************************************************************
;* Rotina para Iniciar Registro                                                *
;*******************************************************************************
Proc Inicia_Registro()

INICIO_DIALOG=True
Moveto [Sequencia do Lancamento]
Locate LANCTO,SEQIT
CopyToArray RegItem

QTDCONV =[Quantidade Convertida]
QUANT   =[Quantidade           ]
CTTOTAL =NDecimal(([Quantidade ]*[Custo Medio Unitario]),2)
VSD_I_Flag=""

VSD_I_TX_ICMS_SAIDA=0
VSD_I_RD_ICMS_SAIDA=0
If Not IsBlank([Codigo do Item])
   Then VSD_I_Codigo_Item=[Codigo do Item]
        Moveto [Codigo do Item]
        Ativa_Lookup()
        Moveto [Codigo do Item]
        Locate VSD_I_Codigo_Item
        If RetVal
           Then VSD_I_TX_ICMS_SAIDA  =[Aliquota de ICMS     ]
                VSD_I_RD_ICMS_SAIDA  =[Aliquota Reduzida BCICMS  ]
        EndIf
        KeyPress "ESC"
EndIf

Registro_Item("Ler")

EndProc ; Inicia_Registro()

;*******************************************************************************
;* Atualiza Tabela Preco                                                       *
;*******************************************************************************
Proc Tabela_Preco(Acao)
Private Acao,Reajusta                      

If (IsBlank(VSD_I_Tabela_Preco) Or [NotaEI->Tipo do Item]<>"T") Or (NOTAEC["Tipo de Operacao"]<>"C" And NOTAEC["Tipo de Operacao"]<>"O")
   Then Return
EndIf

Reajusta=True
Moveto "\\Sistemas\\Vendas\\TbprIte"
Switch
  Case Acao="Procura":
       Moveto [Codigo da Tabela]
       Locate VSD_I_Tabela_Preco,VSD_I_Codigo_Item
       If Not RetVal
          Then VSD_I_Preco_Tabela=BlankNum()
          Else VSD_I_Preco_Tabela=[Preco Unitario]
       EndIf
  Case Acao="IncAlt":
       Moveto [Codigo da Tabela]
       Locate VSD_I_Tabela_Preco,VSD_I_Codigo_Item
       If Not RetVal
          Then End
               Down
               [Codigo da Tabela ] = VSD_I_Tabela_Preco
               [Codigo do Item   ] = VSD_I_Codigo_Item
               [Lookup_Item      ] = VSD_I_Codigo_Item
               [Lookup_Item      ] = ""
       EndIf
       If VSD_I_Preco_VendaOk>0
          Then ;MSG=    Completa("Valor da Tabela: "+Format("W10.2,EIC",[Preco Unitario     ]),30," ")+"//"
               ;MSG=MSG+Completa("Data Referente.: "+Format("D13",[Data Ultimo Reajuste     ]),30," ")+"// //"
               ;MSG=MSG+Completa("Valor Calculado: "+Format("W10.2,EIC",VSD_I_Preco_VendaOk  ),30," ")
               ;MSG=MSG+"// //Atualiza Tabela de Pre‡o ?"
               ;ConfGeral(MSG)
               ;If OK="N" Then Reajusta=False EndIf
               Reajusta=True
          Else Reajusta=False
       EndIf
       If Reajusta
          Then [Preco Unitario      ] = VSD_I_Preco_VendaOk
               [Data Ultimo Reajuste] = Today()
               [Taxa Ultimo Reajuste] = Round(((VSD_I_Preco_VendaOk*100)/VSD_I_Preco_Tabela)-100,2)
               UnLockRecord                                                                                 
       EndIf
               
       ;Adicionado em 16/12 pos ATUALIZA esta recebendo 0 e array dynamico ficando com valor [0]        
       If ATUALIZA = 0 And DynArraySize(ATUALIZA_LANCTO)>0 And IsAssigned(ATUALIZA_LANCTO[0])
          Then ATUALIZA = 1
               DynArray AUX_ATUALIZA_LANCTO[]
               For i From 1 To DynArraySize(ATUALIZA_LANCTO)
                 AUX_ATUALIZA_LANCTO[i] = ATUALIZA_LANCTO[i-1]
               EndFor
               
               Release Vars ATUALIZA_LANCTO
               
               DynArray ATUALIZA_LANCTO[]
               For i From 1 To DynArraySize(AUX_ATUALIZA_LANCTO) 
                 ATUALIZA_LANCTO[i] = AUX_ATUALIZA_LANCTO[i]
               EndFor  
       EndIf    
                                  
       CODITEM = "1"
       For i From 1 To DynArraySize(ATUALIZA_LANCTO)
        CODITEM =  Completa(SubStr(ATUALIZA_LANCTO[i],01,10),10," ") 

        If CODITEM=VSD_I_Codigo_Item
           Then GEROU_ROTINA = False
                ATUALIZA = ATUALIZA - 1
                ATUALIZA_LANCTO[i] = Completa(VSD_I_Codigo_Item,10," ")+Format("W12.2",ANT_I_Preco_VendaOk)+
                                            Format("W12.2",VSD_I_Preco_VendaOk)+Format("W12.2",VSD_I_Ct_Unitario)
                CODITEM = "2"
                QuitLoop     
        EndIf
      EndFor   
            
      If CODITEM<>"2"               
         Then GEROU_ROTINA = False
              ATUALIZA_LANCTO[ATUALIZA] = Completa(VSD_I_Codigo_Item,10," ")+Format("W12.2",ANT_I_Preco_VendaOk)+
                                          Format("W12.2",VSD_I_Preco_VendaOk)+Format("W12.2",VSD_I_Ct_Unitario)
      EndIf                               
EndSwitch
Moveto "NotaeI"

EndProc ; Tabela_Preco()

;*******************************************************************************
;* Imprime Cabecalho                                                           *
;*******************************************************************************
Proc Cabecalho()

CONTADOR  = 13                                          
                                                       
Print File ARQIMP "                                                                                                                                        "+"\n"
Print File ARQIMP "                                                                                                                                        "+"\n"
Print File ARQIMP "     -----------------------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP "     "+Completa(VSDGNOMEMP,50," ")+Spaces(52)+"Impressao: "+Format("D10",Today())+"-"+Time()+"\n" 
Print File ARQIMP "     -----------------------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP "                                                                                                                                        "+"\n" 
Print File ARQIMP "                                                Ajustes realizados em "+StrVal(Today())+" …s "+StrVal(Time())+"\n"
Print File ARQIMP "                                                                                                                                        "+"\n"
Print File ARQIMP "                                                                                                                                        "+"\n"
Print File ARQIMP "     Lancamento: "+NOTAEC["Numero do Lancamento"]+" - "+Completa(NOTAEC["Razao Social"],30," ")+" EMISSAO: "+StrVal(NOTAEC["Data de Emissao"])+
                                                                                                                   " ENTRADA: "+StrVal(NOTAEC["Data de ENTRADA"])+"\n"
Print File ARQIMP "                                                                                                                                        "+"\n"
Print File ARQIMP "     Item                                      Codigo de Barra      VrCusto %Vend Tabela   VrAnterior VrAtualizado   %                  "+"\n"
Print File ARQIMP "     ----------------------------------------- --------------- ------------ ----- ------ ------------ ------------ -----                "+"\n"

EndProc ;Cabecalho()

;*******************************************************************************
;* Imprime Rela‡Æo                                                             *
;*******************************************************************************
Proc Imprimir()
Private TabAnt, Reajusta, MSG

Registro_Item("Ler")

TabAnt         = Table()
MSG            = ""

ARQIMP=PrivDir()+"TABPR.TXT"
If IsFile(ARQIMP)
   Then Deleta_Arquivo(ARQIMP)
EndIf
Print File ARQIMP Chr(27)+Chr(120)+Chr(48)+Chr(15)

Cabecalho()

Moveto "NotaEi"
Scan
  CONTADOR = CONTADOR + 1
  
  PR_ALTERADO = False
  For i From 1 To DynArraySize(ATUALIZA_LANCTO)
    CODITEM =  Completa(SubStr(ATUALIZA_LANCTO[i],01,10),10," ") 
    ;VR_ANTER = SubStr(ATUALIZA_LANCTO[i],11,12)
    VR_ATUAL = SubStr(ATUALIZA_LANCTO[i],23,12)
     
    If Not IsAssgined(VR_ANTER) Or VR_ANTER="" Then VR_ANTER = 0 EndIf
        
    If CODITEM=[Codigo do Item]
       Then PR_ALTERADO = True            
            QuitLoop
    EndIf      
  Endfor
  
  Registro_Item("Ler")
  Play "FT_CUSTO"
  VR_CUST = StrVal(Format("W12.3",VSD_I_Ct_Unitario))
  
  GetRecord "\\Sistemas\\Estoque\\Itens" [Codigo do Item] To ITEM 
  If RetVal
     Then COD_BARRA = ITEM["Codigo de Barras"]
     Else COD_BARRA = "" 
  EndIf 

  If Not PR_ALTERADO
     Then VR_ATUAL = [Preco_Venda]
  EndIf
     
  If NumVal(VR_ATUAL)>0
     Then VR_ATUAL = Format("W12.2",VR_ATUAL)
     Else VR_ATUAL = 0 
  EndIf
  
  VR_ANTER = [Preco Unitario Tabela]
  If NumVal(VR_ANTER)>0
      Then VR_ANTER=Format("W12.2",VR_ANTER)
      Else VR_ANTER=0
  EndIf
                                                
  ;If Not PR_ALTERADO Or NumVal(VR_ANTER)<=0 
  ;   Then VR_ANTER = Spaces(12)
  ;        PORC_ITE = Spaces(5)  
  ;   Else 
          PORC_ITE = Round((NumVal(VR_ATUAL) * 100 / NumVal(VR_ANTER)) - 100,2)  
          If PORC_ITE<0
             Then PORC_ITE = PORC_ITE*(-1)
                  PORC_ITE = "-"+Format("W3",PORC_ITE)+"%"
             Else PORC_ITE = Format("W4",PORC_ITE)+"%"      
          EndIf  
  ;EndIf

  If VR_ATUAL=0 Then VR_ATUAL=Spaces(12) EndIf  
  If VR_ANTER=0 Then VR_ANTER=Spaces(12) EndIf
  
  GetRecord "\\Sistemas\\Estoque\\Iten_Com" [Codigo do Item] To ITEN_COM 
  If RetVal
     Then IND_PRVENDA = ITEN_COM["Indice Preco de Venda"]
     Else IND_PRVENDA = "" 
  EndIf
  If IND_PRVENDA<>"" And IND_PRVENDA<>0
     Then If IND_PRVENDA>0
             Then IND_PRVENDA = Format("W4",IND_PRVENDA)+"%"
             Else IND_PRVENDA="     "       
          EndIf  
     Else IND_PRVENDA="     " 
  EndIf

  Print File ARQIMP Spaces(5)+Completa([Codigo do Item],10," ")
  Print File ARQIMP Spaces(1)+Completa([Descricao do Item],30," ")
  Print File ARQIMP Spaces(1)+Completa(COD_BARRA,15," ")
  Print File ARQIMP Spaces(1)+Completa(VR_CUST,12," ")
  Print File ARQIMP Spaces(1)+Completa(IND_PRVENDA,5," ")
  Print File ARQIMP Spaces(1)+Completa([Lookup_Tabela_Preco],6," ")
  Print File ARQIMP Spaces(1)+Completa(VR_ANTER,12," ")
  Print File ARQIMP Spaces(1)+Completa(VR_ATUAL,12," ")
  Print File ARQIMP Spaces(1)+Completa(PORC_ITE,5," ")+"\n" 
  
  If CONTADOR = 60
     Then Print File ARQIMP "\f"
          CONTADOR  = 0
          Cabecalho()
  EndIf
EndScan

AGUARDE("Imprimindo Rela‡„o !")
ImpriArq(ARQIMP)

Return True

EndProc ;Imprimir()
                                   
;*******************************************************************************
;* Atualiza Tabela Preco                                                       *
;*******************************************************************************
Proc Atualiza_TabPreco(PARAM)
Private PARAM, TabAnt, Reajusta, MSG 
Release Vars Reajusta
    
TabAnt         = Table()
MSG            = ""

If Not GEROU_ROTINA
   Then IMPRESSAO=True
        If DynArraySize(ATUALIZA_LANCTO)=0 
           Then Mensagem("N„o houve altera‡„o para realizar esta opera‡„o !")
                Return                
        EndIf
        
        ARQIMP=PrivDir()+"TABPR.TXT"
        If IsFile(ARQIMP)
           Then Deleta_Arquivo(ARQIMP)
        EndIf
        Print File ARQIMP Chr(27)+Chr(120)+Chr(48)+Chr(15)

        CABECALHO    = 0                            
        CONTADOR     = 0

        For i From 1 To DynArraySize(ATUALIZA_LANCTO)
          NUM_LCTO = Completa(SubStr(ATUALIZA_LANCTO[i],07,06),06," ")
          COD_ITEM = Completa(SubStr(ATUALIZA_LANCTO[i],13,10),10," ") 
          VR_ANTER = Completa(SubStr(ATUALIZA_LANCTO[i],23,12),12," ") 
          VR_ATUAL = Completa(SubStr(ATUALIZA_LANCTO[i],35,12),12," ")  
          DES_ITEM = Completa(SubStr(ATUALIZA_LANCTO[i],47,30),30," ")
          TAB_PREC = Completa(SubStr(ATUALIZA_LANCTO[i],77,06),06," ") 
          TIP_ITEM = Completa(SubStr(ATUALIZA_LANCTO[i],83,01),01," ") 
          PRE_CUST = Completa(SubStr(ATUALIZA_LANCTO[i],84,12),12," ")
          COD_BARR = Completa(SubStr(ATUALIZA_LANCTO[i],96,15),15," ")

          If VR_ATUAL="" Or VR_ATUAL=BlankNum()
             Then VR_ATUAL = 0
          EndIf  
          If VR_ANTER="" Or VR_ANTER=BlankNum()
             Then VR_ANTER = 0
          EndIf
          
          PORC_ITE = Round((NumVal(VR_ATUAL) * 100 / NumVal(VR_ANTER)) - 100,2) 
          If PORC_ITE<0
             Then PORC_ITE = PORC_ITE*(-1)
                  PORC_ITE = "-"+Format("W3",PORC_ITE)+"%"
             Else PORC_ITE = Format("W4",PORC_ITE)+"%"      
          EndIf   
                    
          If IsBlank(TAB_PREC) Or TIP_ITEM<>"T" 
             Then Loop
          EndIf
        
          If GEROU_PROCESSO = 1 
             Then GEROU_PROCESSO = 2
          EndIf   
        
          If CABECALHO=0
             Then CABECALHO = 1
                  CONTADOR  = CONTADOR + 11
                  Print File ARQIMP "                                                                                                                     "+"\n"
                  Print File ARQIMP "                                                                                                                     "+"\n"
                  Print File ARQIMP " ===================================================================================================================="+"\n"
                  Print File ARQIMP "                                         AJUSTES REALIZADOS - TABELA DE PRECO                                        "+"\n" 
                  Print File ARQIMP " ===================================================================================================================="+"\n"
                  Print File ARQIMP "                                                                                                                     "+"\n"                         
                  Print File ARQIMP Spaces(37)+"Ajustes realizados em "+StrVal(Today())+" …s "+StrVal(Time())+Spaces(36)+"\n"
                  Print File ARQIMP "                                                                                                                     "+"\n"
                  Print File ARQIMP "                                                                                                                     "+"\n"
                  Print File ARQIMP " Lanto  Item                                      Codigo de Barra Tabela      VrCusto   VrAnterior VrAtualizado   %  "+"\n"
                  Print File ARQIMP " ------ ----------------------------------------- --------------- ------ ------------ ------------ ------------ -----"+"\n"
          EndIf
          CONTADOR  = CONTADOR + 1
          Print File ARQIMP " "+NUM_LCTO+" "+COD_ITEM+" "+DES_ITEM+" "+COD_BARR+" "+TAB_PREC+" "+PRE_CUST+" "+VR_ANTER+" "+VR_ATUAL+" "+PORC_ITE+"\n"
        
          If CONTADOR = 60
             Then Print File ARQIMP "\f"
                  CABECALHO = 0
                  CONTADOR  = 0
          EndIf
          
          If PARAM="Inclui/Ajusta"
             Then If Not GEROU_ROTINA Then GEROU_ROTINA = True EndIf     
                  Reajusta = True
                  Moveto "\\Sistemas\\Vendas\\TbprIte"
                  Moveto [Codigo da Tabela]
                  Locate TAB_PREC, COD_ITEM
                  If Not RetVal
                     Then Reajusta = False
                          End Down
                          [Codigo da Tabela ] = TAB_PREC
                          [Codigo do Item   ] = COD_ITEM
                          [Lookup_Item      ] = COD_ITEM
                          [Lookup_Item      ] = ""
                  EndIf
                  [Preco Unitario      ] = NumVal(VR_ATUAL)
                  [Data Ultimo Reajuste] = Today()
                  If Reajusta
                     Then [Taxa Ultimo Reajuste] = Round(((NumVal(VR_ATUAL)*100)/NumVal(VR_ANTER))-100,2)
                  EndIf
                  UnLockRecord
          EndIf           
        EndFor
        If GEROU_ROTINA 
           Then Copia_Arquivo(ARQIMP+" "+PrivDir()+"TEMP_000.TXT")
        EndIf   
  Else If PARAM<>""
          Then Mensagem("Processo j  foi finalizado !") 
               Moveto TabAnt
               If IsAssigned(Reajusta)
                  Then Formkey
               EndIf             
               Return
       EndIf        
EndIf

If GEROU_PROCESSO = 1 
   Then Mensagem("Verificar Parƒmetros/Tipo do Item !")
        Moveto TabAnt
        If IsAssigned(Reajusta)
           Then Formkey
        EndIf                 
        Return 
EndIf   

If PARAM=""  
   Then ConfGeral(MSG+"Deseja imprimir o relat¢rio das altera‡”es de pre‡o ?")
        If Ok<>"S"
           Then Moveto TabAnt
                If IsAssigned(Reajusta)
                   Then Formkey
                EndIf                 
                Return              
        EndIf                              
        
        If Isfile(PrivDir()+"TEMP_000.TXT") And GEROU_ROTINA
           Then Copia_Arquivo(PrivDir()+"TEMP_000.TXT "+ARQIMP) 
        EndIf
                        
        DISPOSITIVO()
        AGUARDE("Imprimindo Rela‡„o !")                
        
        ImpriArq(ARQIMP)
EndIf

Moveto TabAnt
If IsAssigned(Reajusta)
   Then Formkey
EndIf   

EndProc ;Atualiza_TabPreco()                                   
                                   
;*******************************************************************************
;* Rotina para Gravacao/Leitura do Item                                        *
;*******************************************************************************
Proc Registro_Item(Funcao_Registro)
Private Funcao_Registro
Switch
  Case Funcao_Registro="Gravar":
       [Lookup_Tabela_Preco       ]=VSD_I_Tabela_Preco
       [Indice Preco de Venda     ]=VSD_I_Indice_PrVenda
       [Preco_Venda               ]=VSD_I_Preco_VendaOk
       UnLockRecord
       SaveTables
       Play "FT_CUSTO"
       
  Case Funcao_Registro="Ler":  
       VSD_I_Seq                    =[Sequencia do Lancamento   ]
       VSD_I_OC                     =[Numero da OC              ]
       VSD_I_OC_Item                =[Item da OC                ]
       VSD_I_Tipo_Item              =[Tipo do Item              ]
       VSD_I_Codigo_Item            =[Codigo do Item            ]
       VSD_I_Descricao_Item         =[Descricao do Item         ]
       VSD_I_Tabela_Preco           =[Lookup_Tabela_Preco       ]
       VSD_I_Indice_PrVenda         =[Indice Preco de Venda     ]
       VSD_I_Quantidade             =[Quantidade                ]
       VSD_I_UN_Item                =[Unidade Entrada           ]
       VSD_I_Preco_Unitario         =[Preco Unitario            ]
       VSD_I_Taxa_Desconto_Unitario =[Taxa Desconto Unitario    ]
       VSD_I_Valor_Desconto_Unitario=[Valor Desconto Unitario   ]
       VSD_I_Preco_Total            =Round([Preco Total         ],2)
       VSD_I_Preco_Tabela           =[Preco Unitario Tabela     ]
       VSD_I_Custo_Unitario         =[Custo Medio Unitario      ]

       VSD_I_CST_Item               =[Tipo Tributacao           ]
       VSD_I_TICMS                  =[Tributacao de ICMS        ]
       VSD_I_RBC_ICMS               =[Aliquota Reduzida BCICMS  ]
       VSD_I_BC_ICMS                =[ICMS_BC                   ]
       VSD_I_AICMS                  =[Aliquota de ICMS          ]
       VSD_I_Valor_ICMS             =[Valor do ICMS             ]

       VSD_I_BC_ST                  =[ICMS_ST_BC                ]   
       VSD_I_AST                    =BlankNum()                       
       VSD_I_Valor_ST               =[ICMS_ST_Valor             ]   

       VSD_I_TIPI                   =[Tributacao de IPI         ]
       VSD_I_CST_IPI                =[IPI_CST                   ]  
       VSD_I_BC_IPI                 =[IPI_BC                    ]
       VSD_I_AIPI                   =[Aliquota de IPI           ]
       VSD_I_Valor_IPI              =[Valor do IPI              ]

       VSD_I_TISSQN                 =[Tributacao de ISSQN       ]
       VSD_I_BC_ISSQN               =[ISSQN_BC                  ]
       VSD_I_AISSQN                 =[Aliquota de ISSQN         ]
       VSD_I_Valor_ISSQN            =[Valor do ISSQN            ]
       VSD_I_CDSERV                 =[Codigo_Servico            ]   
       VSD_I_UFSERV                 =[ISSQN_UF                  ]   
       VSD_I_MUNSERV                =[ISSQN_Municipio           ]   

       VSD_I_CST_PIS                =[PIS_CST                   ]
       VSD_I_BC_PIS                 =[PIS_BC                    ]
       VSD_I_APIS                   =[PIS_Aliquota              ]
       VSD_I_Valor_PIS              =[PIS_Valor                 ]

       VSD_I_CST_COFINS             =[COFINS_CST                ]
       VSD_I_BC_COFINS              =[COFINS_BC                 ]
       VSD_I_ACOFINS                =[COFINS_Aliquota           ]
       VSD_I_Valor_COFINS           =[COFINS_Valor              ]

       VSD_I_CCusto                 =[Codigo CCusto             ]
       VSD_I_Descricao_CCusto       =[Descricao CCusto          ]
       VSD_I_Fator_Conversao        =[Fator de Conversao        ]
       VSD_I_Acrescimos_Desctos     =[Valor Acrescimos_Desctos  ]
       VSD_I_Preco_Venda            =[Preco_Venda               ]
       VSD_I_Preco_VendaOk          =[Preco_Venda               ]
       VSD_I_Unidade_Interna        =[Unidade Interna           ]
       VSD_I_Quantidade_Convertida  =[Quantidade Convertida     ]
       VSD_I_Codigo_Fornecedor      =[Codigo_Fornecedor         ]

       VSD_I_Flag                   =""
       VSD_I_Ct_Unitario            =BlankNum()
       VSD_I_Preco_VendaI           =BlankNum()

       VSD_I_NCM                    =[NCM                       ]
       VSD_I_CFOP                   =[CFO                       ]
       VSD_I_MVA                    =[MVA                       ]    
       VSD_I_CSOSN                  =SubStr([Tipo Tributacao],1,1)+[CSOSN]

       GetRecord "P_Entra" VSDGEMPRESA To COD_TAB_PRECO 
       If ReTVal
          Then COD_TAB_PRECO = COD_TAB_PRECO["Tabela_Preco"]
          Else COD_TAB_PRECO = ""
       EndIf   
       
       Switch
         Case VSD_I_Tabela_Preco = "" And NOTAEC["Codigo da Tabela"]<>"" : VSD_I_Tabela_Preco = NOTAEC["Codigo da Tabela"]  
         Case VSD_I_Tabela_Preco = "" And COD_TAB_PRECO<>""              : VSD_I_Tabela_Preco = PARAM_TABELA_PRECO 
       EndSwitch   
       
       If Len(VSD_I_Tabela_Preco)=5 And VSD_I_Preco_Tabela=BlankNum()
          Then GetRecord "\\Sistemas\\Vendas\\TbPrIte" VSD_I_Tabela_Preco,VSD_I_Codigo_Item To PRECO
               If RetVal
                  Then PRECO = PRECO["Preco Unitario"]
                  Else PRECO = 0
               EndIf
               VSD_I_Preco_Tabela      = PRECO
               [Preco Unitario Tabela] = PRECO
               UnLockRecord
               SaveTables
       EndIf        
       Play "FT_CUSTO"         
EndSwitch
EndProc  ; Registro_Item()

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoI()
INICIA_REGISTRO()
DIGITAI()
Moveto "NotaEI"
If RecordStatus("Locked") Then UnLockRecord EndIf         
EndProc

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

While FACA_DIGITAC
  DIGITAC()
  GetRecord "\\Sistemas\\Estoque\\NotaEc" LANCTO To NOTAEC
  
  If CHAVEC=9 Then QuitLoop EndIf

  While FACA_CHAVEI
    While True
      CHAVEI()
      If CHAVEI=9 Then QuitLoop EndIf
      Controla_EdicaoI()
    EndWhile   
    While FACA_DIGITAF
      DIGITAF()
      If CHAVEF=0
         Then FACA_DIGITAC=False
              FACA_CHAVEI =False
      EndIf
      QuitLoop
    EndWhile
  EndWhile
EndWhile

If RecordStatus("Locked") Then UnLockRecord EndIf         
If OPCAO_FORM="F"
   Then PickForm "F"
EndIf

EndProc ;Controla_EdicaoC() 

;*******************************************************************************
;* 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_NLANC"          : Campo="TG_EMPRESA"
            Case Campo="TG_DESTINAT"       : Campo="TG_NLANC"
            Case Campo="TG_DTINI"          : Campo="TG_DESTINAT"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            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 IsBlank(VSDGEMPRESA)
                            Then Mensagem("Empresa nÆo selecionada !")
                                 VSDGEMPRESA   =""
                            Else Campo="TG_NLANC"
                         EndIf
                    Case Campo="TG_NLANC"   : 
                         VSDGNLANC = ControlValue("TG_NLANC")
                         If Not IsBlank(VSDGNLANC)
                            Then VSDGNLANC = AlinhM(VSDGNLANC,6)
                                 Campo="YES"
                            Else Campo="TG_DESTINAT"      
                         EndIf    
                    Case Campo="TG_DESTINAT":  
                         Campo="TG_DTINI" 
                    Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"   : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf  
Switch                
  Case Campo="TG_NLANC" :
       MSG_CAMPO="Informe o n£mero do lan‡amento de entrada"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao()
LimpAguarde()
ClearAll

FAZ_ROTINA   = False

VSDGEMPRESA     = ""
VSDGNLANC       = ""
VSDGDESTINAT    = ""
VSDGNOMEMP      = ""
VSDGNOMDEST     = ""
VSDGDTINI       = BlankDate()
VSDGDTFIM       = BlankDate()

OP_SHOW="S"

While True
  ShowDialog "Sele‡„o de Registros" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
    @ 01,01 Height 13 Width 44
  
    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "N§ Lan‡to"  For "TG_NLANC"
    Accept @ 03,01 Width 09 "A6"  Picture "#*#" Tag "TG_NLANC" To VSDGNLANC

    Label  @ 04,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 05,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 05,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMDEST"  To VSDGNOMDEST

    Label  @ 06,00 "Periodo Referente" For "TG_DTINI"
    Label  @ 07,00 "de" For "TG_DTINI"
    Accept @ 07,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 07,17 "at‚" For "TG_DTFIM"
    Accept @ 07,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
  
    Pushbutton @ 09,10 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 09,23 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue
  
  EndDialog
  If RetVal
     Then LimpaRodape(0)
          Aguarde("Aguarde, Selecionando registros")
          ClearAll
          
          Tabela=Cria_Temp(PrivDir())
          Copy "\\Base\\Sistemas\\Estoque\\NotaEc" Tabela
          
          {Ask} {NotaEc} Check
          Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
          If Not IsBlank(VSDGNLANC)
             Then Moveto [Numero do Lancamento] TypeIn "~VSDGNLANC.."
             Else Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
                  Moveto [Data de Entrada        ] TypeIn ">=~VSDGDTINI ,<=~VSDGDTFIM"
          EndIf 
          Do_It!
          ClearAll
          
          If IsEmpty("Answer")
             Then Mensagem("N„o existem registros a processar !")
                  Loop
          EndIf
          FAZ_ROTINA = True
          
          Add "Answer" Tabela         
          QuitLoop
     Else ClearAll
          QuitLoop      
  EndIf
  ClearAll
  QuitLoop
EndWhile

EndProc

;*******************************************************************************
;* Rotina para Carregar Parametros                                             *
;*******************************************************************************
Proc Carrega_Parametros()
Private Result

Moveto Tabela
CODEMP = [Codigo da Empresa]
CODDOC = [Codigo do Documento]

If IsEmpty("P_Entra")
   Then Mensagem("N„o esta Configurado os Parametros para Digita‡„o !")
        Result=False
   Else UnLockRecord
        KeyPress "F7"
        While True
          If Not IsLockRecord()
             Then QuitLoop
          EndIf
        EndWhile
        
        Moveto "P_Entra"
        Moveto [Codigo_Empresa]
        Locate CODEMP
        If Not RetVal
           Then Mensagem("Parametros n„o Cadastrado para esta Empresa !")
                Result=False
           Else PARAM_CONTA_CAIXA  = [Codigo_Conta_Caixa       ]
                Moveto [Codigo_Conta_Caixa]
                Ativa_Lookup()
                Moveto [Codigo da Conta]
                Locate PARAM_CONTA_CAIXA
                If RetVal
                   Then PARAM_DESC_CONTA_CAIXA=[Descricao da Conta]
                   Else PARAM_DESC_CONTA_CAIXA=""
                EndIf
                Keypress "Esc"
                UnLockRecord
                
                PARAM_TABELA_PRECO        = [Tabela_Preco             ]
                PARAM_ATTAB_PRECO         = [Atualiza_Tabela_Preco    ]
                PARAM_CCE_SUBICMS         = [SubTrai_ICMS_CustoEntrada]
                PARAM_BCPV_SUBICMS        = [SubTrai_ICMS_BC_PrVenda  ]
                PARAM_RELATORIO           = [Script_Impressao         ]
                PARAM_ATUA_CXBC           = [Atualiza_Caixa_Banco     ]
                PARAM_ATUA_CAPG           = [Atualiza_Contas_Pagar    ]
                PARAM_CALC_COFLUCR        = [Calcular_COFINS_Lucrativ ]
                PARAM_TAXA_COFINS         = [Taxa_COFINS              ]
                PARAM_TAXA_LUCRATIV       = [Taxa_Lucratividade       ]
                PARAM_USA_COFINS_DBCR     = [Utiliza_COFINS_DBCR      ]
                ;;PARAM_PECAS_ITEM          = [Controla_Pecas_Item      ] nÆo usa mais
                PARAM_PECAS_ITEM          = "N"
                
                PARAM_CCE_SUBCOFINS       = [SubTrai_COFINS_CustoEntra]
                PARAM_CCE_SUBPIS          = [SubTrai_PIS_CustoEntrada ]
                PARAM_TAXA_PIS            = [Taxa_PIS                 ]
                PARAM_ACRES_DIF_ALIQ_CUST = [Acresce_DifAliq_Custo    ]
                
                If (CODDOC="NE") And (SYS_CODIGO_CLIENTE="0117") And
                   (SubStr(Directory(),1,1)="X")
                   Then PARAM_CCE_SUBICMS        = "N"
                        PARAM_BCPV_SUBICMS       = "N"
                        PARAM_CALC_COFLUCR       = "N"
                        PARAM_USA_COFINS_DBCR    = "N"
                EndIf

                Result=True                
        EndIf
EndIf

Moveto Tabela
KeyPress "F7"

Return Result
EndProc ; (Carrega_Parametros)

;*******************************************************************************
;* Rotina para Carregar Tabelas                                                *
;*******************************************************************************
Proc Monta_Tabelas()

View NOWINDOW "NotaEI"
View NOWINDOW "NotaECV"
View NOWINDOW "NotaEcp"
View NOWINDOW "Cotacao"
View NOWINDOW "FornProd"
View NOWINDOW "P_Entra"                      
View NOWINDOW "\\Sistemas\\CtaCor\\MovCont"
View NOWINDOW "\\Sistemas\\CtaCor\\SaldCont"
View NOWINDOW "\\Sistemas\\CtaPag\\Titulos"

View NOWINDOW "\\Sistemas\\Estoque\\Itens" ImageRights ReadOnlY
View NOWINDOW "\\Sistemas\\Estoque\\SdEstq"
View NOWINDOW "\\Sistemas\\Estoque\\EstqPrm"
View NOWINDOW "\\Sistemas\\Vendas\\TbPrIte"
;;View NOWINDOW "\\Sistemas\\Vendas\\TbPrCpg"

CoEdit Tabela

;************** Rotina para tratar o erro de tabela locada ********************
If ErrorCode()=4
   Then Return False
EndIf

PickForm "1"
Moveto "\\Sistemas\\Compras\\OCC" SetHighLight Current Record 119 Field 119
Moveto "\\Sistemas\\Compras\\OCI" SetHighLight Current Record 119 Field 119
Moveto "SdEstq"                   SetHighLight Current Record 51  Field 51
Moveto "NotaECV"                  SetHighLight Current Record 119 Field 119

Moveto Tabela
PickForm "F"
Return True
EndProc

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

PARAM_IMAGEM = False
If SYS_CODIGO_CLIENTE="0294" Or SYS_CODIGO_CLIENTE="0232" 
   Then PARAM_IMAGEM = True
EndIf  

PARAM_FTCUSTO  = "NOTAEPV"
ATUALIZA       = 0
GEROU_ROTINA   = False
GEROU_PROCESSO = 1

Selecao() 

If FAZ_ROTINA
   Then If Not Monta_Tabelas()
           Then Do_It!
                ClearAll
                Release Vars All
                Release Procs All
                return
        EndIf
        
        OPCAO_FORM="F"
        
        While True          
          CHAVEC()          
          If CHAVEC=9 Then QuitLoop EndIf
          If CHAVEC=5       
             Then If OPCAO_FORM="F"
                     Then PickForm "F"
                     Else PickForm "1"
                  EndIf
                  Loop
          EndIf
          Controla_EdicaoC()
        EndWhile
        Do_It!
        ClearAll
EndIf

If Isfile(PrivDir()+"TEMP_000.TXT") Then Deleta_Arquivo("TEMP_000.TXT") EndIf
If IsFile(PrivDir()+"TABPR.TXT")    Then Deleta_Arquivo("TEMP_000.TXT") EndIf

Release Vars All
Release Procs All
