Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构

1. 54.order_info  订单 数据结构1

2. Ecshop 的订单api1

2.1. 生成订单 code by1

2.2. 相关文件路径2

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.7. * 订单退款order_refund(3

2.8. * 合并订单merge_order4

2.9. * 改变订单中商品库存change_order_goods_storage4

3. Ati order api4

3.1. 生成订单insert /save4

4. 高级功能4

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订单结构的更多相关文章

  1. Atitit.收银系统模块架构attilax 总结

    Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2.  ...

  2. RDIFramework.NET V3.3 WinForm版新增订单管理主从表事例

    功能描述 无论什么系统,除了常规的单表处理外,主从表的应用都是非常普遍的,RDIFramework.NET V3.3 WinForm版本中新增了一个主从表的事例供大家参考.主从表的界面设计大同小异,主 ...

  3. Atitit.收银系统pos 以及打印功能的行业标准

    Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...

  4. 原生tab切换(适用于购物商城中订单管理模块,例如:待付款/待发货/待收货等订单状态)

    <!-- 头部tab栏切换 html部分--> <ul class="title-bar"> <li @click="changeStatu ...

  5. 浩瀚移动POS收银开单扫描解决方案PDA仓储系统,无线批发,移动批发,无线POS,无线销售APP-车销管理PDA

    适用范围 各种业态的批发商铺.批发市场.订货会.展销会.配送中心仓库…… 产品简介 随着移动技术与智能PDA设备的迅猛发展,中国已经跨步进入移动信息化社会.移动商务是移动信息社会的重要载体与形式,它开 ...

  6. PDA移动POS开单扫描打票收银系统-带来零售批发 新的技术 新的手段!!

    手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...

  7. 基于C#的超市收银管理系统

    基于C#的超市收银管理系统 前序 一直在忙学习Qt有关的知识,非常有幸这学期学习了C#.让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了.好多控件的使用方法好类似,尽管平时上课没有怎么认 ...

  8. 互联网+下PDA移动智能手持POS超市收银开单软件

    是一套专为中小超市.专卖店设计的收银管理软件,广泛应用于中小超市(百货商店).化妆品店.婴幼儿用品店.玩具店.保健品店.茶叶店. 电器.文具图书.手机通讯器材店等行业的中小型店面店铺.该系统具有完善的 ...

  9. 移动零售批发行业新的技术特色-智能PDA手持移动扫描打印销售开单收银仪!!

    提起便利店或者超市,大家的第一印象一定是前台那个笨重的POS机和站在POS机后的收银员.传统的零售店中,笨重的POS机随处可见. 变革前,零售盘点多烦忧 一个顾客要结账,就需要通过POS机.小票打印机 ...

随机推荐

  1. Longest Absolute File Path -- LeetCode

    Suppose we abstract our file system by a string in the following manner: The string "dir\n\tsub ...

  2. 【kd-tree】bzoj3290 Theresa与数据结构

    离线所有操作,对所有可能存在的点建立kd-tree,add相当于权值+1,cancel相当于权值-1. 修改操作要记录kd-tree上每个点的fa,从底向上地进行修改. 优化:若一个矩形框的sumv= ...

  3. 【动态规划】【记忆化搜索】【搜索】CODEVS 1262 不要把球传我 2012年CCC加拿大高中生信息学奥赛

    可以暴力递归求解,应该不会TLE,但是我们考虑记忆化优化. 设f(i,j)表示第i个数为j时的方案数. f(i,j)=f(1,j-1)+f(2,j-1)+……+f(i-1,j-1) (4>=j& ...

  4. js常用功能总结

    1,手机号的校验 //手机号的判断 function checktel() { //手机号不为空,格式校验 var tel = $(".uidbtp").val(); if(tel ...

  5. jdk8新特性

    JDK8新特性(JDK8的新特性) * 接口中可以定义有方法体的方法,如果是非静态,必须用default修饰 * 如果是静态的就不用了 class Test { public void run() { ...

  6. MathType如何插入连乘

    这个就是连乘符号,只不过看着不习惯......就在眼皮子底下.

  7. 推荐一些不错的开源免费易上手的web前端框架

    1. bui 2.Semantic UI 3.oniui

  8. 【Git】GitHub for Windows使用(3) GitHub Flow的使用

    第三章了,关于GitHub上有一个Pull Request,是展示本项目或资源所有的Pull 请求的. 而这个开发流程是基于GitHub Flow的开发模式. 网上关于GitHub Flow简单的介绍 ...

  9. 如何用路由器改成WiFi Pineapple系统镜像网络流量

    本文主要介绍利用自己现有的设备,如何制作和使用WiFi Pineapple镜像网络流量,利用DWall模块分析用户数据,然后根据自己的需求,给DWall加入了日志记录功能.最后介绍了如何防范wifi ...

  10. Delphi 7下最小化到系统托盘

    在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFY ...