public void CreateUpdateMiscCharge(MarkupCode _markupCode ,MarkUpValue _freightCharge, boolean _createOK=true)
{
MarkUpTrans markUpTrans, localMarkUpTrans;
MarkUpValue freight;
PurchTable purchTable;
;
if(_markupCode == "" || _freightCharge ==0)
{
return;
}
purchTable = PurchTable::find(SNY_HachuTable.Z_PurchId);
freight = decRound(_freightCharge, 2);
ttsbegin;
select firstonly forupdate markUpTrans
where markUpTrans.TransTableId == purchTable.TableId &&
markUpTrans.TransRecId == purchTable.RecId &&
markUpTrans.MarkupCode == _markupCode;
if (markUpTrans)
{
markUpTrans.Txt = MarkUpTable::find(markUpTrans.ModuleType,_markupCode).Txt;
markUpTrans.Value = freight;
markUpTrans.Keep = NoYes::Yes;
markUpTrans.MarkupCategory = MarkupCategory::Fixed;
markUpTrans.update();
}
else if (_createOK)
{
//check if SomeCode1 is there and bump up the line number if so, so it creates a new record
select firstonly localMarkUpTrans
where localMarkUpTrans.TransTableId == purchTable.TableId &&
localMarkUpTrans.TransRecId == purchTable.RecId &&
localMarkUpTrans.MarkupCode == _markupCode;
if(localMarkUpTrans)
{
markUpTrans.LineNum = localMarkUpTrans.LineNum + 1;
}
markUpTrans.initFromPurchTable(purchTable);
markUpTrans.MarkupCode = _markupCode;
markUpTrans.Txt = MarkUpTable::find(markUpTrans.ModuleType,_markupCode).Txt;
markUpTrans.Value = freight;
markUpTrans.Keep = NoYes::Yes;
markUpTrans.MarkupCategory = MarkupCategory::Fixed;
markUpTrans.insert();
}
ttscommit;
}