ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
DimensionDynamicAccount dimensionDynamicAccount ;
dimensionDynamicAccount = LedgerDimensionFacade::serviceCreateLedgerDimension(LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountId(custparameter.DTMainAccountId),custtable_g.DefaultDimension);
ledgerJournalTrans.OffsetLedgerDimension = dimensionDynamicAccount ;
public static LedgerDimensionAccount serviceCreateLedgerDimension(
RecId _ledgerDimensionId,
DimensionDefault _dimensionDefault1 = 0,
DimensionDefault _dimensionDefault2 = 0,
DimensionDefault _dimensionDefault3 = 0)
{
container cachedResult;
LedgerDimensionAccount createdLedgerDimension;
LedgerRecId ledgerRecId;
// Add ledger to cache key as default accounts only reference a main account which are only striped by COA, which can cause collisions across ledgers
ledgerRecId = Ledger::current();
// If no dimension is specified, just return 0
if (_ledgerDimensionId == 0)
{
createdLedgerDimension = 0;
}
else
{
cachedResult = DimensionCache::getValue(
DimensionCacheScope::DefaultingCreateLedgerDimension,
[_ledgerDimensionId, ledgerRecId, _dimensionDefault1, _dimensionDefault2, _dimensionDefault3]);
if (cachedResult == connull())
{
cachedResult = [LedgerDimensionFacade::createLedgerDimension(_ledgerDimensionId, _dimensionDefault1, _dimensionDefault2, _dimensionDefault3)];
DimensionCache::insertValue(
DimensionCacheScope::DefaultingCreateLedgerDimension,
[_ledgerDimensionId, ledgerRecId, _dimensionDefault1, _dimensionDefault2, _dimensionDefault3],
cachedResult);
}
[createdLedgerDimension] = cachedResult;
}
return createdLedgerDimension;
}
LedgerDimensionFacade::serviceCreateLedgerDimension(LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountId(custParameter.DTMainAccountId), custTable_g.DefaultDimension);
numberSeq = NumberSeq::newGetVoucherFromId((ledgerjournalname.NumberSequenceTable));
ledgerjournalTrans.Voucher = numberSeq.voucher();
ledgerjournalTrans.JournalNum = ledgerjournalTable.JournalNum;
ledgerjournalTrans.AccountType = LedgerJournalACType::Cust;
ledgerjournalTrans.Company = curext();
ledgerjournalTrans.parmAccount(custtable_g.AccountNum,ledgerjournalTrans.AccountType);
ledgerjournalTrans.initFromCustTable(custtable_g);
ledgerjournalTrans.TransDate = systemDateGet();
ledgerjournalTrans.ExchRate = ExchangeRateHelper::exchRate(ledgerjournalTrans.CurrencyCode);
ledgerjournalTrans.Txt = strFmt('Payment for item sale for sales id : %1',iSLFoCInvoicedSalesOrderLoc.SalesId);
ledgerjournalTrans.DefaultDimension = custtable_g.DefaultDimension;
ledgerjournalTrans.OffsetDefaultDimension = 0;
ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
ledgerJournalTrans.OffsetLedgerDimension = LedgerDimensionFacade::serviceCreateLedgerDimension(LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountId(custparameter.DTMainAccountId),custtable_g.DefaultDimension);
ledgerJournalTrans.modifiedField(fieldNum(LedgerJournalTrans, OffsetLedgerDimension));
ledgerjournalTrans.TransactionType = LedgerTransType::Payment;
ledgerjournalTrans.AmountCurCredit = iSLFoCInvoicedSalesOrderLoc.InvoiceAmount;
ledgerjournalTrans.PaymMode = custtable_g.PaymMode;
//ledgerjournalTrans.SettleVoucher = SettlementType::SelectedTransact;
ledgerjournalTrans.modifiedField(fieldNum(LedgerjournalTrans,PaymMode));
ledgerjournalTrans.insert();
LedgerDimensionFacade::serviceCreateLedgerDimension(
LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountId(...));
[Form]
public class ISLFoCInvoicedSalesOrderForm extends FormRun
{
[Control("Button")]
class Post
{
/// <summary>
///
/// </summary>
public void clicked()
{
super();
int recordsCount;
ISLFoCInvoicedSalesOrder _iSLFoCInvoicedSalesOrder,iSLFoCInvoicedSalesOrderLoc;
container con;
Args args;
str multiSelectString;
DialogButton Button;
int i;
RecId recid;
NumberSeq numberSeq;
CustParameters custparameter;
CustTable custtable_g;
Ledgerjournalname ledgerjournalname;
LedgerjournalTable ledgerjournalTable;
LedgerjournalTrans ledgerjournalTrans;
LedgerJournalCheckPost ledgerJournalCheckPost;
;
args = new Args();
recordsCount = ISLFoCInvoicedSalesOrder_ds.recordsMarked().lastIndex(); // gets the total records selected
_iSLFoCInvoicedSalesOrder = ISLFoCInvoicedSalesOrder_ds.getFirst(1);
while (_iSLFoCInvoicedSalesOrder)
{
// storing recid of selected field in container
con = conIns(con,1,_iSLFoCInvoicedSalesOrder.RecId);
// converting container to string with comma separated
multiSelectString = con2Str(con,",");
_iSLFoCInvoicedSalesOrder = ISLFoCInvoicedSalesOrder_ds.getNext(); // moves to next record
}
if(con == conNull())
{
Info('please select lines to transfer ');
}
else
{
Button= Box::okCancel("Do you want to post the journal?",DialogButton::No);
if (Button == DialogButton::Ok)
{
select DTJournalName,DTMainAccountId FROM custparameter;
select ledgerjournalname where ledgerjournalname.JournalName == custparameter.DTJournalName; //use correct payment journal name
ledgerjournalTable.JournalName = ledgerjournalname.JournalName;
ledgerjournalTable.initFromLedgerJournalName();
ledgerjournalTable.JournalNum = JournalTableData::newTable(ledgerjournalTable).nextJournalId();
ledgerjournalTable.insert();
for(i = 1;i<= conLen(con) ;i++)
{
recid = conPeek(con,i);
select * from iSLFoCInvoicedSalesOrderLoc
where iSLFoCInvoicedSalesOrderLoc.RecId == recid;
select * from custtable_g
where custtable_g.AccountNum == iSLFoCInvoicedSalesOrderLoc.CustAccount;
numberSeq = NumberSeq::newGetVoucherFromId((ledgerjournalname.NumberSequenceTable));
ledgerjournalTrans.Voucher = numberSeq.voucher();
ledgerjournalTrans.JournalNum = ledgerjournalTable.JournalNum;
ledgerjournalTrans.AccountType = LedgerJournalACType::Cust;
ledgerjournalTrans.Company = curext();
ledgerjournalTrans.parmAccount(custtable_g.AccountNum,ledgerjournalTrans.AccountType);
ledgerjournalTrans.initFromCustTable(custtable_g);
ledgerjournalTrans.TransDate = systemDateGet();
ledgerjournalTrans.ExchRate = ExchangeRateHelper::exchRate(ledgerjournalTrans.CurrencyCode);
ledgerjournalTrans.Txt = strFmt('Payment for item sale for sales id : %1',iSLFoCInvoicedSalesOrderLoc.SalesId);
ledgerjournalTrans.DefaultDimension = custtable_g.DefaultDimension;
ledgerjournalTrans.OffsetDefaultDimension = custtable_g.DefaultDimension;
LedgerJournalTrans.OffsetLedgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber("500002",LedgerJournalACType::Ledger);
ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
ledgerjournalTrans.TransactionType = LedgerTransType::Payment;
ledgerjournalTrans.AmountCurCredit = iSLFoCInvoicedSalesOrderLoc.InvoiceAmount;
ledgerjournalTrans.PaymMode = custtable_g.PaymMode;
//ledgerjournalTrans.SettleVoucher = SettlementType::SelectedTransact;
ledgerjournalTrans.modifiedField(fieldNum(LedgerjournalTrans,PaymMode));
ledgerjournalTrans.insert();
//element.settlement(LedgerjournalTrans,ledgerjournalTrans.AmountCurCredit); //look for method
//Post Journal
ledgerJournalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerjournalTable,NoYes::Yes);
ledgerJournalCheckPost.run();
ttsCommit;
info(strFmt("Journal %1 created for item sales Id %2 to Student id %3",ledgerjournalTable.JournalNum,iSLFoCInvoicedSalesOrderLoc.SalesId,custtable_g.AccountNum));
}
}
else if(Button == DialogButton::Cancel)
{
select DTJournalName FROM custparameter;
select ledgerjournalname where ledgerjournalname.JournalName == custparameter.DTJournalName; //use correct payment journal name
ledgerjournalTable.JournalName = ledgerjournalname.JournalName;
ledgerjournalTable.initFromLedgerJournalName();
ledgerjournalTable.JournalNum = JournalTableData::newTable(ledgerjournalTable).nextJournalId();
ledgerjournalTable.insert();
for(i = 1;i<= conLen(con) ;i++)
{
recid = conPeek(con,i);
select * from iSLFoCInvoicedSalesOrderLoc
where iSLFoCInvoicedSalesOrderLoc.RecId == recid;
select * from custtable_g
where custtable_g.AccountNum == iSLFoCInvoicedSalesOrderLoc.CustAccount;
numberSeq = NumberSeq::newGetVoucherFromId((ledgerjournalname.NumberSequenceTable));
ledgerjournalTrans.Voucher = numberSeq.voucher();
ledgerjournalTrans.JournalNum = ledgerjournalTable.JournalNum;
ledgerjournalTrans.AccountType = LedgerJournalACType::Cust;
ledgerjournalTrans.Company = curext();
ledgerjournalTrans.parmAccount(custtable_g.AccountNum,ledgerjournalTrans.AccountType);
ledgerjournalTrans.initFromCustTable(custtable_g);
ledgerjournalTrans.TransDate = systemDateGet();
ledgerjournalTrans.ExchRate = ExchangeRateHelper::exchRate(ledgerjournalTrans.CurrencyCode);
ledgerjournalTrans.Txt = strFmt('Payment for item sale for sales id : %1',iSLFoCInvoicedSalesOrderLoc.SalesId);
ledgerjournalTrans.DefaultDimension = custtable_g.DefaultDimension;
ledgerjournalTrans.OffsetDefaultDimension = custtable_g.DefaultDimension;
ledgerjournalTrans.OffsetLedgerDimension =
MainAccount::findByMainAccountId(custparameter.DTMainAccountId).RecId;
ledgerjournalTrans.TransactionType = LedgerTransType::Payment;
ledgerjournalTrans.AmountCurCredit = iSLFoCInvoicedSalesOrderLoc.InvoiceAmount;
ledgerjournalTrans.PaymMode = custtable_g.PaymMode;
//ledgerjournalTrans.SettleVoucher = SettlementType::SelectedTransact;
ledgerjournalTrans.modifiedField(fieldNum(LedgerjournalTrans,PaymMode));
ledgerjournalTrans.insert();
}
}
}
}
}
}
André Arnaud de Cal... 291,883 Super User 2024 Season 2
Martin Dráb 230,569 Most Valuable Professional
nmaenpaa 101,156