AX 2009 库存转移日记账

转移日记账

一些生产业务需要产生相应的转移日记账,这里写一个转移日记账的创建方法

 

void  clicked()
{
   MapIterator             m_mapItor;
   ModelApplyTable         ModelApplyList,m_Model;
   InventJournalTable      m_InvJourT;
   InventJournalTrans      m_InvJourTrans;
   InventJournalName       m_InvJourName;
   InventLocationId        m_LocatId;
   ProdTable               m_Prod;
   List                    list 
=   new  List(Types::Record);
   ListIterator            listItor;
   JournalTableData        JournalTableData;
   InventDim               dim;
   ;

   //日记账名称表
   m_InvJourName 
=  InventJournalName::find( " C_MOD_01 " );
   //日记账头
   m_InvJourT.clear();
   m_InvJourT.JournalNameId 
=  m_InvJourName.JournalNameId;
   m_InvJourT.initFromInventJournalName(InventJournalName::find(InventParameters::find().TransferJournalNameId));
   JournalTableData      
=  JournalTableData::newTable(m_InvJourT);
   m_InvJourT.JournalId  
=  JournalTableData.nextJournalId();  //产生日记账号
   m_InvJourT.SystemBlocked = ture; //日记账闭塞锁
   m_InvJourT.Posted = true; //过账
   m_mapItor 
=  FormMarkupClass.getMapIterator();

    
while  (m_mapItor.more())
    {
        update_recordset ModelApplyList
         setting
            ModelClass 
=  ModelClass::Send,
            ModelState 
=  ModelState::Send
         
where  ModelApplyList.RecId == m_mapItor.key();

        m_Model  =  m_mapItor.value();

        
if (m_LocatId  ==   "" )
        {
            m_LocatId 
=  m_Model.InventLocationId;
        }

        list.addStart(m_Model);

        m_mapItor.next();
    }

    m_InvJourT.iws_locationid 
=  m_LocatId;

    m_InvJourT.insert();

    listItor 
=   new  ListIterator(list);

    info(m_InvJourT.VoucherSeqId);

    ttsbegin;

    
while (listItor.more())
    {
        m_Model 
=  listItor.value();
        //日记账行
        m_InvJourTrans.clear();
        m_InvJourTrans.initValue();
        m_InvJourTrans.initFromInventJournalTable(m_InvJourT);
        m_InvJourTrans.ItemId  =  m_Model.ProdItemId;
        m_InvJourTrans.initFromInventTable(InventTable::find(m_Model.ProdItemId));
        //源InventDim
        m_Prod 
=  ProdTable::find(m_Model.ProdId);
        dim 
=  m_Prod.inventDim();
        m_InvJourTrans.InventDimId 
=  dim.inventDimId;
        //到InventDim
        dim 
=  m_InvJourTrans.inventDim();
        dim.wMSLocationId 
=  m_Model.wMSLocationIdTwo;
        dim 
=  InventDim::findOrCreate(dim);
        m_InvJourTrans.ToInventDimId 
=  dim.inventDimId;

        m_InvJourTrans.Qty 
=   1 ;

        
if  (InventJOurnalName::find(m_InvJourT.JournalNameId).ZeroCostFlag  &&  m_InvJourTrans.CostAmount)
        {
            m_InvJourTrans.CostPrice 
=   0 ;
            m_InvJourTrans.CostAmount 
=   0 ;
        }

        m_InvJourTrans.insert();

        listItor.next();
    }

    ttscommit;

    Model_DS.executeQuery();
}

 

转载于:https://www.cnblogs.com/Kurodo/archive/2011/08/23/2150459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值