• AX 2012 CopySO_CreditNote


    static void JobCopySO()
    {
        SalesTable  salesTable = SalesTable::find('SO1-900104');
        SalesLine   salesLine;
        SalesTable  salesTableNew;
        SalesOrderCopyingContract contract = SalesOrderCopyingContract::newIsCreditNote(false);
       
        SalesCopying            salesCopying;
        TmpFrmVirtual           tmpFrmVirtualLines;
        TmpFrmVirtual           tmpFrmVirtualHeader;
       
        void writeTmpFrmVirtual(TmpFrmVirtual _tmpFrmVirtual, TableId _tableId, RecId _recId, Num _id, LineNum _lineNum = 0, TransDate _transDate = systemDateGet(), Qty _qty = 0)
        {
            _tmpFrmVirtual.clear();
            _tmpFrmVirtual.TableNum     = _tableId;
            _tmpFrmVirtual.RecordNo     = _recId;
            _tmpFrmVirtual.Id           = _id;
            _tmpFrmVirtual.LineNum      = _lineNum;
            _tmpFrmVirtual.TransDate    = _transDate;
            _tmpFrmVirtual.Qty          = _qty;

            _tmpFrmVirtual.write();
        }
       
        // Create your new sales header
        salesTableNew.SalesId = NumberSeq::newGetNum(SalesParameters::numRefSalesId()).num();
        salesTableNew.initValue();
        salesTableNew.CustAccount = salesTable.CustAccount;
        salesTableNew.initFromCustTable();
        salesTableNew.insert();
       
        // Build header virtual
        writeTmpFrmVirtual(tmpFrmVirtualHeader, salesTable.TableId, salesTable.RecId, salesTable.SalesId);
       
        while select salesLine
            where salesLine.SalesId == salesTable.SalesId
        {
            writeTmpFrmVirtual(tmpFrmVirtualLines, salesLine.TableId, salesLine.RecId, salesLine.SalesId, salesLine.LineNum, systemDateGet(), salesLine.SalesQty);
        }
       
        contract.parmSalesPurchCopy(SalesPurchCopy::CopyAllHeader);
        contract.parmCallingTableSalesId(salesTableNew.SalesId);
        contract.parmTmpFrmVirtualLines(tmpFrmVirtualLines);
        contract.parmTmpFrmVirtualHeader(tmpFrmVirtualHeader);
        contract.parmQtyFactor(1);
        contract.parmRecalculateAmount(NoYes::No);
        contract.parmReverseSign(NoYes::No);
        contract.parmCopyMarkup(NoYes::No);
        contract.parmCopyPrecisely(NoYes::No);
        contract.parmDeleteLines(NoYes::Yes);   
       
        SalesCopying::copyServer(contract.pack(), false);
          
        info(strFmt("Created %1", salesTableNew.SalesId));
    }

  • 相关阅读:
    Codeforces Round #249 (Div. 2) D. Special Grid 枚举
    图论二
    C语言中的atan和atan2(转)
    BestCoder Round #79 (div.2)
    数学
    LCA
    二分图
    动态规划
    线段树
    树状数组
  • 原文地址:https://www.cnblogs.com/fogfog/p/6135141.html
Copyright © 2020-2023  润新知