Exemplo n.º 1
0
class TestISS(unittest.TestCase):
    def setUp(self):
        self.item = Item('bolsa', 200)
        self.orcamento = Orcamento()
        self.orcamento.adiciona_item(self.item)

    def test_calcula_ISS(self):
        iss = ISS()
        self.assertEqual(iss.calcula(self.orcamento), 200 * 0.1)

    def test_calcula_ICMS(self):
        icms = ICMS()
        self.assertEqual(icms.calcula(self.orcamento), 200 * 0.06)
Exemplo n.º 2
0
class CalculadorDeImpostosTestCase(unittest.TestCase):
    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()

    def test_realiza_calculo_ICMS(self):
        valor = self.calculador_de_impostos.realiza_calculo(
            self.orcamento, ICMS())
        self.assertEqual(valor, 33.0)

    def test_realiza_calculo_ISS(self):
        valor = self.calculador_de_impostos.realiza_calculo(
            self.orcamento, ISS())
        self.assertEqual(valor, 105.0)

    def test_realiza_calculo_ICPP(self):
        valor = self.calculador_de_impostos.realiza_calculo(
            self.orcamento, ICPP())
        self.assertEqual(valor, 38.5)

    def test_realiza_calculo_IKCV(self):
        valor = self.calculador_de_impostos.realiza_calculo(
            self.orcamento, IKCV())
        self.assertEqual(valor, 55)

    def test_realiza_calculo_IKCV_com_ICMS(self):
        valor = self.calculador_de_impostos.realiza_calculo(
            self.orcamento, IKCV(ICMS()))
        self.assertEqual(valor, 88)
Exemplo n.º 3
0
def main():

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Item 01', 100))
    orcamento.adiciona_item(Item('Item 02', 50))
    orcamento.adiciona_item(Item('Item 03', 400))

    print("Orcamento total - em aprovacao")
    print(orcamento.total)
    print("\nAplicou desconto")
    orcamento.aplica_desconto_extra()
    print(orcamento.total)
    orcamento.aprova()
    print("\nOrcamento aprovado \n\nAplicou novo desconto")
    orcamento.aplica_desconto_extra()
    print(orcamento.total)
    print("\nOrcamento finalizado")
    orcamento.finaliza()
Exemplo n.º 4
0
def main():
    """
    Alterar o comportamento de um determinado objeto de acordo com o
    estado no qual ele se encontra, por exemplo, no jogo do mario, ao pegar
    um cogumelo o estado interno do personagem muda e vira um mario grande,
    e ao pegar uma peninha ele aprende a voar, mudando o estado interno
    do personagem.
    """

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Item 01', 100))
    orcamento.adiciona_item(Item('Item 02', 50))
    orcamento.adiciona_item(Item('Item 03', 400))

    print(orcamento.total)
    orcamento.aplica_desconto_extra()
    print(orcamento.total)
    orcamento.aprova()
    orcamento.aplica_desconto_extra()
    print(orcamento.total)
    orcamento.finaliza()
Exemplo n.º 5
0
# -*- 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())))
from imposto import ISS, ICMS, ICPP, IKCV
from orcamento import Orcamento, Item


class Calculador_Imposto(object):
    def __init__(self, orcamento, imposto):
        self.__calculado = imposto.calcula(orcamento)

    @property
    def imposto_calculado(self):
        return self.__calculado


if __name__ == '__main__':
    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))

    print 'ISS e ICMS'
    iss = Calculador_Imposto(orcamento, ISS())
    icms = Calculador_Imposto(orcamento, ICMS())

    print '%s\n%s' % (iss.imposto_calculado, icms.imposto_calculado)

    print 'ICPP e IKCV'
    icpp = Calculador_Imposto(orcamento, ICPP())
    ikcv = Calculador_Imposto(orcamento, IKCV())

    print '%s\n%s' % (icpp.imposto_calculado, ikcv.imposto_calculado)
e deixarmos um único método descobrir o que deve ser feito, quebramos essas 
responsabilidades em várias diferentes classes, e as unimos como uma corrente.
"""

from desconto import Desconto_por_cinco_itens, Desconto_por_mais_quinhentos_reais, Sem_desconto


class Calcula_descontos(object):
    def calcula(self, orcamento):

        desconto = Desconto_por_cinco_itens(
            Desconto_por_mais_quinhentos_reais(
                Sem_desconto())).calcula(orcamento)

        return desconto


if __name__ == "__main__":

    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('ITEM - 1', 100))
    orcamento.adiciona_item(Item('ITEM - 2', 50))
    orcamento.adiciona_item(Item('ITEM - 3', 500))
    orcamento.adiciona_item(Item('ITEM - 4', 400))

    calculador = Calcula_descontos()
    desconto = calculador.calcula(orcamento)

    print(f"Desconto calculado R$ {desconto}")
Exemplo n.º 8
0
# -*- 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())))
Exemplo n.º 9
0
from impostos import ICMS, ICPP, IKCV, ISS


class CalculadorImpostos:
    def realiza_calculo(self, orcamento, imposto):
        imposto_calculado = imposto.calcula(orcamento)
        print(imposto_calculado)


if __name__ == "__main__":

    from orcamento import Orcamento, Item

    orcamento = Orcamento()

    orcamento.adiciona_item(Item("item 0", 50.0))
    orcamento.adiciona_item(Item("item 1", 200.0))
    orcamento.adiciona_item(Item("item 2", 250.0))

    calculador = CalculadorImpostos()

    print("ISS e ICMS")
    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())

    print("ICPP e IKCV")
    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, IKCV())
Exemplo n.º 10
0
# -*- coding: UTF-8 -*-

from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sen_desconto


class Calculador_de_descontos(object):
    def calcula(self, orcamento):
        desconto = Desconto_por_cinco_itens(
            Desconto_por_mais_de_quinhentos_reais(
                Sen_desconto())).calcula(orcamento)
        return desconto


if __name__ == '__main__':
    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Item - 1', 100))
    orcamento.adiciona_item(Item('Item - 2', 50))
    orcamento.adiciona_item(Item('Item - 3', 100))

    calculador = Calculador_de_descontos()

    desconto = calculador.calcula(orcamento)

    print orcamento.valor
    print 'Desconto calculado %s' % (desconto)
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto


class Calculador_de_descontos(object):
    def calcula(self, orcamento):
        desconto = Desconto_por_cinco_itens(
            Desconto_por_mais_de_quinhentos_reais(
                Sem_desconto())).calcula(orcamento)

        return desconto


if __name__ == "__main__":

    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item("ITEM-1", 100))
    orcamento.adiciona_item(Item("ITEM-2", 50))
    orcamento.adiciona_item(Item("ITEM-3", 400))
    orcamento.adiciona_item(Item("ITEM-3", 00))
    orcamento.adiciona_item(Item("ITEM-3", 400))

    print(orcamento.valor)

    calculador = Calculador_de_descontos()

    desconto = calculador.calcula(orcamento)

    print('Desconto calculado %s' % desconto)
# -*- coding: UTF-8 -*-
# calculador_de_descontos.py
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhetos_reais, Sem_desconto

class Calculador_de_descontos(object):

    def calcula(self, orcamento):

        desconto = Desconto_por_cinco_itens(
            Desconto_por_mais_de_quinhentos_reais(
                Sem_desconto()
            )
        )

        return desconto.calcula(orcamento)

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))

    calculador_de_descontos = Calculador_de_descontos()
    desconto = calculador_de_descontos.calcula(orcamento)
    print 'Desconto calculado : %s' % (desconto)
Exemplo n.º 13
0
from descontos import Desconto_por_cinco_itens, Desconto_por_quinhentos_reais, Sem_desconto


class Calculador_de_descontos(object):
    def calcula(self, orcamento):
        desconto = Desconto_por_cinco_itens(
            Desconto_por_quinhentos_reais(Sem_desconto())).calcula(orcamento)
        return desconto


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Arroz', 150))
    orcamento.adiciona_item(Item('Feijão', 300))
    orcamento.adiciona_item(Item('Carne', 20))

    calculador = Calculador_de_descontos()
    desconto = calculador.calcula(orcamento)

    print '|----------------------------------------- |'
    print '|-- Bem vindo ao Supermercado do Rafael -- |'
    print '| ', (' ' * 39), '|'
    for itens in orcamento.obter_itens():
        print '|--', itens.nome, (' ' * (37 - len(itens.nome))), ''
        print '|--------------- R$', itens.valor, (' ' * 19), ''
    print '| ', (' ' * 39), '|'
    print '|-- Total de itens ', (orcamento.total_itens), (' ' * 19), ' |'
    print '|-- Valor sem desconto R$ ', orcamento.valor, (' ' * 8), ' |'
Exemplo n.º 14
0
class Calculador_de_imposto(object):
    def calcula(self, orcamento, imposto):
        print(imposto.calcula(orcamento))


if __name__ == '__main__':

    from orcamento import Orcamento, Item
    from imposto import ICMS, ISS

    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_imposto = Calculador_de_imposto()

    print('ICSM e ISS')
    calculador_de_imposto.calcula(orcamento, ICMS())
    calculador_de_imposto.calcula(orcamento, ISS())

    print('ICSM com ISS')
    calculador_de_imposto.calcula(orcamento, ICMS(ISS()))
Exemplo n.º 15
0
# -*- coding: UTF-8 -*-

class Calculadora_de_descontos(object):
    """Classe responsável por montar a cadeia de responsabilidade de descontos"""

    @staticmethod
    def calcula_desconto(orcamento):
        """Função que monta a cadeia de responsabilidade"""
        desconto = Desconto_por_5_itens(Desconto_por_500_reais(Sem_desconto()))
        return desconto.calcula(orcamento)

if __name__ == '__main__':
    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item("Saco de Cimento", 75.00))
    orcamento.adiciona_item(Item("Torneira de pia", 125.00))
    orcamento.adiciona_item(Item("Azulejo da cozinha", 400.00))


    print("Orçamento com os valores de desconto iniciais")
    print(orcamento.valor)
    print(orcamento.valor_desconto)


    print("Aplicando desconto no orçamento!")
    orcamento.aplica_desconto()


    print("Imprimindo valores do desconto!")
    print(orcamento.valor_desconto)
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())

	calculador.realiza_calculo(orcamento, ISS(ICMS()))	

	print 'ICPP e IKCV'
	calculador.realiza_calculo(orcamento, ICPP())
	calculador.realiza_calculo(orcamento, IKCV())

	calculador.realiza_calculo(orcamento, ICPP(IKCV()))
# _*_ encoding: utf-8 _*_

from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto

class Calculador_de_descontos(object):

	def calcula(self, orcamento):
		# exemplo do design patter Chain of Responsability (cadeia de responsabilidades)
		desconto = Desconto_por_cinco_itens(
				Desconto_por_mais_de_quinhentos_reais(Sem_desconto())
			).calcula(orcamento)
		return desconto

# este trecho possibilita a execução de testes com esta classe
if __name__ == '__main__': 

	from orcamento import Orcamento, Item

	orcamento = Orcamento()
	orcamento.adiciona_item(Item('ITEM 01', 100))
	orcamento.adiciona_item(Item('ITEM 02', 50))
	orcamento.adiciona_item(Item('ITEM 03', 400))
	orcamento.adiciona_item(Item('ITEM 04', 400))
	orcamento.adiciona_item(Item('ITEM 05', 500))
	orcamento.adiciona_item(Item('ITEM 06', 40))

	print orcamento.valor

	calculador = Calculador_de_descontos()
	desconto = calculador.calcula(orcamento)
	print 'Desconto calculado %s' % (desconto)
Exemplo n.º 18
0
from desconto import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto


class Calculador_de_desconto(object):
    def calcula(self, orcamento):
        return Desconto_por_cinco_itens(
            Desconto_por_mais_de_quinhentos_reais(
                Sem_desconto())).calcula(orcamento)


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('ITEM_1', 100.0))
    orcamento.adiciona_item(Item('ITEM_2', 50.0))
    orcamento.adiciona_item(Item('ITEM_3', 400.0))
    orcamento.adiciona_item(Item('ITEM_4', 100.0))
    orcamento.adiciona_item(Item('ITEM_5', 100.0))
    orcamento.adiciona_item(Item('ITEM_6', 100.0))

    calculador_de_desconto = Calculador_de_desconto()
    desconto = calculador_de_desconto.calcula(orcamento)
    print(f'O desconto eh de: {desconto}')
Exemplo n.º 19
0
class Calculador_de_impostos(object):

        def realiza_calculo(self, orcamento, imposto):    
            imposto_calculado =imposto.calcula(orcamento)
            print(imposto_calculado)


if __name__ == '__main__':

    print()
    print('--CALCULADOR DE IMPOSTOS--')
    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('ITEM - 1', 10))
    orcamento.adiciona_item(Item('ITEM - 2', 10))
    orcamento.adiciona_item(Item('ITEM - 3', 10))
    orcamento.adiciona_item(Item('ITEM - 4', 10))    
    orcamento.adiciona_item(Item('ITEM - 5', 10))    
    orcamento.adiciona_item(Item('ITEM - 6', 50))

    calculador = Calculador_de_impostos()

    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())

    calculador.realiza_calculo(orcamento,  ISS(ICMS()))

    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, IKCV())
Exemplo n.º 20
0
class Calculador_de_impostos():
    def realiza_calculo(self, orcamento, imposto):

        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())
#../design-patterns-python/calculador_de_impostos.py

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, 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)
Exemplo n.º 22
0
# -*- coding: UTF-8 -*-
# calculador_de_descontos.py
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Desconto_por_cem_reais, Sem_desconto


class Calculador_de_descontos(object):
    def calcula(self, orcamento):

        desconto = Desconto_por_cinco_itens(
            Desconto_por_cem_reais(
                Desconto_por_mais_de_quinhentos_reais(
                    Sem_desconto()))).calcular(orcamento)

        return desconto


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Item A', 30.0))

    calculador_de_descontos = Calculador_de_descontos()
    desconto = calculador_de_descontos.calcula(orcamento)
    print 'Desconto calculado : %s' % (desconto)
Exemplo n.º 23
0
)


class CalculadorDescontos:
    def calcula(self, orcamento):
        return DescontoCincoItens(DescontoMaisDeQuinhentosReais(
            SemDesconto())).calcula(orcamento)


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    orcamento = Orcamento()

    orcamento.adiciona_item(Item('item 0', 100.0))
    orcamento.adiciona_item(Item('item 1', 100.0))
    orcamento.adiciona_item(Item('item 2', 100.0))
    orcamento.adiciona_item(Item('item 3', 100.0))
    orcamento.adiciona_item(Item('item 4', 100.0))
    orcamento.adiciona_item(Item('item 5', 100.0))
    orcamento.adiciona_item(Item('item 6', 100.0))
    orcamento.adiciona_item(Item('item 7', 100.0))
    orcamento.adiciona_item(Item('item 8', 100.0))
    orcamento.adiciona_item(Item('item 9', 100.0))

    print(orcamento.valor)

    calculator = CalculadorDescontos()

    desconto = calculator.calcula(orcamento)
from impostos import ISS, ICMS, IKCV, ICPP


class Calculador_de_impostos(object):
    def realiza_calculo(self, calculo, imposto):
        imposto_calculado = imposto.calcula(orcamento)
        print 'R$ ', imposto_calculado


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    calculador = Calculador_de_impostos()
    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Arroz', 30))
    orcamento.adiciona_item(Item('Feijao', 59))
    orcamento.adiciona_item(Item('Carne', 350))
    print '---Total da compra-- '
    print '-------------------- R$ ', orcamento.valor

    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 'IKCV e ICPP'
    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, IKCV())
# -*- coding: UTF-8 -*-
# calculador_de_descontos.py
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto

class Calculador_de_descontos(object):

    def calcula(self, orcamento):

        desconto = Desconto_por_cinco_itens(
            Desconto_por_mais_de_quinhentos_reais(Sem_desconto())
            ).calcular(orcamento)

        return desconto
		
"""
	Bloco de testes
"""
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))

    calculador_de_descontos = Calculador_de_descontos()
    desconto = calculador_de_descontos.calcula(orcamento)
    print orcamento.valor
    print 'Desconto calculado : %s' % (desconto)
    # imprime 38.5
Exemplo n.º 26
0
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 ISS, ICMS, IKCV, ICPP

	calculador = Calculador_de_impostos()
	orcamento = Orcamento()

	orcamento.adiciona_item(Item('ITEM 1', 50))
	orcamento.adiciona_item(Item('ITEM 1', 200))
	orcamento.adiciona_item(Item('ITEM 1', 250))		

	print 'INSS e ICMS'
	calculador.realiza_calculo(orcamento, ISS())
	calculador.realiza_calculo(orcamento, ICMS())
	print 'INSS 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()))
	
Exemplo n.º 27
0
from impostos import ICMS, ICPP, IKCV, ISS


class CalculadorImpostos:
    def realiza_calculo(self, orcamento, imposto):
        imposto_calculado = imposto.calcula(orcamento)
        print(imposto_calculado)


if __name__ == '__main__':

    from orcamento import Orcamento, Item

    orcamento = Orcamento()

    orcamento.adiciona_item(Item('item 0', 50.0))
    orcamento.adiciona_item(Item('item 1', 200.0))
    orcamento.adiciona_item(Item('item 2', 250.0))

    calculador = CalculadorImpostos()

    print('ISS e ICMS')
    calculador.realiza_calculo(orcamento, ISS())
    calculador.realiza_calculo(orcamento, ICMS())

    print('ICPP e IKCV')
    calculador.realiza_calculo(orcamento, ICPP())
    calculador.realiza_calculo(orcamento, IKCV())
# -*- coding: Utf-8 -*-

from desconto import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhetos_reais, Sem_desconto

class Calculador_de_desconto(object):

	def calcula(self, orcamento):
		
		desconto = Desconto_por_mais_de_quinhetos_reais(Desconto_por_mais_de_quinhetos_reais(Sem_desconto())).calcula(orcamento)

		return desconto
		



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))

	desconto = Calculador_de_desconto().calcula(orcamento) 
	print('Desconto calculado : %s' % (desconto))
Exemplo n.º 29
0
# -*- coding: UTF-8 -*-
from descontos import Deconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto

class Calculador_de_descontos(object):


	def calcula(self, orcamento):

		desconto = Deconto_por_cinco_itens(
				   Desconto_por_mais_de_quinhentos_reais(Sem_desconto())
				   ).calcula(orcamento)

		return desconto

if __name__ == '__main__' :

	from orcamento import Orcamento, Item

	orcamento = Orcamento()
	orcamento.adiciona_item(Item('ITEM - 1', 100))
	orcamento.adiciona_item(Item('ITEM - 1', 50))
	orcamento.adiciona_item(Item('ITEM - 1', 400))

	calculador = Calculador_de_descontos()

	desconto = calculador.calcula(orcamento)

	print 'Desconto %s ' % (desconto)
Exemplo n.º 30
0
from descontos import Desconto_por_cinco_items, Desconto_por_mais_de_quinhentos_reais, Sem_desconto

class Calculador_de_descontos(object):

    def calcula(self, orcamento):
        desconto = Desconto_por_cinco_items(
            Desconto_por_mais_de_quinhentos_reais(Sem_desconto)).calcula(orcamento)
        return desconto


if __name__ == '__main__':
    from orcamento import Orcamento, Item

    orcamento = Orcamento()
    orcamento.adiciona_item(Item('Item -1', 100))
    orcamento.adiciona_item(Item('Item -2', 400))
    orcamento.adiciona_item(Item('Item -3', 150))
    orcamento.adiciona_item(Item('Item -4', 250))
    orcamento.adiciona_item(Item('Item -5', 350))
    orcamento.adiciona_item(Item('Item -6', 250))
    orcamento.adiciona_item(Item('Item -7', 400))

    print(orcamento.valor)
    calculador = Calculador_de_descontos()
    desconto_calculado = calculador.calcula(orcamento)
    print("Desconto Calculado: %s " % desconto_calculado)
class Calculador_de_descontos(object):
    def calcula(self, orcamento):

        return Desconto_por_cinco_itens(
            Desconto_por_mais_de_quinhentos_reais(
                Sem_desconto())).calcula(orcamento)


if __name__ == "__main__":

    from orcamento import Orcamento, Item

    orcamento = Orcamento()

    orcamento.adiciona_item(Item("item 0", 100.0))
    orcamento.adiciona_item(Item("item 1", 100.0))
    orcamento.adiciona_item(Item("item 2", 100.0))
    orcamento.adiciona_item(Item("item 3", 100.0))
    orcamento.adiciona_item(Item("item 4", 100.0))
    orcamento.adiciona_item(Item("item 5", 100.0))
    orcamento.adiciona_item(Item("item 6", 100.0))
    orcamento.adiciona_item(Item("item 7", 100.0))
    orcamento.adiciona_item(Item("item 8", 100.0))
    orcamento.adiciona_item(Item("item 9", 100.0))

    print orcamento.valor

    calculator = Calculador_de_descontos()

    desconto = calculator.calcula(orcamento)
# -*- coding: UTF-8 -*-
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto
class Calculador_de_descontos(object):

	def calcula(self, orcamento):

		desconto = Desconto_por_cinco_itens(
			Desconto_por_mais_de_quinhentos_reais(Sem_desconto())
		).calcula(orcamento)
		return desconto

if __name__ == '__main__':

	from orcamento import Orcamento, Item

	orcamento = Orcamento()
	orcamento.adiciona_item(Item('Item - 1', 100))
	orcamento.adiciona_item(Item('Item - 2', 50))
	orcamento.adiciona_item(Item('Item - 3', 400))

	calculador = Calculador_de_descontos()

	desconto = calculador.calcula(orcamento)
	print 'Desconto calculado %s' % (desconto)
"""

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)
Exemplo n.º 34
0
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)