Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构
Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构
2.3. 取得订单信息 function order_info($order_id, $order_sn = '')2
2.4. 取得订单商品function order_goods($order_id)2
2.5. 取得订单总金额 function order_amount($order_id, $include_gift = true)2
2.6. 修改订单 function update_order($order_id, $order)3
2.9. * 改变订单中商品库存change_order_goods_storage4
1. 54.order_info 订单 数据结构
参考备注
2. Ecshop 的订单api
2.1. 生成订单 code by
flow.php
/*------------------------------------------------------ */
//-- 完成所有订单操作,提交到数据库
/*------------------------------------------------------ */
elseif ($_REQUEST['step'] == 'done')
{
/* 插入订单表 */
$error_no = 0;
do
{
$order['order_sn'] = get_order_sn(); //获取新订单号
$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');
2.2. 相关文件路径
D:\wamp\www\ecsx\includes\lib_order.php
/**
* 取得订单信息
* @param int $order_id 订单id(如果order_id > 0 就按id查,否则按sn查)
* @param string $order_sn 订单号
* @return array 订单信息(金额都有相应格式化的字段,前缀是formated_)
*/
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2.3. 取得订单信息 function order_info($order_id, $order_sn = '')
/**
* 取得订单商品
* @param int $order_id 订单id
* @return array 订单商品数组
*/
2.4. 取得订单商品function order_goods($order_id)
/**
* 取得订单总金额
* @param int $order_id 订单id
* @param bool $include_gift 是否包括赠品
* @return float 订单总金额
*/
2.5. 取得订单总金额 function order_amount($order_id, $include_gift = true)
{
$sql = "SELECT SUM(goods_price * goods_number) " .
"FROM " . $GLOBALS['ecs']->table('order_goods') .
" WHERE order_id = '$order_id'";
if (!$include_gift)
{
$sql .= " AND is_gift = 0";
}
return floatval($GLOBALS['db']->getOne($sql));
}
/**
* 修改订单
* @param int $order_id 订单id
* @param array $order key => value
* @return bool
*/
2.6. 修改订单 function update_order($order_id, $order)
{
return $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'),
$order, 'UPDATE', "order_id = '$order_id'");
}
/**
2.7. * 订单退款order_refund(
* @param array $order 订单
* @param int $refund_type 退款方式 1 到帐户余额 2 到退款申请(先到余额,再申请提款) 3 不处理
* @param string $refund_note 退款说明
* @param float $refund_amount 退款金额(如果为0,取订单已付款金额)
* @return bool
*/
function order_refund($order, $refund_type, $refund_note, $refund_amount = 0)
{
/**
2.8. * 合并订单merge_order
* @param string $from_order_sn 从订单号
* @param string $to_order_sn 主订单号
* @return 成功返回true,失败返回错误信息
*/
function merge_order($from_order_sn, $to_order_sn)
/**
2.9. * 改变订单中商品库存change_order_goods_storage
* @param int $order_id 订单号
* @param bool $is_dec 是否减少库存
* @param bool $storage 减库存的时机,1,下订单时;0,发货时;
*/
function change_order_goods_storage($order_id, $is_dec = true, $storage = 0)
3. Ati order api
3.1. 生成订单insert /save
来源于sql与orm的api继承。。
4. ---code
public class OrderService extends absService {
public static void main(String[] args) {
final long time_intFmt = new Date().getTime() / 1000;
System.out.println(time_intFmt);
OrderService os = IocX4casher.getBean(OrderService.class);
os.insert(new HashMap() {
{
this.put("good_amount", 12.50);
this.put("add_time", time_intFmt);
this.put("confirm_time", time_intFmt);
this.put("order_sn",filex.getUUidName());
}
});
System.out.println("--f");
}
@Inject
DBX dx;
public int insert(Map order) {
String sql = "insert into ecs_order_info(order_sn,order_status,shipping_status,pay_status,goods_amount,add_time,confirm_time,agency_id,inv_type,tax,discount)values('@order_sn@',1,1,1,@good_amount@,@add_time@,@confirm_time@,0,0,0,0) ";
sql = SqlFormatter.exe(sql, order);
System.out.println(sql);
// DBX IocX4casher.getBean(DBX.class)
dx.execSql(sql);
return 0;
}
5. 高级功能
错误的金额---- 太小,太大的的数
审核机制...(可以只使用在太小,太大金额或者别的异常的情形哈)
参考
ECSHOP 数据库结构说明 (适用版本v2.7.3).htm
Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构的更多相关文章
- Atitit.收银系统模块架构attilax 总结
Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2. ...
- RDIFramework.NET V3.3 WinForm版新增订单管理主从表事例
功能描述 无论什么系统,除了常规的单表处理外,主从表的应用都是非常普遍的,RDIFramework.NET V3.3 WinForm版本中新增了一个主从表的事例供大家参考.主从表的界面设计大同小异,主 ...
- Atitit.收银系统pos 以及打印功能的行业标准
Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...
- 原生tab切换(适用于购物商城中订单管理模块,例如:待付款/待发货/待收货等订单状态)
<!-- 头部tab栏切换 html部分--> <ul class="title-bar"> <li @click="changeStatu ...
- 浩瀚移动POS收银开单扫描解决方案PDA仓储系统,无线批发,移动批发,无线POS,无线销售APP-车销管理PDA
适用范围 各种业态的批发商铺.批发市场.订货会.展销会.配送中心仓库…… 产品简介 随着移动技术与智能PDA设备的迅猛发展,中国已经跨步进入移动信息化社会.移动商务是移动信息社会的重要载体与形式,它开 ...
- PDA移动POS开单扫描打票收银系统-带来零售批发 新的技术 新的手段!!
手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...
- 基于C#的超市收银管理系统
基于C#的超市收银管理系统 前序 一直在忙学习Qt有关的知识,非常有幸这学期学习了C#.让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了.好多控件的使用方法好类似,尽管平时上课没有怎么认 ...
- 互联网+下PDA移动智能手持POS超市收银开单软件
是一套专为中小超市.专卖店设计的收银管理软件,广泛应用于中小超市(百货商店).化妆品店.婴幼儿用品店.玩具店.保健品店.茶叶店. 电器.文具图书.手机通讯器材店等行业的中小型店面店铺.该系统具有完善的 ...
- 移动零售批发行业新的技术特色-智能PDA手持移动扫描打印销售开单收银仪!!
提起便利店或者超市,大家的第一印象一定是前台那个笨重的POS机和站在POS机后的收银员.传统的零售店中,笨重的POS机随处可见. 变革前,零售盘点多烦忧 一个顾客要结账,就需要通过POS机.小票打印机 ...
随机推荐
- 更新archlinux
有个上网本,虽然配置很差,但是安装的是arch,这不长时间不滚动更新出问题了, :: Proceed with installation? [Y/n] (/) checking keys % (/) ...
- [BZOJ 2809] Dispatching
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2809 Algorithm: 很容易看出此题贪心的思路: 只要在每个点的子树中贪心选取费用 ...
- 【动态规划】Gym - 101147H - Commandos
裸dp,看代码. #include<cstdio> #include<algorithm> #include<cstring> using namespace st ...
- 9.1(java学习笔记)正则表达式
一.正则表达式 1.1正则表达式 正则表达式是描述一种规则,通过这个规则可以匹配到一类字符串. 2.1正则语法 2.1.1普通字符:字母.数字.下划线.汉字以及没有特殊意义的符号都是普通字符. 正则表 ...
- Problem J: 求方程的解——C语言初学者百题大战之十五
#include<stdio.h> #include<math.h> int main() { float a,b,c,x1,x2,delta; scanf("%f ...
- Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
/** * 函数式编程进阶: * 1.函数和变量一样作为Scala语言的一等公民,函数可以直接赋值给变量 * 2.函数更常用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称 ...
- display:block什么时候使用
所有的块级元素不需要再在使用display:block定义,块级元素本身的默认属性就是block display:block:比较常用于<a><span>这两个标签,因为他们不 ...
- 杂谈PID控制算法——最终篇:C语言实现51单片机中的PID算法
真遗憾,第二篇章没能够发表到首页上去.趁热打铁.把最终篇——代码篇给发上来. 代码的设计思想请移步前两篇文章 //pid.h #ifndef __PID__ #define __PID__ /*PID ...
- 如何让Adobe reader 记住上次pdf文档打开位置?
菜单栏: Edit --> Preferences --> Documents --> 勾选 “Restore last view settings where reopening ...
- 深入了解JavaScript权威指南
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删.JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等.JavaScript对象除了可以保持自有的 ...