Exportação Fiscal : ECF e RMD (issue 8120)
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@65317 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
2a07a0f16b
commit
d1f4e53493
|
@ -29,6 +29,7 @@ import com.rjconsultores.ventaboletos.dao.FiscalDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Aidf;
|
import com.rjconsultores.ventaboletos.entidad.Aidf;
|
||||||
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.StringHelper;
|
import com.rjconsultores.ventaboletos.utilerias.StringHelper;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF;
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF;
|
||||||
|
@ -50,7 +51,7 @@ import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria;
|
||||||
|
|
||||||
@Repository("fiscalDAO")
|
@Repository("fiscalDAO")
|
||||||
public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO {
|
public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO {
|
||||||
public static final String DATE_FORMAT_FISCAL = "yyyyMMdd";
|
private static final String DATE_FORMAT_FISCAL = "yyyyMMdd";
|
||||||
|
|
||||||
private static Logger log = Logger.getLogger(FiscalHibernateDAO.class);
|
private static Logger log = Logger.getLogger(FiscalHibernateDAO.class);
|
||||||
|
|
||||||
|
@ -1524,33 +1525,46 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
|
Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
|
||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
BigDecimal valorTotal = MoneyHelper.dividir(MoneyHelper.instanciar(rs.getString("valortotal")), BigDecimal.valueOf(100d));
|
||||||
|
|
||||||
BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms");
|
BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms"));
|
||||||
BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal");
|
BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
|
||||||
BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual");
|
BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual"));
|
||||||
BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao");
|
BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao"));
|
||||||
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
|
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (red_base_calc_icms != null) {
|
if (red_base_calc_icms != null) {
|
||||||
valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d))));
|
BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d));
|
||||||
|
valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms));
|
||||||
} else {
|
} else {
|
||||||
if (tributacao_importacao != null) {
|
if (tributacao_importacao != null) {
|
||||||
if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) {
|
if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) {
|
||||||
if (porc_red_municipal != null) {
|
if (porc_red_municipal != null) {
|
||||||
BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_municipal.divide(BigDecimal.valueOf(100d))));
|
BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d));
|
||||||
valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d)));
|
BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal));
|
||||||
|
BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d));
|
||||||
|
|
||||||
|
valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (porc_red_estadual != null) {
|
if (porc_red_estadual != null) {
|
||||||
BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_estadual.divide(BigDecimal.valueOf(100d))));
|
BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d));
|
||||||
valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d)));
|
BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual));
|
||||||
|
BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d));
|
||||||
|
|
||||||
|
valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal valorICMSDebitado = (tributacao_importacao == null ? BigDecimal.ZERO : valorBaseCalculoICMS.multiply(tributacao_importacao.divide(BigDecimal.valueOf(100d))));
|
BigDecimal valorICMSDebitado = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if (tributacao_importacao != null) {
|
||||||
|
BigDecimal aTributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d));
|
||||||
|
valorICMSDebitado = MoneyHelper.multiplicar(valorBaseCalculoICMS, aTributacao_importacao);
|
||||||
|
}
|
||||||
|
|
||||||
BigDecimal valorICMSIsento = valorTotal.subtract(valorBaseCalculoICMS);
|
BigDecimal valorICMSIsento = valorTotal.subtract(valorBaseCalculoICMS);
|
||||||
BigDecimal valorICMSOutros = BigDecimal.ZERO;
|
BigDecimal valorICMSOutros = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ -1693,37 +1707,48 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
Map<String, ExportacaoECFTipoPRC> group = new HashMap<String, ExportacaoECFTipoPRC>();
|
Map<String, ExportacaoECFTipoPRC> group = new HashMap<String, ExportacaoECFTipoPRC>();
|
||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
BigDecimal valorTotal = MoneyHelper.dividir(MoneyHelper.instanciar(rs.getString("valortotal")), BigDecimal.valueOf(100d));
|
||||||
|
|
||||||
BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms");
|
BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms"));
|
||||||
BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal");
|
BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
|
||||||
BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual");
|
BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual"));
|
||||||
BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao");
|
BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao"));
|
||||||
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
|
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (tributacao_importacao != null) {
|
if (tributacao_importacao != null) {
|
||||||
tributacao_importacao = tributacao_importacao.divide(BigDecimal.valueOf(100d));
|
tributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (red_base_calc_icms != null) {
|
if (red_base_calc_icms != null) {
|
||||||
valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d))));
|
BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d));
|
||||||
|
valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms));
|
||||||
} else {
|
} else {
|
||||||
if (tributacao_importacao != null) {
|
if (tributacao_importacao != null) {
|
||||||
if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) {
|
if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) {
|
||||||
if (porc_red_municipal != null) {
|
if (porc_red_municipal != null) {
|
||||||
BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_municipal.divide(BigDecimal.valueOf(100d))));
|
BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d));
|
||||||
valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d)));
|
BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal));
|
||||||
|
|
||||||
|
BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d));
|
||||||
|
valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (porc_red_estadual != null) {
|
if (porc_red_estadual != null) {
|
||||||
BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_estadual.divide(BigDecimal.valueOf(100d))));
|
BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d));
|
||||||
valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d)));
|
BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual));
|
||||||
|
|
||||||
|
BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d));
|
||||||
|
valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal valorICMS = (tributacao_importacao == null ? BigDecimal.ZERO : valorBaseCalculoICMS.multiply(tributacao_importacao));
|
BigDecimal valorICMS = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if (tributacao_importacao != null) {
|
||||||
|
valorICMS = MoneyHelper.multiplicar(valorBaseCalculoICMS, tributacao_importacao);
|
||||||
|
}
|
||||||
|
|
||||||
String key = rs.getString("ecf") + "|" + rs.getString("datamov") + "|" + rs.getString("estado_origem") + "|" + rs.getString("municipio_origem");
|
String key = rs.getString("ecf") + "|" + rs.getString("datamov") + "|" + rs.getString("estado_origem") + "|" + rs.getString("municipio_origem");
|
||||||
|
|
||||||
|
@ -1767,7 +1792,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
|
|
||||||
return retorno;
|
return retorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ExportacaoRMDTipoPAR> buscarRegistroRMDTipoPAR(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
|
public List<ExportacaoRMDTipoPAR> buscarRegistroRMDTipoPAR(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
|
||||||
List<ExportacaoRMDTipoPAR> retorno = new ArrayList<ExportacaoRMDTipoPAR>();
|
List<ExportacaoRMDTipoPAR> retorno = new ArrayList<ExportacaoRMDTipoPAR>();
|
||||||
|
|
|
@ -0,0 +1,178 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.MathContext;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.NumberFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clase MoneyHelper
|
||||||
|
*
|
||||||
|
* Referência: http://www.javapractices.com/topic/TopicAction.do?Id=13
|
||||||
|
*
|
||||||
|
* @author RJ Consultores
|
||||||
|
*/
|
||||||
|
public class MoneyHelper {
|
||||||
|
private static Logger log = LoggerFactory.getLogger(MoneyHelper.class);
|
||||||
|
|
||||||
|
private static int DECIMALS = 4;
|
||||||
|
private static int ROUNDING_MODE = BigDecimal.ROUND_HALF_EVEN;
|
||||||
|
private static BigDecimal HUNDRED = new BigDecimal("100");
|
||||||
|
private static int MATH_CONTEXT = 4;
|
||||||
|
|
||||||
|
public MoneyHelper() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal instanciar(String aValor) {
|
||||||
|
return arredondar(BigDecimal.valueOf(Float.valueOf(aValor)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal instanciar(BigDecimal aValor) {
|
||||||
|
return arredondar(aValor);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal somar(BigDecimal ... aAmount) {
|
||||||
|
BigDecimal total = BigDecimal.ZERO;
|
||||||
|
for(BigDecimal value : aAmount){
|
||||||
|
BigDecimal fAmountOne = value == null ? BigDecimal.ZERO:arredondar(value);
|
||||||
|
total = total.add(fAmountOne);
|
||||||
|
}
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO:arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo =aAmountTwo == null ? BigDecimal.ZERO: arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.add(fAmountTwo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo = arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.subtract(fAmountTwo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor) {
|
||||||
|
BigDecimal fAmount = arredondar(aAmount);
|
||||||
|
BigDecimal fDivisor = arredondar(aDivisor);
|
||||||
|
|
||||||
|
return fAmount.divide(fDivisor, DECIMALS, ROUNDING_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal multiplicar(BigDecimal aAmount, BigDecimal aMultiplicand) {
|
||||||
|
BigDecimal fAmount = arredondar(aAmount);
|
||||||
|
BigDecimal fMultiplicand = arredondar(aMultiplicand);
|
||||||
|
|
||||||
|
return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal arredondar(BigDecimal aNumber) {
|
||||||
|
if (aNumber != null) {
|
||||||
|
return aNumber.setScale(DECIMALS, ROUNDING_MODE);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal arredondar(BigDecimal aNumber, int decimals, int rounding_mode) {
|
||||||
|
if (aNumber != null) {
|
||||||
|
return aNumber.setScale(decimals, rounding_mode);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal arredondar(Float aNumber) {
|
||||||
|
return BigDecimal.valueOf(aNumber).setScale(DECIMALS, ROUNDING_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isMaior(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo = arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.compareTo(fAmountTwo) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isMaiorIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo = arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.compareTo(fAmountTwo) >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isMenor(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo = arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.compareTo(fAmountTwo) < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isMenorIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo = arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.compareTo(fAmountTwo) <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
BigDecimal fAmountOne = arredondar(aAmountOne);
|
||||||
|
BigDecimal fAmountTwo = arredondar(aAmountTwo);
|
||||||
|
|
||||||
|
return fAmountOne.compareTo(fAmountTwo) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal getDiferenca(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
return aAmountTwo.subtract(aAmountOne);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal getPercentual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
|
||||||
|
|
||||||
|
BigDecimal diferenca = getDiferenca(aAmountOne, aAmountTwo);
|
||||||
|
BigDecimal fractionalChange = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if ( diferenca!=null && ( diferenca.compareTo(BigDecimal.ZERO) != 0) && (aAmountOne.compareTo(BigDecimal.ZERO) != 0) ){
|
||||||
|
fractionalChange = diferenca.divide(aAmountOne, new MathContext(MATH_CONTEXT));
|
||||||
|
}
|
||||||
|
return arredondar(fractionalChange.multiply(HUNDRED)).abs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal getValorDescontadoPercentual(BigDecimal valor, BigDecimal percdesconto) {
|
||||||
|
BigDecimal valorDescontado = multiplicar(valor, percdesconto).divide(HUNDRED);
|
||||||
|
return arredondar(subtrair(valor, valorDescontado));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal getPercentualValor(BigDecimal valorTotal, BigDecimal valorPercentual) {
|
||||||
|
if(valorTotal != null && valorPercentual != null) {
|
||||||
|
return dividir(dividir(multiplicar(valorTotal, valorPercentual), HUNDRED), HUNDRED);
|
||||||
|
}
|
||||||
|
return BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converte uma string no formato de moeda em um {@link BigDecimal}
|
||||||
|
* @param valor
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static BigDecimal getValor(String valor) {
|
||||||
|
try {
|
||||||
|
if(StringUtils.isNotBlank(valor)) {
|
||||||
|
NumberFormat nf = DecimalFormat.getCurrencyInstance(Locale.getDefault());
|
||||||
|
nf.setMinimumFractionDigits(DECIMALS);
|
||||||
|
nf.setMaximumFractionDigits(DECIMALS);
|
||||||
|
return arredondar(nf.parse(valor).floatValue());
|
||||||
|
}
|
||||||
|
} catch (ParseException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -88,33 +88,33 @@ public class ExportacaoFiscal {
|
||||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
// @SuppressWarnings("unused")
|
||||||
private void adicionarRegistroECFTipoCFC(PrintWriter writer, final List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC) {
|
// private void adicionarRegistroECFTipoCFC(PrintWriter writer, final List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC) {
|
||||||
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
// for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
||||||
adicionarLinhaCFC(writer, registro);
|
// adicionarLinhaCFC(writer, registro);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@SuppressWarnings("unused")
|
// @SuppressWarnings("unused")
|
||||||
private void adicionarRegistroECFTipoCCF(PrintWriter writer, final List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF) {
|
// private void adicionarRegistroECFTipoCCF(PrintWriter writer, final List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF) {
|
||||||
for (ExportacaoECFTipoCCF registro : listaRegistroECFTipoCCF) {
|
// for (ExportacaoECFTipoCCF registro : listaRegistroECFTipoCCF) {
|
||||||
adicionarLinhaCCF(writer, registro);
|
// adicionarLinhaCCF(writer, registro);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@SuppressWarnings("unused")
|
// @SuppressWarnings("unused")
|
||||||
private void adicionarRegistroECFTipoICF(PrintWriter writer, final List<ExportacaoECFTipoICF> listaRegistroECFTipoICF) {
|
// private void adicionarRegistroECFTipoICF(PrintWriter writer, final List<ExportacaoECFTipoICF> listaRegistroECFTipoICF) {
|
||||||
for (ExportacaoECFTipoICF registro : listaRegistroECFTipoICF) {
|
// for (ExportacaoECFTipoICF registro : listaRegistroECFTipoICF) {
|
||||||
adicionarLinhaICF(writer, registro);
|
// adicionarLinhaICF(writer, registro);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@SuppressWarnings("unused")
|
// @SuppressWarnings("unused")
|
||||||
private void adicionarRegistroECFTipoPRC(PrintWriter writer, final List<ExportacaoECFTipoPRC> listaRegistroECFTipoPRC) {
|
// private void adicionarRegistroECFTipoPRC(PrintWriter writer, final List<ExportacaoECFTipoPRC> listaRegistroECFTipoPRC) {
|
||||||
for (ExportacaoECFTipoPRC registro : listaRegistroECFTipoPRC) {
|
// for (ExportacaoECFTipoPRC registro : listaRegistroECFTipoPRC) {
|
||||||
adicionarLinhaPRC(writer, registro);
|
// adicionarLinhaPRC(writer, registro);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void adicionarRegistroECF(PrintWriter writer, final List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC, final List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF,
|
private void adicionarRegistroECF(PrintWriter writer, final List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC, final List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF,
|
||||||
List<ExportacaoECFTipoICF> listaRegistroECFTipoICF, List<ExportacaoECFTipoPRC> listaRegistroECFTipoPRC) {
|
List<ExportacaoECFTipoICF> listaRegistroECFTipoICF, List<ExportacaoECFTipoPRC> listaRegistroECFTipoPRC) {
|
||||||
|
@ -162,6 +162,8 @@ public class ExportacaoFiscal {
|
||||||
groupPRC.put(registro.getEcf() + "|" + registro.getDataEmissao(), itensPRC);
|
groupPRC.put(registro.getEcf() + "|" + registro.getDataEmissao(), itensPRC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int linhas = listaRegistroECFTipoCFC.size() + listaRegistroECFTipoCCF.size() + listaRegistroECFTipoICF.size() + listaRegistroECFTipoPRC.size() + 1 + 1;
|
||||||
|
|
||||||
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
||||||
adicionarLinhaCFC(writer, registro);
|
adicionarLinhaCFC(writer, registro);
|
||||||
|
|
||||||
|
@ -173,10 +175,14 @@ public class ExportacaoFiscal {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BigDecimal total = BigDecimal.ZERO;
|
||||||
|
|
||||||
itensICF = groupICF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
itensICF = groupICF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
||||||
|
|
||||||
if (itensICF != null) {
|
if (itensICF != null) {
|
||||||
for (ExportacaoECFTipoICF itemICF : itensICF) {
|
for (ExportacaoECFTipoICF itemICF : itensICF) {
|
||||||
|
total = total.add(itemICF.getValorICMSDebitado().setScale(2, BigDecimal.ROUND_HALF_EVEN));
|
||||||
|
|
||||||
adicionarLinhaICF(writer, itemICF);
|
adicionarLinhaICF(writer, itemICF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,10 +191,12 @@ public class ExportacaoFiscal {
|
||||||
|
|
||||||
if (itensPRC != null) {
|
if (itensPRC != null) {
|
||||||
for (ExportacaoECFTipoPRC itemPRC : itensPRC) {
|
for (ExportacaoECFTipoPRC itemPRC : itensPRC) {
|
||||||
adicionarLinhaPRC(writer, itemPRC);
|
adicionarLinhaPRC(writer, itemPRC, total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
writer.print("TRA|" + linhas + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void adicionarLinhaCFC(PrintWriter writer, ExportacaoECFTipoCFC registro) {
|
private void adicionarLinhaCFC(PrintWriter writer, ExportacaoECFTipoCFC registro) {
|
||||||
|
@ -343,7 +351,7 @@ public class ExportacaoFiscal {
|
||||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void adicionarLinhaPRC(PrintWriter writer, ExportacaoECFTipoPRC item) {
|
private void adicionarLinhaPRC(PrintWriter writer, ExportacaoECFTipoPRC item, BigDecimal total) {
|
||||||
String ufOrigem = item.getUfOrigem();
|
String ufOrigem = item.getUfOrigem();
|
||||||
String municipioOrigem = item.getMunicipioOrigem() == null ? null : item.getMunicipioOrigem().toString();
|
String municipioOrigem = item.getMunicipioOrigem() == null ? null : item.getMunicipioOrigem().toString();
|
||||||
BigDecimal valorTotal = item.getValorTotal();
|
BigDecimal valorTotal = item.getValorTotal();
|
||||||
|
@ -360,7 +368,7 @@ public class ExportacaoFiscal {
|
||||||
sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
|
sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
|
||||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||||
sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
|
sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
|
||||||
sb.append(formataValor(valorICMS, 15));
|
sb.append(formataValor(total, 15)); // sb.append(formataValor(valorICMS, 15));
|
||||||
|
|
||||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue