model = new PackagesModel(); } /** * returns json array with virtual products available by categories * @return array with products info */ public function getVirtualProductsByCategories(){ echo json_encode($this->model->getVirtualProductsByCategories()); } public function getProductsByCategory() { $country = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0; echo json_encode($this->model->getProductsByCategory($country)); } /** * returns a failure or success message for adding the template package in the DB * @return a failure or success message */ public function createTemplatePackagesData(){ $packageInfo = isset($_REQUEST['packageInfo']) ? $_REQUEST['packageInfo'] : []; $products = isset($_REQUEST['products']) ? $_REQUEST['products'] : []; echo json_encode($this->model->createTemplatePackagesData($packageInfo, $products)); } /** * returns a failure or success message for adding the package in the DB * @return a failure or success message */ public function createPackagesData(){ $packageData = isset($_REQUEST['packageData']) ? $_REQUEST['packageData'] : []; $packageInfo = isset($_REQUEST['packageInfo']) ? $_REQUEST['packageInfo'] : []; echo json_encode($this->model->createPackagesData($packageData, $packageInfo)); } /** * returns json array with table headers for packages * @return list all columns headers */ public function getPackagesHeaders(){ echo json_encode($this->model->getPackagesHeaders('array')); } /** * returns json response for packages * @return list packages json */ public function getPackages(){ $idCountry = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0; $data = ['data' => $this->model->getPackages($idCountry)]; echo json_encode($data); } /** * returns json array with table headers for my packages * @return list all columns headers */ public function getMyPackagesHeaders(){ echo json_encode($this->model->getMyPackagesHeaders('array')); } /** * returns json response for my packages * @return list my packages json */ public function getMyPackages(){ $country = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0; $data = ['data' => $this->model->getMyPackages($country)]; echo json_encode($data); } public function getCustomerPrices() { $idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $idCustomer = isset($_REQUEST['idCustomer']) ? $_REQUEST['idCustomer'] : 0; echo json_encode($this->model->getCustomerPrices($idPackage, $idCustomer)); } public function uploadNewImage() { $file = isset($_FILES['file']) ? $_FILES['file'] : []; $options = isset($_REQUEST['options']) ? $_REQUEST['options'] : []; echo json_encode($this->model->uploadNewImage($file, $options)); } public function getImagesFromCdn() { $idCountry = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0; $idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; echo json_encode($this->model->getImagesFromCdn($idCountry, $idPackage)); } public function saveCoverPhotoForPackage() { $idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $publicId = isset($_REQUEST['publicId']) ? $_REQUEST['publicId'] : ''; echo json_encode($this->model->saveCoverPhotoForPackage($idPackage, $publicId)); } /** * include packages template */ public function packagesTemplate(){ global $user; require_once('templates/PackagesTemplate.php'); } /** * include create packages tempalte */ public function createTemplatePackagesTemplate(){ require_once('templates/CreateTemplatePackagesTemplate.php'); } /** * include create packages tempalte */ public function createPackagesTemplate(){ require_once('templates/CreatePackagesTemplate.php'); } /** * include create packages from template template */ public function createPackagesFromTemplateTemplate(){ require_once('templates/CreatePackagesFromTemplateTemplate.php'); } /** * include view package process template */ public function viewPackageProcessesTemplate() { require_once('templates/ViewPackageProcessesTemplate.php'); } /** * include edit packages template */ public function editPackagesTemplate() { require_once('templates/EditPackagesTemplate.php'); } /** * include generic package products by categoruies drag and drop lists */ public function productsByCategoriesDragDropTemplate() { require_once('templates/ProductsByCategoriesDragDropTemplate.php'); } /** * include generic package template products by categories drag and drop lists */ public function productsTemplateByCategoriesDragDropTemplate() { require_once('templates/ProductsTemplateByCategoriesDragDropTemplate.php'); } /** * include custom html for editing package templates */ public function editPackageTemplatesHtml() { require_once('templates/EditPackageTemplatesHtml.php'); } /** * include add packages process template */ public function addPackageProcessTemplate() { require_once('templates/AddPackageProcessTemplate.php'); } /** * include select package template * @return html template for select package */ public function selectPackage() { require_once('templates/SelectPackage.html'); } /** * include my package details template * @return html template for my packages details */ public function myPackagesDetails() { require_once('templates/MyPackagesDetails.html'); } /** * include set price for package temmplate * @return html template for set package price */ public function setPackagePrice() { require_once('templates/SetPackagePrice.html'); } /** * include temmplate for adding virtual products * @return html template for adding virtual products */ public function addVirtualProductsTemplate() { require_once('templates/AddVirtualProductsTemplate.php'); } /** * include temmplate for package options * @return html template for package options */ public function packageOptionsTemplate() { require_once('templates/PackageOptionsTemplate.html'); } /** * include temmplate for uploading images with CDN * @return html template for image upload */ public function uploadImageCdnTemplate() { require_once('templates/UploadImageCdnTemplate.php'); } /** * include template for viewing images from CDN * @return html template for image viewing */ public function displayCdnImagesTemplate() { require_once('templates/DisplayCdnImagesTemplate.php'); } /** * include temmplate for package details * @return html template for package details */ public function packagesDetailsTemplate(){ global $user; require_once('templates/PackagesDetailsTemplate.php'); } /** * get all commecrial lead customers linked to package * @return json list with commercial lead customers */ public function getComercialLeadCustomers(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; echo json_encode($this->model->getComercialLeadCustomers($idPacakge)); } /** * get details for a pacakge * @return json package details */ public function getPackageInfo(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; echo json_encode($this->model->getPackageInfo($idPacakge)); } /** * get prices for a package (for broker and if set for commercial lead) * @return json price list */ public function getBrokerPriceList(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $idCustomer = isset($_REQUEST['idCustomer']) ? $_REQUEST['idCustomer'] : 0; echo json_encode($this->model->getBrokerPriceList($idPacakge, $idCustomer)); } /** * update dfeault prices for a commercial lead * @return json update message */ public function updateDefaultPrices(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $defaultPrices = isset($_REQUEST['defaultPrices']) ? $_REQUEST['defaultPrices'] : []; echo json_encode($this->model->updateDefaultPrices($idPacakge, $defaultPrices)); } /** * update insert or update a price list for the commercial lead * @return json update message */ public function updateMyPackage(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $selectedCustomers = isset($_REQUEST['selectedCustomers']) ? $_REQUEST['selectedCustomers'] : []; echo json_encode($this->model->updateMyPackage($idPacakge, $selectedCustomers)); } /** * get prices by types and supplier products total price * @return json lit of prices */ public function getPriceTypes(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $sumBy = isset($_REQUEST['sumBy']) ? $_REQUEST['sumBy'] : 'type'; echo json_encode($this->model->getPriceTypes($idPacakge, $sumBy), JSON_NUMERIC_CHECK); } /** * update values for package prices and comission split * @return josn update message */ public function updateBrokerPricesAndCommission(){ $idPacakge = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $prices = isset($_REQUEST['prices']) ? $_REQUEST['prices'] : []; $commissionSplit = isset($_REQUEST['commissionSplit']) ? $_REQUEST['commissionSplit'] : []; echo json_encode($this->model->updateBrokerPricesAndCommission($idPacakge, $prices, $commissionSplit)); } /** * returns json response for template packages * @return list template packages json */ public function getTemplatePackages(){ echo json_encode($this->model->getTemplatePackages()); } /** * returns json response for editable template packages * @return list template packages json */ public function getTemplatePackagesForEdit(){ echo json_encode($this->model->getTemplatePackagesForEdit()); } /** * get products for selected package * @return json list of products */ public function getProductsInPackage(){ $idCountry = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0; $idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; echo json_encode($this->model->getProductsInPackage($idCountry, $idPackage)); } /** * update packages * @return status message */ public function updateInformationDataInPackage(){ $packageData = isset($_REQUEST['packageData']) ? $_REQUEST['packageData'] : '[]'; $packageInfo = isset($_REQUEST['packageInfo']) ? $_REQUEST['packageInfo'] : '[]'; echo json_encode($this->model->updateInformationDataInPackage($packageData, $packageInfo)); } /** * update package templates * @return status message */ public function updateInformationDataInPackageTemplate(){ $packageInfo = isset($_REQUEST['packageInfo']) ? $_REQUEST['packageInfo'] : '[]'; $products = isset($_REQUEST['products']) ? $_REQUEST['products'] : '[]'; echo json_encode($this->model->updateInformationDataInPackageTemplate($packageInfo, $products)); } /** * get all product categories */ public function getProductCategories() { echo json_encode($this->model->getProductCategories()); } /** * insert new virtual product */ public function addVirtualProduct() { $productName = isset($_REQUEST['productName']) ? $_REQUEST['productName'] : ''; $idCategory = isset($_REQUEST['idCategory']) ? $_REQUEST['idCategory'] : 0; echo json_encode($this->model->addVirtualProduct($productName, $idCategory)); } /** * insert new virtual product */ public function getOptionsAndPackages() { $idCountry = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0; echo json_encode($this->model->getOptionsAndPackages($idCountry)); } public function getPackageTypes(){ echo json_encode($this->model->getPackageTypes()); } public function updatePackageOptions(){ $idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0; $groups = isset($_REQUEST['groups']) ? $_REQUEST['groups'] : '[]'; $additionalPackages = isset($_REQUEST['additionalPackages']) ? $_REQUEST['additionalPackages'] : '[]'; echo json_encode($this->model->updatePackageOptions($idPackage, $groups, $additionalPackages)); } /** * open packages page */ public function showPage(){ require_once('PackagesPage.php'); } }