ScanListCell.m 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. //
  2. // ScanListCell.m
  3. // HMLG Scan Order
  4. //
  5. // Created by Rui Zhang on 3/30/22.
  6. // Copyright © 2022 United Software Applications, Inc. All rights reserved.
  7. //
  8. #import "ScanListCell.h"
  9. #import "RASingleton.h"
  10. #import "OLDataProvider.h"
  11. #import "ActiveViewController.h"
  12. #import "RAConvertor.h"
  13. #import "RAUtils.h"
  14. @implementation ScanListCell
  15. - (void)awakeFromNib {
  16. [super awakeFromNib];
  17. // Initialization code
  18. }
  19. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  20. [super setSelected:selected animated:animated];
  21. // Configure the view for the selected state
  22. }
  23. - (IBAction)onAddToCart:(id)sender {
  24. // DebugLog(@"shouldchangeedit %d_%d",indexPath.section,indexPath.row);
  25. if(RASingleton.sharedInstance.scan_cart ==nil)
  26. {
  27. // NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:URL_SO_CART ofType:@"json" ]];
  28. NSMutableDictionary* cartTemplate=[OLDataProvider loadScanTemplate:@"scan_cart.json"];
  29. RASingleton.sharedInstance.scan_cart=cartTemplate;//[[RAConvertor data2dict:json] mutableCopy];
  30. }
  31. // 初始化为 FOB CTNR;
  32. if(RASingleton.sharedInstance.scan_cart[@"price_type"] ==nil)
  33. {
  34. RASingleton.sharedInstance.scan_cart[@"price_type"] = @1;
  35. RASingleton.sharedInstance.price_type = 1;
  36. }
  37. NSMutableDictionary* section =[RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
  38. int count =[section[@"count"] intValue];
  39. NSMutableDictionary* jitem = nil;
  40. jitem = [self.modelJson mutableCopy];
  41. int stockUom =[jitem[@"stockUom"] intValue];
  42. if(stockUom==0)
  43. stockUom=1;
  44. bool newitem = true;
  45. for(int i=0;i<count;i++)
  46. {
  47. NSMutableDictionary* litem = [section[[NSString stringWithFormat:@"item_%i",i]] mutableCopy];
  48. if([litem[@"product_id"] isEqualToString:jitem[@"product_id"]])
  49. {
  50. // int oldcount = [litem[@"stockUom"] intValue];
  51. newitem = false;
  52. litem[@"count"]=@([litem[@"count"] intValue] +[jitem[@"count"] intValue]);
  53. litem[@"cuft"]=@([litem[@"count"] intValue] * [litem[@"unit_cuft"] doubleValue]);
  54. section[[NSString stringWithFormat:@"item_%i",i]] = litem;
  55. break;
  56. }
  57. }
  58. if(newitem)
  59. {
  60. jitem[@"count"]=@(stockUom);
  61. jitem[@"check"]=@(true);
  62. jitem[@"cart_item_id"]=[NSUUID UUID].UUIDString;
  63. NSString * unit_price;
  64. if(_modelJson [@"net_price"])
  65. unit_price=_modelJson[@"price3"];
  66. else if(_modelJson [@"special_price"])
  67. {
  68. unit_price= _modelJson[@"price2"];
  69. }
  70. else
  71. {
  72. unit_price= _modelJson[@"price1"];
  73. }
  74. if([unit_price isEqualToString:@"N/A"])
  75. unit_price = @"0";
  76. else
  77. {
  78. unit_price = [NSString stringWithFormat:@"%.2f", [unit_price doubleValue]];
  79. }
  80. jitem[@"unit_price"] = unit_price;
  81. jitem[@"erp_unit_price"] = unit_price;
  82. section[[NSString stringWithFormat:@"item_%i",count]] = jitem;
  83. section[@"count"]= @(count+1);
  84. count++;
  85. }
  86. RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
  87. //加list
  88. [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
  89. [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
  90. [RAUtils message_alert:@"Successfully" title:[NSString stringWithFormat: @"%@ added to cart",jitem[@"model"]] controller:[RAUtils getViewController:self]];
  91. }
  92. - (void)setModelJson:(NSMutableDictionary *)modelJson
  93. {
  94. _modelJson = modelJson;
  95. NSLog( [RAConvertor dict2string:modelJson]);
  96. NSString * port=_modelJson[@"port"];
  97. if(port.length==0)
  98. port = @"N/A";
  99. NSString * origin=_modelJson[@"origin"];
  100. if(origin.length==0)
  101. origin = @"N/A";
  102. NSString * dimension=_modelJson[@"dimension"];
  103. if(dimension.length==0)
  104. dimension = @"N/A";
  105. _labelModel.text=_modelJson[@"model"];
  106. _labelDescription.text=_modelJson[@"description"];
  107. _labelDimension.text=dimension;
  108. _labelCuft.text=_modelJson[@"unit_cuft"];
  109. _labelOrigin.text=origin;
  110. _labelPort.text=port;
  111. NSString* price0=_modelJson[@"price0"]; //DDP
  112. NSString* price1=_modelJson[@"price1"]; //WHSE
  113. NSString* price2=_modelJson[@"price2"]; //SHOW
  114. NSString* price3=_modelJson[@"price3"]; //%25
  115. if(![price0 isEqualToString: @"N/A"])
  116. price0 = [NSString stringWithFormat:@"%.2f",[_modelJson[@"price0"] doubleValue]];
  117. if(![price1 isEqualToString: @"N/A"])
  118. price1 = [NSString stringWithFormat:@"%.2f",[_modelJson[@"price1"] doubleValue]];
  119. if(![price2 isEqualToString: @"N/A"])
  120. {
  121. price2 = [NSString stringWithFormat:@"%.2f",[_modelJson[@"price2"] doubleValue]];
  122. _modelJson [@"special_price"] = @true;
  123. }
  124. if(![price3 isEqualToString: @"N/A"])
  125. price3 = [NSString stringWithFormat:@"%.2f",[_modelJson[@"price3"] doubleValue]];
  126. if(![_modelJson [@"special_price"] boolValue]&& ![price1 isEqualToString: @"N/A"] && [price1 isEqual:price3])
  127. {
  128. _modelJson [@"net_price"] = @true;
  129. }
  130. //
  131. // if(![price1 isEqualToString:@"N/A"])
  132. // {
  133. // price2 = [NSString stringWithFormat:@"%.2f",[_modelJson[@"price1"] doubleValue] *1.25];
  134. // _modelJson[@"price2"]= price2;
  135. // }
  136. // else
  137. // {
  138. // price2=@"N/A";
  139. // }
  140. //
  141. if([price0 isEqualToString:@"N/A"])
  142. _labelPriceCTNR.text= price0;
  143. else
  144. _labelPriceCTNR.text=[RAConvertor currencyNumber:[price0 floatValue]];
  145. if([price3 isEqualToString:@"N/A"])
  146. _labelPriceNCA.text= price3;
  147. else
  148. _labelPriceNCA.text=[RAConvertor currencyNumber:[price3 floatValue]];
  149. // _labelPrice25p.text=price2;
  150. NSString * available=_modelJson[@"available"];
  151. if(available.length==0)
  152. available = @"N/A";
  153. _labelAvailable.text=available;
  154. NSString * unit_cuft=_modelJson[@"unit_cuft"];
  155. if(unit_cuft.length==0)
  156. unit_cuft = @"N/A";
  157. else
  158. {
  159. unit_cuft = [NSString stringWithFormat:@"%.2f", [_modelJson[@"unit_cuft"] doubleValue]];
  160. }
  161. NSString * cell_price;
  162. if(RASingleton.sharedInstance.price_type==1)
  163. {
  164. // if(_modelJson [@"net_price"])
  165. cell_price=_modelJson[@"price3"];
  166. // else if(_modelJson [@"special_price"])
  167. // {
  168. // unit_price= _modelJson[@"price2"];
  169. // }
  170. // else
  171. // {
  172. // unit_price= _modelJson[@"price1"];
  173. // }
  174. }
  175. else
  176. {
  177. cell_price=_modelJson[@"price0"];
  178. }
  179. NSString * mpack=_modelJson[@"stockUom"];
  180. _modelJson[@"count"]=_modelJson[@"stockUom"];
  181. _modelJson[@"cuft"] = @([mpack intValue]* [unit_cuft doubleValue]);
  182. _modelJson[@"subtotal_price"] = @([mpack intValue]* [cell_price doubleValue]);
  183. }
  184. @end