Commit d169f1ef authored by Sandy's avatar Sandy

改造转运单

parent 9f218ce9
......@@ -19,5 +19,6 @@
#define IsDictObject(Object) [(Object) isKindOfClass:[NSDictionary class]]
#define IsErrorObject(Object) ![(Object) isKindOfClass:[NSError class]]
#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self
#endif
......@@ -18,6 +18,7 @@
#import "TransportPdtDetail.h"
#import "ChooseTransportViewController.h"
#import "ChooseTransferViewController.h"
#import "ProductStockModel.h"
typedef enum : NSUInteger {
SaveTag = 7000,
CommitTag,
......@@ -37,6 +38,12 @@ typedef enum : NSUInteger {
NSNumber *versionObject;
}
@property (nonatomic,strong)NSString *state;
/**
* 缓存的选择的采购单数据
*/
@property (strong, nonatomic) NSMutableDictionary *dicProduct;
@property (assign, nonatomic) NSInteger purchaseAddStockCheckNumber;
@end
@implementation NewTransferViewController
......@@ -59,6 +66,7 @@ typedef enum : NSUInteger {
[super viewDidLoad];
//布局
[self bulidLayout];
self.purchaseAddStockCheckNumber = 0;
uuidObject = [NSNull null];
billNumberObject = [NSNull null];
versionObject = [NSNumber numberWithInteger:0];
......@@ -101,6 +109,18 @@ typedef enum : NSUInteger {
_sheetView.transfer = self.transfer;
[_bottomView refreshCost:self.transfer.accountDetails];
[_bottomView refreshTranProduct:self.transfer.pdtDetails];
//清空缓存,重新
[self.dicProduct removeAllObjects];
for (TransferPdtDetail *pdtDetail in _bottomView.productVC.transferProductArr) {
NSMutableArray *arrProduct = [self.dicProduct objectForKey:pdtDetail.sourcebillnumber];
if (!arrProduct) {
arrProduct = [NSMutableArray array];
[self.dicProduct setObject:arrProduct forKey:pdtDetail.sourcebillnumber];
}
[arrProduct addObject:pdtDetail];
}
}
- (void)bulidLayout{
......@@ -141,9 +161,17 @@ typedef enum : NSUInteger {
break;
case CommitTag:{
if ([self checkTransfer]) {
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"请确认提交" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确认", nil];
alertView.delegate = self;
[alertView show];
NSArray *array = self.dicProduct.allKeys;
WS(weakSelf);
//判断数量问题
[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];
}];
}
}
break;
......@@ -229,6 +257,59 @@ typedef enum : NSUInteger {
}
}
/**
* 查库存接口
*
* @param dic 存放已选择单据
* @param billNumbers 单号
* @param complete 回调
*/
- (void)stockValidWithDic:(NSMutableDictionary *)dic billNumbers:(NSArray *)billNumbers complete:(void (^)(void))complete {
//如果billNumbers数量为0,说明没有去选择
NSString *billNum = billNumbers[self.purchaseAddStockCheckNumber];
NSMutableArray *arrProducts = [dic objectForKey:billNum];
WS(weakSelf);
[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:@""];
self.purchaseAddStockCheckNumber = 0;
NSString *msg = [NSString stringWithFormat:@"该批次<%@>的商品%@在总部系统的库存不足!", billNum, detail.productName];
ShowMessage(msg);
return ;
}
}
}
}
self.purchaseAddStockCheckNumber += 1;
if (self.purchaseAddStockCheckNumber == billNumbers.count) {
self.purchaseAddStockCheckNumber = 0;
complete();
}else{
[weakSelf stockValidWithDic:dic billNumbers:billNumbers complete:complete];
}
} failure:^(id fail) {
[IBTLoadingView hideHUDWithText:@""];
self.purchaseAddStockCheckNumber = 0;
}];
}
- (BOOL)checkTransfer{
......@@ -294,6 +375,8 @@ typedef enum : NSUInteger {
[_bottomView reProduct:arr];
}
};
tpv.dicProduct = self.dicProduct;
[self PushViewController:tpv animated:YES];
}
#pragma mark - 通知选择发运单
......@@ -370,6 +453,7 @@ typedef enum : NSUInteger {
NSInteger indexTag = [[[fication userInfo] objectForKey:@"indexTag"] integerValue];
ShopDetaileViewController *svc = [[ShopDetaileViewController alloc] init];
svc.intertype = ShopDetailInterTypeTranfer;
if (billProduct) {
svc.navTitle = @"编辑商品";
ShopDetail *shopDetail=[self coverShopDetail:billProduct];
......@@ -378,6 +462,17 @@ typedef enum : NSUInteger {
TransferPdtDetail *tdetail = [self coverTransportPdtDetail:Detail];
if (Detail.IsDeleted) {
[_bottomView refreshDelProduct:tdetail tag:indexTag];
//清空缓存,重新
[self.dicProduct removeAllObjects];
for (TransferPdtDetail *pdtDetail in _bottomView.productVC.transferProductArr) {
NSMutableArray *arrProduct = [self.dicProduct objectForKey:pdtDetail.sourcebillnumber];
if (!arrProduct) {
arrProduct = [NSMutableArray array];
[self.dicProduct setObject:arrProduct forKey:pdtDetail.sourcebillnumber];
}
[arrProduct addObject:pdtDetail];
}
}else{
[_bottomView refreshEditProduct:tdetail tag:indexTag];
}
......@@ -527,6 +622,13 @@ typedef enum : NSUInteger {
}
}
- (NSMutableDictionary *)dicProduct {
if (!_dicProduct) {
_dicProduct = [NSMutableDictionary dictionary];
}
return _dicProduct;
}
/*
#pragma mark - Navigation
......
......@@ -202,7 +202,7 @@ typedef enum : NSUInteger {
NSArray *array = self.dicProduct.allKeys;
__weak NewTransportViewController *weakSelf = self;
WS(weakSelf);
//判断数量问题
[IBTLoadingView showProgressLabel:@""];
[self stockValidWithDic:self.dicProduct billNumbers:array complete:^{
......@@ -220,6 +220,13 @@ typedef enum : NSUInteger {
}
}
/**
* 查库存接口
*
* @param dic 存放已选择单据
* @param billNumbers 单号
* @param complete 回调
*/
- (void)stockValidWithDic:(NSMutableDictionary *)dic billNumbers:(NSArray *)billNumbers complete:(void (^)(void))complete {
//如果billNumbers数量为0,说明没有去选择
......
......@@ -86,7 +86,7 @@ NSInteger purchaseStockCheckNumber = 0;
}
NSDictionary *dict;
if (self.isTransportIn) {
// if (self.isTransportIn) {
dict = @{
@"state":PURCHASE_STATE_RECEIVED,
@"queryOrders":orderArr,
......@@ -96,17 +96,17 @@ NSInteger purchaseStockCheckNumber = 0;
@"isProductCenter":@(1),
@"pageNumber":@(_currentPage),
@"pageSize":@(20)};
}else{
dict = @{
@"state":[NSNull null],
@"stateNotIn":@[PURCHASE_STATE_ABORTED,PURCHASE_STATE_REJECTED],
@"queryOrders":orderArr,
@"userUuid":userUtil.userId,
@"billNumberProductLike":billNumberObject,
@"fetchParts":@"products",
@"pageNumber":@(_currentPage),
@"pageSize":@(20)};
}
// }else{
// dict = @{
// @"state":[NSNull null],
// @"stateNotIn":@[PURCHASE_STATE_ABORTED,PURCHASE_STATE_REJECTED],
// @"queryOrders":orderArr,
// @"userUuid":userUtil.userId,
// @"billNumberProductLike":billNumberObject,
// @"fetchParts":@"products",
// @"pageNumber":@(_currentPage),
// @"pageSize":@(20)};
// }
[[ICRHTTPController sharedController] queryPurchaseWithData:dict success:succ failure:fail];
}
- (void)fetchtPuchaseList:(id)data{
......
......@@ -22,6 +22,8 @@
@property (nonatomic,strong)NSMutableArray *indexArr;
@property (nonatomic,strong)NSMutableArray *selectArr;
/** 是否发运单进入 */
@property (assign, nonatomic) BOOL isPurchaseIn;
- (void)setPurchaseBill:(PurchaseBill *)bill selectArr:(NSMutableArray *)selectArr;
- (void)setTransPort:(Transport *)bill selectArr:(NSMutableArray *)selectArr;
......
......@@ -162,18 +162,21 @@
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
// TransportPurductCell *cell = (TransportPurductCell *)[tableView cellForRowAtIndexPath:indexPath];
// TransportPdtDetail * billProduct = self.secondArr[indexPath.row];
// if (![self isHaveIndexPath:billProduct]) {
// cell.editBtn.hidden = NO;
// [self.selectArr addObject:billProduct];
//
// }else{
// [self.selectArr removeObject:billProduct];
// cell.editBtn.hidden = YES;
// }
// self.headCell.checkBox.isSelected = self.selectArr.count == self.secondArr.count;
// [self.secondTable reloadData];
if (!self.isPurchaseIn) {
TransportPurductCell *cell = (TransportPurductCell *)[tableView cellForRowAtIndexPath:indexPath];
TransportPdtDetail * billProduct = self.secondArr[indexPath.row];
if (![self isHaveIndexPath:billProduct]) {
cell.editBtn.hidden = NO;
[self.selectArr addObject:billProduct];
}else{
[self.selectArr removeObject:billProduct];
cell.editBtn.hidden = YES;
}
self.headCell.checkBox.isSelected = self.selectArr.count == self.secondArr.count;
[self.secondTable reloadData];
}
}
- (BOOL)isHaveIndexPath:(TransportPdtDetail *)billProduct{
for (TransportPdtDetail *detail in self.selectArr) {
......
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