Skip to content

Commit 435db26

Browse files
fix: delivery schedule in the sales order
1 parent f894487 commit 435db26

1 file changed

Lines changed: 21 additions & 23 deletions

File tree

erpnext/selling/doctype/sales_order/sales_order.js

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -716,29 +716,32 @@ frappe.ui.form.on("Sales Order", {
716716
if (!frequency) {
717717
frappe.throw(__("Please select a frequency for delivery schedule"));
718718
}
719-
720719
if (!first_delivery_date) {
721720
frappe.throw(__("Please enter the first delivery date"));
722721
}
723-
724722
if (no_of_deliveries <= 0) {
725723
frappe.throw(__("Please enter a valid number of deliveries"));
726724
}
727725

726+
const month_mapper = {
727+
Monthly: 1,
728+
Quarterly: 3,
729+
"Half Yearly": 6,
730+
Yearly: 12,
731+
};
732+
728733
frm.schedule_dialog.fields_dict.delivery_schedule.df.data = [];
729734
let qty_to_deliver = row.qty;
730735
let qty_per_delivery = qty_to_deliver / no_of_deliveries;
736+
731737
for (let i = 0; i < no_of_deliveries; i++) {
732-
let qty = qty_per_delivery;
733-
if (must_be_whole_number) {
734-
qty = cint(qty);
735-
}
738+
let qty;
739+
const is_last = i === no_of_deliveries - 1;
736740

737-
if (i === no_of_deliveries - 1) {
738-
// Last delivery, adjust the quantity to deliver the remaining amount
741+
if (is_last) {
739742
qty = qty_to_deliver;
740-
qty_to_deliver = 0;
741743
} else {
744+
qty = must_be_whole_number ? cint(qty_per_delivery) : qty_per_delivery;
742745
qty_to_deliver -= qty;
743746
}
744747

@@ -747,20 +750,15 @@ frappe.ui.form.on("Sales Order", {
747750
qty: qty,
748751
});
749752

750-
if (frequency === "Weekly") {
751-
first_delivery_date = frappe.datetime.add_days(first_delivery_date, i + 1 * 7);
752-
} else {
753-
let month_mapper = {
754-
Monthly: 1,
755-
Quarterly: 3,
756-
Half_Yearly: 6,
757-
Yearly: 12,
758-
};
759-
760-
first_delivery_date = frappe.datetime.add_months(
761-
first_delivery_date,
762-
month_mapper[frequency] * i + 1
763-
);
753+
if (!is_last) {
754+
if (frequency === "Weekly") {
755+
first_delivery_date = frappe.datetime.add_days(first_delivery_date, 7);
756+
} else {
757+
first_delivery_date = frappe.datetime.add_months(
758+
first_delivery_date,
759+
month_mapper[frequency]
760+
);
761+
}
764762
}
765763
}
766764

0 commit comments

Comments
 (0)