Files
old-wiaas-legacy/api-wiaas/server/components/v2/packages/PackageDocuments.php
2018-06-11 11:09:35 +02:00

87 lines
2.9 KiB
PHP

<?php
class PackageDocuments{
private function getProductDocuments($idPackage = 0){
global $database, $user;
$whreSql = "";
$maxInstWhereSql = "";
$data = [];
if($user->getUserType() !== USER_TYPES['BROKER']){
$whreSql = " AND visibleToCustomer=1";
}
if($idPackage !== 0){
$whreSql .= " AND rpp.idPackage=$idPackage";
$maxInstWhereSql = "AND idPackage=$idPackage";
}
$sql = "SELECT
d.id AS idDocument,
d.documentName,
d.documentPath,
d.extension,
dt.type AS documentType,
rpp.idPackage,
rpd.idProduct
FROM ".TABLES['rel_product_documents']." rpd
INNER JOIN ".TABLES['documents']." d
ON d.id=rpd.idDocument
INNER JOIN ".TABLES['document_types']." dt
ON dt.id=d.idDocumentType
INNER JOIN ".TABLES['rel_package_products']." rpp
ON rpp.idProduct=rpd.idProduct
INNER JOIN (
SELECT MAX(packageInstance) as maxInstance
FROM ".TABLES['rel_package_products']."
WHERE 1=1 $maxInstWhereSql
GROUP BY idPackage
) max_inst
ON max_inst.maxInstance=rpp.packageInstance
WHERE 1=1 $whreSql
";
$query = $database->query($sql);
while($row = $database->fetchArray($query)){
$data[$row['idPackage']][] = $row;
}
return $data;
}
/**
* get package documents
* @param INT $idPackage id for the pacakge
* @return Array list of documents
*/
public function getPackageDocuments($idPackage = 0){
global $database;
$data[$idPackage] = [];
$whereSql = $idPackage !== 0 ? "WHERE rpd.idPackage=$idPackage" : "";
$sql = "SELECT
d.id AS idDocument,
d.documentName,
d.extension,
rpd.idPackage
FROM ".TABLES['documents']." d
INNER JOIN ".TABLES['document_types']." dt
ON dt.id=d.idDocumentType
INNER JOIN ".TABLES['rel_package_documents']." rpd
ON rpd.idDocument=d.id
$whereSql ";
$query = $database->query($sql);
while($row = $database->fetchArray($query)){
$data[$row['idPackage']][] = $row;
}
$productDocuments = $this->getProductDocuments($idPackage);
foreach ($data as $idPackage => &$documents) {
if(isset($productDocuments[$idPackage])){
$documents = array_merge($documents, $productDocuments[$idPackage]);
}
}
return $data;
}
}