什么是进销存管理系统
进销存管理系统有几个关键组件。进销存控制的核心是跟踪仓库的两个主要功能:收货(入库)和发货(出库)。搬迁或其他活动也会发生。原材料减少,产成品增加。
演示:c.csymzs.top
• 进货装运
• 传出订单
• 进销存
• 供应商
• 条形码扫描仪
进销存系统软件数据库设计
通常,进销存系统软件有四个基本元素:产品、采购、订单和供应商。必须根据每个元素的位置、SKU和数量跟踪每个元素。通过跟踪进货和出库订单来更新当前进销存或现有产品。可以将订单警报设置为当进销存水平低于自定义的最低水平时触发。
设置进销存管理器数据库
下载InventoryManager。sql sql脚本从本教程的GitHub repo,然后使用MySQL工具,如MySQL Workbench执行脚本。这将创建一个名为InventoryManager的新数据库,以及本教程所需的表。
设置phpGrid
我们将通过以下方式使用datagrid组件PHP网格处理所有内部数据库CRUD(创建、删除、更新和删除)操作。在继续之前,请确保下载了phpGrid的副本。
要安装phpGrid,请遵循以下步骤::
解压缩phpGrid下载文件。
上传PHP网格文件夹到phpGrid文件夹。
通过配置conf.php文件文件。
在开始编码之前,我们必须在conf.php文件,phpGrid配置文件。
创建用户界面(UI)
我们的进销存系统软件由四页组成:
• 当前进销存
• 进货采购
• 装运订单
• 报告
菜单
菜单的包含文件存储在名为menu.php的inc文件夹中。菜单的代码很简单。为了集中注意力,我们将不进行详细讨论。请随意查看inc文件夹中的代码。我们还添加了一个名为Reports的菜单项。
页面
我们将使用与CRM和项目管理教程相同的页面模板。
当前的进销存
让我们从当前进销存页面开始。
进货增加进销存,而出库订单减少进销存。从主-细节的角度来看,当前进销存不是一个,而是两个详细数据格——采购(进货)和订单(出库订单)。因此,Current Inventory页面由一个主网格(进销存中的当前进销存)和两个详细网格(进货和出货订单)组成。我们可以使用phpGrid的一个主数据网格和多个详细数据网格特性轻松地表示这些关系。请注意用于格式化整数的set_col_format()函数的使用。这就是当前进销存数据网格。以下是目前的情况:
现在,让我们做一些更改来增强Product数据网格。
首先,我们将添加一些条件格式:当InventoryOnHand被设置为零或负数时,它将使用不同的背景颜色显示。为此,我们将使用set_conditional_format()函数。
上面的代码添加了一个显示条件,以便每当InventoryOnHand字段的值小于(lt) 1时,文本颜色将变为红色,背景颜色将变为深灰色(#DCDCDC)。
其次,每当InventoryOnHand小于MinimumRequired中显示的值时,我们希望通过将其显示为突出的背景色(如金色)来提醒用户。为了比较两个字段之间的值,我们必须切换到Javascript,因为set_conditional_format()函数只能处理单个字段。
下面的代码使用for循环遍历Products数据网格中的每一行。它比较inventoryOnHand和minimumrequired,当条件满足时,它将使用setcell函数来改变背景颜色。
您可以在phpGrid支持网站了解更多关于比较多个单元格值的信息。
接下来,在同一页面上,我们需要看到特定产品的购买进入(Incoming)和订单流出(Outgoing)。
采购细节网格(进货)
订单详细信息网格(出库)
两个详细网格使用相同的外键ProductId链接到主数据网格(Products)。
最后,我们管理当前进销存页面的完整代码是:
下面是进销存页面的快照:
下一页是Incoming Purchase页面。它类似于我们在设置Current Inventory页面时看到的Purchase Detail Grid。我们根据ProductId对购买进行分组,并在numberreceived中显示总数。任何进货都会增加进销存。
完整的代码:
下面是我们的进货页面的截图,启用了分组:
下一页是“传出订单”页。它类似于当前进销存页面中的订单详细信息网格。这里,我们将引入一个名为set_grid_method()的高级函数。
这标志着创建本教程所需的数据网格所需代码的结束。然而,我们还没有完成。我们还需要创建一个页面—Reports。我们将在跳转后讨论这个问题。没有报告的进销存系统软件有什么用?在本节中,您将学习如何使用phpChart—它与phpGrid无缝集成—为您的进销存管理器应用程序创建可视化的、有用的报告。
这是我们的页面完成后的样子:
在开始之前,我们需要安装phpChart。因为免费版本(phpChart Lite)只支持折线图,所以建议您获取完整版本的phpChart。
设置phpChart
将phpGrid和phpChart放在单独的文件夹中是很重要的。下面是推荐的文件夹层次结构。
报表设计
我们将在进销存摘要网格旁边放置一个饼图。数据网格提供用于绘制饼状图的系列数据。
phpGrid和phpChart的集成
首先,在代码的开头包含对两个conf.php文件的调用。
饼状图
下面是创建饼图的完整代码:
让我们浏览一下代码。
第一行是构造函数。我们传递array(null)作为序列数据,因为我们不希望在最初的饼图中显示任何数据。用于绘制图表的进销存数据在第一次初始化时还不可用。数据稍后以JSON形式从数据网格提供。
我们还给图表起了一个唯一的名字,PieChart。
接下来,我们给它一个标题。这里没有什么特别的。一旦有了标题,就调用系列默认函数来将渲染器设置为PieRenderer。与条形图不同,饼图没有Y轴。我们也可以设置rendererOptions属性。我们不会在这里详细讨论每个选项,但您可以在在线文档中找到更多信息。我们还想显示一个图例。下面的set_legend命令将图例显示在饼图的西边(以byw命名)或左边。我们还将删除边界和背景。最后,我们通过给它一个高度和宽度(以像素为单位)来绘制图表。但是,如果现在执行代码,将看不到图表,因为用于呈现图表的数据还不可用。
进销存汇总数据表格
这里,我们将使用与product页面相同的进销存数据网格。我们只需要再添加一件事—事件处理程序。在phpGrid中,我们可以使用add_event()函数添加事件处理程序。add_event()将事件处理程序(本质上是一个JavaScript函数)绑定到特定的phpGrid事件。可以在这里找到可能发生的事件列表。因为我们必须等待数据网格完成加载,然后才能发送数据绘制图表,所以我们使用事件jqGridLoadComplete。
phpGrid 101 - jqGridLoadComplete事件
jqGridLoadComplete是整个数据网格主体完成加载后发生的最后一个事件。请注意,如果用户更改列的排序顺序或设置过滤器,网格主体将被重新加载。
用Javascript发送数据
下面是jqGridLoadComplete的Javascript事件处理程序。
完整的代码:
如果您是编程新手,对编码还不太熟悉,那么您可能想要查看基于phpGrid之上构建的ZenBase。进销存管理系统软件只是ZenBase众多应用模板中的一个,任何人——无论有没有编码技能——都可以根据自己的需要使用和定制。
添加条形码扫描器
将条形码扫描器添加到我们的进销存管理系统软件中
在Github上下载源代码
在PHP和MySQL的awesome进销存管理应用程序从Start到Finishgithub.com的源代码
常见问题:
未捕获的错误:类“phpGrid”没有找到
如何修复:如果你正在使用免费Lite版本,你可以注释掉第一行
发表评论 取消回复