|
|
|
@ -0,0 +1,352 @@ |
|
|
|
using BWP.B3UnitedInfos.BO; |
|
|
|
using Forks.EnterpriseServices.DataForm; |
|
|
|
using System; |
|
|
|
using TSingSoft.WebControls2; |
|
|
|
using System.Web.UI.HtmlControls; |
|
|
|
using TSingSoft.WebPluginFramework.BLExports; |
|
|
|
using TSingSoft.WebPluginFramework.Controls; |
|
|
|
using BWP.Web.WebControls; |
|
|
|
using BWP.Web.Layout; |
|
|
|
using BWP.Web.Utils; |
|
|
|
using BWP.B3Sale.Utils; |
|
|
|
using BWP.B3Frameworks; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2; |
|
|
|
using BWP.B3Frameworks.Utils; |
|
|
|
using System.Web.UI.WebControls; |
|
|
|
using BWP.B3UnitedInfos; |
|
|
|
using BWP.B3Frameworks.BO.NamedValueTemplate; |
|
|
|
using BWP.B3ProduceUnitedInfos; |
|
|
|
using System.Linq; |
|
|
|
using System.Collections.Generic; |
|
|
|
using Forks.Utils; |
|
|
|
using Forks.EnterpriseServices.BusinessInterfaces; |
|
|
|
using BWP.B3Butchery.BL; |
|
|
|
using BWP.B3Butchery.BO; |
|
|
|
using BWP.Web.Pages.Utils; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3YunKen.ProductTask_ |
|
|
|
{ |
|
|
|
public class SaleOrderToProductNoticePage : AppBasePage |
|
|
|
{ |
|
|
|
QueryContainer mQueryContainer; |
|
|
|
DFBrowseGrid mBrowseGrid; |
|
|
|
private DFCheckBox cbxHideAlready; |
|
|
|
|
|
|
|
Type mType, mDetailType; |
|
|
|
DFInfo mDFInfo; |
|
|
|
DFInfo mDetailDFInfo; |
|
|
|
protected static DFInfo mGoodsDFInfo = DFInfo.Get(typeof(Goods)); |
|
|
|
protected static DFInfo mPropDFInfo = DFInfo.Get(typeof(GoodsProperty)); |
|
|
|
|
|
|
|
private DFChoiceBox ccbxEmployeeUnit, ccbxDepartment, ccbxProductionUnit; |
|
|
|
private DFDateInput cDateInput; |
|
|
|
private DFTextBox ccbxRemark; |
|
|
|
|
|
|
|
protected override void InitForm(HtmlForm form) |
|
|
|
{ |
|
|
|
if (!PluginInstalled.Installed("MainSystem", "B3Sale")) |
|
|
|
{ |
|
|
|
AspUtil.Alert(this, "没有安装销售模块"); |
|
|
|
return; |
|
|
|
} |
|
|
|
mType = Type.GetType("BWP.B3Sale.BO.Order,B3Sale"); |
|
|
|
mDetailType = Type.GetType("BWP.B3Sale.BO.Order_Detail,B3Sale"); |
|
|
|
mDFInfo = DFInfo.Get(mType); |
|
|
|
mDetailDFInfo = DFInfo.Get(mDetailType); |
|
|
|
mQueryContainer = QueryContainer.FromResource(GetType().FullName + ".xml", GetType().Assembly); |
|
|
|
|
|
|
|
form.Controls.Add(new PageTitle("订单转生产")); |
|
|
|
CreateQueryPanel(form.EAdd(new TitlePanel("查询条件"))); |
|
|
|
CreateResultPanel(form.EAdd(new TitlePanel("查询结果"))); |
|
|
|
} |
|
|
|
|
|
|
|
private void CreateResultPanel(TitlePanel titlePanel) |
|
|
|
{ |
|
|
|
mBrowseGrid = new DFBrowseGrid(new DFDataTableEditor()) { MultiSelectionEnabled = true, Width = Unit.Percentage(100) }; |
|
|
|
BuildGrid(mBrowseGrid); |
|
|
|
titlePanel.EAdd(mBrowseGrid); |
|
|
|
new Second_ConvertRatioRowManager(mBrowseGrid, "本次生产数量", "本次生产辅数量"); |
|
|
|
|
|
|
|
|
|
|
|
var hPanelB = titlePanel.EAdd(new HLayoutPanel()); |
|
|
|
|
|
|
|
hPanelB.Add(new SimpleLabel("生产单位")); |
|
|
|
hPanelB.Add(ccbxProductionUnit = new DFChoiceBox() { Width = 130, EnableTopItem = true, DataKind = B3ProduceUnitedInfosDataSources.生产单位全部 }); |
|
|
|
|
|
|
|
hPanelB.Add(new SimpleLabel("部门")); |
|
|
|
hPanelB.Add(ccbxDepartment = new DFChoiceBox() { Width = 130, EnableTopItem = true, DataKind = B3FrameworksConsts.DataSources.授权部门全部 }); |
|
|
|
|
|
|
|
hPanelB.Add(new SimpleLabel("经办人")); |
|
|
|
hPanelB.Add(ccbxEmployeeUnit = new DFChoiceBox() { Width = 130, EnableTopItem = true, DataKind = "授权员工" }); |
|
|
|
|
|
|
|
hPanelB.Add(new SimpleLabel("日期")); |
|
|
|
hPanelB.Add(cDateInput = new DFDateInput() { Width = 130, Date = DateTime.Today }); |
|
|
|
|
|
|
|
hPanelB.Add(new SimpleLabel("摘要")); |
|
|
|
hPanelB.Add(ccbxRemark = new DFTextBox(mDFInfo.Fields["Remark"])); |
|
|
|
|
|
|
|
hPanelB.Add(new TSButton("创建生产通知单", (sender, e) => CreateTruckLoadingClick())); |
|
|
|
|
|
|
|
titlePanel.EAdd(new Panel() { Height = 150 }); |
|
|
|
} |
|
|
|
|
|
|
|
private void CreateTruckLoadingClick() |
|
|
|
{ |
|
|
|
if (string.IsNullOrEmpty(ccbxProductionUnit.Value)) |
|
|
|
throw new Exception("请选择生产单位"); |
|
|
|
if (string.IsNullOrEmpty(ccbxDepartment.Value)) |
|
|
|
throw new Exception("请选择部门"); |
|
|
|
if (string.IsNullOrEmpty(ccbxEmployeeUnit.Value)) |
|
|
|
throw new Exception("请选择经办人"); |
|
|
|
if (!cDateInput.Value.HasValue) |
|
|
|
throw new Exception("请选择日期"); |
|
|
|
if (!mBrowseGrid.GetSelectedItems().Any()) |
|
|
|
throw new Exception("请选择行"); |
|
|
|
|
|
|
|
mBrowseGrid.GetFromUI(); |
|
|
|
|
|
|
|
var list = new List<tempSaleOrderToProductTaskModel>(); |
|
|
|
foreach (var row in mBrowseGrid.GetSelectedItems()) |
|
|
|
{ |
|
|
|
var customerId = (long)row["Customer_ID"]; |
|
|
|
var detailId = (long)row["Detail_ID"]; |
|
|
|
var goodsId = (long)row["Goods_ID"]; |
|
|
|
var remark = (string)row["Remark"]; |
|
|
|
var brandItem = Convert.ToInt64(row["BrandItem_ID"]); |
|
|
|
var unitNum = (Money<decimal>?)row["本次生产数量"]; |
|
|
|
var secondNumber = (Money<decimal>?)row["本次生产辅数量"]; |
|
|
|
var dmoid = (long?)row["DmoID"]; |
|
|
|
var dmotypeid = (short?)row["DmoTypeID"]; |
|
|
|
|
|
|
|
var goodsUnitConvertDirection = (NamedValue<主辅转换方向>?)row["Goods_UnitConvertDirection"]; |
|
|
|
var leftRatio = (Money<decimal>)row["LeftRatio"]; |
|
|
|
var rightRatio = (Money<decimal>)row["RightRatio"]; |
|
|
|
var model = new tempSaleOrderToProductTaskModel(); |
|
|
|
model.CustomerId = customerId; |
|
|
|
model.DetailId = detailId; |
|
|
|
model.GoodsId = goodsId; |
|
|
|
model.UnitNum = unitNum; |
|
|
|
model.SecondNumber = secondNumber; |
|
|
|
model.DmoID = dmoid; |
|
|
|
model.DmoTypeID = dmotypeid; |
|
|
|
if (brandItem > 0) |
|
|
|
model.BrandItem_ID = brandItem; |
|
|
|
model.Remark = remark; |
|
|
|
if (goodsUnitConvertDirection == 主辅转换方向.双向转换 || goodsUnitConvertDirection == 主辅转换方向.由主至辅) |
|
|
|
{ |
|
|
|
model.Number = unitNum * rightRatio / leftRatio; |
|
|
|
} |
|
|
|
|
|
|
|
list.Add(model); |
|
|
|
} |
|
|
|
long taskId = 0; |
|
|
|
using (var context = new TransactionContext()) |
|
|
|
{ |
|
|
|
UpdateOrderDetail(context.Session, list); |
|
|
|
taskId = CreateProductTask(context.Session, list); |
|
|
|
context.Commit(); |
|
|
|
} |
|
|
|
|
|
|
|
AspUtil.Alert(this, "成功创建生产通知单:" + taskId); |
|
|
|
|
|
|
|
StartQuery(); |
|
|
|
} |
|
|
|
|
|
|
|
private long CreateProductTask(IDmoSessionWithTransaction session, List<tempSaleOrderToProductTaskModel> list) |
|
|
|
{ |
|
|
|
var bl = BIFactory.Create<IProductNoticeBL>(session); |
|
|
|
//var accounitingId = long.Parse(ccbxAccountUnit.Value);
|
|
|
|
var departmentId = long.Parse(ccbxDepartment.Value); |
|
|
|
var productionUnitId = long.Parse(ccbxProductionUnit.Value); |
|
|
|
var inputDate = cDateInput.Value.Value; |
|
|
|
var remark = ccbxRemark.Text; |
|
|
|
|
|
|
|
var minEmployee = DomainUserUtil.GetCurrentBindingMinEmployee(); |
|
|
|
var employeeID = minEmployee == null ? (long?)null : minEmployee.ID; |
|
|
|
|
|
|
|
var dmo = new ProductNotice(); |
|
|
|
//dmo.AccountingUnit_ID = accounitingId;
|
|
|
|
dmo.Department_ID = departmentId; |
|
|
|
dmo.ProductionUnit_ID = productionUnitId; |
|
|
|
dmo.Date = inputDate; |
|
|
|
dmo.Employee_ID = employeeID; |
|
|
|
dmo.Remark = remark; |
|
|
|
foreach (var grouping in list.GroupBy(x => x.GoodsId)) |
|
|
|
{ |
|
|
|
var goodsId = grouping.Key; |
|
|
|
var fd = grouping.FirstOrDefault(); |
|
|
|
if (fd == null) |
|
|
|
{ continue; } |
|
|
|
foreach (IGrouping<long?, tempSaleOrderToProductTaskModel> models in grouping.GroupBy(x => x.CustomerId)) |
|
|
|
{ |
|
|
|
var det = models.FirstOrDefault(); |
|
|
|
var customerId = models.Key; |
|
|
|
var number = models.Sum(x => (decimal?)x.UnitNum ?? 0); |
|
|
|
var secondNumber = models.Sum(x => (decimal?)x.SecondNumber ?? 0); |
|
|
|
var detail = new ProductNotice_Detail(); |
|
|
|
detail.Goods_ID = goodsId; |
|
|
|
detail.Number = number; |
|
|
|
detail.SecondNumber = secondNumber; |
|
|
|
detail.Detail_Customer_ID = customerId; |
|
|
|
detail.BrandItem_ID = det.BrandItem_ID; |
|
|
|
detail.Remark = det.Remark; |
|
|
|
detail.DmoID = det.DmoID; |
|
|
|
detail.DmoTypeID = det.DmoTypeID; |
|
|
|
dmo.Details.Add(detail); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bl.InitNewDmo(dmo); |
|
|
|
bl.Insert(dmo); |
|
|
|
return dmo.ID; |
|
|
|
} |
|
|
|
|
|
|
|
private void UpdateOrderDetail(IDmoSessionWithTransaction session, List<tempSaleOrderToProductTaskModel> list) |
|
|
|
{ |
|
|
|
foreach (var model in list) |
|
|
|
{ |
|
|
|
var updateDom = new DQUpdateDom(mDetailType); |
|
|
|
updateDom.Where.Conditions.Add(DQCondition.EQ("ID", model.DetailId)); |
|
|
|
updateDom.Columns.Add(new DQUpdateColumn("B3Butcher_UnitNum", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("B3Butcher_UnitNum"), DQExpression.Value(0)), DQExpression.Value(model.UnitNum)))); |
|
|
|
|
|
|
|
updateDom.Columns.Add(new DQUpdateColumn("B3Butcher_Num", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("B3Butcher_Num"), DQExpression.Value(0)), DQExpression.Value(model.Number)))); |
|
|
|
|
|
|
|
updateDom.Columns.Add(new DQUpdateColumn("B3Butcher_SecondNumber", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("B3Butcher_SecondNumber"), DQExpression.Value(0)), DQExpression.Value(model.SecondNumber)))); |
|
|
|
|
|
|
|
session.ExecuteNonQuery(updateDom); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void BuildGrid(DFBrowseGrid grid) |
|
|
|
{ |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("ID")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("BillState")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("BrandItem_Name")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("Customer_Name")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("Department_Name")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("OrderDate")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("Goods_Name")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("Goods_MainUnit")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("Number")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("Goods_SecondUnit")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("SecondNumber")); |
|
|
|
grid.Columns.Add(new DFEditGridColumn<DFTextBox>("Remark")); |
|
|
|
grid.Columns.Add(new DFEditGridColumn<DFTextBox>("本次生产数量")); |
|
|
|
grid.Columns.Add(new DFEditGridColumn<DFTextBox>("本次生产辅数量")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("AccountingUnit_Name")); |
|
|
|
grid.Columns.Add(new DFBrowseGridColumn("BrandItem_Name")); |
|
|
|
grid.ValueColumns.Add("Goods_MainUnitRatio"); |
|
|
|
grid.ValueColumns.Add("Goods_SecondUnitRatio"); |
|
|
|
grid.ValueColumns.Add("Goods_UnitConvertDirection"); |
|
|
|
grid.ValueColumns.Add("LeftRatio"); |
|
|
|
grid.ValueColumns.Add("RightRatio"); |
|
|
|
grid.ValueColumns.Add("Detail_ID"); |
|
|
|
grid.ValueColumns.Add("Goods_ID"); |
|
|
|
grid.ValueColumns.Add("Customer_ID"); |
|
|
|
grid.ValueColumns.Add("BrandItem_ID"); |
|
|
|
grid.ValueColumns.Add("DmoID"); |
|
|
|
grid.ValueColumns.Add("DmoTypeID"); |
|
|
|
} |
|
|
|
|
|
|
|
public void CreateQueryPanel(TitlePanel panel) |
|
|
|
{ |
|
|
|
var manager = new LayoutManager("", mDFInfo, mQueryContainer); |
|
|
|
manager.Add("Customer_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Customer_ID"], B3SaleDataSources.客户)); |
|
|
|
manager.Add("Department_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Department_ID"], "授权部门")); |
|
|
|
manager.Add("OrderDate", QueryCreator.TimeRange(mDFInfo.Fields["OrderDate"], mQueryContainer, "MinOrderDate", "MaxOrderDate")); |
|
|
|
manager.Add("LoadTime", new SimpleLabel("出库时间"), QueryCreator.TimeRange(mDFInfo.Fields["LoadTime"], mQueryContainer, "MinLoadTime", "MaxLoadTime")); |
|
|
|
manager.Add("CustomerCatalog_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["CustomerCatalog_ID"], "客户分类")); |
|
|
|
manager.Add("Employee_ID", new SimpleLabel("经办人"), QueryCreator.DFChoiceBox(mDFInfo.Fields["Employee_ID"], "授权员工")); |
|
|
|
manager.Add("Store_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Store_ID"], B3FrameworksConsts.DataSources.授权仓库)); |
|
|
|
manager.Add("ID", QueryCreator.DFTextBox(mDFInfo.Fields["ID"])); |
|
|
|
manager.Add("ProductLine_ID", new SimpleLabel("产品线"), QueryCreator.DFChoiceBox(mGoodsDFInfo.Fields["ProductLine_ID"], "B3UnitedInfos.产品线")); |
|
|
|
manager.Add("AccountingUnit_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.授权会计单位全部)); |
|
|
|
manager.Add("BillState", QueryCreator.一般单据状态(mDFInfo.Fields["BillState"])); |
|
|
|
manager.Add("BrandItem_ID", new SimpleLabel("品牌项"), QueryCreator.DFChoiceBox(mDetailDFInfo.Fields["BrandItem_ID"], B3UnitedInfosConsts.DataSources.品牌项)); |
|
|
|
|
|
|
|
cbxHideAlready = new DFCheckBox() { Text = "隐藏已转明细", Checked = true }; |
|
|
|
manager.Add("隐藏已转明细", cbxHideAlready); |
|
|
|
manager["隐藏已转明细"].NoLabel = true; |
|
|
|
|
|
|
|
manager.CreateDefaultConfig(8); |
|
|
|
panel.Controls.Add(manager.CreateLayout()); |
|
|
|
|
|
|
|
var hPanel = panel.EAdd(new HLayoutPanel()); |
|
|
|
hPanel.Add(new TSButton("开始查询", delegate { StartQuery(); })); |
|
|
|
hPanel.Add(new RedirectTSButton("清除条件")); |
|
|
|
} |
|
|
|
void StartQuery() |
|
|
|
{ |
|
|
|
mBrowseGrid.Reset(); |
|
|
|
mBrowseGrid.Query = GetQueryDom(); |
|
|
|
mBrowseGrid.DataBind(); |
|
|
|
} |
|
|
|
|
|
|
|
private DQueryDom GetQueryDom() |
|
|
|
{ |
|
|
|
var detail = JoinAlias.Create("detail"); |
|
|
|
var dom = mQueryContainer.Build(); |
|
|
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); |
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Field("ID", "单号")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Customer_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Department_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("BillState")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("OrderDate")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("LoadTime")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("CustomerCatalog_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("AccountingUnit_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Remark")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Remark", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("DmoTypeID", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("DmoID", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("BrandItem_ID", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("BrandItem_Name", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_Code", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_Name", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_Spec", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("UnitNum", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("SecondNumber", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_MainUnit", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Number", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_MainUnitRatio", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_SecondUnitRatio", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Goods_UnitConvertDirection", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("LeftRatio", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("RightRatio", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("LeftRatio", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("RightRatio", detail)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(detail, "ID"), "Detail_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(detail, "SaleGoods_ID"), "Goods_ID")); |
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.Field(detail, "UnitNum"), DQExpression.IfNull(DQExpression.Field(detail, "B3Butcher_Num"), DQExpression.Value(0))), "本次生产数量")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.Field(detail, "SecondNumber"), DQExpression.IfNull(DQExpression.Field(detail, "B3Butcher_SecondNumber"), DQExpression.Value(0))), "本次生产辅数量")); |
|
|
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); |
|
|
|
|
|
|
|
if (cbxHideAlready.Checked) |
|
|
|
{ |
|
|
|
dom.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field(detail, "B3Butcher_UnitNum")), DQCondition.LessThan(DQExpression.IfNull(DQExpression.Field(detail, "B3Butcher_UnitNum"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(detail, "UnitNum"), DQExpression.Value(0))))); |
|
|
|
} |
|
|
|
return dom; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
class tempSaleOrderToProductTaskModel |
|
|
|
{ |
|
|
|
public long DetailId { get; set; } |
|
|
|
public long GoodsId { get; set; } |
|
|
|
public long? CustomerId { get; set; } |
|
|
|
public long? DmoID { get; set; } |
|
|
|
public short? DmoTypeID { get; set; } |
|
|
|
public Money<decimal>? UnitNum { get; set; } |
|
|
|
public Money<decimal>? SecondNumber { get; set; } |
|
|
|
public Money<decimal>? Number { get; set; } |
|
|
|
public long BrandItem_ID { get; set; } |
|
|
|
public string Remark { get; set; } |
|
|
|
} |
|
|
|
} |