| @ -0,0 +1,100 @@ | |||
| using BWP.B3QingDaoWanFu.BL; | |||
| using BWP.B3QingDaoWanFu.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 TSingSoft.WebPluginFramework; | |||
| namespace BWP.Web.Pages.B3QingDaoWanFu.Bills.OutFactoryRecord_ | |||
| { | |||
| partial class OutFactoryRecordEdit : DepartmentWorkFlowBillEditPage<OutFactoryRecord, IOutFactoryRecordBL> | |||
| { | |||
| protected override void BuildBody(Control control) | |||
| { | |||
| base.BuildBody(control); | |||
| AddDetail(control.EAdd(new TitlePanel("记录明细", "记录明细"))); | |||
| } | |||
| protected override void BuildBasePropertiesEditor(TitlePanel titlePanel, PageLayoutSection pageLayoutSection) | |||
| { | |||
| var layoutManager = new LayoutManager("", mDFInfo, mDFContainer); | |||
| var config = new AutoLayoutConfig(); | |||
| layoutManager.Config = config; | |||
| config.Add("AccountingUnit_ID"); | |||
| config.Add("Department_ID"); | |||
| config.Add("Date"); | |||
| pageLayoutSection.SetRequired("AccountingUnit_ID", "Department_ID"); | |||
| pageLayoutSection.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo); | |||
| titlePanel.Controls.Add(layoutManager.CreateLayout()); | |||
| } | |||
| private DFEditGrid _detailGrid; | |||
| private void AddDetail(TitlePanel titlePanel) | |||
| { | |||
| var vPanel = new VLayoutPanel(); | |||
| titlePanel.Controls.Add(vPanel); | |||
| if (CanSave) | |||
| { | |||
| var hPanel = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left)); | |||
| var oFileDialog = hPanel.Add(new FileUpload()); | |||
| oFileDialog.Controls.Clear(); | |||
| var btn = hPanel.Add(new TSButton("导入明细", delegate | |||
| { | |||
| if (string.IsNullOrEmpty(oFileDialog.FileName)) | |||
| throw new Exception("请选择要导入的Excel文件"); | |||
| Import(oFileDialog.PostedFile.InputStream); | |||
| AspUtil.Alert(this, "导入成功!"); | |||
| })); | |||
| btn.OnClientClick = "if(__DFContainer.getValue('Date')=='') {alert('请选择屠宰日期');return false;}"; | |||
| var link = hPanel.Add(new HyperLink()); | |||
| link.Text = "模板下载"; | |||
| link.NavigateUrl = WpfPageUrl.ToGlobal(AspUtil.AddTimeStampToUrl("~/Template/产品出厂记录模板.xlsx")); | |||
| link.Target = "_blank"; | |||
| } | |||
| var detailEditor = new DFCollectionEditor<OutFactoryRecord_Detail>(() => Dmo.Details); | |||
| detailEditor.AllowDeletionFunc = () => CanSave; | |||
| detailEditor.CanDeleteFunc = (detail) => CanSave; | |||
| detailEditor.IsEditableFunc = (field, detail) => false; | |||
| _detailGrid = vPanel.Add(new DFEditGrid(detailEditor) { Width = Unit.Percentage(100) }); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("OutDate")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("CustomerName")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("GoodsName")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("Number")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("SaleUnit")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("AnimalTest")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("MeatTest")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("PigSource")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("TestMan")); | |||
| var section2 = mPageLayoutManager.AddSection("detailColumns1", "记录明细"); | |||
| section2.ApplyLayout(_detailGrid, mPageLayoutManager, DFInfo.Get(typeof(OutFactoryRecord_Detail))); | |||
| titlePanel.SetPageLayoutSetting(mPageLayoutManager, section2.Name); | |||
| } | |||
| public override void GetFromUI() | |||
| { | |||
| base.GetFromUI(); | |||
| _detailGrid.GetFromUI(); | |||
| } | |||
| public override void AppToUI() | |||
| { | |||
| base.AppToUI(); | |||
| _detailGrid.DataBind(); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,114 @@ | |||
| using BWP.B3ButcherManage.BO; | |||
| using BWP.B3QingDaoWanFu.BO; | |||
| using BWP.B3UnitedInfos.DataExchange; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using Forks.EnterpriseServices.SqlDoms; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.IO; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using TSingSoft.WebPluginFramework; | |||
| namespace BWP.Web.Pages.B3QingDaoWanFu.Bills.OutFactoryRecord_ | |||
| { | |||
| partial class OutFactoryRecordEdit | |||
| { | |||
| void Import(Stream fileStream) | |||
| { | |||
| GetFromUI(); | |||
| var supplier = GetButcherSupplier(); | |||
| var man = new ExcelImportManager(); | |||
| var outDateColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "出厂日期", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var customerColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "业主信息", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var goodsNameColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "销售品种", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var numberColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "数量", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var saleUnitColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "销售市场", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var animalTestColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "动检证号", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var meatTestColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "肉质检验证号", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var testManColumn = man.Add(new ExecelImportColumn() | |||
| { | |||
| Name = "检验人员", | |||
| Required = false, | |||
| Nullable = true | |||
| }); | |||
| var details = new List<OutFactoryRecord_Detail>(); | |||
| foreach (var row in man.Parse(fileStream)) | |||
| { | |||
| var detail = new OutFactoryRecord_Detail(); | |||
| detail.OutDate = outDateColumn.GetNullableValue<DateTime>(row); | |||
| detail.CustomerName = customerColumn.GetStringValue(row); | |||
| detail.GoodsName = customerColumn.GetStringValue(row); | |||
| detail.Number = numberColumn.GetNullableValue<decimal>(row); | |||
| detail.SaleUnit = saleUnitColumn.GetStringValue(row); | |||
| detail.AnimalTest = animalTestColumn.GetStringValue(row); | |||
| detail.MeatTest = meatTestColumn.GetStringValue(row); | |||
| detail.TestMan = testManColumn.GetStringValue(row); | |||
| detail.PigSource = supplier; | |||
| details.Add(detail); | |||
| } | |||
| foreach (var detail in details) | |||
| Dmo.Details.Add(detail); | |||
| _detailGrid.DataBind(); | |||
| } | |||
| string GetButcherSupplier() | |||
| { | |||
| var order = new JoinAlias(typeof(ButcherOrder)); | |||
| var orderDetail = new JoinAlias(typeof(ButcherOrder_Detail)); | |||
| var weight = new JoinAlias(typeof(WeighBill)); | |||
| var query = new DQueryDom(order); | |||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(orderDetail), DQCondition.EQ(order, "ID", orderDetail, "ButcherOrder_ID")); | |||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.EQ(orderDetail, "WeighBill_ID", weight, "ID")); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Date", Dmo.Date)); | |||
| query.Columns.Add(DQSelectColumn.Field("Supplier_Name", weight)); | |||
| query.Range = SelectRange.Top(5); | |||
| return string.Join(",", query.EExecuteList<string>()) + ",……"; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,36 @@ | |||
| using BWP.B3QingDaoWanFu.BL; | |||
| using BWP.B3QingDaoWanFu.BO; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using TSingSoft.WebControls2; | |||
| namespace BWP.Web.Pages.B3QingDaoWanFu.Bills.OutFactoryRecord_ | |||
| { | |||
| class OutFactoryRecordList : DomainBillListPage<OutFactoryRecord, IOutFactoryRecordBL> | |||
| { | |||
| protected override void AddQueryControls(VLayoutPanel vPanel) | |||
| { | |||
| vPanel.Add(CreateDefaultBillQueryControls((panel, config) => | |||
| { | |||
| config.AddAfter("Date", "BillState"); | |||
| config.AddAfter("AccountingUnit_ID", "Date"); | |||
| config.AddAfter("Department_ID", "AccountingUnit_ID"); | |||
| config.Remvoe("Remark"); | |||
| })); | |||
| } | |||
| 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, "CheckUser_Name"); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,58 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| <Field name="ID"/> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3QingDaoWanFu.BO.OutFactoryRecord, B3QingDaoWanFu"/> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="ID"/> | |||
| <QBE paramName="ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="AccountingUnit_ID"/> | |||
| <QBE paramName="AccountingUnit_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Department_ID"/> | |||
| <QBE paramName="Department_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="IsLocked"/> | |||
| <QBE paramName="IsLocked"/> | |||
| </EQ> | |||
| <Contains> | |||
| <Field name="CreateUser_Name"/> | |||
| <QBE paramName="CreateUser_Name"/> | |||
| </Contains> | |||
| <Contains> | |||
| <Field name="CheckUser_Name"/> | |||
| <QBE paramName="CheckUser_Name"/> | |||
| </Contains> | |||
| <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> | |||
| @ -0,0 +1,20 @@ | |||
| using BWP.B3Frameworks.BL; | |||
| using BWP.B3QingDaoWanFu.BO; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.BusinessInterfaces; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| namespace BWP.B3QingDaoWanFu.BL | |||
| { | |||
| [LogicName("产品出厂记录")] | |||
| [BusinessInterface(typeof(OutFactoryRecordBL))] | |||
| public interface IOutFactoryRecordBL : IDepartmentWorkFlowBillBL<OutFactoryRecord> | |||
| { } | |||
| public class OutFactoryRecordBL : DepartmentWorkFlowBillBL<OutFactoryRecord>, IOutFactoryRecordBL | |||
| { | |||
| } | |||
| } | |||
| @ -0,0 +1,29 @@ | |||
| using BWP.B3Frameworks; | |||
| 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; | |||
| namespace BWP.B3QingDaoWanFu.BO | |||
| { | |||
| [Serializable, DFClass, LogicName("产品出厂记录")] | |||
| [DmoTypeID(B3FrameworksConsts.DmoTypeIDBases.B3QingDaoWanFu, B3QingDaoWanFuConsts.DmoTypeIDOffsets.OutFactoryRecord)] | |||
| [DFCPrompt("部门", Property = "Department_ID")] | |||
| [DFCPrompt("部门", Property = "Department_Name")] | |||
| public class OutFactoryRecord : DepartmentWorkFlowBill | |||
| { | |||
| private DateTime? date = DateTime.Today; | |||
| [LogicName("屠宰日期")] | |||
| [DFNotEmpty] | |||
| public DateTime? Date { get { return date; } set { date = value; } } | |||
| private readonly OutFactoryRecord_DetailCollection mDetails = new OutFactoryRecord_DetailCollection(); | |||
| [OneToMany(typeof(OutFactoryRecord_Detail), "ID")] | |||
| [Join("ID", "OutFactoryRecord_ID")] | |||
| public OutFactoryRecord_DetailCollection Details { get { return mDetails; } } | |||
| } | |||
| } | |||
| @ -0,0 +1,54 @@ | |||
| using BWP.B3Frameworks.BO; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.DataForm; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.Utils; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Data; | |||
| using System.Linq; | |||
| using System.Text; | |||
| namespace BWP.B3QingDaoWanFu.BO | |||
| { | |||
| [Serializable, DFClass, LogicName("产品出厂记录_明细")] | |||
| public class OutFactoryRecord_Detail : Base | |||
| { | |||
| public long OutFactoryRecord_ID { get; set; } | |||
| [LogicName("出厂日期")] | |||
| public DateTime? OutDate { get; set; } | |||
| [LogicName("购货业主姓名及联系方式")] | |||
| [DbColumn(DbType = SqlDbType.NVarChar, Length = 200)] | |||
| public string CustomerName { get; set; } | |||
| [LogicName("销售品种")] | |||
| public string GoodsName { get; set; } | |||
| [LogicName("数量(头数或公斤)")] | |||
| public Money<decimal>? Number { get; set; } | |||
| [LogicName("销售市场或单位")] | |||
| [DbColumn(DbType = SqlDbType.NVarChar, Length = 200)] | |||
| public string SaleUnit { get; set; } | |||
| [LogicName("动物检疫合格证编号")] | |||
| public string AnimalTest { get; set; } | |||
| [LogicName("肉品品质检验合格证编号")] | |||
| public string MeatTest { get; set; } | |||
| [LogicName("生猪来源(生猪货主姓名)")] | |||
| [DbColumn(DbType = SqlDbType.NVarChar, Length = 200)] | |||
| public string PigSource { get; set; } | |||
| [LogicName("检验人员")] | |||
| public string TestMan { get; set; } | |||
| } | |||
| [Serializable] | |||
| public class OutFactoryRecord_DetailCollection : DmoCollection<OutFactoryRecord_Detail> | |||
| { | |||
| } | |||
| } | |||