文档章节

BOM

fandyx
 fandyx
发布于 2015/01/20 20:05
字数 234
阅读 36
收藏 0
// Copyright (C), 2015, CEU Co., Ltd.
// USR Changed by 2015-01-20T17:57:50 Fandy Xie 谢宇帆
// Version       : 1.0
// Description   : 展开BOM明细
// Return        :
// BOM Explode using Recursive function.
// This job explode all the sub components of an item.
static void bomExplodeRecursive(Args _args)
{
    qty             netConsum       = 10.00;
    inventSiteId    inventSiteId    = companyInfo::find().fallBackSiteId();
    ItemId          itemId          = "1107";
    int             linNum;

void explodeBOM(
    Itemid  parmItemId      ,
    BOMQty  parmNetConsum   ,
    int     parmLevel = 1)
{
    BOMversion      bomVersion;
    inventDim       inventDim;
    BOM             bomLocal;
    
    int             tmpLevel    = 1;
    inventTable     inventTable;
    ;

    if (!parmItemId)
        return;
        
    netConsum  = parmNetConsum;
    /*
    select firstonly bomVersion
        where bomVersion.ItemId         == parmItemId               &&
              bomVersion.Active
    join inventDim
        where inventDim.inventDimId     == bomVersion.InventDimId   &&
             ((inventDim.InventSiteId   == inventSiteId             ||
              !inventSiteId)                                        ||
              !inventDim.InventSiteId);
    */
    /*
    inventDim.InventSizeId = _inventSiteId;
    bomVersion =  bomVersion::findActive(parmItemId, systemdateget(), 1, inventDim::findOrCreate(inventDim));
    */

    while select bomversion index hint BomIdx
        where bomversion.ItemId    == parmItemId      &&
              bomversion.Active    == Noyes::Yes
    join bomLocal index hint NumIdx
        where bomLocal.BOMId == bomversion.BOMId
    {
        inventTable         = inventTable::find(bomLocal.ItemId);
        if(bomLocal.BOMQtySerie)
            parmNetConsum   = netConsum * (bomLocal.BOMQty / bomLocal.BOMQtySerie);
        else if(bomLocal.BOMQty)
            parmNetConsum   = netConsum * bomLocal.BOMQty;
        else
            parmNetConsum   = netConsum;
        linNum++;
        if(inventTable.ItemType == ItemType::BOM)
        {
            tmpLevel = parmLevel + 1;

            warning(strfmt("序号[%1],层次[%2],类型[%3],物料编号[%4],用量[%5].",
                    linNum, parmLevel, inventTable.ItemType, inventTable.ItemId, parmNetConsum));
            explodeBOM(bomLocal.ItemId, parmNetConsum, tmpLevel);
        }
        else
            info(   strfmt("序号[%1],层次[%2],类型[%3],物料编号[%4],用量[%5].",
                    linNum, parmLevel, inventTable.ItemType, inventTable.ItemId, parmNetConsum));
    }
}
;
    setprefix(strfmt("产品编号[%1], 数量[%2].",itemId, netConsum));
    explodeBOM(itemId, netConsum);
}


© 著作权归作者所有

共有 人打赏支持
上一篇: TaxValue
下一篇: infolog
fandyx
粉丝 0
博文 39
码字总数 11111
作品 0
东莞
技术主管
私信 提问
文件带 BOM 的看法

释义 BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order)。 UTF-8需不需要用BOM? UTF-8 不需要 BOM,(尽管 Unicode 标准允许在 UTF-8 中使用 BOM)。 在 ...

低至一折起
2017/12/14
0
0
解释BOM头及去掉BOM头方法

什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记...

陶邦仁
2012/09/21
0
0
UTF-8编码中BOM的检测与删除

所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释...

workingTiams
2012/11/28
0
1
JS子页面访问父页面元素/变量/函数

四个属性变量 window.self window.parent window.top window.frames 在页面中嵌入一个 iframe 页面后 子页面中并不能直接访问父页面中的变量、函数或者文档元素 1、使用 iframe 嵌入一个子页...

big_cat
2016/03/02
205
0
UTF-8编码中BOM的检测与删除

所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释...

大数据之路
2012/10/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

全屋WiFi彻底无死角 这才是终极解决方案

无线网络现在不仅在家庭中不可或缺,在酒店、医院、学校等场景中的需求也越来越多。尤其是这些场景中,房间多但也需要每个房间都能够完美覆盖WiFi,传统的吸顶式AP就无法很好的解决问题。 H3...

linux-tao
24分钟前
0
0
Python日期字符串比较

需要用python的脚本来快速检测一个文件内的二个时间日期字符串的大小,其实实现很简单,首先一些基础的日期格式化知识如下 复制代码 %a星期的简写。如 星期三为Web %A星期的全写。如 星期三为...

dragon_tech
25分钟前
0
0
ORA 各种oraclesql错误

ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某...

青峰Jun19er
28分钟前
2
0
没错,老板让我写个 BUG!

前言 标题没有看错,真的是让我写个 bug! 刚接到这个需求时我内心没有丝毫波澜,甚至还有点激动。这可是我特长啊;终于可以光明正大的写 bug 了🙄。 先来看看具体是要干啥吧,其实主要就是...

crossoverJie
42分钟前
54
0
开源软件会被云杀死吗 ?

本文转载云头条,原作者:Michael Stiefel是Reliable Software公司的负责人,是一名软件架构和开发顾问。 文章要点 虽然开源开发不会消失,但商业开源厂商的未来不是很有希望。随着全面管理的...

linuxCool
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部