Browse Source

需求单No.137235,耘垦增加【订单转生产】

master
duanluohua 8 years ago
parent
commit
9812037e1a
6 changed files with 566 additions and 3 deletions
  1. +11
    -0
      BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj
  2. +352
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/ProductTask_/SaleOrderToProductNoticePage.cs
  3. +78
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/ProductTask_/SaleOrderToProductNoticePage.xml
  4. +0
    -3
      BWP.B3_YunKen.Web/Pages/MainToSecondConvertRowManger.cs
  5. +120
    -0
      BWP.B3_YunKen.Web/Pages/Utils/Second_ConvertRatioRowManager.cs
  6. +5
    -0
      WebFolder/Config/Plugins/B3_YunKen.Plugin

+ 11
- 0
BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj View File

@ -44,6 +44,10 @@
</Reference>
<Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="B3Frameworks.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="B3ProduceUnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\release\B3ProduceUnitedInfos.dll</HintPath>
</Reference>
<Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Sale.dll</HintPath>
@ -108,6 +112,9 @@
<Compile Include="Pages\B3YunKen\Overlays\SaleOutStoreEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\ProductTask_\SaleOrderToProductNoticePage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\Reports\CustomerStopByTaskReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@ -118,6 +125,7 @@
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\MainToSecondConvertRowManger.cs" />
<Compile Include="Pages\Utils\Second_ConvertRatioRowManager.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PluginClass.cs" />
</ItemGroup>
@ -159,6 +167,9 @@
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\Reports\CustomerStopByTaskReport.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\ProductTask_\SaleOrderToProductNoticePage.xml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.


+ 352
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/ProductTask_/SaleOrderToProductNoticePage.cs View File

@ -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; }
}
}

+ 78
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/ProductTask_/SaleOrderToProductNoticePage.xml View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<Join type="Left">
<Join type="Left">
<Join type="Left">
<DmoClass class="BWP.B3Sale.BO.Order,B3Sale" alias="order"/>
<DmoClass class="BWP.B3Sale.BO.Order_Detail,B3Sale" alias="detail"/>
<Condition>
<EQ>
<Field name="ID" alias="order"/>
<Field name="Order_ID" alias="detail"/>
</EQ>
</Condition>
</Join>
<DmoClass class="BWP.B3UnitedInfos.BO.Goods, B3UnitedInfos" alias="goods"/>
<Condition>
<EQ>
<Field name="ID" alias="goods"/>
<Field name="SaleGoods_ID" alias="detail"/>
</EQ>
</Condition>
</Join>
<DmoClass class="BWP.B3UnitedInfos.BO.GoodsProperty, B3UnitedInfos" alias="prop"/>
<Condition>
<EQ>
<Field name="GoodsProperty_ID" alias="goods"/>
<Field name="ID" alias="prop"/>
</EQ>
</Condition>
</Join>
</From>
<Where>
<And>
<EQ>
<Field name="Customer_ID" />
<QBE paramName="Customer_ID"/>
</EQ>
<EQ>
<Field name="Department_ID" />
<QBE paramName="Department_ID"/>
</EQ>
<EQ>
<Field name="CustomerCatalog_ID" />
<QBE paramName="CustomerCatalog_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID" />
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="Store_ID" />
<QBE paramName="Store_ID"/>
</EQ>
<EQ>
<Field name="GoodsPropertyCatalog_ID" alias="prop" />
<QBE paramName="GoodsPropertyCatalog_ID"/>
</EQ>
<EQ>
<Field name="BrandItem_ID" />
<QBE paramName="BrandItem_ID"/>
</EQ>
<EQ>
<Field name="ProductLine_ID" />
<QBE paramName="ProductLine_ID"/>
</EQ>
</And>
</Where>
</Select>

+ 0
- 3
BWP.B3_YunKen.Web/Pages/MainToSecondConvertRowManger.cs View File

@ -1,8 +1,5 @@
using BWP.B3Sale.BL;
using Forks.EnterpriseServices.BusinessInterfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;


+ 120
- 0
BWP.B3_YunKen.Web/Pages/Utils/Second_ConvertRatioRowManager.cs View File

@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.Utils
{
public class Second_ConvertRatioRowManager
{
readonly DFEditGridColumn<DFTextBox> _unitNumInput;
readonly DFEditGridColumn<DFTextBox> _secondNumberInput;
readonly string _unitNumField;
readonly string _secondNumberField;
private const string ConvertDirection = "dfContainer.getValue('Goods_UnitConvertDirection')";
private const string MainUnitRatio = "dfContainer.getValue('Goods_MainUnitRatio')";
private const string SecondUnitRatio = "dfContainer.getValue('Goods_SecondUnitRatio')";
private const string LeftRatio = "dfContainer.getValue('LeftRatio')";
private const string RightRatio = "dfContainer.getValue('RightRatio')";
public Second_ConvertRatioRowManager(DFGridBase grid) : this(grid, "UnitNum", "SecondNumber")
{
}
public Second_ConvertRatioRowManager(DFGridBase grid, string unitNumfield, string secondfield)
{
_unitNumField = unitNumfield;
_secondNumberField = secondfield;
foreach (DFGridColumn column in grid.Columns)
{
if (column is DFEditGridColumn<DFTextBox>)
{
var c = (DFEditGridColumn<DFTextBox>)column;
if (c.Name == unitNumfield)
{
_unitNumInput = c;
}
else if (c.Name == secondfield)
_secondNumberInput = c;
}
}
SetClientScript();
}
private void SetClientScript()
{
SetUnitNumChanged();
// SetMainNumberChanged();
SetSecondNumberChanged();
}
private void SetSecondNumberChanged()//辅至主
{
if (_secondNumberInput == null)
return;
var builder = new StringBuilder();
if (_unitNumInput != null)
{
builder.Append(@"if({convertDirection}=='双向转换'||{convertDirection}=='由辅至主'){alert(1); if({ratioRight}>0 && {ratioLeft}>0 && {unitRatioLeft} > 0 && {unitRatioRight}>0)
{alert('1');{setUnitNum}}}"
.Replace("{convertDirection}", ConvertDirection)
.Replace("{ratioRight}", SecondUnitRatio)
.Replace("{ratioLeft}", MainUnitRatio)
.Replace("{unitRatioLeft}", LeftRatio)
.Replace("{unitRatioRight}", RightRatio)
.Replace("{setUnitNum}", SetUnitNumBySecondNumber));
}
_secondNumberInput.InitEditControl += delegate (object sender, InitEditControlEventArgs<DFTextBox> e)
{
e.Control.Attributes["onchange"] = builder.ToString();
};
}
private void SetUnitNumChanged()//主至辅
{
if (_unitNumInput == null)
return;
var builder = new StringBuilder();
if (_secondNumberInput != null)
{
builder.Append(@"if({convertDirection}=='双向转换'||{convertDirection}=='由主至辅'){if({unitRatioLeft} > 0 && {unitRatioRight}>0 && {ratioRight}>0 && {ratioLeft}>0){{SetSecondNumberByUnitNum}}}"
.Replace("{convertDirection}", ConvertDirection)
.Replace("{ratioLeft}", MainUnitRatio)
.Replace("{ratioRight}", SecondUnitRatio)
.Replace("{unitRatioLeft}", LeftRatio)
.Replace("{unitRatioRight}", RightRatio)
.Replace("{SetSecondNumberByUnitNum}", SetSecondNumberByUnitNum)
);
}
_unitNumInput.InitEditControl += delegate (object sender, InitEditControlEventArgs<DFTextBox> e)
{
e.Control.Attributes["onchange"] = builder.ToString();
};
}
string SetSecondNumberByUnitNum
{
get
{
return string.Format("var number = dfContainer.getValue('{0}')/{1}*{2}; dfContainer.setValue('{3}', (number /{4}*{5}).toFixed(6));", _unitNumField, LeftRatio, RightRatio, _secondNumberField, MainUnitRatio, SecondUnitRatio);
}
}
string SetUnitNumBySecondNumber
{
get
{
return string.Format("var number = dfContainer.getValue('{0}')*{1}/{2};dfContainer.setValue('{3}', (number/{4}*{5}).toFixed(2));", _secondNumberField, MainUnitRatio, SecondUnitRatio, _unitNumField, RightRatio, LeftRatio);
}
}
}
}

+ 5
- 0
WebFolder/Config/Plugins/B3_YunKen.Plugin View File

@ -22,6 +22,10 @@
<Function index="0" name="访问" />
</FunctionGroup>
<FunctionGroup name="订单转生产" roleSchemas="employee">
<Function index="0" name="访问" />
</FunctionGroup>
<FunctionGroup name="报表" roleSchemas="employee">
<Function index="0" name="客户停用表" />
@ -36,6 +40,7 @@
<Menu id="0002" name="/B3耘垦模块/耘垦出库转验收" roles="B3Sale.客户验收.新建" url="B3YunKen/B3YunKenSaleOutStoreToCustomerAccept.aspx"/>
<Menu id="0003" name="/B3耘垦模块/报表/客户停用表" roles="B3_YunKen.报表.客户停用表" url="B3YunKen/Reports/CustomerStopByTaskReport.aspx"/>
<Menu id="0004" name="/B3耘垦模块/产品包装物设置" roles="B3_YunKen.产品包装物设置.访问" url="B3YunKen/Bill/GoodsPackageSet.aspx" />
<Menu id="0005" name="/B3耘垦模块/生产计划/订单转生产" roles="B3_YunKen.订单转生产.访问" url="B3YunKen/ProductTask_/SaleOrderToProductNoticePage.aspx"/>
</Menus>
</Plugin>

Loading…
Cancel
Save