julio 2015-11-10 17:04:05 +00:00
parent 54d67e433b
commit 351cd4d060
4 changed files with 151 additions and 39 deletions

View File

@ -43,6 +43,7 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append(" to_char(b.fechorventa, 'yyyyMMdd') as dataEmissao, ");
sql.append(" b.preciopagado as valorTotal, ");
sql.append(" b.origen_id as origenId, ");
sql.append(" b.destino_id as destinoId, ");
sql.append(" r5.totparcial as repTributado, ");
sql.append(" b.preciopagado as valorItem, ");
sql.append(" r5.tipopassagem as tipoPassagem, ");
@ -55,6 +56,9 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append(" ed.estado_id as estadoIdDestino, ");
sql.append(" subserie as subSerie, ");
sql.append(" docfiscal as aidf, ");
sql.append(" fi.numserie as numpdv,");
sql.append(" fi.modelo as modeloImpressora,");
sql.append(" r4.usuario_id as numCaixa,");
sql.append(" case b.importetaxaembarque ");
sql.append(" when 0 then null ");
sql.append(" else b.importetaxaembarque ");
@ -107,6 +111,34 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append("WHERE b.marca_id = :empresaId ");
sql.append(" AND b.fechorventa BETWEEN :datIni AND :datFim ");
sql.append(" AND b.tipoventa_id = 3");
sql.append("GROUP BY r4.numserie20, ");
sql.append(" COALESCE(r4.coo, b.numfoliopreimpreso), ");
sql.append(" b.boleto_id, ");
sql.append(" b.marca_id, ");
sql.append(" e.nombempresa, ");
sql.append(" TO_CHAR(b.fechorventa, 'yyyyMMdd'), ");
sql.append(" b.preciopagado, ");
sql.append(" b.origen_id, ");
sql.append(" b.destino_id, ");
sql.append(" r5.totparcial, ");
sql.append(" b.preciopagado, ");
sql.append(" r5.tipopassagem, ");
sql.append(" r5.numitem, ");
sql.append(" r5.codproduto, ");
sql.append(" b.numseriepreimpresa, ");
sql.append(" eio.icms, ");
sql.append(" eio.porctributo, ");
sql.append(" eo.estado_id, ");
sql.append(" ed.estado_id, ");
sql.append(" subserie, ");
sql.append(" docfiscal, ");
sql.append(" b.importetaxaembarque, ");
sql.append(" b.importepedagio, ");
sql.append(" b.importeoutros, ");
sql.append(" b.importeseguro, ");
sql.append(" fi.numserie, ");
sql.append(" fi.modelo, ");
sql.append(" r4.usuario_id ");
Query query = getSession().createSQLQuery(sql.toString())
.addScalar("numImpressora", StringType.INSTANCE)
@ -117,6 +149,7 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
.addScalar("dataEmissao", StringType.INSTANCE)
.addScalar("valorTotal", BigDecimalType.INSTANCE)
.addScalar("origenId", IntegerType.INSTANCE)
.addScalar("destinoId", IntegerType.INSTANCE)
.addScalar("repTributado", StringType.INSTANCE)
.addScalar("valorItem", BigDecimalType.INSTANCE)
.addScalar("tipoPassagem", StringType.INSTANCE)
@ -132,7 +165,10 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
.addScalar("importeoutros", BigDecimalType.INSTANCE)
.addScalar("importeseguro", BigDecimalType.INSTANCE)
.addScalar("subSerie", StringType.INSTANCE)
.addScalar("aidf", StringType.INSTANCE);
.addScalar("aidf", StringType.INSTANCE)
.addScalar("numpdv", StringType.INSTANCE)
.addScalar("modeloImpressora", StringType.INSTANCE)
.addScalar("numCaixa", StringType.INSTANCE);
query.setResultTransformer(new AliasToBeanResultTransformer(ImportacionManualFiscalVO.class));
query.setInteger("empresaId", empresaId);
@ -158,7 +194,7 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append(" r2.horareducao AS horareducao, ");
sql.append(" r3.totparcial AS aliquota, ");
sql.append(" r3.valoracumulado AS imposto, ");
sql.append(" ifi.fiscalimpressora_id AS numpdv, ");
sql.append(" ifi.numserie AS numpdv, ");
sql.append(" e.cnpj AS cnpj, ");
sql.append(" r2.totgeral AS gtFinal, ");
sql.append(" anterior.totgeral AS gtInicial ");
@ -195,7 +231,7 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append(" r2.horareducao, ");
sql.append(" r3.totparcial, ");
sql.append(" r3.valoracumulado, ");
sql.append(" ifi.fiscalimpressora_id, ");
sql.append(" ifi.numserie, ");
sql.append(" e.cnpj, ");
sql.append(" r2.totgeral, ");
sql.append(" anterior.totgeral ");
@ -243,13 +279,16 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append(" b.boleto_id as boletoId, ");
sql.append(" b.marca_id as empresaId, ");
sql.append(" b.origen_id as origenId, ");
sql.append(" b.destino_id as destinoId, ");
sql.append(" fi.numcnpj as cnpjImpressora, ");
sql.append(" fi.fiscalimpressora_id as numpdv, ");
sql.append(" fi.numserie as numpdv, ");
sql.append(" r5.totparcial as repTributado, ");
sql.append(" r5.imptotalliquido as valorItem, ");
sql.append(" r5.tipopassagem as tipoPassagem, ");
sql.append(" r5.numitem as numItem, ");
sql.append(" r5.codproduto as codProduto ");
sql.append(" r5.codproduto as codProduto, ");
sql.append(" fi.modelo as modeloImpressora, ");
sql.append(" r4.usuario_id as numCaixa ");
sql.append(" FROM fiscal_r4 r4 ");
sql.append(" INNER JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador ");
@ -266,14 +305,17 @@ public class FiscalHibernateDAO extends GenericHibernateDAO<String, String> impl
sql.append(" b.boleto_id, ");
sql.append(" b.marca_id, ");
sql.append(" b.origen_id, ");
sql.append(" b.destino_id, ");
sql.append(" fi.numcnpj, ");
sql.append(" fi.fiscalimpressora_id, ");
sql.append(" fi.numserie, ");
sql.append(" r5.impdesconto, ");
sql.append(" r5.totparcial, ");
sql.append(" r5.imptotalliquido, ");
sql.append(" r5.tipopassagem, ");
sql.append(" r5.numitem, ");
sql.append(" r5.codproduto ");
sql.append(" r5.codproduto, ");
sql.append(" fi.modelo, ");
sql.append(" r4.usuario_id ");
sql.append(" ORDER BY r4.numserie20, ");
sql.append(" r4.coo, ");
sql.append(" r4.datainicialemissao ");

View File

@ -9,7 +9,6 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@ -17,7 +16,6 @@ import java.util.HashMap;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.StopWatch;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -110,17 +108,19 @@ public class FiscalServiceImpl implements FiscalService {
String totalICMSNaotributado = StringHelper.preencherZeroEsquerda(null, 14);
String origen = StringHelper.preencherStringEspacoEsquerda(imf.getOrigenId().toString(), 5);
String destino = StringHelper.preencherStringEspacoEsquerda(imf.getDestinoId().toString(), 5);
String subSerie = StringHelper.preencherStringEspacoEsquerda(imf.getSubSerie(), 2);
String aidf = StringHelper.preencherStringEspacoEsquerda(imf.getAidf(), 30);
String brancos180 = StringHelper.preencherStringEspacoEsquerda(null, 180);
String brancos175 = StringHelper.preencherStringEspacoEsquerda(null, 175);
seq++;
sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String header = headerDocumentoFiscal("1", data, cnpjFilial, coo, serie, especie, codigoCliente,
filialCliente, condicaoPagamento, valorTotalDocumanto, valorItens, baseCalICMS, valorTotalICMS,
valorPIS, valorCofins, valorCSLL, totalICMSIsento, totalICMSNaotributado, origen, subSerie,
aidf, brancos180, sequencial);
valorPIS, valorCofins, valorCSLL, totalICMSIsento, totalICMSNaotributado, origen, destino, subSerie,
aidf, brancos175, sequencial);
gravarArq.println(header);
for (String itemDoc : montarItensFiscaisManual(imf, imf.getItens(), seq)) {
@ -177,8 +177,7 @@ public class FiscalServiceImpl implements FiscalService {
String valorUnitario = UtileriasFiscal.formataZeroDecimal(valorItem, 15);
String valorTotal = UtileriasFiscal.formataZeroDecimal(valorItem, 15);
BigDecimal valorICMS = UtileriasFiscal.arredondar(imf.getIcms());
String aliquotaItem = UtileriasFiscal.formataZeroDecimal(valorICMS, 7);
String aliquotaItem = UtileriasFiscal.formataZeroDecimal(null, 7);
BigDecimal aliquotaCalc = UtileriasFiscal.arredondar(imf.getIcms().divide(CEM));
BigDecimal baseCalculo = UtileriasFiscal.arredondar(imf.getValorTotal());
@ -196,18 +195,20 @@ public class FiscalServiceImpl implements FiscalService {
String aliquotaISS = StringHelper.preencherZeroEsquerda(null, 7);
String valorISS = StringHelper.preencherZeroEsquerda(null, 15);
String numeroPDV = StringHelper.preencherStringEspacoDireita(null, 10);
String numeroSeriePDV = StringHelper.preencherStringEspacoDireita(null, 20);
String numeroPDV = StringHelper.preencherStringEspacoDireita(imf.getNumpdv(), 10);
String numeroSeriePDV = StringHelper.preencherStringEspacoDireita(imf.getNumImpressora(), 20);
String modeloImpressora = StringHelper.preencherStringEspacoDireita(imf.getModeloImpressora(), 40);
String numCaixa = StringHelper.preencherStringEspacoDireita(imf.getNumCaixa(), 10);
seq++;
String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String brancos162 = StringHelper.preencherStringEspacoDireita(null, 162);
String brancos112 = StringHelper.preencherStringEspacoDireita(null, 112);
String itemDoc = itensDocumentoFiscal("2", numItem, cfop, codigoTES, codProduto,
unidade, quantidade, valorUnitario, valorTotal, aliquotaItem, impostoItem,
aliquotaPIS, valorPIS, aliquotaCofins, valorCofins, aliquotaCSLL, valorCSLL,
aliquotaISS, valorISS, totalICMSIsentoItem, totalICMSNaotributadoItem,
numeroPDV, numeroSeriePDV, brancos162, sequencial);
numeroPDV, numeroSeriePDV, modeloImpressora, numCaixa, brancos112, sequencial);
itensDocs.add(itemDoc);
}
@ -255,8 +256,7 @@ public class FiscalServiceImpl implements FiscalService {
Integer seq = 1;
String cnpjFilial = StringHelper.retornaSomenteNumeros(empresa.getCnpj() == null ?
StringHelper.preencherStringEspacoEsquerda(null, 14) : empresa.getCnpj());
String cnpjFilial = StringHelper.retornaSomenteNumeros(empresa.getCnpj() == null ? StringHelper.preencherStringEspacoEsquerda(null, 14) : empresa.getCnpj());
String brancos371 = StringHelper.preencherStringEspacoEsquerda(null, 371);
String dataAgora = DateUtil.getStringDate(Calendar.getInstance().getTime(), DATE_FORMAT_FISCAL);
String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
@ -269,8 +269,7 @@ public class FiscalServiceImpl implements FiscalService {
for (ImportacionFiscalReducaoZVO ifrZ : list) {
String dataMovimento = ifrZ.getDatamov();
String cnpj = StringHelper.retornaSomenteNumeros(ifrZ.getCnpj() == null ?
StringHelper.preencherStringEspacoEsquerda(null, 14) : ifrZ.getCnpj());
String cnpj = StringHelper.retornaSomenteNumeros(ifrZ.getCnpj() == null ? StringHelper.preencherStringEspacoEsquerda(null, 14) : ifrZ.getCnpj());
String impAliquota = ifrZ.getAliquota() == null ? "" : ifrZ.getAliquota().substring(0, 2);
String numRelatorio = StringHelper.preencherZeroEsquerda(impAliquota, 6);
@ -387,9 +386,9 @@ public class FiscalServiceImpl implements FiscalService {
String cnpjFilial = empresa.getCnpj();
String brancos371 = StringHelper.preencherStringEspacoEsquerda(null, 371);
String dataAgora = DateUtil.getStringDate(Calendar.getInstance().getTime(), DATE_FORMAT_FISCAL);
String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String seqAbertura = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, sequencial);
String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, seqAbertura);
gravarArq.println(abertura);
String sql = fiscalDAO.sqlFiscaisECF(inicio, fim, empresa.getEmpresaId());
@ -424,6 +423,7 @@ public class FiscalServiceImpl implements FiscalService {
item.setCnpjCliente(rset.getString("cnpjCliente"));
item.setCnpjImpressora(rset.getString("cnpjImpressora"));
item.setOrigenId(rset.getInt("origenId"));
item.setDestinoId(rset.getInt("destinoId"));
item.setNumpdv(rset.getString("numpdv"));
item.setValorTotal(rset.getBigDecimal("valorTotal"));
item.setNumItem(rset.getString("numItem"));
@ -431,6 +431,8 @@ public class FiscalServiceImpl implements FiscalService {
item.setRepTributado(rset.getString("repTributado"));
item.setTipoPassagem(rset.getString("tipoPassagem"));
item.setValorItem(rset.getBigDecimal("valorItem"));
item.setModeloImpressora(rset.getString("modeloImpressora"));
item.setNumCaixa(rset.getString("numCaixa"));
ImportacionFiscalVO novoFiscal = item;
if (!novoFiscal.equals(fiscal) && fiscal != null) {
@ -444,22 +446,21 @@ public class FiscalServiceImpl implements FiscalService {
boolean jaCadastrado = verificarItensFiscais(list, item);
if (!jaCadastrado) {
fiscal = item;
list.add(fiscal);
}
/*
* Header da importacion Fiscal ECF
*/
if (!jaCadastrado)
if (!jaCadastrado) {
qtdDoc++;
}
fiscal.getItensFiscais().add(item);
String data = fiscal.getDataEmissao();
String brancos212 = StringHelper.preencherStringEspacoEsquerda(null, 212);
String brancos207 = StringHelper.preencherStringEspacoEsquerda(null, 207);
String serie = StringHelper.preencherStringEspacoEsquerda(null, 3);
String especie = StringHelper.preencherStringEspacoDireita("CF", 5);
@ -485,16 +486,17 @@ public class FiscalServiceImpl implements FiscalService {
String totalICMSNaotributado = aliquotaBaseCalculo.get("totalICMSNaotributado");
String origen = StringHelper.preencherStringEspacoEsquerda(fiscal.getOrigenId().toString(), 5);
String destino = StringHelper.preencherStringEspacoEsquerda(fiscal.getDestinoId().toString(), 5);
if (!jaCadastrado)
seq++;
sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String seqHeader = StringHelper.preencherZeroEsquerda(Integer.valueOf(seq - 1).toString(), 6);
header = headerDocumentoFiscal("1", data, cnpjFilial, coo, serie, especie, codigoCliente,
filialCliente, condicaoPagamento, valorTotalDocumanto, valorItens, aliquota, imposto,
valorPIS, valorCofins, valorCSLL, totalICMSIsento, totalICMSNaotributado, origen, null,
null, brancos212, sequencial);
valorPIS, valorCofins, valorCSLL, totalICMSIsento, totalICMSNaotributado, origen, destino, null,
null, brancos207, seqHeader);
/*
* Item da importacion Fiscal ECF
@ -513,9 +515,9 @@ public class FiscalServiceImpl implements FiscalService {
String qtdeDocGerados = StringHelper.preencherZeroEsquerda(qtdDoc.toString(), 6);
String qtdeItensDocGerados = StringHelper.preencherZeroEsquerda(qtdItens.toString(), 6);
String brancos381 = StringHelper.preencherStringEspacoEsquerda(null, 381);
sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String seqFechamento = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String fechamento = fechamentoDeArquivo("3", qtdeDocGerados, qtdeItensDocGerados, brancos381, sequencial);
String fechamento = fechamentoDeArquivo("3", qtdeDocGerados, qtdeItensDocGerados, brancos381, seqFechamento);
gravarArq.println(fechamento);
arq.close();
@ -606,7 +608,7 @@ public class FiscalServiceImpl implements FiscalService {
valorImposto = UtileriasFiscal.arredondar(valorImposto);
impostoItem = UtileriasFiscal.formataZeroDecimal(valorImposto, 15);
aliquotaItem = UtileriasFiscal.formataZeroDecimal(aliquotaCalc, 7);
aliquotaItem = UtileriasFiscal.formataZeroDecimal(null, 7);
}
String aliquotaPIS = StringHelper.preencherZeroEsquerda(null, 7);
@ -620,17 +622,18 @@ public class FiscalServiceImpl implements FiscalService {
String numeroPDV = StringHelper.preencherStringEspacoDireita(item.getNumpdv(), 10);
String numeroSeriePDV = StringHelper.preencherStringEspacoDireita(item.getNumImpressora(), 20);
String modeloImpressora = StringHelper.preencherStringEspacoDireita(item.getModeloImpressora(), 40);
String numCaixa = StringHelper.preencherStringEspacoDireita(item.getNumCaixa(), 10);
seq++;
String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6);
String brancos162 = StringHelper.preencherStringEspacoEsquerda(null, 162);
String brancos112 = StringHelper.preencherStringEspacoEsquerda(null, 112);
String itemDoc = itensDocumentoFiscal("2", numItem, cfop, codigoTES, codProduto,
unidade, quantidade, valorUnitario, valorTotal, aliquotaItem, impostoItem,
aliquotaPIS, valorPIS, aliquotaCofins, valorCofins, aliquotaCSLL, valorCSLL,
aliquotaISS, valorISS, totalICMSIsentoItem, totalICMSNaotributadoItem,
numeroPDV, numeroSeriePDV, brancos162, sequencial);
numeroPDV, numeroSeriePDV, modeloImpressora, numCaixa, brancos112, sequencial);
return itemDoc;
}
@ -782,7 +785,7 @@ public class FiscalServiceImpl implements FiscalService {
String serie, String especie, String codigoCliente, String filialCliente, String condicaoPagamento,
String valorTotalDocumanto, String valorItens, String aliquota, String imposto, String valorPIS,
String valorCofins, String valorCSLL, String totalICMSIsento, String totalICMSNaotributado, String origen,
String subSerie, String aidf, String brancos, String sequencial) {
String destino, String subSerie, String aidf, String brancos, String sequencial) {
StringBuilder header = new StringBuilder();
header.append(identificador);
@ -804,6 +807,7 @@ public class FiscalServiceImpl implements FiscalService {
header.append(totalICMSIsento);
header.append(totalICMSNaotributado);
header.append(origen);
header.append(destino);
header.append(subSerie == null ? "" : subSerie);
header.append(aidf == null ? "" : aidf);
header.append(brancos);
@ -817,7 +821,7 @@ public class FiscalServiceImpl implements FiscalService {
String aliquotaItem, String impostoItem, String valorPIS, String aliquotaPIS, String aliquotaCofins,
String valorCofins, String aliquotaCSLL, String valorCSLL, String aliquotaISS, String valorISS,
String totalICMSIsentoItem, String totalICMSNaotributadoItem, String numeroPDV, String numeroSeriePDV,
String brancos, String sequencial) {
String modeloImpressora, String numCaixa, String brancos, String sequencial) {
StringBuilder item = new StringBuilder();
item.append(identificador);
@ -843,6 +847,8 @@ public class FiscalServiceImpl implements FiscalService {
item.append(totalICMSNaotributadoItem);
item.append(numeroPDV == null ? "" : numeroPDV);
item.append(numeroSeriePDV == null ? "" : numeroSeriePDV);
item.append(modeloImpressora);
item.append(numCaixa);
item.append(brancos);
item.append(sequencial);

View File

@ -15,7 +15,10 @@ public class ImportacionFiscalVO {
private String cnpjImpressora;
private BigDecimal valorTotal;
private Integer origenId;
private Integer destinoId;
private String numpdv;
private String modeloImpressora;
private String numCaixa;
private List<ItemFiscalVO> itensFiscais;
@ -147,4 +150,28 @@ public class ImportacionFiscalVO {
return true;
}
public Integer getDestinoId() {
return destinoId;
}
public void setDestinoId(Integer destinoId) {
this.destinoId = destinoId;
}
public String getNumCaixa() {
return numCaixa;
}
public void setNumCaixa(String numCaixa) {
this.numCaixa = numCaixa;
}
public String getModeloImpressora() {
return modeloImpressora;
}
public void setModeloImpressora(String modeloImpressora) {
this.modeloImpressora = modeloImpressora;
}
}

View File

@ -13,6 +13,7 @@ public class ImportacionManualFiscalVO {
private String dataEmissao;
private BigDecimal valorTotal;
private Integer origenId;
private Integer destinoId;
private String repTributado;
private BigDecimal valorItem;
private String tipoPassagem;
@ -30,6 +31,10 @@ public class ImportacionManualFiscalVO {
private String subSerie;
private String aidf;
private String numpdv;
private String modeloImpressora;
private String numCaixa;
List<BigDecimal> itens;
public String getNumImpressora() {
@ -232,4 +237,36 @@ public class ImportacionManualFiscalVO {
this.aidf = aidf;
}
public Integer getDestinoId() {
return destinoId;
}
public void setDestinoId(Integer destinoId) {
this.destinoId = destinoId;
}
public String getNumpdv() {
return numpdv;
}
public void setNumpdv(String numpdv) {
this.numpdv = numpdv;
}
public String getModeloImpressora() {
return modeloImpressora;
}
public void setModeloImpressora(String modeloImpressora) {
this.modeloImpressora = modeloImpressora;
}
public String getNumCaixa() {
return numCaixa;
}
public void setNumCaixa(String numCaixa) {
this.numCaixa = numCaixa;
}
}