# PSI **Repository Path**: foodtrust/PSI ## Basic Information - **Project Name**: PSI - **Description**: 基于开源进销存PSI定制开发,用于支持有机零售服务商丰巢的实际进销存业务,进化方向是成为有机产业的公共服务平台。 - **Primary Language**: PHP - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: https://www.foodtrust.cn/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 857 - **Created**: 2018-11-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 定制版使用说明 这是PSI(https://gitee.com/crm8000/PSI) 的一个衍生版本 应用于丰巢优选(foodtrust.cn),一家有机零售商的进销存管理,长期方向是成为有机产业公共服务平台的一个核心业务组件 在启用PSI前,丰巢的业务以网上订单和宅配为主,今年新开设线下店,短期要通过PSI实现对电商系统、批发系统和零售店面系统的统一支持 在二次开发期间,本分支会在最大程度保持与主分支的同步 目前的主要区别: 1)允许零库存出库,这样就不用做生鲜产品的批发和零售规格转换和拆分,在盘点时核销即可 2)定期从Magento系统(电商零售系统)获取发货记录生成销售出库单 3)一些方便业务的小改动:例如自动记录最新采购价,维护库存的辅助工具,采购订单审批即生成在途入库单,强制录入信息检查等 # 使用说明 由于是边实施边遇到业务细化需求,往往选择了最小代码开发量做修改,故很多实现并不标准(包括使用了触发器或存储过程,大量的工具性程序中手工写入仓库id等情况),所以在目前阶段并不主张您直接采用。 对于想试用一下并且有一定编程基础的朋友,安装后选择以下动作之一: ## 一股脑建立相关数据库schema(包括表结构、存储过程、触发器等) /web/MPT/psi.sql --所有的PSI原生表所在数据库中 /web/MPT/ogoods.sql --ogoods数据库 ## 逐一创建必要的存储过程及相关表 ### 创建表 所有的PSI原生表都保存在psi数据库中,为了最大程度减少对原生设计的干扰,某些二次开发或者拓展功能建立于一个单独的数据库ogoods #### ogoods.trigger_log 触发器工作记录表,必须创建 /web/MPT/trigger_log.sql #### 创建表ogoods.psi_icbill_data 盘点单记录表,可选创建,需要与视图psi.production_warehouse_inventory配合工作 /web/MPT/psi_icbill_data.sql #### 视图psi.production_warehouse_inventory 待盘点数据视图,可选创建,使用了生产仓库的静态代码,需修改后使用 `````` select `m2`.`code` AS `code`,`m2`.`name` AS `name`,`m1`.`balance_count` AS `balance_count`,`m1`.`balance_money` AS `balance_money` from (`t_inventory` `m1` left join `t_goods` `m2` on((`m1`.`goods_id` = `m2`.`id`))) where (`m1`.`warehouse_id` = '7E6C8D0D-E25A-11E8-8B92-6C92BF475963') `````` ### 在PSI数据库中创建存储过程 注意需要修改数据库用户名 #### 存储过程公用函数 /web/MPT/writeLog.sql #### 更新最新建议采购价 /web/MPT/updateGoodsPurchasePrice.sql #### 审批采购订单即生成入库单草稿所用的存储过程 /web/MPT/checkAndApprovePO.sql #### 同步Magento新建商品到PSI 有大量的静态依赖,例如公司ID、默认目录ID、没搞清楚勿使用 /web/MPT/syncGoods.sql #### 将Magento发货订单形成销售出库单提交给PSI审核 有大量的静态依赖,例如公司ID、默认仓库、特定客户ID、特定计价方法,没搞清楚勿使用 /web/MPT/shipGoodsII.sql /web/MPT/prepareWSBbyClient.sql ### 建立触发器 #### t_biz_log after insert trigger 用于直接从采购订单直接完成生成入库单草稿并审批 `````` call psi.checkAndApprovePO(new.info, new.user_id) `````` #### t_goods after insert trigger 用于将建议采购价同步到Magento `````` IF new.purchase_price != old.purchase_price then call syncPurchasePrice(new.id, new.purchase_price); end if `````` ### 定时任务 #### 数据库定时任务,每隔一小时 call syncGoods() #### 系统定时任务,每天中午11:30 自动将Magento发货订单形成销售出库单提交给PSI审核,有大量的静态依赖,例如公司ID、默认目录ID、没搞清楚勿使用 `````` #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH export PSI_PASSWORD=your.password export RDS_AGENT=your.rds.url cd /www/wwwroot/PSI/web/MPT ruby shipSomeGoods.rb echo "----------------------------------------------------------------------------" endDate=`date +"%Y-%m-%d %H:%M:%S"` echo "★[$endDate] Successful" echo "----------------------------------------------------------------------------" `````` # 关于PSI 开源ERP PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。 # PSI演示 PSI的演示见:https://psi.sturgeon.mopaasapp.com PC端请用`360浏览器`或者是`谷歌浏览器`访问 移动端扫码访问![移动端扫码访问](PSI_Mobile_URL.png) # PSI的开源协议 PSI的开源协议为GPL v3 **不需要** 经过PSI官方授权,您就可以把PSI的全部源代码用于任何合法的商业用途,例如: 1. 给企业实施PSI 2. 自己二次开发后,销售二次开发后的产品 3. 直接销售PSI的源代码 4. 二次开发后的产品申请专利或著作权 5. 其他合法商业用途 上述商业行为中的合法获利全部归您所有,不需要给PSI支付任何费用。 # PSI相关项目 1. PSI使用帮助:https://gitee.com/crm8000/PSI_Help 2. PSI移动端:https://gitee.com/crm8000/PSI_Mobile 3. ExtJS代码注释:https://gitee.com/crm8000/ExtJS # 二次开发服务 1. 前提:非临散需求,并且预算不低于十万元 2. 请把需求文档email到 crm8000@qq.com ,评估需求后会回复报价 # 技术支持 如有技术方面的问题,可以提出Issue一起讨论:https://gitee.com/crm8000/PSI/issues