def test_transacoes_pre_definidas(): # accounts: cash_in = conta('cash_in') cash_out = conta('cash_out') conta_desconto = conta('conta_desconto') # defining the Transaction Schemas: T('VendaComDesconto10', d_from=cash_in, c_to=cash_out) T('Desconto10', amount=10, c_to=conta_desconto) # defining new combined Transaction Schemas: VendaComDesconto10 =\ T('VendaComDesconto10')( T('Desconto10') ) # checking registered Transaction Schemas: assert Schema.objects.all().count() == 2 # using the schema: VendaComDesconto10(100).save() # checking transactions in the ledger transactions = Ledger.objects.all() assert transactions.count() == 2 assert transactions[0].amount == Decimal(100) assert transactions[1].amount == Decimal(10) # checking account balances: assert cash_in.balance() == Decimal(-100) assert cash_out.balance() == Decimal(90) assert conta_desconto.balance() == Decimal(10)
def test_venda_com_imposto(): # accounts: cash_in = conta('cash_in') cash_out = conta('cash_out') conta_imposto = conta('conta_imposto') # defining the Transaction Schema: VendaComImpostoPercentual = T('VendaComImpostoPercentual', d_from=cash_in, c_to=cash_out)(T('ImpostoPercentual', amount=Percentual(10), c_to=conta_imposto)) # checking registered Transaction Schemas: assert Schema.objects.all().count() == 2 # using the Transaction Schema: VendaComImpostoPercentual(100).save() # checking transactions in the ledger transactions = Ledger.objects.all() assert transactions.count() == 2 assert transactions[0].amount == Decimal(100) assert transactions[1].amount == Decimal(10) assert transactions[1].c_to == conta_imposto # checking account balances: assert cash_in.balance() == Decimal(-100) assert cash_out.balance() == Decimal(90) assert conta_imposto.balance() == Decimal(10)
def test(): # creating a Transaction by naming it automatically # registers its Schema to be reused: T('VendaComplicada', amount=100) T('ImpostoInjusto', amount=Percentual(10)) assert Schema.objects.all().count() == 2 assert R.VendaComplicada assert type(R.VendaComplicada) == T assert R.VendaComplicada.amount == 100 assert R.ImpostoInjusto assert type(R.ImpostoInjusto) == T assert R.ImpostoInjusto.amount == Percentual(10) #using: VendaComplicada = \ R.VendaComplicada( R.ImpostoInjusto )
def test_venda_com_imposc_tocom_comissao_com_imposc_tocom_composicao_de_transacoes_3( ): # accounts: cash_in = conta('cash_in') cash_out = conta('cash_out') conta_comissao = conta('conta_comissao') conta_imposto = conta('conta_imposto') # defining the Transaction Schemas: T('VendaComImpostoEComissao', d_from=cash_in, c_to=cash_out) T('ComissaoDe10Porcento', amount=Percentual(10), c_to=conta_comissao) T('ImpostoDe10Porcento', amount=Percentual(10), c_to=conta_imposto) # defining new combined Transaction Schema another order: VendaComImpostoEComissao2 =\ T('VendaComImpostoEComissao')( T('ImpostoDe10Porcento')( T('ComissaoDe10Porcento')( T('ImpostoDe10Porcento') ) ) ) # checking registered Transaction Schemas: assert Schema.objects.all().count() == 3 # using the Transaction Schema: VendaComImpostoEComissao2(100).save() # checking transactions in the ledger transactions = Ledger.objects.all() assert transactions.count() == 4 assert transactions[0].amount == Decimal(100) assert transactions[1].amount == Decimal(10) assert transactions[2].amount == Decimal(1) assert transactions[3].amount == Decimal('0.10') # checking account balances: assert cash_in.balance() == Decimal(-100) assert cash_out.balance() == Decimal(90) assert conta_comissao.balance() == Decimal('0.90') assert conta_imposto.balance() == Decimal('9.10')
def contas(): # accounts: class A: in_labrdev_sch = conta( 'Income.Margarin.LabrDev.LongView.SAManager.SCH') in_ggeek_gespag = conta('Income.Margarin.GarageGeek.Gespag') as_cash = conta('Assets.cash') ex_prolabore = conta('Expense.Prolabore') ex_das_anexo_iii = conta('Expense.Tax.DAS.AnexoIII') ex_das_anexo_v = conta('Expense.Tax.DAS.AnexoV') ex_iss_rio = conta('Expense.Tax.Rio.ISS') ex_irrf = conta('Expense.Tax.BR.IRRF') ex_inss = conta('Expense.Tax.BR.INSS') # defining Simple Transaction Schemas: T('PrestacaoServico_GGeek', d_from=A.in_ggeek_gespag, c_to=A.as_cash) T('ProLaboreMinimo', d_from=A.as_cash, amount=SalarioMinimo(), c_to=A.ex_prolabore) T('ProLaboreFatorR', d_from=A.as_cash, amount=2240, c_to=A.ex_prolabore) T('DASAnexoIII', amount=Percentual(6), c_to=A.ex_das_anexo_iii) T('DASAnexoV', amount=Percentual(15.5), c_to=A.ex_das_anexo_v) T('IssRio', amount=Percentual(2.17), c_to=A.ex_iss_rio) T('IRRF', amount=IRRF(), c_to=A.ex_irrf) T('INSS', amount=INSS(), c_to=A.ex_inss) return A
def test_venda(): # accounts: cash_in = conta('cash_in') cash_out = conta('cash_out') # defining the Transaction Schema: Venda = T('Venda', d_from=cash_in, c_to=cash_out) # checking registered Transaction Schemas: assert Schema.objects.all().count() == 1 # using the Transaction Schema: Venda(100).save() # checking transactions in the ledger transactions = Ledger.objects.all() assert transactions.count() == 1 assert transactions[0].amount == Decimal(100) # checking account balances: assert cash_in.balance() == Decimal(-100) assert cash_out.balance() == Decimal(100)