// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
using Admin.NET.Application.Entity;
using DocumentFormat.OpenXml.Bibliography;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.ChannelsECMerchantAddFreightTemplateRequest.Types.FreightTemplate.Types;
namespace Admin.NET.Application.CommonHelper;
///
/// 事务记录库存状态、质检状态入参
///
public class TransferStockDetail
{
///
/// 数量
///
public decimal Quantity { get; set; }
///
/// 库存状态
///
public StockStatusEnum? StockStatus { get; set; }
///
/// 质检状态
///
public StockQcStatusEnum? StockQcStatus { get; set; }
///
/// 锁定状态
///
public LockStatusEnum? LockStatus { get; set; }
///
/// 锁定原因
///
[SugarColumn(ColumnName = "LockReason", ColumnDescription = "锁定原因", Length = 255)]
public string? LockReason { get; set; }
///
/// 锁定人
///
[SugarColumn(ColumnName = "LockUser", ColumnDescription = "锁定人", Length = 50)]
public string? LockUser { get; set; }
///
/// 锁定时间
///
[SugarColumn(ColumnName = "LockTime", ColumnDescription = "锁定时间")]
public DateTime? LockTime { 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 string Remarks { get; set; }
}
public class LogRecordHelper
{
///
/// 创建库存变动记录
///
/// 业务类型信息
/// 源库存信息
/// 目标库存信息(包含库位 库区)
/// 目标库区
/// 目标库位
/// 其他信息(关联单号、行号、备注等)
///
public static WmsRecordTrans CreateWmsRecordTrans(
WmsBaseBusinessType businessTypeInfo,
v_wms_stock_quan sourceStockView,
WmsStockQuan toStockQuan,
WmsBasePlace toPlace,
TransferOtherDetail transferOtherDetail
)
{
var addWmsRecordTrans = new WmsRecordTrans
{
MoveType = businessTypeInfo.MoveType,
MoveTypeName = businessTypeInfo.MoveTypeName,
BusinessType = businessTypeInfo.BusinessTypeValue,
BusinessTypeName = businessTypeInfo.BusinessTypeName,
Batch = toStockQuan?.Batch,
SupplierBatch = toStockQuan?.SupplierBatch,
//RelationOrderType = orderType,
//RelationOrderTypeName = orderTypeName,
RelationNo = transferOtherDetail?.RelationNo,
RelationNoLineNumber = transferOtherDetail?.RelationNoLineNumber,
SourceSNCode = sourceStockView?.SNCode,
SourceQuantity = sourceStockView?.Quantity==null?0: sourceStockView?.Quantity,
ToSNCode = toStockQuan?.SNCode,
ToQuantity = toStockQuan?.Quantity==null?0 : toStockQuan?.Quantity,
SourceStockStatus = sourceStockView?.StockStatus,
SourceStockStatusName = sourceStockView?.StockStatusName,
ToStockStatus = toStockQuan?.StockStatus,
ToStockStatusName = toStockQuan?.StockStatusName,
SourceQCStatus = sourceStockView?.QCStatus,
SourceQCStatusName = sourceStockView?.QCStatusName,
ToQCStatus = toStockQuan?.QCStatus,
ToQCStatusName = toStockQuan?.QCStatusName,
SourceAreaCode = sourceStockView?.AreaCode,
SourceAreaName = sourceStockView?.AreaName,
SourcePlaceCode = sourceStockView?.PlaceCode,
SourcePlaceName = sourceStockView?.PlaceName,
SourceContainerCode = sourceStockView?.ContainerCode,
SourceContainerName = sourceStockView?.ContainerName,
ToAreaCode = toPlace?.AreaCode,
ToAreaName = toPlace?.AreaName,
ToPlaceCode = toPlace?.PlaceCode,
ToPlaceName = toPlace?.PlaceName,
ToContainerCode = toStockQuan?.ContainerCode,
//ToContainerName = targetDetail.ContainerName,
#region 冻结信息
SourceLockStatus = sourceStockView?.LockStatus,
ToLockStatus = toStockQuan?.LockStatus,
OperReason = toStockQuan?.OperReason,
OperUser = toStockQuan?.OperUser,
OperTime = toStockQuan?.OperTime,
#endregion
ErpCode = toStockQuan?.ErpCode,
ErpOrderNo = toStockQuan?.ErpOrderNo,
ErpVoucher = toStockQuan?.ErpVoucher,
MaterialCode = toStockQuan?.MaterialCode,
MaterialName = toStockQuan?.MaterialName,
MaterialUnit = toStockQuan?.MaterialUnit,
SupplierCode = toStockQuan?.SupplierCode,
SupplierName = toStockQuan?.SupplierName,
Remarks = transferOtherDetail?.Remarks
};
addWmsRecordTrans.ChangeQuantity = addWmsRecordTrans.ToQuantity - addWmsRecordTrans.SourceQuantity;
return addWmsRecordTrans;
}
}