class ControllerExtensionShippingCorreios extends Controller {
private $error = array();
public function index() {
$this->load->language('extension/shipping/correios');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('setting/setting');
$this->load->model('extension/shipping/correios');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('shipping_correios', $this->request->post);
$this->model_extension_shipping_correios->deleteServicos($this->request->post['shipping_correios_servicos']);
// somente redireciona se o Submit não tenha sido feito para editar a tabela offline
if (!isset($this->request->get['codigo'])) {
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true));
}
}
$data['correios_version'] = 'v5.0.3 - 21/09/2023';
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->error['required'])) {
$data['error_required'] = $this->error['required'];
} else {
$data['error_required'] = '';
}
if (isset($this->error['chave'])) {
$data['error_chave'] = $this->error['chave'];
} else {
$data['error_chave'] = '';
}
if (isset($this->error['result'])) {
$data['error_result'] = $this->error['result'];
} else {
$data['error_result'] = '';
}
if (isset($this->error['usuario'])) {
$data['error_usuario'] = $this->error['usuario'];
} else {
$data['error_usuario'] = '';
}
if (isset($this->error['senha'])) {
$data['error_senha'] = $this->error['senha'];
} else {
$data['error_senha'] = '';
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)
);
$data['action'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true);
$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true);
if (isset($this->request->post['shipping_correios_servicos'])) {
$data['shipping_correios_servicos'] = $this->request->post['shipping_correios_servicos'];
} else {
$data['shipping_correios_servicos'] = $this->config->get('shipping_correios_servicos');
}
if (empty($data['shipping_correios_servicos'])) {
$data['shipping_correios_servicos'] = array();
}
if (isset($this->request->post['shipping_correios_faixas'])) {
$data['shipping_correios_faixas'] = $this->request->post['shipping_correios_faixas'];
} else {
$data['shipping_correios_faixas'] = $this->config->get('shipping_correios_faixas');
}
if (empty($data['shipping_correios_faixas'])) {
$data['shipping_correios_faixas'] = array();
}
if (isset($this->request->post['shipping_correios_adicional'])) {
$data['shipping_correios_adicional'] = $this->request->post['shipping_correios_adicional'];
} else {
$data['shipping_correios_adicional'] = $this->config->get('shipping_correios_adicional');
}
if (empty($data['shipping_correios_adicional'])) {
$data['shipping_correios_adicional'] = array();
}
if (isset($this->request->post['shipping_correios_gratis_estados'])) {
$data['shipping_correios_gratis_estados'] = $this->request->post['shipping_correios_gratis_estados'];
} else {
$data['shipping_correios_gratis_estados'] = $this->config->get('shipping_correios_gratis_estados');
}
if (empty($data['shipping_correios_gratis_estados'])) {
$data['shipping_correios_gratis_estados'] = array();
}
if (isset($this->request->post['shipping_correios_gratis_produtos'])) {
$data['shipping_correios_gratis_produtos'] = $this->request->post['shipping_correios_gratis_produtos'];
} else {
$data['shipping_correios_gratis_produtos'] = $this->config->get('shipping_correios_gratis_produtos');
}
$data['product_categories'] = array();
$data['product_manufacturers'] = array();
$data['product_products'] = array();
if (empty($data['shipping_correios_gratis_produtos'])) {
$data['shipping_correios_gratis_produtos'] = array();
} else {
$this->load->model('catalog/category');
$this->load->model('catalog/manufacturer');
$this->load->model('catalog/product');
foreach ($data['shipping_correios_gratis_produtos'] as $key => $row) {
if (isset($row['categorias']) && is_array($row['categorias'])) {
foreach ($row['categorias'] as $category_id) {
$category_info = $this->model_catalog_category->getCategory($category_id);
if ($category_info) {
$data['product_categories'][$key][] = array(
'category_id' => $category_info['category_id'],
'name' => ($category_info['path']) ? $category_info['path'] . ' > ' . $category_info['name'] : $category_info['name']
);
}
}
}
if (isset($row['marcas']) && is_array($row['marcas'])) {
foreach ($row['marcas'] as $manufacturer_id) {
$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);
if ($manufacturer_info) {
$data['product_manufacturers'][$key][] = array(
'manufacturer_id' => $manufacturer_info['manufacturer_id'],
'name' => $manufacturer_info['name']
);
}
}
}
if (isset($row['produtos']) && is_array($row['produtos'])) {
foreach ($row['produtos'] as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
if ($product_info) {
$data['product_products'][$key][] = array(
'product_id' => $product_info['product_id'],
'name' => $product_info['name']
);
}
}
}
}
}
if (isset($this->request->post['shipping_correios_gratis_cep'])) {
$data['shipping_correios_gratis_cep'] = $this->request->post['shipping_correios_gratis_cep'];
} else {
$data['shipping_correios_gratis_cep'] = $this->config->get('shipping_correios_gratis_cep');
}
if (empty($data['shipping_correios_gratis_cep'])) {
$data['shipping_correios_gratis_cep'] = array();
}
if (isset($this->request->post['shipping_correios_msg_restricao'])) {
$data['shipping_correios_msg_restricao'] = $this->request->post['shipping_correios_msg_restricao'];
} else {
$data['shipping_correios_msg_restricao'] = $this->config->get('shipping_correios_msg_restricao');
}
if (isset($this->request->post['shipping_correios_status'])) {
$data['shipping_correios_status'] = $this->request->post['shipping_correios_status'];
} else {
$data['shipping_correios_status'] = $this->config->get('shipping_correios_status');
}
if (isset($this->request->post['shipping_correios_tax_class_id'])) {
$data['shipping_correios_tax_class_id'] = $this->request->post['shipping_correios_tax_class_id'];
} else {
$data['shipping_correios_tax_class_id'] = $this->config->get('shipping_correios_tax_class_id');
}
if (isset($this->request->post['shipping_correios_geo_zone_id'])) {
$data['shipping_correios_geo_zone_id'] = $this->request->post['shipping_correios_geo_zone_id'];
} else {
$data['shipping_correios_geo_zone_id'] = $this->config->get('shipping_correios_geo_zone_id');
}
if (isset($this->request->post['shipping_correios_sort_order'])) {
$data['shipping_correios_sort_order'] = $this->request->post['shipping_correios_sort_order'];
} else {
$data['shipping_correios_sort_order'] = $this->config->get('shipping_correios_sort_order');
}
if (isset($this->request->post['shipping_correios_chave'])) {
$data['shipping_correios_chave'] = $this->request->post['shipping_correios_chave'];
} else {
$data['shipping_correios_chave'] = $this->config->get('shipping_correios_chave');
}
if (isset($this->request->post['shipping_correios_api_usuario'])) {
$data['shipping_correios_api_usuario'] = $this->request->post['shipping_correios_api_usuario'];
} else {
$data['shipping_correios_api_usuario'] = $this->config->get('shipping_correios_api_usuario');
}
if (isset($this->request->post['shipping_correios_api_senha'])) {
$data['shipping_correios_api_senha'] = $this->request->post['shipping_correios_api_senha'];
} else {
$data['shipping_correios_api_senha'] = $this->config->get('shipping_correios_api_senha');
}
if (isset($this->request->post['shipping_correios_api_cartao_postagem'])) {
$data['shipping_correios_api_cartao_postagem'] = $this->request->post['shipping_correios_api_cartao_postagem'];
} else {
$data['shipping_correios_api_cartao_postagem'] = $this->config->get('shipping_correios_api_cartao_postagem');
}
if (isset($this->request->post['shipping_correios_api_codigo_contrato'])) {
$data['shipping_correios_api_codigo_contrato'] = $this->request->post['shipping_correios_api_codigo_contrato'];
} else {
$data['shipping_correios_api_codigo_contrato'] = $this->config->get('shipping_correios_api_codigo_contrato');
}
if (isset($this->request->post['shipping_correios_log'])) {
$data['shipping_correios_log'] = $this->request->post['shipping_correios_log'];
} else {
$data['shipping_correios_log'] = $this->config->get('shipping_correios_log');
}
if (isset($this->request->post['shipping_correios_log_debug'])) {
$data['shipping_correios_log_debug'] = $this->request->post['shipping_correios_log_debug'];
} else {
$data['shipping_correios_log_debug'] = $this->config->get('shipping_correios_log_debug');
}
$this->load->model('localisation/tax_class');
$data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses();
$this->load->model('localisation/geo_zone');
$data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones();
$this->load->model('localisation/zone');
$data['zones'] = $this->model_localisation_zone->getZonesByCountryId($this->config->get('config_country_id'));
$data['user_token'] = $this->session->data['user_token'];
$data['status_licenca'] = $this->model_extension_shipping_correios->out();
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('extension/shipping/correios', $data));
}
protected function validate() {
if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) {
$this->error['warning'] = $this->language->get('error_permission');
}
if (!isset($this->request->post['shipping_correios_chave']) || (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) != 24)) {
$this->error['chave'] = $this->language->get('error_chave');
}
if (!isset($this->request->post['shipping_correios_api_usuario']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_usuario'])) < 1)) {
$this->error['usuario'] = $this->language->get('error_usuario');
}
if (!isset($this->request->post['shipping_correios_api_senha']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_senha'])) < 1)) {
$this->error['senha'] = $this->language->get('error_senha');
}
if (isset($this->request->post['shipping_correios_chave']) && (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) == 24)) {
$status = $this->model_extension_shipping_correios->out();
if (!$status) {
$this->error['result'] = $this->language->get('error_result');
}
}
return !$this->error;
}
public function tabela() {
$this->load->language('extension/shipping/correios_tabela');
$this->document->setTitle($this->language->get('heading_title_tabela'));
if (isset($this->request->get['codigo'])) {
$codigo = $this->request->get['codigo'];
} else {
$codigo = '';
}
if (isset($this->request->get['cep_origem'])) {
$cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']);
} else {
$cep_origem = '';
}
$this->load->model('extension/shipping/correios');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$this->model_extension_shipping_correios->editTabela($codigo, $cep_origem, $this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true));
}
$this->getTabelaForm();
}
public function getTabelaForm() {
if (isset($this->request->get['codigo'])) {
$codigo = $this->request->get['codigo'];
} else {
$codigo = '';
}
if (isset($this->request->get['cep_origem'])) {
$cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']);
} else {
$cep_origem = '';
}
$data['text_form'] = sprintf($this->language->get('text_edit'), $codigo, $cep_origem);
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title_tabela'),
'href' => $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true)
);
$this->load->model('extension/shipping/correios');
if ($this->request->server['REQUEST_METHOD'] != 'POST') {
$tabela_info = $this->model_extension_shipping_correios->getServico($codigo, $cep_origem);
}
$data['action'] = $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true);
$data['cancel'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true);
if (isset($this->request->post['max_peso_real'])) {
$data['max_peso_real'] = $this->request->post['max_peso_real'];
} elseif (!empty($tabela_info)) {
$data['max_peso_real'] = $tabela_info['max_peso_real'];
} else {
$data['max_peso_real'] = '';
}
if (isset($this->request->post['ad_valorem'])) {
$data['ad_valorem'] = $this->request->post['ad_valorem'];
} elseif (!empty($tabela_info)) {
$data['ad_valorem'] = $tabela_info['ad_valorem'];
} else {
$data['ad_valorem'] = '';
}
if (isset($this->request->post['aviso_recebimento'])) {
$data['aviso_recebimento'] = $this->request->post['aviso_recebimento'];
} elseif (!empty($tabela_info)) {
$data['aviso_recebimento'] = $tabela_info['aviso_recebimento'];
} else {
$data['aviso_recebimento'] = '';
}
if (isset($this->request->post['mao_propria'])) {
$data['mao_propria'] = $this->request->post['mao_propria'];
} elseif (!empty($tabela_info)) {
$data['mao_propria'] = $tabela_info['mao_propria'];
} else {
$data['mao_propria'] = '';
}
if (isset($this->request->post['a_cobrar_vpne'])) {
$data['a_cobrar_vpne'] = $this->request->post['a_cobrar_vpne'];
} elseif (!empty($tabela_info)) {
$data['a_cobrar_vpne'] = $tabela_info['a_cobrar_vpne'];
} else {
$data['a_cobrar_vpne'] = '';
}
if (isset($this->request->post['taxa_emergencial'])) {
$data['taxa_emergencial'] = $this->request->post['taxa_emergencial'];
} elseif (!empty($tabela_info)) {
$data['taxa_emergencial'] = $tabela_info['taxa_emergencial'];
} else {
$data['taxa_emergencial'] = '';
}
if (isset($this->request->post['lx_adicional_kg'])) {
$data['lx_adicional_kg'] = $this->request->post['lx_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['lx_adicional_kg'] = $tabela_info['lx_adicional_kg'];
} else {
$data['lx_adicional_kg'] = '';
}
if (isset($this->request->post['ex_adicional_kg'])) {
$data['ex_adicional_kg'] = $this->request->post['ex_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['ex_adicional_kg'] = $tabela_info['ex_adicional_kg'];
} else {
$data['ex_adicional_kg'] = '';
}
if (isset($this->request->post['i1_adicional_kg'])) {
$data['i1_adicional_kg'] = $this->request->post['i1_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i1_adicional_kg'] = $tabela_info['i1_adicional_kg'];
} else {
$data['i1_adicional_kg'] = '';
}
if (isset($this->request->post['i2_adicional_kg'])) {
$data['i2_adicional_kg'] = $this->request->post['i2_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i2_adicional_kg'] = $tabela_info['i2_adicional_kg'];
} else {
$data['i2_adicional_kg'] = '';
}
if (isset($this->request->post['i3_adicional_kg'])) {
$data['i3_adicional_kg'] = $this->request->post['i3_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i3_adicional_kg'] = $tabela_info['i3_adicional_kg'];
} else {
$data['i3_adicional_kg'] = '';
}
if (isset($this->request->post['i4_adicional_kg'])) {
$data['i4_adicional_kg'] = $this->request->post['i4_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i4_adicional_kg'] = $tabela_info['i4_adicional_kg'];
} else {
$data['i4_adicional_kg'] = '';
}
if (isset($this->request->post['i5_adicional_kg'])) {
$data['i5_adicional_kg'] = $this->request->post['i5_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i5_adicional_kg'] = $tabela_info['i5_adicional_kg'];
} else {
$data['i5_adicional_kg'] = '';
}
if (isset($this->request->post['i6_adicional_kg'])) {
$data['i6_adicional_kg'] = $this->request->post['i6_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i6_adicional_kg'] = $tabela_info['i6_adicional_kg'];
} else {
$data['i6_adicional_kg'] = '';
}
if (isset($this->request->post['n1_adicional_kg'])) {
$data['n1_adicional_kg'] = $this->request->post['n1_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n1_adicional_kg'] = $tabela_info['n1_adicional_kg'];
} else {
$data['n1_adicional_kg'] = '';
}
if (isset($this->request->post['n2_adicional_kg'])) {
$data['n2_adicional_kg'] = $this->request->post['n2_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n2_adicional_kg'] = $tabela_info['n2_adicional_kg'];
} else {
$data['n2_adicional_kg'] = '';
}
if (isset($this->request->post['n3_adicional_kg'])) {
$data['n3_adicional_kg'] = $this->request->post['n3_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n3_adicional_kg'] = $tabela_info['n3_adicional_kg'];
} else {
$data['n3_adicional_kg'] = '';
}
if (isset($this->request->post['n4_adicional_kg'])) {
$data['n4_adicional_kg'] = $this->request->post['n4_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n4_adicional_kg'] = $tabela_info['n4_adicional_kg'];
} else {
$data['n4_adicional_kg'] = '';
}
if (isset($this->request->post['n5_adicional_kg'])) {
$data['n5_adicional_kg'] = $this->request->post['n5_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n5_adicional_kg'] = $tabela_info['n5_adicional_kg'];
} else {
$data['n5_adicional_kg'] = '';
}
if (isset($this->request->post['n6_adicional_kg'])) {
$data['n6_adicional_kg'] = $this->request->post['n6_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n6_adicional_kg'] = $tabela_info['n6_adicional_kg'];
} else {
$data['n6_adicional_kg'] = '';
}
if (isset($this->request->post['faixa_peso'])) {
$data['faixa_peso'] = $this->request->post['faixa_peso'];
} elseif (!empty($tabela_info)) {
$cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']);
$data['faixa_peso'] = $this->model_extension_shipping_correios->getFaixaPeso($tabela_info['codigo'], $cep_origem);
} else {
$data['faixa_peso'] = array();
}
if (isset($this->request->post['tabela_regiao'])) {
$tabela_regiao = $this->request->post['tabela_regiao'];
} elseif (!empty($tabela_info)) {
$cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']);
$tabela_regiao = $this->model_extension_shipping_correios->getTabelaRegiao($tabela_info['codigo'], $cep_origem);
} else {
$tabela_regiao = array();
}
$this->load->model('localisation/zone');
$data['tabela_regiao'] = array();
foreach ($tabela_regiao as $regiao => $zones) {
foreach ($zones as $zone_id) {
$zone_info = $this->model_localisation_zone->getZone($zone_id);
if ($zone_info) {
$data['tabela_regiao'][$regiao][] = array(
'zone_id' => $zone_info['zone_id'],
'code' => $zone_info['code']
);
}
}
}
if (isset($this->request->post['faixa_cep_local'])) {
$data['faixa_cep_local'] = $this->request->post['faixa_cep_local'];
} elseif (!empty($tabela_info)) {
$cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']);
$data['faixa_cep_local'] = $this->model_extension_shipping_correios->getFaixasCepLocal($tabela_info['codigo'], $cep_origem);
} else {
$data['faixa_cep_local'] = array();
}
$data['user_token'] = $this->session->data['user_token'];
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('extension/shipping/correios_tabela_form', $data));
}
protected function validateForm() {
if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) {
$this->error['warning'] = $this->language->get('error_permission');
}
return !$this->error;
}
public function autocomplete() {
$json = array();
if (isset($this->request->get['filter_name'])) {
$this->load->model('extension/shipping/correios');
$filter_data = array(
'filter_name' => $this->request->get['filter_name'],
'start' => 0,
'limit' => 5
);
$results = $this->model_extension_shipping_correios->getZones($filter_data);
foreach ($results as $result) {
$json[] = array(
'zone_id' => $result['zone_id'],
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),
'code' => $result['code']
);
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
public function install() {
$this->load->model('setting/setting');
$result = $this->model_setting_setting->getSetting('shipping_correios');
if (!$result) {
$data = array();
$data['shipping_correios_servicos'][] = array(
"codigo" => "04014",
"nome" => "SEDEX",
"tipo" => "sedex",
"status" => "1",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "0",
"declarar_valor_codigo" => "032",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04065",
"nome" => "SEDEX a Cobrar",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "1",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "1",
"declarar_valor_codigo" => "032",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "40215",
"nome" => "SEDEX 10",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "10",
"mao_propria" => "0",
"mao_propria_codigo" => "002",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "001",
"declarar_valor" => "0",
"declarar_valor_codigo" => "019",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "40169",
"nome" => "SEDEX 12",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "10",
"mao_propria" => "0",
"mao_propria_codigo" => "002",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "001",
"declarar_valor" => "0",
"declarar_valor_codigo" => "019",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "40290",
"nome" => "SEDEX Hoje",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "10",
"mao_propria" => "0",
"mao_propria_codigo" => "",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "",
"declarar_valor" => "0",
"declarar_valor_codigo" => "019",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04510",
"nome" => "PAC",
"tipo" => "pac",
"status" => "1",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "3000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "0",
"declarar_valor_codigo" => "064",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04707",
"nome" => "PAC a Cobrar",
"tipo" => "pac",
"status" => "0",
"a_cobrar" => "1",
"postcode" => "37540000",
"max_declarado" => "3000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "1",
"declarar_valor_codigo" => "064",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04227",
"nome" => "PAC Mini",
"tipo" => "pac_mini",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "100",
"min_declarado" => "10.25",
"max_soma_lados" => "44",
"min_soma_lados" => "26",
"max_lado" => "24",
"max_peso" => "0.3",
"mao_propria" => "0",
"mao_propria_codigo" => "",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "001",
"declarar_valor" => "1",
"declarar_valor_codigo" => "065",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "0",
"operacao" => "online"
);
$this->model_setting_setting->editSetting('shipping_correios', $data);
}
$this->load->model('extension/shipping/correios');
$this->model_extension_shipping_correios->criarTabelas();
}
/*
Não modifique, desative ou delete pois pode ser denunciado por pirataria e também expulso da plataforma OpenCart.com
*/
public function validar($license_key) {
$domain = parse_url(HTTP_SERVER);
$domain = $domain['host'];
$domain = str_replace('www.', '', $domain);
$domain = str_replace('http://', '', $domain);
$domain = str_replace('https://', '', $domain);
$domain = str_replace('/', '', $domain);
$domain = strtolower($domain);
$post_data = array(
'license_key' => trim($license_key),
'domain' => $domain,
'product_id' => '60,50,980,63,62,65',
'version' => defined('VERSION') ? VERSION : '',
'store' => $this->config->get('config_name'),
'email' => $this->config->get('config_email')
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'OpenCart Extension Licensing System');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'https://www.julioguimaraes.com/opencart/index.php?route=tool/venda/call');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
$response = curl_exec($curl);
if (curl_errno($curl)) {
$curl_error = 'Error ' . curl_errno($curl) . ': ' . curl_error($curl);
} else {
$curl_error = '';
}
curl_close($curl);
$response = json_decode($response, true);
if (isset($response['error'])) {
return array(
'error' => $response['error'],
'success' => false
);
} else if (isset($response['success'])) {
$this->load->model('extension/shipping/correios');
$this->model_extension_shipping_correios->in($license_key, $domain);
return array(
'error' => false,
'success' => true
);
} else {
$this->log->write(print_r($response, true));
return array(
'error' => 'Não foi possível conectar ao servidor de ativação da licença. Por favor, confira se seu servidor está conectado na internet.' . $curl_error,
'success' => false
);
}
}
public function ativar() {
$json = array();
if (isset($this->request->get['license_key'])) {
$license_key = $this->request->get['license_key'];
} else {
$license_key = '';
}
if ($license_key) {
$result = $this->validar($license_key);
if ($result['error']) {
$json['error'] = $result['error'];
} else {
$json['success'] = $result['success'];
$code = 'shipping_correios';
$key = 'shipping_correios_chave';
$this->load->model('setting/setting');
$data = $this->model_setting_setting->getSetting($code);
$data[$key] = $license_key;
$this->model_setting_setting->editSetting($code, $data);
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
public function uninstall() {
if (file_exists(DIR_STORAGE . 'cp.sys')) {
unlink(DIR_STORAGE . 'cp.sys');
}
}
}
A string não está compactada com gzip ou não pôde ser descompactada.
Aqui está a string decodificada em Base64:
class ControllerExtensionShippingCorreios extends Controller {
private $error = array();
public function index() {
$this->load->language('extension/shipping/correios');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('setting/setting');
$this->load->model('extension/shipping/correios');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('shipping_correios', $this->request->post);
$this->model_extension_shipping_correios->deleteServicos($this->request->post['shipping_correios_servicos']);
// somente redireciona se o Submit não tenha sido feito para editar a tabela offline
if (!isset($this->request->get['codigo'])) {
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true));
}
}
$data['correios_version'] = 'v5.0.3 - 21/09/2023';
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->error['required'])) {
$data['error_required'] = $this->error['required'];
} else {
$data['error_required'] = '';
}
if (isset($this->error['chave'])) {
$data['error_chave'] = $this->error['chave'];
} else {
$data['error_chave'] = '';
}
if (isset($this->error['result'])) {
$data['error_result'] = $this->error['result'];
} else {
$data['error_result'] = '';
}
if (isset($this->error['usuario'])) {
$data['error_usuario'] = $this->error['usuario'];
} else {
$data['error_usuario'] = '';
}
if (isset($this->error['senha'])) {
$data['error_senha'] = $this->error['senha'];
} else {
$data['error_senha'] = '';
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)
);
$data['action'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true);
$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true);
if (isset($this->request->post['shipping_correios_servicos'])) {
$data['shipping_correios_servicos'] = $this->request->post['shipping_correios_servicos'];
} else {
$data['shipping_correios_servicos'] = $this->config->get('shipping_correios_servicos');
}
if (empty($data['shipping_correios_servicos'])) {
$data['shipping_correios_servicos'] = array();
}
if (isset($this->request->post['shipping_correios_faixas'])) {
$data['shipping_correios_faixas'] = $this->request->post['shipping_correios_faixas'];
} else {
$data['shipping_correios_faixas'] = $this->config->get('shipping_correios_faixas');
}
if (empty($data['shipping_correios_faixas'])) {
$data['shipping_correios_faixas'] = array();
}
if (isset($this->request->post['shipping_correios_adicional'])) {
$data['shipping_correios_adicional'] = $this->request->post['shipping_correios_adicional'];
} else {
$data['shipping_correios_adicional'] = $this->config->get('shipping_correios_adicional');
}
if (empty($data['shipping_correios_adicional'])) {
$data['shipping_correios_adicional'] = array();
}
if (isset($this->request->post['shipping_correios_gratis_estados'])) {
$data['shipping_correios_gratis_estados'] = $this->request->post['shipping_correios_gratis_estados'];
} else {
$data['shipping_correios_gratis_estados'] = $this->config->get('shipping_correios_gratis_estados');
}
if (empty($data['shipping_correios_gratis_estados'])) {
$data['shipping_correios_gratis_estados'] = array();
}
if (isset($this->request->post['shipping_correios_gratis_produtos'])) {
$data['shipping_correios_gratis_produtos'] = $this->request->post['shipping_correios_gratis_produtos'];
} else {
$data['shipping_correios_gratis_produtos'] = $this->config->get('shipping_correios_gratis_produtos');
}
$data['product_categories'] = array();
$data['product_manufacturers'] = array();
$data['product_products'] = array();
if (empty($data['shipping_correios_gratis_produtos'])) {
$data['shipping_correios_gratis_produtos'] = array();
} else {
$this->load->model('catalog/category');
$this->load->model('catalog/manufacturer');
$this->load->model('catalog/product');
foreach ($data['shipping_correios_gratis_produtos'] as $key => $row) {
if (isset($row['categorias']) && is_array($row['categorias'])) {
foreach ($row['categorias'] as $category_id) {
$category_info = $this->model_catalog_category->getCategory($category_id);
if ($category_info) {
$data['product_categories'][$key][] = array(
'category_id' => $category_info['category_id'],
'name' => ($category_info['path']) ? $category_info['path'] . ' > ' . $category_info['name'] : $category_info['name']
);
}
}
}
if (isset($row['marcas']) && is_array($row['marcas'])) {
foreach ($row['marcas'] as $manufacturer_id) {
$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);
if ($manufacturer_info) {
$data['product_manufacturers'][$key][] = array(
'manufacturer_id' => $manufacturer_info['manufacturer_id'],
'name' => $manufacturer_info['name']
);
}
}
}
if (isset($row['produtos']) && is_array($row['produtos'])) {
foreach ($row['produtos'] as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
if ($product_info) {
$data['product_products'][$key][] = array(
'product_id' => $product_info['product_id'],
'name' => $product_info['name']
);
}
}
}
}
}
if (isset($this->request->post['shipping_correios_gratis_cep'])) {
$data['shipping_correios_gratis_cep'] = $this->request->post['shipping_correios_gratis_cep'];
} else {
$data['shipping_correios_gratis_cep'] = $this->config->get('shipping_correios_gratis_cep');
}
if (empty($data['shipping_correios_gratis_cep'])) {
$data['shipping_correios_gratis_cep'] = array();
}
if (isset($this->request->post['shipping_correios_msg_restricao'])) {
$data['shipping_correios_msg_restricao'] = $this->request->post['shipping_correios_msg_restricao'];
} else {
$data['shipping_correios_msg_restricao'] = $this->config->get('shipping_correios_msg_restricao');
}
if (isset($this->request->post['shipping_correios_status'])) {
$data['shipping_correios_status'] = $this->request->post['shipping_correios_status'];
} else {
$data['shipping_correios_status'] = $this->config->get('shipping_correios_status');
}
if (isset($this->request->post['shipping_correios_tax_class_id'])) {
$data['shipping_correios_tax_class_id'] = $this->request->post['shipping_correios_tax_class_id'];
} else {
$data['shipping_correios_tax_class_id'] = $this->config->get('shipping_correios_tax_class_id');
}
if (isset($this->request->post['shipping_correios_geo_zone_id'])) {
$data['shipping_correios_geo_zone_id'] = $this->request->post['shipping_correios_geo_zone_id'];
} else {
$data['shipping_correios_geo_zone_id'] = $this->config->get('shipping_correios_geo_zone_id');
}
if (isset($this->request->post['shipping_correios_sort_order'])) {
$data['shipping_correios_sort_order'] = $this->request->post['shipping_correios_sort_order'];
} else {
$data['shipping_correios_sort_order'] = $this->config->get('shipping_correios_sort_order');
}
if (isset($this->request->post['shipping_correios_chave'])) {
$data['shipping_correios_chave'] = $this->request->post['shipping_correios_chave'];
} else {
$data['shipping_correios_chave'] = $this->config->get('shipping_correios_chave');
}
if (isset($this->request->post['shipping_correios_api_usuario'])) {
$data['shipping_correios_api_usuario'] = $this->request->post['shipping_correios_api_usuario'];
} else {
$data['shipping_correios_api_usuario'] = $this->config->get('shipping_correios_api_usuario');
}
if (isset($this->request->post['shipping_correios_api_senha'])) {
$data['shipping_correios_api_senha'] = $this->request->post['shipping_correios_api_senha'];
} else {
$data['shipping_correios_api_senha'] = $this->config->get('shipping_correios_api_senha');
}
if (isset($this->request->post['shipping_correios_api_cartao_postagem'])) {
$data['shipping_correios_api_cartao_postagem'] = $this->request->post['shipping_correios_api_cartao_postagem'];
} else {
$data['shipping_correios_api_cartao_postagem'] = $this->config->get('shipping_correios_api_cartao_postagem');
}
if (isset($this->request->post['shipping_correios_api_codigo_contrato'])) {
$data['shipping_correios_api_codigo_contrato'] = $this->request->post['shipping_correios_api_codigo_contrato'];
} else {
$data['shipping_correios_api_codigo_contrato'] = $this->config->get('shipping_correios_api_codigo_contrato');
}
if (isset($this->request->post['shipping_correios_log'])) {
$data['shipping_correios_log'] = $this->request->post['shipping_correios_log'];
} else {
$data['shipping_correios_log'] = $this->config->get('shipping_correios_log');
}
if (isset($this->request->post['shipping_correios_log_debug'])) {
$data['shipping_correios_log_debug'] = $this->request->post['shipping_correios_log_debug'];
} else {
$data['shipping_correios_log_debug'] = $this->config->get('shipping_correios_log_debug');
}
$this->load->model('localisation/tax_class');
$data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses();
$this->load->model('localisation/geo_zone');
$data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones();
$this->load->model('localisation/zone');
$data['zones'] = $this->model_localisation_zone->getZonesByCountryId($this->config->get('config_country_id'));
$data['user_token'] = $this->session->data['user_token'];
$data['status_licenca'] = $this->model_extension_shipping_correios->out();
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('extension/shipping/correios', $data));
}
protected function validate() {
if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) {
$this->error['warning'] = $this->language->get('error_permission');
}
if (!isset($this->request->post['shipping_correios_chave']) || (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) != 24)) {
$this->error['chave'] = $this->language->get('error_chave');
}
if (!isset($this->request->post['shipping_correios_api_usuario']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_usuario'])) < 1)) {
$this->error['usuario'] = $this->language->get('error_usuario');
}
if (!isset($this->request->post['shipping_correios_api_senha']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_senha'])) < 1)) {
$this->error['senha'] = $this->language->get('error_senha');
}
if (isset($this->request->post['shipping_correios_chave']) && (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) == 24)) {
$status = $this->model_extension_shipping_correios->out();
if (!$status) {
$this->error['result'] = $this->language->get('error_result');
}
}
return !$this->error;
}
public function tabela() {
$this->load->language('extension/shipping/correios_tabela');
$this->document->setTitle($this->language->get('heading_title_tabela'));
if (isset($this->request->get['codigo'])) {
$codigo = $this->request->get['codigo'];
} else {
$codigo = '';
}
if (isset($this->request->get['cep_origem'])) {
$cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']);
} else {
$cep_origem = '';
}
$this->load->model('extension/shipping/correios');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$this->model_extension_shipping_correios->editTabela($codigo, $cep_origem, $this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true));
}
$this->getTabelaForm();
}
public function getTabelaForm() {
if (isset($this->request->get['codigo'])) {
$codigo = $this->request->get['codigo'];
} else {
$codigo = '';
}
if (isset($this->request->get['cep_origem'])) {
$cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']);
} else {
$cep_origem = '';
}
$data['text_form'] = sprintf($this->language->get('text_edit'), $codigo, $cep_origem);
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title_tabela'),
'href' => $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true)
);
$this->load->model('extension/shipping/correios');
if ($this->request->server['REQUEST_METHOD'] != 'POST') {
$tabela_info = $this->model_extension_shipping_correios->getServico($codigo, $cep_origem);
}
$data['action'] = $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true);
$data['cancel'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true);
if (isset($this->request->post['max_peso_real'])) {
$data['max_peso_real'] = $this->request->post['max_peso_real'];
} elseif (!empty($tabela_info)) {
$data['max_peso_real'] = $tabela_info['max_peso_real'];
} else {
$data['max_peso_real'] = '';
}
if (isset($this->request->post['ad_valorem'])) {
$data['ad_valorem'] = $this->request->post['ad_valorem'];
} elseif (!empty($tabela_info)) {
$data['ad_valorem'] = $tabela_info['ad_valorem'];
} else {
$data['ad_valorem'] = '';
}
if (isset($this->request->post['aviso_recebimento'])) {
$data['aviso_recebimento'] = $this->request->post['aviso_recebimento'];
} elseif (!empty($tabela_info)) {
$data['aviso_recebimento'] = $tabela_info['aviso_recebimento'];
} else {
$data['aviso_recebimento'] = '';
}
if (isset($this->request->post['mao_propria'])) {
$data['mao_propria'] = $this->request->post['mao_propria'];
} elseif (!empty($tabela_info)) {
$data['mao_propria'] = $tabela_info['mao_propria'];
} else {
$data['mao_propria'] = '';
}
if (isset($this->request->post['a_cobrar_vpne'])) {
$data['a_cobrar_vpne'] = $this->request->post['a_cobrar_vpne'];
} elseif (!empty($tabela_info)) {
$data['a_cobrar_vpne'] = $tabela_info['a_cobrar_vpne'];
} else {
$data['a_cobrar_vpne'] = '';
}
if (isset($this->request->post['taxa_emergencial'])) {
$data['taxa_emergencial'] = $this->request->post['taxa_emergencial'];
} elseif (!empty($tabela_info)) {
$data['taxa_emergencial'] = $tabela_info['taxa_emergencial'];
} else {
$data['taxa_emergencial'] = '';
}
if (isset($this->request->post['lx_adicional_kg'])) {
$data['lx_adicional_kg'] = $this->request->post['lx_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['lx_adicional_kg'] = $tabela_info['lx_adicional_kg'];
} else {
$data['lx_adicional_kg'] = '';
}
if (isset($this->request->post['ex_adicional_kg'])) {
$data['ex_adicional_kg'] = $this->request->post['ex_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['ex_adicional_kg'] = $tabela_info['ex_adicional_kg'];
} else {
$data['ex_adicional_kg'] = '';
}
if (isset($this->request->post['i1_adicional_kg'])) {
$data['i1_adicional_kg'] = $this->request->post['i1_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i1_adicional_kg'] = $tabela_info['i1_adicional_kg'];
} else {
$data['i1_adicional_kg'] = '';
}
if (isset($this->request->post['i2_adicional_kg'])) {
$data['i2_adicional_kg'] = $this->request->post['i2_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i2_adicional_kg'] = $tabela_info['i2_adicional_kg'];
} else {
$data['i2_adicional_kg'] = '';
}
if (isset($this->request->post['i3_adicional_kg'])) {
$data['i3_adicional_kg'] = $this->request->post['i3_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i3_adicional_kg'] = $tabela_info['i3_adicional_kg'];
} else {
$data['i3_adicional_kg'] = '';
}
if (isset($this->request->post['i4_adicional_kg'])) {
$data['i4_adicional_kg'] = $this->request->post['i4_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i4_adicional_kg'] = $tabela_info['i4_adicional_kg'];
} else {
$data['i4_adicional_kg'] = '';
}
if (isset($this->request->post['i5_adicional_kg'])) {
$data['i5_adicional_kg'] = $this->request->post['i5_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i5_adicional_kg'] = $tabela_info['i5_adicional_kg'];
} else {
$data['i5_adicional_kg'] = '';
}
if (isset($this->request->post['i6_adicional_kg'])) {
$data['i6_adicional_kg'] = $this->request->post['i6_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['i6_adicional_kg'] = $tabela_info['i6_adicional_kg'];
} else {
$data['i6_adicional_kg'] = '';
}
if (isset($this->request->post['n1_adicional_kg'])) {
$data['n1_adicional_kg'] = $this->request->post['n1_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n1_adicional_kg'] = $tabela_info['n1_adicional_kg'];
} else {
$data['n1_adicional_kg'] = '';
}
if (isset($this->request->post['n2_adicional_kg'])) {
$data['n2_adicional_kg'] = $this->request->post['n2_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n2_adicional_kg'] = $tabela_info['n2_adicional_kg'];
} else {
$data['n2_adicional_kg'] = '';
}
if (isset($this->request->post['n3_adicional_kg'])) {
$data['n3_adicional_kg'] = $this->request->post['n3_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n3_adicional_kg'] = $tabela_info['n3_adicional_kg'];
} else {
$data['n3_adicional_kg'] = '';
}
if (isset($this->request->post['n4_adicional_kg'])) {
$data['n4_adicional_kg'] = $this->request->post['n4_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n4_adicional_kg'] = $tabela_info['n4_adicional_kg'];
} else {
$data['n4_adicional_kg'] = '';
}
if (isset($this->request->post['n5_adicional_kg'])) {
$data['n5_adicional_kg'] = $this->request->post['n5_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n5_adicional_kg'] = $tabela_info['n5_adicional_kg'];
} else {
$data['n5_adicional_kg'] = '';
}
if (isset($this->request->post['n6_adicional_kg'])) {
$data['n6_adicional_kg'] = $this->request->post['n6_adicional_kg'];
} elseif (!empty($tabela_info)) {
$data['n6_adicional_kg'] = $tabela_info['n6_adicional_kg'];
} else {
$data['n6_adicional_kg'] = '';
}
if (isset($this->request->post['faixa_peso'])) {
$data['faixa_peso'] = $this->request->post['faixa_peso'];
} elseif (!empty($tabela_info)) {
$cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']);
$data['faixa_peso'] = $this->model_extension_shipping_correios->getFaixaPeso($tabela_info['codigo'], $cep_origem);
} else {
$data['faixa_peso'] = array();
}
if (isset($this->request->post['tabela_regiao'])) {
$tabela_regiao = $this->request->post['tabela_regiao'];
} elseif (!empty($tabela_info)) {
$cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']);
$tabela_regiao = $this->model_extension_shipping_correios->getTabelaRegiao($tabela_info['codigo'], $cep_origem);
} else {
$tabela_regiao = array();
}
$this->load->model('localisation/zone');
$data['tabela_regiao'] = array();
foreach ($tabela_regiao as $regiao => $zones) {
foreach ($zones as $zone_id) {
$zone_info = $this->model_localisation_zone->getZone($zone_id);
if ($zone_info) {
$data['tabela_regiao'][$regiao][] = array(
'zone_id' => $zone_info['zone_id'],
'code' => $zone_info['code']
);
}
}
}
if (isset($this->request->post['faixa_cep_local'])) {
$data['faixa_cep_local'] = $this->request->post['faixa_cep_local'];
} elseif (!empty($tabela_info)) {
$cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']);
$data['faixa_cep_local'] = $this->model_extension_shipping_correios->getFaixasCepLocal($tabela_info['codigo'], $cep_origem);
} else {
$data['faixa_cep_local'] = array();
}
$data['user_token'] = $this->session->data['user_token'];
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('extension/shipping/correios_tabela_form', $data));
}
protected function validateForm() {
if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) {
$this->error['warning'] = $this->language->get('error_permission');
}
return !$this->error;
}
public function autocomplete() {
$json = array();
if (isset($this->request->get['filter_name'])) {
$this->load->model('extension/shipping/correios');
$filter_data = array(
'filter_name' => $this->request->get['filter_name'],
'start' => 0,
'limit' => 5
);
$results = $this->model_extension_shipping_correios->getZones($filter_data);
foreach ($results as $result) {
$json[] = array(
'zone_id' => $result['zone_id'],
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),
'code' => $result['code']
);
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
public function install() {
$this->load->model('setting/setting');
$result = $this->model_setting_setting->getSetting('shipping_correios');
if (!$result) {
$data = array();
$data['shipping_correios_servicos'][] = array(
"codigo" => "04014",
"nome" => "SEDEX",
"tipo" => "sedex",
"status" => "1",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "0",
"declarar_valor_codigo" => "032",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04065",
"nome" => "SEDEX a Cobrar",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "1",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "1",
"declarar_valor_codigo" => "032",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "40215",
"nome" => "SEDEX 10",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "10",
"mao_propria" => "0",
"mao_propria_codigo" => "002",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "001",
"declarar_valor" => "0",
"declarar_valor_codigo" => "019",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "40169",
"nome" => "SEDEX 12",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "10",
"mao_propria" => "0",
"mao_propria_codigo" => "002",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "001",
"declarar_valor" => "0",
"declarar_valor_codigo" => "019",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "40290",
"nome" => "SEDEX Hoje",
"tipo" => "sedex",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "10000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "10",
"mao_propria" => "0",
"mao_propria_codigo" => "",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "",
"declarar_valor" => "0",
"declarar_valor_codigo" => "019",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04510",
"nome" => "PAC",
"tipo" => "pac",
"status" => "1",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "3000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "0",
"declarar_valor_codigo" => "064",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04707",
"nome" => "PAC a Cobrar",
"tipo" => "pac",
"status" => "0",
"a_cobrar" => "1",
"postcode" => "37540000",
"max_declarado" => "3000",
"min_declarado" => "25",
"max_soma_lados" => "200",
"min_soma_lados" => "29",
"max_lado" => "105",
"max_peso" => "30",
"mao_propria" => "0",
"mao_propria_codigo" => "045",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "039",
"declarar_valor" => "1",
"declarar_valor_codigo" => "064",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "79.00",
"operacao" => "online"
);
$data['shipping_correios_servicos'][] = array(
"codigo" => "04227",
"nome" => "PAC Mini",
"tipo" => "pac_mini",
"status" => "0",
"a_cobrar" => "0",
"postcode" => "37540000",
"max_declarado" => "100",
"min_declarado" => "10.25",
"max_soma_lados" => "44",
"min_soma_lados" => "26",
"max_lado" => "24",
"max_peso" => "0.3",
"mao_propria" => "0",
"mao_propria_codigo" => "",
"aviso_recebimento" => "0",
"aviso_recebimento_codigo" => "001",
"declarar_valor" => "1",
"declarar_valor_codigo" => "065",
"total" => "",
"prazo_adicional" => "",
"adicional_manuseio" => "0",
"operacao" => "online"
);
$this->model_setting_setting->editSetting('shipping_correios', $data);
}
$this->load->model('extension/shipping/correios');
$this->model_extension_shipping_correios->criarTabelas();
}
/*
Não modifique, desative ou delete pois pode ser denunciado por pirataria e também expulso da plataforma OpenCart.com
*/
public function validar($license_key) {
$domain = parse_url(HTTP_SERVER);
$domain = $domain['host'];
$domain = str_replace('www.', '', $domain);
$domain = str_replace('http://', '', $domain);
$domain = str_replace('https://', '', $domain);
$domain = str_replace('/', '', $domain);
$domain = strtolower($domain);
$post_data = array(
'license_key' => trim($license_key),
'domain' => $domain,
'product_id' => '60,50,980,63,62,65',
'version' => defined('VERSION') ? VERSION : '',
'store' => $this->config->get('config_name'),
'email' => $this->config->get('config_email')
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'OpenCart Extension Licensing System');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'https://www.julioguimaraes.com/opencart/index.php?route=tool/venda/call');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
$response = curl_exec($curl);
if (curl_errno($curl)) {
$curl_error = 'Error ' . curl_errno($curl) . ': ' . curl_error($curl);
} else {
$curl_error = '';
}
curl_close($curl);
$response = json_decode($response, true);
if (isset($response['error'])) {
return array(
'error' => $response['error'],
'success' => false
);
} else if (isset($response['success'])) {
$this->load->model('extension/shipping/correios');
$this->model_extension_shipping_correios->in($license_key, $domain);
return array(
'error' => false,
'success' => true
);
} else {
$this->log->write(print_r($response, true));
return array(
'error' => 'Não foi possível conectar ao servidor de ativação da licença. Por favor, confira se seu servidor está conectado na internet.' . $curl_error,
'success' => false
);
}
}
public function ativar() {
$json = array();
if (isset($this->request->get['license_key'])) {
$license_key = $this->request->get['license_key'];
} else {
$license_key = '';
}
if ($license_key) {
$result = $this->validar($license_key);
if ($result['error']) {
$json['error'] = $result['error'];
} else {
$json['success'] = $result['success'];
$code = 'shipping_correios';
$key = 'shipping_correios_chave';
$this->load->model('setting/setting');
$data = $this->model_setting_setting->getSetting($code);
$data[$key] = $license_key;
$this->model_setting_setting->editSetting($code, $data);
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
public function uninstall() {
if (file_exists(DIR_STORAGE . 'cp.sys')) {
unlink(DIR_STORAGE . 'cp.sys');
}
}
}