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_spec): products = db.get_order_items(order_spec.id) number = 0 for order in products: number += 1 order_item = OrderItem(order_spec=order_spec, number=number, is_current=order.is_current, product_id=order.product_id, quantity=order.quantity, item_id=order.id) order_item.order_id = order.order_id self._orders[order_item.product_id] = order_item