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
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()))
def test_realiza_calculo_ICPP(self): valor = self.calculador_de_impostos.realiza_calculo( self.orcamento, ICPP()) self.assertEqual(valor, 38.5)
#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()))))
# -*- 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()))