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()); }
} $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');