예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
 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)
예제 #4
0
 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