Commit Graph

1639 Commits

Author SHA1 Message Date
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