;** xuc     ********************************************************************
;*  cria tabela com ultima compra                                              *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 20/08/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 28/08/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: custo/qtde convertida

;*******************************************************************************
;* Rotina para Carregar Tabelas                                                *
;*******************************************************************************
Proc Monta_Tabelas()
MSGCAMPO     = ""

empty("tbuc")

View NOWINDOW "tbuc"
View NOWINDOW "NotaEI"
View NOWINDOW "NotaEC"

Moveto "NotaEC"
CoEditKey 

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

Moveto "NotaEC"

Return True
EndProc


;*******************************************************************************
;* Rotina Principal Notas de Entrada                                           *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

sys_Valor()

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

MSG="** Rotina para gerar tabela [\\sistemas\\estoque\\tbuc] ! **    // // com ultima compra !"
While ConfGeral(MSG)

  If Not Monta_Tabelas()
     Then Do_It!
          ClearAll
          Release Vars All
          Release Procs All
          return
  EndIf
  NR = NRecords("NotaEc")

  Scan
  
   Barra(NR, RecNo())
   Aguarde("Aguarde, Processando 1/2"+BARRA_STRING)

   If [NotaEC->Tipo de Operacao]<>"C" 
      then loop
   endif

;           If [Data de Entrada]<DateVal("01.01.2017")        
;              Then Loop
;           EndIf
      
    Moveto "NotaEI"
    moveto [Numero do Lancamento]
    locate [NotaEC->Numero do Lancamento]
    if retval
       then
            while [Numero do Lancamento]=[NotaEC->Numero do Lancamento]

              if [NotaEI->Tipo do Item]="T"
                 then 
                      moveto "tbuc"
                      moveto [Codigo da Empresa]
                      locate [NotaEC->Codigo da Empresa],[NotaEI->Codigo do Item]
                      if not retval
                         then
                              end
                              down
                              [Codigo da Empresa]=[NotaEC->Codigo da Empresa]
                              [Codigo do Item   ]=[NotaEI->Codigo do Item   ]
                      endif
                      [Data Compra     ]=[NotaEC->Data de Entrada     ]              
                      [Custo de Entrada]=NDecimal(([NotaEI->Custo Medio Unitario]*[NotaEI->Quantidade])/[NotaeI->Quantidade Convertida],5)
                      [Aliquota ICMS   ]=[NotaEI->Aliquota de ICMS    ]
        
                      moveto "NotaEI"
              endif

              skip
              if eot() then quitloop endif
            Endwhile
    endif
  
    Moveto "NotaEC"
  EndScan
  Do_It!
  ClearAll

  MSG="Fim do processo !// //"
  MSG=MSG+"- verificar dados gerados.// //"
  Mensagem(MSG)

  quitloop
endwhile

ClearAll
Release Vars All
Release Procs All

