Exemplo n.º 1
0
 /**
  * 经销商物流退款-未收货
  */
 public function actionReturnposts()
 {
     $this->pageTitle = Yii::app()->name . '-' . "付款";
     $returnID = $_GET['returnID'];
     if ($returnID) {
         $lists[] = 1;
         $model = PapReturnOrder::model()->updateBypk($returnID, array('Status' => 4, 'PayMethod' => 2));
         if ($model) {
             $list = PapReturnGoods::model()->findAll("ReturnID=:ID", array(":ID" => $returnID));
             foreach ($list as $v) {
                 if (!in_array($v['OrderID'], $lists)) {
                     $model = PapOrder::model()->updateByPk($v['OrderID'], array("ReturnStatus" => 4));
                     $lists[] = $v['OrderID'];
                 }
             }
             //更改待审核提醒为已操作
             RemindService::updateRemindStatus($returnID, 4);
         }
         $this->redirect(array('Index'));
     } else {
         throw new CHttpException(404, '页面不存在');
     }
 }
Exemplo n.º 2
0
 public static function sendOrder($params, $ID, $OrganID)
 {
     $sql = "select * from pap_order t where t.SellerID = {$OrganID} and t.IsDelete=0 and Status=2 and t.ID in({$ID})";
     $model = Yii::app()->papdb->createCommand($sql)->queryAll();
     if (!$model) {
         return array('error' => 4, 'msg' => '发货失败,请稍后再试!');
     }
     $goodsid = explode(',', $params['goodsid']);
     $pn = explode('|', $params['PN']);
     $idarr = explode(',', $ID);
     if (count($model) != count($idarr)) {
         return array('error' => 1, 'msg' => '发货失败,请稍后再试!');
     }
     foreach ($model as $v) {
         // 如果是支付宝订单,则调用确认收货接口
         $isAlipay = false;
         $alipayResult = false;
         $alipayError = "";
         $paymentMethod = $v['Payment'];
         if ($paymentMethod == '1') {
             $isAlipay = true;
             // 订单交易号是否存在
             if (!$v['AlipayTN']) {
                 return array('error' => 2, 'msg' => '订单支付信息错误');
                 Yii::app()->end();
             }
             $payment = Yii::app()->alipay;
             // 确认收货请求参数
             $request = new AlipaySendConfirmRequest();
             $request->trade_no = $v['AlipayTN'];
             if ($params['ShipSn']) {
                 $request->invoice_no = $params['ShipSn'];
             }
             $request->logistics_name = $params['ShipLogis'];
             $request->transport_type = "EXPRESS";
             // var_dump($request).'<br>';
             //建立请求
             $html_text = $payment->buildRequestHttp($request);
             //解析XML
             //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
             $doc = new DOMDocument();
             $doc->loadXML($html_text);
             if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) {
                 $alipay = $doc->getElementsByTagName("alipay")->item(0);
                 //echo $alipay->nodeValue;
                 $is_success = $alipay->getElementsByTagName("is_success")->item(0)->nodeValue;
                 if ($is_success == 'T') {
                     $alipayResult = true;
                 } else {
                     $alipayResult = false;
                     $alipayError = $alipay->getElementsByTagName("error")->item(0)->nodeValue;
                 }
             }
             // 记录日志
             $userId = Yii::app()->user->id;
             $payment->put_send_goods_log($v, $request->getParams(), $html_text, $alipayResult, $userId);
         }
         // 如果是支付宝,并且支付宝接口返回成功  或者 不是支付宝,保存物流信息
         $bool = false;
         if (!$isAlipay || $isAlipay && $alipayResult) {
             $bool = PapOrder::model()->updateByPk($v['ID'], array('Status' => 3, 'UpdateTime' => time(), 'DeliveryTime' => time(), 'ShipSn' => $params['ShipSn'], 'ShipLogis' => $params['ShipLogis'], 'PayStatus' => $isAlipay === true ? 'WAIT_BUYER_CONFIRM_GOODS' : ''));
             if ($bool) {
                 //更新待发货提醒状态
                 RemindService::updateRemindStatus($v['ID'], 2, $v['SellerID']);
                 //待收货提醒给修理厂
                 $params = array('OrganID' => $v['BuyerID'], 'OrganType' => 3, 'HandleID' => $v['ID']);
                 $params['type'] = array('name' => 'DD', 'key' => 2);
                 RemindService::sendRemind($params, $v);
             }
         } else {
             return array('error' => 3, 'msg' => '支付宝接口繁忙,请重新发货!');
         }
     }
     //订单商品
     if ($goodsid && $pn) {
         foreach ($goodsid as $k => $v) {
             if (preg_match('/^[A-Za-z0-9][A-Za-z0-9,,-]*$/', $pn[$k])) {
                 PapOrderGoods::model()->updateByPk($v, array('PN' => $pn[$k], 'UpdateTime' => time()));
             }
         }
     }
     return array('success' => 1);
     //$userid = RemindService::getUserID($model[0]['BuyerID']);
     // return array('success' => 1, 'userid' => $userid);
 }
Exemplo n.º 3
0
 /**
  *    响应嘉配订单支付通知
  *
  *    @author    Garbin
  *    @param     int    $order_id
  *    @param     array  $notify_result
  *    @return    bool
  */
 public static function respondNotify($order_id, $notify_result)
 {
     $where = "ID = {$order_id}";
     //$data = array('RefundStatus' => $notify_result['trade_status']);
     //   $orderdata=array('ReturnStatus'=>'1','Status' => $notify_result['target']);
     switch ($notify_result['target']) {
         case RORDER_READY:
             $where .= ' AND Status <= ' . RORDER_PENDING;
             $data['AlipayTN'] = $notify_result['trade_no'];
             $data['Status'] = RORDER_READY;
             break;
         case RORDER_PENDING:
             // 付款, 待发货
             $where .= ' AND Status <= ' . RORDER_PENDING;
             $data['AlipayTN'] = $notify_result['trade_no'];
             $data['Status'] = RORDER_PENDING;
             $data['CreateTime'] = time();
             //更改提醒状态为已操作
             $returninfo = PapReturnOrder::model()->findByPk($order_id);
             RemindService::updateRemindStatus($order_id, 4, $returninfo['DealerID']);
             //发送待发货提醒给修理厂
             $params = array('OrganID' => $returninfo['ServiceID'], 'OrganType' => 3, 'HandleID' => $order_id);
             $params['type'] = array('name' => 'THD', 'key' => 5);
             RemindService::sendRemind($params, $returninfo);
             break;
         case RORDER_ACCEPTED:
             // 待收货
             $where .= ' AND Status <= ' . RORDER_ACCEPTED;
             $where .= ' AND Status >= ' . RORDER_PENDING;
             $data['Status'] = RORDER_ACCEPTED;
             $data['DeliveryTime'] = time();
             break;
         case RORDER_ABNORMAL:
             //已收货,完成
             $where .= ' AND Status <= ' . RORDER_ABNORMAL;
             $where .= ' AND Status >= ' . RORDER_ACCEPTED;
             $data['Status'] = RORDER_ABNORMAL;
             $return = PapReturnGoods::model()->find('ReturnID=:returnID', array(':returnID' => $order_id));
             if ($return) {
                 $orderID = $return['OrderID'];
                 if ($orderID) {
                     $wheres = "ID = {$orderID}";
                     PapOrder::model()->updateAll(array('ReturnStatus' => 4), $wheres);
                 }
             }
             break;
             //            case RORDER_READY_PAYPAL://退款 待付款
             //                  $where .= ' AND Status = ' . RORDER_READY_PAYPA;
             //                  $data['Status']=RORDER_READY_PAYPAL;
             //                  break;
             //            case RORDER_PAYPAL_FINISHED://退款完成
             //                  $where .= ' AND Status =' .RORDER_PAYPAL_FINISHED;
             //                  $data['Status']=RORDER_PAYPAL_FINISHED;
             //                  break;
     }
     //PapReturnOrder::model()->updateByPk($order_id,$data)
     //PapReturnOrder::model()->updateAll($data, $where)
     if (PapReturnOrder::model()->updateAll($data, $where)) {
         return true;
     } else {
         return false;
     }
 }
Exemplo n.º 4
0
 public static function confirmgoods($orderid)
 {
     $update = PapOrder::model()->updateByPk($orderid, array('Status' => '9', 'PayTime' => time(), 'ReceiptTime' => time(), 'UpdateTime' => time()), 'IsDelete=0');
     if ($update) {
         //更新待收货提醒状态
         RemindService::updateRemindStatus($orderid, 2);
         //嘉配积分
         $order = PapOrder::model()->findByPk($orderid);
         $Param = array();
         if ($order) {
             $Param['OrderID'] = $orderid;
             //订单ID
             $Param['OrganID'] = $order['BuyerID'];
             //购买方机构ID
             $Param['TotalAmount'] = $order['TotalAmount'];
             //订单总金额
             self::saveIntegral($Param);
         }
     }
     return $update;
 }
Exemplo n.º 5
0
 public function actionCancelOrder()
 {
     $orderid = Yii::app()->request->getParam('orderid');
     $OrganID = Yii::app()->user->getOrganID();
     $result = PapOrder::model()->updateByPk($orderid, array('Status' => '10', 'UpdateTime' => time()), "BuyerID = {$OrganID} and ((Payment=1 and Status=1) or (Payment=2 and Status=2))");
     if ($result) {
         //更改待付款、待发货提醒状态
         RemindService::updateRemindStatus($orderid, '1,2', $OrganID = 'no');
         echo json_encode(array('success' => '1'));
     } else {
         echo json_encode(array('error' => '1', 'msg' => '取消订单失败,请稍后再试!'));
     }
 }
Exemplo n.º 6
0
 public function actionAddreturnorder()
 {
     if (!$_POST['Goods']) {
         $this->redirect(array('index'));
     }
     $goodsArr = explode(',', $_POST['Goods']);
     $sql = 'insert into `pap_return_goods` values';
     $idStr = '(';
     foreach ($goodsArr as $v) {
         $g = explode('-', $v);
         $idStr .= $g[0] . ',';
         //(455,
         if (!$g[6]) {
             //如果该商品版本就空
             $g[6] = 'NULL';
         }
         $sql .= "(NULL,{$g['0']},{$g['1']},'ReturnID',{$g['2']},{$g['3']},{$g['4']},'',{$g['5']},{$g['6']}),";
     }
     $idStr = substr($idStr, 0, -1) . ')';
     $c = new CDbCriteria();
     $c->addCondition("ID in {$idStr} and ReturnStatus=0", 'AND');
     $m = PapOrder::model()->findAll($c);
     if (!$m) {
         echo json_encode(array('error' => '提交退货单失败,请先刷新订单列表!'));
         exit;
     }
     $organID = Yii::app()->user->getOrganID();
     $model = new PapReturnOrder();
     $model->ReturnNO = 'THD' . ReturnorderService::gen_order_sn();
     $model->DealerID = $m[0]['SellerID'];
     $model->ServiceID = $organID;
     $model->Status = 1;
     //待审核
     $model->CreateTime = time();
     $model->Price = $_POST['Price'];
     $model->LogtigCompany = '顺丰';
     $model->Result = $_POST['Reseaon'];
     $model->Type = $m[0]['Status'] == 9 ? 2 : 1;
     $model->ReturnNumber = 1;
     $model->save();
     if (!$model->save()) {
         echo json_encode(array('error' => '提交退货单失败,请稍后再试!'));
         exit;
     }
     $id = $model->attributes['ID'];
     $editSql = "update `pap_order` set ReturnStatus=1 where ID in {$idStr}";
     $sql = str_replace('ReturnID', $id, substr($sql, 0, -1));
     //        echo $sql;
     //        exit;
     $ins = Yii::app()->papdb->createCommand($sql)->execute();
     $edt = Yii::app()->papdb->createCommand($editSql)->execute();
     //更新待收货提醒状态
     RemindService::updateRemindStatus($idStr, 2, $organID);
     //发送待审核提醒给经销商
     $params = array('OrganID' => $model['DealerID'], 'OrganType' => 2, 'HandleID' => $id);
     $params['type'] = array('name' => 'THD', 'key' => 4);
     RemindService::sendRemind($params);
     if ($ins && $edt) {
         echo json_encode(array('success' => 1));
     }
 }