PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/includes/modules/orderPaymentModules/dotpay/module.php

https://github.com/kjavitz/SalesIgniter1
PHP | 215 lines | 155 code | 27 blank | 33 comment | 25 complexity | 19396221e395278ac9c357c944010d3b MD5 | raw file
  1. <?php
  2. class OrderPaymentDotpay extends StandardPaymentModule {
  3. public function __construct(){
  4. /*
  5. * Default title and description for modules that are not yet installed
  6. */
  7. $this->setTitle('Credit/Debit Card (via Dotpay)');
  8. $this->setDescription('Credit/Debit Card (via Dotpay)');
  9. $this->init('dotpay');
  10. if ($this->isEnabled() === true){
  11. $this->identifier = 'Dotpay';
  12. $this->setFormUrl('https://ssl.dotpay.eu/');
  13. }
  14. }
  15. function validatePost(){
  16. global $order, $orderTotalModules, $onePageCheckout, $currencies, $ShoppingCart;
  17. $userAccount = &Session::getReference('userAccount');
  18. if (!$onePageCheckout->isMembershipCheckout()){
  19. $order->createOrder();
  20. $order->insertOrderTotals();
  21. $order->insertStatusHistory();
  22. // initialized for the email confirmation
  23. $products_ordered = '';
  24. foreach ($ShoppingCart->getProducts() as $cartProduct) {
  25. $order->insertOrderedProduct($cartProduct, &$products_ordered);
  26. EventManager::notify('CheckoutProcessInsertOrderedProduct', $cartProduct, &$products_ordered);
  27. }
  28. EventManager::notify('CheckoutProcessPostProcess', &$order);
  29. //$order->sendNewOrderEmail();
  30. }else{
  31. $order->info['is_rental'] = '1';
  32. $order->info['bill_attempts'] = '1';
  33. $planID = $onePageCheckout->onePage['rentalPlan']['id'];
  34. $order->createOrder();
  35. if (isset($onePageCheckout->onePage['info']['account_action']) === true){
  36. if (isset($onePageCheckout->onePage['info']['payment'])){
  37. $paymentInfo = $onePageCheckout->onePage['info']['payment'];
  38. $rentalPlan = $onePageCheckout->onePage['rentalPlan'];
  39. $membershipMonths = $rentalPlan['months'];
  40. $membershipDays = $rentalPlan['days'];
  41. $numberOfRentals = $rentalPlan['no_of_titles'];
  42. $paymentTerm = $rentalPlan['pay_term'];
  43. $billPrice = tep_add_tax($rentalPlan['price'], $rentalPlan['tax_rate']);
  44. $nextBillDate = strtotime('+' . $membershipMonths . ' month +' . $membershipDays . ' day');
  45. if (isset($paymentTerm)){
  46. if ($paymentTerm == 'M'){
  47. $nextBillDate = strtotime('+1 month');
  48. }elseif ($paymentTerm == 'Y'){
  49. $nextBillDate = strtotime('+12 month');
  50. }
  51. }
  52. if ($rentalPlan['free_trial'] > 0){
  53. $freeTrialPeriod = $rentalPlan['free_trial'];
  54. $freeTrialEnds = time();
  55. if ($rentalPlan['free_trial'] > 0){
  56. $nextBillDate = strtotime('+'.$freeTrialPeriod.' day');
  57. $freeTrialEnds = strtotime('+'.$freeTrialPeriod.' day');
  58. }
  59. if ($freeTrialEnds > time() && $rentalPlan['free_trial_amount'] > 0){
  60. $billPrice = tep_add_tax($rentalPlan['free_trial_amount'], $rentalPlan['tax_rate']);
  61. }
  62. }
  63. $membership =& $userAccount->plugins['membership'];
  64. $membership->setPlanId($planID);
  65. $membership->setMembershipStatus('M');
  66. $membership->setActivationStatus('N');
  67. if (isset($freeTrialEnds)){
  68. $membership->setFreeTrailEnd($freeTrialEnds);
  69. }
  70. $membership->setNextBillDate($nextBillDate);
  71. $membership->setPaymentTerm($paymentTerm);
  72. $membership->setPaymentMethod($onePageCheckout->onePage['info']['payment']['id']);
  73. $membership->setRentalAddress($userAccount->plugins['addressBook']->getDefaultAddressId());
  74. if (!empty($paymentInfo['cardDetails']['cardNumber'])){
  75. $membership->setCreditCardNumber($paymentInfo['cardDetails']['cardNumber']);
  76. $membership->setCreditCardExpirationDate($paymentInfo['cardDetails']['cardExpMonth'] . $paymentInfo['cardDetails']['cardExpYear']);
  77. if (!empty($paymentInfo['cardDetails']['cardCvvNumber'])){
  78. $membership->setCreditCardCvvNumber($paymentInfo['cardDetails']['cardCvvNumber']);
  79. }
  80. }
  81. $membership->createNewMembership();
  82. }
  83. }
  84. $order->insertOrderTotals();
  85. $order->insertStatusHistory();
  86. $products_ordered = '';
  87. for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
  88. $order->insertMembershipProduct($order->products[$i], &$products_ordered);
  89. }
  90. EventManager::notify('CheckoutProcessPostProcess', &$order);
  91. //$order->sendNewOrderEmail();
  92. }
  93. if (isset($order->newOrder['orderID'])){
  94. $order_id = $order->newOrder['orderID'];
  95. }else{
  96. $order_id = '';
  97. }
  98. if (Session::exists('cartID')){
  99. Session::set('cart_DOTPAY_ID', Session::get('cartID') . '-' . $order_id);
  100. }else{
  101. return false;
  102. }
  103. return true;
  104. }
  105. function getHiddenFields(){
  106. global $order, $currencies, $userAccount, $onePageCheckout;
  107. //$userAccount = &Session::getReference('userAccount');
  108. $AddressBook =& $userAccount->plugins['addressBook'];
  109. $billingAddress = $AddressBook->getAddress('billing');
  110. $deliveryAddress = $AddressBook->getAddress('delivery');
  111. $my_order = sysConfig::get('STORE_NAME') . " - " . date('Ymdhis') ."\n";
  112. if (is_array($order->products)) {
  113. // echo 'ff'.print_r($order->products);
  114. foreach ($order->products as $pr => $ar) {
  115. if (is_array($ar)) { $my_order .= $ar['quantity']."x - ".$ar['name']." => ".$ar['model'].": ".$ar['final_price']." ".$order->info['currency']."\n"; }
  116. }
  117. if(isset($order->info['shipping_method']) && !empty($order->info['shipping_method'])){
  118. $my_order .= "+".$order->info['shipping_method'].": ".$order->info['shipping_cost']." ".$order->info['currency']."\n";
  119. }
  120. }
  121. $kwota = number_format($order->info['total']*$order->info['currency_value'], 2);
  122. $control = $kwota;
  123. $my_lang = tep_db_fetch_array(tep_db_query("select code from " . TABLE_LANGUAGES . " where languages_id = '" . Session::get('languages_id') . "'"));
  124. if ($my_lang['code'] == "pl"){
  125. $mytitle = "Zamowienie";
  126. } else {
  127. $mytitle = "Order";
  128. }
  129. //echo "saas". print_r($order);
  130. //echo '<br>'. $billingAddress['country']['title'];
  131. //echo
  132. // echo '<br/>'. print_r($onePageCheckout);
  133. //itwExit();
  134. $process_button_string = tep_draw_hidden_field('session_id', 'I'.'-'.$userAccount->getCustomerId() . '-'.$order->newOrder['orderID'] .'-'.($onePageCheckout->isMembershipCheckout()?'M':'') ) .
  135. tep_draw_hidden_field('lang', strtolower($my_lang['code'])) .
  136. tep_draw_hidden_field('pay', 'yes') .
  137. tep_draw_hidden_field('waluta', $order->info['currency']) .
  138. tep_draw_hidden_field('osC', '1') .
  139. tep_draw_hidden_field('id', $this->getConfigData('MODULE_PAYMENT_DOTPAY_ID')) .
  140. tep_draw_hidden_field('kanal', '0') .
  141. tep_draw_hidden_field('kwota', $kwota) .
  142. tep_draw_hidden_field('opis', sysConfig::get('STORE_NAME') . ' - ' . $mytitle . '-' . date('Ymdhis') ) .
  143. tep_draw_hidden_field('forename',$billingAddress['entry_firstname']) .
  144. tep_draw_hidden_field('surname', $billingAddress['entry_lastname']) .
  145. tep_draw_hidden_field('oscdesc', $my_order) .
  146. tep_draw_hidden_field('oscname', $deliveryAddress['entry_firstname'] . ' ' .$deliveryAddress['entry_lastname']) .
  147. tep_draw_hidden_field('deladdr', $AddressBook->formatAddress('delivery')) .
  148. tep_draw_hidden_field('street', $billingAddress['entry_street_address']) .
  149. tep_draw_hidden_field('street_n1', $billingAddress['entry_suburb']) .
  150. tep_draw_hidden_field('city', $billingAddress['entry_city']) .
  151. tep_draw_hidden_field('bill_state', $billingAddress['entry_state']) .
  152. tep_draw_hidden_field('postcode', $billingAddress['entry_postcode']) .
  153. tep_draw_hidden_field('country', tep_get_country_name($billingAddress['entry_country_id'])) .
  154. tep_draw_hidden_field('comments', $order->info['comments']) .
  155. tep_draw_hidden_field('p_info', sysConfig::get('STORE_NAME')) .
  156. tep_draw_hidden_field('phone', $onePageCheckout->onePage['info']['telephone']) .
  157. tep_draw_hidden_field('email', $onePageCheckout->onePage['info']['email_address']) .
  158. tep_draw_hidden_field('control', $control) .
  159. tep_draw_hidden_field('vmodule', '6.0.3') .
  160. tep_draw_hidden_field('URLC', tep_href_link('ext/modules/payment/dotpay/dotpay.php','','SSL')) .
  161. tep_draw_hidden_field('return_url', itw_app_link(null, 'checkout', 'success', 'SSL')) .
  162. tep_draw_hidden_field('cancel_return_url', itw_app_link(null,'checkout','default','SSL'));
  163. return $process_button_string;
  164. }
  165. function onInstall(){
  166. /*$check_query = tep_db_query("select orders_status_id from " . TABLE_ORDERS_STATUS . " where orders_status_name = 'Preparing [Dotpay]' limit 1");
  167. if (tep_db_num_rows($check_query) < 1){
  168. $status_query = tep_db_query("select max(orders_status_id) as status_id from " . TABLE_ORDERS_STATUS);
  169. $status = tep_db_fetch_array($status_query);
  170. $status_id = $status['status_id'] + 1;
  171. $languages = tep_get_languages();
  172. foreach ($languages as $lang){
  173. tep_db_query("insert into " . TABLE_ORDERS_STATUS . " (orders_status_id, language_id, orders_status_name) values ('" . $status_id . "', '" . $lang['id'] . "', 'Preparing [Dotpay]')");
  174. }
  175. }else{
  176. $check = tep_db_fetch_array($check_query);
  177. $status_id = $check['orders_status_id'];
  178. }
  179. $Qupdate = Doctrine_Query::create()
  180. ->update('ModulesConfiguration')
  181. ->set('configuration_value', '?', $status_id)
  182. ->where('configuration_key = ?', 'MODULE_PAYMENT_DOTPAY_PREPARE_ORDER_STATUS_ID')
  183. ->execute();*/
  184. }
  185. }
  186. ?>