Browse Source

需求单No.141313羊屠宰结算模块新增操作界面【羊排宰】

master
yibo 7 years ago
parent
commit
344ab2b3a3
16 changed files with 669 additions and 6 deletions
  1. +18
    -0
      B3SheepButcherManage.Web/B3SheepButcherManage.Web.csproj
  2. +126
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderEdit.cs
  3. +38
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderList.cs
  4. +65
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderList.xml
  5. +19
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderPrint.cs
  6. +100
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/SelectWeighBillDialog.cs
  7. +30
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/SelectWeighBillDialog.xml
  8. +3
    -0
      B3SheepButcherManage/B3SheepButcherManage.csproj
  9. +30
    -0
      B3SheepButcherManage/BL/Bill/ButcherOrderBL/ButcherOrderBL.cs
  10. +122
    -1
      B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs
  11. +35
    -0
      B3SheepButcherManage/BO/Bill/ButcherOrder/ButcherOrder.cs
  12. +44
    -0
      B3SheepButcherManage/BO/Bill/ButcherOrder/ButcherOrder_Detail.cs
  13. +4
    -0
      B3SheepButcherManage/BO/Bill/WeightBill/WeightBill.cs
  14. +1
    -0
      B3SheepButcherManage/DmoTypeIDOffsets.cs
  15. +6
    -5
      WebFolder/config/Plugins/B3SheepButcherManage.Plugin
  16. +28
    -0
      WebFolder/config/billreports/B3SheepButcherManage/ButcherOrderPrint.xml

+ 18
- 0
B3SheepButcherManage.Web/B3SheepButcherManage.Web.csproj View File

@ -114,6 +114,18 @@
<Compile Include="Pages\B3SheepButcherManage\BaseInfos\Livestock_\LivestockList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3SheepButcherManage\Bills\ButcherOrder_\ButcherOrderEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3SheepButcherManage\Bills\ButcherOrder_\ButcherOrderList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3SheepButcherManage\Bills\ButcherOrder_\ButcherOrderPrint.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3SheepButcherManage\Bills\ButcherOrder_\SelectWeighBillDialog.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3SheepButcherManage\Bills\FixedPrice_\FixedPriceEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@ -162,6 +174,12 @@
<EmbeddedResource Include="Pages\B3SheepButcherManage\Reports\WeightBillAnalyse_\WeightBillAbnormalAnalyse.xml" />
<EmbeddedResource Include="Pages\B3SheepButcherManage\Reports\WeightBillAnalyse_\WeightBillAnalyse.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3SheepButcherManage\Bills\ButcherOrder_\ButcherOrderList.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3SheepButcherManage\Bills\ButcherOrder_\SelectWeighBillDialog.xml" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\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.


+ 126
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderEdit.cs View File

@ -0,0 +1,126 @@
using BWP.B3SheepButcherManage.BL;
using BWP.B3SheepButcherManage.BO;
using BWP.Web.CustomPageLayout;
using BWP.Web.Layout;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.DataForm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using TSingSoft.WebControls2;
using Forks.Utils.Collections;
using BWP.Web.Utils;
namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_
{
class ButcherOrderEdit : DepartmentWorkFlowBillEditPage<ButcherOrder, IButcherOrderBL>
{
private DFEditGrid detailGrid;
protected override void BuildBasePropertiesEditor(TitlePanel titlePanel, PageLayoutSection section)
{
var layoutManager = new LayoutManager("main", mDFInfo, mDFContainer);
var config = new AutoLayoutConfig();
config.Add("AccountingUnit_ID");
config.Add("Department_ID");
config.Add("Date");
config.Add("Employee_ID");
config.Add("Remark");
layoutManager.Config = config;
section.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo);
titlePanel.Controls.Add(layoutManager.CreateLayout());
}
protected override void BuildBody(Control form)
{
base.BuildBody(form);
CreateDetailPanel(form.EAdd(new TitlePanel("排宰明细")));
}
private void CreateDetailPanel(TitlePanel titlePanel)
{
var vPanel = new VLayoutPanel();
titlePanel.Controls.Add(vPanel);
if (CanSave)
{
var hPanel = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left));
var dialogButton = hPanel.Add(new DialogButton
{
Text = "选择过磅单",
Url = string.Format("SelectWeighBillDialog.aspx?ID={0}&", MinDmo.ID)
});
dialogButton.BeforeClientClick = "var accID=__DFContainer.getValue('AccountingUnit_ID'); if (accID == '') { alert('先选择会计单位');return false;}";
dialogButton.ClientDynamicParamGetter = "return 'AccountingUnit_ID=' + __DFContainer.getValue('AccountingUnit_ID')";
dialogButton.Click += delegate
{
detailGrid.GetFromUI();
var details = DialogUtil.GetCachedObj<ButcherOrder_Detail>(this);
var selectItems = detailGrid.GetSelectedItems();
if (selectItems.Count > 0)
{
var selectDetail = (ButcherOrder_Detail)(selectItems[0]);
var idx = Dmo.Details.IndexOf(selectDetail) + 1;
foreach (var detail in details)
{
Dmo.Details.Insert(idx, detail);
idx++;
}
}
else
{
foreach (var detail in details)
Dmo.Details.Add(detail);
}
detailGrid.DataBind();
};
}
var detailEditor = new DFCollectionEditor<ButcherOrder_Detail>(() => Dmo.Details);
detailEditor.AllowDeletionFunc = () => CanSave;
detailEditor.CanDeleteFunc = (detail) => CanSave;
detailEditor.IsEditableFunc = (field, detail) => CanSave;
detailEditor.CanSelectFunc = (detail) => CanSave;
detailGrid = vPanel.Add(new DFEditGrid(detailEditor) { Width = Unit.Percentage(100), MultiSelectionEnabled = CanSave });
detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Sequence")).InitEditControl += (sender, e) =>
{
e.Control.Style["width"] = "160px";
};
detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("WeightBill_ID")).InitEditControl += (sender, e) =>
{
e.Control.Style["width"] = "160px";
};
detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Supplier_Name"));
detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("BuyNum"));
detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Number")).InitEditControl += (sender, e) =>
{
e.Control.Style["width"] = "160px";
};
detailGrid.PreferWidthGridSet = new Dictionary<string, Unit> { { "顺序号", Unit.Percentage(20) }, { "过磅单号", Unit.Percentage(20) }, { "排宰头数", Unit.Percentage(20) } };
var section2 = mPageLayoutManager.AddSection("detailColumns1", "明细");
section2.ApplyLayout(detailGrid, mPageLayoutManager, DFInfo.Get(typeof(ButcherOrder_Detail)));
titlePanel.SetPageLayoutSetting(mPageLayoutManager, section2.Name);
mDFContainer.AddNonDFControl(detailGrid, "$Details");
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
DataBind();
}
public override void GetFromUI()
{
base.GetFromUI();
detailGrid.GetFromUI();
}
protected override bool EnableReferToCreate
{
get { return false; }
}
}
}

+ 38
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderList.cs View File

@ -0,0 +1,38 @@
using BWP.B3SheepButcherManage.BL;
using BWP.B3SheepButcherManage.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_
{
class ButcherOrderList : DomainBillListPage<ButcherOrder, IButcherOrderBL>
{
protected override void AddQueryControls(VLayoutPanel vPanel)
{
vPanel.Add(CreateDefaultBillQueryControls((panel, config) =>
{
config.Add("Date");
config.Add("AccountingUnit_ID");
config.Add("Department_ID");
config.Add("Employee_ID");
}));
}
protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field)
{
base.AddDFBrowseGridColumn(grid, field);
if (field == "BillState")
{
AddDFBrowseGridColumn(grid, "Date");
AddDFBrowseGridColumn(grid, "AccountingUnit_Name");
AddDFBrowseGridColumn(grid, "Department_Name");
AddDFBrowseGridColumn(grid, "Employee_Name");
AddDFBrowseGridColumn(grid, "CheckUser_Name");
AddDFBrowseGridColumn(grid, "Remark");
}
}
}
}

+ 65
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderList.xml View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="BWP.B3SheepButcherManage.BO.ButcherOrder, B3SheepButcherManage"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="IsLocked"/>
<QBE paramName="IsLocked"/>
</EQ>
<Contains>
<Field name="Remark"/>
<QBE paramName="Remark"/>
</Contains>
<Contains>
<Field name="CreateUser_Name"/>
<QBE paramName="CreateUser_Name"/>
</Contains>
<Contains>
<Field name="CheckUser_Name"/>
<QBE paramName="CheckUser_Name"/>
</Contains>
<EQ>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID"/>
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="Department_ID"/>
<QBE paramName="Department_ID"/>
</EQ>
<GreaterThanOrEqual>
<Field name="CreateTime"/>
<QBE paramName="MinCreateTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="CreateTime"/>
<QBE paramName="MaxCreateTime"/>
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="Date"/>
<QBE paramName="MinDate" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="Date"/>
<QBE paramName="MaxDate"/>
</LessThanOrEqual>
<EQ>
<Field name="BillState"/>
<QBE paramName ="BillState"/>
</EQ>
</And>
</Where>
</Select>

+ 19
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderPrint.cs View File

@ -0,0 +1,19 @@
using BWP.B3SheepButcherManage.BL;
using BWP.B3SheepButcherManage.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_
{
class ButcherOrderPrint : DomainTemplatePrintPage<ButcherOrder, IButcherOrderBL>
{
protected override void AddParameters(IDictionary<string, object> dic)
{
dic.Add("$ID", Dmo.ID);
dic.Add("$Details", Dmo.Details);
dic.Add("$DetailType", typeof(ButcherOrder_Detail));
}
}
}

+ 100
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/SelectWeighBillDialog.cs View File

@ -0,0 +1,100 @@
using BWP.B3SheepButcherManage.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
using Forks.Utils.Collections;
using BWP.Web.Layout;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DataForm;
namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_
{
class SelectWeighBillDialog : DmoMultiSelectDialog<WeightBill, ButcherOrder_Detail>
{
protected override void CreateQueryGridColumns(DFBrowseGrid grid)
{
grid.Columns.Add(new DFBrowseGridColumn("ID"));
grid.Columns.Add(new DFBrowseGridColumn("Supplier_Name"));
grid.Columns.Add(new DFBrowseGridColumn("Number"));
grid.Columns.Add(new DFBrowseGridColumn("LiveColonyHouse_Name"));
grid.Columns.Add(new DFBrowseGridColumn("AlreadyNumber"));
grid.Columns.EAdd(new DFEditGridColumn("ThisNumber")).HeaderText = "本次计划头数";
grid.Columns.Add(new DFBrowseGridColumn("Remark"));
}
protected override void CreateQuery(VLayoutPanel vPanel)
{
var layout = new LayoutManager("", mDFInfo, mQueryContainer);
var config = new AutoLayoutConfig();
config.Add("WeighTime");
layout.Config = config;
vPanel.Add(layout.CreateLayout());
base.CreateQuery(vPanel);
}
protected override DQueryDom GetQueryDom()
{
var dom = base.GetQueryDom();
var detail = JoinAlias.Create("detail");
var temp = new JoinAlias(typeof(AlreadyTemp));
AlreadyTemp.Register(dom);
dom.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(detail, "WeightBill_ID", temp, "WeightBill_ID"));
dom.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
dom.Columns.Add(DQSelectColumn.Field("ID", "过磅单号"));
dom.Columns.Add(DQSelectColumn.Field("BuyNum"));
dom.Columns.Add(DQSelectColumn.Field("Number", detail, "收购头数"));
dom.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name", detail));
dom.Columns.Add(DQSelectColumn.Field("AlreadyNumber", temp, "已排头数"));
var lastNumber = DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(temp, "AlreadyNumber"), DQExpression.Value(0)));
dom.Columns.Add(DQSelectColumn.Create(lastNumber, "ThisNumber"));
dom.Columns.Add(DQSelectColumn.Field("Remark", detail));
dom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("AccountingUnit_ID", long.Parse(Request.QueryString["AccountingUnit_ID"])), DQCondition.InEQ("BillState", .), DQCondition.EQ("Domain_ID", DomainContext.Current.ID)));
dom.Where.Conditions.Add(DQCondition.GreaterThan(lastNumber, DQExpression.Value(0)));
OrganizationUtil.AddOrganizationLimit(dom, typeof(WeightBill));
return dom;
}
protected override void SetResultFromDFDataRow(ButcherOrder_Detail dmo, DFDataRow row)
{
var number = (int?)row["Number"];
var already = (int?)row["AlreadyNumber"];
dmo.Supplier_Name = (string)row["Supplier_Name"];
dmo.WeightBill_ID = (long)row["ID"];
dmo.BuyNum = (int?)row["BuyNum"];
var thiNumber = row["ThisNumber"];
if (thiNumber == null)
throw new Exception("本次计划头数不能为空");
dmo.Number = Convert.ToInt32(thiNumber);
var more = (already ?? 0) + (dmo.Number ?? 0) - (number ?? 0);
if (more > 0)
throw new Exception(string.Format("过磅单No.{0} 排宰头数超出收购头数{1}头", dmo.WeightBill_ID, more));
}
class AlreadyTemp
{
public long WeightBill_ID { get; set; }
public int AlreadyNumber { get; set; }
public static void Register(DQueryDom root)
{
var main = new JoinAlias(typeof(ButcherOrder));
var detail = new JoinAlias(typeof(ButcherOrder_Detail));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ButcherOrder_ID"));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID", detail));
query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
query.GroupBy.Expressions.Add(DQExpression.Field(detail, "WeightBill_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(main, "Domain_ID", DomainContext.Current.ID), (DQCondition.InEQ(main, "BillState", .))));
root.RegisterQueryTable(typeof(AlreadyTemp), new string[] { "WeightBill_ID", "AlreadyNumber" }, query);
}
}
}
}

+ 30
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/ButcherOrder_/SelectWeighBillDialog.xml View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<Join type="Inner">
<DmoClass class="BWP.B3SheepButcherManage.BO.WeightBill, B3SheepButcherManage"/>
<DmoClass class="BWP.B3SheepButcherManage.BO.WeightBill_Record, B3SheepButcherManage" alias="detail"/>
<Condition>
<EQ>
<Field name="ID"/>
<Field name="WeightBill_ID" alias="detail"/>
</EQ>
</Condition>
</Join>
</From>
<Where>
<And>
<GreaterThanOrEqual>
<Field name="WeighTime"/>
<QBE paramName="MinWeighTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="WeighTime"/>
<QBE paramName="MaxWeighTime"/>
</LessThanOrEqual>
</And>
</Where>
</Select>

+ 3
- 0
B3SheepButcherManage/B3SheepButcherManage.csproj View File

@ -88,9 +88,12 @@
</ItemGroup>
<ItemGroup>
<Compile Include="BL\BaseInfo\LivestockBL.cs" />
<Compile Include="BL\Bill\ButcherOrderBL\ButcherOrderBL.cs" />
<Compile Include="BL\Bill\FixedPriceBL\FixedPriceBL.cs" />
<Compile Include="BL\Bill\WeightBillBL\WeightBillBL.cs" />
<Compile Include="BO\BaseInfo\Livestock.cs" />
<Compile Include="BO\Bill\ButcherOrder\ButcherOrder.cs" />
<Compile Include="BO\Bill\ButcherOrder\ButcherOrder_Detail.cs" />
<Compile Include="BO\Bill\FixedPrice\FixedPrice.cs" />
<Compile Include="BO\Bill\FixedPrice\FixedPrice_Detail.cs" />
<Compile Include="BO\Bill\WeightBill\WeightBill_AbnormalRecording.cs" />


+ 30
- 0
B3SheepButcherManage/BL/Bill/ButcherOrderBL/ButcherOrderBL.cs View File

@ -0,0 +1,30 @@
using BWP.B3Frameworks.BL;
using BWP.B3SheepButcherManage.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3SheepButcherManage.BL
{
[BusinessInterface(typeof(ButcherOrderBL))]
[LogicName("羊排宰")]
public interface IButcherOrderBL : IDepartmentWorkFlowBillBL<ButcherOrder>
{ }
public class ButcherOrderBL : DepartmentWorkFlowBillBL<ButcherOrder>, IButcherOrderBL
{
protected override void beforeSave(ButcherOrder dmo)
{
var idx = 1;
foreach (var detail in dmo.Details)
{
detail.Sequence = idx;
idx++;
}
base.beforeSave(dmo);
}
}
}

+ 122
- 1
B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs View File

@ -1,11 +1,20 @@
using BWP.B3Frameworks.BL;
using CB = BWP.B3CowButcherManage.BO;
using BWP.B3CowButcherManage.NamedValueTemplate;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BL;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3SheepButcherManage.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SimpleScript;
using Forks.EnterpriseServices.SqlDoms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3SheepButcherManage.BL
{
@ -16,5 +25,117 @@ namespace BWP.B3SheepButcherManage.BL
public class WeightBillBL : DepartmentWorkFlowBillBL<WeightBill>, IWeightBillBL
{
protected override void beforeSave(WeightBill dmo)
{
if (dmo.WeighRecords.Count > 0)
{
dmo.BuyWeigh1 = dmo.WeighRecords.Sum(x => (x.Weight ?? 0).Value);
dmo.BuyNum = dmo.WeighRecords.Sum(x => (x.Number));
}
//dmo.AlreadyButcherNum = dmo.WeighRecords.Count(x => x.IsButchered);
dmo.AbnormalMoney = dmo.WeighAbnormalRecording.Sum(x => (x.Abnormal_Money ?? 0).Value);
SetAbnormal_Money(dmo);
base.beforeSave(dmo);
}
public void SetAbnormal_Money(WeightBill dmo)
{
if (dmo.WeighAbnormalRecording.Count <= 0)
return;
var sanction = new JoinAlias(typeof(CB.SanctionSetting));
var abnormalItem = new JoinAlias(typeof(CB.RewardItem));
var dom = new DQueryDom(sanction);
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(abnormalItem),
DQCondition.EQ(sanction, "RewardItem_ID", abnormalItem, "ID"));
dom.Columns.Add(DQSelectColumn.Field("ID", abnormalItem));
dom.Columns.Add(DQSelectColumn.Field("ID", sanction));
dom.Columns.Add(DQSelectColumn.Field("Condition", sanction));
dom.Columns.Add(DQSelectColumn.Field("BeforeScript", sanction));
dom.Where.Conditions.Add(DQCondition.EQ(sanction, "FitBill", .));
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));
dom.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_ID", dmo.AccountingUnit_ID));
var sanctionList = dom.EExecuteList<long, long, string, string>(Session);
foreach (var detail in dmo.WeighAbnormalRecording)
{
var items = sanctionList.Where(x => x.Item1 == detail.RewardItem_ID);
if (items.Count() > 0)
{
var result = items.First();
var runner = new Runner();
runner.Global["奖罚依据"] = "";
runner.Execute(result.Item4);
var bType = TypeMarshal.AsString(runner.Global["奖罚依据"]);
if (bType == "过磅单")
{
runner.Global["单价"] = 0m;
runner.Execute(result.Item3);
detail.Abnormal_Money = TypeMarshal.AsNumber(runner.Global["单价"]);
}
}
else
{
detail.Abnormal_Money = null;
}
}
}
protected override void doCheck(WeightBill dmo)
{
//if (dmo.WeighShedWeight.Count <= 0)
//{
// var statPay = new StatPay();
// var bl = BIFactory.Create<IStatPayBL>(Session);
// bl.InitNewDmo(statPay);
// statPay.Supplier_ID = dmo.Supplier_ID;
// statPay.BillType = mDmoTypeID;
// statPay.Weigh_ID = dmo.ID;
// statPay.WeighTime = dmo.WeighTime;
// statPay.RealWeight = dmo.BuyWeigh1;
// statPay.RealNumber = dmo.BuyNum;
// statPay.Department_ID = dmo.Department_ID;
// statPay.Employee_ID = dmo.Employee_ID;
// statPay.AccountingUnit_ID = dmo.AccountingUnit_ID;
// statPay.FarmingContract_ID = dmo.FarmingContract_ID;
// statPay.ValuationArea_ID = dmo.ValuationArea_ID;
// if (dmo.MoneyCountMethod != null)
// {
// statPay.MoneyCountMethod = dmo.MoneyCountMethod.Value;
// }
// if (dmo.WeighAbnormalRecording.Count > 0)
// {
// foreach (var abnormal in dmo.WeighAbnormalRecording)
// {
// var exception = new StatPay_Exception();
// exception.RewardItem_ID = abnormal.RewardItem_ID;
// // exception.Price = abnormal;
// exception.Money = (decimal?)abnormal.Abnormal_Money;
// statPay.ExceptDetails.Add(exception);
// }
// }
// bl.Insert(statPay);
// AppendMessage("生成结算单No." + statPay.ID);
//}
base.doCheck(dmo);
}
protected override void doUnCheck(WeightBill dmo)
{
//var stayPayBL = BIFactory.Create<IStatPayBL>(Session);
//var queryDom = new DmoQuery(typeof(StatPay));
//queryDom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("BillType", mDmoTypeID), DQCondition.EQ("Weigh_ID", dmo.ID)));
//foreach (StatPay pay in Session.ExecuteList(queryDom))
//{
// if (pay.BillState != 单据状态.未审核)
// {
// throw new Exception("结算单:" + pay.ID + " 单据状态不是未审核");
// }
// stayPayBL.Delete(pay);
// AppendMessage("删除结算单No." + pay.ID);
//}
base.doUnCheck(dmo);
}
}
}

+ 35
- 0
B3SheepButcherManage/BO/Bill/ButcherOrder/ButcherOrder.cs View File

@ -0,0 +1,35 @@
using BWP.B3Frameworks;
using BWP.B3Frameworks.Attributes;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
namespace BWP.B3SheepButcherManage.BO
{
[DFClass, Serializable]
[LogicName("羊排宰")]
[DmoTypeID(B3FrameworksConsts.DmoTypeIDBases.B3SheepButcherManage, B3SheepButcherManageConsts.DmoTypeIDOffsets.ButcherOrder)]
[EditUrl("~/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderEdit.aspx")]
public class ButcherOrder : DepartmentWorkFlowBill
{
private DateTime dt = DateTime.Today;
[LogicName("宰杀日期")]
[DFExtProperty("WebControlType", DFEditControl.DateInput)]
public DateTime Date { get { return dt; } set { dt = value; } }
private ButcherOrder_DetailCollection mDetail = new ButcherOrder_DetailCollection();
[OneToMany(typeof(ButcherOrder_Detail), "Sequence")]
[Join("ID", "ButcherOrder_ID")]
public ButcherOrder_DetailCollection Details
{
get { return mDetail; }
set { mDetail = value; }
}
}
}

+ 44
- 0
B3SheepButcherManage/BO/Bill/ButcherOrder/ButcherOrder_Detail.cs View File

@ -0,0 +1,44 @@
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataDictionary;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3SheepButcherManage.BO
{
[DFClass, Serializable]
[LogicName("羊排宰_明细")]
public class ButcherOrder_Detail : Base
{
[DbColumn(Index = IndexType.Normal, AllowNull = false)]
public long ButcherOrder_ID { get; set; }
[LogicName("顺序号")]
[DFNotEmpty]
public int Sequence { get; set; }
[LogicName("过磅单号")]
public long? WeightBill_ID { get; set; }
[Join("WeightBill_ID", "ID")]
[LogicName("收购头数")]
[ReferenceTo(typeof(WeightBill), "BuyNum")]
public int? BuyNum { get; set; }
[LogicName("排宰头数")]
public int? Number { get; set; }
[Join("WeightBill_ID", "ID")]
[LogicName("供应商")]
[ReferenceTo(typeof(WeightBill), "Supplier_Name")]
public string Supplier_Name { get; set; }
}
[Serializable]
public class ButcherOrder_DetailCollection : DmoCollection<ButcherOrder_Detail>
{ }
}

+ 4
- 0
B3SheepButcherManage/BO/Bill/WeightBill/WeightBill.cs View File

@ -4,6 +4,7 @@ using BWP.B3CowButcherManage.NamedValueTemplate;
using BWP.B3Frameworks;
using BWP.B3Frameworks.Attributes;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.B3Frameworks.Utils;
using BWP.B3ProcurementInterface.BO;
using BWP.B3ProcurementInterface.Utils;
@ -43,6 +44,9 @@ namespace BWP.B3SheepButcherManage.BO
[LogicName("收购重量")]
[DFExtProperty("WebControlType", DFEditControl.StaticText)]
public Money<decimal>? BuyWeigh1 { get; set; }
[LogicName("异常扣款")]
public Money<>? AbnormalMoney { get; set; }
[LogicName("来源地")]
[DFExtProperty("WebControlType", DFEditControl.ChoiceBox)]


+ 1
- 0
B3SheepButcherManage/DmoTypeIDOffsets.cs View File

@ -12,6 +12,7 @@ namespace BWP.B3SheepButcherManage
public const byte Livestock = 1;
public const byte FixedPrice = 2;
public const byte WeightBill = 3;
public const byte ButcherOrder = 4;
}
public static class DataSources


+ 6
- 5
WebFolder/config/Plugins/B3SheepButcherManage.Plugin View File

@ -81,7 +81,7 @@
<!--<FunctionGroup name="报表" roleSchemas="employee">
<Function index="0" name="过磅单分析" />
</FunctionGroup>-->
<!--<FunctionGroup name="排宰顺序" roleSchemas="employee">
<FunctionGroup name="排宰" roleSchemas="employee">
<Function index="0" name="访问" />
<Function index="1" name="新建" />
<Function index="2" name="编辑" />
@ -94,12 +94,13 @@
<Function index="9" name="作废" />
<Function index="10" name="完毕"/>
<Function index="11" name="撤销完毕"/>
</FunctionGroup>-->
</FunctionGroup>
</Security>
<Menus>
<Menu id="0001" name="/B3羊屠宰场管理/基础档案/级别" roles="B3SheepButcherManage.级别.访问" url="B3SheepButcherManage/BaseInfos/Livestock_/LivestockList.aspx"/>
<Menu id="0002" name="/B3羊屠宰场管理/业务单据/羊定价单" roles="B3SheepButcherManage.羊定价单.访问" url="B3SheepButcherManage/Bills/FixedPrice_/FixedPriceList.aspx"/>
<Menu id="0003" features="B3SheepButcherManage.0001" name="/B3羊屠宰场管理/业务单据/羊过磅单" roles="B3SheepButcherManage.羊过磅单.访问" url="B3SheepButcherManage/Bills/WeightBill_/WeightBillList.aspx"/>
<Menu id="0001" name="/B3羊屠宰场管理/基础档案/级别" roles="B3SheepButcherManage.级别.访问" url="B3SheepButcherManage/BaseInfos/Livestock_/LivestockList.aspx"/>
<Menu id="0002" name="/B3羊屠宰场管理/业务单据/羊定价单" roles="B3SheepButcherManage.羊定价单.访问" url="B3SheepButcherManage/Bills/FixedPrice_/FixedPriceList.aspx"/>
<Menu id="0003" features="B3SheepButcherManage.0001" name="/B3羊屠宰场管理/业务单据/羊过磅单" roles="B3SheepButcherManage.羊过磅单.访问" url="B3SheepButcherManage/Bills/WeightBill_/WeightBillList.aspx"/>
<Menu id="0004" name="/B3羊屠宰场管理/业务单据/羊排宰" roles="B3SheepButcherManage.羊排宰.访问" url="B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderList.aspx"/>
</Menus>
<Features>


+ 28
- 0
WebFolder/config/billreports/B3SheepButcherManage/ButcherOrderPrint.xml View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<BillReports xmlns="urn:BillReports" version="1.0" displayName="羊排宰" phyName="羊排宰">
<Report phyName="标准格式">
<BillReport xmlns="urn:BillReport" version="1" displayName="标准格式" >
<Bands>
<TextBand fontName="黑体" fontSize="15" align="Center">羊排宰№$Dmo.ID</TextBand>
<DFInfoBand object="$Dmo" cols="4">
<Field name="AccountingUnit_Name" lblWidth="4"/>
<Field name="Department_Name" lblWidth="4"/>
<Field name="Date" lblWidth="4"/>
<Field name="Employee_Name" lblWidth="4"/>
<Field name="Remark" lblWidth="4"/>
</DFInfoBand>
<HtmlBand>
<![CDATA[<h2>排宰明细</h2>]]>
</HtmlBand>
<DFListBand collection="$Details" itemType="$DetailType" enablePaging="true" >
<Field name="Sequence"/>
<Field name="WeightBill_ID"/>
<Field name="Supplier_Name" />
<Field name="BuyNum" />
<Field name="Number"/>
</DFListBand>
</Bands>
</BillReport>
</Report>
</BillReports>

Loading…
Cancel
Save