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. 设置参数进行java的jvm监控

    1.设置jconsole监控服务器的tomcat参数及java jvm大小,执行命令vi ../tomcat/bin/catalina.sh  “在服务器安装的tomcat目录下” JAVA_OPTS ...

  2. Java 线程 锁

    http://www.blogjava.net/tscfengkui/archive/2010/11/10/337709.html?opt=admin http://hi.baidu.com/xhxz ...

  3. 使用lookup-method解决singleton bean依赖prototype bean的问题

    在Spring里面,当一个singleton bean依赖一个prototype bean,那么,因为singleton bean是单例的,因此prototype bean在singleton bea ...

  4. 【进制转换】codevs 1474 十进制转m进制

    #include<cstdio> using namespace std; ],en; int main() { scanf("%d%d",&n,&m) ...

  5. [CF911G]Mass Change Queries

    题目大意: 给你一个长度为n的数列a,按顺序进行以下m次操作,每次将区间[l,r]中的所有x变成y,问最后数列是怎样的. 思路: 线段树. 每个线段树结点上维护当前区间每个数分别会变成多少.时间复杂度 ...

  6. yum出现的“UnicodeDecodeError: 'ascii' codec”问题解决

    新装了CentOS 6.5系统,打算使用yum安装程序是出现了如下错误: Loading mirror speeds from cached hostfile Traceback (most rece ...

  7. struts-2-spring-2-jpa-ajax

    http://struts.apache.org/docs/struts-2-spring-2-jpa-ajax.html

  8. C# 7 新特性-1

    来源https://www.kenneth-truyers.net/2016/01/20/new-features-in-c-sharp-7/ Tuples What Tuples是数据的临时分组.区 ...

  9. T-sql脚本规范

    一.创建表 IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'表名') AND type in (N'U') ...

  10. JS向后台传递json数组对象

    var Obj = []; //一下代码可以循环插入 var returnObj = new Object();//创建一个对象 returnObj.id = “123”: returnObj.mon ...