Commit Graph

1703 Commits

Author SHA1 Message Date
Sagar Sharma
5be7d42dfd fix: production plan pending-qty 2022-09-16 14:39:39 +05:30
Sagar Sharma
b8cf3b4c77 refactor: rewrite Production Plan queries in QB 2022-09-16 12:23:43 +05:30
Sagar Sharma
d3cd3bc5ef
Merge branch 'develop' into refactor/report/bom-stock-calculated 2022-09-12 17:23:15 +05:30
Sagar Sharma
e1a98c1ff7 test: add test cases for BOM Stock Calculated report 2022-09-12 17:11:00 +05:30
Sagar Sharma
7a968a5f0d fix: add missing warehouse filter in BOM Stock Calculated report 2022-09-12 16:12:51 +05:30
Sagar Sharma
56192daabf fix: required_qty in BOM Stock Calculated report 2022-09-12 16:12:49 +05:30
Sagar Sharma
5245928648 refactor: rewrite Process Loss Report queries in QB 2022-09-11 19:03:59 +05:30
Sagar Sharma
d4c4dddfc3 refactor: rewrite Work Order Stock Report queries in QB 2022-09-10 16:29:47 +05:30
Sagar Sharma
723fa9eebc refactor: BOM Stock Calculated report 2022-09-09 19:11:36 +05:30
Dhananjay Palshikar
75396c02d2
Allow Item Templates in Work Order Items
Item Variants can be a part of the items tables, however, when BOM items are fetched to be a part of the Work Order items, item variants were being filtered out.
The filtering out does not serve a purpose. Having Item variants in BOMs allows for template like behaviour.
2022-09-01 19:07:13 +05:30
rohitwaghchaure
b27f3ab327
Merge pull request #31967 from rohitwaghchaure/connection-added-for-work-order
fix: material request connection on work order
2022-08-25 12:29:10 +05:30
rohitwaghchaure
dae112eed2
Merge pull request #31966 from rohitwaghchaure/set-default-supplier-from-item
fix: default supplier not set in the PP
2022-08-25 12:25:00 +05:30
Rohit Waghchaure
9ab10def49 fix: material request connection on work order 2022-08-25 12:13:17 +05:30
Rohit Waghchaure
5fd468d9ec fix: default supplier not set in the PP 2022-08-25 11:44:12 +05:30
HENRY Florian
fe73d55f70
chore: add Work Order test dependencies (#31936) 2022-08-23 16:07:10 +05:30
Sagar Sharma
313625c349
fix: incorrect rate in BOM exploded items (#31513) 2022-08-17 13:51:53 +05:30
Sagar Sharma
538cd6fdcf
fix: incorrect produced-qty in production-plan-item (#31706) 2022-08-17 13:01:56 +05:30
Sagar Sharma
0047e18a9b
fix: check item_code in all rows of po_items (#31741)
fix: check item-code in each row of po-items
2022-08-13 11:07:22 +05:30
Nabin Hait
a768b4cec3
Merge branch 'develop' into subcontracting 2022-07-08 15:21:03 +05:30
Sagar Sharma
57b6dab1da fix: status filter in Job Card Summary 2022-07-07 23:19:17 +05:30
Sagar Sharma
f9885746a8
Merge branch 'develop' into subcontracting 2022-07-07 09:56:23 +05:30
Rohit Waghchaure
7282c8e65b fix: test case 2022-07-05 15:10:28 +05:30
Sagar Sharma
78ff1783b1 Merge branch 'develop' into subcontracting 2022-06-28 22:20:32 +05:30
Sagar Sharma
70bc51a8fc
Merge branch 'develop' into fix/production-plan/test/planned-qty 2022-06-22 15:33:08 +05:30
s-aga-r
00807abe31 fix: add UOM validation for planned-qty 2022-06-22 14:28:17 +05:30
Marica
46d02ec4b2
Merge branch 'develop' into bom-update-log-cleanup-perf 2022-06-22 11:50:06 +05:30
rohitwaghchaure
186224a12a
Merge branch 'develop' into fixed-transferred-materials-are-not-consumed 2022-06-21 22:45:05 +05:30
s-aga-r
dc2830da4d fix: set default_bom for item 2022-06-21 15:13:01 +05:30
marination
4cf2225a29 chore: Implement Log clearing interface in BOM Update Log
- Implement Log clearing interface in BOM Update Log
- Add additional info in sidebar: Log clearing only happens for 'Update Cost' type logs
- 'Replace BOM' logs have important info and is used in BOM timeline, so we'll let users decide if they wanna keep or discard it
2022-06-21 14:10:59 +05:30
Sagar Sharma
912d26361d
Merge branch 'develop' into fixed-transferred-materials-are-not-consumed 2022-06-21 13:23:37 +05:30
Marica
5ae8f5d4b8
Merge branch 'develop' into bom-update-log-cleanup-perf 2022-06-21 11:01:03 +05:30
s-aga-r
f6ef3068d7 Merge branch 'develop' into subcontracting 2022-06-20 23:10:31 +05:30
marination
0320b59ea6 chore: Clear Progress section for completed logs & on_submit UX
- Delete `BOM Update Batch` table on 'Completed' log, to save space
- Hide Progress section on 'Completed' log
- Enqueue `on_submit` for 'Update Cost' job, getting leaf boms could take time for huge DBs. Users have to wait for screen to unfreeze.
- Add error handling to `process_boms_cost_level_wise` (Called via cron job and on submit, both in background)
2022-06-20 16:25:34 +05:30
Conor
74a782d81d
refactor: DB independent quoting and truthy/falsy values (#31358)
* refactor: DB independent quoting and truthy/falsy values

* style: reformat to black spec

* fix: ifnull -> coalesce

* fix: coalesce -> Coalesce

* fix: revert pypika comparison

* refactor: convert queries to QB

* fix: incorrect value types for query

`=` query makes no sense with list of values

* fix: remove warehouse docstatus condition

* fix: keep using base rate as rate

Co-authored-by: Ankush Menat <ankush@frappe.io>
2022-06-17 17:01:27 +05:30
rohitwaghchaure
2ec133df6d
Merge branch 'develop' into fixed-transferred-materials-are-not-consumed 2022-06-17 15:02:07 +05:30
Rushabh Mehta
c0f9b34ede
fix(minor): move variants to separate tab (#31354)
* fix(minor): move variants to separate tab

* fix(minor): variants tab

* fix(minor): add counts

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
Co-authored-by: Ankush Menat <ankush@frappe.io>
2022-06-15 16:08:05 +05:30
Ankush Menat
94ad66e55b
chore: revert naming to default (#31364) 2022-06-15 13:35:42 +05:30
rohitwaghchaure
a4c2c3e02f
Merge branch 'develop' into fixed-transferred-materials-are-not-consumed 2022-06-15 09:41:01 +05:30
s-aga-r
9a68af36ec Merge branch 'develop' into subcontracting 2022-06-14 19:13:10 +05:30
Conor
00ef499739
refactor: use db independent offset syntax (#31345)
* chore: use db independent offset syntax

* fix: typo

* style: reformat code to black spec

Co-authored-by: Ankush Menat <ankush@frappe.io>
2022-06-14 10:49:07 +05:30
Sagar Sharma
f755430098
Merge branch 'develop' into subcontracting 2022-06-13 03:00:53 -07:00
Ankush Menat
39ec0aca95
fix(UX): use doc.status for Job Card status (#31320)
fix(UX): use doc.status for JC status

- Use doc.status directly for indicator - single source of truth
- Update status to cancelled when doc is cancelled
2022-06-10 18:43:46 +05:30
Ankush Menat
16c8b7404d
Merge pull request #31072 from marination/perf-bom-update-tool
perf: BOM Update Tool
2022-06-09 17:04:00 +05:30
marination
3fa0a46f39 chore: Less hacky tests, versioning (replace bom) and clearing log data (update cost)
- Remove `auto_commit_on_many_writes` in `update_cost_in_level()` as commits happen every N BOMs
- Auto commit every 50 BOMs
- test: Remove hacky `frappe.flags.in_test` returns
- test: Enqueue `now` if in tests (for update cost and replace bom)
- Replace BOM: Copy bom object to `_doc_before_save` so that version.py finds a difference between the two
- Replace BOM: Add reference to version
- Update Cost: Unset `processed_boms` if Log is completed (useless after completion)
- test: `update_cost_in_all_boms_in_test` works close to actual prod implementation (only call Cron job manually)
- Test: use `enqueue_replace_bom`  so that test works closest to production behaviour

Co-authored-by: Ankush Menat <ankushmenat@gmail.com>
2022-06-09 16:27:51 +05:30
Ankush Menat
d9a5213952
fix(ux): hide new version btn on unsaved BOM (#31297) 2022-06-09 15:33:18 +05:30
Sagar Sharma
f7a52f76d4
Merge branch 'develop' into subcontracting 2022-06-08 04:27:24 -07:00
marination
7e41d84a11 chore: get_valuation_rate sider fixes
- Use qb instead of db.sql
- Don't use `args` as argument for function
- Cleaner variable names
2022-06-08 14:01:04 +05:30
marination
9f2793ccf1 test: Fix test_update_bom_cost_in_all_boms
- Use base_rate for assertions as rate is subject to change due to conversion factor (USD)
2022-06-08 11:18:53 +05:30
Marica
ff0a6b7cbd
Merge branch 'develop' into perf-bom-update-tool 2022-06-07 14:49:59 +05:30
marination
6bde1bb5d2 test: Util to update cost in all BOMs
- Utility to update cost in all BOMs without cron jobs or background jobs (run immediately)
- Re-use util wherever all bom costs are to be updated
- Skip explicit commits if in test
- Specify company in test records (dirty data sometimes, company wh mismatch)
- Skip background jobs queueing if in test
2022-06-07 14:44:00 +05:30
Rohit Waghchaure
d94ff3ede8 test: test cases to cover batch, serialized raw materials 2022-06-06 17:57:52 +05:30
marination
15101190a6 chore: get_valuation_rate in bom.py must always return float & goto Item master if no bins 2022-06-06 17:54:13 +05:30
marination
934db57fdd chore: Miscellanous fixes/enhancements
- `get_valuation_rate`: if no bins are found return 0, SLEs do not exist either
- `get_valuation_rate`: Compute average valuation rate via query
- `get_rm_rate_map`: set order_by as None to avoid creating sort index (modified) each time query runs (seen in process list)
- BOM Update Batch: add status field and hide `boms_updated` so that  users can see progress without loading all updated boms (too much data)
- BOM Update Batch: set batch row status to completed after job runs
- BOM Update Log: remove `parent_boms` field (just pass parent boms to processing function) & remove Paused state (not used)
- Move job to long queue to avoid choking default queue
- `update_cost_in_boms`: use `get_doc` as each BOM is accessed only once. Use `for_update` to lock BOM row
- Commit after every 100 BOMs
2022-06-06 17:01:51 +05:30
Ankush Menat
ee5bc58e9b
fix(job card): only hold during draft state (#31243) 2022-06-06 16:27:25 +05:30
s-aga-r
992ba974e2 Merge branch 'develop' into subcontracting 2022-06-03 13:25:49 +05:30
marination
62857e3e08 feat: Track progress in Log Batch/Job wise
- This was done due to stale reads while the background jobs tried updating status of the log
- Added a table where all bom jobs within log will be tracked with what level they are processing
- Cron job will check if table jobs are all processed every 5 mins
- If yes, it will prepare parents and call `process_boms_cost_level_wise` to start next level
- If pending jobs, do nothing
- Current BOM Level is being tracked that helps adding rows to the table
- Individual bom cost jobs (that are queued) will process and update boms > will update BOM Update Batch table row with list of updated BOMs
2022-06-02 13:35:30 +05:30
Deepesh Garg
167cf7b49d fix: Remove domain restrcition from Manufacturing Workspace 2022-06-01 09:04:53 +05:30
marination
a62bc9b6c9 chore: Limit Update Cost jobs & db_update only if changed values
- If `Update Cost` job is ongoing, then block creation of new ones since all BOMs are updated
- `db_update` in `calculate_rm_cost` only if changed values to reduce redundant row updates
- Misc: Use variable for batch size
2022-05-31 16:00:29 +05:30
Ankush Menat
954dac88a8 fix: allow non-explosive recrusive BOMs
Recursion should be allowed as long as child item is not "exploded"
further by a BOM.
2022-05-30 10:40:13 +05:30
Ankush Menat
d224bf1d34 fix: only erase BOM when do_not_explode is set 2022-05-30 10:40:13 +05:30
Ankush Menat
b170cec2fe fix(ux): "New Version" button BOM
"duplicate" technically creates a new version but that's not intuitive
at all.
2022-05-30 10:40:12 +05:30
Ankush Menat
933434c3ea chore: format 2022-05-29 22:09:32 +05:30
marination
978ba5238f fix: Safe cast row.rate (in case of faulty exploded items, edge case but oh well) 2022-05-27 21:59:59 +05:30
marination
2de2491e17 perf: get_next_higher_level_boms
- Separate getting dependants and checking if they are valid (loop within loop led to redundant processing that slowed down function)
- Adding to above, the same dependant(parent) was repeatedly processed as many children shared it. Expensive.
- Use a parent-child map similar to child-parent map to check if all children are resolved
- `map.get()` reduced time: 10 mins -> 0.9s~1 second (as compared to `get_cached_doc` or query)
- Total time: 17 seconds to process 6599 leaf boms and 4.2L parent boms
- Previous Total time: >10 mins (I terminated it due to not wanting to waste time XD)
2022-05-27 20:33:14 +05:30
MOHAMMED NIYAS
7ff8acac51
fix: date filter on quality inspection report (#31148)
* fix: date filter

fix from date to to date filter btw those days

* fix: remove unnecessary conditions

Co-authored-by: Ankush Menat <ankushmenat@gmail.com>
2022-05-27 17:13:14 +05:30
marination
5949946265 chore: Change BOM Progress field types to Long Text 2022-05-27 17:04:21 +05:30
marination
eabd8290d4 feat: Only update exploded items rate and amount
- Generate RM-Rate map from Items table (will include subassembly items with rate)
- Function to reset exploded item rate from above map
- `db_update` exploded item rate only if rate is changed
- Via Update Cost, only update exploded items rate, do not regenerate table again
- Exploded Items are regenerated on Save and Replace BOM job
- `calculate_exploded_cost` is run only via non doc events (Update Cost button, Update BOMs Cost Job)
2022-05-27 14:32:58 +05:30
Sagar Sharma
61296a0658 fix: Subcontracting through Production Plan 2022-05-26 15:08:16 +05:30
Sagar Sharma
4ff734c25a
Merge branch 'develop' into subcontracting 2022-05-25 12:32:33 +05:30
marination
9f5f18e94d style: Update docstrings and fix/add type hints + Collapsible progress section in Log 2022-05-25 11:22:13 +05:30
marination
ab2d95a74d feat: Level-wise BOM cost updation
- Process BOMs level wise and Pause after level is complete
- Cron job will resume Paused jobs, which will again process the new level and pause at the end
- This will go on until all BOMs are updated
- Added Progress section with fields to track updated BOMs in Log
- Cleanup: Add BOM Updation utils file to contain helper functions/sub-functions
- Cleanup: BOM Update Log file will only contain functions that are in direct context of the Log

Co-authored-by: Gavin D'souza <gavin18d@gmail.com>
2022-05-25 11:21:01 +05:30
Sagar Sharma
6e5effc1b0
Merge branch 'develop' into subcontracting 2022-05-23 11:35:50 +05:30
marination
9f6e10663b chore: Run _validate_over_transfer only if excess transfer is blocked in settings 2022-05-23 11:05:55 +05:30
Ankush Menat
1a58b788e5 Merge branch 'develop' into jc-excess-transfer-config 2022-05-21 14:32:44 +05:30
Ankush Menat
66cf9aa344 fix: creation of corrective job card fails
This used to fail because sub_operations is a child table that's not
initalized by default till v13, in develop branch we init tables with
empty list.
2022-05-21 14:01:30 +05:30
Ankush Menat
e625394488 test: simplify job card tests 2022-05-21 14:01:28 +05:30
Sagar Sharma
213113bc00 Merge branch 'develop' into subcontracting 2022-05-20 12:13:13 +05:30
Sagar Sharma
92625902ad refactor!: BOM 2022-05-20 10:45:34 +05:30
Sagar Sharma
409df263e8 refactor!: change "is_subcontracted" field type from "Select" to "Check" 2022-05-20 10:45:33 +05:30
marination
90d4dc0cd6 fix: test_work_order_with_non_stock_item
- Use the right price list and currency to avoid rate conversion (1000/62.9), since rates are reset correctly now
- Use RM rate based on Price List in BOM. Non stock item has no valuation
2022-05-20 03:12:42 +05:30
marination
dd99c00eb6 fix: Get fresh RM rate in calculate_rm_cost 2022-05-19 21:48:24 +05:30
marination
9a7e9d902d perf: Use cached doc instead of get_doc
- Doc is only used to iterate over items(which wont change) and change rate/amount of rows
- These changes are inserted in db via `db_update`, so no harm
- Tested locally: refetching cached doc after db update, reflects fresh data.
2022-05-19 21:24:31 +05:30
marination
9dc3083088 fix: Call calculate_cost for Draft BOM and typo in argument 2022-05-19 20:33:48 +05:30
marination
5932e9d78a fix: DB update child items, remove redundancy, fix perf
- Move `get_boms_in_bottom_up_order` in bom update tool’s file
- Remove repeated rm cost update from `update_cost`. `calculate_cost` handles RM cost update
- db_update children in `calculate_cost` optionally
- Don’t call `update_exploded_items` and regenerate exploded items in `update_cost`. They will stay the same (except cost)
2022-05-19 20:22:13 +05:30
Ankush Menat
1de6b14d15
fix: remove "scrap %" field (#31069)
This does nothing, there's scrap items table below that's actually used
for specifying scrap.
2022-05-19 14:25:16 +05:30
marination
b6e46eea80 perf: get_boms_in_bottom_up_order
- Create child-parent map once and fetch value from child key to get parents
- Get parents recursively for a leaf node (get all ancestors)
- Approx. 44 secs for 4lakh 70k boms
2022-05-18 13:00:00 +05:30
marination
e07ce6efe0 fix: Job Card excess transfer behaviour
- Block excess transfer of items if not allowed in settings
- Behaviour made consistent with js behaviour (button disappears if not pending and not allowed in settings)
- Test for same case
2022-05-17 17:39:45 +05:30
marination
90a8e924f5 fix: set_missing_values in SE and re-use the same on all SE mappings
- `set_missing_values` in SE will set actual qty, transfer qty and calculate rate/amount
- Re-use `set_missing_values` wherever SE is doc is being mapped
2022-05-11 14:54:22 +05:30
Rushabh Mehta
548afba8bb
fix(minor): update frappe.error_log to new API (#30864)
* fix(minor): update frappe.error_log to new API

* refactor: changes for updated log_error api

Co-authored-by: Ankush Menat <ankush@frappe.io>
2022-05-02 15:04:26 +05:30
Ankush Menat
7d2587c0a9 fix: nullish check and table name 2022-04-26 11:03:32 +05:30
HENRY Florian
143786aaa0
fix: Must not be able to start Job Card if it is related to Work Order that is not started yet (#29072)
* fix: Cannot start Job strat if related to Work Order not started yet

* fix: Cannot start Job strat if related to Work Order not started yet

* test

* test

* fix siders

* PR review

* chore: Code cleanup

- Better short circuit for if condition (make it such that both conditions dont always have to be computed)
- Remove `r.message` extraction by avoiding `then()`

* chore: Remove unnecessary json change

Co-authored-by: marination <maricadsouza221197@gmail.com>
2022-04-20 12:29:52 +05:30
marination
6315acc450 fix: Map correct company to PO made via Prod Plan (subcontract) 2022-04-13 11:47:58 +05:30
marination
2777c5c67c fix: Map Production Plan company in subassembly WO created from it 2022-04-12 14:30:01 +05:30
marination
5aa60bb651 test: Multiple RM transfer in separate Stock Entries
- Added test and acceptance of 0 as For Quantity in test helper
2022-04-11 16:44:55 +05:30
marination
be2e5ce966 style: Missing Semicolon 2022-04-11 15:32:57 +05:30
marination
dfff4beaf4 fix: Handle multiple item transfer in separate SEs against WO
- Check for pending qty in child items to show/hide "Start" button
- If no qty needed to transfer (FG qty is fulfilled), but RM qty pending: map pending in SE with For Quantity = 0
2022-04-11 14:10:57 +05:30
Ankush Menat
49560d20bc
fix: remove bad defaults from BOM operation (#30644)
[skip ci]
2022-04-08 11:23:02 +05:30
Ankush Menat
8e425252c4 chore: typo 2022-04-06 18:27:41 +05:30
Ankush Menat
eebcf2a9f1
fix: only trigger onload checks on saved docs (#30603) 2022-04-06 18:13:55 +05:30
Ankush Menat
52eb0a93bb
Merge pull request #30528 from s-aga-r/is-subcontracted-fieldtype
refactor!: change "is_subcontracted" field type from "Select" to "Check"
2022-04-04 14:01:20 +05:30