From 65773f0706025ea4f8d3deb3cbae1d6bb3c40090 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 2 Jan 2023 12:09:09 +0100 Subject: [PATCH] Add picklist example (#412) * started python API reference guide * Added test to the API reference guide * Added Price break * added context variables to the build section * Cleand up build section and added new example * Fine tuning * fixed picture * removed unfinished python reference guide * Added allocated_stock to the build rreport * Added contect variables for user model * Added link to user in build.md * Fixed misunderstanding of can_complete * Added context variables for Suppliers * Fixed typos * Added example for a warehouse pick list --- docs/assets/images/report/picklist.png | Bin 0 -> 5488 bytes docs/report/build.md | 1 + docs/report/pack.md | 46 +++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 docs/assets/images/report/picklist.png diff --git a/docs/assets/images/report/picklist.png b/docs/assets/images/report/picklist.png new file mode 100644 index 0000000000000000000000000000000000000000..ceebf8ec26b7f199d5411e65a0e2b79658607932 GIT binary patch literal 5488 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 YJVTGR_{cIR{w-(fX&Gx)sM{j{50QRX&j0`b literal 0 HcmV?d00001 diff --git a/docs/report/build.md b/docs/report/build.md index 4986bf3..ce448be 100644 --- a/docs/report/build.md +++ b/docs/report/build.md @@ -76,6 +76,7 @@ will result in the first part of the list. Each query set has again its own cont | --- | --- | | .bom_item | The bom item where this part belongs to | | .stock_item | The allocated [StockItem](./context_variables.md#stockitem) | +| .quantity | The number of components needed for the build (components in BOM x parts to build) | ### Example diff --git a/docs/report/pack.md b/docs/report/pack.md index dc5b315..42fa9db 100644 --- a/docs/report/pack.md +++ b/docs/report/pack.md @@ -6,3 +6,49 @@ title: Packing List Report !!! missing "TODO" This section requires further work + +## Pick List + +When all material has been allocated someone has to pick all things from the warehouse. +In case you need a printed pick list you can use the following template. This it just the +table. All other info and CSS has been left out for simplicity. Please have a look at the +BOM report for details. + +{% raw %} +```html + + + + + + + + + + + {% for line in build.allocated_stock.all %} + + + {% if line.stock_item.part.IPN != line.bom_item.sub_part.IPN %} + + {% else %} + + {% endif %} + + + + {% endfor %} + +
Original IPNAllocated PartLocationPCS
{{ line.bom_item.sub_part.IPN }} {{ line.stock_item.part.IPN }} {{ line.stock_item.part.IPN }} {{ line.stock_item.location.pathstring }} {{ line.quantity }}
+``` +{% endraw %} + +Here we have a loop that runs through all allocated parts for the build. For each part +we list the original IPN from the BOM and the IPN of the allocated part. These can differ +in case you have substitutes or template/variants in the BOM. In case the parts differ +we use a different format for the table cell e.g. print bold font or red color. +For the picker we list the full path names of the stock locations and the quantity +that is needed for the build. This will result in the following printout: + +{% with id="report-options", url="report/picklist.png", description="Picklist Example" %} {% include "img.html" %} {% endwith %} +