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 test_calcula_ICMS(self): icms = ICMS() self.assertEqual(icms.calcula(self.orcamento), 200 * 0.06)
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
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()))
# -*- 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())))
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
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()))))
# -*- 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())))
# -*- 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())))