Files
old-wiaas-legacy/api-wiaas/server/components/v1/shop/ShopController.php
2018-06-11 11:09:35 +02:00

190 lines
5.9 KiB
PHP

<?php
/**
* ShopController controlls the actions for the shop
*/
class ShopController{
private $model;
function __construct(){
$this->model = new ShopModel();
}
/**
* get all packages taht can be sold
* @return json all packages that can be sold in web shop
*/
public function getShopPackages(){
$idCommercialLead = isset($_REQUEST['idCommercialLead']) ? $_REQUEST['idCommercialLead'] : 0;
$serach = isset($_REQUEST['search']) ? $_REQUEST['search'] : '';
echo json_encode($this->model->getShopPackages($idCommercialLead, 0, $serach));
}
/**
* get web shop details for a package
* @return json package details
*/
public function getShopPackageDetails(){
$idCommercialLead = isset($_REQUEST['idCommercialLead']) ? $_REQUEST['idCommercialLead'] : 0;
$idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0;
echo json_encode($this->model->getShopPackageDetails($idCommercialLead, $idPackage));
}
/**
* add items to cart
*/
public function addToCart(){
$idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0;
$idPrice = isset($_REQUEST['idPrice']) ? $_REQUEST['idPrice'] : 0;
$options = isset($_REQUEST['options']) ? $_REQUEST['options'] : '[]';
echo json_encode($this->model->addToCart($idPackage, $idPrice, $options));
}
/**
* update quantity for a product
* @return json update message
*/
public function updateQuantity(){
$idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0;
$idPrice = isset($_REQUEST['idPrice']) ? $_REQUEST['idPrice'] : 0;
$idCustomerInstance = isset($_REQUEST['idCustomerInstance']) ? $_REQUEST['idCustomerInstance'] : 0;
$quantity = isset($_REQUEST['quantity']) ? $_REQUEST['quantity'] : 1;
echo json_encode($this->model->updateQuantity($idPackage, $idCustomerInstance, $idPrice, $quantity));
}
/**
* remove items from carts
* @return json update message
*/
public function removeFromCart(){
$idCart = isset($_REQUEST['idCart']) ? $_REQUEST['idCart'] : 0;
echo json_encode($this->model->removeFromCart($idCart));
}
/**
* get the name and code of the country
*/
public function getCountryDetailsById() {
$idCountry = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0;
echo json_encode($this->model->getCountryDetailsById($idCountry));
}
/**
* get count of items in te cart
* @return json number of items in the cart
*/
public function getShopCartCount(){
echo json_encode($this->model->getShopCartCount());
}
/**
* get all comercial leads lined to the user
* @return json list of commercial leads
*/
public function getAllCommercialLeads(){
echo json_encode($this->model->getAllCommercialLeads());
}
/**
* get web shop cart content
* @return josn list of packages in the cart
*/
public function getShopCart(){
echo json_encode($this->model->getShopCart());
}
/**
* gets the details for the customer logged in, if any
* @return Array of details
*/
public function getCustomerDetails() {
echo json_encode($this->model->getCustomerDetails());
}
/**
* get the countries for delivery address
* @return array with countries available
*/
public function getCountries() {
echo json_encode($this->model->getCountries());
}
public function placeOrder() {
$cartPackages = isset($_REQUEST['cartPackages']) ? $_REQUEST['cartPackages'] : '[]';
$deliveryInfo = isset($_REQUEST['deliveryInfo']) ? $_REQUEST['deliveryInfo'] : '[]';
$billingInfo = isset($_REQUEST['billingInfo']) ? $_REQUEST['billingInfo'] : '[]';
$details = isset($_REQUEST['details']) ? $_REQUEST['details'] : '[]';
echo json_encode($this->model->placeOrder($cartPackages, $deliveryInfo, $billingInfo, $details));
}
/**
* get document sfor packages in cart
* @return json Array of documents
*/
public function getCartDocuments(){
$packages = isset($_REQUEST['packages']) ? $_REQUEST['packages'] : '[]';
echo json_encode($this->model->getCartDocuments($packages));
}
/**
* upload a questionaire form the cart page
* @return json upload message
*/
public function uploadOrderDocument(){
$file = isset($_FILES['file']) ? $_FILES['file'] : [];
$idDocumentType = isset($_REQUEST['idDocumentType']) ? $_REQUEST['idDocumentType'] : '';
$idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0;
echo json_encode($this->model->uploadOrderDocument($file, $idDocumentType, $idPackage));
}
/**
* incude template for serach input
*/
public function shopPackageSearchTemplate(){
require_once('templates/ShopPackageSearchTemplate.php');
}
/**
* include shop template
*/
public function shopTemplate(){
require_once('templates/ShopTemplate.php');
}
/**
* template for showing the packages in the shop
*/
public function shopPackagesTemplate(){
require_once('templates/ShopPackagesTemplate.php');
}
/**
* tempalte for showing details for a selected package
*/
public function shopPackageDetailsTemplate(){
global $user;
require_once('templates/ShopPackageDetailsTemplate.php');
}
/**
* get template for shop cart
*/
public function shopCartTemplate(){
require_once('templates/ShopCartTemplate.php');
}
/**
* get template for the cart review
*/
public function cartReview() {
require_once('templates/CartReview.php');
}
/**
* open shop page
*/
public function showPage(){
require_once('ShopPage.php');
}
}