zoukankan      html  css  js  c++  java
  • 过账采购发票

    大多数场景下,开票前一般都会跟供应商进行收货单的对账,准确无误后,根据协商的金额将所对账的采购订单开一个发票。
    在PurchFormLetter中增加一个方法用于根据对账单明细生成对应的Parm表记录(AX2009)。

    public void ERM_CreateParmByStatement(ERM_VendStatementTable _statementTable)
    {
        ERM_PurchTableInvoice           purchTableInvoice;
        ERM_PurchInvoice                purchInvoice;
        PurchLine                       purchLineLocal;
        ;
    
        ttsbegin;
    
        select firstonly purchTableInvoice
        where purchTableInvoice.StatementId == _statementTable.StatementId;
    
        select firstonly purchInvoice
        where purchInvoice.StatementId == _statementTable.StatementId;
    
        this.createParmUpdate();
    
        purchParmUpdate.SpecQty     = PurchUpdate::ReceiveNow;
        purchParmUpdate.SumBy       = AccountOrder::Order;
        purchParmUpdate.SumNum      = _statementTable.StatementId;
        purchParmUpdate.SumPurchId  = purchTableInvoice.PurchId;
        purchParmUpdate.update();
    
        while select purchTableInvoice
        where purchTableInvoice.StatementId == _statementTable.StatementId
        {
            //info(purchTableInvoice.PurchId);
            purchParmTable.clear();
            purchParmTable.ParmId       = purchParmUpdate.ParmId;
            purchParmTable.PurchId      = purchTableInvoice.PurchId;
            purchParmTable.initFromPurchTable(PurchTable::find(purchParmTable.PurchId));
            purchParmTable.Approved     = NoYes::Yes;
            purchParmTable.Num          = _statementTable.StatementId;
            purchParmTable.TransDate    = purchInvoice.InvoiceDate;
            purchParmTable.insert();
    
            while select purchLineLocal
            where purchLineLocal.PurchId == purchTableInvoice.PurchId
            {
                if(purchLineLocal.receivedInTotalServer())
                {
                    purchParmLine.clear();
                    purchParmLine.ParmId = purchParmTable.ParmId;
                    purchParmLine.TableRefId    = purchParmTable.TableRefId;
                    purchParmLine.initFromPurchLine(purchLineLocal);
                    purchParmLine.ReceiveNow = purchLineLocal.receivedInTotalServer();
                    purchParmLine.InventNow  = purchLineLocal.receivedInventInTotal();
                    purchParmLine.RemainAfter   = 0;
                    purchParmLine.RemainAfterInvent = 0;
                    purchParmLine.RemainBefore = purchParmLine.ReceiveNow;
                    purchParmLine.RemainBeforeInvent    = purchParmLine.InventNow;
                    purchParmLine.LineAmount = purchParmLine.calcLineAmountForced();
    
                    purchParmLine.insert();
    
                }
            }
        }
    
        this.initParameters();
    
        this.editLinesChanged(false);
        this.reArrangeNow(true);
    
        this.validateAll(false);
        this.reArrange(true);
        this.validateAll(true);
    
        ttscommit;
    
    
    }

    放在这里做备份。

  • 相关阅读:
    bzoj 1086 [SCOI2005]王室联邦——思路
    bzoj 3809 Gty的二逼妹子序列——莫队+分块
    bzoj 3781 小B的询问——分块
    bzoj 3309 DZY Loves Math——反演+线性筛
    洛谷 1079 Vigenère 密码——模拟水题
    洛谷 1082 同余方程——exgcd(水题)
    bzoj2662 [BeiJing wc2012]冻结 ——分层图
    bzoj2242 [SDOI2011]计算器——BSGS
    bzoj1008 [HNOI2008]越狱——快速幂
    bzoj1607 [Usaco2008 Dec]Patting Heads 轻拍牛头——暴力
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/6995116.html
Copyright © 2011-2022 走看看