文档章节

BOM

fandyx
 fandyx
发布于 2015/01/20 20:05
字数 234
阅读 34
收藏 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);
}


© 著作权归作者所有

共有 人打赏支持
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
JS子页面访问父页面元素/变量/函数

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

big_cat
2016/03/02
205
0
BOM 创建用户定义函数,每个子节点de父节点的信息

--生成测试数据 createtable BOM(ID int,parentID int,sClassName varchar(10)) insertinto BOM values(1,0,'1111' ) insertinto BOM values(2,1,'1111_1' ) insertinto BOM values(3,2,'111......

橘子红了呐
2017/11/19
0
0
PHP+Smarty模板中CSS问题:Firefox下正常显示,而在IE下,显示得很混乱

第一个原因是:bom的问题(在页面上输出空信息) [转] 先制作好了页面的模板(用UTF-8编码),当载入Smarty运行的时候,发现在Firefox下正常显示,而在IE下,显示得很混乱!难道 是smarty和C...

mac_zhao
2012/03/08
0
0
UTF-8编码中BOM的检测与删除

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

workingTiams
2012/11/28
0
1

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
1
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
2
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
1
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
1
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部