Add a link to download orders per producer.

Fix #10.
This commit is contained in:
Alexis M 2019-10-01 20:27:58 +02:00
parent bf70af6de1
commit cfcd3982a1
3 changed files with 18 additions and 9 deletions

View file

@ -449,6 +449,15 @@ async def send_referent_emails(request, response, id):
'delivery': delivery '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"]) @app.route("/livraison/{id}/exporter", methods=["GET"])
async def export_products(request, response, id): async def export_products(request, response, id):
delivery = Delivery.load(id) delivery = Delivery.load(id)

View file

@ -288,14 +288,6 @@ class Delivery(PersistedBase):
def total(self): def total(self):
return round(sum(o.total(self.products) for o in self.orders.values()), 2) 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 @property
def is_open(self): def is_open(self):
return datetime.now().date() <= self.order_before.date() return datetime.now().date() <= self.order_before.date()
@ -308,6 +300,10 @@ class Delivery(PersistedBase):
def is_passed(self): def is_passed(self):
return not self.is_foreseen return not self.is_foreseen
@property
def can_generate_reports(self):
return not self.is_open and not self.needs_adjustment
@property @property
def has_packing(self): def has_packing(self):
return any(p.packing for p in self.products) return any(p.packing for p in self.products)

View file

@ -4,7 +4,11 @@
{% set producers = delivery.producers %} {% set producers = delivery.producers %}
{% endif %} {% endif %}
{% for producer in producers %} {% for producer in producers %}
<h2>{{ producer }} {% if edit_mode %}<a class="button" href="/livraison/{{ delivery.id }}/{{ producer }}/éditer"><i class="icon-ribbon"></i>Éditer</a> <a class="button" href="/livraison/{{ delivery.id }}/{{ producer }}/ajouter-produit"><i class="icon-puzzle"></i>Ajouter un produit </a>{% endif %}</h2> <h2>{{ producer }} {% if edit_mode %}<a class="button" href="/livraison/{{ delivery.id }}/{{ producer }}/éditer"><i class="icon-ribbon"></i>Éditer</a> <a class="button" href="/livraison/{{ delivery.id }}/{{ producer }}/ajouter-produit"><i class="icon-puzzle"></i>Ajouter un produit </a>{% endif %}
{% if delivery.can_generate_reports and (request.user.is_staff or delivery.producers[producer].referent == request.user.email) %}
<a class="button" href="/livraison/{{ delivery.id }}/{{ producer }}/bon-de-commande"><i class="icon-grid"></i>&nbsp; Télécharger le bon de commande</a>
{% endif %}
</h2>
<h5>{% if delivery.producers[producer].description %}{{ delivery.producers[producer].description }}{% endif %}. Référent⋅e : {{ delivery.producers[producer].referent }} / {{ delivery.producers[producer].tel_referent }}</h5> <h5>{% if delivery.producers[producer].description %}{{ delivery.producers[producer].description }}{% endif %}. Référent⋅e : {{ delivery.producers[producer].referent }} / {{ delivery.producers[producer].tel_referent }}</h5>
<table class="delivery"> <table class="delivery">
<thead> <thead>