Commit f4b160b0 authored by Sandy's avatar Sandy

解决新建发运单选择采购单时缓存已选择商品遗留的问题

parent c70042bf
...@@ -15,11 +15,11 @@ ...@@ -15,11 +15,11 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.2.18</string> <string>1.2.19</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.2.18</string> <string>1.2.19</string>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
<dict> <dict>
<key>NSAllowsArbitraryLoads</key> <key>NSAllowsArbitraryLoads</key>
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#import "TransportViewController.h" #import "TransportViewController.h"
#import "ShopDetaileViewController.h" #import "ShopDetaileViewController.h"
#import "PurchaseBill.h" #import "PurchaseBill.h"
#import "ProductStockModel.h"
NSInteger purchaseAddStockCheckNumber = 0;
typedef enum : NSUInteger { typedef enum : NSUInteger {
SaveTag = 7000, SaveTag = 7000,
CommitTag, CommitTag,
...@@ -148,9 +150,17 @@ typedef enum : NSUInteger { ...@@ -148,9 +150,17 @@ typedef enum : NSUInteger {
break; break;
case CommitTag:{ case CommitTag:{
if ([self checkTransport]) { if ([self checkTransport]) {
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"请确认提交" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确认", nil]; NSArray *array = self.dicProduct.allKeys;
alertView.delegate = self; __weak NewTransportViewController *weakSelf = self;
//判断数量问题
[IBTLoadingView showProgressLabel:@""];
[self stockValidWithDic:self.dicProduct billNumbers:array complete:^{
[IBTLoadingView hideHUDWithText:@""];
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"请确认提交" delegate:weakSelf cancelButtonTitle:@"取消" otherButtonTitles:@"确认", nil];
alertView.delegate = weakSelf;
[alertView show]; [alertView show];
}];
} }
} }
break; break;
...@@ -158,6 +168,53 @@ typedef enum : NSUInteger { ...@@ -158,6 +168,53 @@ typedef enum : NSUInteger {
break; break;
} }
} }
- (void)stockValidWithDic:(NSMutableDictionary *)dic billNumbers:(NSArray *)billNumbers complete:(void (^)(void))complete {
NSString *billNum = billNumbers[purchaseAddStockCheckNumber];
NSMutableArray *arrProducts = [dic objectForKey:billNum];
__weak NewTransportViewController *weakSelf = self;
[HTTP purchaseStockWithPurchaseUuid:billNum success:^(id succ) {
if (![succ[@"data"] isKindOfClass:[NSArray class]]) {
[IBTLoadingView hideHUDWithText:@""];
NSString *msg = [NSString stringWithFormat:@"该批次<%@>在总部系统的库存不足!", billNum];
ShowMessage(msg);
return ;
}
for (NSDictionary *dict in succ[@"data"]) {
ProductStockModel *model = [ProductStockModel new];
[model setValuesForKeysWithDictionary:dict];
for (TransportPdtDetail *detail in arrProducts) {
if ([detail.productCode isEqualToString:model.productCode]) {
if (detail.baseQty.floatValue > model.qty.floatValue) {
CLog(@"库存不足");
[IBTLoadingView hideHUDWithText:@""];
purchaseAddStockCheckNumber = 0;
NSString *msg = [NSString stringWithFormat:@"该批次<%@>的商品%@在总部系统的库存不足!", billNum, detail.productName];
ShowMessage(msg);
return ;
}
}
}
}
purchaseAddStockCheckNumber += 1;
if (purchaseAddStockCheckNumber == billNumbers.count) {
purchaseAddStockCheckNumber = 0;
complete();
}else{
[weakSelf stockValidWithDic:dic billNumbers:billNumbers complete:complete];
}
} failure:^(id fail) {
[IBTLoadingView hideHUDWithText:@""];
purchaseAddStockCheckNumber = 0;
}];
}
- (void)getDataFromServer:(NSString *)state msg:(NSString *)msg{ - (void)getDataFromServer:(NSString *)state msg:(NSString *)msg{
//保存 //保存
void(^succ)(id) = ^(id data) { void(^succ)(id) = ^(id data) {
......
...@@ -304,7 +304,7 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -304,7 +304,7 @@ NSInteger purchaseStockCheckNumber = 0;
- (void)sureClick{ - (void)sureClick{
// NSMutableDictionary *dicProduct = [NSMutableDictionary dictionary]; NSMutableDictionary *dicProduct = [NSMutableDictionary dictionary];
//把选中的商品和采购单对应,根据单号存储对应的商品 //把选中的商品和采购单对应,根据单号存储对应的商品
for (PurchaseBill *bill in self.dataArr) { for (PurchaseBill *bill in self.dataArr) {
for (TransportPdtDetail *detail in bill.products) { for (TransportPdtDetail *detail in bill.products) {
...@@ -313,7 +313,7 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -313,7 +313,7 @@ NSInteger purchaseStockCheckNumber = 0;
NSMutableArray *arrProduct = [self.dicProduct objectForKey:bill.billNumber]; NSMutableArray *arrProduct = [self.dicProduct objectForKey:bill.billNumber];
if (!arrProduct) { if (!arrProduct) {
arrProduct = [NSMutableArray array]; arrProduct = [NSMutableArray array];
[self.dicProduct setObject:arrProduct forKey:bill.billNumber]; [dicProduct setObject:arrProduct forKey:bill.billNumber];
} }
[arrProduct addObject:detail]; [arrProduct addObject:detail];
...@@ -321,16 +321,24 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -321,16 +321,24 @@ NSInteger purchaseStockCheckNumber = 0;
} }
} }
NSArray *array = self.dicProduct.allKeys; NSArray *array = dicProduct.allKeys;
if (array.count == 0) { if (array.count == 0) {
ShowMessage(@"请选择商品!"); ShowMessage(@"请选择商品!");
return; return;
} }
__weak TransportPurchaseViewController *weakSelf = self; __weak TransportPurchaseViewController *weakSelf = self;
//判断数量问题 //判断数量问题
[self stockValidWithDic:self.dicProduct billNumbers:array complete:^{ [IBTLoadingView showProgressLabel:@""];
[self stockValidWithDic:dicProduct billNumbers:array complete:^{
[IBTLoadingView hideHUDWithText:@""];
//库存足够时,把临时数据放入正式的缓存数据中
for (NSString *key in dicProduct.allKeys) {
NSMutableArray *arrTemp = [dicProduct objectForKey:key];
NSMutableArray *arrData = [weakSelf.dicProduct objectForKey:key];
[arrData addObjectsFromArray:arrTemp];
}
[weakSelf PopViewControllerAnimated:YES]; [weakSelf PopViewControllerAnimated:YES];
if (weakSelf.indexArr.count > 0) {
NSMutableArray*arr = [NSMutableArray array]; NSMutableArray*arr = [NSMutableArray array];
for (TransportPdtDetail *detail in weakSelf.indexArr) { for (TransportPdtDetail *detail in weakSelf.indexArr) {
detail.purchasePdtDetail = detail.uuid; detail.purchasePdtDetail = detail.uuid;
...@@ -350,7 +358,6 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -350,7 +358,6 @@ NSInteger purchaseStockCheckNumber = 0;
break; break;
} }
} }
}
}]; }];
...@@ -360,12 +367,13 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -360,12 +367,13 @@ NSInteger purchaseStockCheckNumber = 0;
} }
- (void)stockValidWithDic:(NSMutableDictionary *)dic billNumbers:(NSArray *)billNumbers complete:(void (^)(void))complete { - (void)stockValidWithDic:(NSMutableDictionary *)dic billNumbers:(NSArray *)billNumbers complete:(void (^)(void))complete {
NSString *billNum = billNumbers[purchaseStockCheckNumber]; NSString *billNum = billNumbers[purchaseStockCheckNumber];
NSMutableArray *arrProducts = [dic objectForKey:billNum]; NSMutableArray *arrProducts = [dic objectForKey:billNum];
__weak TransportPurchaseViewController *weakSelf = self; __weak TransportPurchaseViewController *weakSelf = self;
[HTTP purchaseStockWithPurchaseUuid:billNum success:^(id succ) { [HTTP purchaseStockWithPurchaseUuid:billNum success:^(id succ) {
if (![succ[@"data"] isKindOfClass:[NSArray class]]) { if (![succ[@"data"] isKindOfClass:[NSArray class]]) {
[IBTLoadingView hideHUDWithText:@""];
NSString *msg = [NSString stringWithFormat:@"该批次<%@>在总部系统的库存不足!", billNum]; NSString *msg = [NSString stringWithFormat:@"该批次<%@>在总部系统的库存不足!", billNum];
ShowMessage(msg); ShowMessage(msg);
return ; return ;
...@@ -378,6 +386,7 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -378,6 +386,7 @@ NSInteger purchaseStockCheckNumber = 0;
if ([detail.productCode isEqualToString:model.productCode]) { if ([detail.productCode isEqualToString:model.productCode]) {
if (detail.baseQty.floatValue > model.qty.floatValue) { if (detail.baseQty.floatValue > model.qty.floatValue) {
[IBTLoadingView hideHUDWithText:@""];
CLog(@"库存不足"); CLog(@"库存不足");
purchaseStockCheckNumber = 0; purchaseStockCheckNumber = 0;
NSString *msg = [NSString stringWithFormat:@"该批次<%@>的商品%@在总部系统的库存不足!", billNum, detail.productName]; NSString *msg = [NSString stringWithFormat:@"该批次<%@>的商品%@在总部系统的库存不足!", billNum, detail.productName];
...@@ -397,6 +406,7 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -397,6 +406,7 @@ NSInteger purchaseStockCheckNumber = 0;
} }
} failure:^(id fail) { } failure:^(id fail) {
[IBTLoadingView hideHUDWithText:@""];
purchaseStockCheckNumber = 0; purchaseStockCheckNumber = 0;
}]; }];
} }
...@@ -415,13 +425,13 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -415,13 +425,13 @@ NSInteger purchaseStockCheckNumber = 0;
} }
/* /*
#pragma mark - Navigation #pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation // In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController]. // Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller. // Pass the selected object to the new view controller.
} }
*/ */
@end @end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment