扫描二维码

订阅kaiyun体育官方人口 微信

[原创]用代码过账生产入库日记账

作者:野鹰
2007/9/20 23:50:01

对于生产类的日记账如prod pick ,prod route, report as finish等日记账其实跟库存类的日记账的操作是一样的。都是利用功能类来实现的。

对于生产日记账其功能类就是:ProdJournalCheckPost

对于要用代码过账日记账的需求一般也是用代码产生日记账的数据。对日记账的数据可以对每个字段进行赋值的。但是如果是单对每个字段进行赋值的话容易出错,更何况系统本身提供了日记账产生数据赋值的功能类。如Report as finish日记账的产生功能类就是:

ProdJournalTable(表头),ProdJournalProd(表身)。

//sample wo: WF0626-0199-17

//only warehouse:P-SGS1,inventDimId = 50

//function : auto posting report as finish journal for production order

static void YXQ_PostProdFinishJournal(Args _args)

{

ProdJournalTableprodJournalTable;

ProdJournalProdprodJournalProd;

ProdJournalTableDatajournalTableData;

ProdJournalTransDataProdJournalTransProd;

ProdJournalCheckPostjournaltCheckPost;

;

try

{

ttsBegin;

//set journal table infomation

journalTableData = new ProdJournalTableData(ProdJournalTable);

journalTableData.initBuffer("FPD","WF0626-0199-17",ProdJournalType::ReportFinished);

journalTableData.initJournalId();

//set journal trans prod infomation

JournalTransProd = new ProdJournalTransDataProd(prodJournalProd,journalTableData);

JournalTransProd.initFromJournalTable();

prodJournalProd.initValue();

prodJournalProd.initFromProdJournalTable(prodJournalTable);

prodJournalProd.InventDimId = "50";

prodJournalProd.QtyGood = 2.2;

prodJournalProd.LineNum = 1;

prodJournalProd.insert();

journalTableData.initTotal();

ProdJournalTable.insert();

journalTableData.updateBlock(JournalBlockLevel::None,JournalBlockLevel::System,false);

journaltCheckPost = ProdJournalCheckPostProd::newJournalCheckPost(false,true,JournalCheckPostType::Post,tableNum(ProdJournalTable),prodJournalTable.JournalId);

journaltCheckPost.run();

journalTableData.updateBlock(JournalBlockLevel::System,JournalBlockLevel::None,false);

ttsCommit;

}

catch (exception::Error)

{

}

}

责编:姜玲
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
专业博客
畅享
首页
返回
顶部
×
畅享IT
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918
Baidu
map