|
|
@@ -1090,6 +1090,7 @@
|
|
|
-(void) cartrefresh: (NSNotification *)notification
|
|
|
{
|
|
|
[OLDataProvider scanRefreshCart];
|
|
|
+ [self updateSurchargeForCartSection];
|
|
|
[ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
|
|
|
// [self refresh_total];
|
|
|
// [self refresh_ui];
|
|
|
@@ -1424,6 +1425,7 @@
|
|
|
RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
|
|
|
RASingleton.sharedInstance.scan_cart[@"price_type"] = @0;
|
|
|
[OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
|
|
|
+ [self updateSurchargeForCartSection];
|
|
|
[self.cartIndicatorBar removeFromSuperview];
|
|
|
self.cartIndicatorBar = [self setupCartIndicatorBar];
|
|
|
[self.view addSubview:self.cartIndicatorBar];
|
|
|
@@ -1472,6 +1474,7 @@
|
|
|
RASingleton.sharedInstance.scan_cart[@"price_type"] = @1;
|
|
|
RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
|
|
|
[OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
|
|
|
+ [self updateSurchargeForCartSection];
|
|
|
[self.cartIndicatorBar removeFromSuperview];
|
|
|
self.cartIndicatorBar = [self setupCartIndicatorBar];
|
|
|
[self.view addSubview:self.cartIndicatorBar];
|
|
|
@@ -2288,6 +2291,48 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ 切换价格组或价格类型后,重新计算购物车每个 item 的 unit_surcharge。
|
|
|
+ price_type 和 price_group 从 RASingleton / AppDelegate 实时读取。
|
|
|
+ */
|
|
|
+- (void)updateSurchargeForCartSection {
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+ NSDictionary *price_group = [RADataProvider get_price_group:appDelegate.price_group];
|
|
|
+
|
|
|
+ NSMutableDictionary *section = [RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
|
|
|
+ int count = [section[@"count"] intValue];
|
|
|
+ for (int i = 0; i < count; i++) {
|
|
|
+ NSMutableDictionary *item = [section[[NSString stringWithFormat:@"item_%d", i]] mutableCopy];
|
|
|
+
|
|
|
+ // 与 onAddToCart / setScan_val 保持相同的 key 选取逻辑
|
|
|
+ NSString *unit_price_key;
|
|
|
+ if (RASingleton.sharedInstance.price_type == 0)
|
|
|
+ unit_price_key = price_group[@"price_0"][@"name"];
|
|
|
+ else if ([item[@"special_price"] boolValue])
|
|
|
+ unit_price_key = price_group[@"price_2"][@"name"];
|
|
|
+ else if ([item[@"net_price"] boolValue])
|
|
|
+ unit_price_key = price_group[@"price_3"][@"name"];
|
|
|
+ else
|
|
|
+ unit_price_key = price_group[@"price_1"][@"name"];
|
|
|
+
|
|
|
+ NSString *surcharge_key = [unit_price_key stringByAppendingString:@"_surcharge"];
|
|
|
+ id unit_surcharge_val = item[surcharge_key];
|
|
|
+ double surcharge_d = 0;
|
|
|
+ if (unit_surcharge_val != nil && unit_surcharge_val != [NSNull null]) {
|
|
|
+ if ([unit_surcharge_val isKindOfClass:[NSNumber class]])
|
|
|
+ surcharge_d = [unit_surcharge_val doubleValue];
|
|
|
+ else if ([unit_surcharge_val isKindOfClass:[NSString class]] &&
|
|
|
+ ![(NSString *)unit_surcharge_val isEqualToString:@"N/A"])
|
|
|
+ surcharge_d = [(NSString *)unit_surcharge_val doubleValue];
|
|
|
+ }
|
|
|
+ item[@"unit_surcharge"] = [NSString stringWithFormat:@"%.2f", surcharge_d];
|
|
|
+
|
|
|
+ section[[NSString stringWithFormat:@"item_%d", i]] = item;
|
|
|
+ }
|
|
|
+ RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
|
|
|
+ [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
|
|
|
+}
|
|
|
+
|
|
|
-(void)refresh_total
|
|
|
{
|
|
|
self.total=0;
|
|
|
@@ -2358,8 +2403,8 @@
|
|
|
int item_qty=1;
|
|
|
// NSDictionary * bundle_item =[item_json objectForKey:@"combine"];
|
|
|
|
|
|
- // surcharge = unit_surcharge * qty
|
|
|
- double msurcharge = [[item_json valueForKey:@"unit_surcharge"] doubleValue] * count;
|
|
|
+ // surcharge = unit_surcharge * qty,同样应用折扣
|
|
|
+ double msurcharge = [[item_json valueForKey:@"unit_surcharge"] doubleValue] * count * (1 - discount / 100.0);
|
|
|
|
|
|
|
|
|
// double dprice=0;
|
|
|
@@ -2429,6 +2474,7 @@
|
|
|
self.labelTotalSurcharge.text = surcharge;
|
|
|
self.labelTotalPrice.text = totalprice;
|
|
|
self.labelTotal.text=subtotal;
|
|
|
+ self.labelScanSubtotal.hidden = NO;
|
|
|
self.labelScanSubtotal.text = subtotal;
|
|
|
self.label_cuft.text=subcuft;
|
|
|
self.label_carton.text=subcarton;
|