from BWP.B3ButcherManageExport.BO import NcVoucher; from BWP.B3ButcherManageExport.BO import NcVoucherEntry; from BWP.B3ButcherManageExport.BO import Items; from BWP.B3ButcherManageExport.BO import Otheruserdata; from System import Convert; class BLMethodEvents(BLMethodEventsBase): def before(self): self.proxy.MinDmoProperties.Add("Date"); self.proxy.MinDmoProperties.Add("Supplier_Name"); self.proxy.MinDmoProperties.Add("Money"); self.proxy.MinDmoProperties.Add("AccountingUnit_ID"); self.proxy.MinDmoProperties.Add("AccountingUnit_Name"); self.proxy.MinDmoProperties.Add("Employee_Name"); self.proxy.MinDetailProperties.Add("ID"); self.proxy.MinDetailProperties.Add("Pay_ID"); self.proxy.MinDetailProperties.Add("StatPay_Date"); self.proxy.MinDetailProperties.Add("WeighBill_BuyNum"); self.proxy.MinDetailProperties.Add("WeighBill_BuyWeigh1"); self.proxy.MinDetailProperties.Add("Money"); self.proxy.MinDetailProperties.Add("CheckTareWeightPrice"); self.proxy.MinPreDetailProperties.Add("ID"); self.proxy.MinPreDetailProperties.Add("Pay_ID"); self.proxy.MinPreDetailProperties.Add("AdvancePay_Money"); def execute(self): self.proxy.CheckAccountingUnit(dmos); voucher = NcVoucher(); for dmo in dmos: self.emptyError(dmo.Date,"付款日期不能为空"); self.emptyError(dmo.Supplier_Name,"供应商不能为空"); #self.emptyError(dmo.Employee_Name,"经办人不能为空"); voucher.B2BillIDs.Add(dmo.ID); voucher.Head.Company = dmo.AccountingUnit_Name; if dmo.AccountingUnit_ID==5: voucher.Head.VoucherType = "QHC凭证"; else: voucher.Head.VoucherType = "记账凭证"; voucher.Head.FiscalYear = self.proxy.GetDateTime(gToday,"yyyy"); voucher.Head.AccountingPeriod = self.proxy.GetDateTime(gToday,"MM"); voucher.Head.Date = self.proxy.GetDateTime(gToday,"yyyy-MM-dd"); voucher.Head.Signature = "Y"; voucher.Head.VoucherMakingSystem = "总账"; voucher.Head.Reserve2 = "N"; voucher.Head.Enter = gUser.Name; voucher.Head.VoucherId = "0"; voucher.Head.AttachmentNumber = "0"; vouchers.Bills.Add(voucher); entryid = 0; for dmo in dmos: if dmo.AccountingUnit_ID == 1: entryid = entryid + 1; entry = NcVoucherEntry(); voucher.Body.Entrys.Add(entry); entry.EntryId = str(entryid); entry.AccountCode = "集团外应付生猪款"; entry.Abstract =self.proxy.GetDateTime(dmo.Date,"yyyy-MM-dd") +"支付" +self.proxy.GetStatPayDate(dmo,"yyyy-MM-dd")+dmo.Supplier_Name + self.proxy.GetSumWeighBill_BuyNum(dmo.Details)+ "头"+self.proxy.GetSumWeighBill_BuyWeigh1(dmo.Details)+"KG生猪尾款"; entry.Currency = "CNY"; entry.ExchangeRate2 = "1"; money1= self.proxy.GetSumMoney(dmo.Details); entry.PrimaryDebitAmount = money1; entry.NaturalDebitCurrency = money1; item =Items(); item.Name = "供应商辅助核算"; item.Value = dmo.Supplier_Name; entry.Accountings.Items.Add(item); otherUserDate = Otheruserdata(); entry.Otheruserdata = otherUserDate; entry.Otheruserdata.Cashflowcase.Money = money1; entry.Otheruserdata.Cashflowcase.Moneymain = money1; entry.Otheruserdata.Cashflowcase.PkCashflow = "购买商品、接受劳务支付的现金"; for dmo in dmos: if dmo.AccountingUnit_ID == 1: entryid = entryid + 1; entry = NcVoucherEntry(); voucher.Body.Entrys.Add(entry); entry.EntryId = str(entryid); entry.AccountCode = "银行存款_收购" ; entry.Abstract =self.proxy.GetDateTime(dmo.Date,"yyyy-MM-dd") +"支付" +self.proxy.GetStatPayDate(dmo,"yyyy-MM-dd")+dmo.Supplier_Name + self.proxy.GetSumWeighBill_BuyNum(dmo.Details)+ "头"+self.proxy.GetSumWeighBill_BuyWeigh1(dmo.Details)+"KG生猪尾款"; entry.Settlement = "电汇"; entry.Currency = "CNY"; entry.ExchangeRate2 = "1" ; entry.DocumentDate = self.proxy.GetDateTime(gToday,"yyyy-MM-dd"); money1= self.proxy.GetSumMoney(dmo.Details); entry.PrimaryCreditAmount = money1; entry.NaturalCreditCurrency = money1; voucher2 = NcVoucher(); for dmo in dmos: voucher2.B2BillIDs.Add(dmo.ID); voucher2.Head.Company = dmo.AccountingUnit_Name; if dmo.AccountingUnit_ID==5: voucher2.Head.VoucherType = "QHC凭证"; else: voucher2.Head.VoucherType = "记账凭证"; voucher2.Head.FiscalYear = self.proxy.GetDateTime(gToday,"yyyy"); voucher2.Head.AccountingPeriod = self.proxy.GetDateTime(gToday,"MM"); voucher2.Head.Date = self.proxy.GetDateTime(gToday,"yyyy-MM-dd"); voucher2.Head.Signature = "Y"; voucher2.Head.VoucherMakingSystem = "总账"; voucher2.Head.Reserve2 = "N"; voucher2.Head.Enter = gUser.Name; voucher2.Head.VoucherId = "0"; voucher2.Head.AttachmentNumber = "0"; vouchers.Bills.Add(voucher2); entryid = 0; for dmo in dmos: if dmo.AccountingUnit_ID == 1: entryid = entryid + 1; entry = NcVoucherEntry(); voucher2.Body.Entrys.Add(entry); entry.EntryId = str(entryid); entry.AccountCode = "原材料生猪" ; weight = self.proxy.GetSumWeighBill_BuyWeigh1(dmo.Details); entry.Abstract = self.proxy.GetStatPayDate(dmo,"yyyy-MM-dd")+dmo.Supplier_Name +"购买生猪"+ self.proxy.GetSumWeighBill_BuyNum(dmo.Details)+ "头"+weight+"KG"; entry.Currency = "CNY"; entry.ExchangeRate2 = "1" ; debitAmount = self.proxy.GetSumStatPay_Money1(dmo.Details); entry.PrimaryDebitAmount = debitAmount; entry.NaturalDebitCurrency = debitAmount; entry.DebitQuantity = weight; entry.UnitPrice = str(dmo.Details[0].CheckTareWeightPrice); for dmo in dmos: if dmo.AccountingUnit_ID == 1: entryid = entryid + 1; weight = self.proxy.GetSumWeighBill_BuyWeigh1(dmo.Details); abstract = self.proxy.GetStatPayDate(dmo,"yyyy-MM-dd")+dmo.Supplier_Name +"购买生猪"+ self.proxy.GetSumWeighBill_BuyNum(dmo.Details)+ "头"+weight+"KG"; entry = NcVoucherEntry(); voucher2.Body.Entrys.Add(entry); entry.EntryId = str(entryid); entry.AccountCode = "集团外应付生猪款" ; entry.Abstract = abstract; entry.Currency = "CNY"; entry.ExchangeRate2 = "1" ; entry.PrimaryCreditAmount = self.proxy.GetSumStatPay_Money1(dmo.Details); entry.NaturalCreditCurrency = self.proxy.GetSumStatPay_Money1(dmo.Details); item =Items(); item.Name = "供应商辅助核算"; item.Value = dmo.Supplier_Name; entry.Accountings.Items.Add(item);