DefaultDimension

private void createLineByQty(DimensionValue _dimensionValue)
    {
        ProdTableJour						m_ProdTableJour;
        ProdTable                           m_prodTable;
        DimensionAttribute					m_DimAttr;
        DimensionAttributeValue				m_DimAttrValue;
        DimensionAttributeValueSet			m_DimAttrValueSet;
        DimensionAttributeValueSetItem		m_DimAttrValueSetItem;
        FOA_ProdAllocateSum                 m_prodAllocateSum;
        FOA_ProdAllocateLine                m_prodAllocateLine;
        ;
       
        while select m_ProdTableJour
            where m_ProdTableJour.JournalType == ProdJourType::Receipt &&
            m_ProdTableJour.TransDate            >= g_prodAllocateTable.FromDate &&
            m_ProdTableJour.TransDate            <= g_prodAllocateTable.ToDate
        join m_prodTable
            where m_prodTable.ProdId    == m_ProdTableJour.ProdId          &&
            m_prodTable.ProdStatus      == ProdStatus::ReportedFinished
        exists join m_DimAttrValueSetItem
            where m_DimAttrValueSetItem.DimensionAttributeValueSet == m_prodTable.DefaultDimension
        exists join m_DimAttrValue
            where m_DimAttrValue.RecId == m_DimAttrValueSetItem.DimensionAttributeValue
			&& m_DimAttrValue.DisplayValue == _dimensionValue
        exists join m_DimAttr
            where m_DimAttr.RecId == m_DimAttrValue.DimensionAttribute
                && m_DimAttr.RecId == g_dimAttr.RecId
        {
            progress.setText(strFmt("@SYS53184", _dimensionValue, m_ProdTableJour.ProdId));
            progress.update();

            if (!m_prodAllocateSum)
            {
                m_prodAllocateSum.ProdAllocateTable = g_prodAllocateTable.RecId;
                m_prodAllocateSum.DimensionValue    = _dimensionValue;
                m_prodAllocateSum.AllocateMethod    = FOA_AllocateMethod::RouteQty;
                m_prodAllocateSum.insert();
            }

            select firstOnly forUpdate m_prodAllocateLine
                where m_prodAllocateLine.ProdId         == m_ProdTableJour.ProdId      &&
                m_prodAllocateLine.ProdAllocateTable    == g_prodAllocateTable.RecId    &&
                m_prodAllocateLine.ProdAllocateSum      == m_prodAllocateSum.RecId      &&
                m_prodAllocateLine.DimensionValue       == _dimensionValue;

            if (!m_prodAllocateLine)
            {
                m_prodAllocateLine.ProdAllocateTable    = g_prodAllocateTable.RecId;
                m_prodAllocateLine.ProdAllocateSum      = m_prodAllocateSum.RecId;
                m_prodAllocateLine.ProdId               = m_ProdTableJour.ProdId;
                m_prodAllocateLine.DimensionValue       = _dimensionValue;
                m_prodAllocateLine.insert();
            }
            m_prodAllocateLine.ProdQty  += m_ProdTableJour.QtyGood + m_ProdTableJour.QtyError;
            m_prodAllocateLine.update();
        }

        if (m_prodAllocateSum)
        {
            select sum(ProdQty)
				from m_prodAllocateLine
				where m_prodAllocateLine.ProdAllocateSum == m_prodAllocateSum.RecId;

					m_prodAllocateSum.ProdQty   += m_prodAllocateLine.ProdQty;
					m_prodAllocateSum.update();
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值