Passing form caller and menu item caller in ax 2012
form : SalesCreateOrder
form : method
private void god_sample()
{
//
Object myCaller;
FormRun callerForm;
//
//
if (element.args())
{
myCaller = element.args().caller();
if (myCaller && myCaller is SysSetupFormRun)
{
callerForm = myCaller;
if (callerForm.name() == formStr(GOD_SalesTableListPage) &&
(callerForm.args() &&
(callerForm.args().menuItemName() == menuitemDisplayStr(GOD_SalesTableListPage))))
{
salesTable.GITL_SampleSO = NoYes::Yes;
salesTable.doUpdate();
// update_recordset salesTable
// setting GITL_SampleSO = NoYes::Yes;
}
}
}
//
}
salestable : form
datasource : salestable > create
void create(boolean append = true)
{
Object myCaller;
FormRun callerForm;
SalesTable newSalesTable;
TMSSalesTable newTMSSalesTable;
MCRSalesTable newMCRSalesTable;
MCRSalesTableShipping newMCRSalesTableShipping;
MCRSourceCode mcrSourceCode;
CustTable custTableLocal;
salesTableForm.interCompanyAutoCreateOrders();
element.editSales(true);
mcrParmsSet = false;
// If we are called from CustomerService and we already have
// created a Sales Order do NOT allow ctrl-n.
if (salesTable.SalesId && mcrCustomerServiceParm)
{
return;
}
// Refactored logic to run do not allow open order logic in a separate method.
// Need to know whether or not the new create was allowed, if it is not
// return out of the create function.
if (!element.mcrCheckOpenOrder())
{
return;
}
// Initialize the image for each line to a "blank" image.
if (enableDirectedSelling)
{
mcrImageUrl = '';
}
// If we were called from CustomerService or CustTable and we need to
// create a new Sales Order do it here and not in SalesCreateOrder.
// Added new parameter of FormOpenModeForNew
if (mcrCustomerServiceParm != MCRCustomerServiceParam::None
&& mcrCustomerServiceParm != MCRCustomerServiceParam::Add
&& mcrCustomerServiceParm != MCRCustomerServiceParam::FormOpenModeForNew)
{
if(element.args().record().TableId == tableNum(CustTable))
{
custTableLocal = element.args().record();
}
salesCreateOrderForm = SalesCreateOrderForm::construct(salesTableForm.defaultSalesType(),
salesTableForm.project());
// When coming from cust service or cust maintenance, open form in simple mode.
if (!salesTable.SalesId)
{
super(append);
if (!salesTableType)
{
salesTableType = salesTable.type();
}
//Only setfocus if on the correct form view
if(tabPageDetails.isDisplayed())
{
lineViewTab.setFocus();
}
salesTableType.formMethodDataSourceCreate(element, salesTable_ds);
salesTable.CustAccount = custTableLocal.AccountNum;
salesTable.transferCustAccount();
ttsbegin;
salesTableType.formMethodDataSourceWrite(element, salesTable_ds);
if (salesTable.ProjId)
{
salesTable.initFromProjInvoiceTable();
}
salesTable.insert();
// Records that the order has been opened and which one it is.
if (enableOrderCompletion)
{
openOrderSalesTable = salesTable.data();
}
ttscommit;
if (isSalesTableExtensionTHEnabled || isSalesTableWEnabled)
{
salesTable_DS.research(true);
}
// If creating a sales order from a new customer from CustTable
if(mcrCustomerServiceParm == MCRCustomerServiceParam::CreateNew)
{
mcrSalesTable.SourceId = custTableLocal.mcrCustTable().OrigSourceId;
mcrLastSourceId = mcrSalesTable.SourceId;
ttsbegin;
SalesTable::find(salesTable.SalesId, true);
mcrSourceCode = MCRSourceCode::construct(salesTable);
mcrSourceCode.mcrInitFromSourceCodeSetup(MCRSourceCodeSetup::find(mcrSalesTable.SourceId), salesTable.CustAccount);
salesTable.update();
ttscommit;
salesTable_ds.refresh();
// Immediatlly refresh the sales line
salesLine_ds.executeQuery();
salesLine_ds.refresh();
}
// Set field as touched so that when a user clicks off that record,
// validateWrite is called.
this.forceWrite(true);
}
}
else
{
if(salesTableForm.create())
{
if (skipLinkActive)
{
skipLinkActive = false;
if (!linkActiveHeaderExecuted)
{
this.linkActive();
}
}
newSalesTable = salesTableForm.salesTable();
if (newSalesTable)
{
super(append);
//added by 21927 GITL_FRS_OPR_014 start
if (!GITL_CustomizationExemptionProfile::find(#OPR_014))
{
ttsBegin;
newSalesTable.selectForUpdate(true);
newSalesTable.GITL_DocumnetDate = DateTimeUtil::date(newSalesTable.createdDateTime);
//07102016
//
if (element.args())
{
myCaller = element.args().caller();
if (myCaller && myCaller is SysSetupFormRun)
{
callerForm = myCaller;
if (callerForm.name() == formStr(GOD_SalesTableListPage) &&
(callerForm.args().menuItemName() == menuitemDisplayStr(GOD_SalesTableListPage)))
{
newSalesTable.GITL_SampleSO = NoYes::Yes;
}
}
}
//
//07102016
newSalesTable.update();
ttsCommit;
}
//added by 21927 GITL_FRS_OPR_014 end
salesTable.data(newSalesTable);
salesTable_ds.cacheCalculateMethod(tableMethodStr(SalesTable, editContactPersonName));
salesTable_DS.rereadReferenceDataSources();
// <GEERU>
if (isRU)
{
salesTable_RU.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_RU.TableId,
salesTable.RecId,
true));
salesTable_RU_DS.rereadReferenceDataSources();
}
// </GEERU>
// <GBR>
if (BrazilParameters::isEnabled())
{
salesTable_BR.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_BR.TableId,
salesTable.RecId,
true));
salesTable_BR_DS.rereadReferenceDataSources();
}
// </GBR>
// <GIN>
if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoIN]))
{
salesTable_IN.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_IN.TableId,
salesTable.RecId,
true));
salesTable_IN_DS.rereadReferenceDataSources();
}
// </GIN>
// <GEERU><GBR>
if (isRU || BrazilParameters::isEnabled())
{
salesTable_ds.refresh();
}
// </GBR></GEERU>
//<GTH>
if (isSalesTableExtensionTHEnabled)
{
salesTable_DS.research(true);
}
//</GTH>
if (isSalesTableWEnabled)
{
salesTable_W.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_W.TableId,
salesTable.RecId,
true));
salesTable_W_DS.rereadReferenceDataSources();
salesTable_DS.refresh();
}
lineViewTab.setFocus();
// Context is now editing. If FormOpenMode is ForNew, change it to ForEdit
if (TradeFormHelper::isOpenedForNew(element.args()))
{
element.args().parmEnum(enum2int(FormOpenMode::ForEdit));
}
}
}
else
{
// If form was opened for the intent of creating new record, and with the given caller, then close form
if (TradeFormHelper::isOpenedForNewFromForm(element.args()))
{
element.close();
}
else
{
element.editSales(salesTableForm.editHeaderAllowed(), salesTableForm.deleteHeaderAllowed());
}
}
}
if (!tmsSalesTable.isTmp()) // No need to query for TMSSalesTable if it is disabled
{
newTMSSalesTable = TMSSalesTable::find(salesTable.SalesId);
tmsSalesTable.data(newTMSSalesTable);
tmsSalesTable.reread();
}
element.refreshRetailDatasource();
if (mcrCallCenterEnabled)
{
newMCRSalesTable = MCRSalesTable::findSalesId(salesTable.SalesId);
if (newMCRSalesTable)
{
mcrSalesTable.data(newMCRSalesTable);
}
newMCRSalesTableShipping = MCRSalesTableShipping::findSalesId(salesTable.SalesId);
if (newMCRSalesTableShipping)
{
mcrSalesTableShipping.data(newMCRSalesTableShipping);
}
// If the create is being done from customer maintenance via customer service and
// allowOpenOrders is off, then set the boolean to true so that we will not run
// salesTable/LinkActive/Super which tries to save the salesTable record and prompts
// that there can not be open orders.
if (mcrCustomerServiceParm == MCRCustomerServiceParam::CreateNew
&& enableOrderCompletion)
{
enterOrderFromNewCust = true;
}
// For when new sales orders are created to set focus to the line.
if(! (MCROrderParameters::find().mcrSourceCodeRequired && mcrSalesTable.SourceId == '')
&& salesLine_ItemId.isDisplayed()) //Only setfocus if on the correct form view
{
salesLine_ItemId.setFocus();
}
}
skipLinkActive = false;
}
form : SalesCreateOrder
form : method
private void god_sample()
{
//
Object myCaller;
FormRun callerForm;
//
//
if (element.args())
{
myCaller = element.args().caller();
if (myCaller && myCaller is SysSetupFormRun)
{
callerForm = myCaller;
if (callerForm.name() == formStr(GOD_SalesTableListPage) &&
(callerForm.args() &&
(callerForm.args().menuItemName() == menuitemDisplayStr(GOD_SalesTableListPage))))
{
salesTable.GITL_SampleSO = NoYes::Yes;
salesTable.doUpdate();
// update_recordset salesTable
// setting GITL_SampleSO = NoYes::Yes;
}
}
}
//
}
salestable : form
datasource : salestable > create
void create(boolean append = true)
{
Object myCaller;
FormRun callerForm;
SalesTable newSalesTable;
TMSSalesTable newTMSSalesTable;
MCRSalesTable newMCRSalesTable;
MCRSalesTableShipping newMCRSalesTableShipping;
MCRSourceCode mcrSourceCode;
CustTable custTableLocal;
salesTableForm.interCompanyAutoCreateOrders();
element.editSales(true);
mcrParmsSet = false;
// If we are called from CustomerService and we already have
// created a Sales Order do NOT allow ctrl-n.
if (salesTable.SalesId && mcrCustomerServiceParm)
{
return;
}
// Refactored logic to run do not allow open order logic in a separate method.
// Need to know whether or not the new create was allowed, if it is not
// return out of the create function.
if (!element.mcrCheckOpenOrder())
{
return;
}
// Initialize the image for each line to a "blank" image.
if (enableDirectedSelling)
{
mcrImageUrl = '';
}
// If we were called from CustomerService or CustTable and we need to
// create a new Sales Order do it here and not in SalesCreateOrder.
// Added new parameter of FormOpenModeForNew
if (mcrCustomerServiceParm != MCRCustomerServiceParam::None
&& mcrCustomerServiceParm != MCRCustomerServiceParam::Add
&& mcrCustomerServiceParm != MCRCustomerServiceParam::FormOpenModeForNew)
{
if(element.args().record().TableId == tableNum(CustTable))
{
custTableLocal = element.args().record();
}
salesCreateOrderForm = SalesCreateOrderForm::construct(salesTableForm.defaultSalesType(),
salesTableForm.project());
// When coming from cust service or cust maintenance, open form in simple mode.
if (!salesTable.SalesId)
{
super(append);
if (!salesTableType)
{
salesTableType = salesTable.type();
}
//Only setfocus if on the correct form view
if(tabPageDetails.isDisplayed())
{
lineViewTab.setFocus();
}
salesTableType.formMethodDataSourceCreate(element, salesTable_ds);
salesTable.CustAccount = custTableLocal.AccountNum;
salesTable.transferCustAccount();
ttsbegin;
salesTableType.formMethodDataSourceWrite(element, salesTable_ds);
if (salesTable.ProjId)
{
salesTable.initFromProjInvoiceTable();
}
salesTable.insert();
// Records that the order has been opened and which one it is.
if (enableOrderCompletion)
{
openOrderSalesTable = salesTable.data();
}
ttscommit;
if (isSalesTableExtensionTHEnabled || isSalesTableWEnabled)
{
salesTable_DS.research(true);
}
// If creating a sales order from a new customer from CustTable
if(mcrCustomerServiceParm == MCRCustomerServiceParam::CreateNew)
{
mcrSalesTable.SourceId = custTableLocal.mcrCustTable().OrigSourceId;
mcrLastSourceId = mcrSalesTable.SourceId;
ttsbegin;
SalesTable::find(salesTable.SalesId, true);
mcrSourceCode = MCRSourceCode::construct(salesTable);
mcrSourceCode.mcrInitFromSourceCodeSetup(MCRSourceCodeSetup::find(mcrSalesTable.SourceId), salesTable.CustAccount);
salesTable.update();
ttscommit;
salesTable_ds.refresh();
// Immediatlly refresh the sales line
salesLine_ds.executeQuery();
salesLine_ds.refresh();
}
// Set field as touched so that when a user clicks off that record,
// validateWrite is called.
this.forceWrite(true);
}
}
else
{
if(salesTableForm.create())
{
if (skipLinkActive)
{
skipLinkActive = false;
if (!linkActiveHeaderExecuted)
{
this.linkActive();
}
}
newSalesTable = salesTableForm.salesTable();
if (newSalesTable)
{
super(append);
//added by 21927 GITL_FRS_OPR_014 start
if (!GITL_CustomizationExemptionProfile::find(#OPR_014))
{
ttsBegin;
newSalesTable.selectForUpdate(true);
newSalesTable.GITL_DocumnetDate = DateTimeUtil::date(newSalesTable.createdDateTime);
//07102016
//
if (element.args())
{
myCaller = element.args().caller();
if (myCaller && myCaller is SysSetupFormRun)
{
callerForm = myCaller;
if (callerForm.name() == formStr(GOD_SalesTableListPage) &&
(callerForm.args().menuItemName() == menuitemDisplayStr(GOD_SalesTableListPage)))
{
newSalesTable.GITL_SampleSO = NoYes::Yes;
}
}
}
//
//07102016
newSalesTable.update();
ttsCommit;
}
//added by 21927 GITL_FRS_OPR_014 end
salesTable.data(newSalesTable);
salesTable_ds.cacheCalculateMethod(tableMethodStr(SalesTable, editContactPersonName));
salesTable_DS.rereadReferenceDataSources();
// <GEERU>
if (isRU)
{
salesTable_RU.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_RU.TableId,
salesTable.RecId,
true));
salesTable_RU_DS.rereadReferenceDataSources();
}
// </GEERU>
// <GBR>
if (BrazilParameters::isEnabled())
{
salesTable_BR.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_BR.TableId,
salesTable.RecId,
true));
salesTable_BR_DS.rereadReferenceDataSources();
}
// </GBR>
// <GIN>
if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoIN]))
{
salesTable_IN.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_IN.TableId,
salesTable.RecId,
true));
salesTable_IN_DS.rereadReferenceDataSources();
}
// </GIN>
// <GEERU><GBR>
if (isRU || BrazilParameters::isEnabled())
{
salesTable_ds.refresh();
}
// </GBR></GEERU>
//<GTH>
if (isSalesTableExtensionTHEnabled)
{
salesTable_DS.research(true);
}
//</GTH>
if (isSalesTableWEnabled)
{
salesTable_W.data(SysExtensionSerializerExtensionMap::findByBase(salesTable_W.TableId,
salesTable.RecId,
true));
salesTable_W_DS.rereadReferenceDataSources();
salesTable_DS.refresh();
}
lineViewTab.setFocus();
// Context is now editing. If FormOpenMode is ForNew, change it to ForEdit
if (TradeFormHelper::isOpenedForNew(element.args()))
{
element.args().parmEnum(enum2int(FormOpenMode::ForEdit));
}
}
}
else
{
// If form was opened for the intent of creating new record, and with the given caller, then close form
if (TradeFormHelper::isOpenedForNewFromForm(element.args()))
{
element.close();
}
else
{
element.editSales(salesTableForm.editHeaderAllowed(), salesTableForm.deleteHeaderAllowed());
}
}
}
if (!tmsSalesTable.isTmp()) // No need to query for TMSSalesTable if it is disabled
{
newTMSSalesTable = TMSSalesTable::find(salesTable.SalesId);
tmsSalesTable.data(newTMSSalesTable);
tmsSalesTable.reread();
}
element.refreshRetailDatasource();
if (mcrCallCenterEnabled)
{
newMCRSalesTable = MCRSalesTable::findSalesId(salesTable.SalesId);
if (newMCRSalesTable)
{
mcrSalesTable.data(newMCRSalesTable);
}
newMCRSalesTableShipping = MCRSalesTableShipping::findSalesId(salesTable.SalesId);
if (newMCRSalesTableShipping)
{
mcrSalesTableShipping.data(newMCRSalesTableShipping);
}
// If the create is being done from customer maintenance via customer service and
// allowOpenOrders is off, then set the boolean to true so that we will not run
// salesTable/LinkActive/Super which tries to save the salesTable record and prompts
// that there can not be open orders.
if (mcrCustomerServiceParm == MCRCustomerServiceParam::CreateNew
&& enableOrderCompletion)
{
enterOrderFromNewCust = true;
}
// For when new sales orders are created to set focus to the line.
if(! (MCROrderParameters::find().mcrSourceCodeRequired && mcrSalesTable.SourceId == '')
&& salesLine_ItemId.isDisplayed()) //Only setfocus if on the correct form view
{
salesLine_ItemId.setFocus();
}
}
skipLinkActive = false;
}