mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-10 00:15:32 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -14,17 +14,11 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
{
|
||||
public $name = "退款单";
|
||||
public $workground = "finance_center";
|
||||
|
||||
/**
|
||||
* index
|
||||
* @param mixed $is_jingxiao is_jingxiao
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function index($is_jingxiao = false)
|
||||
{
|
||||
$base_filter = array();
|
||||
@@ -51,6 +45,11 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
'submit' => 'index.php?app=ome&ctl=admin_refund_apply&act=batchAgreeRefund&view=' . $_GET['view'],
|
||||
'target' => "dialog::{width:700,height:490,title:'批量退款'}",
|
||||
),
|
||||
'refundonly' => array(
|
||||
'label' => '确认为仅退款',
|
||||
'submit' => 'index.php?app=ome&ctl=admin_refund_apply&act=batchRefundOnly&view=' . $_GET['view'],
|
||||
'target' => "dialog::{width:700,height:490,title:'确认为仅退款'}",
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
@@ -63,10 +62,18 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$action[] = $buttonList['accept'];
|
||||
$action[] = $buttonList['refuse'];
|
||||
$action[] = $buttonList['agree'];
|
||||
$action[] = $buttonList['refundonly'];
|
||||
break;
|
||||
case '3':
|
||||
$action[] = $buttonList['refuse'];
|
||||
$action[] = $buttonList['agree'];
|
||||
$action[] = $buttonList['refundonly'];
|
||||
break;
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
$action[] = $buttonList['refundonly'];
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -104,20 +111,12 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* jingxiao
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function jingxiao()
|
||||
{
|
||||
$is_jingxiao = true;
|
||||
return $this->index($is_jingxiao);
|
||||
}
|
||||
|
||||
/**
|
||||
* _views
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function _views()
|
||||
{
|
||||
$mdl_refund_apply = $this->app->model('refund_apply');
|
||||
@@ -161,12 +160,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
return $sub_menu;
|
||||
}
|
||||
|
||||
/**
|
||||
* request
|
||||
* @param mixed $order_id ID
|
||||
* @param mixed $return_id ID
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function request($order_id, $return_id = 0)
|
||||
{
|
||||
$result = kernel::single('ome_refund_apply')->show_refund_html($order_id, $return_id);
|
||||
@@ -177,11 +170,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* accept
|
||||
* @param mixed $apply_id ID
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function accept($apply_id)
|
||||
{
|
||||
$url = "index.php?ctl=admin_refund_apply&act=accept&app=ome&p[0]=" . $apply_id;
|
||||
@@ -245,7 +233,11 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$_POST['shop_id'] = $order_detail['shop_id'];
|
||||
$_POST['return_id'] = $apply_detail['return_id'];
|
||||
$_POST['oid'] = $apply_detail['oid'];
|
||||
|
||||
$_POST['product_data'] = $apply_detail['product_data'];
|
||||
|
||||
// 补充reship_id, 用于判断是否退货退款
|
||||
$_POST['reship_id'] = $apply_detail['reship_id'];
|
||||
|
||||
//检查当前订单的状态,标记天猫售前退款的取消发货标记
|
||||
if (in_array($order_detail['process_status'], array('unconfirmed', 'confirmed'))) {
|
||||
$_POST['cancel_dly_status'] = 'SUCCESS';
|
||||
@@ -372,6 +364,7 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$refunddata['status'] = "succ"; #支付状态
|
||||
$refunddata['memo'] = $apply_detail['memo'];
|
||||
$refunddata['org_id'] = $apply_detail['org_id'];
|
||||
$refunddata['product_data'] = $apply_detail['product_data'];
|
||||
|
||||
$oRefund->save($refunddata);
|
||||
|
||||
@@ -398,7 +391,16 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
if ($is_full_refund) {
|
||||
kernel::single('ome_order_order')->fullRefund_order_revoke($apply_detail['order_id']);
|
||||
}
|
||||
|
||||
kernel::single('ome_refund_apply')->updateOrderObjectsPayStatusByItemIds($apply_id);
|
||||
// 增加service扩展点,允许外部service在退款成功后做自定义处理
|
||||
$services = kernel::servicelist('ome.service.refund.apply.accept.refund.after');
|
||||
if ($services) {
|
||||
foreach ($services as $service) {
|
||||
if (method_exists($service, 'after_refund')) {
|
||||
$service->after_refund($apply_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->end(true, '申请退款成功', 'index.php?app=ome&ctl=admin_refund_apply&act=index');
|
||||
}
|
||||
}
|
||||
@@ -465,12 +467,11 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
|
||||
/*add by hujie 添加退款申请*/
|
||||
|
||||
public function showRefund()
|
||||
{
|
||||
if ($_POST) {
|
||||
|
||||
$source_url = $_POST['back_url'];
|
||||
$error_msg = '';
|
||||
|
||||
if ($source_url != 'order_confirm') {
|
||||
$begin_url = "index.php?ctl=admin_refund_apply&act=request&app=ome&p[0]=" . $_POST['order_id'];
|
||||
@@ -488,7 +489,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$is_update_order = true; //是否更新订单付款状态
|
||||
$return = kernel::single('ome_refund_apply')->createRefundApply($_POST, $is_update_order, $error_msg);
|
||||
if (!$return) {
|
||||
|
||||
//创建失败
|
||||
if ($source_url != 'order_confirm') {
|
||||
$this->end(false, $error_msg, $back_url);
|
||||
@@ -496,7 +496,15 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$this->end(false, $error_msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 订单支付状态发生变化
|
||||
// [更新]预约订单的相关状态
|
||||
$orderSdf = [
|
||||
'order_id' => $_POST['order_id'],
|
||||
'pay_status' => '6', //退款申请中
|
||||
];
|
||||
kernel::single('ome_order_reservation')->operateReservationOrder($orderSdf, $error_msg);
|
||||
|
||||
//创建成功
|
||||
if ($source_url != 'order_confirm') {
|
||||
$this->end(true, $return['msg'], $back_url);
|
||||
@@ -506,10 +514,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* do_export
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function do_export()
|
||||
{
|
||||
$selected = $_POST['apply_id'];
|
||||
@@ -665,11 +669,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* file_download2
|
||||
* @param mixed $apply_id ID
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function file_download2($apply_id)
|
||||
{
|
||||
$oProduct = $this->app->model('return_product');
|
||||
@@ -897,10 +896,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
|
||||
//批量更新
|
||||
/**
|
||||
* ajax_batch
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function ajax_batch()
|
||||
{
|
||||
set_time_limit(0);
|
||||
@@ -919,12 +914,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
|
||||
//更新退款单状态
|
||||
/**
|
||||
* do_updateApply
|
||||
* @param mixed $apply_id ID
|
||||
* @param mixed $status status
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function do_updateApply($apply_id, $status)
|
||||
{
|
||||
$oRefund_apply = app::get('ome')->model('refund_apply');
|
||||
@@ -937,10 +926,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
}
|
||||
|
||||
//批量同步退款申请单状态
|
||||
/**
|
||||
* batch_get_refund_detial
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function batch_get_refund_detial()
|
||||
{
|
||||
$oRefund_apply = app::get('ome')->model('refund_apply');
|
||||
@@ -1306,6 +1291,8 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
//生成售后单
|
||||
kernel::single('sales_aftersale')->generate_aftersale($apply_id, 'refund');
|
||||
}
|
||||
// 调用方法更新order_objects表的pay_status
|
||||
kernel::single('ome_refund_apply')->updateOrderObjectsPayStatusByItemIds($apply_id);
|
||||
|
||||
$operation_log_obj->write_log('refund_accept@ome', $refund_data['refund_id'], "退款成功,生成退款单" . $refund_data['refund_bn']);
|
||||
if (!empty($return_id)) {
|
||||
@@ -1313,16 +1300,73 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$Oreturn_product = $this->app->model('return_product');
|
||||
$Oreturn_product->update_status($return_data);
|
||||
}
|
||||
// 增加service扩展点,允许外部service在退款成功后做自定义处理
|
||||
$services = kernel::servicelist('ome.service.refund.apply.accept.refund.after');
|
||||
if ($services) {
|
||||
foreach ($services as $service) {
|
||||
if (method_exists($service, 'after_refund')) {
|
||||
$service->after_refund($apply_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->end(true, app::get('base')->_('申请退款成功'), 'index.php?app=ome&ctl=admin_refund_apply&act=index');
|
||||
}
|
||||
|
||||
/**
|
||||
* intercept
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function batchRefundOnly() {
|
||||
$model = app::get('ome')->model('refund_apply');
|
||||
$baseFilter = array('status|nequal' => '0', 'disabled' => 'false', );
|
||||
$pageData = array(
|
||||
'billName' => '退款申请单',
|
||||
'request_url' => $this->url.'&act=dealBatchRefundOnly',
|
||||
'maxProcessNum' => 20,
|
||||
'close' => true
|
||||
);
|
||||
$this->pagedata['notice'] = '设置仅退款后,不发起发货单拦截!';
|
||||
$this->selectToPageRequest($model, $pageData, $baseFilter);
|
||||
}
|
||||
|
||||
public function dealBatchRefundOnly() {
|
||||
$ids = explode(';', $_POST['ajaxParams']);
|
||||
$retArr = array(
|
||||
'total' => count($ids),
|
||||
'succ' => 0,
|
||||
'fail' => 0,
|
||||
'fail_msg' => array()
|
||||
);
|
||||
$model = app::get('ome')->model('refund_apply');
|
||||
$rows = $model->getList('apply_id,refund_apply_bn,bool_type,reship_id', array('apply_id'=>$ids));
|
||||
foreach ($rows as $row) {
|
||||
if($row['bool_type'] & ome_refund_bool_type::__ONLY_REFUND) {
|
||||
continue;
|
||||
}
|
||||
if($row['reship_id'] > 0) {
|
||||
$retArr['fail']++;
|
||||
$retArr['fail_msg'][] = ['obj_bn'=>$row['refund_apply_bn'],'msg'=>'有退货单,不能仅退款!'];
|
||||
continue;
|
||||
}
|
||||
$upData = [
|
||||
'bool_type' => ome_refund_bool_type::__ONLY_REFUND | $row['bool_type']
|
||||
];
|
||||
$rs = $model->update($upData, ['apply_id'=>$row['apply_id'], 'bool_type'=>$row['bool_type']]);
|
||||
if(is_bool($rs)) {
|
||||
$retArr['fail']++;
|
||||
$retArr['fail_msg'][] = ['obj_bn'=>$row['refund_apply_bn'],'msg'=>'仅退款状态更新失败!'];
|
||||
continue;
|
||||
}
|
||||
app::get('ome')->model('operation_log')->write_log('refund_apply@ome', $row['apply_id'], "设置仅退款");
|
||||
foreach(kernel::servicelist('ome.service.refund.apply.refundonly.after') as $object) {
|
||||
if(method_exists($object, 'after_refund_only')){
|
||||
$object->after_refund_only($row['apply_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
$retArr['succ'] = $retArr['total'] - $retArr['fail'];
|
||||
echo json_encode($retArr);
|
||||
}
|
||||
|
||||
public function intercept() {
|
||||
$apply_id = (int) $_POST['apply_id'];
|
||||
$refund_version = $_POST['refund_version'];
|
||||
@@ -1336,10 +1380,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
echo json_encode($rsp);
|
||||
}
|
||||
|
||||
/**
|
||||
* negotiatereturnRender
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function negotiatereturnRender() {
|
||||
$apply_id = (int) $_POST['apply_id'];
|
||||
$refund_version = $_POST['refund_version'];
|
||||
@@ -1355,10 +1395,6 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$this->display('admin/refund/negotiatereturn.html');
|
||||
}
|
||||
|
||||
/**
|
||||
* negotiatereturn
|
||||
* @return mixed 返回值
|
||||
*/
|
||||
public function negotiatereturn() {
|
||||
$sdf = [
|
||||
'refund_id' => $_POST['refund_id'],
|
||||
@@ -1378,6 +1414,27 @@ class ome_ctl_admin_refund_apply extends desktop_controller
|
||||
$this->splash('success', $this->url, '操作成功');
|
||||
}
|
||||
|
||||
public function transfer_reship($apply_id) {
|
||||
$url = $this->url.'&act=index';
|
||||
|
||||
// 获取退款申请详情
|
||||
$refundApplyModel = app::get('ome')->model('refund_apply');
|
||||
$refundApply = $refundApplyModel->db_dump(['apply_id' => $apply_id], '*');
|
||||
|
||||
if (!$refundApply) {
|
||||
$this->splash('error', $url, '退款申请不存在');
|
||||
}
|
||||
|
||||
// 调用qzRefundToLJRK方法
|
||||
$result = kernel::single('console_reship')->qzRefundToLJRK($refundApply);
|
||||
|
||||
if ($result[0] === false) {
|
||||
$this->splash('error', $url, $result[1]['msg']);
|
||||
}
|
||||
|
||||
$this->splash('success', $url, '转退货单成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 商家协商页面(退款申请单)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user