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

185 lines
6.4 KiB
PHP

<?php
/**
* SuppliersController controls the actions for suppliers
*/
class SuppliersController{
private $model;
function __construct(){
$this->model = new SuppliersModel();
}
/**
* returns json array with table headers for suppliers
* @return list all columns headers
*/
public function getSuppliersHeaders(){
echo json_encode($this->model->getSuppliersHeaders('array'));
}
/**
* returns json response for suppliers
* @return list suppliers json
*/
public function getSuppliers(){
$getArray = isset($_REQUEST['getArray']) ? $_REQUEST['getArray'] : false;
$data = ['data' => $this->model->getSuppliers($getArray)];
echo json_encode($data);
}
/**
* returns json response for suppliers products
* @return list all products for suppliers json
*/
public function getSuppliersProducts(){
$idCountry = isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0;
$idProduct = isset($_REQUEST['idProduct']) ? $_REQUEST['idProduct'] : 0;
$data = ['data' => $this->model->getSuppliersProducts($idCountry, $idProduct)];
echo json_encode($data);
}
/**
* returns json array with table headers for suppliers products
* @return list all columns headers
*/
public function getSuppliersProductsHeaders(){
echo json_encode($this->model->getSuppliersProductsHeaders('array'));
}
/**
* parse input for suppliers info
* @return Array suppliers info
*/
private function parseSuppliersData(){
return [
'idSupplier' => isset($_REQUEST['idSupplier']) ? $_REQUEST['idSupplier'] : 0,
'name' => isset($_REQUEST['name']) ? $_REQUEST['name'] : '',
'phone' => isset($_REQUEST['phone']) ? $_REQUEST['phone'] : '',
'mail' => isset($_REQUEST['mail']) ? $_REQUEST['mail'] : '',
'vatCode' => isset($_REQUEST['vatCode']) ? $_REQUEST['vatCode'] : ''
];
}
/**
* edit supplier
* @return json message for the update
*/
public function editSupplier(){
$supplierData = $this->parseSuppliersData();
echo json_encode($this->model->editSupplier($supplierData));
}
/**
* parse input for prodcut
* @return Array product infos
*/
private function parseProductData(){
return [
'idCountry' => isset($_REQUEST['idCountry']) ? $_REQUEST['idCountry'] : 0,
'idProduct' => isset($_REQUEST['idProduct']) ? $_REQUEST['idProduct'] : 0,
'idSupplier' => isset($_REQUEST['idSupplier']) ? $_REQUEST['idSupplier'] : 0,
'idProductCategory' => isset($_REQUEST['productCategory']['id']) ? $_REQUEST['productCategory']['id'] : 0,
'name' => isset($_REQUEST['name']) ? $_REQUEST['name'] : '',
'description' => isset($_REQUEST['description']) ? $_REQUEST['description'] : '',
'unitCostPrice' => isset($_REQUEST['unitCostPrice']) ? $_REQUEST['unitCostPrice'] : '',
'unitVatCost' => isset($_REQUEST['unitVatCost']) ? $_REQUEST['unitVatCost'] : '',
'manufacturerProductNo' => isset($_REQUEST['manufacturerProductNo']) ? $_REQUEST['manufacturerProductNo'] : '',
'supplierProductNo' => isset($_REQUEST['supplierProductNo']) ? $_REQUEST['supplierProductNo'] : '',
'unit' => isset($_REQUEST['unit']) ? $_REQUEST['unit'] : '',
'isPriceRecurring' => isset($_REQUEST['isPriceRecurring']) ? $_REQUEST['isPriceRecurring'] : '',
'payPeriod' => isset($_REQUEST['payPeriod']) ? $_REQUEST['payPeriod'] : 0,
'isAvailable' => isset($_REQUEST['isAvailable']) ? $_REQUEST['isAvailable'] : 1
];
}
/**
* controll for adding a new supplier
* @return json message for the insert
*/
public function addSupplierProduct(){
$productData = $this->parseProductData();
echo json_encode($this->model->addSupplierProduct($productData));
}
/**
* controll for product edit
* @return json message for the update
*/
public function editSupplierProduct(){
$productData = $this->parseProductData();
echo json_encode($this->model->editSupplierProduct($productData));
}
/**
* upload product documents
* @return json messsage for upload documents
*/
public function uploadProductDocument(){
$file = isset($_FILES['file']) ? $_FILES['file'] : [];
$idSupplierProduct = isset($_REQUEST['idSupplierProduct']) ? $_REQUEST['idSupplierProduct'] : 0;
$idDocumentType = isset($_REQUEST['idDocumentType']) ? $_REQUEST['idDocumentType'] : 0;
$documentName = isset($_REQUEST['documentName']) ? $_REQUEST['documentName'] : '';
$visibleToCustomer = isset($_REQUEST['visibleToCustomer']) ? $_REQUEST['visibleToCustomer'] : null;
echo json_encode($this->model->uploadProductDocument($idDocumentType, $idSupplierProduct, $documentName, $visibleToCustomer, $file));
}
/**
* remove product documents
* @return json remove documents for products
*/
public function removeProductDocument(){
$idDocument = isset($_REQUEST['idDocument']) ? $_REQUEST['idDocument'] : 0;
echo json_encode($this->model->removeProductDocument($idDocument));
}
/**
* include suppliers template
*/
public function suppliersTemplate(){
global $user;
require_once('templates/SuppliersTemplate.php');
}
/**
* include suppliers template
*/
public function suppliersAddEditFormTemplate(){
require_once('templates/SuppliersAddEditFormTemplate.php');
}
/**
* include suppliers template
*/
public function suppliersProductsAddEditFormTemplate(){
require_once('templates/SuppliersProductsAddEditFormTemplate.php');
}
/**
* get product categories
*/
public function getProductCategories() {
echo json_encode($this->model->getProductCategories());
}
/**
* include upload product document template template
*/
public function uploadProductDocumentTempalte() {
require_once('templates/UploadProductDocumentTempalte.php');
}
public function showProductDocumentsTemplate() {
require_once('templates/ShowProductDocumentsTemplate.php');
}
/**
* open suppliers page
*/
public function showPage(){
require_once('SuppliersPage.php');
}
}
?>