Пример #1
0
 public function Safarcallback($PSTData, $GETData)
 {
     //parsian gateway
     if (isset($GETData['au'], $GETData['rs'])) {
         $t = new Transaction();
         $trans = $t->get_by_au($GETData['au']);
         if ($trans && $GETData['rs'] == 0) {
             $totalamont = $trans['amount'];
             //var_dump($trans);exit;
             $u = new user();
             $guest = $u->Get_Guest_ID();
             //get invoice
             $invoice = new Invoice();
             $invc_num = $invoice->get_by_transID($trans['id']);
             //var_dump($invc_num);exit;
             //check tranaction by PaymentEnquiry
             $gt = new ParsianGateway(Parsian_PIN);
             //confirm reservation
             $ctrl = new HotelController();
             //if ($confirm) {
             if (true) {
                 $confirm = array('voucher' => '101010', 'Reference' => '202020');
                 //var_dump($confirm);exit;
                 //if ($gt->PaymentEnquiry($GETData['au'], $GETData['rs'])) {
                 if (TRUE) {
                     //add paydoc
                 } else {
                     require 'safarheader.php';
                     echo "<script>" . "jQuery(document).ready(function(\$) {" . "jQuery('.err-body').html('Reservation Final Error ');" . "jQuery('#error-modal').modal();" . "});" . "</script>";
                     require 'safarfooter.php';
                     return FALSE;
                 }
                 //chang inoice status
                 $invoice->submit($invc_num, $confirm['voucher'], $confirm['Reference']);
                 $pd = new Paydoc();
                 if (isset($_SESSION['user']['id'])) {
                     $current_credit = $u->getcredit($_SESSION['user']['id'], 'IRR');
                     $remain = $current_credit - $totalamont;
                     if ($pd->Save($_SESSION['user']['id'], -1, $totalamont, $invc_num, 'IRR')) {
                         $u->change_credit($_SESSION['user']['id'], 'IRR', $remain);
                     }
                 } else {
                     $pd->Save($guest, -1, $totalamont, $invc_num, 'IRR');
                 }
                 $psgr = new passenger();
                 //var_dump($psgr);exit;
                 $rmmm = new InvoiceDetail();
                 $inv = new Invoice();
                 $transfer_data = $inv->get_Tranfer_Data($invc_num);
                 //print_r($transfer_data);exit;
                 //$invc_num
                 $variable = array();
                 $variable['voucher'] = $confirm['voucher'];
                 $variable['invoce_data'] = $invoice->get_By_id($invc_num);
                 $variable['passengers'] = $psgr->getByInvoice($invc_num);
                 $variable['rooms'] = $rmmm->getByInvoice($invc_num);
                 $variable['transfer'] = $transfer_data;
                 if ($variable) {
                     foreach ($variable as $k => $v) {
                         ${$k} = $v;
                     }
                 }
                 require 'safarheader.php';
                 require 'View/hotel/receipt.php';
                 require 'safarfooter.php';
             } else {
                 require 'safarheader.php';
                 echo "<script>" . "jQuery(document).ready(function(\$) {" . "jQuery('.err-body').html('متاسفانه در تکمیل خرید خطایی رخ داد ');" . "jQuery('#error-modal').modal();" . "});" . "</script>";
                 require 'safarfooter.php';
                 return FALSE;
             }
             //add paydoc
         } else {
             if ($GETData['rs'] == 1) {
                 require 'safarheader.php';
                 echo "<script>" . "jQuery(document).ready(function(\$) {" . "jQuery('.err-body').html('تراکنش  ناموفق ');" . "jQuery('#error-modal').modal();" . "});" . "</script>";
                 require 'safarfooter.php';
             } else {
                 require 'safarheader.php';
                 echo "<script>" . "jQuery(document).ready(function(\$) {" . "jQuery('.err-body').html('شماره تراکنش اشتباه است ');" . "jQuery('#error-modal').modal();" . "});" . "</script>";
                 require 'safarfooter.php';
             }
             return FALSE;
         }
     } else {
         //err for now
         require 'safarheader.php';
         echo "<script>" . "jQuery(document).ready(function(\$) {" . "jQuery('.err-body').html('شماره تراکنش اشتباه است ');" . "jQuery('#error-modal').modal();" . "});" . "</script>";
         require 'safarfooter.php';
         return FALSE;
     }
 }
 public function checkout()
 {
     $cartModel = new Cart();
     //Check cart is not empty
     $cartData = $cartModel->getCount();
     if ($cartData <= 0) {
         $this->Session->setFlash('Your cart is empty, please back to homepage to shopping.', 'default', array(), 'success');
         $this->redirect(array('controller' => 'carts', 'action' => 'view'));
     }
     //Check and save Customer data to database
     if ($this->request->is('post') && !empty($this->request->data)) {
         $this->Customer->create();
         if ($this->Customer->save($this->request->data)) {
             $customerId = $this->Customer->getLastInsertID();
             //Save data to "invoices" table
             $invoiceModel = new Invoice();
             $invoiceData = array();
             $invoiceData['Invoice']['customer_id'] = $customerId;
             $invoiceData['Invoice']['order_date'] = date('Y-d-m H:i:s', strtotime('+1day'));
             $foodModel = new Food();
             $cartArray = $cartModel->readFood();
             $totalPrice = $foodModel->getTotalPriceByCart($cartArray);
             $invoiceData['Invoice']['total_price'] = $totalPrice;
             $invoiceData['Invoice']['note'] = $this->request->data['Customer']['note'];
             $invoiceData['Invoice']['price_temp'] = $totalPrice;
             $invoiceData['Invoice']['price_refund'] = 0;
             $invoiceData['Invoice']['payment_type'] = 'Cash';
             if ($invoiceModel->save($invoiceData)) {
                 $invoiceId = $invoiceModel->getLastInsertID();
                 //Save data to "invoice_details" table
                 foreach ($cartArray as $foodId => $amount) {
                     $invoiceDetailModel = new InvoiceDetail();
                     $invoiceDetailData = array();
                     $invoiceDetailData['InvoiceDetail']['invoice_id'] = $invoiceId;
                     $invoiceDetailData['InvoiceDetail']['food_id'] = $foodId;
                     $invoiceDetailData['InvoiceDetail']['amount'] = $amount;
                     $foodData = $foodModel->getFoodDataById($foodId);
                     $invoiceDetailData['InvoiceDetail']['price'] = $foodData['Food']['price'];
                     $invoiceDetailData['InvoiceDetail']['is_choose'] = 0;
                     $invoiceDetailModel->save($invoiceDetailData);
                 }
                 //Set invoice_id to session after insert data to "invoices" table
                 CakeSession::write('invoice_id', $invoiceId);
                 //Remove cart ordered
                 $cartModel->resetCart();
                 $this->Session->setFlash('Thanks for your ordered.', 'default', array(), 'success');
                 $this->redirect(array('controller' => 'customers', 'action' => 'order'));
             }
         } else {
             $this->Session->setFlash('Please input correct data.', 'default', array(), 'error');
         }
     }
     //Show carts list
     $carts = $cartModel->readFood();
     $foods = array();
     if (null != $carts) {
         foreach ($carts as $foodId => $count) {
             $foodModel = new Food();
             $food = $foodModel->read(null, $foodId);
             $food['Food']['count'] = $count;
             $foods[] = $food;
         }
     }
     $this->set(compact('foods'));
 }
 public function executeGenerateInvoice(sfWebRequest $request)
 {
     $purchase = Doctrine_Query::create()->from('Purchase p')->where('p.id = ' . $request->getParameter('id'))->fetchOne();
     //create purchase
     $invoice = new Invoice();
     $invoice->setInvno(date('h:i:s a'));
     $invoice->setCustomerId(2);
     //cash
     $invoice->setIsTemporary(2);
     //new
     $invoice->setDate(date("Y-m-d"));
     $invoice->save();
     //create purchase details
     foreach ($purchase->getPurchasedetail() as $purchdetail) {
         $invdetail = new InvoiceDetail();
         $invdetail->setInvoiceId($invoice->getId());
         $invdetail->setProductId($purchdetail->getProductId());
         $invdetail->setDescription($purchdetail->getProduct()->getName());
         $invdetail->setQty($purchdetail->getQty());
         $invdetail->setPrice(0);
         $invdetail->setTotal(0);
         $invdetail->setUnittotal(0);
         $invdetail->save();
         $invdetail->updateStockentry();
     }
     $this->redirect("invoice/view?id=" . $invoice->getId());
 }
Пример #4
0
 }
 $invoice->total = $totalamont;
 $invoice->currency = $_SESSION['currency_unit'];
 $invoice->voucher = '';
 $invoice->reference = $result;
 $invoice->date_in = $_SESSION['date-in'];
 $invoice->date_out = $_SESSION['date-out'];
 $invoice->hotel = 0;
 $invoice->description = json_encode($passengers);
 $invoice->status = 0;
 $invc_num = $invoice->Save();
 //var_dump($_POST['invoice']);exit;
 if ($invc_num) {
     // add invoice detail
     foreach ($_POST['invoice'] as $detail) {
         $invcdtl = new InvoiceDetail();
         $invcdtl->invoice = $invc_num;
         $invcdtl->room = $detail['id'];
         $invcdtl->room_title = '';
         $invcdtl->adult = 0;
         $invcdtl->child = 0;
         $invcdtl->amount = $detail['price'];
         $invcdtl->save();
     }
 } else {
     $app = new AppController();
     $app->Erro('متاسفانه درتکمیل   فرآیند  خطایی رخ داد');
 }
 if ($_POST['paymentype'] == 'parsian') {
     $gt = new ParsianGateway(Parsian_PIN);
     $st = $gt->PinPaymentRequest($totalamont, time(), Base_URL . '?controller=bank&action=callback');