Skip to content

Instantly share code, notes, and snippets.

@JoaoGFarias
Created August 1, 2015 16:28
Show Gist options
  • Save JoaoGFarias/02d5ae4132426063594a to your computer and use it in GitHub Desktop.
Save JoaoGFarias/02d5ae4132426063594a to your computer and use it in GitHub Desktop.
Projetando as contas parceladas
Loja 1 07/06 24.99
import csv
class Parcela():
def __init__(self,local,data,preco):
self.local = local
self.num_parcela = int(data.split('/')[0])
self.qtd_parcelas = int(data.split('/')[1])
self.preco = float(preco)
pass
def __str__(self):
return "Instituicao: " + self.local + "\t- Parcela: " + str(self.num_parcela) + " de " + str(self.qtd_parcelas) + "\t- Valor: " + str(self.preco)
pass
def prox_parcela(self):
if(self.num_parcela == self.qtd_parcelas):
return None
else:
return (self.local,str(self.num_parcela + 1) + "/" + str(self.qtd_parcelas), str(self.preco))
pass
pass
class Mes_Total():
def __init__(self,arquivo,mes):
self.mes = mes
self.parcelas = []
self.total = 0
for [local,data,preco] in arquivo:
parcela = Parcela(local,data,preco)
self.parcelas += [parcela]
self.total += parcela.preco
pass
def imprimir_total_mes(self):
print "Mes de " + self.mes + " - Total: " + str(self.total)
for parcela in self.parcelas:
print parcela
pass
def projetar_proximo_mes(self):
if(self.mes == "Dezembro"):
mes = "Janeiro"
else:
meses = ["Janeiro","Fevereiro","Marco","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]
mes = meses[meses.index(self.mes) + 1]
prox_parcelas = []
for parcela in self.parcelas:
prox_parcela = parcela.prox_parcela()
if prox_parcela != None:
prox_parcelas.append( [prox_parcela[0],prox_parcela[1],prox_parcela[2]])
return Mes_Total(prox_parcelas,mes)
pass
def main():
arquivo = csv.reader(open("data.csv"), delimiter=',' )
contas_do_mes = Mes_Total(arquivo,"Julho")
while(contas_do_mes.total > 0):
contas_do_mes.imprimir_total_mes()
contas_do_mes = contas_do_mes.projetar_proximo_mes()
pass
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment