@@ -82,16 +82,16 @@ export function calculatePromoCodePlanPrice(
8282) : PromoCodePlanPrice {
8383 const originalAmount = plan . monthlyCharge ;
8484 const planId = getPlanId ( plan ) ;
85- const isApplicable = isDiscountablePlan ( plan ) && isPlanApplicable ( benefit , plan ) ;
86-
87- if ( ! isApplicable ) {
88- return {
89- planId ,
90- isApplicable : false ,
91- originalAmount ,
92- finalAmount : originalAmount ,
93- discountAmount : 0 ,
94- } ;
85+ const result : PromoCodePlanPrice = {
86+ planId ,
87+ isApplicable : false ,
88+ originalAmount ,
89+ finalAmount : originalAmount ,
90+ discountAmount : 0 ,
91+ } ;
92+
93+ if ( ! isDiscountablePlan ( plan ) || ! isPlanApplicable ( benefit , plan ) ) {
94+ return result ;
9595 }
9696
9797 switch ( benefit . type ) {
@@ -100,51 +100,25 @@ export function calculatePromoCodePlanPrice(
100100 const discountAmount = Math . floor ( originalAmount * benefit . percent / 100 ) ;
101101 const finalAmount = Math . max ( originalAmount - discountAmount , minFinalPrice ) ;
102102
103- if ( finalAmount >= originalAmount ) {
104- return {
105- planId,
106- isApplicable : false ,
107- originalAmount,
108- finalAmount : originalAmount ,
109- discountAmount : 0 ,
110- } ;
103+ if ( finalAmount < originalAmount ) {
104+ result . isApplicable = true ;
105+ result . finalAmount = finalAmount ;
106+ result . discountAmount = originalAmount - finalAmount ;
111107 }
112108
113- return {
114- planId,
115- isApplicable : true ,
116- originalAmount,
117- finalAmount,
118- discountAmount : originalAmount - finalAmount ,
119- } ;
109+ return result ;
120110 }
121111
122112 case 'fixed_price' :
123- if ( benefit . amount >= originalAmount ) {
124- return {
125- planId,
126- isApplicable : false ,
127- originalAmount,
128- finalAmount : originalAmount ,
129- discountAmount : 0 ,
130- } ;
113+ if ( benefit . amount < originalAmount ) {
114+ result . isApplicable = true ;
115+ result . finalAmount = benefit . amount ;
116+ result . discountAmount = originalAmount - benefit . amount ;
131117 }
132118
133- return {
134- planId,
135- isApplicable : true ,
136- originalAmount,
137- finalAmount : benefit . amount ,
138- discountAmount : originalAmount - benefit . amount ,
139- } ;
119+ return result ;
140120
141121 default :
142- return {
143- planId,
144- isApplicable : false ,
145- originalAmount,
146- finalAmount : originalAmount ,
147- discountAmount : 0 ,
148- } ;
122+ return result ;
149123 }
150124}
0 commit comments