from impostos import ISS, ICMS


class Calculador_de_impostos(object):
    def realiza_calculo(self, orcamento, imposto):
        imposto_calculado = imposto.calcula(orcamento)
        print imposto_calculado


if __name__ == '__main__':
    from orcamento import Orcamento

    orcamento = Orcamento(500)

    calculador = Calculador_de_impostos()
    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())
Exemple #2
0
 def test_calcula_ICMS(self):
     icms = ICMS()
     self.assertEqual(icms.calcula(self.orcamento), 200 * 0.06)
Exemple #3
0
        imposto_calculado = imposto.calcula(orcamento)
        print(imposto_calculado)


if __name__ == '__main__':
    from orcamento import Orcamento, Item

    from impostos import ISS, ICMS, ICPP, IKCV

    orcamento = Orcamento()
    # adicionando itens ao orçamento
    orcamento.adiciona_item(Item('ITEM 1', 50))
    orcamento.adiciona_item(Item('ITEM 2', 200))
    orcamento.adiciona_item(Item('ITEM 3', 250))

    calculador_de_impostos = Calculador_de_impostos()
    print('ISS e ICMS')
    calculador_de_impostos.realiza_calculo(orcamento, ISS())
    calculador_de_impostos.realiza_calculo(orcamento, ICMS())

    print('ISS com ICMS')
    calculador_de_impostos.realiza_calculo(orcamento, ISS(ICMS()))
    # cálculo dos novos impostos
    print('ICPP e IKCV')
    calculador_de_impostos.realiza_calculo(orcamento, ICPP())  # imprime 25.0
    calculador_de_impostos.realiza_calculo(orcamento, IKCV())  # imprime 30.0

    print('ICPP com IKCV')
    calculador_de_impostos.realiza_calculo(orcamento,
                                           ICPP(IKCV()))  # imprime 25.0
# -*- coding: UTF-8 -*-
# calculador_de_impostos.py

class Calculador_de_impostos(object):

    def realiza_calculo(self, orcamento, calcula_imposto):
        valor = calcula_imposto(orcamento)
        print(valor)

if (__name__ == '__main__'):
    from orcamento import Orcamento
    from impostos import ISS, ICMS

    orcamento = Orcamento(500.0)
    calculador_de_impostos = Calculador_de_impostos()
    calculador_de_impostos.realiza_calculo(orcamento, ICMS().calcula_ICMS) # imprime 50.0
    calculador_de_impostos.realiza_calculo(orcamento, ISS().calcula_ISS)  # imprime 30.0
Exemple #5
0

if __name__ == '__main__':
    from orcamento import Orcamento, Item
    from impostos import IKCV, ICPP, ISS, ICMS

    calculador = Calculador_de_impostos()

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('ITEM 1', 50))
    orcamento.adiciona_item(Item('ITEM 2', 200))
    orcamento.adiciona_item(Item('ITEM 3', 250))

    print 'ISS e ICMS'
    calculador.realiza_calculo(orcamento, ISS())  # imprime 30.0
    calculador.realiza_calculo(orcamento, ICMS())  # imprime 50.0

    print 'ISS_com_ICMS'
    # veja, não é necessária mais uma classe. Imposto recebe outro em seu construtor
    ISS_com_ICMS = ISS(ICMS())
    calculador.realiza_calculo(orcamento, ISS_com_ICMS)  # imprime 80

    print 'ICPP e IKCV'
    calculador.realiza_calculo(orcamento, ICPP())  # imprime 25.0
    calculador.realiza_calculo(orcamento, IKCV())  # imprime 30.0

    print 'ICPP_com_IKCV'
    # veja, não é necessária mais uma classe. Imposto recebe outro em seu construtor
    #ICPP_com_IKCV = ICPP(IKVC())
    #calculador.realiza_calculo(orcamento, ICPP_com_IKVC) # imprime 55.0
'''
if __name__ == '__main__':

    from orcamento import Orcamento, Item
    from impostos import ICMS, ISS, IKCV, ICPP

    orcamento = Orcamento()

    orcamento.adiciona_item(Item('Item 1', 20))
    orcamento.adiciona_item(Item('Item 2', 20))
    orcamento.adiciona_item(Item('Item 3', 20))
    orcamento.adiciona_item(Item('Item 4', 20))
    orcamento.adiciona_item(Item('Item 5', 200))

    calculador_de_impostos = Calculador_de_impostos()
    
    print 'ICMS seguido de ISS:'
    calculador_de_impostos.realiza_calculo(orcamento, ICMS())
    calculador_de_impostos.realiza_calculo(orcamento, ISS())
    
    print '\nICMS com ISS:'
    ISS_com_ICMS = ISS(ICMS())
    calculador_de_impostos.realiza_calculo(orcamento, ISS_com_ICMS)

    print '\nICPP seguido de IKCV:'
    calculador_de_impostos.realiza_calculo(orcamento, ICPP())
    calculador_de_impostos.realiza_calculo(orcamento, IKCV())

    print '\nICPP com IKCV:'
    calculador_de_impostos.realiza_calculo(orcamento, ICPP(IKCV()))

Exemple #7
0
# -*- coding: UTF-8 -*-
'''
Created on Oct 21, 2016
@author: tca85
'''

from calculador_de_impostos import Calculador_de_impostos

# -----------------------------------------------------------------------------------------
if __name__ == '__main__':
    from orcamento import Orcamento, Item
    from impostos import ICMS, ISS, ICPP, IKCV

    orcamento = Orcamento()

    orcamento.adiciona_item(Item('Item 1', 500.0))

    imposto = Calculador_de_impostos()

    print 'ISS  %f' % (imposto.realiza_calculo(orcamento, ISS()))
    print 'ICMS %f' % (imposto.realiza_calculo(orcamento, ICMS()))
    print 'ISS com ICMS %f' % (imposto.realiza_calculo(orcamento, ISS(ICMS())))

    print 'ICPP  %f' % (imposto.realiza_calculo(orcamento, ICPP()))
    print 'IKCV  %f' % (imposto.realiza_calculo(orcamento, IKCV()))
    print 'ICPP com IKCV %f' % (imposto.realiza_calculo(
        orcamento, ICPP(IKCV())))
Exemple #8
0
 def test_realiza_calculo_IKCV_com_ICMS(self):
     valor = self.calculador_de_impostos.realiza_calculo(
         self.orcamento, IKCV(ICMS()))
     self.assertEqual(valor, 88)
        print(valor)


if __name__ == '__main__':
    from Orcamento import Orcamento
    from Item import Item

    # adicionado os impostos no import
    from impostos import ISS, ICMS, ICPP, IKCV

    orcamento = Orcamento()
    # adicionando itens ao orçamento
    orcamento.adiciona_item(Item('ITEM 1', 50))
    orcamento.adiciona_item(Item('ITEM 2', 200))
    orcamento.adiciona_item(Item('ITEM 3', 250))

    calculador_de_impostos = Calculador_de_impostos()
    print('ISS e ICMS')
    calculador_de_impostos.realiza_calculo(orcamento, ISS())    #imprime 50.0
    calculador_de_impostos.realiza_calculo(orcamento, ICMS())   #imprime 30.0
    print('ISS com ICMS')
    calculador_de_impostos.realiza_calculo(orcamento, ICMS(ISS()))  # imprime 80.0
    calculador_de_impostos.realiza_calculo(orcamento, ISS(ICMS()))  # imprime 80.0

    # cálculo dos novos impostos
    print('ICPP e IKCV')
    calculador_de_impostos.realiza_calculo(orcamento, ICPP())  # imprime 25.0
    calculador_de_impostos.realiza_calculo(orcamento, IKCV())  # imprime 30.0
    print('ICPP com IKCV')
    calculador_de_impostos.realiza_calculo(orcamento, IKCV(ICPP()))  # imprime 55.0
    calculador_de_impostos.realiza_calculo(orcamento, ICPP(IKCV()))  # imprime 55.0
Exemple #10
0
from calculador import CalculadorDeImpostos, CalculadorDeDescontos
from orcarmento import Orcamento, Item
from impostos import ISS, ICMS, ICMP, IJM

orcamento = Orcamento()

orcamento.adiciona_item(Item('Item 1', 100))
orcamento.adiciona_item(Item('Item 2', 500))


calculadorDeImpostos = CalculadorDeImpostos()
calculadorDeDescontos = CalculadorDeDescontos()

print("ICM")
calculadorDeImpostos.realiza_calculo(orcamento, ISS())
print("ICMS")
calculadorDeImpostos.realiza_calculo(orcamento, ICMS())

print("ICMP")
calculadorDeImpostos.realiza_calculo(orcamento, ICMP())
print("IJM")
calculadorDeImpostos.realiza_calculo(orcamento, IJM())

# -*- coding: UTF-8 -*-


class Calculador_de_impostos(object):
    """Classe calculadora de impostos responsável pela montagem do cálculo de
        impostos com base no padrão strategy.
    """
    def calcula_imposto(self, orcamento, imposto):
        return imposto.calcula(orcamento)


if __name__ == "__main__":
    from orcamento import Orcamento
    from impostos import ICMS, ISS

    valor_do_orcamento = Orcamento(100)
    calculadora = Calculador_de_impostos()

    print(calculadora.calcula_imposto(valor_do_orcamento, ICMS()))
    print(calculadora.calcula_imposto(valor_do_orcamento, ISS()))
        # elif imposto == 'ICMS':
        #     imposto_calculado = calcula_ICMS(orcamento)

        imposto_calculado = imposto.calcula(orcamento)

        print(imposto_calculado)


if __name__ == "__main__":
    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    calculador = Calulador_de_impostos()
    orcamento.adiciona_item(Item('Item A', 100.0))
    orcamento.adiciona_item(Item('Item B', 50.0))
    orcamento.adiciona_item(Item('Item C', 400.0))

    print("ISS e ICMC")
    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())
    print("Impostos combinados")
    calculador.realiza_calculo(orcamento, ISS(ICMS()))

    print("ICPP e ICKV")
    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, ICKV())
    print("Impostos combinados")
    calculador.realiza_calculo(orcamento, ISS(ICKV()))

    print("Impostos combinados -- todas as comb")
    calculador.realiza_calculo(orcamento, ISS(ICPP(ICKV(ICMS()))))
Exemple #13
0
# -*- coding: UTF-8 -*-

from impostos import ISS, ICMS


class Calculador_de_impostos(object):
    def realiza_calculo(self, orcamento, imposto):
        return imposto.calcula(orcamento)


if __name__ == '__main__':
    from orcamento import Orcamento

    calculador = Calculador_de_impostos()

    orcamento = Orcamento(500)

    print('Valor ISS {}'.format(calculador.realiza_calculo(orcamento, ISS())))
    print('Valor ICMSS {}'.format(calculador.realiza_calculo(
        orcamento, ICMS())))
Exemple #14
0
# -*- coding: utf-8 -*-
from impostos import ISS, ICMS, ICPP, IKCV
from orcamento import Item

class Calculador_de_impostos(object):
    
    def realiza_calculo(self, orcamento, imposto):
        imposto_calculado = imposto.calcula(orcamento)           
        print imposto_calculado
        
if __name__ == '__main__':
    from orcamento import Orcamento

    calculador = Calculador_de_impostos()

    orcamento = Orcamento()
    orcamento.adiciona_item(Item("pasta de dentes", 100))
    
    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())
    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, IKCV())

    #Calculo imposto composto IKCV + ISS
    calculador.realiza_calculo(orcamento, IKCV(ISS(ICMS())))