fix: delivery schedule in the sales order

(cherry picked from commit 435db260ee)
This commit is contained in:
Rohit Waghchaure
2026-04-22 21:36:51 +05:30
committed by Mergify
parent 090aab33fb
commit 386f49978e

View File

@@ -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
);
} }
} }