class ASAP_SalesOrder_Infolog
{
}
------------
public static void main(Args args)
{
SalesTable SalesTableInfo, SalesLocal , salesTable;
SalesLine salesLine;
SalesId salesId , currentSalesId;
ASAP_SalesStatus_Info ASAP_SalesStatus_Info, infoLocalTable,validateLocalInfo;
DataAreaId companyId,localCompanyId;
int i = 0;
if (args.dataset() == tableNum(SalesTable))
{
SalesLocal = args.record();
salesId = SalesLocal.SalesId;
select ASAP_SalesStatus_Info
where ASAP_SalesStatus_Info.SalesId == salesId ;
if(ASAP_SalesStatus_Info.SalesId !=salesId)
{
while select crossCompany SalesTableInfo
where SalesTableInfo.salesId == salesId
{
ASAP_SalesStatus_Info.clear();
ASAP_SalesStatus_Info.SalesId = SalesTableInfo.salesId;
ASAP_SalesStatus_Info.DataArea = strUpr(SalesTableInfo.dataAreaId);
ASAP_SalesStatus_Info.SalesStatus = SalesTableInfo.SalesStatus;
ASAP_SalesStatus_Info.IsInserted = NoYes::Yes;
ASAP_SalesStatus_Info.Approval = NoYes::No;
ASAP_SalesStatus_Info.IsGenerated = i + 1;
ASAP_SalesStatus_Info.insert();
i++;
}
}
while select crossCompany salesTable
where salesTable.salesId == salesId
{
while select forupdate ASAP_SalesStatus_Info
order by ASAP_SalesStatus_Info.DataArea
where ASAP_SalesStatus_Info.SalesId == salesTable.salesId
{
changeCompany(salesTable.dataAreaId)
{
if(ASAP_SalesStatus_Info.DataArea == salesTable.dataAreaId)
{
ttsBegin;
ASAP_SalesStatus_Info.SalesStatus = salesTable.SalesStatus;
ASAP_SalesStatus_Info.Update();
ttsCommit;
}
}
}
}
ttsBegin;
while select crossCompany SalesTable where SalesTable.salesId == salesId
{
select infoLocalTable
order by infoLocalTable.DataArea
where infoLocalTable.salesId == SalesTable.salesId;
{
changeCompany(SalesTable.dataAreaId)
{
companyId = strUpr(salesTable.dataAreaId);
localCompanyId = strUpr(infoLocalTable.DataArea);
select infoLocalTable where infoLocalTable.DataArea != companyId;
{
select validateLocalInfo where validateLocalInfo.SalesId == SalesTable.salesId//infoLocalTable.SalesId
&& validateLocalInfo.DataArea == SalesTable.dataAreaId;
if(!validateLocalInfo)
{
validateLocalInfo.clear();
validateLocalInfo.SalesId = SalesTable.salesId;
validateLocalInfo.SalesStatus = SalesTable.SalesStatus;
validateLocalInfo.IsInserted = NoYes::Yes;
validateLocalInfo.Approval = NoYes::No;
validateLocalInfo.DataArea = companyId;
validateLocalInfo.insert();
}
}
}
}
}
ttsCommit;
}
new MenuFunction(MenuItemDisplayStr(ASAP_SalesOrder_Status),MenuItemType::Display).run(Args);
}
No comments:
Post a Comment