diff --git a/copanier/__init__.py b/copanier/__init__.py index 376703a..9ab15fa 100644 --- a/copanier/__init__.py +++ b/copanier/__init__.py @@ -449,6 +449,15 @@ async def send_referent_emails(request, response, id): 'delivery': delivery }) + +@app.route("/livraison/{id}/{producer}/bon-de-commande", methods=["GET"]) +async def download_producer_report(request, response, id, producer): + delivery = Delivery.load(id) + summary = reports.summary(delivery, [producer, ]) + date = delivery.to_date.strftime("%Y-%m-%d") + response.xlsx(summary, filename=f"{config.SITE_NAME}-{date}-{producer}-bon-de-commande.xlsx") + + @app.route("/livraison/{id}/exporter", methods=["GET"]) async def export_products(request, response, id): delivery = Delivery.load(id) diff --git a/copanier/models.py b/copanier/models.py index 28896e5..af3a90c 100644 --- a/copanier/models.py +++ b/copanier/models.py @@ -288,14 +288,6 @@ class Delivery(PersistedBase): def total(self): return round(sum(o.total(self.products) for o in self.orders.values()), 2) - # @property - # def producers(self): - # return list(set([p.producer for p in self.products])) - - # @property - # def has_multiple_producers(self): - # return len(self.producers) > 1 - @property def is_open(self): return datetime.now().date() <= self.order_before.date() @@ -307,6 +299,10 @@ class Delivery(PersistedBase): @property def is_passed(self): return not self.is_foreseen + + @property + def can_generate_reports(self): + return not self.is_open and not self.needs_adjustment @property def has_packing(self): diff --git a/copanier/templates/includes/delivery_table.html b/copanier/templates/includes/delivery_table.html index 7449361..f9560ea 100644 --- a/copanier/templates/includes/delivery_table.html +++ b/copanier/templates/includes/delivery_table.html @@ -4,7 +4,11 @@ {% set producers = delivery.producers %} {% endif %} {% for producer in producers %} -