first commit

This commit is contained in:
2024-12-17 13:43:22 +01:00
commit 8e6cd8b410
21292 changed files with 3514826 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
<?php
class AdminEpakaController extends ModuleAdminController
{
public function displayAjaxGetEpakaOrderHtml()
{
$orderId = Tools::getValue('id_order');
$epakaOrder = new EpakaOrder();
try{
$htmlOrderForm = $epakaOrder->getFormOrderHtml($orderId);
}catch(Exception $e){
die(json_encode(array('status' => 'ERROR', 'ERROR' => $e->getMessage())));
}
$this->context->smarty->assign(array('htmlOrderForm' => $htmlOrderForm));
$htmlContent = $this->context->smarty->fetch(__DIR__.'/../../views/templates/admin/order-html.tpl');
header('Content-Type: text/html');
echo $htmlContent;
}
public function displayAjaxGetEpakaOrderIframe()
{
$url_html = Tools::getValue('url_html');
$this->context->smarty->assign(array('url_html' => $url_html));
$htmlIframe = $this->context->smarty->fetch(__DIR__.'/../../views/templates/admin/order-iframe.tpl');
header('Content-Type: text/html');
echo $htmlIframe;
}
public function displayAjaxSendOrder()
{
$orderId = Tools::getValue('id_order');
$prestaOrder = new Order($orderId);
$epakaOrder = new EpakaOrder();
$newOrderData = $epakaOrder->prepareOrderData($_POST['data']);
$apiResponse = $epakaOrder->sendOrder($newOrderData);
if ($apiResponse && $apiResponse->status == "OK") {
// dodanie ID Epaka do tabeli w prescie
$epakaDB = new EpakaDB();
$updateResult = $epakaDB->addEpakaId($prestaOrder->id_cart, $apiResponse->orderId);
// aktualizacja statusu zamowienia presty
// $history = new OrderHistory();
// $history->id_order = (int)$objOrder->id;
// $result = $history->changeIdOrderState(4, (int)($objOrder->id));
die(json_encode($apiResponse));
} elseif ($apiResponse && $apiResponse->status == "ERROR") {
die(json_encode($apiResponse));
}
die(json_encode(array('status' => 'ERROR', 'message' => 'Błąd akcji wysyłania zamówienia. Skontaktuj się z administratorem serwisu epaka.pl')));
}
public function displayAjaxChangeOrderState()
{
$orderId = Tools::getValue('id_order');
$statusId = Tools::getValue('id_status');
$objOrder = new Order($orderId);
$history = new OrderHistory();
$history->id_order = (int)$objOrder->id;
$result = $history->changeIdOrderState((int)$statusId, (int)($objOrder->id));
die(json_encode(array('status' => 'OK', 'message' => 'Pomyślnie przestawiono status')));
}
public function displayAjaxGetOrderLabel()
{
$id_order = Tools::getValue('id_order');
$zebra = Tools::getValue('zebra');
$prestaOrder = new Order((int)$id_order);
$carrierReference = EpakaDB::checkIfIsOrderReferenceIsOK((int)$prestaOrder->id_cart, (int)$prestaOrder->id_carrier);
$epakaOrder = new EpakaOrder();
$apiResponse = $epakaOrder->getOrderLabel($carrierReference['id_epaka_order'], $zebra);
if ($apiResponse && $apiResponse->status == "OK") {
die(json_encode($apiResponse));
}
die(json_encode(array('status' => 'ERROR', 'message' => 'Błąd pobierania etykiety. Skontaktuj się z administratorem serwisu epaka.pl')));
}
public function displayAjaxGetOrderProtocol()
{
$id_order = Tools::getValue('id_order');
$prestaOrder = new Order((int)$id_order);
$carrierReference = EpakaDB::checkIfIsOrderReferenceIsOK((int)$prestaOrder->id_cart, (int)$prestaOrder->id_carrier);
$epakaOrder = new EpakaOrder();
$apiResponse = $epakaOrder->getOrderProtocol($carrierReference['id_epaka_order']);
if ($apiResponse && $apiResponse->status == "OK") {
die(json_encode($apiResponse));
}
die(json_encode(array('status' => 'ERROR', 'message' => 'Błąd pobierania protokołu. Skontaktuj się z administratorem serwisu epaka.pl')));
}
public function displayAjaxGetOrderCancel()
{
$id_order = Tools::getValue('id_order');
$prestaOrder = new Order((int)$id_order);
$carrierReference = EpakaDB::checkIfIsOrderReferenceIsOK((int)$prestaOrder->id_cart, (int)$prestaOrder->id_carrier);
$epakaOrder = new EpakaOrder();
$apiResponse = $epakaOrder->cancelOrder($carrierReference['id_epaka_order']);
if ($apiResponse) {
if ($apiResponse->status=="OK" || $apiResponse->status=="ERROR") {
$epakaDB = new EpakaDB();
$updateResult = $epakaDB->delEpakaId($prestaOrder->id_cart);
}
die(json_encode($apiResponse));
}
die(json_encode(array('status' => 'ERROR', 'message' => 'Błąd anulowania zlecenia. Skontaktuj się z administratorem serwisu epaka.pl')));
}
}

View File

@@ -0,0 +1,128 @@
<?php
require_once __DIR__.'/../../src/EpakaApi.php';
require_once __DIR__.'/../../src/EpakaDB.php';
class EpakaMapModuleFrontController extends ModuleFrontController
{
private $api = null;
private $DB = null;
public function __construct()
{
parent::__construct();
// $this->display_column_left = false;
// $this->display_column_right = false;
$this->api = new EpakaApi();
$this->DB = new EpakaDB();
}
public function displayAjaxGetMachinesPoints()
{
if (!empty($epaka_api_email = Configuration::get('EPAKA_API_EMAIL')) &&
!empty($epaka_api_password = Configuration::get('EPAKA_API_PASSWORD')) &&
!empty($epaka_api_session = Configuration::get('EPAKA_API_SESSION'))) {
$this->api->init($epaka_api_email, $epaka_api_password, $epaka_api_session);
}
$endpoint = !empty(Tools::getValue('endpoint')) ? urldecode(Tools::getValue('endpoint')) : 'getInpostMachines.xml';
if (!$this->api->connected()) {
// $this->api->getApiTokenAuth(Configuration::get('EPAKA_API_EMAIL'), Configuration::get('EPAKA_API_PASSWORD'));
die(json_encode(array('status' => 'error', 'message' => 'Connection failed!', 'endpoint' => $endpoint)));
}
$responseType = "XML";
if(preg_match('/map_popup/', $endpoint)){
$responseType = "JSON";
}
$postData = $this->api->getMap(null, $endpoint, $_POST, $responseType);
die(json_encode($postData));
}
public function displayAjaxValidateMachinePoints()
{
$id_cart = Context::getContext()->cart->id;
if (empty($id_cart)) {
die(json_encode(['status' => 'error', 'message' => 'Wybierz']));
}
$id_carrier_prestashop = Tools::getValue('id_carrier_prestashop');
$id_carrier_epaka = Tools::getValue('id_carrier_epaka');
if (!empty($id_carrier_prestashop) && !empty($id_carrier_epaka)) {
// jesli kurier jest bez punktu odbioru (normalny kurier d2d)
$referencjeEpaka = $this->DB->getCourriersRelations($id_carrier_prestashop, $id_carrier_epaka);
if (!empty($referencjeEpaka) && count($referencjeEpaka) && $referencjeEpaka[0]['epaka_carrier_delivery_type'] == "d2d") {
die(json_encode(array('status' => 'ok')));
} elseif (empty($referencjeEpaka)) {
die(json_encode(array('status' => 'error', 'message' => 'Nie znaleziono referencji prestashop <-> epaka.')));
}
if ($this->DB->checkIfIsOrderReferenceIsOK($id_cart, $id_carrier_prestashop, $id_carrier_epaka)) {
die(json_encode(array('status' => 'ok')));
} else {
die(json_encode(array('status' => 'error', 'message' => 'Wybierz punkt odbioru.')));
}
}
die(json_encode(array('status' => 'ok')));
}
public function displayAjaxSaveMachinePoints()
{
$id_cart = Context::getContext()->cart->id;
if (empty($id_cart)) {
die(json_encode(['status' => 'error', 'message' => 'Błąd zapisu punktu odbioru.']));
}
$id_carrier_prestashop = Tools::getValue('id_carrier_prestashop');
$id_carrier_epaka = Tools::getValue('id_carrier_epaka');
$point_code = Tools::getValue('point_code');
$point_name = Tools::getValue('point_name');
if (!empty($id_carrier_prestashop) && (!empty($id_carrier_epaka) || $id_carrier_epaka=='0')) {
$insertData = [
'id_cart' => $id_cart,
'id_carrier_prestashop' => $id_carrier_prestashop,
'id_carrier_epaka' => $id_carrier_epaka,
];
if (!empty($point_code)) {
$insertData['point_code'] = $point_code;
} else {
$insertData['point_code'] = NULL;
}
if (!empty($point_name)) {
$insertData['point_name'] = $point_name;
} else {
$insertData['point_name'] = NULL;
}
// $result = Db::getInstance()->insert('epaka_delivery',$insertData, false, true, Db::ON_DUPLICATE_KEY);
// $result = Db::insertRelation(
// $insertData['id_cart'],
// $insertData['id_carrier_prestashop'],
// $insertData['id_carrier_epaka'],
// $insertData['point_code'],
// $insertData['point_name'],
// NULL
// );
$result = $this->DB->insertRelation(
$insertData['id_cart'],
$insertData['id_carrier_prestashop'],
$insertData['id_carrier_epaka'],
$insertData['point_code'],
$insertData['point_name'],
NULL
);
if($result){
die(json_encode(['status' => 'ok']));
}
}
die(json_encode(['status' => 'error', 'message' => 'Błąd zapisu punktu odbioru.']));
}
}