def delete_delivery_note(self, delivery_note): self.logger.debug("delete_delivery_note") self.logger.info("deleting delivery_note from database") DeliveryNote.delete().where( DeliveryNote.code == delivery_note.code ).execute() self.logger.info("removing delivery_note from model") tree_iter = self.get_iter_from_delivery_notes_model(delivery_note.code) self.delivery_notes_model.remove(tree_iter)
def on_delivery_notes_view_row_activated(self, treeview, path, column): self.logger.debug("on_delivery_notes_view_row_activated") tree_iter = self.delivery_notes_model.get_iter(path) code = self.delivery_notes_model.get_value(tree_iter, self.CODE_COLUMN) delivery_note = DeliveryNote.select().where( DeliveryNote.code == code ).get() column_id = column.get_sort_column_id() if column_id == self.REMOVE_COLUMN: dialog = Gtk.MessageDialog( self.window, 0, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, "Are you sure to remove the delivery note?" ) if dialog.run() == Gtk.ResponseType.YES: self.delete_delivery_note(delivery_note) self.clean_delivery_note_form() dialog.destroy() else: self.populate_delivery_note_form(delivery_note) self.selected_delivery_note = delivery_note self.update_total()
def update_delivery_note(self, delivery_note): self.logger.debug("update_delivery_note") self.logger.info("saving delivery note to database") self.logger.debug("delivery_note: %s", delivery_note) # FIXME Updating throws an IntegrityError due to UNIQUE constraint # on delivery_note.code at updating vehicle foreign key. DeliveryNote.update( code=delivery_note.code, date=delivery_note.date, company=delivery_note.company, vehicle=delivery_note.vehicle, invoiced=delivery_note.invoiced ).execute() self.logger.info("updating delivery_note to model") tree_iter = self.get_iter_from_delivery_notes_model(delivery_note.code) self.delivery_notes_model.set( tree_iter, [self.CODE_COLUMN, self.DATE_COLUMN, self.VEHICLE_NUMBER_COLUMN, self.INVOICED_COLUMN], [delivery_note.code, delivery_note.date, delivery_note.vehicle.number, delivery_note.invoiced] )
def on_save_button_clicked(self, button): self.logger.debug("on_save_button_clicked") delivery_note = self.validate_delivery_note() if delivery_note is None: dialog = Gtk.MessageDialog( self.window, 0, Gtk.MessageType.ERROR, Gtk.ButtonsType.CANCEL, "Invalid values" ) dialog.run() dialog.destroy() else: self.logger.debug( "Trying to find delivery_note: %s", delivery_note.code ) query = DeliveryNote.select().where( DeliveryNote.code == delivery_note.code ) if query.exists(): dialog = Gtk.MessageDialog( self.window, 0, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, "The delivery note already exists," " do you want to update it?" ) if dialog.run() == Gtk.ResponseType.YES: self.update_delivery_note(delivery_note) dialog.destroy() else: self.create_delivery_note(delivery_note) self.selected_delivery_note = delivery_note
def populate_db(): v12 = Vehicle( number=12, plate="1234ABC", brand="My brand", model="My model", hour_price=27.32, km_price=8.99 ) v15 = Vehicle( number=15, plate="9876ZYX", brand="My brand", model="My model", hour_price=34.02, km_price=4.00 ) v12.save() v15.save() c1 = Company( code="0001", name="Company name", nif="B12345678", address="Rue st.", city="Zaragoza", state="Zaragoza", zip_code="50000", phone="123456789", contact_person="Foolano", alternative_phone="987654321", fax="246813579", email="*****@*****.**", iban="ES12345678901234567890123456789012", bank_name="THE Bank", payment_type="CASH", expiration_days=30, first_payment_day=5, second_payment_day=15, third_payment_day=25 ) c2 = Company( code="0002", name="Foo Inc.", nif="B45678123", address="Major st", city="Zaragoza", state="Zaragoza", zip_code="50002", email="*****@*****.**", iban="ES12345678901234567890123456789012", bank_name="Minor Bank", payment_type="BANK_TRANSFER", expiration_days=45, first_payment_day=8 ) c1.save() c2.save() dn1 = DeliveryNote( code="11111111", date=date(2016, 1, 3), company=c1, vehicle=v12, invoiced=False ) dn2 = DeliveryNote( code="22222222", date=date(2016, 1, 5), company=c1, vehicle=v15, invoiced=False ) dn1.save() dn2.save() dni1 = DeliveryNoteItem( delivery_note=dn1, item_type="HOURS", units=12, price=v12.hour_price, description="Working hard" ) dni2 = DeliveryNoteItem( delivery_note=dn2, item_type="HOURS", units=7, price=21.00, description="We are working hard here" ) dni3 = DeliveryNoteItem( delivery_note=dn2, item_type="OTHERS", units=1, price=327.86, description="Are you working hard?" ) dni1.save() dni2.save() dni3.save() Settings(vat=21.00, invoice_number="0000000001").save()