mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-02 13:08:27 +00:00
fix: delivery schedule in the sales order
(cherry picked from commit 435db260ee)
This commit is contained in:
committed by
Mergify
parent
090aab33fb
commit
386f49978e
@@ -716,29 +716,32 @@ frappe.ui.form.on("Sales Order", {
|
|||||||
if (!frequency) {
|
if (!frequency) {
|
||||||
frappe.throw(__("Please select a frequency for delivery schedule"));
|
frappe.throw(__("Please select a frequency for delivery schedule"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!first_delivery_date) {
|
if (!first_delivery_date) {
|
||||||
frappe.throw(__("Please enter the first delivery date"));
|
frappe.throw(__("Please enter the first delivery date"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (no_of_deliveries <= 0) {
|
if (no_of_deliveries <= 0) {
|
||||||
frappe.throw(__("Please enter a valid number of deliveries"));
|
frappe.throw(__("Please enter a valid number of deliveries"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const month_mapper = {
|
||||||
|
Monthly: 1,
|
||||||
|
Quarterly: 3,
|
||||||
|
"Half Yearly": 6,
|
||||||
|
Yearly: 12,
|
||||||
|
};
|
||||||
|
|
||||||
frm.schedule_dialog.fields_dict.delivery_schedule.df.data = [];
|
frm.schedule_dialog.fields_dict.delivery_schedule.df.data = [];
|
||||||
let qty_to_deliver = row.qty;
|
let qty_to_deliver = row.qty;
|
||||||
let qty_per_delivery = qty_to_deliver / no_of_deliveries;
|
let qty_per_delivery = qty_to_deliver / no_of_deliveries;
|
||||||
for (let i = 0; i < no_of_deliveries; i++) {
|
|
||||||
let qty = qty_per_delivery;
|
|
||||||
if (must_be_whole_number) {
|
|
||||||
qty = cint(qty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i === no_of_deliveries - 1) {
|
for (let i = 0; i < no_of_deliveries; i++) {
|
||||||
// Last delivery, adjust the quantity to deliver the remaining amount
|
let qty;
|
||||||
|
const is_last = i === no_of_deliveries - 1;
|
||||||
|
|
||||||
|
if (is_last) {
|
||||||
qty = qty_to_deliver;
|
qty = qty_to_deliver;
|
||||||
qty_to_deliver = 0;
|
|
||||||
} else {
|
} else {
|
||||||
|
qty = must_be_whole_number ? cint(qty_per_delivery) : qty_per_delivery;
|
||||||
qty_to_deliver -= qty;
|
qty_to_deliver -= qty;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -747,20 +750,15 @@ frappe.ui.form.on("Sales Order", {
|
|||||||
qty: qty,
|
qty: qty,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (frequency === "Weekly") {
|
if (!is_last) {
|
||||||
first_delivery_date = frappe.datetime.add_days(first_delivery_date, i + 1 * 7);
|
if (frequency === "Weekly") {
|
||||||
} else {
|
first_delivery_date = frappe.datetime.add_days(first_delivery_date, 7);
|
||||||
let month_mapper = {
|
} else {
|
||||||
Monthly: 1,
|
first_delivery_date = frappe.datetime.add_months(
|
||||||
Quarterly: 3,
|
first_delivery_date,
|
||||||
Half_Yearly: 6,
|
month_mapper[frequency]
|
||||||
Yearly: 12,
|
);
|
||||||
};
|
}
|
||||||
|
|
||||||
first_delivery_date = frappe.datetime.add_months(
|
|
||||||
first_delivery_date,
|
|
||||||
month_mapper[frequency] * i + 1
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user