예제 #1
0
        public override void Calcula(ITributavel tributavel)
        {
            var resultadoCalculoIcmsCredito = new FacadeCalculadoraTributacao(tributavel).CalculaIcmsCredito();

            PercentualCredito = tributavel.PercentualCredito;
            ValorCredito      = resultadoCalculoIcmsCredito.Valor;
        }
예제 #2
0
        public override void Calcula(ITributavel tributavel)
        {
            var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
            var ret    = facade.CalculaIcms();

            ValorIcmsDesonerado = ((ret.BaseCalculo) * ((tributavel.PercentualFcp + tributavel.PercentualIcms) / 100));
        }
예제 #3
0
        public override void Calcula(ITributavel tributavel)
        {
            base.Calcula(tributavel);

            PercentualReducao = tributavel.PercentualReducao;
            ValorBcFcp        = new FacadeCalculadoraTributacao(tributavel, TipoDesconto).CalculaFcp().BaseCalculo;
        }
예제 #4
0
        private void CalculaCredito(ITributavel tributavel)
        {
            PercentualCredito = tributavel.PercentualCredito;

            switch (tributavel.Documento)
            {
            case Documento.MFe:
            case Documento.SAT:
            case Documento.MDFe:
            case Documento.NFCe:
            case Documento.CTeOs:
            case Documento.NFe:
                var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
                var resultadoCalculaCredito = facade.CalculaIcmsCredito();
                ValorCredito = resultadoCalculaCredito.Valor;
                break;

            case Documento.CTe:
                var resultadoIcms = new FacadeCalculadoraTributacao(tributavel, TipoDesconto).CalculaIcms();
                ValorCredito = resultadoIcms.Valor * tributavel.PercentualCredito / 100;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #5
0
        public override void Calcula(ITributavel tributavel)
        {
            var result = new FacadeCalculadoraTributacao(tributavel, TipoDesconto).CalculaIcms();

            ValorBcIcms    = result.BaseCalculo;
            PercentualIcms = tributavel.PercentualIcms;
            ValorIcms      = result.Valor;
        }
예제 #6
0
        public override void Calcula(ITributavel tributavel)
        {
            CalculaIcms(tributavel);

            CalculaIcmsSt(tributavel);

            CalculaCredito(tributavel);
        }
예제 #7
0
        private void CalculaCredito(ITributavel tributavel)
        {
            PercentualCredito = tributavel.PercentualCredito;

            var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
            var resultadoCalculaCredito = facade.CalculaIcmsCredito();

            ValorCredito = resultadoCalculaCredito.Valor;
        }
예제 #8
0
        public static void TesteInterface(ITributavel conta)
        {
            var conta2 = conta;

            if (conta is IRecompensavel)
            {
                (conta as Conta).Recompensavel();
            }
        }
예제 #9
0
        private void CalculaFcpSt(ITributavel tributavel)
        {
            PercentualFcpSt = tributavel.PercentualFcpSt;

            var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);

            var resultadoCalculoFcpSt = facade.CalculaFcpSt();

            ValorBcFcpSt = resultadoCalculoFcpSt.BaseCalculoFcpSt;
            ValorFcpSt   = resultadoCalculoFcpSt.ValorFcpSt;
        }
예제 #10
0
        public override void Calcula(ITributavel tributavel)
        {
            var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
            var resultadoCalculoIcms = facade.CalculaIcmsSt();

            PercentualBcStRetido = tributavel.PercentualIcmsSt;
            ValorBcStRetido      = resultadoCalculoIcms.BaseCalculoIcmsSt;
            ValorIcmsStRetido    = resultadoCalculoIcms.ValorIcmsSt;

            ValorCreditoOutorgadoOuPresumido = facade.CalculaIcmsCredito().Valor;
        }
예제 #11
0
        public override void Calcula(ITributavel tributavel)
        {
            FacadeCalculadoraTributacao facadeCalculadoraTributacao = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
            IResultadoCalculoIcms       resultadoCalculoIcms        = facadeCalculadoraTributacao.CalculaIcms();
            IResultadoCalculoFcp        resultadoCalculoFcp         = facadeCalculadoraTributacao.CalculaFcp();

            ValorBcIcms    = resultadoCalculoIcms.BaseCalculo;
            PercentualIcms = tributavel.PercentualIcms;
            ValorIcms      = resultadoCalculoIcms.Valor;
            PercentualFcp  = tributavel.PercentualFcp;
            ValorFcp       = resultadoCalculoFcp.Valor;
        }
예제 #12
0
        public override void Calcula(ITributavel tributavel)
        {
            var result = new FacadeCalculadoraTributacao(tributavel, TipoDesconto).CalculaIcms();

            PercentualReducao     = tributavel.PercentualReducao;
            ValorBcIcms           = result.BaseCalculo;
            PercentualIcms        = tributavel.PercentualIcms;
            ValorIcmsOperacao     = (ValorBcIcms * PercentualIcms) / 100;
            PercentualDiferimento = tributavel.PercentualDiferimento;
            ValorIcmsDiferido     = (PercentualDiferimento * ValorIcmsOperacao) / 100;
            ValorIcms             = ValorIcmsOperacao - ValorIcmsDiferido;
        }
예제 #13
0
        private void CalculaIcms(ITributavel tributavel)
        {
            PercentualReducaoIcmsBc = tributavel.PercentualReducao;
            PercentualIcms          = tributavel.PercentualIcms;

            var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);

            tributavel.ValorIpi = facade.CalculaIpi().Valor;

            var resultadoCalculoIcms = facade.CalculaIcms();

            ValorBcIcms = resultadoCalculoIcms.BaseCalculo;
            ValorIcms   = resultadoCalculoIcms.Valor;
        }
예제 #14
0
        public override void Calcula(ITributavel tributavel)
        {
            PercentualMva       = tributavel.PercentualMva;
            PercentualReducaoSt = tributavel.PercentualReducaoSt;
            PercentualIcmsSt    = tributavel.PercentualIcmsSt;

            var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);

            tributavel.ValorIpi = facade.CalculaIpi().Valor;

            var resultadoCalculoCofins = facade.CalculaIcmsSt();

            ValorBcIcmsSt = resultadoCalculoCofins.BaseCalculoIcmsSt;
            ValorIcmsSt   = resultadoCalculoCofins.ValorIcmsSt;
        }
예제 #15
0
        private void CalculaIcmsSt(ITributavel tributavel)
        {
            PercentualMva       = tributavel.PercentualMva;
            PercentualReducaoSt = tributavel.PercentualReducaoSt;
            PercentualIcmsSt    = tributavel.PercentualIcmsSt;

            var facade = new FacadeCalculadoraTributacao(tributavel);

            tributavel.ValorIpi = facade.CalculaIpi().Valor;

            var resultadoCalculoIcmsSt = facade.CalculaIcmsSt();

            ValorBcIcmsSt = resultadoCalculoIcmsSt.BaseCalculoIcmsSt;
            ValorIcmsSt   = resultadoCalculoIcmsSt.ValorIcmsSt;
        }
        private void btnCalcularImposto_Click(object sender, EventArgs e)
        {
            Conta contaSelecionada = (Conta)cBoxEscolheConta.SelectedItem;


            if (contaSelecionada is ITributavel)
            {
                ITributavel t = (ITributavel)contaSelecionada;
                textoImposto.Text = Convert.ToString(t.CalcularTributos());
            }
            else
            {
                textoImposto.Clear();
                MessageBox.Show("Essa conta nao e tributavel");
            }
        }
예제 #17
0
파일: Form1.cs 프로젝트: biafarah/Git
        private void buttonImpostos_Click(object sender, EventArgs e)
        {
            ContaCorrente conta = new ContaCorrente();

            conta.Deposita(200.0);
            MessageBox.Show("Imposto da conta corrente = " + conta.CalcularTributos());

            ITributavel t = conta;

            MessageBox.Show("Imposto da conta pela interface = " + t.CalcularTributos());

            SeguroDeVida sv = new SeguroDeVida();

            MessageBox.Show("imposto seguro de vida = " + sv.CalcularTributos());

            t = sv;
            MessageBox.Show("imposto do seguro pela interface = " + t.CalcularTributos());
        }
예제 #18
0
        } // fim botaoNovaConta_Click

        /// <summary>
        /// Método executado quando o botão impostos é clicado.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void botaoImpostos_Click(object sender, EventArgs e)
        {
            var c1 = new ContaCorrente();
            c1.Deposita(100);

            MessageBox.Show("Imposto da conta corrente = " + c1.CalculaTributos());
            ITributavel t = c1;
            MessageBox.Show("Imposto da conta pela interface = " + t.CalculaTributos());
            SeguroDeVida sv = new SeguroDeVida();
            MessageBox.Show("Imposto do seguro de vida = " + sv.CalculaTributos());
            t = sv;
            MessageBox.Show("Imposto do segudo de vida pela interface = " + t.CalculaTributos());
            TotalizadorDeTributos tdc = new TotalizadorDeTributos();
            tdc.Adiciona(c1);
            MessageBox.Show("Total: " + tdc.Total);
            tdc.Adiciona(t);
            MessageBox.Show("Total: " + tdc.Total);
            
        } // fim  botaoImpostos_Click
예제 #19
0
        public override void Calcula(ITributavel tributavel)
        {
            FacadeCalculadoraTributacao facadeCalculadoraTributacao = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);

            IResultadoCalculoIcms resultadoCalculoIcms = facadeCalculadoraTributacao.CalculaIcms();

            PercentualReducao     = tributavel.PercentualReducao;
            ValorBcIcms           = resultadoCalculoIcms.BaseCalculo;
            PercentualIcms        = tributavel.PercentualIcms;
            ValorIcmsOperacao     = (ValorBcIcms * PercentualIcms) / 100;
            PercentualDiferimento = tributavel.PercentualDiferimento;
            ValorIcmsDiferido     = (PercentualDiferimento * ValorIcmsOperacao) / 100;
            ValorIcms             = ValorIcmsOperacao - ValorIcmsDiferido;

            IResultadoCalculoFcp resultadoCalculoFcp = facadeCalculadoraTributacao.CalculaFcp();

            PercentualFcp = tributavel.PercentualFcp;
            ValorBcFcp    = resultadoCalculoFcp.BaseCalculo;
            ValorFcp      = resultadoCalculoFcp.Valor;
        }
예제 #20
0
        public override void Calcula(ITributavel tributavel)
        {
            PercentualMva       = tributavel.PercentualMva;
            PercentualReducaoSt = tributavel.PercentualReducaoSt;
            PercentualIcmsSt    = tributavel.PercentualIcmsSt;
            PercentualFcpSt     = tributavel.PercentualFcpSt;

            FacadeCalculadoraTributacao facadeCalculadoraTributacao = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);

            tributavel.ValorIpi = facadeCalculadoraTributacao.CalculaIpi().Valor;

            IResultadoCalculoIcmsSt resultadoCalculoIcmsSt = facadeCalculadoraTributacao.CalculaIcmsSt();

            ValorBcIcmsSt = resultadoCalculoIcmsSt.BaseCalculoIcmsSt;
            ValorIcmsSt   = resultadoCalculoIcmsSt.ValorIcmsSt;

            IResultadoCalculoFcpSt resultadoCalculoFcpSt = facadeCalculadoraTributacao.CalculaFcpSt();

            ValorBcFcpSt = resultadoCalculoFcpSt.BaseCalculoFcpSt;
            ValorFcpSt   = resultadoCalculoFcpSt.ValorFcpSt;
        }
예제 #21
0
        } // fim botaoNovaConta_Click

        /// <summary>
        /// Método executado quando o botão impostos é clicado.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void botaoImpostos_Click(object sender, EventArgs e)
        {
            // Instancia e deposita um valor na conta
            ContaCorrente c1 = new ContaCorrente();
            c1.Deposita(100);

            // Exibe o calculo dos tributos da conta
            MessageBox.Show("Imposto da conta corrente = " + c1.CalculaTributos());

            // Mostrando que o polimorfismo também funciona com interfaces
            ITributavel t = c1;

            // Exibindo o mesmo resultado do imposto que fizemos pela classe. Em ambos os casos, é o mesmo método executado.
            MessageBox.Show("Imposto da conta pela interface = " + t.CalculaTributos());

            // Criando um seguro de vida
            SeguroDeVida sv = new SeguroDeVida();
            
            // Exibindo o imposto do seguro de vida
            MessageBox.Show("Imposto do seguro de vida = " + sv.CalculaTributos());

            // Polimorfismo de novo...
            t = sv;

            // Exibindo o mesmo resultado novamente.
            MessageBox.Show("Imposto do segudo de vida pela interface = " + t.CalculaTributos());

            // Criando uma instância do totalizador para praticar o polimorfismo
            TotalizadorDeTributos tdc = new TotalizadorDeTributos();

            // Adicionando a conta ao cálculo de tributos no totalizador
            tdc.Adiciona(c1);
            MessageBox.Show("Total: " + tdc.Total);

            // Adicionando a conta ao cálculo de tributos no totalizador
            tdc.Adiciona(t);
            MessageBox.Show("Total: " + tdc.Total);


        } // fim  botaoImpostos_Click
 public TributacaoCofins(ITributavel tributavel, TipoDesconto tipoDesconto)
 {
     _tributavel = tributavel ?? throw new ArgumentNullException(nameof(tributavel));
     _calculaBaseCalculoCofins = new CalculaBaseCalculoCofins(_tributavel, tipoDesconto);
 }
 public CalculaBaseCalculoIpi(ITributavel tributavel, TipoDesconto tipoDesconto) : base(tributavel)
 {
     _tributavel   = tributavel;
     _tipoDesconto = tipoDesconto;
 }
 public void Acumula(ITributavel t)
 {
     Total += t.CalculaTributo();
 }
예제 #25
0
 public TributacaoIcmsSt(ITributavel tributavel, TipoDesconto tipoDesconto)
 {
     _tributavel = tributavel ?? throw new ArgumentNullException(nameof(tributavel));
     _calculaBaseCalculoIcmsSemIpi = new CalculoBaseIcmsSemIpi(_tributavel, tipoDesconto);
     _baseIcmsSt = new CalculoBaseIcmsSt(_tributavel, tipoDesconto);
 }
예제 #26
0
 public TributacaoIbpt(ITributavel tributavel, IIbpt ibpt)
 {
     _tributavel = tributavel;
     _ibpt       = ibpt;
 }
예제 #27
0
 /// <summary>
 /// Adiciona o valor de tributo de uma referência tributável ao valor total.
 /// </summary>
 /// <param name="t">Referencia para um objeto tributável</param>
 public void Adiciona(ITributavel t)
 {
     this.Total += t.CalculaTributos();
 } // fim Adiciona
 public void Acumula(ITributavel t)
 {
     Total += t.CalculaTributo();
 }
예제 #29
0
 public ResultadoTributacao(ITributavel produtoTributavel, Crt crtEmpresa, TipoContribuinte tipoContribuinte)
 {
     _produtoTributavel = produtoTributavel;
     CrtEmpresa         = crtEmpresa;
     TipoContribuinte   = tipoContribuinte;
 }
 public void Acumula(ITributavel ct)  //Vai passar aqui a conta que é tributavel
 {
     this.Total += ct.CalculaTributo();
 }
 public void Adiciona(ITributavel tributavel)
 {
     this.Total += tributavel.CalculaTributos();
 }
예제 #32
0
 public void Adiciona(ITributavel tributavel)
 {
     this.Total += tributavel.CalculaTributo();
 }
 public void Adiciona(ITributavel tributavel)
 {
     Total += tributavel.CalculaTributo();
 }