using Admin.NET.Core.TaskModule.Enum;
using iWareSql.MyDbContext;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareCC.Common.Helper
{
///
/// 事务记录库存状态、质检状态入参
///
public class TransferStockDetail
{
///
/// 数量
///
public decimal Quantity { get; set; }
///
/// 库存状态
///
public int? StockStatus { get; set; }
///
/// 库存状态名称
///
public string StockStatusName { get; set; }
///
/// 质检状态
///
public int? StockQcStatus { get; set; }
///
/// 质检状态名称
///
public string StockQcStatusName { get; set; }
}
///
/// 事务记录入参
///
public class TransferDetail : TransferStockDetail
{
///
/// 跟踪号
///
public string SNCode { get; set; }
///
/// 库区
///
public string AreaCode { get; set; }
///
/// 库位编号
///
public string PlaceCode { get; set; }
///
/// 容器编号
///
public string ContainerCode { get; set; }
///
/// 库区名称
///
public string AreaName { get; set; }
///
///库位名称
///
public string PlaceName { get; set; }
///
/// 容器名称
///
public string ContainerName { get; set; }
}
///
/// 事务记录其他入参
///
public class TransferOtherDetail
{
///
/// 关联单号
///
public string RelationNo { get; set; }
///
/// 关联单行号
///
public string RelationNoLineNumber { get; set; }
///
/// 关联单类型
///
public int? RelationOrderType { get; set; }
///
/// 关联单类型名称
///
public string RelationOrderTypeName { get; set; }
///
/// 备注
///
public string Remarks { get; set; }
}
public class LogRecordHelper
{
///
/// 创建事务记录-仅库存或质检状态或数量变更用
///
///
///
///
///
/// 源信息
/// 目标信息
///
///
public static wms_record_trans CreateWmsRecordTrans(wms_task task,
v_wms_stock_quan wmsStockQuanView, TransferDetail sourceTransferDetail, TransferDetail targetTransferDetail, TransferOtherDetail transferOtherDetail)
{
wms_record_trans addWmsRecordTrans = new wms_record_trans()
{
Id=Yitter.IdGenerator.YitIdHelper.NextId(),
MoveType = (int)task.MoveType,
MoveTypeName = task.MoveTypeName,
BusinessType = task.BusinessType,
BusinessTypeName = task.BusinessTypeName,
Batch = wmsStockQuanView.Batch,
SupplierBatch = wmsStockQuanView.SupplierBatch,
//RelationOrderType = orderType,
//RelationOrderTypeName = relationOrderTypeName,
//RelationNo = transferOtherDetail?.RelationNo,
//RelationNoLineNumber = transferOtherDetail?.RelationNoLineNumber,
SourceSNCode = sourceTransferDetail.SNCode,
ToSNCode = targetTransferDetail.SNCode,
#region 变动属性
SourceQuantity = sourceTransferDetail.Quantity,
ToQuantity = targetTransferDetail.Quantity,
SourceStockStatus = (int)sourceTransferDetail?.StockStatus,
SourceStockStatusName = sourceTransferDetail?.StockStatusName,
ToStockStatus = (int)targetTransferDetail?.StockStatus,
ToStockStatusName = targetTransferDetail?.StockStatusName,
SourceQCStatus = (int)sourceTransferDetail?.StockQcStatus,
SourceQCStatusName = sourceTransferDetail?.StockQcStatusName,
ToQCStatus = (int)targetTransferDetail?.StockQcStatus,
ToQCStatusName = targetTransferDetail?.StockQcStatusName,
#endregion
SourceAreaCode = sourceTransferDetail.AreaCode,
SourceAreaName = sourceTransferDetail.AreaName,
SourcePlaceCode = sourceTransferDetail.PlaceCode,
SourcePlaceName = sourceTransferDetail.PlaceName,
SourceContainerCode = sourceTransferDetail.ContainerCode,
SourceContainerName = sourceTransferDetail.ContainerName,
ToAreaCode = targetTransferDetail.AreaCode,
ToAreaName = targetTransferDetail.AreaName,
ToPlaceCode = targetTransferDetail.PlaceCode,
ToPlaceName = targetTransferDetail.PlaceName,
ToContainerCode = targetTransferDetail.ContainerCode,
ToContainerName = targetTransferDetail.ContainerName,
ErpCode = wmsStockQuanView.ErpCode,
ErpOrderNo = wmsStockQuanView.ErpOrderNo,
ErpVoucher = wmsStockQuanView.ErpVoucher,
MaterialCode = wmsStockQuanView.MaterialCode,
MaterialName = wmsStockQuanView.MaterialName,
SupplierCode = wmsStockQuanView.SupplierCode,
SupplierName = wmsStockQuanView.SupplierName,
MaterialUnit = wmsStockQuanView.MaterialUnit,//库存单位
Remarks = transferOtherDetail?.Remarks,
CreateTime = DateTime.Now,
CreateUserId = 0,
CreateUserName =FormCC.WcsSysUserName
};
//变更数量=目标数量-源数量(根据业务场景有正负值,如:收货是正值,发货是负值)
addWmsRecordTrans.ChangeQuantity = addWmsRecordTrans.ToQuantity - addWmsRecordTrans.SourceQuantity;
return addWmsRecordTrans;
}
}
}