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

116 lines
4.3 KiB
PHP

<?php
class Bids {
public function getCartBids(){
global $database, $user;
$bids = [];
$pricesHandler = new Prices();
$interestRate = new InterestRate();
$interestRateValue = $interestRate->getInterestRate()['interestRate'];
$interestRateCustomers = $interestRate->getInterestRateForCustomers();
$sql = "SELECT
pb.id AS idBid,
pb.bidNumber,
pb.idPackage,
p.name AS packageName,
pb.idCustomerInstance,
pb.fixedExtra,
pb.recurrentExtra,
pb.servicesExtra,
c.id AS idCustomer,
c.name AS customer,
cl.name AS commercialLead,
pb.idPaymentType,
pt.payType,
pt.packagePayPeriod,
pt.periodUnit,
DATE_FORMAT(pb.startDate, '%D %b, %Y') AS startDate,
DATE_FORMAT(pb.endDate, '%D %b, %Y') AS endDate,
pb.fixedPrice,
pb.principalAmount,
pb.servicesPrice
FROM ".TABLES['packages_bids']." pb
INNER JOIN (
SELECT wsc.idPackage, wsc.idCustomerInstance, plcl.idPaymentType
FROM ".TABLES['web_shop_cart']." wsc
INNER JOIN ".TABLES['price_list_commercial_lead']." plcl
ON plcl.id=wsc.idPrice
WHERE wsc.idUser=".$user->getUserId()."
) wsc
ON wsc.idPackage=pb.idPackage AND wsc.idCustomerInstance=pb.idCustomerInstance AND wsc.idPaymentType=pb.idPaymentType
INNER JOIN ".TABLES['packages']." p
ON p.id=pb.idPackage
INNER JOIN ".TABLES['rel_commercial_lead_customers']." rclc
ON rclc.id=pb.idCustomerInstance
INNER JOIN ".TABLES['customers']." c
ON c.id=rclc.idCustomer
INNER JOIN ".TABLES['commercial_leads']." cl
ON cl.id=rclc.idCommercialLead
INNER JOIN ".TABLES['payment_types']." pt
ON pt.id=pb.idPaymentType
WHERE pb.endDate > NOW()
ORDER BY pb.bidNumber";
$query = $database->query($sql);
while($row = $database->fetchArray($query)){
$interestRateCust = $row['idCustomer'] && isset($interestRateCustomers[$row['idCustomer']]) ?
floatval($interestRateCustomers[$row['idCustomer']]) :
$interestRateValue;
$row['recurrentPrice'] = $row['packagePayPeriod'] > 0
? $pricesHandler->PMT($interestRateCust / 100, $row['packagePayPeriod'], $row['principalAmount'])
: 0;
$row['fixedPrice'] = floatval($row['fixedPrice']) + floatval($row['fixedExtra']);
$row['recurrentPrice'] = floatval($row['recurrentPrice']) + floatval($row['recurrentExtra']);
$row['servicesPrice'] = floatval($row['servicesPrice']) + floatval($row['servicesExtra']);
unset($row['fixedExtra']);
unset($row['recurrentExtra']);
unset($row['servicesExtra']);
$bids[$row['idPackage']][] = $row;
}
return $bids;
}
public function setBidForCart($idBid, $idCart){
global $database;
$data = [];
if(!$idBid){
$idBid = 'NULL';
}
if(!$idCart){
$data['messages'][] =[
'code' => 'error',
'message' => 'CART_REQUIRED'
];
return $data;
}
$idBid = $database->escapeValue($idBid);
$idCart = $database->escapeValue($idCart);
$sql = "UPDATE ".TABLES['web_shop_cart']."
SET idBid=$idBid
WHERE id=$idCart";
$query = $database->query($sql);
if($database->affectedRows() !== 1){
$data['messages'][] =[
'code' => 'error',
'message' => 'BID_NOT_USED'
];
}else{
$data['messages'][] = [
'code' => 'success',
'message' => 'BID_SET'
];
}
return $data;
}
}