private static CalculoImpostoViewModel ObterTotalImposto(NFeIcmsTot total) { var model = new CalculoImpostoViewModel { ValorAproximadoTributos = (double?)total.VTotTrib, BaseCalculoIcms = (double)total.VBc, ValorIcms = (double)total.VIcms, BaseCalculoIcmsSt = (double)total.VBcSt, ValorIcmsSt = (double)total.VSt, ValorTotalProdutos = (double?)total.VProd, ValorFrete = (double)total.VFrete, ValorSeguro = (double)total.VSeg, Desconto = (double)total.VDesc, ValorII = (double)total.VII, ValorIpi = (double)total.VIpi, ValorPis = (double)total.VPis, ValorCofins = (double)total.VCofins, OutrasDespesas = (double)total.VOutro, ValorTotalNota = (double)total.VNf, vFCPUFDest = (double?)total.VFcpUfDest, vICMSUFDest = (double?)total.VIcmsUfDest, vICMSUFRemet = (double?)total.VIcmsUfRemet }; return(model); }
public NFeTotal GetTotal(List <NFeDetalhe> produtos) { decimal totalItens = produtos.Where(p => p.Produto.IndTot == NFeIndTotal.ValorItemCompoeTotalNota).Sum(p => p.Produto.VProd); decimal totalDesconto = produtos.Where(p => p.Produto.IndTot == NFeIndTotal.ValorItemCompoeTotalNota).Sum(p => p.Produto.VDesc); decimal totalOutros = produtos.Where(p => p.Produto.IndTot == NFeIndTotal.ValorItemCompoeTotalNota).Sum(e => e.Produto.VOutro); decimal totalTrib = produtos.Where(p => p.Produto.IndTot == NFeIndTotal.ValorItemCompoeTotalNota).Sum(p => p.Imposto.VTotTrib); //Totalizadores de impostos deverão vir da camada de dados do sistema decimal ValorFCPST = 0; decimal ValorIcmsST = 0; decimal ValorIPI = 0; decimal ValorFrete = 0; decimal ValorOutro = 0; decimal ValorSeguro = 0; decimal ValorPIS = 0; decimal ValorCOFINS = 0; decimal ValorFCP = 0; decimal ValorFCPSTRet = 0; var icmsTot = new NFeIcmsTot { VBcSt = 0, VSt = 0, VBc = 0, VIcms = 0, VProd = 100, VNf = totalItens - totalDesconto + ValorFCPST + ValorIcmsST + ValorIPI + ValorFrete + ValorOutro + ValorSeguro, VDesc = totalDesconto, VTotTrib = totalTrib, VPis = ValorPIS, VCofins = ValorCOFINS, VIpi = ValorIPI, VSeg = ValorSeguro, VOutro = ValorOutro, VFcp = ValorFCP, VFcpSt = ValorFCPST, VFcpStRet = ValorFCPSTRet, VIpiDevol = 0, VFrete = ValorFrete, }; icmsTot.VIcmsDeson = 0; var total = new NFeTotal { IcmsTot = icmsTot }; return(total); }