;** NE_0294  *******************************************************************
;** Imprime a Digitacao da Nota de Entrada                ** Divina Panela **  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 15/08/2012 por Bruno Carvalho
;Ultima Alteracao: 28/08/2012 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo de Coluna de PRECO para "Preco_Venda", retirado coluna de PrUnit e PrTot
;Ultima Alteracao: 29/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes para ser exibido PrUnit caso o PrVenda seja 0 ou vazio
;Ultima Alteracao: 23/10/2012 por Bruno Carvalho
;Motivo Alteracao: Alterado Fator de Convers‡Æo p/ buscar do "NotaEI" e nÆo do "Cadastro do Item"
;Ultima Alteracao: 05/11/2012 por Bruno Carvalho
;Motivo Alteracao: Comentado a ImpressÆo do Fator de ConversÆo 
;Ultima Alteracao: 05/11/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado Codigo de Barras na impressÆo da nota de entrada
;Ultima Alteracao: 23/12/2013 por Andrey Fillipe
;Motivo Alteracao: Inclusao UN Interna, Saldo Atual e Saldo Anterior
;Ultima Alteracao: 07/01/2014 por Kamila Gomes
;Motivo Alteracao: Ajuste vari veis ANO e MES
;Ultima Alteracao: 26/03/2014 por Andrey Fillipe
;Motivo Alteracao: Inclusao Preco Anterior e Preco Atual
;Ultima Alteracao: 04/04/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes IMPNE(), erro de sintaxe 
;Ultima Alteracao: 13/07/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado coluna de "Quantidade Convertida" e TOT_QTD_CONVERTIDA   
;Ultima Alteracao: 19/07/2016 por Bruno Carvalho
;Motivo Alteracao: Removido ASP1 e ASP2 e alterado impressÆo para o ImpriArq()  
;Ultima Alteracao: 09/08/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes layout sem estoque                                      
;Ultima Alteracao: 23/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes difal aliquota icms
;Ultima Alteracao: 10/11/2018 por Bruno Carvalho 
;Motivo Alteracao: Adicionado totalizador para diferencial de aliquota 

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPNE()
private cdbarras,regitens

Cabecalho()

ANO = AlinhM(StrVal(Year(Today())),4)
MES = AlinhM(StrVal(Month(Today())),2)

TOT_VALOR_DIF_ALIQ_ICMS = 0
TOT_QTD_CONVERTIDA      = 0
TOT=0
PRECO=0

Moveto "NotaEI"    
CoeditKey
Scan   

   cdbarras=""
   getrecord "\\sistemas\\estoque\\itens" [Codigo do Item] to regitens
   if retval
      then cdbarras=regitens["Codigo de Barras"]
   endif    
   
   If IsBlank([Preco_Venda]) Or [Preco_Venda]=0
      Then PRECO=[Preco Unitario Tabela]
      Else PRECO=[Preco_Venda]
   EndIf 
   
   Print File ARQIMP Format("W03,AR",StrVal([Sequencia do Lancamento]))+Spaces(1)
   Print File ARQIMP Format("W11,AL",[Codigo do Item])
   Print File ARQIMP Format("W30,AL",[Descricao do Item])
   Print File ARQIMP Format("W18,AL",cdbarras)+Spaces(1)
   Print File ARQIMP Format("W8,EIC",[Quantidade])+Spaces(1)
   Print File ARQIMP Format("W03,AL",[Unidade Entrada])               
   Print File ARQIMP Format("W8,AR",[Fator de Conversao])+Spaces(1)
   Print File ARQIMP Format("W10,EIC",[Quantidade Convertida])+Spaces(1)
   Print File ARQIMP Format("W03,AL",[Unidade Interna])                  
   Print File ARQIMP Format("W10.2,EIC",[Preco Unitario Tabela])+Spaces(1)          
   Print File ARQIMP Format("W10.2,EIC",[Preco_Venda])
   Print File ARQIMP Format("W11.2,EIC",[VALOR DIF_ALIQ_ICMS])+"\n"

   TOT = TOT + PRECO
   TOT_QTD_CONVERTIDA      = TOT_QTD_CONVERTIDA + [Quantidade Convertida]
   TOT_VALOR_DIF_ALIQ_ICMS = TOT_VALOR_DIF_ALIQ_ICMS + [VALOR DIF_ALIQ_ICMS] 

   Limite = Limite + 1
   If Limite > 62
      Then Print File ARQIMP "\f"
           Cabecalho()
           Moveto "NotaEI"
   Endif
EndScan
Do_It!

If TOT_VALOR_DIF_ALIQ_ICMS=0 Then TOT_VALOR_DIF_ALIQ_ICMS = BlankNum() EndIf

Rodape()
EndProc

;************************************************************************************
;Impressao do Cabecalho                                                             *
;************************************************************************************
Proc Cabecalho()

If Not IsAssigned(NOMEMPRESA)
   Then NOMEMPRESA=""
EndIf
       
Moveto "NotaEC"

Open Printer
Printer On

Print File ARQIMP CI_15CPP+"\n"
Print File ARQIMP FIll("=",134)+"\n"
Print File ARQIMP Format("W40,AL",NOMEMPRESA)+Spaces(64)+"Impressao: "+Format("D10",Today())+"-"+Time()+ "\n"
Print File ARQIMP FIll("=",134)+"\n"

Print File ARQIMP "\014"
Print File ARQIMP "\027E"+Spaces(50)+"NE "+Format("W06,AL",[Numero do Lancamento])+"\027F"
Print File ARQIMP "\020"+ "\n"

Print File ARQIMP "Fornecedor: "+Format("W05,AL",[Codigo])+Format("W46,AL",[Razao Social])+"\n"

Print File ARQIMP Spaces(17)+Format("W20,AL",[CGC])+Format("W22,AL",[Cidade])
Print File ARQIMP Format("W05,AL",[UF])+"\n"

Print File ARQIMP Spaces(17)+"Docto: "+Format("W04,AL",[Tipo do Documento])+" "+Format("W13,AL",[Numero do Documento])
Print File ARQIMP "CFO: "+Format("W15,AL",[CFO])
Print File ARQIMP "OC: "+Format("W06,AL",[Numero da OC])+"\n\n"

Print File ARQIMP "Emissao...: "+Format("D13",[Data de Emissao])+Spaces(05)
Print File ARQIMP "Entrada: "+Format("D13",[Data de Entrada])+Spaces(05)
Print File ARQIMP "Operacao: "+Format("A20",[Descricao da Operacao])+"\n"

Print File ARQIMP "Represent.: "+Format("W05,AL",[Codigo do Representante])
Print File ARQIMP Format("W34,AL",[Nome Fantasia Represent])
Print File ARQIMP "TabPreco: "+Format("W06,AL",[Codigo da Tabela])+"\n"

Print File ARQIMP CI_15CPP+"\n"

Print File ARQIMP "Sq  Item                                     Codigo de Barras   Quantid  UC Ft.Conv  QtdConvert UI   Pr Anter   Pr Atual Difal/Aliq"+"\n"
Print File ARQIMP "--- ---------------------------------------- ------------------ -------- -- -------- ---------- -- ---------- ---------- ----------"+"\n"

Limite=13
EndProc

;*******************************************************************************
;* Impressao do RodaP‚                                                         *
;*******************************************************************************
Proc RodaPe()

;********************* IMPRESSAO DOS TOTAIS **************************

Moveto "NotaEC"

Print File ARQIMP "\n"
                                   
Print File ARQIMP Spaces(01)+"  Mecadorias  Desconto     Liquido   Desp.Aces    Vr.Subst    Vr.Venda       Total  QtdConvertida  DifAliquota"+"\n"
                            ;;9.999.999,99777.777,776.666.666,665.555.555,555.555.555,559.999.999,995.555.555,55   5.555.555,55

Print File ARQIMP Spaces(01)+Format("W12.2,EIC",[Valor Mercadoria])
Print File ARQIMP Format("W10.2,EIC",[Valor Desconto])
Print File ARQIMP Format("W12.2,EIC",[Valor Mercadoria Liquido])
Print File ARQIMP Format("W12.2,EIC",[Valor Despesas Acessorias])
Print File ARQIMP Format("W12.2,EIC",[Valor Substituicao ICMS])
Print File ARQIMP Format("W12.2,EIC",TOT)
Print File ARQIMP Format("W12.2,EIC",[Valor Nota Fiscal])
Print File ARQIMP Spaces(3)+Format("W12,EIC",TOT_QTD_CONVERTIDA)
Print File ARQIMP Spaces(1)+Format("W12.2,EIC",TOT_VALOR_DIF_ALIQ_ICMS)+CI_15CPP+"\n\n"
   
Print File ARQIMP "Cond. Pagto: "+[Descricao Tipo Pagamento]+"   Frete:"+Format("W10.2,EIC",[Valor do Frete])+"\n"

;********************* IMPRESSAO DOS VENCIMENTOS **************************
Print File ARQIMP "Vencimentos: "

Array DATA[9]
Array VALOR[9]
K=0
KV=0
Moveto "NotaECP"
Scan
  K=K+1
  DATA[K]  = Format("D13",[Data de Vencimento])
  VALOR[K] = Format("W10.2,AR,EIC",[Valor do Documento])
  If K=9
     Then VENC()
          K=0
  EndIf
EndScan
If K>0
   Then VENC()
EndIf


Moveto "NotaEC"

Print File ARQIMP "\n\n"

Print File ARQIMP "Mercadoria recebida e conferida em ___/___/______  por _________________________"+"\n\n"
Print File ARQIMP "\f"
Print File ARQIMP CI_15CPP+"\n"
Print File ARQIMP CI_8LPP+"\n"
Printer Off
Close Printer

EndProc

;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc VENC()
If KV>0
   Then Print File ARQIMP Spaces(13)
EndIf                   
For I From 1 to K
  Print File ARQIMP DATA[I]+Spaces(02)
EndFor
Print File ARQIMP "\n"
Print File ARQIMP Spaces(13)
For I From 1 to K
  Print File ARQIMP VALOR[I]+Spaces(02)
EndFor
Print File ARQIMP "\n"

KV=KV+1
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
ArqImp=PrivDir()+"NE_0294.Txt"
If IsFile(ARQIMP)
   Then Deleta_Arquivo(ARQIMP)
EndIf
AGUARDE("Imprimindo NE -> "+NE)
IMPNE()                                      
ImpriArq(ARQIMP)

Release Vars VALOR,DATA
Release Procs IMPNE,Cabecalho,Rodape,VENC

