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机.小票打印机 ...
随机推荐
- 【树链剖分/线段树】BZOJ1036-[ZJOI2008]树的统计Count
[题目大意] 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX ...
- UILabel设置行间距
UILabel设置行间距: NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWi ...
- 关于 easyui datagridfilter 中的combox 过滤
var_activitimodel_datagrid.datagrid({ singleSelect: true, fit: true, striped: true, fitColumns: fals ...
- 数据实时分析平台 Heron
Twitter发布了新开发的数据实时分析平台Heron,以下为官方文档摘译: 我们每天在Twitter上处理着数十亿的事件.正如你猜测的那样,实时分析这些事件是一个巨大的挑战.目前,我们主要的分析平台 ...
- JAMon监控web工程方法的调用性能
JAMon简介 JAMon的全名是:Java Application Monitor.它是一个小巧的,免费的,高性能的,线程安全的性能监测工具. 它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用 ...
- 面试题:判断两个字符串是否互为回环变位(Circular Rotaion)
题干: 如果字符串 s 中的字符循环移动任意位置之后能够得到另一个字符串 t,那么 s 就被称为 t 的回环变位(circular rotation). 例如,ACTGACG 就是 TGACG ...
- 增强学习--Sarsa算法
Sarsa算法 实例代码 import numpy as np import random from collections import defaultdict from environment i ...
- Android Handler,Loop,HandlerThread消息处理
博客标题也不知道写什么好,仅仅是近期有时候发现Handler,Loop,HandlerThread非常easy混淆,所以做了简单的笔记处理: 第一种 : 大概的意思给出说明图: watermark/2 ...
- Yii2系列教程五:简单的用户权限管理
上一篇文章讲了用户的注册,验证和登录,这一篇文章按照约定来说说Yii2之中的用户和权限控制. 你可以直接到Github下载源码,以便可以跟上进度,你也可以重头开始,一步一步按照这个教程来做. 鉴于本教 ...
- javascript通过url向jsp页面传递中文参数乱码解决方法
解决方法:在传递参数前将中文参数进行两次编码,jsp页面获取参数后对中文参数进行一次解码,中文参数就不会变为乱码了! 参考例子: <%@ page language="java&quo ...