divido.php (8393B)
1 <?php 2 class ControllerExtensionPaymentDivido extends Controller { 3 private $error = array(); 4 5 public function index() { 6 $this->load->language('extension/payment/divido'); 7 8 $this->document->setTitle($this->language->get('heading_title')); 9 10 $this->load->model('setting/setting'); 11 $this->load->model('extension/payment/divido'); 12 13 if ($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { 14 $this->model_setting_setting->editSetting('payment_divido', $this->request->post); 15 16 $this->session->data['success'] = $this->language->get('text_success'); 17 18 $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true)); 19 } 20 21 $data['entry_plans_options'] = array( 22 'all' => $this->language->get('entry_plans_options_all'), 23 'selected' => $this->language->get('entry_plans_options_selected'), 24 ); 25 26 $data['entry_products_options']= array( 27 'all' => $this->language->get('entry_products_options_all'), 28 'selected' => $this->language->get('entry_products_options_selected'), 29 'threshold' => $this->language->get('entry_products_options_threshold'), 30 ); 31 32 $data['button_save'] = $this->language->get('button_save'); 33 $data['button_cancel'] = $this->language->get('button_cancel'); 34 35 $this->load->model('localisation/order_status'); 36 37 $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); 38 39 if (isset($this->error['warning'])) { 40 $data['error_warning'] = $this->error['warning']; 41 } else { 42 $data['error_warning'] = ''; 43 } 44 45 $data['breadcrumbs'] = array(); 46 47 $data['breadcrumbs'][] = array( 48 'text' => $this->language->get('text_home'), 49 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) 50 ); 51 52 $data['breadcrumbs'][] = array( 53 'text' => $this->language->get('text_extension'), 54 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true) 55 ); 56 57 $data['breadcrumbs'][] = array( 58 'text' => $this->language->get('heading_title'), 59 'href' => $this->url->link('extension/payment/divido', 'user_token=' . $this->session->data['user_token'], true) 60 ); 61 62 $data['action'] = $this->url->link('extension/payment/divido', 'user_token=' . $this->session->data['user_token'], 'SSL'); 63 64 $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', 'SSL'); 65 66 if (isset($this->request->post['payment_divido_api_key'])) { 67 $data['payment_divido_api_key'] = $this->request->post['payment_divido_api_key']; 68 } else { 69 $data['payment_divido_api_key'] = $this->config->get('payment_divido_api_key'); 70 } 71 72 if (isset($this->request->post['payment_divido_order_status_id'])) { 73 $data['payment_divido_order_status_id'] = $this->request->post['payment_divido_order_status_id']; 74 } elseif ($this->config->get('payment_divido_order_status_id')) { 75 $data['payment_divido_order_status_id'] = $this->config->get('payment_divido_order_status_id'); 76 } else { 77 $data['payment_divido_order_status_id'] = 2; 78 } 79 80 if (isset($this->request->post['payment_divido_status'])) { 81 $data['payment_divido_status'] = $this->request->post['payment_divido_status']; 82 } else { 83 $data['payment_divido_status'] = $this->config->get('payment_divido_status'); 84 } 85 86 if (isset($this->request->post['payment_divido_sort_order'])) { 87 $data['payment_divido_sort_order'] = $this->request->post['payment_divido_sort_order']; 88 } else { 89 $data['payment_divido_sort_order'] = $this->config->get('payment_divido_sort_order'); 90 } 91 92 if (isset($this->request->post['payment_divido_title'])) { 93 $data['payment_divido_title'] = $this->request->post['payment_divido_title']; 94 } else { 95 $data['payment_divido_title'] = $this->config->get('payment_divido_title'); 96 } 97 98 if (isset($this->request->post['payment_divido_productselection'])) { 99 $data['payment_divido_productselection'] = $this->request->post['payment_divido_productselection']; 100 } else { 101 $data['payment_divido_productselection'] = $this->config->get('payment_divido_productselection'); 102 } 103 104 if (isset($this->request->post['payment_divido_price_threshold'])) { 105 $data['payment_divido_price_threshold'] = $this->request->post['payment_divido_price_threshold']; 106 } else { 107 $data['payment_divido_price_threshold'] = $this->config->get('payment_divido_price_threshold'); 108 } 109 110 if (isset($this->request->post['payment_divido_cart_threshold'])) { 111 $data['payment_divido_cart_threshold'] = $this->request->post['payment_divido_cart_threshold']; 112 } else { 113 $data['payment_divido_cart_threshold'] = $this->config->get('payment_divido_cart_threshold'); 114 } 115 116 if (isset($this->request->post['payment_divido_planselection'])) { 117 $data['payment_divido_planselection'] = $this->request->post['payment_divido_planselection']; 118 } else { 119 $data['payment_divido_planselection'] = $this->config->get('payment_divido_planselection'); 120 } 121 122 if (isset($this->request->post['payment_divido_plans_selected'])) { 123 $data['payment_divido_plans_selected'] = $this->request->post['payment_divido_plans_selected']; 124 } elseif ($this->config->get('payment_divido_plans_selected')) { 125 $data['payment_divido_plans_selected'] = $this->config->get('payment_divido_plans_selected'); 126 } else { 127 $data['payment_divido_plans_selected'] = array(); 128 } 129 130 if (isset($this->request->post['payment_divido_categories'])) { 131 $data['payment_divido_categories'] = $this->request->post['payment_divido_categories']; 132 } elseif ($this->config->get('payment_divido_categories')) { 133 $data['payment_divido_categories'] = $this->config->get('payment_divido_categories'); 134 } else { 135 $data['payment_divido_categories'] = array(); 136 } 137 138 $data['categories'] = array(); 139 140 $this->load->model('catalog/category'); 141 142 foreach ($data['payment_divido_categories'] as $category_id) { 143 $category_info = $this->model_catalog_category->getCategory($category_id); 144 145 if ($category_info) { 146 $data['categories'][] = array( 147 'category_id' => $category_info['category_id'], 148 'name' => ($category_info['path']) ? $category_info['path'] . ' > ' . $category_info['name'] : $category_info['name'] 149 ); 150 } 151 } 152 153 try { 154 $data['divido_plans'] = $this->model_extension_payment_divido->getAllPlans(); 155 } catch (Exception $e) { 156 $this->log->write($e->getMessage()); 157 $data['divido_plans'] = array(); 158 } 159 160 $data['user_token'] = $this->session->data['user_token']; 161 162 $data['header'] = $this->load->controller('common/header'); 163 $data['column_left'] = $this->load->controller('common/column_left'); 164 $data['footer'] = $this->load->controller('common/footer'); 165 166 $this->response->setOutput($this->load->view('extension/payment/divido', $data)); 167 } 168 169 170 public function order() { 171 if (!$this->config->get('payment_divido_status')) { 172 return null; 173 } 174 175 $this->load->model('extension/payment/divido'); 176 $this->load->language('extension/payment/divido'); 177 178 $order_id = $this->request->get['order_id']; 179 180 $lookup = $this->model_extension_payment_divido->getLookupByOrderId($order_id); 181 $proposal_id = null; 182 $application_id = null; 183 $deposit_amount = null; 184 if ($lookup->num_rows == 1) { 185 $lookup_data = $lookup->row; 186 $proposal_id = $lookup_data['proposal_id']; 187 $application_id = $lookup_data['application_id']; 188 $deposit_amount = $lookup_data['deposit_amount']; 189 } 190 191 $data['proposal_id'] = $proposal_id; 192 $data['application_id'] = $application_id; 193 $data['deposit_amount'] = $deposit_amount; 194 195 return $this->load->view('extension/payment/divido_order', $data); 196 } 197 198 public function install() { 199 $this->load->model('extension/payment/divido'); 200 $this->model_extension_payment_divido->install(); 201 } 202 203 public function uninstall() { 204 $this->load->model('extension/payment/divido'); 205 $this->model_extension_payment_divido->uninstall(); 206 } 207 208 protected function validate() { 209 if (!$this->user->hasPermission('modify', 'extension/payment/divido')) { 210 $this->error['warning'] = $this->language->get('error_permission'); 211 } 212 213 return !$this->error; 214 } 215 }