shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

ebay_profile.php (16711B)


      1 <?php
      2 class ControllerExtensionOpenbayEbayProfile extends Controller {
      3 	private $error = array();
      4 
      5 	public function profileAll() {
      6 		$data = $this->load->language('extension/openbay/ebay_profile');
      7 
      8 		$this->load->model('extension/openbay/ebay_profile');
      9 
     10 		$this->document->setTitle($data['heading_title']);
     11 		$this->document->addScript('view/javascript/openbay/js/faq.js');
     12 
     13 		if (isset($this->session->data['error'])) {
     14 			$data['error_warning'] = $this->session->data['error'];
     15 			unset($this->session->data['error']);
     16 		} else {
     17 			$data['error_warning'] = '';
     18 		}
     19 
     20 		if (isset($this->session->data['success'])) {
     21 			$data['success'] = $this->session->data['success'];
     22 			unset($this->session->data['success']);
     23 		} else {
     24 			$data['success'] = '';
     25 		}
     26 
     27 		$data['add'] = $this->url->link('extension/openbay/ebay_profile/add', 'user_token=' . $this->session->data['user_token'], true);
     28 		$data['types'] = $this->model_extension_openbay_ebay_profile->getTypes();
     29 		$data['profiles'] = $this->model_extension_openbay_ebay_profile->getAll();
     30 		$data['user_token'] = $this->session->data['user_token'];
     31 
     32 		$data['breadcrumbs'] = array();
     33 
     34 		$data['breadcrumbs'][] = array(
     35 			'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
     36 			'text' => $this->language->get('text_home'),
     37 		);
     38 
     39 		$data['breadcrumbs'][] = array(
     40 			'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
     41 			'text' => $this->language->get('text_openbay'),
     42 		);
     43 
     44 		$data['breadcrumbs'][] = array(
     45 			'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
     46 			'text' => $this->language->get('text_ebay'),
     47 		);
     48 
     49 		$data['breadcrumbs'][] = array(
     50 			'href' => $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true),
     51 			'text' => $this->language->get('heading_title'),
     52 		);
     53 
     54 		$data['header'] = $this->load->controller('common/header');
     55 		$data['column_left'] = $this->load->controller('common/column_left');
     56 		$data['footer'] = $this->load->controller('common/footer');
     57 
     58 		$this->response->setOutput($this->load->view('extension/openbay/ebay_profile_list', $data));
     59 
     60 	}
     61 
     62 	public function add() {
     63 		$this->load->model('extension/openbay/ebay_profile');
     64 
     65 		$data = $this->load->language('extension/openbay/ebay_profile');
     66 
     67 		$data['btn_save'] = $this->url->link('extension/openbay/ebay_profile/add', 'user_token=' . $this->session->data['user_token'], true);
     68 		$data['cancel'] = $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true);
     69 
     70 		if (!isset($this->request->post['step1'])) {
     71 			if ($this->request->post && $this->profileValidate()) {
     72 				$this->session->data['success'] = $data['text_added'];
     73 
     74 				$this->model_extension_openbay_ebay_profile->add($this->request->post);
     75 
     76 				$this->response->redirect($this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true));
     77 			}
     78 		}
     79 
     80 		$this->profileForm($data);
     81 	}
     82 
     83 	public function delete() {
     84 		$this->load->model('extension/openbay/ebay_profile');
     85 
     86 		if (!$this->user->hasPermission('modify', 'extension/openbay/ebay_profile')) {
     87 			$this->error['warning'] = $this->language->get('error_permission');
     88 		} else {
     89 			if (isset($this->request->get['ebay_profile_id'])) {
     90 				$this->model_extension_openbay_ebay_profile->delete($this->request->get['ebay_profile_id']);
     91 			}
     92 		}
     93 
     94 		$this->response->redirect($this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true));
     95 	}
     96 
     97 	public function edit() {
     98 		$this->load->model('extension/openbay/ebay_profile');
     99 
    100 		$data = $this->load->language('extension/openbay/ebay_profile');
    101 
    102 		if ($this->request->post && $this->profileValidate()) {
    103 			$this->session->data['success'] = $data['text_updated'];
    104 
    105 			$this->model_extension_openbay_ebay_profile->edit($this->request->post['ebay_profile_id'], $this->request->post);
    106 
    107 			$this->response->redirect($this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true));
    108 		}
    109 
    110 		$this->profileForm($data);
    111 	}
    112 
    113 	public function profileForm($data) {
    114 		$this->load->model('extension/openbay/ebay');
    115 		$this->load->model('extension/openbay/ebay_template');
    116 
    117 		$data['user_token']                            = $this->session->data['user_token'];
    118 		$data['shipping_international_zones']     = $this->model_extension_openbay_ebay->getShippingLocations();
    119 		$data['templates']                        = $this->model_extension_openbay_ebay_template->getAll();
    120 		$data['types']                            = $this->model_extension_openbay_ebay_profile->getTypes();
    121 
    122 		$setting                                  = array();
    123 		$setting['returns']                       = $this->openbay->ebay->getSetting('returns');
    124 		$setting['dispatch_times']                = $this->openbay->ebay->getSetting('dispatch_time_max');
    125 		$setting['countries']                     = $this->openbay->ebay->getSetting('countries');
    126 		$setting['shipping_types'] 				  = $this->openbay->ebay->getSetting('shipping_types');
    127 		$setting['listing_restrictions'] 		  = $this->openbay->ebay->getSetting('listing_restrictions');
    128 
    129 		if (empty($setting['dispatch_times']) || empty($setting['countries']) || empty($setting['returns'])){
    130 			$this->session->data['warning'] = $this->language->get('error_missing_settings');
    131 			$this->response->redirect($this->url->link('extension/openbay/ebay/syncronise', 'user_token=' . $this->session->data['user_token'], true));
    132 		}
    133 
    134 		if (is_array($setting['dispatch_times'])) {
    135 			ksort($setting['dispatch_times']);
    136 		}
    137 		if (is_array($setting['countries'])) {
    138 			ksort($setting['countries']);
    139 		}
    140 
    141 		$data['setting'] = $setting;
    142 
    143 		if (isset($this->error['warning'])) {
    144 			$data['error_warning'] = $this->error['warning'];
    145 		} else {
    146 			$data['error_warning'] = '';
    147 		}
    148 
    149 		$profile_info = array();
    150 		if (isset($this->request->get['ebay_profile_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
    151 			$profile_info = $this->model_extension_openbay_ebay_profile->get($this->request->get['ebay_profile_id']);
    152 			$data['text_manage'] = $this->language->get('text_edit');
    153 			$data['action'] = $this->url->link('extension/openbay/ebay_profile/edit', 'user_token=' . $this->session->data['user_token'], true);
    154 		} else {
    155 			$data['action'] = $this->url->link('extension/openbay/ebay_profile/add', 'user_token=' . $this->session->data['user_token'], true);
    156 			$data['text_manage'] = $this->language->get('text_add');
    157 		}
    158 
    159 		if (isset($this->request->post['type'])) {
    160 			$type = $this->request->post['type'];
    161 		} else {
    162 			$type = $profile_info['type'];
    163 		}
    164 
    165 		if (!array_key_exists($type, $data['types'])) {
    166 			$this->session->data['error'] = $data['error_no_template'];
    167 
    168 			$this->response->redirect($this->url->link('extension/openbay/ebay_profile/profilAall', 'user_token=' . $this->session->data['user_token'], true));
    169 		}
    170 
    171 		$this->document->addScript('view/javascript/openbay/js/faq.js');
    172 
    173 		$data['breadcrumbs'] = array();
    174 
    175 		$data['breadcrumbs'][] = array(
    176 			'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
    177 			'text' => $this->language->get('text_home'),
    178 		);
    179 
    180 		$data['breadcrumbs'][] = array(
    181 			'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
    182 			'text' => $this->language->get('text_openbay'),
    183 		);
    184 
    185 		$data['breadcrumbs'][] = array(
    186 			'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
    187 			'text' => $this->language->get('text_ebay'),
    188 		);
    189 
    190 		$data['breadcrumbs'][] = array(
    191 			'href' => $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true),
    192 			'text' => $this->language->get('heading_title')
    193 		);
    194 
    195 		if (isset($this->request->post['default'])) {
    196 			$data['default'] = $this->request->post['default'];
    197 		} elseif (!empty($profile_info)) {
    198 			$data['default'] = $profile_info['default'];
    199 		} else {
    200 			$data['default'] = 0;
    201 		}
    202 
    203 		if (isset($this->request->post['name'])) {
    204 			$data['name'] = $this->request->post['name'];
    205 		} elseif (!empty($profile_info)) {
    206 			$data['name'] = $profile_info['name'];
    207 		} else {
    208 			$data['name'] = '';
    209 		}
    210 
    211 		if (isset($this->request->post['description'])) {
    212 			$data['description'] = $this->request->post['description'];
    213 		} elseif (!empty($profile_info)) {
    214 			$data['description'] = $profile_info['description'];
    215 		} else {
    216 			$data['description'] = '';
    217 		}
    218 
    219 		if (isset($this->request->post['type'])) {
    220 			$data['type'] = $this->request->post['type'];
    221 		} else {
    222 			$data['type'] = $profile_info['type'];
    223 		}
    224 
    225 		if (isset($this->request->get['ebay_profile_id'])) {
    226 			$data['ebay_profile_id'] = $this->request->get['ebay_profile_id'];
    227 		} else {
    228 			$data['ebay_profile_id'] = '';
    229 		}
    230 
    231 		if (isset($this->request->post['data'])) {
    232 			$data['data'] = $this->request->post['data'];
    233 		} elseif (!empty($profile_info)) {
    234 			$data['data'] = $profile_info['data'];
    235 		} else {
    236 			$data['data'] = '';
    237 		}
    238 
    239 		if ($type == 0) {
    240 			$data['zones'] = $this->model_extension_openbay_ebay->getShippingLocations();
    241 
    242 			$data['data']['national']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'calculated');
    243 			$data['data']['international']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'calculated');
    244 			$data['data']['national']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'flat');
    245 			$data['data']['international']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'flat');
    246 
    247 			$data['data']['national']['calculated']['count']	= isset($data['data']['national']['calculated']['service_id']) ? max(array_keys($data['data']['national']['calculated']['service_id']))+1 : 0;
    248 			$data['data']['national']['flat']['count']	= isset($data['data']['national']['flat']['service_id']) ? max(array_keys($data['data']['national']['flat']['service_id']))+1 : 0;
    249 			$data['data']['international']['calculated']['count']	= isset($data['data']['international']['calculated']['service_id']) ? max(array_keys($data['data']['international']['calculated']['service_id']))+1 : 0;
    250 			$data['data']['international']['flat']['count']	= isset($data['data']['international']['flat']['service_id']) ? max(array_keys($data['data']['international']['flat']['service_id']))+1 : 0;
    251 
    252 			$payment_types = $this->model_extension_openbay_ebay->getPaymentTypes();
    253 			$data['cod_surcharge'] = 0;
    254 
    255 			foreach($payment_types as $payment) {
    256 				if ($payment['ebay_name'] == 'COD') {
    257 					$data['cod_surcharge'] = 1;
    258 				}
    259 			}
    260 
    261 			if (!isset($data['data']['national']['shipping_type'])) {
    262 				$data['data']['national']['shipping_type'] = 'flat';
    263 			}
    264 
    265 			if (!isset($data['data']['international']['shipping_type'])) {
    266 				$data['data']['international']['shipping_type'] = 'flat';
    267 			}
    268 
    269 			$data['html_national_flat']         		= $this->load->view('extension/openbay/ebay_profile_shipping_national_flat', $data);
    270 			$data['html_international_flat']         	= $this->load->view('extension/openbay/ebay_profile_shipping_international_flat', $data);
    271 			$data['html_national_calculated']         	= $this->load->view('extension/openbay/ebay_profile_shipping_national_calculated', $data);
    272 			$data['html_international_calculated']		= $this->load->view('extension/openbay/ebay_profile_shipping_international_calculated', $data);
    273 		}
    274 
    275 		$data['cancel'] = $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true);
    276 
    277 		$this->document->setTitle($data['heading_title']);
    278 
    279 		$data['header'] = $this->load->controller('common/header');
    280 		$data['column_left'] = $this->load->controller('common/column_left');
    281 		$data['footer'] = $this->load->controller('common/footer');
    282 
    283 		$this->response->setOutput($this->load->view($data['types'][$type]['template'], $data));
    284 	}
    285 
    286 	public function profileGet() {
    287 		$this->load->model('extension/openbay/ebay_profile');
    288 		$this->load->model('extension/openbay/ebay');
    289 		$this->load->language('extension/openbay/ebay_profile');
    290 
    291 		$profile_info = $this->model_extension_openbay_ebay_profile->get($this->request->get['ebay_profile_id']);
    292 		$data = array();
    293 
    294 		if ($profile_info['type'] == 0) {
    295 			$data['data'] = $profile_info['data'];
    296 			$data['data']['national']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'calculated');
    297 			$data['data']['international']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'calculated');
    298 			$data['data']['national']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'flat');
    299 			$data['data']['international']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'flat');
    300 
    301 			$data['data']['national']['calculated']['count']	= isset($data['data']['national']['calculated']['service_id']) ? max(array_keys($data['data']['national']['calculated']['service_id']))+1 : 0;
    302 			$data['data']['national']['flat']['count']	= isset($data['data']['national']['flat']['service_id']) ? max(array_keys($data['data']['national']['flat']['service_id']))+1 : 0;
    303 			$data['data']['international']['calculated']['count']	= isset($data['data']['international']['calculated']['service_id']) ? max(array_keys($data['data']['international']['calculated']['service_id']))+1 : 0;
    304 			$data['data']['international']['flat']['count']	= isset($data['data']['international']['flat']['service_id']) ? max(array_keys($data['data']['international']['flat']['service_id']))+1 : 0;
    305 
    306 			$data['zones'] = $this->model_extension_openbay_ebay->getShippingLocations();
    307 
    308 			$data['text_shipping_service'] = $this->language->get('text_shipping_service');
    309 			$data['text_shipping_first'] = $this->language->get('text_shipping_first');
    310 			$data['button_delete'] = $this->language->get('button_delete');
    311 			$data['text_shipping_zones'] = $this->language->get('text_shipping_zones');
    312 			$data['text_shipping_worldwide'] = $this->language->get('text_shipping_worldwide');
    313 			$data['text_shipping_add'] = $this->language->get('text_shipping_add');
    314 			$data['text_cod_surcharge'] = $this->language->get('text_cod_surcharge');
    315 
    316 			$payment_types = $this->model_extension_openbay_ebay->getPaymentTypes();
    317 			$data['cod_surcharge'] = 0;
    318 
    319 			if (!empty($payment_types)) {
    320 				foreach($payment_types as $payment) {
    321 					if ($payment['ebay_name'] == 'COD') {
    322 						$data['cod_surcharge'] = 1;
    323 					}
    324 				}
    325 			}
    326 			$return['national']['type'] 				= $data['data']['national']['shipping_type'];
    327 			$return['international']['type'] 			= $data['data']['international']['shipping_type'];
    328 
    329 			$return['national_flat_count']   			= (int)$data['data']['national']['flat']['count'];
    330 			$return['national_flat']         			= $this->load->view('extension/openbay/ebay_profile_shipping_national_flat', $data);
    331 
    332 			$return['international_flat_count']   		= (int)$data['data']['international']['flat']['count'];
    333 			$return['international_flat']         		= $this->load->view('extension/openbay/ebay_profile_shipping_international_flat', $data);
    334 
    335 			$return['national_calculated_count']   		= (int)$data['data']['national']['calculated']['count'];
    336 			$return['national_calculated']         		= $this->load->view('extension/openbay/ebay_profile_shipping_national_calculated', $data);
    337 
    338 			$return['international_calculated_count']   = (int)$data['data']['international']['flat']['count'];
    339 			$return['international_calculated']         = $this->load->view('extension/openbay/ebay_profile_shipping_international_calculated', $data);
    340 
    341 			$profile_info['html']           			= $return;
    342 		}
    343 
    344 		$this->response->addHeader('Content-Type: application/json');
    345 		$this->response->setOutput(json_encode($profile_info));
    346 	}
    347 
    348 	private function profileValidate() {
    349 		if (!$this->user->hasPermission('modify', 'extension/openbay/ebay_profile')) {
    350 			$this->error['warning'] = $this->language->get('error_permission');
    351 		}
    352 
    353 		if ($this->request->post['name'] == '') {
    354 			$this->error['name'] = $this->language->get('error_name');
    355 		}
    356 
    357 		return !$this->error;
    358 	}
    359 }