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, Item 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()) calculador.realiza_calculo(orcamento,ICMS()) print('ISS com ICMS') calculador.realiza_calculo(orcamento,ISS(ICMS())) print('ICPP e IKCV') calculador.realiza_calculo(orcamento,ICPP()) calculador.realiza_calculo(orcamento,IKCV()) print('ICPP com IKCV') calculador.realiza_calculo(orcamento,ICPP(IKCV()))
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 ''' '''
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 -*- 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())))
# -*- 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())))
imposto_calculado = imposto.calcula(orcamento) print(imposto_calculado) if __name__ == '__main__': from orcamento import Orcamento, Item calculador = CalculadorDeImpostos() 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()) # passando método por parâmetro calculador.realiza_calculo(orcamento, ICMS()) print('ISS com ICMS') calculador.realiza_calculo(orcamento, ISS(ICMS())) print('ICPP e IKCV') calculador.realiza_calculo(orcamento, ICPP()) # passando método por parâmetro calculador.realiza_calculo(orcamento, IKCV()) print('ICPP com IKCV') calculador.realiza_calculo(orcamento, ICPP(IKCV()))
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()))
from impostos import ISS, ICMS, ICPP, IKCV class Calculador_de_imposto(object): def realiza_calculo(self, orcamento, strategy): imposto_caculado = strategy.calcula(orcamento) print(imposto_caculado) if __name__ == "__main__": from orcamento import Orcamento, Item orcamento = Orcamento() orcamento.adiciona_item(Item('Item a', 100.0)) orcamento.adiciona_item(Item('Item b', 50.0)) orcamento.adiciona_item(Item('Item c', 400.0)) calculo = Calculador_de_imposto() calculo.realiza_calculo(orcamento, ISS()) calculo.realiza_calculo(orcamento, ICMS()) print "ICPP IKCV" calculo.realiza_calculo(orcamento, ICPP()) calculo.realiza_calculo(orcamento, IKCV())
from impostos import ICMS, ISS, ICPP, IKCV class Calculador_de_impostos(object): def realize_calculo(self, orcamento, imposto): imposto_calculado = imposto.calcula(orcamento) print(imposto_calculado) if __name__ == '__main__': from orcamento import Orcamento, Item 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.realize_calculo(orcamento, ISS()) calculador.realize_calculo(orcamento, ICMS()) print("ICPP e IKCV") calculador.realize_calculo(orcamento, ICPP()) calculador.realize_calculo(orcamento, IKCV())
def test_realiza_calculo_ICPP(self): valor = self.calculador_de_impostos.realiza_calculo( self.orcamento, ICPP()) self.assertEqual(valor, 38.5)
# 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()))))
class Calculador_de_impostos(object): def realiza_calculo(self, orcamento, imposto): valor = imposto.calcula(orcamento) print(valor) if __name__ == '__main__': from orcamento import Orcamento, Item from impostos import ICMS, ISS, ICPP, IKCV orcamento = Orcamento() calculador_de_impostos = Calculador_de_impostos() orcamento.adiciona_item(Item('Item A', 50.0)) orcamento.adiciona_item(Item('Item B', 200.0)) orcamento.adiciona_item(Item('Item C', 250.0)) print('ICMS e ISS') calculador_de_impostos.realiza_calculo(orcamento, ICMS()) calculador_de_impostos.realiza_calculo(orcamento, ISS()) print('ISS com ICMS') ISS_com_ICMS = ISS(ICMS()) calculador_de_impostos.realiza_calculo(orcamento, ISS_com_ICMS) print('ICPP e IKCV') calculador_de_impostos.realiza_calculo(orcamento, ICPP()) calculador_de_impostos.realiza_calculo(orcamento, IKCV()) print('ICPP com IKCV') ICPP_com_IKCV = ICPP(IKCV()) calculador_de_impostos.realiza_calculo(orcamento, ICPP_com_IKCV)