$rec_id_sh = $db->getOne($sql_sh); if (!$rec_id_sh) { sys_msg('对不起,您没有审核权限!'); } } $add_time = gmtime(); $inout_note = empty($_REQUEST['note']) ? '' : trim($_REQUEST['note']); $inout_status = empty($_REQUEST['inout_status']) ? '' : intval($_REQUEST['inout_status']); $action_val = empty($_REQUEST['action_val']) ? '' : trim($_REQUEST['action_val']); $sql = "insert into " . $ecs->table('store_inout_note') . " (inout_rec_id, adminer_id, action_val, inout_status, inout_note, add_time)" . " values('{$rec_id}', '{$_SESSION['admin_id']}', '{$action_val}', '{$inout_status}', '{$inout_note}', '{$add_time}')"; $db->query($sql); /* 更新入库单状态 */ $sql = "update " . $ecs->table('store_inout_list') . " set inout_status='{$inout_status}' where rec_id='{$rec_id}' "; $db->query($sql); if ($inout_status == '3') { update_stock_in($rec_id, $inout_row['store_id']); //更新库存表 } $link[0]['text'] = $_LANG['back_list_in']; $link[0]['href'] = 'store_inout_in.php?act=list'; clear_cache_files(); // 清除相关的缓存文件 sys_msg('恭喜,操作成功', 0, $link); } /*------------------------------------------------------ */ //-- 编辑入库单 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'edit') { admin_priv('inout_in_manage'); $id = intval($_REQUEST['id']); /* 取库单数据 */
function cancel_delivery($order_id, $delivery_id) { global $db, $ecs, $_CFG; /* 取得参数 */ $delivery = ''; /* 根据发货单id查询发货单信息 */ if (!empty($delivery_id)) { $delivery_order = delivery_order_info($delivery_id); } else { sys_msg('订单号不能为空!', 1); } /* 查询订单信息 */ $order = order_info($order_id); /* 取消当前发货单物流单号 */ $_delivery['invoice_no'] = ''; $_delivery['status'] = 2; $query = $db->autoExecute($ecs->table('delivery_order'), $_delivery, 'UPDATE', "delivery_id = {$delivery_id}", 'SILENT'); if (!$query) { /* 操作失败 */ $links[] = array('text' => $GLOBALS['_LANG']['delivery_sn'] . $GLOBALS['_LANG']['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id); sys_msg($GLOBALS['_LANG']['act_false'], 1, $links); exit; } /* 修改定单发货单号 */ $invoice_no_order = explode('<br>', $order['invoice_no']); $invoice_no_delivery = explode('<br>', $delivery_order['invoice_no']); foreach ($invoice_no_order as $key => $value) { $delivery_key = array_search($value, $invoice_no_delivery); if ($delivery_key !== false) { unset($invoice_no_order[$key], $invoice_no_delivery[$delivery_key]); if (count($invoice_no_delivery) == 0) { break; } } } $_order['invoice_no'] = implode('<br>', $invoice_no_order); /* 更新配送状态 */ $order_finish = get_all_delivery_finish($order_id); $shipping_status = $order_finish == -1 ? SS_SHIPPED_PART : SS_SHIPPED_ING; $arr['shipping_status'] = $shipping_status; if ($shipping_status == SS_SHIPPED_ING) { $arr['shipping_time'] = ''; // 发货时间 } $arr['invoice_no'] = $_order['invoice_no']; update_order($order_id, $arr); /* 发货单取消发货记录log */ order_action($order['order_sn'], $order['order_status'], $shipping_status, $order['pay_status'], $action_note, null, 1); /* 如果使用库存,则增加库存 */ /* 代码增加_start By morestock_morecity */ if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP) { $delivery_stock_sql = "SELECT * FROM " . $GLOBALS['ecs']->table('delivery_goods') . " WHERE delivery_id = '{$delivery_id}' "; $delivery_stock_result = $GLOBALS['db']->getAll($delivery_stock_sql); $store_error = ''; //$goods_attr_id = get_goods_attr_id($value['goods_id'], $value['goods_attr']); $store_id_zhyh = get_storeid_by_ssq($order['province'], $order['city'], $order['district'], $order['xiangcun'], $order['supplier_id']); if (!$store_id_zhyh) { $store_error = '该发货单没有对应仓库!'; } if ($store_error) { sys_msg($store_error); } else { foreach ($delivery_stock_result as $key => $value) { $goods_attr_id = get_goods_attr_id($value['goods_id'], $value['goods_attr']); $store_row = get_storeid_youhuo($order['province'], $order['city'], $order['district'], $order['xiangcun'], $value['goods_id'], $goods_attr_id, $order['supplier_id'], $order_id); $add_time = gmtime(); $add_date = local_date('Ymd'); $sql = "select max(today_sn) from " . $ecs->table('store_inout_list') . " where inout_mode=2 and add_date='{$add_date}' "; $inout_count = $db->getOne($sql); $inout_sn = $inout_count ? intval($inout_count + 1) : 1; $today_sn = $inout_sn; $inout_sn = str_pad($inout_sn, 4, "0", STR_PAD_LEFT); $inout_sn = 'rk' . $add_date . $inout_sn; $stock_type_id = 0; if ($order['supplier_id'] > 0) { $stock_type_id = $db->getOne('select type from ' . $ecs->table('store_type') . " where supplier_id=" . $order['supplier_id']); } $sql = "insert into " . $ecs->table('store_inout_list') . "(inout_sn, inout_status, store_id, adminer_id, inout_type, inout_mode, order_sn, " . "takegoods_man, today_sn, add_date, add_time, supplier_id, store_type_id) " . "values('{$inout_sn}', '3', '{$store_row['store_id']}', '{$_SESSION['supplier_user_id']}', '5', '2', '{$order['order_sn']}', " . "'{$_SESSION['supplier_name']}', '{$today_sn}' , '{$add_date}', '{$add_time}','{$order['supplier_id']}', '{$stock_type_id}' ) "; $db->query($sql); $inout_rec_id = $db->insert_id(); $sql = "insert into " . $ecs->table('store_inout_goods') . "(inout_rec_id, goods_id, goods_sn, attr_value, inout_mode, number_yingshou, number_shishou, supplier_id, store_type_id) " . "values('{$inout_rec_id}', '{$value['goods_id']}', '{$value['goods_sn']}', '{$goods_attr_id}', '2', '{$value['send_number']}', '{$value['send_number']}','{$order['supplier_id']}', '{$stock_type_id}') "; $db->query($sql); $upre = update_stock_in($inout_rec_id, $store_row['store_id']); //更新库存表 } } } /* 代码增加_end By morestock_morecity */ /* 发货单全退回时,退回其它 */ if ($order['order_status'] == SS_SHIPPED_ING) { /* 如果订单用户不为空,计算积分,并退回 */ if ($order['user_id'] > 0) { /* 取得用户信息 */ $user = user_info($order['user_id']); /* 计算并退回积分 */ $integral = integral_to_give($order); log_account_change($order['user_id'], 0, 0, -1 * intval($integral['rank_points']), -1 * intval($integral['custom_points']), sprintf($GLOBALS['_LANG']['return_order_gift_integral'], $order['order_sn'])); /* todo 计算并退回红包 */ return_order_bonus($order_id); } } /* 清除缓存 */ clear_cache_files(); /* 操作成功 */ $links[] = array('text' => $GLOBALS['_LANG']['delivery_sn'] . $GLOBALS['_LANG']['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id); sys_msg($GLOBALS['_LANG']['act_ok'], 0, $links); }
/** * 订单指库入库操作 */ function appoint_order_in($retinfo) { global $db, $ecs; $in_time = gmtime(); foreach ($retinfo as $okey => $oval) { //订单分 foreach ($oval as $skey => $sval) { //订单当中的商品所在库房分 $in_list_info = createSn('zk'); $insert_inout_list = array('inout_sn' => $in_list_info['inout_sn'], 'inout_status' => 3, 'store_id' => $skey, 'adminer_id' => $_SESSION['admin_id'], 'inout_type' => INOUT_APPOINT_IN, 'inout_mode' => 2, 'order_sn' => $okey, 'takegoods_man' => $_SESSION['user_name'], 'today_sn' => $in_list_info['today_sn'], 'add_date' => $in_list_info['add_date'], 'add_time' => $in_time, 'supplier_id' => 0, 'store_type_id' => 0); $db->autoExecute($ecs->table('store_inout_list'), $insert_inout_list, 'INSERT'); $inout_rec_id = $db->insert_id(); //商品进行处理 foreach ($sval as $k => $v) { $in_goods = array('inout_rec_id' => $inout_rec_id, 'goods_sn' => $v['goods_sn'], 'goods_id' => $v['goods_id'], 'attr_value' => $v['goods_attr_id'], 'inout_mode' => 2, 'number_yingshou' => $v['goods_number'], 'number_shishou' => $v['goods_number'], 'supplier_id' => 0, 'store_type_id' => 0); $db->autoExecute($ecs->table('store_inout_goods'), $in_goods, 'INSERT'); unset($in_goods); } //入库商品库存变更 update_stock_in($inout_rec_id, $skey); //插入入库单通过审核的日志或撤销后日志 $insert_inout_note = array('inout_rec_id' => $inout_rec_id, 'adminer_id' => $_SESSION['admin_id'], 'action_val' => '订单指库', 'inout_status' => 3, 'inout_note' => '订单指库涉及到的入库', 'add_time' => $in_time); $db->autoExecute($ecs->table('store_inout_note'), $insert_inout_note, 'INSERT'); } } return true; }
$action_txt = $_LANG['move_out_in_succeed']; } $in_list_info = createSn('zb'); $insert_inout_list = array('inout_sn' => $in_list_info['inout_sn'], 'inout_status' => $out_row['inout_status'], 'store_id' => $store_id, 'adminer_id' => $store_user_in, 'inout_type' => $inout_type, 'inout_mode' => 2, 'takegoods_man' => $_SESSION['supplier_name'], 'today_sn' => $in_list_info['today_sn'], 'add_date' => $in_list_info['add_date'], 'add_time' => $in_time, 'move_id' => $out_row['move_id'], 'supplier_id' => $_SESSION['supplier_id'], 'store_type_id' => $_REQUEST[store_type_id]); $db->autoExecute($ecs->table('store_inout_list'), $insert_inout_list, 'INSERT'); $inout_rec_id = $db->insert_id(); //获取出库的商品并添加成为入库 $sql = "select * from " . $ecs->table('store_inout_goods') . ' where inout_rec_id=' . $out_row['rec_id']; $ret = $db->query($sql); while ($row = $db->fetchRow($ret)) { $in_goods = array('inout_rec_id' => $inout_rec_id, 'goods_sn' => $row['goods_sn'], 'goods_id' => $row['goods_id'], 'attr_value' => $row['attr_value'], 'inout_mode' => 2, 'number_yingshou' => $row['number_yingshou'], 'number_shishou' => $row['number_shishou'], 'supplier_id' => $row['supplier_id'], 'store_type_id' => $row['store_type_id']); $db->autoExecute($ecs->table('store_inout_goods'), $in_goods, 'INSERT'); unset($in_goods); } //入库商品库存变更 update_stock_in($inout_rec_id, $store_id); //插入入库单通过审核的日志或撤销后日志 $insert_inout_note = array('inout_rec_id' => $inout_rec_id, 'adminer_id' => $store_user_in, 'action_val' => $move_action, 'inout_status' => 3, 'inout_note' => $note, 'add_time' => $in_time, 'supplier_id' => $_SESSION['supplier_id'], 'store_type_id' => $_REQUEST[store_type_id]); $db->autoExecute($ecs->table('store_inout_note'), $insert_inout_note, 'INSERT'); $link[0]['text'] = $_LANG['back_list_move']; $link[0]['href'] = 'store_move.php?act=list&io=in'; clear_cache_files(); // 清除相关的缓存文件 sys_msg($action_txt, 0, $link); } elseif ($act == 'check_move_no') { $move_id = isset($_REQUEST['move_id']) && intval($_REQUEST['move_id']) > 0 ? intval($_REQUEST['move_id']) : 0; $move_status = isset($_REQUEST['move_status']) && intval($_REQUEST['move_status']) > 0 ? intval($_REQUEST['move_status']) : 0; $move_action = isset($_REQUEST['action_val']) && !empty($_REQUEST['action_val']) ? trim($_REQUEST['action_val']) : ''; $note = isset($_REQUEST['note']) && !empty($_REQUEST['note']) ? trim($_REQUEST['note']) : ''; if ($move_id <= 0) { sys_msg('非法操作!');