""" from item import Item from orcamento import Orcamento def ISS(orcamento): return ISS.__name__, orcamento.valor * 0.1 def ICMS(orcamento): return ICMS.__name__, orcamento.valor * 0.06 class CalculadoraDeImpostos(object): def realiza_calculo(self, orcamento, calcula_imposto): descricao, valor = calcula_imposto(orcamento) print(descricao, valor, '%') if __name__ == '__main__': calculador = CalculadoraDeImpostos() orcamento = Orcamento() orcamento.adiciona_item(Item('ITEM 1', 50)) orcamento.adiciona_item(Item('ITEM 2', 100)) calculador.realiza_calculo(orcamento, ISS) calculador.realiza_calculo(orcamento, ICMS)
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())
def setUp(self): self.item = Item('bolsa', 200) self.orcamento = Orcamento() self.orcamento.adiciona_item(self.item)
# -*- 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
# -*- 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(IKCV())))
def setUp(self): self.orcamento = Orcamento() self.orcamento.adiciona_item(Item('Item A', 100.0)) self.orcamento.adiciona_item(Item('Item B', 50.0)) self.orcamento.adiciona_item(Item('Item C', 400.0)) self.calculador_de_impostos = CalculadorDeImpostos()
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Desconto_por_peso, Sem_desconto from orcamento import Orcamento, Item class Calculador_de_descontos(): def calcula(self, orcamento): desconto = Desconto_por_cinco_itens( Desconto_por_mais_de_quinhentos_reais( Desconto_por_peso(Sem_desconto))).calcula(orcamento) return desconto orcamento3 = Orcamento() orcamento3.adciona_item(Item('PlayStation', 1830, 50)) orcamento3.adciona_item(Item('XboxOne', 2030, 30)) orcamento3.adciona_item(Item('NintendoWiiU', 2330, 40)) orcamento3.adciona_item(Item('NintendoWiiU', 2330, 40)) orcamento3.adciona_item(Item('NintendoWiiU', 2330, 40)) orcamento3.adciona_item(Item('NintendoWiiU', 2330, 40)) print(orcamento3.total_item()) print(orcamento3.obter_itens) calculados = Calculador_de_descontos() descontos_calculado3 = calculados.calcula(orcamento3.valor) print(descontos_calculado3)