def perform_invoice(self, db: DBManager, order_id): """ perform invoice PDF file in directory invoices :param db: :param order_id: :return: """ if config.is_company_info(): info = config.company_info() invoice = ReportInvoice() invoice.company_info(info) order = db.get_order_info(order_id=order_id) client = db.get_client(order.client_id) invoice.set_order(date=order.order_date, number=order_id, payer=client.title, address=client.address, delivery=order.delivery_cost) order_items = db.get_order_items(order_id) for item in order_items: product = db.select_single_product(item.product_id) invoice.add_item(name=product.name, code=product.title, unit='шт.', quantity=item.quantity, price=product.price) invoice.make() _send_invoice_mail(client, order_id)
def load(self, db: DBManager, order_id): self._id = order_id order_info = db.get_order_info(order_id) self._client = order_info.client_id self._current = order_info.is_current self._date = order_info.order_date self._delivery_cost = order_info.delivery_cost self._status = order_info.status self._store = order_info.store_id
def change_status(db: DBManager, order_id, order_status): """ change status of order :param db: :param order_id: :param order_status: :return: """ order: OrderInfo = db.get_order_info(order_id=order_id) order.status = order_status db.save_element(order)
def save(self, db: DBManager): if self._id: order = db.get_order_info(self._id) order.is_current = self._current order.client_id = self._client order.delivery_cost = self._delivery_cost order.order_date = self._date order.status = self._status order.store_id = self._store db.save_element(order) else: self._date = datetime.now() order = self._get_order_info() self._id = db.save_element(order) return order