Commit 70926883 authored by Sandy's avatar Sandy

发运单收货逻辑完成

parent c8199aad
...@@ -4432,7 +4432,7 @@ ...@@ -4432,7 +4432,7 @@
); );
PRODUCT_BUNDLE_IDENTIFIER = com.gomore.xffruit; PRODUCT_BUNDLE_IDENTIFIER = com.gomore.xffruit;
PRODUCT_NAME = XFFruit; PRODUCT_NAME = XFFruit;
PROVISIONING_PROFILE = "e2cec26c-3666-4512-9b9a-cdb4cd9da56d"; PROVISIONING_PROFILE = "";
USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**"; USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**";
}; };
name = Debug; name = Debug;
...@@ -4457,7 +4457,7 @@ ...@@ -4457,7 +4457,7 @@
); );
PRODUCT_BUNDLE_IDENTIFIER = com.gomore.xffruit; PRODUCT_BUNDLE_IDENTIFIER = com.gomore.xffruit;
PRODUCT_NAME = XFFruit; PRODUCT_NAME = XFFruit;
PROVISIONING_PROFILE = "e2cec26c-3666-4512-9b9a-cdb4cd9da56d"; PROVISIONING_PROFILE = "";
USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**"; USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**";
}; };
name = Release; name = Release;
......
...@@ -358,6 +358,16 @@ typedef NS_ENUM(NSUInteger, ICRAttachmentType) { ...@@ -358,6 +358,16 @@ typedef NS_ENUM(NSUInteger, ICRAttachmentType) {
- (void)recievePurchase:(id)data - (void)recievePurchase:(id)data
success:(void (^)(id))succ success:(void (^)(id))succ
failure:(void (^)(id))fail; failure:(void (^)(id))fail;
/**
* 发运单收货
*
* @param data data description
* @param succ succ description
* @param fail fail description
*/
- (void)recieveTransport:(id)data
success:(void (^)(id))succ
failure:(void (^)(id))fail;
/** /**
* 获取采购单库存库存 * 获取采购单库存库存
* *
......
...@@ -2386,6 +2386,34 @@ acceptTypeJson:YES ...@@ -2386,6 +2386,34 @@ acceptTypeJson:YES
success:success success:success
failure:failure]; failure:failure];
} }
- (void)recieveTransport:(id)data
success:(void (^)(id))succ
failure:(void (^)(id))fail {
void (^success)(AFHTTPRequestOperation *operation, id responseObject) = ^(AFHTTPRequestOperation *operation, id responseObject) {
CLog(@"%@", responseObject);
if (succ) {
succ( responseObject );
}
};
void (^failure)(AFHTTPRequestOperation *operation, NSError *error) = ^(AFHTTPRequestOperation *operation, NSError *error) {
CLog(@"%@", error);
if (fail) {
fail( error );
}
};
ICRUserUtil *userUtil = [ICRUserUtil sharedInstance];
NSString *url = [NSString stringWithFormat:@"%@/transport/receive?time=%@&operId=%@&operName=%@",HTTP_REST_API_BASE_URL,[[NSDate date] httpParameterString],userUtil.userCode,userUtil.displayName];
NSString *encodeUrlStr = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[self POST:encodeUrlStr
parameters:data
needToken:NO
acceptTypeJson:YES
success:success
failure:failure];
}
/** /**
* 获取采购单库存库存 * 获取采购单库存库存
* *
......
...@@ -185,12 +185,15 @@ ...@@ -185,12 +185,15 @@
//发运单状态 //发运单状态
#define TRANSPORT_STATE_INITIAL @"initial" //未提交 #define TRANSPORT_STATE_INITIAL @"initial" //未提交
#define TRANSPORT_STATE_UNRECEIVED @"unreceived"//未收货 #define TRANSPORT_STATE_UNRECEIVED @"waitReceive"//未收货
#define TRANSPORT_STATE_RECEIVED @"received" //已收货 #define TRANSPORT_STATE_RECEIVED @"received" //已收货
#define TRANSPORT_STATE_ABORTED @"aborted" //已废用 #define TRANSPORT_STATE_ABORTED @"aborted" //已废用
#define TRANSPORT_STATE_FINISHED @"finished" //已完成 #define TRANSPORT_STATE_FINISHED @"finished" //已完成
#define TRANSPORT_STATE_PROCESS @"process"//提交系统处理 #define TRANSPORT_STATE_PROCESS @"process"//提交系统处理
#define TRANSPORT_STATE_PROCESSFAIL @"processFail"//系统处理失败 #define TRANSPORT_STATE_PROCESSFAIL @"processFail"//系统处理失败
//采购通知单状态 //采购通知单状态
//initial("未提交"), notAccepted("未接受"), purchasing("采购中"), finished("已完成") //initial("未提交"), notAccepted("未接受"), purchasing("采购中"), finished("已完成")
#define PURCHASENOTICE_STATE_INITIAL @"initial" #define PURCHASENOTICE_STATE_INITIAL @"initial"
......
...@@ -88,8 +88,6 @@ typedef enum : NSUInteger { ...@@ -88,8 +88,6 @@ typedef enum : NSUInteger {
* 外部单据号 * 外部单据号
*/ */
@property (strong, nonatomic) UILabel *labelOutSideNum; @property (strong, nonatomic) UILabel *labelOutSideNum;
@property (nonatomic,assign)BOOL isNotShowEdit;
//@property (nonatomic,strong)RejectView *rejectView;
@property (nonatomic,strong)NSString *rejectCause;//拒接原因 @property (nonatomic,strong)NSString *rejectCause;//拒接原因
@end @end
...@@ -103,7 +101,9 @@ typedef enum : NSUInteger { ...@@ -103,7 +101,9 @@ typedef enum : NSUInteger {
[self bulidLayout]; [self bulidLayout];
[self getDataFromServer]; [self getDataFromServer];
} }
- (void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)judgeType { - (void)judgeType {
if ([self.bill.state isEqualToString:PURCHASE_STATE_WAITE_RECIEVE] || if ([self.bill.state isEqualToString:PURCHASE_STATE_WAITE_RECIEVE] ||
[self.bill.state isEqualToString:PURCHASE_STATE_RECEIVED] || [self.bill.state isEqualToString:PURCHASE_STATE_RECEIVED] ||
...@@ -415,7 +415,6 @@ typedef enum : NSUInteger { ...@@ -415,7 +415,6 @@ typedef enum : NSUInteger {
_pvc = [[ReceiveProductViewController alloc]init]; _pvc = [[ReceiveProductViewController alloc]init];
_pvc.viewFrame = _recieveBottomView.bounds; _pvc.viewFrame = _recieveBottomView.bounds;
_pvc.isHiddenAdd = YES; _pvc.isHiddenAdd = YES;
_pvc.isHiddenEdit = self.isNotShowEdit;
[_recieveBottomView addSubview:_pvc.view]; [_recieveBottomView addSubview:_pvc.view];
}else{ }else{
_aBottomView = [[BottomPurchaseView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(_purchaseView.frame) + TopMargin, ScreenSize.width,300) withHidden:YES]; _aBottomView = [[BottomPurchaseView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(_purchaseView.frame) + TopMargin, ScreenSize.width,300) withHidden:YES];
...@@ -552,16 +551,20 @@ typedef enum : NSUInteger { ...@@ -552,16 +551,20 @@ typedef enum : NSUInteger {
[p setValuesForKeysWithDictionary:billDict]; [p setValuesForKeysWithDictionary:billDict];
billProbuct.purchasePdt = p; billProbuct.purchasePdt = p;
if (self.isCenter) { if ([self.bill.state isEqualToString:PURCHASE_STATE_WAITE_RECIEVE]) {
[billProbuct z_setRctQty:p.qty.floatValue];
}else if (self.isWms){ if (self.isCenter) {
[billProbuct z_setRctQty:0]; [billProbuct z_setRctQty:p.qty.floatValue];
}else if (self.isWms){
[billProbuct z_setRctQty:0];
}
} }
[productArr addObject:billProbuct]; [productArr addObject:billProbuct];
} }
_pvc.productArr = productArr; _pvc.productArr = productArr;
[_pvc.tableView reloadData]; [_pvc.tableView reloadData];
//如果是wms,非中心仓,则审核直接收货
if (self.isWms && self.isCenter == NO) { if (self.isWms && self.isCenter == NO) {
[self httpRecieve]; [self httpRecieve];
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#import "IBTModel.h" #import "IBTModel.h"
#import "PurchaseBillProduct.h" #import "PurchaseBillProduct.h"
#import "TransportPdtDetail.h"
@interface TransferPdtDetail : IBTModel @interface TransferPdtDetail : IBTModel
@property (nonatomic,strong)NSString *uuid; //唯一标识 @property (nonatomic,strong)NSString *uuid; //唯一标识
@property (nonatomic,strong)NSString *productUuid; //商品id @property (nonatomic,strong)NSString *productUuid; //商品id
...@@ -56,7 +57,9 @@ ...@@ -56,7 +57,9 @@
@property (nonatomic,strong)NSNumber *shippedQty;//发运包装数量 @property (nonatomic,strong)NSNumber *shippedQty;//发运包装数量
@property (nonatomic,strong)NSNumber *shippedBaseQty;//发运基础数量 @property (nonatomic,strong)NSNumber *shippedBaseQty;//发运基础数量
@property (strong, nonatomic) PurchaseBillProduct *purchasePdt; @property (strong, nonatomic) PurchaseBillProduct *purchasePdt;
@property (strong, nonatomic) TransportPdtDetail *transportPdt;
- (PurchaseBillProduct *)changeToPurchasePdt; - (PurchaseBillProduct *)changeToPurchasePdt;
- (TransportPdtDetail *)changeToTransportPdt;
- (void)z_setRctQty:(CGFloat)qty; - (void)z_setRctQty:(CGFloat)qty;
@end @end
...@@ -19,6 +19,13 @@ ...@@ -19,6 +19,13 @@
self.packprice = purchasePdt.price; self.packprice = purchasePdt.price;
self.rctQty = purchasePdt.receivedQty; self.rctQty = purchasePdt.receivedQty;
self.rctBaseQty = purchasePdt.receivedBaseQty; self.rctBaseQty = purchasePdt.receivedBaseQty;
}
- (void)setTransportPdt:(TransportPdtDetail *)transportPdt {
_transportPdt = transportPdt;
self.rctQty = transportPdt.receivedQty;
self.rctBaseQty = transportPdt.receivedBaseQty;
} }
- (PurchaseBillProduct *)changeToPurchasePdt { - (PurchaseBillProduct *)changeToPurchasePdt {
...@@ -32,6 +39,17 @@ ...@@ -32,6 +39,17 @@
return self.purchasePdt; return self.purchasePdt;
} }
- (TransportPdtDetail *)changeToTransportPdt {
if (!self.transportPdt) {
self.transportPdt = [TransportPdtDetail new];
NSDictionary *dict = [self dictForCommit];
[self.transportPdt setValuesForKeysWithDictionary:dict];
}
self.transportPdt.receivedQty = self.rctQty;
self.transportPdt.receivedBaseQty = self.rctBaseQty;
return self.transportPdt;
}
- (void)z_setRctQty:(CGFloat)qty { - (void)z_setRctQty:(CGFloat)qty {
//基础数量【实收】= 包装数量【实收】* 规格 //基础数量【实收】= 包装数量【实收】* 规格
float baseCount = qty * [self.qpc floatValue]; float baseCount = qty * [self.qpc floatValue];
......
...@@ -209,11 +209,20 @@ typedef enum : NSUInteger { ...@@ -209,11 +209,20 @@ typedef enum : NSUInteger {
[costs addObject:[fee dictForCommit]]; [costs addObject:[fee dictForCommit]];
} }
//获取到期时间
NSString *dateString = [[NSDate date] httpParameterString];
NSDateFormatter *f = [NSDateFormatter new];
[f setDateFormat:@"yyy-MM-dd HH:ss:mm"];
NSDate *date = [f dateFromString:dateString];
NSDate *new = [NSDate dateWithTimeInterval:60 * 60 * 24 * 5 sinceDate:date];
NSString *expiredTime = [f stringFromDate:new];
NSDictionary *dict = @{@"uuid":uuidObject, NSDictionary *dict = @{@"uuid":uuidObject,
@"version":versionObject, @"version":versionObject,
@"billnumber":billNumberObject, @"billnumber":billNumberObject,
@"enterprise":[ICRUserUtil sharedInstance].orgId, @"enterprise":[ICRUserUtil sharedInstance].orgId,
@"state":stateObject, @"state":stateObject,
@"expiredDate":expiredTime,
@"warehouseUuid":[IBTCommon checkString:_sheetView.warehouseUuid], @"warehouseUuid":[IBTCommon checkString:_sheetView.warehouseUuid],
@"warehouseCode":[IBTCommon checkString:_sheetView.warehouseCode], @"warehouseCode":[IBTCommon checkString:_sheetView.warehouseCode],
@"warehouseName":[IBTCommon checkString:_sheetView.warehouseName], @"warehouseName":[IBTCommon checkString:_sheetView.warehouseName],
......
...@@ -8,6 +8,26 @@ ...@@ -8,6 +8,26 @@
#import "ICRBaseViewController.h" #import "ICRBaseViewController.h"
#import "Transport.h" #import "Transport.h"
/**
* 发运单状态
*/
typedef NS_ENUM(NSInteger, TransportType) {
/**
* 审核之前的状态(已保存、已提交)
*/
TransportTypeBeforeSubmit = 1,
/**
* 审核之后的状态(待收货、发运中等。。)
*/
TransportTypeAfterSubmit,
};
@interface TransportDetailViewController : ICRBaseViewController @interface TransportDetailViewController : ICRBaseViewController
@property (nonatomic,strong)Transport *transport; @property (nonatomic,strong)Transport *transport;
@property (assign, nonatomic) TransportType type;
/**
* 收货仓库是否wms
*/
@property (nonatomic, assign) BOOL isWms;
@end @end
...@@ -82,7 +82,7 @@ NSInteger purchaseStockCheckNumber = 0; ...@@ -82,7 +82,7 @@ NSInteger purchaseStockCheckNumber = 0;
billNumberObject = self.contentStr; billNumberObject = self.contentStr;
} }
NSDictionary *dict = @{ NSDictionary *dict = @{
@"state":@"shipping", @"state":PURCHASE_STATE_RECEIVED,
@"queryOrders":orderArr, @"queryOrders":orderArr,
@"userUuid":userUtil.userId, @"userUuid":userUtil.userId,
@"billNumberProductLike":billNumberObject, @"billNumberProductLike":billNumberObject,
......
...@@ -450,10 +450,16 @@ typedef enum : NSUInteger { ...@@ -450,10 +450,16 @@ typedef enum : NSUInteger {
nvc.title = @"修改发运单"; nvc.title = @"修改发运单";
[self PushViewController:nvc animated:YES]; [self PushViewController:nvc animated:YES];
}else{ }else{
TransportDetailViewController *pvc = [TransportDetailViewController new]; [HTTP isWmsWarehouse:transport.rwarehouseUuid success:^(id succ) {
pvc.title = @"查看发运单"; TransportDetailViewController *pvc = [TransportDetailViewController new];
pvc.transport = transport; pvc.title = @"查看发运单";
[self PushViewController:pvc animated:YES]; pvc.type = TransportTypeAfterSubmit;
pvc.isWms = [succ[@"data"] boolValue];
pvc.transport = transport;
[self PushViewController:pvc animated:YES];
} failure:nil];
} }
} }
} }
...@@ -485,13 +491,13 @@ typedef enum : NSUInteger { ...@@ -485,13 +491,13 @@ typedef enum : NSUInteger {
} }
/* /*
#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
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
@property (nonatomic,strong)NSString *warehouseUuid;//仓库id @property (nonatomic,strong)NSString *warehouseUuid;//仓库id
@property (nonatomic,strong)NSString *warehouseCode;//仓库代码 @property (nonatomic,strong)NSString *warehouseCode;//仓库代码
@property (nonatomic,strong)NSString *warehouseName;//仓库名称 @property (nonatomic,strong)NSString *warehouseName;//仓库名称
@property (strong, nonatomic) NSString *enterprise;
@property (nonatomic,strong)NSString *rwarehouseUuid;//收货仓库id @property (nonatomic,strong)NSString *rwarehouseUuid;//收货仓库id
@property (nonatomic,strong)NSString *rwarehouseCode;//收货仓库代码 @property (nonatomic,strong)NSString *rwarehouseCode;//收货仓库代码
@property (nonatomic,strong)NSString *rwarehouseName;//收货仓库名称 @property (nonatomic,strong)NSString *rwarehouseName;//收货仓库名称
......
...@@ -32,5 +32,8 @@ ...@@ -32,5 +32,8 @@
@property (nonatomic,strong)NSString *carphone; //司机电话 @property (nonatomic,strong)NSString *carphone; //司机电话
@property (nonatomic,strong)NSString *carnumber; //车牌号 @property (nonatomic,strong)NSString *carnumber; //车牌号
@property (strong, nonatomic) NSNumber *receivedQty;//收货数量
@property (strong, nonatomic) NSNumber *receivedBaseQty;//收货基础数量
@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