Posts

Showing posts from July, 2024

Settle invoices in D365fo x++

Settle invoices in  D365fo x++ Code:  public static void settleInvoices(CustAccount _customer, InvoiceId _oldInvoice, InvoiceId _newInvoice)     {         CustTable           custTable;         CustTransOpen       invCustTransOpen, payCustTransOpen;         CustTrans           invCustTrans, payCustTrans;         custTable = CustTable::find(_customer);                  try         {             //for invoice             select firstonly invCustTrans             where invCustTrans.AccountNum == custTable.AccountNum             &&  invCustTrans.TransType      == LedgerTransType::Sales     ...

OnQueryExecuting eventhandler in d365fo x++

OnQueryExecuting eventhandler in d365fo x++ Code:  [FormDataSourceEventHandler(formDataSourceStr(SalesEditLines, DSASalesAdvanceInvoice), FormDataSourceEventType::QueryExecuting)]     public static void DSASalesAdvanceInvoice_OnQueryExecuting(FormDataSource sender, FormDataSourceEventArgs e)     {         QueryBuildDataSource    QueryBuildDataSource;         queryBuildRange         qbr;                                   QueryBuildDataSource  = sender.query().dataSourceTable(tableNum(DSASalesAdvanceInvoice));         qbr = QueryBuildDataSource.addRange(fieldnum(DSASalesAdvanceInvoice, AdvanceLimit));         qbr.value(SysQuery::value(">0"));         qbr.status(RangeStatus::Locked);     }

Customer Journal Creation And Settlement in d365fo x++

 Customer Journal Creation And Settlement in d365fo x++ Code:  class DSACustJournalCreationAndSettlement { public static ledgerJournalTable createLedgerJournal(SalesId _saleId, TaxGroup _taxGroup, TaxItemGroup _taxItemGroup, CurrencyCode _currency, SalesCategory _category, ParmId _parmId) { InventPosting inventPosting; LedgerJournalTrans ledgerJournalTrans; LedgerJournalTable ledgerJournalTable; LedgerJournalName ledgerJournalName; NumberSeq numberseq; Voucher voucher; CustParameters custParameters; SalesTable salesTable; LedgerJournalId ledgerJournalId; LedgerJournalCheckPost journalCheckPost; try { ledgerJournalId = ''; select firstonly1 salesTable where salesTable.SalesId == _saleId; select firstonly1 LedgerDimension, RecId, InventAccountType, CategoryRelati...

How to show Multiple selected records from one form to another in D365fo x++

How to show Multiple selected records from one form to another Code:  public void init() { MultiSelectionHelper multiSelectionHelper; PurchReqLine PurchReqLine_Loc; QueryBuildDataSource qbds; container selectedPR; super(); if (element.args().caller() && element.args().record()) { multiSelectionHelper = MultiSelectionHelper::construct(); multiSelectionHelper.parmDatasource(element.args().record().dataSource()); PurchReqLine_Loc = multiSelectionHelper.getFirst(); while (PurchReqLine_Loc.RecId != 0) { selectedPR += PurchReqLine_Loc.recid; PurchReqLine_Loc = multiSelectionHelper.getNext(); } PurchReqLine_ds.query().dataSourceTable(tableNum(PurchReqLine)).clearDynalinks(); PurchReqLine_ds.query().literals(true); PurchReqLine_ds.query().dataSourceTable(tableNum(PurchReqLine))....

Show selected record in form through caller form in D365fo x++

Show selected record in form through caller form in D365fo x++ Code:  FormRun   formRun;         public void init()     {         super();         formRun = element.args().caller();         InventTable InventTable_loc = element.args().record();           str value = InventTable_loc.DSAzaqItemHoldStatus == DSAzaqItemHoldStatus::OnHold ? enum2Str(DSAzaqItemHoldStatus::Open) : enum2Str(DSAzaqItemHoldStatus::OnHold);         DSAItemApprovalStatusUpdate.text(value);       }       [DataSource]     class InventTable     {         public void executeQuery()         {         ...

Recall workflow through Code after completion of Workflow

Recall workflow through Code after completion of Workflow Code:  Public class DSSH_SalesOrderWFRecall { /// <summary> /// Class entry point. The system will call this method when a designated menu /// is selected or when execution starts and this class is set as the startup class. /// </summary> /// <param name = "_args">The specified arguments.</param> public static void main(Args _args) { salesTable salesTable = _args.record() as SalesTable; FormRun formRun = _args.caller(); FormDataSource fds = formRun.dataSource(formDataSourceStr(SalesTable, SalesTable)); DSSH_SalesOrderWFRecall SalesOrderWFRecall = new DSSH_SalesOrderWFRecall(); SalesOrderWFRecall.run(salesTable); fds.refresh(); fds.reread(); fds.research(true); } public void run(SalesTable salesTable) { if(this.isValidToRecall(salesTable)) { this...

Find label through Power Shell

Find label through Power Shell Code:  $packagesDir = 'K:\AOSService\PackagesLocalDirectory\' $labelFiles = ls $packagesDir\*\*\AxLabelFile\LabelResources\en-US\proj*.txt $labelFiles | Select-String -Pattern '^(?! ;).*=.*ancel the associated Purchase Order and try again.' | select Line, Filename, LineNumber

Query with QBDS in RDP Report in D365fo X++

                                                           Query with QBDS in D365fo X++ Code:  public void processReport() { Query query; QueryBuildDataSource qbds; QueryBuildDataSource purchaseOrderQBDS; QueryBuildDataSource purchaseReqLineQBDS; QueryBuildDataSource purchaseOrderLineQBDS; QueryBuildDataSource vendPackingSlipJourQBDS; QueryBuildDataSource vendInvoiceJourQBDS; QueryBuildRange qbr; QueryRun queryRun; str range; dssl_contract = this.parmDataContract(); vendor = dssl_contract.parmVendor(); purchId = dssl_contract.parmPurchaseOrder(); packingSlipId = dssl_contract.parmPackingSlipId();...