public PackingSlipId postSalesPackingSlip(SalesId _sumSalesId,DMFDefinationGroupName _definitionGroupName = "",DMFExecutionId _executionId = "",InvoiceDate _ppInvoiceDate = systemDateGet())
{
SalesFormLetter salesFormLetter;
SalesParmUpdate salesParmUpdate;
SetEnumerator set;
CustPackingSlipJour custPackingSlipJour;
SysQueryRun chooseLines;
;
ttsbegin;
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PackingSlip);
salesFormLetter.getLast();
salesFormLetter.resetParmListCommonCS();
salesFormLetter.transDate(_ppInvoiceDate);
salesFormLetter.proforma(false);
// Let's create the ParmId
salesFormLetter.createParmUpdateFromParmUpdateRecord(SalesFormletterParmData::initSalesParmUpdateFormletter(DocumentStatus::PackingSlip, salesFormLetter.pack()));
salesParmUpdate = salesFormLetter.salesParmUpdate();
salesParmUpdate.SpecQty = SalesUpdate::DeliverNow;
salesParmUpdate.Proforma = NoYes::No;
if(salesParmUpdate.SumBy == AccountOrder::Order)
{
salesParmUpdate.SumSalesId = _sumSalesId;
}
salesParmUpdate.update();
salesFormLetter.salesParmUpdate(salesParmUpdate);
chooseLines = this.calcQuery(_sumSalesId,_definitionGroupName,_executionId); // Custom Query
salesFormLetter.chooseLinesQuery(chooseLines);
salesFormLetter.reArrangeNow(true);
salesFormLetter.validateAll(false);
salesFormLetter.chooseLines();
salesFormLetter.run();
ttscommit;
set = Set::create(SysOperationHelper::base64Decode(salesFormLetter.getOutputContract().parmAllJournals())).getEnumerator();
while (set.moveNext())
{
custPackingSlipJour = set.current();
break;
}
return custPackingSlipJour.PackingSlipId;
}
// This is used in above method
public SysQueryRun calcQuery(SalesId _sumSalesId,DMFDefinationGroupName _definitionGroupName = "",DMFExecutionId _executionId = "")
{
Query qry = new Query(queryStr(SalesUpdate));
QueryBuildRange queryBuildRange;
QueryBuildDataSource queryBuildDataSourceImportDs;
QueryBuildDataSource queryBuildDataSource = qry.dataSourceTable(tableNum(SalesTable));
queryBuildDataSourceImportDs = queryBuildDataSource.addDataSource(tableNum(CustSalesInvoiceTableOCPMANU));
queryBuildRange = queryBuildDataSourceImportDs.addRange(fieldNum(CustSalesInvoiceTableOCPMANU,ExecutionId));
queryBuildRange.value(queryValue(_executionId)); // The current execution id is locked queryBuildRange.status(RangeStatus::Locked);
queryBuildRange = queryBuildDataSourceImportDs.addRange(fieldNum(CustSalesInvoiceTableOCPMANU,DefinitionGroup));
queryBuildRange.value(queryValue(_definitionGroupName)); // The current DefinitionGroup is locked
queryBuildRange.status(RangeStatus::Locked);
queryBuildDataSourceImportDs.relations(false);
queryBuildDataSourceImportDs.joinMode(JoinMode::ExistsJoin);
queryBuildDataSourceImportDs.addLink(fieldNum(SalesTable,SalesId),fieldNum(CustSalesInvoiceTableOCPMANU,SalesId));
return new SysQueryRun(qry);
}
{
SalesFormLetter salesFormLetter;
SalesParmUpdate salesParmUpdate;
SetEnumerator set;
CustPackingSlipJour custPackingSlipJour;
SysQueryRun chooseLines;
;
ttsbegin;
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PackingSlip);
salesFormLetter.getLast();
salesFormLetter.resetParmListCommonCS();
salesFormLetter.transDate(_ppInvoiceDate);
salesFormLetter.proforma(false);
// Let's create the ParmId
salesFormLetter.createParmUpdateFromParmUpdateRecord(SalesFormletterParmData::initSalesParmUpdateFormletter(DocumentStatus::PackingSlip, salesFormLetter.pack()));
salesParmUpdate = salesFormLetter.salesParmUpdate();
salesParmUpdate.SpecQty = SalesUpdate::DeliverNow;
salesParmUpdate.Proforma = NoYes::No;
if(salesParmUpdate.SumBy == AccountOrder::Order)
{
salesParmUpdate.SumSalesId = _sumSalesId;
}
salesParmUpdate.update();
salesFormLetter.salesParmUpdate(salesParmUpdate);
chooseLines = this.calcQuery(_sumSalesId,_definitionGroupName,_executionId); // Custom Query
salesFormLetter.chooseLinesQuery(chooseLines);
salesFormLetter.reArrangeNow(true);
salesFormLetter.validateAll(false);
salesFormLetter.chooseLines();
salesFormLetter.run();
ttscommit;
set = Set::create(SysOperationHelper::base64Decode(salesFormLetter.getOutputContract().parmAllJournals())).getEnumerator();
while (set.moveNext())
{
custPackingSlipJour = set.current();
break;
}
return custPackingSlipJour.PackingSlipId;
}
// This is used in above method
public SysQueryRun calcQuery(SalesId _sumSalesId,DMFDefinationGroupName _definitionGroupName = "",DMFExecutionId _executionId = "")
{
Query qry = new Query(queryStr(SalesUpdate));
QueryBuildRange queryBuildRange;
QueryBuildDataSource queryBuildDataSourceImportDs;
QueryBuildDataSource queryBuildDataSource = qry.dataSourceTable(tableNum(SalesTable));
queryBuildDataSourceImportDs = queryBuildDataSource.addDataSource(tableNum(CustSalesInvoiceTableOCPMANU));
queryBuildRange = queryBuildDataSourceImportDs.addRange(fieldNum(CustSalesInvoiceTableOCPMANU,ExecutionId));
queryBuildRange.value(queryValue(_executionId)); // The current execution id is locked queryBuildRange.status(RangeStatus::Locked);
queryBuildRange = queryBuildDataSourceImportDs.addRange(fieldNum(CustSalesInvoiceTableOCPMANU,DefinitionGroup));
queryBuildRange.value(queryValue(_definitionGroupName)); // The current DefinitionGroup is locked
queryBuildRange.status(RangeStatus::Locked);
queryBuildDataSourceImportDs.relations(false);
queryBuildDataSourceImportDs.joinMode(JoinMode::ExistsJoin);
queryBuildDataSourceImportDs.addLink(fieldNum(SalesTable,SalesId),fieldNum(CustSalesInvoiceTableOCPMANU,SalesId));
return new SysQueryRun(qry);
}
Comments
Post a Comment