示例#1
0
文件: Store.php 项目: psykomo/kutump
 function isOrderPaid($orderId)
 {
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $rowOrder = $tblOrder->find($orderId)->current();
     if (!empty($rowOrder)) {
         if ($rowOrder->orderStatus == 3) {
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
示例#2
0
 public function sendReceiptToUser($orderId, $paymentMethod = '', $statusText = '')
 {
     $config = new Zend_Config_Ini(KUTU_ROOT_DIR . '/application/configs/mail.ini', 'general');
     $siteOwner = "Hukumonline";
     $siteName = $config->mail->sender->support->name;
     $contactEmail = $config->mail->sender->support->email;
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $rowOrder = $tblOrder->find($orderId)->current();
     $userId = $rowOrder->userId;
     //first check if orderId status is PAID, then send the email.
     switch ($rowOrder->orderStatus) {
         case 1:
             die('ORDER STATUS IS NOT YET PAID. CAN NOT SEND RECEIPT!.');
             break;
         case 3:
             $orderStatus = "PAID";
             break;
         case 5:
             $orderStatus = "POSTPAID PENDING";
             break;
         case 6:
             $orderStatus = "PAYMENT REJECTED";
             break;
         case 7:
             $orderStatus = "PAYMENT ERROR";
             break;
         default:
             $orderStatus = "PAYMENT ERROR";
             break;
     }
     $tblUser = new Kutu_Core_Orm_Table_User();
     $rowUser = $tblUser->find($userId)->current();
     $userEmail = $rowUser->email;
     $userFullname = $rowUser->fullName;
     switch (strtolower($paymentMethod)) {
         case 'paypal':
         case 'manual':
         case 'bank':
         case 'postpaid':
         default:
             $message = "\t\t\t\t\t\r\nDear {$userFullname},\r\n\r\nThis is a payment receipt for Invoice # {$rowOrder->invoiceNumber}\r\n\r\nTotal Amount: USD {$rowOrder->orderTotal}\r\nTransaction #:\r\nTotal Paid: USD {$rowOrder->orderTotal}\r\nStatus: {$orderStatus}\r\nYour payment method is: {$paymentMethod}\r\n\r\nYou may review your invoice history at any time by logging in to your account " . KUTU_ROOT_URL . "/store/payment/list\r\n\r\nNote: This email will serve as an official receipt for this payment.\r\n\r\nSalam,\r\n\r\nHukumonline\r\n\r\n==============================";
     }
     $this->send($config->mail->sender->support->email, $config->mail->sender->support->name, $userEmail, '', "Hukumonline Receipt Invoice# " . $rowOrder->invoiceNumber, $message);
 }
示例#3
0
 function viewinvoiceAction()
 {
     $orderId = $this->_request->getParam('orderId');
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $items = $tblOrder->getOrderDetail($orderId);
     $this->view->orderId = $orderId;
     $this->view->invoiceNumber = $items[0]['invoiceNumber'];
     $this->view->datePurchased = Kutu_Lib_Formater::get_date($items[0]['datePurchased']);
     $tblPaymentSetting = new Kutu_Core_Orm_Table_PaymentSetting();
     $rowTaxRate = $tblPaymentSetting->fetchRow("settingKey='taxRate'");
     if ($this->_user->kopel != $items[0]['userId']) {
         $this->_redirect(KUTU_ROOT_URL . '/store/cartempty');
     }
     $result = array();
     $result['subTotal'] = 0;
     for ($iCart = 0; $iCart < count($items); $iCart++) {
         $itemId = $items[$iCart]['itemId'];
         $qty = 1;
         $itemPrice = $items[$iCart]['price'];
         $result['items'][$iCart]['itemId'] = $itemId;
         $result['items'][$iCart]['item_name'] = $items[$iCart]['documentName'];
         $result['items'][$iCart]['itemPrice'] = $itemPrice;
         $result['items'][$iCart]['qty'] = $qty;
         $result['subTotal'] += $itemPrice * $qty;
     }
     $result['taxAmount'] = $result['subTotal'] * $rowTaxRate->settingValue / 100;
     $result['grandTotal'] = $result['subTotal'] + $result['taxAmount'];
     $this->view->cart = $result;
     $data = array();
     $data['taxNumber'] = $items[0]['taxNumber'];
     $data['taxCompany'] = $items[0]['taxCompany'];
     $data['taxAddress'] = $items[0]['taxAddress'];
     $data['taxCity'] = $items[0]['taxCity'];
     $data['taxZip'] = $items[0]['taxZip'];
     $data['taxProvince'] = $items[0]['taxProvince'];
     $data['taxCountry'] = $items[0]['taxCountryId'];
     $data['paymentMethod'] = $items[0]['paymentMethod'];
     $data['currencyValue'] = $items[0]['currencyValue'];
     $this->view->data = $data;
 }
示例#4
0
 public function instructionAction()
 {
     $orderId = $this->_request->getParam('orderId');
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $row = $tblOrder->find($orderId)->current();
     if (empty($row)) {
         die('NO ORDER DATA AVAILABLE');
     }
     //var_dump($rowset);
     $this->view->row = $row;
     $_SESSION['jCart'] = null;
 }
 public function deleteAction()
 {
     $model = new Kutu_Core_Orm_Table_Order();
     $row = $model->find(5);
     $row->delete();
 }
示例#6
0
 public function payconfirmAction()
 {
     $this->_checkAuth();
     //if there is orderId send by previous page
     $tmpOrderId = $this->_request->getParam('orderId');
     if (empty($tmpOrderId)) {
         $this->_helper->redirector->gotoSimple('error', 'store', 'site', array('view' => 'noorderfound'));
         die;
     }
     //[TODO]
     // 1. must check if user who sent the confirmation is the user who own the orderId.
     // 2. if no.1 above return false for at least one orderId, then forward to Error Page.
     $modelAppStore = new App_Model_Store();
     foreach ($this->_request->getParam('orderId') as $key => $value) {
         if (!$modelAppStore->isUserOwnOrder($this->_userDetailInfo->guid, $value)) {
             //forward to error page
             $this->_helper->redirector->gotoSimple('error', 'store', 'site', array('view' => 'notowner'));
             die;
         }
     }
     //if orderId status is PAID redirect to error page
     //die('here');
     $tblConfirm = new Kutu_Core_Orm_Table_PaymentConfirmation();
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $r = $this->getRequest();
     $amount = 0;
     //var_dump($r->getParam('orderId'));
     //die();
     foreach ($r->getParam('orderId') as $ksy => $value) {
         $amount += $tblOrder->getAmount($value, $r->getParam('currency'));
     }
     foreach ($r->getParam('orderId') as $key => $row) {
         $data = $tblConfirm->fetchNew();
         $data['paymentMethod'] = $r->getParam('paymentMethod');
         $data['destinationAccount'] = $r->getParam('destinationAccount');
         $data['paymentDate'] = $r->getParam('paymentDate');
         $data['amount'] = $amount;
         $data['currency'] = $r->getParam('currency');
         $data['senderAccount'] = $r->getParam('senderAccount');
         $data['senderAccountName'] = $r->getParam('senderAccountName');
         $data['bankName'] = $r->getParam('bankName');
         $data['note'] = $r->getParam('note');
         $data['orderId'] = $row;
         $data->save();
         $statdata['orderStatus'] = 4;
         $tblOrder->update($statdata, 'orderId = ' . $data['orderId']);
         $tblHistory = new Kutu_Core_Orm_Table_OrderHistory();
         //add history
         $dataHistory = $tblHistory->fetchNew();
         //history data
         $dataHistory['orderId'] = $data['orderId'];
         $dataHistory['orderStatusId'] = 6;
         $dataHistory['dateCreated'] = date('Y-m-d');
         $dataHistory['userNotified'] = 1;
         $dataHistory['note'] = 'Waiting Confirmation';
         $dataHistory->save();
         //$this->Mailer($data['orderId'], 'admin-confirm', 'admin');
         $mod = new App_Model_Store_Mailer();
         $mod->sendUserBankConfirmationToAdmin($data['orderId']);
     }
     $this->_helper->redirector->gotoSimple('confirm', 'store_payment', 'site', array('sended' => '1'));
 }
示例#7
0
    public function Mailer($idOrder, $key, $userTo)
    {
        $mail = new PaymentGateway_HtmlMail();
        $tblSetting = new Kutu_Core_Orm_Table_PaymentSetting();
        $template = $tblSetting->fetchAll($tblSetting->select()->where("settingKey = '{$key}'"));
        $tblOrder = new Kutu_Core_Orm_Table_Order();
        $tblOrderDetail = new Kutu_Core_Orm_Table_OrderDetail();
        $rowset = $tblOrder->getOrderAndStatus($idOrder);
        //echo '<pre>';
        //print_r($_SESSION['_orderIdNumber']);
        $rowsetDetail = $tblOrderDetail->fetchAll($tblOrderDetail->select()->where("orderId = " . $idOrder));
        $tblConfirm = new Kutu_Core_Orm_Table_PaymentConfirmation();
        $unConfirmed = $tblConfirm->fetchAll($tblConfirm->select()->where("confirmed =0 AND orderId = " . $idOrder));
        $detail = "ORDER ID : " . $idOrder . '<br/>' . 'Detail : <br/><blockquote><ol>';
        foreach ($rowsetDetail as $row) {
            $detail .= '<li><ul>
							<li>Document Name: ' . $row->documentName . '</li>
							<li>Quantity : ' . $row->qty . '</li>
							<li>Price : USD ' . number_format($row->price, 2) . ' </li>
							<li>Tax : ' . number_format($row->tax, 2) . ' %</li>
							<li>Final Price : ' . number_format($row->finalPrice, 2) . '</li>
							</ul></li>';
        }
        $detail .= '</ol></blockquote>';
        //$userId=$rowset[0]['userId'];
        //echo $userId;
        $auth = Zend_Auth::getInstance();
        $userId = $auth->getIdentity()->guid;
        $tblUser = new Kutu_Core_Orm_Table_User();
        $this->_userDetailInfo = $tblUser->find($userId)->current();
        $sMailSource = $template[0]->note;
        $tblSetting = new Kutu_Core_Orm_Table_PaymentSetting();
        $adminMail = $tblSetting->fetchAll($tblSetting->select()->where("settingKey = 'paypalBusiness'"));
        if ($userTo == 'admin') {
            $sMailEmailTo = $adminMail[0]->settingValue;
            //die($this->_userDetailInfo->email);
            $sMailEmailFrom = $this->_userDetailInfo->email;
            $link = '<a href="' . KUTU_ROOT_URL . '/admin/store/detailOrder/id/' . $idOrder . '">here</a>';
        } else {
            $sMailEmailTo = $this->_userDetailInfo->email;
            $sMailEmailFrom = $adminMail[0]->settingValue;
            $link = '<a href="' . KUTU_ROOT_URL . '/site/store_payment/detail/id/' . $idOrder . '">here</a>';
        }
        $sMailSubject = "Confirmation for user payment";
        $sMailHeader = '';
        $aMailDataSet = array('PAYMENTDATE' => @$unConfirmed[0]->paymentDate, 'PAYMENT' => $rowset[0]->paymentMethod, 'DESCRIPTION' => $detail, 'TOTALORDER' => $rowset[0]->orderTotal, 'ORDERTIME' => $rowset[0]->datePurchased, 'INVOICE' => $rowset[0]->invoiceNumber, 'METHOD' => $rowset[0]->paymentMethod, 'LINK' => $link);
        $mail->SendFileMail($sMailSource, $sMailEmailTo, $sMailSubject, $sMailEmailFrom, $sMailHeader, $aMailDataSet);
    }
示例#8
0
 private function saveOrder($cart, $method)
 {
     //[TODO] this value should be put into table KutuPaymentSetting
     $defaultCurrency = 'USD';
     $tblPaymentSetting = new Kutu_Core_Orm_Table_PaymentSetting();
     $usdIdrEx = $tblPaymentSetting->fetchRow(" settingKey= 'USDIDR'");
     $currencyValue = $usdIdrEx->settingValue;
     $rowTaxRate = $tblPaymentSetting->fetchRow("settingKey='taxRate'");
     $taxRate = $rowTaxRate->settingValue;
     //die($currencyValue);
     $auth = Zend_Auth::getInstance();
     $userId = $auth->getIdentity()->guid;
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $row = $tblOrder->fetchNew();
     $row->userId = $userId;
     //get value from post var (store/checkout.phtml)
     if ($this->getRequest()->getPost()) {
         $value = $this->getRequest()->getPost();
         // get posted value
         $row->taxNumber = $value['taxNumber'];
         $row->taxCompany = $value['taxCompany'];
         $row->taxAddress = $value['taxAddress'];
         $row->taxCity = $value['taxCity'];
         $row->taxZip = $value['taxZip'];
         $row->taxProvince = $value['taxProvince'];
         $row->taxCountryId = $value['taxCountry'];
         $row->paymentMethod = $method;
     }
     $row->datePurchased = date('YmdHis');
     $row->orderStatus = 1;
     //pending
     $row->currency = $defaultCurrency;
     $row->currencyValue = $currencyValue;
     $row->orderTotal = $cart['grandTotal'];
     $row->orderTax = $cart['taxAmount'];
     $row->ipAddress = $this->getRealIpAddress();
     /*echo '<pre>';
     		//print_r($row);
     		echo '</pre>';*/
     $orderId = $row->save();
     //$orderId = $tblOrder->getLastInsertId();
     $rowJustInserted = $tblOrder->find($orderId)->current();
     $rowJustInserted->invoiceNumber = date('Ymd') . '.' . $orderId;
     $rowJustInserted->save();
     $this->view->invoiceNumber = $rowJustInserted->invoiceNumber;
     $tblOrderDetail = new Kutu_Core_Orm_Table_OrderDetail();
     for ($iCart = 0; $iCart < count($cart['items']); $iCart++) {
         $rowDetail = $tblOrderDetail->fetchNew();
         $itemId = $cart['items'][$iCart]['itemId'];
         $rowDetail->orderId = $orderId;
         $rowDetail->itemId = $itemId;
         $rowDetail->documentName = $cart['items'][$iCart]['item_name'];
         $rowDetail->price = $cart['items'][$iCart]['itemPrice'];
         $itemPrice = $rowDetail->price;
         @($rowDetail->tax = ($cart['grandTotal'] - $cart['subTotal']) / $cart['subTotal'] * 100);
         $rowDetail->qty = $cart['items'][$iCart]['qty'];
         $rowDetail->finalPrice = $itemPrice + $itemPrice * $taxRate / 100;
         $rowDetail->save();
     }
     //[TODO] MUST ALSO INSERT/UPDATE KutuUserFinance
     return $orderId;
 }
示例#9
0
文件: Mailer.php 项目: psykomo/kutump
 public function sendPaypalCompleteNotificationToUser($orderId)
 {
     $config = new Zend_Config_Ini(KUTU_ROOT_DIR . '/application/configs/mail.ini', 'general');
     $sOrderId = '';
     $tblUser = new Kutu_Core_Orm_Table_User();
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     $rowOrder = $tblOrder->find($orderId)->current();
     $userId = $rowOrder->userId;
     $rowUser = $tblUser->find($userId)->current();
     $userEmail = $rowUser->email;
     $userFullname = $rowUser->firstname . ' ' . $rowUser->lastname;
     $message = "\t\t\t\t\t\nYour Paypal payment for item(s) with Order ID {$sOrderId} has been completely proceed.\n\nnow you can continue to <a href=\"" . KUTU_ROOT_URL . "/site/store_payment/document\">download the document(s)</a> or just continue <a href=\"" . KUTU_ROOT_URL . "/dms\">browsing our database</a>..\n\n==============================";
     $sFile = "sendPaypalCompleteNotificationToUser.log";
     $content = "SENDER : " . $config->mail->sender->support->email . "\n";
     $content .= "NAME : " . $config->mail->sender->support->name . "\n";
     $content .= "RECIPIENT : " . $userEmail;
     $content .= "MESSAGE : [LGS ONLINE] Receipt Invoice# " . $rowOrder->invoiceNumber . $message . "\n";
     $this->logThisMail($sFile, $content);
     $this->send($config->mail->sender->support->email, $config->mail->sender->support->name, $userEmail, '', "[LGS ONLINE] Paypal Payment Complete ", $message);
 }
示例#10
0
 public function xlAction()
 {
     //print_r($this->_request->getParams());
     $where = $this->_request->getParam('where');
     $name = $this->_request->getParam('name');
     $tblOrder = new Kutu_Core_Orm_Table_Order();
     if ($name == 'Order') {
         $data = array();
         $dataset = $tblOrder->getAllOrderSummaryAdmin($where);
         //var_dump($dataset);
         //$data[] = array("A1" => "No","B1" => "Detail");
         for ($i = 0; $i < count($dataset); $i++) {
             $data[] = array("No" => $i + 1, "Description" => "User ID : " . $dataset[$i]->userId . "\n" . "Invoice : " . $dataset[$i]->invoiceNumber . "\n" . "First Name : " . $dataset[$i]->firstname . "\n" . "Last Name : " . $dataset[$i]->lastname . "\n" . "Company : " . $dataset[$i]->company, "Payment Method" => $dataset[$i]->paymentMethod, "Purchasing Date" => strftime("%Y-%m-%d", strtotime($dataset[$i]->datePurchased)), "Order Status" => $dataset[$i]->ordersStatus, "Total Price" => $dataset[$i]->orderTotal, "Qty" => $dataset[$i]->countTotal);
         }
     } elseif ($name == 'Transaction') {
         $data = array();
         $dataset = $tblOrder->getAllOrderSummaryAdmin($where);
         //var_dump($dataset);
         //$data[] = array("A1" => "No","B1" => "Detail");
         for ($i = 0; $i < count($dataset); $i++) {
             $data[] = array("No" => $i + 1, "Description" => "User ID : " . $dataset[$i]->userId . "\n" . "Invoice : " . $dataset[$i]->invoiceNumber . "\n" . "First Name : " . $dataset[$i]->firstname . "\n" . "Last Name : " . $dataset[$i]->lastname . "\n" . "Company : " . $dataset[$i]->company, "Payment Method" => $dataset[$i]->paymentMethod, "Purchasing Date" => strftime("%Y-%m-%d", strtotime($dataset[$i]->datePurchased)), "Modified Date" => !empty($dataset[$i]->lastModified) ? strftime("%Y-%m-%d", strtotime($dataset[$i]->lastModified)) : 'undefined', "Order Status" => $dataset[$i]->ordersStatus, "Total Price" => $dataset[$i]->orderTotal, "Qty" => $dataset[$i]->countTotal);
         }
     } elseif ($name == 'Paypal') {
         $data = array();
         $dataset = $tblOrder->getAllOrderSummaryAdmin($where);
         //var_dump($dataset);
         //$data[] = array("A1" => "No","B1" => "Detail");
         for ($i = 0; $i < count($dataset); $i++) {
             $data[] = array("No" => $i + 1, "Description" => "User ID : " . $dataset[$i]->userId . "\n" . "Invoice : " . $dataset[$i]->invoiceNumber . "\n" . "First Name : " . $dataset[$i]->firstname . "\n" . "Last Name : " . $dataset[$i]->lastname . "\n" . "Company : " . $dataset[$i]->company, "Payment Method" => $dataset[$i]->paymentMethod, "Purchasing Date" => strftime("%Y-%m-%d", strtotime($dataset[$i]->datePurchased)), "Modified Date" => !empty($dataset[$i]->lastModified) ? strftime("%Y-%m-%d", strtotime($dataset[$i]->lastModified)) : 'undefined', "Order Status" => $dataset[$i]->ordersStatus, "Total Price" => $dataset[$i]->orderTotal, "Qty" => $dataset[$i]->countTotal);
         }
     }
     $this->_helper->layout->disableLayout();
     $this->_helper->layout->setLayout('excell');
     //print_r($data);
     $xls = new PaymentGateway_ExcelExport();
     /*$data_array[]=array('A' => 'A1','B' => 'B1','C' => 'C1');
     		$data_array[]=array('A' => 'A2','B' => 'B2','C' => 'C2');*/
     $xls->toExcell($data, $name . '-' . date('Y-m-d'));
 }