コード例 #1
0
"""

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)
コード例 #2
0
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())
コード例 #3
0
 def setUp(self):
     self.item = Item('bolsa', 200)
     self.orcamento = Orcamento()
     self.orcamento.adiciona_item(self.item)
コード例 #4
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
コード例 #5
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())))
コード例 #6
0
 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()
コード例 #7
0
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)