コード例 #1
0
ファイル: ICMS10.cs プロジェクト: domicioam/NFeFacilLegacy
        public ICMS10(int origem, string cst, int modBC, double pICMS,
                      int modBCST, string pMVAST, string pRedBCST, double pICMSST, DetalhesProdutos prod) : base(origem, cst, false)
        {
            var vBC   = CalcularBC(prod);
            var vICMS = vBC * pICMS / 100;

            bool usarpMVAST   = TryParse(pMVAST, out double pMVASTd);
            bool usarpRedBCST = TryParse(pRedBCST, out double pRedBCSTd);
            var  vBCST        = (vBC + ObterIPI(prod)) * (100 + pMVASTd) / 100;

            vBCST *= 1 - (pRedBCSTd / 100);

            var vICMSST = (vBCST * pICMSST / 100) - vICMS;

            this.modBC = modBC.ToString();
            this.vBC   = ToStr(vBC);
            this.pICMS = ToStr(pICMS, "F4");
            this.vICMS = ToStr(vICMS);

            this.modBCST  = modBCST.ToString();
            this.pMVAST   = usarpMVAST ? ToStr(pMVASTd, "F4") : null;
            this.pRedBCST = usarpRedBCST ? ToStr(pRedBCSTd, "F4") : null;
            this.vBCST    = ToStr(vBCST);
            this.pICMSST  = ToStr(pICMSST, "F4");
            this.vICMSST  = ToStr(vICMSST);
        }
コード例 #2
0
 public DadosAdicaoProduto(ProdutoDI auxiliar)
 {
     Completo = new DetalhesProdutos
     {
         Produto = auxiliar.ToProdutoOuServico()
     };
     Auxiliar       = auxiliar;
     ImpostosPadrao = Auxiliar.GetImpostosPadrao();
 }
コード例 #3
0
ファイル: ICMS00.cs プロジェクト: domicioam/NFeFacilLegacy
        public ICMS00(int origem, string cst, int modBC, double pICMS, DetalhesProdutos prod) : base(origem, cst, false)
        {
            var vBC   = CalcularBC(prod);
            var vICMS = vBC * pICMS / 100;

            this.modBC = modBC.ToString();
            this.vBC   = ToStr(vBC);
            this.pICMS = ToStr(pICMS, "F4");
            this.vICMS = ToStr(vICMS);
        }
コード例 #4
0
ファイル: Tipo51.cs プロジェクト: domicioam/NFeFacilLegacy
 public override object Processar(DetalhesProdutos prod)
 {
     if (Calcular)
     {
         return(new ICMS51(Origem, CST, modBC, pICMS, pRedBC, pDif, prod));
     }
     else
     {
         return(new ICMS51(Origem, CST));
     }
 }
コード例 #5
0
        public IImposto[] Processar(DetalhesProdutos prod)
        {
            var resultado = new DadosNT
            {
                CST        = Detalhamento.CST.ToString("00"),
                PreImposto = Conjunto
            }.Processar(prod.Produto);

            return(new IImposto[1] {
                (IPI)resultado
            });
        }
コード例 #6
0
 public IImposto[] Processar(DetalhesProdutos prod)
 {
     return(new IImposto[1] {
         new ICMS
         {
             Corpo = (ComumICMS) new DadosSN.TipoNT
             {
                 CSOSN = CSOSN,
                 Origem = Origem
             }.Processar(prod)
         }
     });
 }
コード例 #7
0
ファイル: BaseRN.cs プロジェクト: domicioam/NFeFacilLegacy
        protected double ObterIPI(DetalhesProdutos detalhes)
        {
            var impCriados = detalhes.Impostos.impostos;

            for (int i = 0; i < impCriados.Count; i++)
            {
                if (impCriados[i] is IPI ipi && ipi.Corpo is IPITrib trib && !string.IsNullOrEmpty(trib.ValorIPI))
                {
                    return(Parse(trib.ValorIPI));
                }
            }
            return(0);
        }
コード例 #8
0
        public IImposto[] Processar(DetalhesProdutos prod)
        {
            var resultado = new DadosTrib()
            {
                CST         = Detalhamento.CST.ToString("00"),
                Valor       = ValorUnitario,
                PreImposto  = Conjunto,
                TipoCalculo = TiposCalculo.PorValor
            }.Processar(prod.Produto);

            return(new IImposto[1] {
                (IPI)resultado
            });
        }
コード例 #9
0
 public override object Processar(DetalhesProdutos prod)
 {
     if (CST == "40")
     {
         return(new ICMS40(Origem, CST, vICMSDeson, motDesICMS));
     }
     else if (CST == "41")
     {
         return(new ICMS41(Origem, CST, vICMSDeson, motDesICMS));
     }
     else
     {
         return(new ICMS50(Origem, CST, vICMSDeson, motDesICMS));
     }
 }
コード例 #10
0
        public IImposto[] Processar(DetalhesProdutos prod)
        {
            var dados = new DadosSN.Tipo201(this)
            {
                CSOSN  = Detalhamento.TipoICMSSN,
                Origem = Detalhamento.Origem
            };
            var imposto = new ICMS
            {
                Corpo = (ComumICMS)dados.Processar(prod)
            };

            return(new IImposto[1] {
                imposto
            });
        }
コード例 #11
0
        public IImposto[] Processar(DetalhesProdutos prod)
        {
            var dados = new DadosRN.Tipo90(this)
            {
                CST    = Detalhamento.TipoICMSRN.Substring(0, 2),
                Origem = Detalhamento.Origem
            };
            var imposto = new ICMS
            {
                Corpo = (ComumICMS)dados.Processar(prod)
            };

            return(new IImposto[1] {
                imposto
            });
        }
コード例 #12
0
        protected double CalcularBC(DetalhesProdutos detalhes)
        {
            var impCriados = detalhes.Impostos.impostos;
            var vIPI       = 0d;

            for (int i = 0; i < impCriados.Count; i++)
            {
                if (impCriados[i] is IPI ipi && ipi.Corpo is IPITrib trib)
                {
                    vIPI = Parse(trib.ValorIPI);
                }
            }

            return(detalhes.Produto.ValorTotal
                   + detalhes.Produto.Frete
                   + detalhes.Produto.Seguro
                   + detalhes.Produto.DespesasAcessorias
                   - detalhes.Produto.Desconto + vIPI);
        }
コード例 #13
0
ファイル: ICMS51.cs プロジェクト: domicioam/NFeFacilLegacy
        public ICMS51(int origem, string cst, int modBC, double pICMS,
                      double pRedBC, double pDif, DetalhesProdutos prod) : base(origem, cst, false)
        {
            var vBC = CalcularBC(prod);

            vBC *= 1 - (pRedBC / 100);
            var vICMSOp  = vBC * pICMS / 100;
            var vICMSDif = vBC * (100 - pDif) / 100;
            var vICMS    = vICMSOp - vICMSDif;

            this.modBC = modBC.ToString();
            this.vBC   = ToStr(vBC);
            this.pICMS = ToStr(pICMS, "F4");
            this.vICMS = ToStr(vICMS);

            this.pRedBC   = ToStr(pRedBC, "F4");
            this.vICMSOp  = ToStr(vICMSOp);
            this.pDif     = ToStr(pDif, "F4");
            this.vICMSDif = ToStr(vICMSDif);
        }
コード例 #14
0
        public IImposto[] Processar(DetalhesProdutos prod)
        {
            var resultado = new DadosAliq()
            {
                Aliquota = Aliquota,
                CST      = Detalhamento.CST.ToString("00")
            }.Processar(prod.Produto);

            if (resultado is IImposto[] list)
            {
                return(list);
            }
            else
            {
                return new IImposto[1] {
                           (COFINS)resultado
                }
            };
        }
    }
コード例 #15
0
        public IImposto[] Processar(DetalhesProdutos prod)
        {
            var resultado = new DadosQtde()
            {
                Valor = Valor,
                CST   = Detalhamento.CST.ToString("00")
            }.Processar(prod.Produto);

            if (resultado is IImposto[] list)
            {
                return(list);
            }
            else
            {
                return new IImposto[1] {
                           (PIS)resultado
                }
            };
        }
    }
コード例 #16
0
ファイル: ICMS20.cs プロジェクト: domicioam/NFeFacilLegacy
        public ICMS20(int origem, string cst, int modBC, double pICMS,
                      double pRedBC, string motDesICMS, DetalhesProdutos prod) : base(origem, cst, false)
        {
            var vBC             = CalcularBC(prod);
            var valorSemReducao = vBC * pICMS / 100;

            vBC *= 1 - (pRedBC / 100);
            var vICMS = vBC * pICMS / 100;

            var  vICMSDeson = valorSemReducao - vICMS;
            bool infDeson   = vICMSDeson > 0 && !string.IsNullOrEmpty(motDesICMS);

            this.modBC = modBC.ToString();
            this.vBC   = ToStr(vBC);
            this.pICMS = ToStr(pICMS, "F4");
            this.vICMS = ToStr(vICMS);

            this.pRedBC     = ToStr(pRedBC, "F4");
            this.vICMSDeson = infDeson ? ToStr(vICMSDeson) : null;
            this.motDesICMS = infDeson ? motDesICMS : null;
        }
コード例 #17
0
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMS60(Origem, CST, vBCSTRet, pST, vICMSSTRet));
 }
コード例 #18
0
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMS90(Origem, CST, modBC, vBC, pICMS, vICMS, modBCST, pMVAST, pRedBCST, vBCST, pICMSST, vICMSST, pRedBC, vICMSDeson, motDesICMS));
 }
コード例 #19
0
ファイル: ICMSSN202.cs プロジェクト: domicioam/NFeFacilLegacy
        public ICMSSN202(int origem, string csosn, int modBCST, string pMVAST, string pRedBCST, double pICMSST, DetalhesProdutos prod) : base(origem, csosn, true)
        {
            bool usarpMVAST   = TryParse(pMVAST, out double pMVASTd);
            bool usarpRedBCST = TryParse(pRedBCST, out double pRedBCSTd);
            var  vBCST        = CalcularBC(prod) * (100 + pMVASTd) / 100;

            vBCST *= 1 - (pRedBCSTd / 100);
            var vICMSST = vBCST * pICMSST / 100;

            this.modBCST  = modBCST.ToString();
            this.pMVAST   = usarpMVAST ? ToStr(pMVASTd, "F4") : null;
            this.pRedBCST = usarpRedBCST ? ToStr(pRedBCSTd, "F4") : null;
            this.vBCST    = ToStr(vBCST);
            this.pICMSST  = ToStr(pICMSST, "F4");
            this.vICMSST  = ToStr(vICMSST);
        }
コード例 #20
0
ファイル: Tipo0.cs プロジェクト: domicioam/NFeFacilLegacy
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMS00(Origem, CST, modBC, pICMS, prod));
 }
コード例 #21
0
        public ICMS30(int origem, string cst, int modBCST, string pMVAST, string pRedBCST, double pICMSST, string motDesICMS, DetalhesProdutos prod)
            : base(origem, cst, false)
        {
            bool usarpMVAST      = TryParse(pMVAST, out double pMVASTd);
            bool usarpRedBCST    = TryParse(pRedBCST, out double pRedBCSTd);
            var  vBCST           = (CalcularBC(prod) + ObterIPI(prod)) * (100 + pMVASTd) / 100;
            var  valorSemReducao = vBCST * pICMSST / 100;

            vBCST *= 1 - (pRedBCSTd / 100);
            var vICMSST = vBCST * pICMSST / 100;

            var  vICMSDeson = valorSemReducao - vICMSST;
            bool infDeson   = vICMSDeson > 0 && !string.IsNullOrEmpty(motDesICMS);

            this.modBCST    = modBCST.ToString();
            this.pMVAST     = usarpMVAST ? ToStr(pMVASTd, "F4") : null;
            this.pRedBCST   = usarpRedBCST ? ToStr(pRedBCSTd, "F4") : null;
            this.vBCST      = ToStr(vBCST);
            this.pICMSST    = ToStr(pICMSST, "F4");
            this.vICMSST    = ToStr(vICMSST);
            this.vICMSDeson = infDeson ? ToStr(vICMSDeson) : null;
            this.motDesICMS = infDeson ? motDesICMS : null;
        }
コード例 #22
0
ファイル: TipoPart.cs プロジェクト: domicioam/NFeFacilLegacy
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMSPart(Origem, "90", modBC, vBC, pICMS, vICMS, modBCST, pMVAST, pRedBCST, vBCST, pICMSST, vICMSST, pRedBC, pBCOp, UFST));
 }
コード例 #23
0
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMSST(Origem, "41", vBCSTRet, vICMSSTRet, vBCSTDest, vICMSSTDest));
 }
コード例 #24
0
 public DadosAdicaoProduto(ProdutoDI auxiliar, DetalhesProdutos completo)
 {
     Completo       = completo;
     Auxiliar       = auxiliar;
     ImpostosPadrao = Auxiliar.GetImpostosPadrao();
 }
コード例 #25
0
ファイル: BaseRN.cs プロジェクト: domicioam/NFeFacilLegacy
 protected double CalcularBC(DetalhesProdutos detalhes) => detalhes.Produto.ValorTotal
 + detalhes.Produto.Frete
 + detalhes.Produto.Seguro
 + detalhes.Produto.DespesasAcessorias
 - detalhes.Produto.Desconto;
コード例 #26
0
        public RoteiroAdicaoImpostos(IDetalhamentoImposto[] impostos, DetalhesProdutos prod)
        {
            Produto        = prod;
            Telas          = new UserControl[impostos.Length];
            Processamentos = new IProcessamentoImposto[impostos.Length];
            for (int i = 0; i < impostos.Length; i++)
            {
                var atual = impostos[i];
                if (atual is DetalhamentoCOFINS.Detalhamento cofins)
                {
                    switch (cofins.TipoCalculo)
                    {
                    case TiposCalculo.PorAliquota:
                        var aliq = new DetalhamentoCOFINS.DetalharAliquota(cofins);
                        Telas[i]          = aliq;
                        Processamentos[i] = aliq;
                        break;

                    case TiposCalculo.PorValor:
                        var qtde = new DetalhamentoCOFINS.DetalharQtde(cofins);
                        Telas[i]          = qtde;
                        Processamentos[i] = qtde;
                        break;

                    default:
                        Telas[i]          = null;
                        Processamentos[i] = new DetalhamentoCOFINS.DetalharVazio(cofins.CST);
                        break;
                    }
                }
                else if (atual is DetalhamentoPIS.Detalhamento pis)
                {
                    switch (pis.TipoCalculo)
                    {
                    case TiposCalculo.PorAliquota:
                        var aliq = new DetalhamentoPIS.DetalharAliquota(pis);
                        Telas[i]          = aliq;
                        Processamentos[i] = aliq;
                        break;

                    case TiposCalculo.PorValor:
                        var qtde = new DetalhamentoPIS.DetalharQtde(pis);
                        Telas[i]          = qtde;
                        Processamentos[i] = qtde;
                        break;

                    default:
                        Telas[i]          = null;
                        Processamentos[i] = new DetalhamentoPIS.DetalharVazio(pis.CST);
                        break;
                    }
                }
                else if (atual is DetalhamentoIPI.Detalhamento ipi)
                {
                    switch (ipi.TipoCalculo)
                    {
                    case TiposCalculo.PorAliquota:
                        var aliq = new DetalhamentoIPI.DetalharAliquota(ipi);
                        Telas[i]          = aliq;
                        Processamentos[i] = aliq;
                        break;

                    case TiposCalculo.PorValor:
                        var qtde = new DetalhamentoIPI.DetalharQtde(ipi);
                        Telas[i]          = qtde;
                        Processamentos[i] = qtde;
                        break;

                    case TiposCalculo.Inexistente:
                        var simp = new DetalhamentoIPI.DetalharSimples(ipi);
                        Telas[i]          = simp;
                        Processamentos[i] = simp;
                        break;
                    }
                }
                else if (atual is DetalhamentoICMSUFDest.Detalhamento icmsUFDest)
                {
                    var icms = new DetalhamentoICMSUFDest.Detalhar();
                    Telas[i]          = icms;
                    Processamentos[i] = icms;
                }
                else if (atual is DetalhamentoICMS.Detalhamento icms)
                {
                    var normal = DefinicoesTemporarias.EmitenteAtivo.RegimeTributario == 3;
                    if (normal)
                    {
                        var cst  = int.Parse(icms.TipoICMSRN);
                        var norm = AssociacoesICMS.GetRegimeNormal(cst, icms);
                        Telas[i]          = norm;
                        Processamentos[i] = (IProcessamentoImposto)norm;
                    }
                    else
                    {
                        var csosn = int.Parse(icms.TipoICMSSN);
                        var simp  = AssociacoesICMS.GetSimplesNacional(csosn, icms);
                        Telas[i]          = simp as UserControl;
                        Processamentos[i] = simp;
                    }
                }
                else if (atual is ImpostoArmazenado pronto)
                {
                    switch (pronto.Tipo)
                    {
                    case PrincipaisImpostos.ICMS:
                        Processamentos[i] = new DetalhamentoICMS.DetalharArmazenado((ICMSArmazenado)pronto);
                        break;

                    case PrincipaisImpostos.IPI:
                        Processamentos[i] = new DetalhamentoIPI.DetalharArmazenado((ImpSimplesArmazenado)pronto);
                        break;

                    case PrincipaisImpostos.PIS:
                        Processamentos[i] = new DetalhamentoPIS.DetalharArmazenado((ImpSimplesArmazenado)pronto);
                        break;

                    case PrincipaisImpostos.COFINS:
                        Processamentos[i] = new DetalhamentoCOFINS.DetalharArmazenado((ImpSimplesArmazenado)pronto);
                        break;
                    }
                }
            }
        }
コード例 #27
0
 public abstract object Processar(DetalhesProdutos prod);
コード例 #28
0
ファイル: Tipo202.cs プロジェクト: domicioam/NFeFacilLegacy
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMSSN202(Origem, CSOSN, modBCST, pMVAST, pRedBCST, pICMSST, prod));
 }
コード例 #29
0
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMS30(Origem, CST, modBCST, pMVAST, pRedBCST, pICMSST, motDesICMS, prod));
 }
コード例 #30
0
ファイル: TipoNT.cs プロジェクト: domicioam/NFeFacilLegacy
 public override object Processar(DetalhesProdutos prod)
 {
     return(new ICMSSN102(Origem, CSOSN));
 }