@@ -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