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. 【树链剖分/线段树】BZOJ1036-[ZJOI2008]树的统计Count

    [题目大意] 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX ...

  2. UILabel设置行间距

    UILabel设置行间距: NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWi ...

  3. 关于 easyui datagridfilter 中的combox 过滤

    var_activitimodel_datagrid.datagrid({ singleSelect: true, fit: true, striped: true, fitColumns: fals ...

  4. 数据实时分析平台 Heron

    Twitter发布了新开发的数据实时分析平台Heron,以下为官方文档摘译: 我们每天在Twitter上处理着数十亿的事件.正如你猜测的那样,实时分析这些事件是一个巨大的挑战.目前,我们主要的分析平台 ...

  5. JAMon监控web工程方法的调用性能

    JAMon简介 JAMon的全名是:Java Application Monitor.它是一个小巧的,免费的,高性能的,线程安全的性能监测工具. 它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用 ...

  6. 面试题:判断两个字符串是否互为回环变位(Circular Rotaion)

    题干:   如果字符串 s 中的字符循环移动任意位置之后能够得到另一个字符串 t,那么 s 就被称为 t 的回环变位(circular rotation).   例如,ACTGACG 就是 TGACG ...

  7. 增强学习--Sarsa算法

    Sarsa算法 实例代码 import numpy as np import random from collections import defaultdict from environment i ...

  8. Android Handler,Loop,HandlerThread消息处理

    博客标题也不知道写什么好,仅仅是近期有时候发现Handler,Loop,HandlerThread非常easy混淆,所以做了简单的笔记处理: 第一种 : 大概的意思给出说明图: watermark/2 ...

  9. Yii2系列教程五:简单的用户权限管理

    上一篇文章讲了用户的注册,验证和登录,这一篇文章按照约定来说说Yii2之中的用户和权限控制. 你可以直接到Github下载源码,以便可以跟上进度,你也可以重头开始,一步一步按照这个教程来做. 鉴于本教 ...

  10. javascript通过url向jsp页面传递中文参数乱码解决方法

    解决方法:在传递参数前将中文参数进行两次编码,jsp页面获取参数后对中文参数进行一次解码,中文参数就不会变为乱码了! 参考例子: <%@ page language="java&quo ...