{
InventTable inventTableLoc;
God_AlternativeItems _God_AlternativeItems;
Amount4decimal amount,amount1,factorconv;
CustParameters _custparamenter;
SalesTable SalesTableLoc;
CustGroup CustGroup;
CustTable CustTable;
real margin, totalamount;
InventTrans inventtrans;
InventSum inventsum;
int i=0;
boolean flag =true;
InventTransOrigin InventTransOrigin;
// Sample Sales Order Calculation
select SalesTableLoc
where SalesTableLoc.SalesId == this.SalesId
&& SalesTableLoc.God_SampleType == "SAMPLE ORDER";
{
if(SalesTableLoc)
{
// select god_marginsamplerate
// from _custparameters;
if(!amount)
amount = this.GOD_averageCostPriceUnitWMSChangeQty(this.ItemID);
if(!amount)
{
amount = InventTableModule::find(this.ItemId,ModuleInventPurchSales::Invent).Price;
amount = UnitOfMeasureConverter::convert(amount,
UnitOfMeasure::unitOfMeasureIdBySymbol(this.SalesUnit),
UnitOfMeasure::unitOfMeasureIdBySymbol(InventTableModule::find(this.ItemId,ModuleInventPurchSales::Invent).UnitId),NoYes::Yes,
InventTable::itemProduct(this.ItemId),NoYes::No,NoYes::No);
}
margin = amount * CustParameters::find().god_marginsamplerate/100;
totalamount = amount + margin;
this.salesprice = round(totalamount,0.01);
this.lineamount = this.calclineamount();
}
}
// Subsidiary Sales CAlculation
select SalesTableLoc
where SalesTableLoc.SalesId == this.SalesId
&& SalesTableLoc.God_subsidiarySales == NoYes::Yes;
{
if(SalesTableLoc)
{
while select inventtrans order by inventtrans.DateFinancial desc
where inventtrans.ItemId == this.ItemId
&& inventtrans.StatusReceipt == StatusReceipt::Purchased
join InventTransOrigin
where InventTransOrigin.RecId == inventtrans.InventTransOrigin
&& InventTransOrigin.ReferenceCategory == InventTransType::Purch
{
if(inventtrans)
{
i++;
if(i == 1)
{
amount= round(inventTrans.CostValue() / inventtrans.Qty,0.01);
amount = UnitOfMeasureConverter::convert(amount,
UnitOfMeasure::unitOfMeasureIdBySymbol(this.SalesUnit),
UnitOfMeasure::unitOfMeasureIdBySymbol(InventTableModule::find(this.ItemId,ModuleInventPurchSales::Invent).UnitId),NoYes::Yes,
InventTable::itemProduct(this.ItemId),NoYes::No);
break;
}
}
}
if(!amount)
amount = this.GOD_averageCostPriceUnitWMSChangeQty(this.ItemID); //amount = round(inventsum::find(salesline.ItemId,SalesLine.InventDimId).averageCostPrice(),0.01);
if(!amount)
{
amount = InventTableModule::find(this.ItemId,ModuleInventPurchSales::Invent).Price;
amount = UnitOfMeasureConverter::convert(amount,
UnitOfMeasure::unitOfMeasureIdBySymbol(this.SalesUnit),
UnitOfMeasure::unitOfMeasureIdBySymbol(InventTableModule::find(this.ItemId,ModuleInventPurchSales::Invent).UnitId),NoYes::Yes,
InventTable::itemProduct(this.ItemId),NoYes::No);
}
margin = amount * CustGroup::find(this.CustGroup).GOD_MarkupPercentage/100;
totalamount = amount + margin;
this.salesprice = round(totalamount,0.01);
// salesquotationline.lineamount = salesquotationline.calclineamount();
this.lineamount = this.calclineamount();
}
}
// End Code
}
No comments:
Post a Comment