谈谈企业信息化 一种比较简单、灵活的产品物料多单位实现方案
企业随着生产经营的延续,其产品、产品SKU也会越来越多,当然同个产品的计量单位也可能越来越多。比如企业规模小,采购可能是按KG采购(价格可能比较贵),当企业采购量大时,采购可能就按吨来采购啦(比如白糖、粒子等)。因此企业信息化软件在解决企业产、供、销核心业务时,必须考虑到产品多单位问题。
企业通常在采购、销售环节可能部分产品可能会涉及多单位问题。特殊行业,比如快消品行业,在报损、集卡或奖盖兑现等环节部分产品也可能会涉及多单位问题。多单位通常处理流程如下:
- 维护产品多个单位,指定产品默认单位;
- 按产品实际单位采购、销售;
- 单位换算,比如:统一换算成默认单位进行出入库、盘点等仓储操作;
本文将探讨一种比较简单的多单位系统实现方案。
1、数据表设计
1)产品表,base_goods
CREATE TABLE `base_goods` (`sid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`goods_id` varchar(32) NOT NULL,`goods_no` varchar(20) NOT NULL COMMENT '商品编码',`goods_name` varchar(100) NOT NULL COMMENT '商品名称',`spec` varchar(64) DEFAULT NULL COMMENT '规格',`unit_id` varchar(32) DEFAULT NULL COMMENT '计量单位',`unit_scale` decimal(20,4) DEFAULT NULL COMMENT '规格系数',`unit_weight` decimal(20,6) DEFAULT NULL,`barcode` varchar(32) DEFAULT NULL COMMENT '箱条码',...PRIMARY KEY (`sid`),UNIQUE KEY `NewIndex2` (`goods_id`,`goods_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表'
2)单位表 base_goods_unit
CREATE TABLE `base_goods_unit` (`sid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`unit_id` varchar(32) DEFAULT NULL,`unit_name` varchar(32) DEFAULT NULL COMMENT '计量单位',...PRIMARY KEY (`sid`),UNIQUE KEY `NewIndex1` (`unit_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='单位表'
3)产品多单位,sku表 base_goods_sku
CREATE TABLE `base_goods_sku` (`sid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`goods_id` varchar(32) NOT NULL COMMENT '产品ID',`unit_id` varchar(32) NOT NULL COMMENT '单位',`spec` varchar(64) DEFAULT NULL,`unit_scale` decimal(20,4) DEFAULT NULL COMMENT '规格系数',`unit_weight` decimal(20,6) DEFAULT NULL,`barcode` varchar(32) DEFAULT NULL COMMENT '箱条码',`is_default` char(1) DEFAULT 'N',...PRIMARY KEY (`sid`),UNIQUE KEY `idx_base_goods_unit` (`goods_id`,`unit_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品多单位、sku表'
2、3张表 数据关系
1)先维护表base_goods_unit,基本单位
- 维护两个基本单位:unit_id = 1, unit_name = 箱;unit_id = 2, unit_name = 瓶
2)产品查询、维护:base_goods
新增一个产品,产品单位下拉选择数据源为base_goods_unit基本单位表;
goods_id | goods_no | goods_name | unit_id | spec | unit_scale | unit_weight | bar_code |
---|---|---|---|---|---|---|---|
1 | 1001 | 596ml纯净水 | 1(箱) | 4*6 | 40 | 0.0001 | 012039988455 |
新增产品时,同时会往base_goods_sku插入一条记录,内容如下:
goods_id | unit_id | spec | unit_scale | unit_weight | bar_code | is_default |
---|---|---|---|---|---|---|
1 | 1(箱) | 4*6 | 24 | 0.0024 | 012039988455 | Y |
3)给产品再添加一个单位:瓶
goods_id | unit_id | spec | unit_scale | unit_weight | bar_code | is_default |
---|---|---|---|---|---|---|
1 | 1(箱) | 4*6 | 24 | 0.0001 | 012039988455 | Y |
1 | 2(瓶) | 1*1 | 1 | 0.0001 | 012039988456 | N |
说明:
- 产品规格系数,unit_scale=24,表示 1箱 = 24最小单位,最小单位可以不维护;
- 案例维护了最小单位:瓶,因为其unit_scale = 1,则596ml水 1箱=24瓶;
- 假设596ml水,再维护一个单位:提,规格系数=12,则1箱=2提=24瓶
3、多单位如何使用
1)采购、销售
根据base_goods, base_goods_sku表,可以列出产品单位组合表,如下表:
goods_id | unit_id | spec | unit_scale | unit_weight | bar_code | is_default |
---|---|---|---|---|---|---|
1 | 1(箱) | 4*6 | 24 | 0.0001 | 012039988455 | Y |
1 | 2(瓶) | 1*1 | 1 | 0.0001 | 012039988456 | N |
只要对列表行项目进行采购、销售即可,菜单行项目、销售订单行项目必须包含goods_id,unit_id信息。
2)仓储操作
为了便于盘点、财务记账,仓库通常按物料默认单位进行出入库,如本例的596ml水,你默认单位为箱,假设销售了960瓶,则出库时(假设原库存为100箱):
库存减少 960/24 = 40 箱,当前库存 = 100 - 40 = 60箱。
3)经销商报损、奖盖兑现
奖盖兑现
类似“再来一瓶”,“加1元再来一瓶”促销活动,顾客向门店兑奖后,门店会向经销商兑奖,经销商则会把奖盖、集卡等交给企业业务员,并录入系统,类似xx产品,申请奖盖兑现xx只。企业销售内勤核实情况后,会根据维护的兑奖规则,根据产品多单位规格系数,折算出兑现数量(默认单位),通过:
- 订单 配送的方式,发放给经销商;
- 折算成金额,进入客户奖盖台账或其它台账(客户可以用台账进行自行下单)
产品报损
操作方式同”奖盖兑现“,经销商对有暇疵的产品(包装不好,沉淀等)提交报损申请,经业务员核实后,企业销售内勤根据报损产品数量单位计算最终报损数量或金额:
- 订单 配送的方式,补给经销商;
- 折算成金额,进入客户报损台账(客户可以自行下单)
基本思路
不管客户上报的是瓶,还是箱,都统一换算成产品基本单位进行数量、金额计算。计算方式:
- 假设 基本单位,规格系数 = 40
- 假设第二单位,规格系数 = 20,则基本单位 = 2个 第二单位
- 此处40对应的为最小单位,最小单位可以不维护,如饮料企业通常就是箱,瓶,提;
对于产品来说一般只维护“箱”即可,假设规格系数5*6,公司员工一看就知道,该箱产品有6排,每排5瓶。
4、本文不足
本文只讨论了多单位简单实现方案,并未讨论口味等多SKU如何简单实现。
谈谈企业信息化 一种比较简单、灵活的产品物料多单位实现方案相关推荐
- mysql是逻辑库吗_mycat是一种比较简单的中间件产品,可以帮助mysql进行分库,同时统一在一个逻辑库。硬件环境:系统:centos 7.6数据库版本:5.7.19mycat:...
mycat是一种比较简单的中间件产品,可以帮助mysql进行分库,同时统一在一个逻辑库. 硬件环境: 系统:centos 7.6 数据库版本:5.7.19 mycat:1.6..6.1 github上 ...
- SAP License:制造企业信息化新动向
从信息化价值来看,电算化阶段的主要价值是办公自动化;企业信息化阶段的主要价值是提升企业效率.降低成本;而企业互联网化阶段的核心价值则是商业创新和产业融合,是企业运营模式的变革.下面介绍一下:制造企业信 ...
- 一 企业信息化战略和实施
目录 一.信息与信息化概念 一星⭐ 1.信息定义 2.信息 3.信息化的概念 二.信息系统生命周期 一星⭐ 三 .信息系统战略规划 三星⭐⭐⭐ 四.政府信息化与电子政务 一星⭐ 五.企业信息化与电子商 ...
- 企业信息化快速开发平台JeeSite
为什么80%的码农都做不了架构师?>>> 平台简介 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台. JeeS ...
- 企业信息化常见缩略词汇总
ABC(Activity Based Classification,ABC分类法):即帕雷托规则(Pareto's Law),平常我们也称之为"80对20"规则.此规则通过对同一类 ...
- 企业信息化改革怎么做?
前几天遇到一位朋友提问,他说他们公司目前需要进行信息化改革,问我有哪些好用的信息化管理系统推荐?并附上了几点要求: 扩展性强(公司管理结构变化很快,套装软件扩展升级太麻烦,并不适合). 功能全(要能满 ...
- IT新技术发展与企业信息化创新特征分析
我国企业信息化已走过三四十年的发展历程,虽然已取得了巨大成就,但与发达国家还存在较大差距.以云计算,物联网,社交网络,大数据等为代表IT新技术的发展,为提高我国企业信息化整体发展水平和建设效果,实现企 ...
- 企业信息化战略与实施(练习题)
1:商业智能是指利用数据挖掘.知识发现等技术分析和挖掘结构化的.面向特定领域的存储与数据仓库的信息.它可以帮助用户认清发展趋势.获取决策支持并得出结论.以下 (1 )活动,并不属于商业智能范畴. A. ...
- 企业信息化战略与实施-练习题
企业信息化战略与实施-练习题 1:商业智能是指利用数据挖掘.知识发现等技术分析和挖掘结构化的.面向特定领域的存储与数据仓库的信息.它可以帮助用户认清发展趋势.获取决策支持并得出结论.以下 (1 )活动 ...
最新文章
- 01 多线程概念及其实现方式
- 关注CIO 3.0:企业CIO的最佳时代到来
- Binder源码分析之驱动层(原)
- Android 安全专项-Xposed 劫持用户名密码实践
- linux usb声卡 submit urb,linux usb urb详解
- XML读取信息并显示
- phpcms的增删改查操作整理
- 相机模型与标定(二)--相机模型
- shell基础之编译安装nginx
- JAVA安装详细教程
- a标签的href属性 download属性
- Raul的新机器学习书!
- Java Emitter Template
- mapbox-gl开发教程(二):地图主要配置参数说明
- android自定义插值器_自定义缓动插值器,可在Android中实现有意义的动作
- 人类第一张黑洞照片背后的功臣,竟然是她!
- AHB-SRAM简单设计之 顶层模块sram_top.v
- BUUCTF:被劫持的神秘礼物
- 【论文阅读】——Spons Shields: Practical Isolation for Trusted Execution
- 用力和应变片计算弹性模量_材料弹性模量及泊松比测试实验教案.
热门文章
- bim综合软件:一次性快速解锁所有轴网,生成轴网
- JQuery 添加元素(jquery对象),删除元素( .remove())
- 单片机c语言交通信号灯设计,基于51单片机的交通信号灯设计毕业设计.pdf
- 国产磁力架的规格:1.5ml,2ml,15ml,50ml,0.2ml离心管,PCR单管,8连排管,12连排管,96孔PCR板磁力架
- JAVA生成二维码链接
- RHEL4-ASU2-i386上安装oracle9204
- python3代码编程规范(命名、空格、注释、代码布局、编程建议等)
- 网站制作系列教程--前端代码
- 基于web的在线视频编辑的设计
- ubuntu lotus testnet-staging