def motor(self, valor): if valor is "": raise DescricaoEmBrancoException("Motor") valor = float(valor) if valor < 1.0: raise ValorInvalidoException("Motor") self._motor = valor
def combustiveis(self, valor): if valor is None: raise DescricaoEmBrancoException("Combustiveis") if valor < 1 or valor > 3: raise ValorInvalidoException("Combustiveis") else: self._combustiveis.append(Combustiveis(valor))
def ano(self, valor): if valor is "": raise DescricaoEmBrancoException("Ano") valor = int(valor) if valor < 1900: raise ValorInvalidoException("Ano") self._ano = valor
def QuilometragemInicial(self, valor): if valor == '': raise DescricaoEmBrancoException("Quilometragem") valor = int(valor) if valor >= 0: self._QuilometragemInicial = valor else: raise ValorInvalidoException("Quilometragem")
def ValorDoLitro(self, valor): if valor == '': raise DescricaoEmBrancoException("Valor do litro") valor = float(valor) if valor < 0.0: raise ValorInvalidoException("Valor do litro") self._ValorDoLitro = valor
def quilometragem(self, valor): if valor == '': raise DescricaoEmBrancoException("Quilometragem") valor = int(valor) if valor < 0: raise ValorInvalidoException("Quilometragem") self._quilometragem = valor
def modelo(self, valor): if valor is "": raise DescricaoEmBrancoException("Modelo") else: self._modelo = valor
def marca(self, valor): if valor is "": raise DescricaoEmBrancoException("Marca") else: self._marca = valor
def cor(self, valor): if valor is None: raise DescricaoEmBrancoException("Cor") self._cor = valor
def registra_despesa(self): veiculos_id = [] sql_despesa = "INSERT INTO despesa(categoria, valor, DATA, veiculo_idVeiculo) VALUES(%s, %s, %s, %s)" req = "SELECT idVeiculo, modelo, marca, placa FROM veiculo" while 1: self.mycursor.execute(req) for (idVeiculo, modelo, marca, placa) in self.mycursor: veiculos_id.append(idVeiculo) print("{})\t{} - {} - {}".format(idVeiculo, marca, modelo, placa)) carro_escolhido = int( input( "\nSelecione o numero indicado do carro em que deseja cadastrar a despesa: " )) if self.bin_search( veiculos_id, carro_escolhido) == len(veiculos_id) or self.bin_search( veiculos_id, carro_escolhido) == -1: print( "Numero invalido. Por favor escolha um dos numeros impressos.\n" ) time.sleep(2) elif veiculos_id[self.bin_search( veiculos_id, carro_escolhido)] != carro_escolhido: print( "Numero invalido. Por favor escolha um dos numeros impressos.\n" ) time.sleep(2) else: break while True: # ---------cadastra uma despesa comum------------------ try: categoria = int( input( "digite o numero dacategoria de despesa que deseja adicionar\n(1) Imposto\n(2) Seguro\n(3) Manutenção\n" "(4) Financiamento\n(5) Multas\n(6) Abastecimento\n")) if categoria < 1 or categoria > 6: raise ValorInvalidoException("categoria") valor_despesa = input("digite o valor da despesa: ") if valor_despesa == '': raise DescricaoEmBrancoException("valor da despesa") elif float(valor_despesa) < 0: raise ValorInvalidoException("valor da despesa") if categoria == 6: # ----------------Despesa de abastecimento----------------------- sql_abastecimento = "INSERT INTO abastecimento(combustiveis, quilometragem_inicial, valor_do_litro, tanque_cheio, despesa_iddespesa) " \ "VALUES(%s, %s ,%s ,%s ,%s)" abastecimento = Abastecimento() abastecimento.categoria = 6 abastecimento.valor = valor_despesa req = "SELECT combustivel FROM combustiveis WHERE Veiculo_idVeiculo = %s" entrada_req = (carro_escolhido, ) self.mycursor.execute(req, entrada_req) for combustivel in self.mycursor: print("{})\t{}".format( combustivel[0], Combustiveis(combustivel[0]).name)) combustivel = int( input( "Selecione o numero correspondente ao tipo de combustivel usado no abastecimento: " )) abastecimento.combustivel = Combustiveis(combustivel) abastecimento.ValorDoLitro = input( "Digite o valor do litro na hora do abastecimento: ") quilometragem_inicial = input( "Digite a quilometragem antes do abastecimento: ") abastecimento.QuilometragemInicial = quilometragem_inicial tanque = input( "informe se o abastecimento foi de tanque cheio ou não\n(1)Normal\n(2)Tanque cheio\n" ) if tanque == '': raise DescricaoEmBrancoException("Tanque") elif int(tanque) < 1 or int(tanque) > 2: raise ValorInvalidoException("Tanque") tanque = int(tanque) - 1 abastecimento.IsTanqueCheio = tanque insert_despesa = (abastecimento.categoria, abastecimento.valor, abastecimento.data, carro_escolhido) self.mycursor.execute(sql_despesa, insert_despesa) id_despesa = self.mycursor.lastrowid insert_abastecimento = (combustivel, abastecimento.QuilometragemInicial, abastecimento.ValorDoLitro, abastecimento.IsTanqueCheio, id_despesa) self.mycursor.execute(sql_abastecimento, insert_abastecimento) print(abastecimento) elif categoria == 3: # ------------despesa de manutencao---------------- sql_manutencao = "INSERT INTO manutencao(quilometragem, despesa_iddespesa) VALUES (%s, %s)" manutencao = Manutencao() manutencao.valor = valor_despesa manutencao.quilometragem = input( "Digite a quilometragem antes da manutenção: ") print(manutencao) insert_despesa = (categoria, valor_despesa, manutencao.data, carro_escolhido) self.mycursor.execute(sql_despesa, insert_despesa) despesa_id = self.mycursor.lastrowid insert_manutencao = (manutencao.quilometragem, despesa_id) self.mycursor.execute(sql_manutencao, insert_manutencao) else: # ------------Registra uma despesa comum-------------------- despesa = Despesa() despesa.categoria = TipoDeDespesa(categoria) despesa.valor = valor_despesa insert_despesa = (categoria, valor_despesa, despesa.data, carro_escolhido) self.mycursor.execute(sql_despesa, insert_despesa) print(despesa) self.mydb.commit() break except (DescricaoEmBrancoException, ValorInvalidoException, ValueError): print( "Algum dos campos foi digitado erroneamente, por favor refaça o cadastro apertando ENTER, ou qualquer outra letra." ) print("Caso não queira digite 'n'.") escolha = input() if escolha == 'n': break elif escolha == '' or escolha != 'n': pass