Commit 70926883 authored by Sandy's avatar Sandy

发运单收货逻辑完成

parent c8199aad
......@@ -4432,7 +4432,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = com.gomore.xffruit;
PRODUCT_NAME = XFFruit;
PROVISIONING_PROFILE = "e2cec26c-3666-4512-9b9a-cdb4cd9da56d";
PROVISIONING_PROFILE = "";
USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**";
};
name = Debug;
......@@ -4457,7 +4457,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = com.gomore.xffruit;
PRODUCT_NAME = XFFruit;
PROVISIONING_PROFILE = "e2cec26c-3666-4512-9b9a-cdb4cd9da56d";
PROVISIONING_PROFILE = "";
USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**";
};
name = Release;
......
......@@ -358,6 +358,16 @@ typedef NS_ENUM(NSUInteger, ICRAttachmentType) {
- (void)recievePurchase:(id)data
success:(void (^)(id))succ
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
success:success
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 @@
//发运单状态
#define TRANSPORT_STATE_INITIAL @"initial" //未提交
#define TRANSPORT_STATE_UNRECEIVED @"unreceived"//未收货
#define TRANSPORT_STATE_UNRECEIVED @"waitReceive"//未收货
#define TRANSPORT_STATE_RECEIVED @"received" //已收货
#define TRANSPORT_STATE_ABORTED @"aborted" //已废用
#define TRANSPORT_STATE_FINISHED @"finished" //已完成
#define TRANSPORT_STATE_PROCESS @"process"//提交系统处理
#define TRANSPORT_STATE_PROCESSFAIL @"processFail"//系统处理失败
//采购通知单状态
//initial("未提交"), notAccepted("未接受"), purchasing("采购中"), finished("已完成")
#define PURCHASENOTICE_STATE_INITIAL @"initial"
......
......@@ -88,8 +88,6 @@ typedef enum : NSUInteger {
* 外部单据号
*/
@property (strong, nonatomic) UILabel *labelOutSideNum;
@property (nonatomic,assign)BOOL isNotShowEdit;
//@property (nonatomic,strong)RejectView *rejectView;
@property (nonatomic,strong)NSString *rejectCause;//拒接原因
@end
......@@ -103,7 +101,9 @@ typedef enum : NSUInteger {
[self bulidLayout];
[self getDataFromServer];
}
- (void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)judgeType {
if ([self.bill.state isEqualToString:PURCHASE_STATE_WAITE_RECIEVE] ||
[self.bill.state isEqualToString:PURCHASE_STATE_RECEIVED] ||
......@@ -415,7 +415,6 @@ typedef enum : NSUInteger {
_pvc = [[ReceiveProductViewController alloc]init];
_pvc.viewFrame = _recieveBottomView.bounds;
_pvc.isHiddenAdd = YES;
_pvc.isHiddenEdit = self.isNotShowEdit;
[_recieveBottomView addSubview:_pvc.view];
}else{
_aBottomView = [[BottomPurchaseView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(_purchaseView.frame) + TopMargin, ScreenSize.width,300) withHidden:YES];
......@@ -552,16 +551,20 @@ typedef enum : NSUInteger {
[p setValuesForKeysWithDictionary:billDict];
billProbuct.purchasePdt = p;
if (self.isCenter) {
[billProbuct z_setRctQty:p.qty.floatValue];
}else if (self.isWms){
[billProbuct z_setRctQty:0];
if ([self.bill.state isEqualToString:PURCHASE_STATE_WAITE_RECIEVE]) {
if (self.isCenter) {
[billProbuct z_setRctQty:p.qty.floatValue];
}else if (self.isWms){
[billProbuct z_setRctQty:0];
}
}
[productArr addObject:billProbuct];
}
_pvc.productArr = productArr;
[_pvc.tableView reloadData];
//如果是wms,非中心仓,则审核直接收货
if (self.isWms && self.isCenter == NO) {
[self httpRecieve];
}
......
......@@ -8,6 +8,7 @@
#import "IBTModel.h"
#import "PurchaseBillProduct.h"
#import "TransportPdtDetail.h"
@interface TransferPdtDetail : IBTModel
@property (nonatomic,strong)NSString *uuid; //唯一标识
@property (nonatomic,strong)NSString *productUuid; //商品id
......@@ -56,7 +57,9 @@
@property (nonatomic,strong)NSNumber *shippedQty;//发运包装数量
@property (nonatomic,strong)NSNumber *shippedBaseQty;//发运基础数量
@property (strong, nonatomic) PurchaseBillProduct *purchasePdt;
@property (strong, nonatomic) TransportPdtDetail *transportPdt;
- (PurchaseBillProduct *)changeToPurchasePdt;
- (TransportPdtDetail *)changeToTransportPdt;
- (void)z_setRctQty:(CGFloat)qty;
@end
......@@ -19,6 +19,13 @@
self.packprice = purchasePdt.price;
self.rctQty = purchasePdt.receivedQty;
self.rctBaseQty = purchasePdt.receivedBaseQty;
}
- (void)setTransportPdt:(TransportPdtDetail *)transportPdt {
_transportPdt = transportPdt;
self.rctQty = transportPdt.receivedQty;
self.rctBaseQty = transportPdt.receivedBaseQty;
}
- (PurchaseBillProduct *)changeToPurchasePdt {
......@@ -32,6 +39,17 @@
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 {
//基础数量【实收】= 包装数量【实收】* 规格
float baseCount = qty * [self.qpc floatValue];
......
......@@ -209,11 +209,20 @@ typedef enum : NSUInteger {
[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,
@"version":versionObject,
@"billnumber":billNumberObject,
@"enterprise":[ICRUserUtil sharedInstance].orgId,
@"state":stateObject,
@"expiredDate":expiredTime,
@"warehouseUuid":[IBTCommon checkString:_sheetView.warehouseUuid],
@"warehouseCode":[IBTCommon checkString:_sheetView.warehouseCode],
@"warehouseName":[IBTCommon checkString:_sheetView.warehouseName],
......
......@@ -8,6 +8,26 @@
#import "ICRBaseViewController.h"
#import "Transport.h"
/**
* 发运单状态
*/
typedef NS_ENUM(NSInteger, TransportType) {
/**
* 审核之前的状态(已保存、已提交)
*/
TransportTypeBeforeSubmit = 1,
/**
* 审核之后的状态(待收货、发运中等。。)
*/
TransportTypeAfterSubmit,
};
@interface TransportDetailViewController : ICRBaseViewController
@property (nonatomic,strong)Transport *transport;
@property (assign, nonatomic) TransportType type;
/**
* 收货仓库是否wms
*/
@property (nonatomic, assign) BOOL isWms;
@end
......@@ -82,7 +82,7 @@ NSInteger purchaseStockCheckNumber = 0;
billNumberObject = self.contentStr;
}
NSDictionary *dict = @{
@"state":@"shipping",
@"state":PURCHASE_STATE_RECEIVED,
@"queryOrders":orderArr,
@"userUuid":userUtil.userId,
@"billNumberProductLike":billNumberObject,
......
......@@ -450,10 +450,16 @@ typedef enum : NSUInteger {
nvc.title = @"修改发运单";
[self PushViewController:nvc animated:YES];
}else{
TransportDetailViewController *pvc = [TransportDetailViewController new];
pvc.title = @"查看发运单";
pvc.transport = transport;
[self PushViewController:pvc animated:YES];
[HTTP isWmsWarehouse:transport.rwarehouseUuid success:^(id succ) {
TransportDetailViewController *pvc = [TransportDetailViewController new];
pvc.title = @"查看发运单";
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 {
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
......@@ -14,7 +14,7 @@
@property (nonatomic,strong)NSString *warehouseUuid;//仓库id
@property (nonatomic,strong)NSString *warehouseCode;//仓库代码
@property (nonatomic,strong)NSString *warehouseName;//仓库名称
@property (strong, nonatomic) NSString *enterprise;
@property (nonatomic,strong)NSString *rwarehouseUuid;//收货仓库id
@property (nonatomic,strong)NSString *rwarehouseCode;//收货仓库代码
@property (nonatomic,strong)NSString *rwarehouseName;//收货仓库名称
......
......@@ -32,5 +32,8 @@
@property (nonatomic,strong)NSString *carphone; //司机电话
@property (nonatomic,strong)NSString *carnumber; //车牌号
@property (strong, nonatomic) NSNumber *receivedQty;//收货数量
@property (strong, nonatomic) NSNumber *receivedBaseQty;//收货基础数量
@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