AX 2012 purch Charge费用作成

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;


}

posted @ 2016-12-01 17:28  Fog-Fog  阅读(203)  评论(0编辑  收藏  举报