2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///LOGIC CLASS FOR TABLE t_tmsTranRequest
|
|
|
|
|
///By wm with codesmith.
|
|
|
|
|
///on 07/26/2017
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using DeiNiu.wms.Data.Model;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Transactions;
|
|
|
|
|
using DeiNiu.Utils;
|
|
|
|
|
|
|
|
|
|
namespace DeiNiu.wms.Logical
|
|
|
|
|
{
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class lTmsTranRequest :lbase
|
|
|
|
|
{
|
|
|
|
|
TmsTranRequest _obj;
|
|
|
|
|
public lTmsTranRequest()
|
|
|
|
|
{
|
|
|
|
|
initialize();
|
|
|
|
|
}
|
|
|
|
|
public lTmsTranRequest(int operId)
|
|
|
|
|
: base(operId)
|
|
|
|
|
{
|
|
|
|
|
initialize();
|
|
|
|
|
}
|
|
|
|
|
public TmsTranRequest getTmsTranRequest
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _obj;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get all data
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DataSet getAllData()
|
|
|
|
|
{
|
|
|
|
|
return _obj.Query();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get all data
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DataSet getAllActiveData()
|
|
|
|
|
{
|
|
|
|
|
return _obj.QueryActived();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get a record by id
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void initialize(int id)
|
|
|
|
|
{
|
|
|
|
|
_obj = id != 0 ? new TmsTranRequest(id) : new TmsTranRequest();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get a record by id 0
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void initialize()
|
|
|
|
|
{
|
|
|
|
|
initialize(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get a record by id
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void initialize(DataRow dr)
|
|
|
|
|
{
|
|
|
|
|
_obj = new TmsTranRequest(dr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override DeiNiu.Data.BaseObject.BaseModel getModel()
|
|
|
|
|
{
|
|
|
|
|
return _obj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//begin cust db operation, query, excute sql etc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// update in a transaction scrop
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
|
|
public void update()
|
|
|
|
|
{
|
|
|
|
|
if (valid())
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
//Node tmp = new Node();
|
|
|
|
|
//tmp.parentid = 1;
|
|
|
|
|
//tmp.name = "test trans" + DateTime.Now;
|
|
|
|
|
//tmp.description = "this is for transTest";
|
|
|
|
|
//tmp.Add();
|
|
|
|
|
_obj.Update();
|
|
|
|
|
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool valid()
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
internal DataSet queryPickRequests(string query, int rownumStart, int rownumEnd)
|
|
|
|
|
{
|
|
|
|
|
return _obj.queryPickRequests(query, rownumStart, rownumEnd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal DataTable queryPickRequests4Report(string pickOrderNo)
|
|
|
|
|
{
|
|
|
|
|
DataTable dt = _obj.queryPickRequests4Report(pickOrderNo);
|
|
|
|
|
WmsOutPickRequest wpr = new WmsOutPickRequest(pickOrderNo);
|
|
|
|
|
if (string.IsNullOrEmpty(wpr.invoiceNo))
|
|
|
|
|
{
|
|
|
|
|
foreach (DataRow dr1 in dt.Rows)
|
|
|
|
|
{
|
|
|
|
|
dr1.BeginEdit();
|
|
|
|
|
wpr.invoiceNo = Utils.Util.getOrderNo(enumCreateOrderType.pickOutInvoice, wpr.getNextSeq(enumCreateOrderType.pickOutInvoice));
|
|
|
|
|
wpr.invoicedBy = LoginInfo.UserId;
|
|
|
|
|
dr1["invoiceNo"] = wpr.invoiceNo;
|
|
|
|
|
dr1["invoicedBy"] = LoginInfo.UserId;
|
|
|
|
|
dr1.EndEdit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return dt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal DataTable getFreeViechles()
|
|
|
|
|
{
|
|
|
|
|
return new TmsViechle().queryByStatus(Utils.enumViechleStatus.可用,Utils.enumViechleTransStatus.空闲 );
|
|
|
|
|
//return _obj.getViechles(Utils.enumViechleStatus.可用, Utils.enumTranStatus.配送结束);
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
internal DataTable getLatestPickRequestsByViechole(string plateId)
|
|
|
|
|
{
|
|
|
|
|
return getTmsTranRequest.getLatestPickRequestsByViechole(plateId);
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
/*
|
|
|
|
|
internal string creatTrans(string[] pickOrders, string orderNo, int thirdPart, int status, int lineId, string viechle, int tranType, int person, string contact, string phone, string description)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Utils.enumTranType tType = (enumTranType)(tranType);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TmsViechle tv = new TmsViechle(viechle);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (tType == enumTranType.自营配送 && (tv.state == (int)Utils.enumViechleStatus.不可用 || tv.transState !=(int) Utils.enumViechleTransStatus.空闲 ))
|
|
|
|
|
{
|
|
|
|
|
return viechle+ " 车辆不可用";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string tranOrder = string.IsNullOrEmpty(orderNo) ? Util.getOrderNo(enumCreateOrderType.transOrder, _obj.getNextSeq()) : orderNo;
|
|
|
|
|
TmsTranRequest tmr = new TmsTranRequest();
|
|
|
|
|
tmr.transNo = tranOrder;
|
|
|
|
|
tmr.tranType = tranType;
|
|
|
|
|
tmr.lineId = lineId;
|
|
|
|
|
tmr.viechleNo = viechle;
|
|
|
|
|
tmr.contact = contact;
|
|
|
|
|
tmr.phone = phone;
|
|
|
|
|
tmr.driver = person;
|
|
|
|
|
tmr.thirdPart = thirdPart;
|
|
|
|
|
tmr.description = description;
|
|
|
|
|
tmr.state = status;
|
|
|
|
|
tmr.operater = operId;
|
|
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
tmr.Add();
|
|
|
|
|
foreach (string pickOrder in pickOrders)
|
|
|
|
|
{
|
|
|
|
|
WmsOutPickRequest op = new WmsOutPickRequest(pickOrder);
|
|
|
|
|
|
|
|
|
|
if (op.state >= (int)enumOutStockRequestStatus.配送中)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
op.tranOrderNo = tranOrder;
|
|
|
|
|
op.state = (int)enumOutStockRequestStatus.配送中;
|
|
|
|
|
op.operater = operId;
|
|
|
|
|
op.Update();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TmsTranRequestDetail td = new TmsTranRequestDetail();
|
|
|
|
|
td.pickRequest = pickOrder;
|
|
|
|
|
td.transNo = tranOrder;
|
|
|
|
|
td.operater = operId;
|
|
|
|
|
td.Add();
|
|
|
|
|
i++;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (i > 0)
|
|
|
|
|
{
|
|
|
|
|
// tv.state = (int)Utils.enumViechleStatus.不可用;
|
|
|
|
|
tv.transState = (int)Utils.enumViechleTransStatus.装车;
|
|
|
|
|
tv.operater = operId;
|
|
|
|
|
tv.transOrder = tranOrder;
|
|
|
|
|
tv.Update();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return "创建失败";
|
|
|
|
|
}
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
return "创建成功";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "创建失败";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
internal string creatTrans(string[] pickOrders, TmsTranRequest tmsTranRequest)
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Utils.enumTranType tType = (enumTranType)(tmsTranRequest.tranType);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TmsViechle tv = new TmsViechle(tmsTranRequest.viechleNo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (tType == enumTranType.自营配送 && (tv.state == (int)Utils.enumViechleStatus.不可用 || tv.transState != (int)Utils.enumViechleTransStatus.空闲))
|
|
|
|
|
{
|
|
|
|
|
return tmsTranRequest.viechleNo + " 车辆不可用";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string tranOrder = string.IsNullOrEmpty(tmsTranRequest.transNo) ? Util.getOrderNo(enumCreateOrderType.transOrder, _obj.getNextSeq(enumCreateOrderType.transOrder)) : tmsTranRequest.transNo;
|
|
|
|
|
|
|
|
|
|
tmsTranRequest.transNo = tranOrder;
|
|
|
|
|
tmsTranRequest.operater = operId;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
tmsTranRequest.Add();
|
|
|
|
|
foreach (string pickOrder in pickOrders)
|
|
|
|
|
{
|
|
|
|
|
WmsOutPickRequest op = new WmsOutPickRequest(pickOrder);
|
|
|
|
|
|
2024-02-06 19:36:47 +08:00
|
|
|
|
if (op.state >= (int)enumOutStockRequestStatus.已出库)
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-06 19:36:47 +08:00
|
|
|
|
op.state = (int)enumOutStockRequestStatus.已出库;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
op.operater = operId;
|
|
|
|
|
op.transNo = tranOrder;
|
|
|
|
|
op.Update();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TmsTranRequestDetail td = new TmsTranRequestDetail();
|
|
|
|
|
td.pickOrderNo = pickOrder;
|
|
|
|
|
td.transNo = tranOrder;
|
|
|
|
|
td.operater = operId;
|
|
|
|
|
td.Add();
|
|
|
|
|
i++;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (i > 0)
|
|
|
|
|
{
|
|
|
|
|
// tv.state = (int)Utils.enumViechleStatus.不可用;
|
|
|
|
|
tv.transState = (int)Utils.enumViechleTransStatus.装车;
|
|
|
|
|
tv.operater = operId;
|
|
|
|
|
tv.transOrder = tranOrder;
|
|
|
|
|
tv.Update();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return "创建失败";
|
|
|
|
|
}
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
return "创建成功";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "创建失败";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string createSimpleTran(List<WmsOutPickRequest> pickOrders, WmsPlate plate)
|
|
|
|
|
{
|
|
|
|
|
TmsTranRequest tmsTranRequest = new TmsTranRequest();
|
|
|
|
|
tmsTranRequest.transNo = string.IsNullOrEmpty(plate.transNo) ? Util.getOrderNo(enumCreateOrderType.transOrder, _obj.getNextSeq(enumCreateOrderType.transOrder)) : plate.transNo;
|
|
|
|
|
tmsTranRequest.operater = operId;
|
|
|
|
|
tmsTranRequest.viechleNo = plate.plateId;
|
|
|
|
|
int i = 0;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
tmsTranRequest.Add();
|
|
|
|
|
foreach (WmsOutPickRequest op in pickOrders)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
op.operater = operId;
|
|
|
|
|
op.transNo = tmsTranRequest.transNo;
|
|
|
|
|
op.Update();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TmsTranRequestDetail td = new TmsTranRequestDetail();
|
|
|
|
|
td.pickOrderNo = op.pickOrderNo;
|
|
|
|
|
td.transNo = tmsTranRequest.transNo;
|
|
|
|
|
td.operater = operId;
|
|
|
|
|
td.Add();
|
|
|
|
|
i++;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-15 23:52:43 +08:00
|
|
|
|
//TODO: 创建装车复核任务
|
|
|
|
|
if (!WmsConstants.AUTO_LOAD_TRUCK_VALID //&& plate.state != (int)enumPlateStatus.待复核
|
|
|
|
|
// && (req.batchPickState > -1 && req.batchCheckedby == 0|| req.bulkPickState > -1 && req.bulkCheckedby == 0)
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
// WmsFlow vFlow = new WmsFlow(tmsTranRequest.transNo, tmsTranRequest.viechleNo, enumFlowTaskStatus.未开始, EnumFlowTaskType.出库装车复核);
|
|
|
|
|
// if (vFlow.ID == 0)
|
|
|
|
|
{
|
|
|
|
|
WmsFlow vFlow = new WmsFlow();
|
|
|
|
|
vFlow.operater = operId;
|
|
|
|
|
vFlow.orderNo = tmsTranRequest.transNo;
|
|
|
|
|
vFlow.flowNo = tmsTranRequest.viechleNo;
|
|
|
|
|
vFlow.type = (int)EnumFlowTaskType.出库装车复核;
|
|
|
|
|
vFlow.typeName = EnumFlowTaskType.出库装车复核.ToString();
|
|
|
|
|
vFlow.task = tmsTranRequest.transNo;
|
|
|
|
|
|
|
|
|
|
vFlow.taskCnt = 1;
|
|
|
|
|
vFlow.Add();
|
|
|
|
|
|
|
|
|
|
plate.state =(int) enumPlateStatus.待复核;
|
|
|
|
|
plate.Update();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// else
|
|
|
|
|
{
|
|
|
|
|
// vFlow.taskCnt ++;
|
|
|
|
|
// vFlow.Update();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
if (i > 0)
|
|
|
|
|
{
|
|
|
|
|
//plate.transNo = tmsTranRequest.transNo;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
return plate.transNo;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
internal bool updateTranStatus(string transOrder, int status, string mem)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
TmsTranRequest tr = new TmsTranRequest(transOrder);
|
|
|
|
|
tr.state = status;
|
|
|
|
|
tr.operater = operId;
|
|
|
|
|
tr.description += mem;
|
|
|
|
|
tr.description = tr.description.Length > 200 ? tr.description.Substring(0, 200) : tr.description;
|
|
|
|
|
tr.Update() ;
|
|
|
|
|
|
|
|
|
|
//update viechle
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(tr.viechleNo))
|
|
|
|
|
{
|
|
|
|
|
TmsViechle tv = new TmsViechle(tr.viechleNo);
|
|
|
|
|
tv.transState = (int)enumViechleTransStatus.空闲;
|
|
|
|
|
tv.operater = operId;
|
|
|
|
|
tv.Update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 从零库出库集货区取走打包的零货
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="stockId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
internal bool pickBulks(string tranNo,int stockId)
|
|
|
|
|
{
|
|
|
|
|
TmsStock ts = new TmsStock(stockId);
|
|
|
|
|
|
|
|
|
|
WmsStockRecord wsr = new WmsStockRecord();
|
|
|
|
|
|
|
|
|
|
wsr.orderNo = tranNo;
|
|
|
|
|
wsr.locationId = ts.locationId;
|
|
|
|
|
wsr.operater = operId;
|
|
|
|
|
wsr.count = ts.count;
|
|
|
|
|
wsr.goodsId = "打包散货";
|
2023-11-21 19:18:23 +08:00
|
|
|
|
wsr.rectype = (int)enumStockRecordType.集货拣货;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
ts.Delete();
|
|
|
|
|
wsr.Add();
|
|
|
|
|
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 集货完毕,装车
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="stockId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
internal string loadTrucks(string transNo, string pickOrderNo, int tranDetailId)
|
|
|
|
|
{
|
|
|
|
|
TmsTranRequestDetail trd = new TmsTranRequestDetail(tranDetailId);
|
|
|
|
|
int leftunLoadCnt = 0;
|
|
|
|
|
if (trd.transNo.Equals(transNo) && trd.pickOrderNo.Equals(pickOrderNo) && trd.state ==(int)enumTranDetailStatus.装车)
|
|
|
|
|
{
|
|
|
|
|
//检查是否有未集货零货
|
|
|
|
|
int leftBulksCnt = _obj.getPickRequestBulksCount(pickOrderNo);
|
|
|
|
|
if (leftunLoadCnt > 0)
|
|
|
|
|
{
|
|
|
|
|
return pickOrderNo + "有未集货打包零货,请先完成集货";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
trd.state = (int)enumTranDetailStatus.配送;
|
|
|
|
|
trd.operater = operId;
|
|
|
|
|
leftunLoadCnt = _obj.getTransRequestsDetailCount(transNo,enumTranDetailStatus.装车);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (leftunLoadCnt == 1)
|
|
|
|
|
{
|
|
|
|
|
_obj = new TmsTranRequest(transNo);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return "装车失败,数据不符";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (TransactionScope scope = new TransactionScope())
|
|
|
|
|
{
|
|
|
|
|
trd.Update();
|
|
|
|
|
if (leftunLoadCnt == 1)
|
|
|
|
|
{
|
|
|
|
|
_obj.state = (int)enumTranStatus.配送途中;
|
|
|
|
|
_obj.operater = operId;
|
|
|
|
|
_obj.Update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
scope.Complete();
|
|
|
|
|
}
|
|
|
|
|
return "";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
internal int updatePickInvoice(string pickOrderNo, string invoiceNo)
|
|
|
|
|
{
|
|
|
|
|
WmsOutPickRequest wpr = new WmsOutPickRequest(pickOrderNo);
|
|
|
|
|
wpr.invoiceNo = invoiceNo;
|
|
|
|
|
wpr.invoicePrintCnt++;
|
|
|
|
|
wpr.invoicedBy = LoginInfo.UserId;
|
|
|
|
|
return wpr.Update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|