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
Example #2
0
        imposto_calculado = imposto.calcula(orcamento)

        print(imposto_calculado)


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    orcamento = Orcamento()

    orcamento.adiciona_item(Item('item1', 50))
    orcamento.adiciona_item(Item('item2', 200))
    orcamento.adiciona_item(Item('item3', 250))

    calculador = Calculador_de_impostos()

    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())

    print('ISS e ICMS')

    calculador.realiza_calculo(orcamento, ISS(ICMS()))

    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, IKCV())

    print('ICPP e IKCV')

    calculador.realiza_calculo(orcamento, ICPP(IKCV()))
Example #3
0
 def test_realiza_calculo_ICPP(self):
     valor = self.calculador_de_impostos.realiza_calculo(
         self.orcamento, ICPP())
     self.assertEqual(valor, 38.5)
Example #4
0
    
    #novos imports
    from impostos import ISS, ICMS, ICPP, IKCV

    orcamento = Orcamento()

    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'
    # veja, não é necessária mais uma classe. Imposto recebe outro em seu construtor
    ISS_com_ICMS = ISS(ICMS())
    calculador_de_impostos.realiza_calculo(orcamento, ISS_com_ICMS) # imprime 80

    # 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'
    # veja, não é necessária mais uma classe. Imposto recebe outro em seu construtor
    ICPP_com_IKCV = ICPP(IKCV())
    calculador_de_impostos.realiza_calculo(orcamento, ICPP_com_IKCV) # imprime 55.0
        # 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()))))
Example #6
0
# -*- 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 IKCV, ICPP

    valor_do_orcamento = Orcamento(100)
    calculadora = Calculador_de_impostos()

    print(calculadora.calcula_imposto(valor_do_orcamento, IKCV()))
    print(calculadora.calcula_imposto(valor_do_orcamento, ICPP()))