mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
299 lines
12 KiB
PHP
299 lines
12 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
|
||
class ome_ctl_admin_reship extends desktop_controller{
|
||
var $name = "退货单";
|
||
var $workground = "invoice_center";
|
||
|
||
function index(){
|
||
$this->finder('ome_mdl_reship',array(
|
||
'title' => '退货单管理',
|
||
'use_buildin_new_dialog' => false,
|
||
'use_buildin_set_tag'=>false,
|
||
'use_buildin_recycle'=>false,
|
||
'use_buildin_export'=>false,
|
||
'use_buildin_import'=>false,
|
||
'use_buildin_filter'=>true,
|
||
));
|
||
}
|
||
|
||
|
||
/**
|
||
* @sunjing@shopex.cn
|
||
* @DateTime 2017-12-20T09:57:40+0800
|
||
*
|
||
* 换货订单生成
|
||
* @return
|
||
*/
|
||
function create_change_order($reship_id){
|
||
|
||
$reshipobj = app::get('ome')->model('reship');
|
||
$reship_detail = $reshipobj->dump(array('reship_id'=>$reship_id,'is_check'=>'1','return_type'=>'change','change_order_id'=>0),'change_order_id,return_id,reship_bn,reship_id');
|
||
|
||
//$tmall_detail = kernel::single('ome_service_aftersale')->get_return_type(array('return_id'=>$reship_detail['return_id']));
|
||
//if ($tmall_detail && $reship_detail && $tmall_detail['refund_type'] == 'change'){
|
||
|
||
//check
|
||
if ($reship_detail){
|
||
$this->pagedata['reship_detail'] = $reship_detail;
|
||
$this->pagedata['reship_id'] = $reship_detail['reship_id'];
|
||
unset($reship_detail);
|
||
$this->display('admin/return_product/rchange/create_change_order.html');
|
||
}else{
|
||
echo '无换货订单需要生成!';exit;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 生成换货订单
|
||
*
|
||
*/
|
||
public function do_create_change_order($reship_id){
|
||
|
||
$reshipObj= app::get('ome')->model('reship');
|
||
$orderObj = app::get('ome')->model('orders');
|
||
$reshipLib = kernel::single('ome_reship');
|
||
$oOperation_log = $this->app->model('operation_log');
|
||
|
||
$reship_detail = $reshipObj->dump(array('reship_id'=>$reship_id,'change_order_id'=>0),'*');
|
||
|
||
$order_detail = $orderObj->dump(array('order_id'=>$reship_detail['order_id']),'order_bn');
|
||
$result = array('rsp'=>'fail','msg'=>'创建失败!');
|
||
if ($reship_detail){
|
||
$rs = $reshipObj->create_order($reship_detail);
|
||
if ($rs){
|
||
|
||
//kernel::single('console_reship')->change_freezeproduct($reship_id,'-',$reship_detail['changebranch_id']);//生成订单后释放库存
|
||
//库存管控 生成订单后释放库存
|
||
kernel::single('console_reship')->releaseChangeFreeze($reship_id);
|
||
|
||
$oOperation_log->write_log('reship@ome',$reship_id,'新建换货订单,换货订单号:'.$rs['order_bn']);
|
||
$order = array(
|
||
'order_id' => $rs['order_id'],
|
||
'shop_id' => $reship_detail['shop_id'],
|
||
'pay_status' => '1',
|
||
'pay_money' => $rs['total_amount'],
|
||
'currency' => 'CNY',
|
||
'reship_order_bn' => $order_detail['order_bn'],
|
||
);
|
||
|
||
$reshipLib->payChangeOrder($order);
|
||
|
||
$result = array('rsp'=>'succ','msg'=>'换货订单创建成功');
|
||
}
|
||
}
|
||
echo json_encode($result);
|
||
|
||
}
|
||
|
||
/**
|
||
* 退货拒绝留言.
|
||
* @param
|
||
* @return
|
||
* @access public
|
||
* @author sunjing@shopex.cn
|
||
*/
|
||
function refuse_message($reship_id=null)
|
||
{
|
||
set_time_limit(0);
|
||
if ($_POST) {
|
||
$this->begin();
|
||
$reshipObj = $this->app->model('reship');
|
||
$refuse_message = $_POST['refuse_message'];
|
||
|
||
$return_id = $_POST['return_id'];
|
||
$reship_id = $_POST['reship_id'];
|
||
|
||
if ($_FILES['refuse_proof']['size']<=0) {
|
||
$this->end(false,'请上传凭证图片!');
|
||
}
|
||
$return_model = $this->app->model('return_product_tmall');
|
||
$return_tmall = $return_model->dump(array('return_id' => $return_id));
|
||
|
||
|
||
|
||
if($_FILES['refuse_proof']['size'] != 0){
|
||
if ($_FILES ['refuse_proof'] ['size'] > 512000) {
|
||
$this->end(false,'上传文件不能超过500K!');
|
||
}
|
||
|
||
$type = $type = array ('gif','jpg','png');
|
||
$imgext = strtolower ( $this->fileext ( $_FILES ['refuse_proof'] ['name'] ) );
|
||
if ($_FILES['refuse_proof'] ['name'])
|
||
if (! in_array ( $imgext, $type )) {
|
||
$text = implode ( ",", $type );
|
||
$this->end(false,"您只能上传以下类型文件{$text}!");
|
||
}
|
||
$ss = kernel::single ( 'base_storager' );
|
||
$id = $ss->save_upload ( $_FILES ['refuse_proof'], "file", "", $msg ); //返回file_id;
|
||
$refuse_memo['image'] = $ss->getUrl ( $id, "file" );
|
||
|
||
$rh = fopen($_FILES['refuse_proof']['tmp_name'],'rb');
|
||
$imagebinary = fread($rh, filesize($_FILES['refuse_proof']['tmp_name']));
|
||
fclose($rh);
|
||
$imagebinary = base64_encode($imagebinary);
|
||
|
||
}
|
||
|
||
|
||
$aftersale_service = kernel::single('ome_service_aftersale');
|
||
$data = array(
|
||
'leave_message' => $refuse_message,
|
||
'leave_message_pics'=> $imagebinary,
|
||
'dispute_id' => $return_tmall['return_bn'],
|
||
'seller_refuse_reason_id'=>$_POST['seller_refuse_reason_id'],
|
||
);
|
||
|
||
$rs = $aftersale_service->returngoods_refuse($data);
|
||
$reship_detail = $reshipObj->dump(array('reship_id'=>$reship_id),'reship_bn,return_type,is_check,branch_id,changebranch_id,reship_id');
|
||
if ($reship_detail['is_check'] == '1'){
|
||
$wms_id = kernel::single('ome_branch')->getWmsIdById($reship_detail['branch_id']);
|
||
$branch = kernel::single('ome_branch')->getBranchInfo($reship_detail['branch_id'], 'branch_bn,storage_code,owner_code');
|
||
$data = array(
|
||
'reship_bn' => $reship_detail['reship_bn'],
|
||
'branch_bn' => $branch['branch_bn'],
|
||
'reship_id' => $reship_detail['reship_id'],
|
||
);
|
||
$result = kernel::single('console_event_trigger_reship')->cancel($wms_id, $data, true);
|
||
|
||
}
|
||
$oOperation_log = app::get('ome')->model('operation_log');//写日志
|
||
|
||
if (!$rs || $rs['rsp'] == 'fail' || ($result &&$result['rsp']=='fail')) {
|
||
$oOperation_log->write_log('return@ome',$return_id,'拒绝确认收货失败,原因:'.$rs['msg']);
|
||
$this->end(false,$rs['msg']);
|
||
}
|
||
//更新退货单状态
|
||
$reshipObj->update(array('is_check'=>'5','t_end'=>time()),array('reship_id'=>$reship_id));
|
||
|
||
//判断是否是已确认拒绝如果是需要释放冻结库存
|
||
kernel::single('console_reship')->releaseChangeFreeze($reship_id);
|
||
|
||
$memo = '拒绝确认收货';
|
||
if($return_id){
|
||
$oOperation_log->write_log('return@ome',$return_id,$memo);
|
||
$data = array ('return_id' => $return_id, 'status' => '5', 'last_modified' => time () );
|
||
$oProduct = app::get('ome')->model ( 'return_product' );
|
||
$oProduct->update_status ( $data );
|
||
}
|
||
$oOperation_log->write_log('reship@ome',$reship_id,$memo);
|
||
|
||
$this->end(true,'成功');
|
||
}
|
||
$reshipObj = app::get('ome')->model('reship');
|
||
$reship_detail = $reshipObj->dump(array('reship_id'=>$reship_id),'return_id');
|
||
|
||
$return_id = $reship_detail['return_id'];
|
||
|
||
$aftersaleObj = kernel::single('ome_service_aftersale');
|
||
$return_tmall_detail =$aftersaleObj->get_return_type(array('return_id' => $return_id));
|
||
if ($return_tmall_detail['refund_type'] == 'change'){
|
||
//$refuse_reason = $return_tmall_detail['refusereason'];
|
||
if ($refuse_reason){
|
||
$refuse_reason = json_decode($refuse_reason,true);
|
||
}else{
|
||
$refuse_reason = $aftersaleObj->refuse_reason($return_id);
|
||
}
|
||
$this->pagedata['refuse_reason'] = $refuse_reason;
|
||
}
|
||
$this->pagedata['reship_id'] = $reship_id;
|
||
$this->pagedata['return_id'] = $return_id;
|
||
$this->pagedata['finder_id'] = $_GET['finder_id'];
|
||
$this->display('admin/reship/refuse_message.html');
|
||
}
|
||
|
||
function fileext($filename) {
|
||
return substr ( strrchr ( $filename, '.' ), 1 );
|
||
}
|
||
|
||
/**
|
||
* @sunjing@shopex.cn
|
||
* @DateTime 2017-12-28T18:44:46+0800
|
||
* @return
|
||
*/
|
||
|
||
public function force_refuse($reship_id){
|
||
|
||
if(!$reship_id)
|
||
die("单据号传递错误!");
|
||
$reshipObj = app::get('ome')->model('reship');
|
||
$reship = $reshipObj->dump(array('reship_id'=>$reship_id),'reship_bn,return_id,return_type,changebranch_id,is_check,change_status,reship_id');
|
||
|
||
if($reship){
|
||
|
||
console_reship::cancel($reship,'强制取消');
|
||
|
||
$oOperation_log = app::get('ome')->model('operation_log');//写日志
|
||
if($reship['return_id']){
|
||
$oOperation_log->write_log('return@ome',$reship['return_id'],$memo);
|
||
$data = array ('return_id' => $reship['return_id'], 'status' => '5', 'last_modified' => time () );
|
||
$oProduct = app::get('ome')->model ( 'return_product' );
|
||
$oProduct->update_status ( $data );
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 关闭换货订单状态
|
||
* @author: <sunjing@shopex.cn>
|
||
* @Date:2018-05-03
|
||
* @return bool
|
||
*/
|
||
function close_change($reship_id){
|
||
|
||
$this->begin('javascript:finderGroup["'.$_GET['finder_id'].'"].refresh();');
|
||
$reship_id = intval($reship_id);
|
||
$reshipObj = app::get('ome')->model('reship');
|
||
$finder_id = $_GET['finder_id'];
|
||
|
||
$oOperation_log = app::get('ome')->model('operation_log');//写日志
|
||
$result = $reshipObj->update(array('change_status'=>'2'),array('reship_id'=>$reship_id,'change_status'=>'0'));
|
||
$oOperation_log->write_log('reship@ome',$reship_id,'关闭换货单生成');
|
||
if($result){
|
||
$res = kernel::single('console_reship')->releaseChangeFreeze($reship_id);
|
||
if ($res[0]) {
|
||
$oOperation_log->write_log('reship@ome', $reship_id, '关闭换货单生成后释放预占');
|
||
$this->end(true,'关闭换货单成功!');
|
||
} else {
|
||
$this->end(false,'关闭换货单失败:'.$res[1]['msg']);
|
||
}
|
||
}else{
|
||
$this->end(false,'关闭换货单失败');
|
||
}
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* 添加memo
|
||
* @param mixed $reship_id ID
|
||
* @return mixed 返回值
|
||
*/
|
||
public function addmemo($reship_id){
|
||
|
||
$this->pagedata['reship_id'] = $reship_id;
|
||
$this->display('admin/reship/memo.html');
|
||
}
|
||
|
||
/**
|
||
* doaddmemo
|
||
* @return mixed 返回值
|
||
*/
|
||
public function doaddmemo(){
|
||
$this->begin('javascript:finderGroup["'.$_GET['finder_id'].'"].refresh();');
|
||
$reship_id = intval($_POST['reship_id']);
|
||
$reshipObj = app::get('ome')->model('reship');
|
||
$logMdl = app::get('ome')->model('operation_log');//写日志
|
||
$memo = $_POST['memo'];
|
||
$result = $reshipObj->update(array('memo'=>$_POST['memo']),array('reship_id'=>$reship_id));
|
||
$logMdl->write_log('reship@ome',$reship_id,'添加退货备注:'.$memo.'');
|
||
$this->end(true,'备注添加成功!');
|
||
}
|
||
}
|
||
|
||
?>
|