示例#1
0
        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);
        }
示例#2
0
        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);
        }