AX 2009 创建普通日记账
void createLedgerJournal(IWS_PurchSettlementDetailsTable _detailsTable) { LedgerJournalName ledgerJournalName; LedgerJournalTable ledgerJournalTable; LedgerJournalTrans ledgerJournalTrans; LedgerJournalCheckPost ledgerJournalCheckPost; NumberSeq numberseq; LedgerJournalNameId ledgerJournalNameId = "GL" ; //General Journal VendTrans vendTrans; VendTransOpen transOpen; IWS_VendInvoice vendInvoice; LedgerJournalEngine ledgerJournalEngine; VendTable vendTable; Voucher voucher; CustVendOpenTransManager manager; //LedgerJournalTxt journalTxt; ; ttsbegin; select firstonly ledgerJournalTable where ledgerJournalTable.IWS_VendSettlementId == _detailsTable.VendSettlementId; if (ledgerJournalTable.RecId) { throw error(strfmt( "@IWS1399" ,_detailsTable.VendSettlementId, ledgerJournalTable.JournalNum)); } //create ledgerjournalTable ledgerJournalTable.clear(); ledgerJournalTable.JournalNum = JournalTableData::newTable(ledgerJournalTable).nextJournalId(); vendTable = VendTable::find(_detailsTable.VendAccount); ledgerJournalName = LedgerJournalName::find(LedgerJournalNameId); ledgerJournalTable.JournalName = ledgerJournalName.JournalName; ledgerJournalTable.initFromLedgerJournalName(); ledgerJournalTable.Name = "@IWS1378" ; ledgerJournalTable.IWS_VendSettlementId = _detailsTable.VendSettlementId; ledgerJournalTable.doInsert(); //create ledgerjournalTrans ledgerJournalEngine = new LedgerJournalEngine(); ledgerJournalEngine.ledgerJournalTable(ledgerJournalTable); select sum(TotalAmount) from vendInvoice where vendInvoice.VendSettlementId == _detailsTable.VendSettlementId; numberseq = NumberSeq::newGetVoucherFromCode(ledgerJournalName.VoucherSeries); voucher = numberseq.voucher(); ledgerJournalTrans.Voucher = voucher; ledgerJournalTrans.initValue(); ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum; ledgerJournalTrans.AccountType = LedgerJournalACType::Vend; ledgerJournalTrans.AccountNum = _detailsTable.VendAccount; ledgerJournalTrans.TransDate = systemdateget(); ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger; ledgerJournalTrans.Txt = "@IWS1378" ; ledgerJournalEngine.IWS_initFromVendTable(ledgerJournalTrans,vendTable); ledgerJournalTrans.AmountCurDebit = decround(vendInvoice.TotalAmount,2); ledgerJournalTrans.SettleVoucher = SettlementType::SelectedTransact; ledgerJournalTrans.DocumentNum = _detailsTable.VendSettlementId; ledgerJournalTrans.insert(); select firstonly transOpen join vendTrans where transOpen.AccountNum == vendTrans.AccountNum && transOpen.RefRecId == vendTrans.RecId && vendTrans.Invoice == _detailsTable.VendSettlementId && vendTrans.AccountNum == _detailsTable.VendAccount; if (transOpen.RecId) { manager = CustVendOpenTransManager::construct(ledgerJournalTrans); /* manager.calcAndUpdateFine_BR(transOpen.company(), transOpen, ledgerJournalTrans.TransDate); manager.calcAndUpdateFinInterest_BR(transOpen.company(), transOpen, ledgerJournalTrans.TransDate); */ manager.updateTransMarked(transOpen, NoYes::Yes); } else { throw error(strfmt( "@IWS1403" ,_detailsTable.VendAccount, _detailsTable.VendSettlementId)); } //create branch ledgerjournaltrans while select vendInvoice where vendInvoice.VendSettlementId == _detailsTable.VendSettlementId { ledgerJournalTrans.clear(); ledgerJournalTrans.Voucher = voucher; ledgerJournalTrans.initValue(); ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum; ledgerJournalTrans.AccountType = LedgerJournalACType::Vend; ledgerJournalTrans.AccountNum = _detailsTable.VendAccount; ledgerJournalTrans.TransDate = systemdateget(); ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger; ledgerJournalTrans.Txt = "@IWS1378" ; ledgerJournalEngine.IWS_initFromVendTable(ledgerJournalTrans,vendTable); ledgerJournalTrans.AmountCurCredit = decround(vendInvoice.TotalAmount,2); //ledgerJournalTrans.SettleVoucher = SettlementType::SelectedTransact; ledgerJournalTrans.Invoice = vendInvoice.InvoiceId; ledgerJournalTrans.insert(); } //create branch ledgerjournaltrans tax while select vendInvoice where vendInvoice.VendSettlementId == _detailsTable.VendSettlementId { ledgerJournalTrans.clear(); ledgerJournalTrans.Voucher = voucher; ledgerJournalTrans.initValue(); ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum; ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger; ledgerJournalTrans.AccountNum = "22210101" ; ledgerJournalTrans.TransDate = systemdateget(); ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger; //ledgerJournalTrans.SettleVoucher = SettlementType::SelectedTransact; ledgerJournalTrans.Txt = "@IWS1378" ; ledgerJournalEngine.IWS_initFromOffsetAccount(ledgerJournalTrans); ledgerJournalTrans.AmountCurCredit = decround(vendInvoice.TaxAmount,2); ledgerJournalTrans.Invoice = vendInvoice.InvoiceId; ledgerJournalTrans.TaxCode = "C03" ; ledgerJournalTrans.insert(); } //create branch ledgerjournaltrans all tax select sum(TaxAmount) from vendInvoice where vendInvoice.VendSettlementId == _detailsTable.VendSettlementId; ledgerJournalTrans.clear(); ledgerJournalTrans.Voucher = voucher; ledgerJournalTrans.initValue(); ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum; ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger; ledgerJournalTrans.AccountNum = "22210101" ; ledgerJournalTrans.TransDate = systemdateget(); ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger; ledgerJournalTrans.Txt = "@IWS1378" ; ledgerJournalEngine.IWS_initFromOffsetAccount(ledgerJournalTrans); ledgerJournalTrans.AmountCurCredit = - decround(vendInvoice.TaxAmount,2); //ledgerJournalTrans.SettleVoucher = SettlementType::SelectedTransact; ledgerJournalTrans.Invoice = _detailsTable.VendSettlementId; ledgerJournalTrans.TaxCode = "C03" ; ledgerJournalTrans.insert(); ttscommit; info(strfmt( "@IWS1379" ,_detailsTable.VendSettlementId, ledgerJournalTable.JournalNum)); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?