Пример #1
0
 /**
  * function to cancel order
  *
  * @return redirect url
  */
 public function destroy($id = null)
 {
     //1.  ambil data order detail dari API
     $APIUser = new APIUser();
     $me_order_detail = $APIUser->getMeOrderDetail(['user_id' => Session::get('whoami')['id'], 'order_id' => $id]);
     if ($me_order_detail['status'] != 'success') {
         \App::abort(404);
     }
     //2.  Set status cancel
     $me_order_detail['data']['status'] = 'canceled';
     //3.  Store order
     $order = $APIUser->postMeOrder($me_order_detail['data']);
     //4. Check order
     if ($order['status'] != 'success') {
         $this->errors = $order['message'];
     } else {
         $infos = [];
         foreach ($this->balin['info'] as $key => $value) {
             $infos[$value['type']] = $value['value'];
         }
         $mail = new APISendMail();
         $result = $mail->cancelorder($order['data'], $infos);
         if (isset($result['message'])) {
             $this->errors = $result['message'];
         }
     }
     //5. Generate view
     $this->page_attributes->success = "Pesanan Anda sudah dibatalkan.";
     return $this->generateRedirectRoute('my.balin.profile');
 }
 /**
  * resend sale
  * 
  * @return redirect
  */
 public function sale($id = 0, $status = '')
 {
     $APISale = new APISale();
     $result = $APISale->getShow($id);
     if ($result['status'] != 'success') {
         $this->errors = $result['message'];
     }
     $type = 'Email';
     $mail = new APISendMail();
     switch ($status) {
         case 'wait':
             $mail->invoice($result['data'], $this->balininfo());
             $type = 'Invoice';
             break;
         case 'paid':
             $mail->paidorder($result['data'], $this->balininfo());
             $type = 'Validasi Pembayaran';
             break;
         case 'shipping':
             $mail->shippingorder($result['data'], $this->balininfo());
             $type = 'Nota Pengiriman';
             break;
         case 'delivered':
             $mail->deliveredorder($result['data'], $this->balininfo());
             $type = 'Konfirmasi Pesanan Delivered';
             break;
         case 'canceled':
             $mail->cancelorder($result['data'], $this->balininfo());
             $type = 'Konfirmasi Pembatalan Pesanan';
             break;
         case 'abandoned':
             $mail->abandoned($result['data'], $this->balininfo());
             $type = 'Email Pengingat';
             break;
         default:
             $this->errors = 'Status tidak valid';
             break;
     }
     $this->page_attributes->success = $type . " sudah di kirim ";
     $from = Input::get('from');
     if ($from != null) {
         return Redirect::to($from)->with('msg', 'Email pengingat berhasil dikirim.')->with('msg-type', 'success');
     }
     return $this->generateRedirectRoute('report.product.sale', ['id' => $id]);
 }