mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-04 12:49:10 +00:00
Remove total_projected_qty (#12889)
This commit is contained in:
@@ -65,7 +65,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -151,7 +150,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -237,7 +235,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -323,7 +320,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -409,7 +405,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -495,7 +490,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -581,7 +575,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -667,7 +660,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -753,7 +745,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -839,7 +830,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -925,7 +915,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1011,7 +1000,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1097,7 +1085,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1183,7 +1170,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1269,7 +1255,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1355,7 +1340,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1441,7 +1425,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1527,7 +1510,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1613,7 +1595,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1699,7 +1680,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1785,7 +1765,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1871,7 +1850,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -1957,7 +1935,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2043,7 +2020,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2129,7 +2105,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2215,7 +2190,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2301,7 +2275,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2387,7 +2360,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2473,7 +2445,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2559,7 +2530,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2645,7 +2615,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2731,7 +2700,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2817,7 +2785,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2903,7 +2870,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -2989,7 +2955,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3075,7 +3040,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3161,7 +3125,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3247,7 +3210,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3333,7 +3295,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3419,7 +3380,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3505,7 +3465,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3591,7 +3550,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3677,7 +3635,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3763,7 +3720,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3849,7 +3805,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -3935,7 +3890,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4021,7 +3975,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4107,7 +4060,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4193,7 +4145,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4279,7 +4230,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4365,7 +4315,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4451,7 +4400,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4537,7 +4485,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4623,7 +4570,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4709,7 +4655,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4795,7 +4740,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4881,7 +4825,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -4967,7 +4910,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -5053,7 +4995,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -5139,7 +5080,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -5225,7 +5165,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -5311,7 +5250,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@@ -5397,7 +5335,6 @@
|
|||||||
"taxes": [],
|
"taxes": [],
|
||||||
"thumbnail": null,
|
"thumbnail": null,
|
||||||
"tolerance": 0.0,
|
"tolerance": 0.0,
|
||||||
"total_projected_qty": 0.0,
|
|
||||||
"uoms": [
|
"uoms": [
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_per
|
|||||||
from erpnext.manufacturing.doctype.production_order.production_order \
|
from erpnext.manufacturing.doctype.production_order.production_order \
|
||||||
import make_stock_entry, ItemHasVariantError, stop_unstop
|
import make_stock_entry, ItemHasVariantError, stop_unstop
|
||||||
from erpnext.stock.doctype.stock_entry import test_stock_entry
|
from erpnext.stock.doctype.stock_entry import test_stock_entry
|
||||||
from erpnext.stock.doctype.item.test_item import get_total_projected_qty
|
|
||||||
from erpnext.stock.utils import get_bin
|
from erpnext.stock.utils import get_bin
|
||||||
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
|
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
|
||||||
|
|
||||||
@@ -176,28 +175,6 @@ class TestProductionOrder(unittest.TestCase):
|
|||||||
self.assertEqual(self.bin1_at_start.projected_qty,
|
self.assertEqual(self.bin1_at_start.projected_qty,
|
||||||
cint(bin1_on_cancel.projected_qty))
|
cint(bin1_on_cancel.projected_qty))
|
||||||
|
|
||||||
def test_projected_qty_for_production_and_sales_order(self):
|
|
||||||
before_production_order = get_bin(self.item, self.warehouse)
|
|
||||||
before_production_order.update_reserved_qty_for_production()
|
|
||||||
|
|
||||||
self.pro_order = make_prod_order_test_record(item="_Test FG Item", qty=2,
|
|
||||||
source_warehouse=self.warehouse)
|
|
||||||
|
|
||||||
after_production_order = get_bin(self.item, self.warehouse)
|
|
||||||
|
|
||||||
sales_order = make_sales_order(item = self.item, qty = 2)
|
|
||||||
after_sales_order = get_bin(self.item, self.warehouse)
|
|
||||||
|
|
||||||
self.assertEqual(cint(before_production_order.reserved_qty_for_production) + 2,
|
|
||||||
cint(after_sales_order.reserved_qty_for_production))
|
|
||||||
self.assertEqual(cint(before_production_order.projected_qty),
|
|
||||||
cint(after_sales_order.projected_qty) + 2)
|
|
||||||
|
|
||||||
total_projected_qty = get_total_projected_qty(self.item)
|
|
||||||
|
|
||||||
item_doc = frappe.get_doc('Item', self.item)
|
|
||||||
self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
|
|
||||||
|
|
||||||
def test_reserved_qty_for_production_on_stock_entry(self):
|
def test_reserved_qty_for_production_on_stock_entry(self):
|
||||||
test_stock_entry.make_stock_entry(item_code="_Test Item",
|
test_stock_entry.make_stock_entry(item_code="_Test Item",
|
||||||
target= self.warehouse, qty=100, basic_rate=100)
|
target= self.warehouse, qty=100, basic_rate=100)
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from erpnext.stock.doctype.bin.bin import update_item_projected_qty
|
|||||||
|
|
||||||
def execute():
|
def execute():
|
||||||
repost_bin_qty()
|
repost_bin_qty()
|
||||||
repost_item_projected_qty()
|
|
||||||
|
|
||||||
def repost_bin_qty():
|
def repost_bin_qty():
|
||||||
for bin in frappe.db.sql(""" select name from `tabBin`
|
for bin in frappe.db.sql(""" select name from `tabBin`
|
||||||
@@ -15,14 +14,3 @@ def repost_bin_qty():
|
|||||||
bin_doc = frappe.get_doc('Bin', bin.name)
|
bin_doc = frappe.get_doc('Bin', bin.name)
|
||||||
bin_doc.set_projected_qty()
|
bin_doc.set_projected_qty()
|
||||||
bin_doc.db_set("projected_qty", bin_doc.projected_qty, update_modified = False)
|
bin_doc.db_set("projected_qty", bin_doc.projected_qty, update_modified = False)
|
||||||
|
|
||||||
def repost_item_projected_qty():
|
|
||||||
for data in frappe.db.sql(""" select
|
|
||||||
`tabBin`.item_code as item_code,
|
|
||||||
sum(`tabBin`.projected_qty) as projected_qty,
|
|
||||||
`tabItem`.total_projected_qty as total_projected_qty
|
|
||||||
from
|
|
||||||
`tabBin`, `tabItem`
|
|
||||||
where `tabBin`.item_code = `tabItem`.name
|
|
||||||
group by `tabBin`.item_code having projected_qty <> total_projected_qty """, as_dict=1):
|
|
||||||
update_item_projected_qty(data.item_code)
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import frappe
|
|||||||
from frappe.utils import flt, add_days
|
from frappe.utils import flt, add_days
|
||||||
import frappe.permissions
|
import frappe.permissions
|
||||||
import unittest
|
import unittest
|
||||||
from erpnext.stock.doctype.item.test_item import get_total_projected_qty
|
|
||||||
from erpnext.selling.doctype.sales_order.sales_order \
|
from erpnext.selling.doctype.sales_order.sales_order \
|
||||||
import make_material_request, make_delivery_note, make_sales_invoice, WarehouseRequired
|
import make_material_request, make_delivery_note, make_sales_invoice, WarehouseRequired
|
||||||
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
||||||
@@ -155,17 +154,9 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
dn = create_dn_against_so(so.name, 15)
|
dn = create_dn_against_so(so.name, 15)
|
||||||
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
|
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
|
||||||
|
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
item_doc_before_cancel = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc_before_cancel.total_projected_qty)
|
|
||||||
|
|
||||||
dn.cancel()
|
dn.cancel()
|
||||||
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
|
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
|
||||||
|
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
item_doc_after_cancel = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc_after_cancel.total_projected_qty)
|
|
||||||
|
|
||||||
def test_reserved_qty_for_over_delivery_via_sales_invoice(self):
|
def test_reserved_qty_for_over_delivery_via_sales_invoice(self):
|
||||||
make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
|
make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
|
||||||
|
|
||||||
@@ -183,10 +174,6 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
si.insert()
|
si.insert()
|
||||||
si.submit()
|
si.submit()
|
||||||
|
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
item_doc = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
|
|
||||||
|
|
||||||
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
|
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
|
||||||
|
|
||||||
so.load_from_db()
|
so.load_from_db()
|
||||||
@@ -195,9 +182,6 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
|
|
||||||
si.cancel()
|
si.cancel()
|
||||||
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
|
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
item_doc = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
|
|
||||||
|
|
||||||
so.load_from_db()
|
so.load_from_db()
|
||||||
self.assertEqual(so.get("items")[0].delivered_qty, 0)
|
self.assertEqual(so.get("items")[0].delivered_qty, 0)
|
||||||
@@ -229,10 +213,6 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
|
self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
|
||||||
self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"), existing_reserved_qty_item2)
|
self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"), existing_reserved_qty_item2)
|
||||||
|
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
item_doc = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
|
|
||||||
|
|
||||||
# unclose so
|
# unclose so
|
||||||
so.load_from_db()
|
so.load_from_db()
|
||||||
so.update_status('Draft')
|
so.update_status('Draft')
|
||||||
@@ -269,10 +249,6 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
|
|
||||||
dn = create_dn_against_so(so.name, 15)
|
dn = create_dn_against_so(so.name, 15)
|
||||||
|
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
item_doc = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
|
|
||||||
|
|
||||||
self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
|
self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
|
||||||
self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
|
self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
|
||||||
existing_reserved_qty_item2)
|
existing_reserved_qty_item2)
|
||||||
@@ -495,13 +471,6 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEquals(abs(flt(reserved_qty)), existing_reserved_qty_for_dn_item)
|
self.assertEquals(abs(flt(reserved_qty)), existing_reserved_qty_for_dn_item)
|
||||||
|
|
||||||
def test_total_projected_qty_against_sales_order(self):
|
|
||||||
so = make_sales_order(item = '_Test Item')
|
|
||||||
total_projected_qty = get_total_projected_qty('_Test Item')
|
|
||||||
|
|
||||||
item_doc = frappe.get_doc('Item', '_Test Item')
|
|
||||||
self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
|
|
||||||
|
|
||||||
def test_reserved_qty_for_closing_so(self):
|
def test_reserved_qty_for_closing_so(self):
|
||||||
bin = frappe.get_all("Bin", filters={"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"},
|
bin = frappe.get_all("Bin", filters={"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"},
|
||||||
fields=["reserved_qty"])
|
fields=["reserved_qty"])
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ def get_notification_config():
|
|||||||
"Warranty Claim": {"status": "Open"},
|
"Warranty Claim": {"status": "Open"},
|
||||||
"Task": {"status": ("in", ("Open", "Overdue"))},
|
"Task": {"status": ("in", ("Open", "Overdue"))},
|
||||||
"Project": {"status": "Open"},
|
"Project": {"status": "Open"},
|
||||||
"Item": {"total_projected_qty": ("<", 0)},
|
|
||||||
"Lead": {"status": "Open"},
|
"Lead": {"status": "Open"},
|
||||||
"Contact": {"status": "Open"},
|
"Contact": {"status": "Open"},
|
||||||
"Opportunity": {"status": "Open"},
|
"Opportunity": {"status": "Open"},
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ class Bin(Document):
|
|||||||
self.validate_mandatory()
|
self.validate_mandatory()
|
||||||
self.set_projected_qty()
|
self.set_projected_qty()
|
||||||
|
|
||||||
def on_update(self):
|
|
||||||
update_item_projected_qty(self.item_code)
|
|
||||||
|
|
||||||
def validate_mandatory(self):
|
def validate_mandatory(self):
|
||||||
qf = ['actual_qty', 'reserved_qty', 'ordered_qty', 'indented_qty']
|
qf = ['actual_qty', 'reserved_qty', 'ordered_qty', 'indented_qty']
|
||||||
for f in qf:
|
for f in qf:
|
||||||
@@ -94,11 +91,5 @@ class Bin(Document):
|
|||||||
self.db_set('projected_qty', self.projected_qty)
|
self.db_set('projected_qty', self.projected_qty)
|
||||||
|
|
||||||
|
|
||||||
def update_item_projected_qty(item_code):
|
|
||||||
'''Set total_projected_qty in Item as sum of projected qty in all warehouses'''
|
|
||||||
frappe.db.sql('''update tabItem set
|
|
||||||
total_projected_qty = ifnull((select sum(projected_qty) from tabBin where item_code=%s), 0)
|
|
||||||
where name=%s''', (item_code, item_code))
|
|
||||||
|
|
||||||
def on_doctype_update():
|
def on_doctype_update():
|
||||||
frappe.db.add_index("Bin", ["item_code", "warehouse"])
|
frappe.db.add_index("Bin", ["item_code", "warehouse"])
|
||||||
|
|||||||
@@ -3253,36 +3253,6 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "total_projected_qty",
|
|
||||||
"fieldtype": "Float",
|
|
||||||
"hidden": 1,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Total Projected Qty",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 1,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"allow_bulk_edit": 0,
|
||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
frappe.listview_settings['Item'] = {
|
frappe.listview_settings['Item'] = {
|
||||||
add_fields: ["item_name", "stock_uom", "item_group", "image", "variant_of",
|
add_fields: ["item_name", "stock_uom", "item_group", "image", "variant_of",
|
||||||
"has_variants", "end_of_life", "disabled", "total_projected_qty"],
|
"has_variants", "end_of_life", "disabled"],
|
||||||
filters: [["disabled", "=", "0"]],
|
filters: [["disabled", "=", "0"]],
|
||||||
|
|
||||||
get_indicator: function(doc) {
|
get_indicator: function(doc) {
|
||||||
@@ -8,8 +8,6 @@ frappe.listview_settings['Item'] = {
|
|||||||
return [__("Disabled"), "grey", "disabled,=,Yes"];
|
return [__("Disabled"), "grey", "disabled,=,Yes"];
|
||||||
} else if (doc.end_of_life && doc.end_of_life < frappe.datetime.get_today()) {
|
} else if (doc.end_of_life && doc.end_of_life < frappe.datetime.get_today()) {
|
||||||
return [__("Expired"), "grey", "end_of_life,<,Today"];
|
return [__("Expired"), "grey", "end_of_life,<,Today"];
|
||||||
} else if(doc.total_projected_qty < 0) {
|
|
||||||
return [__("Shortage"), "red", "total_projected_qty,<,0"];
|
|
||||||
} else if (doc.has_variants) {
|
} else if (doc.has_variants) {
|
||||||
return [__("Template"), "orange", "has_variants,=,Yes"];
|
return [__("Template"), "orange", "has_variants,=,Yes"];
|
||||||
} else if (doc.variant_of) {
|
} else if (doc.variant_of) {
|
||||||
|
|||||||
@@ -293,12 +293,6 @@ def make_item_variant():
|
|||||||
variant.item_name = "_Test Variant Item-S"
|
variant.item_name = "_Test Variant Item-S"
|
||||||
variant.save()
|
variant.save()
|
||||||
|
|
||||||
def get_total_projected_qty(item):
|
|
||||||
total_qty = frappe.db.sql(""" select sum(projected_qty) as projected_qty from tabBin
|
|
||||||
where item_code = %(item)s""", {'item': item}, as_dict=1)
|
|
||||||
|
|
||||||
return total_qty[0].projected_qty if total_qty else 0.0
|
|
||||||
|
|
||||||
test_records = frappe.get_test_records('Item')
|
test_records = frappe.get_test_records('Item')
|
||||||
|
|
||||||
def create_item(item_code, is_stock_item=None):
|
def create_item(item_code, is_stock_item=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user