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

122 lines
4.5 KiB
PHP

<?php
class ClCustomers{
/**
* get customers list linked to the commercial lead
* @return Array list of customers linked to a commercial lead
*/
public function getComercialLeadCustomers(){
global $database, $user;
$idUser = $user->getUserId();
$data = [];
$sql = "SELECT
rclc.id as idCustomerInstance,
c.name AS customerName,
rclc.idOrderType,
IF(u.idCompany = clCompany.idCompany, 1, 0) AS isSameCompanyAsCl
FROM
".TABLES['customers']." c
INNER JOIN ".TABLES['rel_commercial_lead_customers']." rclc
ON rclc.idCustomer=c.id AND isLinkEnabled=1
INNER JOIN ".TABLES['commercial_leads']." cl
ON cl.id=rclc.idCommercialLead
INNER JOIN ".TABLES['users']." u
ON u.id = c.idUser
INNER JOIN
(SELECT
us.idCompany,
us.id
FROM
".TABLES['users']." us
WHERE us.id = $idUser) clCompany
ON clCompany.id = cl.idUser
WHERE cl.idUser=$idUser
";
return $database->fetchResultArray($sql);
}
public function getClAndCustomers(){
global $database, $user;
$data = [];
$sql = "SELECT
rclc.id as idCustomerInstance,
cl.name as commercialLead,
cl.id as idCommercialLead,
c.id AS idCustomer,
c.name AS customer,
IF(u.idCompany = clCompany.idCompany, 1, 0) AS isSameCompanyAsCl
FROM
".TABLES['customers']." c
INNER JOIN ".TABLES['rel_commercial_lead_customers']." rclc
ON rclc.idCustomer=c.id AND isLinkEnabled=1
INNER JOIN ".TABLES['commercial_leads']." cl
ON cl.id=rclc.idCommercialLead
INNER JOIN ".TABLES['users']." u
ON u.id = c.idUser
INNER JOIN
(SELECT
us.idCompany,
us.id
FROM
".TABLES['users']." us) clCompany
ON clCompany.id = cl.idUser
ORDER BY cl.name
";
$query = $database->query($sql);
while($row = $database->fetchArray($query)){
if(!isset($data[$row['idCommercialLead']])){
$data[$row['idCommercialLead']] = [];
}
$data[$row['idCommercialLead']]['idCommercialLead'] = $row['idCommercialLead'];
$data[$row['idCommercialLead']]['commercialLead'] = $row['commercialLead'];
$data[$row['idCommercialLead']]['customers'][] = $row;
}
$data = (array) $data;
usort($data, function($clA, $clB) {
return strnatcasecmp($clA['commercialLead'], $clB['commercialLead']) > 0 ? 1 : -1;
});
return $data;
}
public function getClCustomerInfo($idCommercialLead){
global $database, $user;
$idUser = $user->getUserId();
$data = [];
$sql = "SELECT
rclc.id as idCustomerInstance,
c.name AS customerName,
c.id AS idCustomer,
rclc.idOrderType,
IF(u.idCompany = clCompany.idCompany, 1, 0) AS isSameCompanyAsCl
FROM
".TABLES['customers']." c
INNER JOIN ".TABLES['rel_commercial_lead_customers']." rclc
ON rclc.idCustomer=c.id AND isLinkEnabled=1
INNER JOIN ".TABLES['commercial_leads']." cl
ON cl.id=rclc.idCommercialLead
INNER JOIN ".TABLES['users']." u
ON u.id = c.idUser
INNER JOIN
(SELECT
us.idCompany,
cl.id
FROM
".TABLES['users']." us
INNER JOIN ".TABLES['commercial_leads']." cl
ON cl.idUser=us.id
WHERE cl.id = $idCommercialLead) clCompany
ON clCompany.id = cl.id
WHERE c.idUser=$idUser AND rclc.idCommercialLead=$idCommercialLead";
$query = $database->query($sql);
$data = $database->fetchArray($query);
return $data;
}
}