Browse Source

需求单No.137223:【畜类屠宰场管理】-【付款单】B3ButcherManage.0015导入用友12.1单据

master
gaowenwei 8 years ago
parent
commit
f1cca4e8fb
3 changed files with 112 additions and 2 deletions
  1. +54
    -2
      BWP.B3ButcherManageExport/BL/U8/PayToU8BL_/PayToU8BL.cs
  2. +57
    -0
      BWP.B3ButcherManageExport/BL/U8/script/屠宰场结算单导U8采购入库单.py
  3. +1
    -0
      BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj

+ 54
- 2
BWP.B3ButcherManageExport/BL/U8/PayToU8BL_/PayToU8BL.cs View File

@ -5,6 +5,8 @@ using BWP.B3ExportBase.BO;
using BWP.B3Frameworks;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
@ -21,14 +23,14 @@ namespace BWP.B3ButcherManageExport.BL
}
[LogicName("屠宰场付款单导U8付款单")]
[BindToFeature("B3ButcherManageExport.0006")]
//[BindToFeature("B3ButcherManageExport.0006")]
[ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.PayToU8)]
public class PayToU8BL : ExportU8BL<Pay>, IPayToU8BL
{
protected override Ufinterface CreateUfinterface(IList<Pay> dmos)
{
var scriptHelper = new PythonScriptHelper(string.Empty, Config.Script, this);
var inv = SaleInvoices.CreateSaleInvoice();
var inv = PayU8s.CreateStoreIn();
scriptHelper.AddLocalVar("dmos", dmos);
scriptHelper.AddLocalVar("invoices", inv);
@ -54,5 +56,55 @@ namespace BWP.B3ButcherManageExport.BL
_date = date ?? BLContext.Today;
Export(dmoIDs, extSystemID);
}
protected override Action<List<Pay>> FillDetail
{
get
{
return dmos =>
{
var dmoType = typeof(Pay_Detail);
var dom = new DQueryDom(new JoinAlias(dmoType));
dom.Columns.Add(DQSelectColumn.Field("ID"));
foreach (string property in MinDetailProperties)
{
dom.Columns.Add(DQSelectColumn.Field(property));
}
var expressionList = new List<IDQExpression>();
foreach (var dmo in dmos)
expressionList.Add(DQExpression.Value(dmo.ID));
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("Pay_ID"), expressionList.ToArray()));
var details = new List<Pay_Detail>();
details.Clear();
using (IDQDataReader reader = Session.ExecuteReader(dom))
{
while (reader.Read())
{
var detail = new Pay_Detail
{
ID = (long)reader[0]
};
int i = 1;
foreach (var property in MinDetailProperties)
{
dmoType.GetProperty(property).SetValue(detail, reader[i++], null);
}
details.Add(detail);
}
}
var groups = details.GroupBy(x => x.Pay_ID);
foreach (var gDetail in groups)
{
var firstDmo = dmos.FirstOrDefault(x => x.ID == gDetail.Key);
if (firstDmo == null)
continue;
foreach (var billDetail in gDetail)
{
firstDmo.Details.Add(billDetail);
}
}
};
}
}
}
}

+ 57
- 0
BWP.B3ButcherManageExport/BL/U8/script/屠宰场结算单导U8采购入库单.py View File

@ -0,0 +1,57 @@
from BWP.B3ExportBase.BO import StatPayU8
from BWP.B3ExportBase.BO import StatPayU8BodyEntry
class BLMethodEvents(BLMethodEventsBase):
def before(self):
#0 读取部分字段,1 读取单据所有字段,包括明细
self.proxy.LoadFullDom = 0
#当设置 0时,指定需要读取的字段
self.proxy.MinDmoProperties.Add("CheckTime");#入库日期--审核日期
self.proxy.MinDmoProperties.Add("Employee_Name");#业务员--经办人
self.proxy.MinDmoProperties.Add("Supplier_Name");#供货单位--供应商
self.proxy.MinDmoProperties.Add("Supplier_Code");#供货单位--供应商编号
self.proxy.MinDmoProperties.Add("Remark");#备注--摘要
self.proxy.MinDetailProperties.Add("StatPay_ID");#存货编码--级别编码
self.proxy.MinDetailProperties.Add("Livestock_Code");#存货编码--级别编码
self.proxy.MinDetailProperties.Add("Livestock_Spec");#规格型号--级别规格
self.proxy.MinDetailProperties.Add("Weight");#数量--重量
def execute(self):
id = 0;
for dmo in dmos:
vouchers.Lastquerydate = str(dmo.CheckTime);
vouchers.Dynamicdate = self.proxy.GetDateTime(dmo.CheckTime,"yyyy-MM-dd");
vouchers.Timestamp = str(dmo.CheckTime);
vouchers.Bignoreextenduserdefines = "y";
vouchers.Maxdataitems = "20000";
vouchers.Paginate = "0";
#self.emptyError(dmo.SaleKind_Name,"NO."+str(dmo.ID)+"销售类型为空")
id = id + 1;
inv = StatPayU8();
vouchers.Bills.Add(inv);
inv.B2BillIDs.Add(dmo.ID);
inv.Head.Id = id.ToString("00000000000000");
inv.Head.Code = id.ToString("00000000000000");
inv.Head.Date = self.proxy.GetDateTime(dmo.CheckTime,"yyyy-MM-dd");
inv.Head.Vouchtype = "01";
inv.Head.Warehousecode = "07";#仓库,默认 新原料猪库
inv.Head.Receivecode = "0101";#入库类别,默认 原料猪采购入库
inv.Head.Businesstype = "普通采购";
inv.Head.Purchasetypecode = "1";#采购类型,默认 普通采购
inv.Head.Source = "库存";
inv.Head.Auditdate = self.proxy.GetDateTime(dmo.CheckTime,"yyyy-MM-dd hh:mm:ss");
inv.Head.Maker = dmo.Employee_Name;
inv.Head.Vendorcode = dmo.Supplier_Code;#供应商编码
inv.Head.Exchrate = "1";#汇率
#self.error(str(dmo.Details.Count));
weight = 0;
for detail in dmo.Details:
weight+=detail.Weight;
entry = StatPayU8BodyEntry();
inv.Body.AddEntry(entry);
entry.Autoid = "1000089842";
entry.Inventorycode = "110101";
entry.Invname = "毛猪(新)";
entry.Quantity = str(weight);

+ 1
- 0
BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj View File

@ -101,6 +101,7 @@
</ItemGroup>
<ItemGroup>
<None Include="BL\NC\script\大红门付款单导NC凭证.py" />
<None Include="BL\U8\script\屠宰场结算单导U8采购入库单.py" />
</ItemGroup>
<ItemGroup>
<None Include="BL\NC\script\大红门预付款单导NC凭证.py" />


Loading…
Cancel
Save