Current File : /home/karenpetzb/application/models/UserCaddyType.php |
<?php
class UserCaddyType extends Zend_Db_Table
{
protected $_name = 'user_caddytype';
protected $_primary = 'ID';
/*
* Recupere le caddy
*/
public function getCaddyTypeByUser($iduser) {
return $this->select()->where("USERID = ?", $iduser)->query()->fetchAll();
}
public function getArticleByCaddyIdList($idList) {
$sql = "SELECT uct.ID CADDYTYPEID, uct.REFERENCE REFERENCE, uct.USERID USERID, uct.REMISEEURO REMISEEURO, uct.REMISEPOUR REMISEPOUR, uct.isACTIF isCADDYTYPE_ACTIF,
u.NOM USERNOM, u.PRENOM USERPRENOM,
pc.ID IDCHILD, pc.isDEVIS isDEVIS, pc.isPROMO isPROMOCHILD, pc.PRIX PRIX, pc.DESIGNATION DESIGNATION,
pc.QUANTITYMIN QUANTITYMIN, pc.POIDS POIDS, pc.isFRANCODENIED isFRANCODENIED,
p.NOM NOM,p.NAVNOM NAVNOM, p.DESCRIPTIONSHORT DESCSHORT, p.ID IDPRODUCT, pic.URL URL,p.isPROMO isPROMO,
p.STOCK STOCK, p.IDCATEGORY IDCATEGORY, p.IDBREND IDBREND, p.isSHOWBREND isSHOWBREND, p.DATEPROMO DATEPROMO, c.NAVNOM_URLPARENTS NAVNOM_URLPARENTS,
pc.POINTFIDELITE POINTFIDELITE
FROM user_caddytype AS uct
LEFT JOIN user AS u ON uct.USERID = u.ID
LEFT JOIN productchild AS pc ON uct.REFERENCE = pc.REFERENCE
LEFT JOIN product p ON pc.IDPRODUCT = p.ID
LEFT JOIN category c ON p.IDCATEGORY= c.ID
LEFT JOIN picture pic ON pc.IDPRODUCT = pic.IDPRODUCT
WHERE uct.ID IN (".$idList.")
AND pic.POSITION = 1
AND uct.isACTIF = 'Y'
AND p.isACTIVE = 0
ORDER BY uct.REFERENCE ASC";
return $this->getAdapter()->fetchAll($sql);
}
public function getArticleByCaddyId($id) {
$sql = "SELECT uct.ID CADDYTYPEID, uct.REFERENCE REFERENCE, uct.USERID USERID, uct.REMISEEURO REMISEEURO, uct.REMISEPOUR REMISEPOUR, uct.isACTIF isCADDYTYPE_ACTIF,
u.NOM USERNOM, u.PRENOM USERPRENOM,
pc.ID IDCHILD, pc.isDEVIS isDEVIS, pc.isPROMO isPROMOCHILD, pc.PRIX PRIX, pc.DESIGNATION DESIGNATION,
pc.QUANTITYMIN QUANTITYMIN, pc.POIDS POIDS, pc.isFRANCODENIED isFRANCODENIED,
p.NOM NOM,p.NAVNOM NAVNOM, p.DESCRIPTIONSHORT DESCSHORT, p.ID IDPRODUCT, pic.URL URL,p.isPROMO isPROMO,
p.STOCK STOCK, p.IDCATEGORY IDCATEGORY, p.IDBREND IDBREND, p.isSHOWBREND isSHOWBREND, p.DATEPROMO DATEPROMO, c.NAVNOM_URLPARENTS NAVNOM_URLPARENTS
,pc.POINTFIDELITE POINTFIDELITE
FROM user_caddytype AS uct
LEFT JOIN user AS u ON uct.USERID = u.ID
LEFT JOIN productchild AS pc ON uct.REFERENCE = pc.REFERENCE
LEFT JOIN product p ON pc.IDPRODUCT = p.ID
LEFT JOIN category c ON p.IDCATEGORY = c.ID
LEFT JOIN picture pic ON pc.IDPRODUCT = pic.IDPRODUCT
WHERE uct.ID = ".$id."
AND pic.POSITION = 1
AND uct.isACTIF = 'Y'
AND p.isACTIVE = 0
ORDER BY uct.REFERENCE ASC";
return $this->getAdapter()->fetchRow($sql);
}
public function getCaddyTypeByUserFull($iduser) {
$sql = "SELECT uct.ID CADDYTYPEID, uct.REFERENCE REFERENCE, uct.USERID USERID, uct.REMISEEURO REMISEEURO, uct.REMISEPOUR REMISEPOUR, uct.isACTIF isCADDYTYPE_ACTIF,
u.NOM USERNOM, u.PRENOM USERPRENOM,
pc.ID IDCHILD, pc.isDEVIS isDEVIS, pc.isPROMO isPROMOCHILD, pc.PRIX PRIX, pc.DESIGNATION DESIGNATION,
pc.QUANTITYMIN QUANTITYMIN, pc.POIDS POIDS, pc.isFRANCODENIED isFRANCODENIED,
p.NOM NOM,p.NAVNOM NAVNOM, p.DESCRIPTIONSHORT DESCSHORT, p.ID IDPRODUCT, pic.URL URL,p.isPROMO isPROMO,
p.STOCK STOCK, p.IDCATEGORY IDCATEGORY, p.IDBREND IDBREND, p.isSHOWBREND isSHOWBREND, p.DATEPROMO DATEPROMO, c.NAVNOM_URLPARENTS NAVNOM_URLPARENTS
,pc.POINTFIDELITE POINTFIDELITE
FROM user_caddytype AS uct
LEFT JOIN user AS u ON uct.USERID = u.ID
LEFT JOIN productchild AS pc ON uct.REFERENCE = pc.REFERENCE
LEFT JOIN product p ON pc.IDPRODUCT = p.ID
LEFT JOIN category c ON p.IDCATEGORY = c.ID
LEFT JOIN picture pic ON pc.IDPRODUCT = pic.IDPRODUCT
WHERE uct.USERID = ".$iduser."
AND pic.POSITION = 1
ORDER BY uct.REFERENCE ASC";
return $this->getAdapter()->fetchAll($sql);
}
public function getCaddyTypeActiveByUserFull($iduser) {
$sql = "SELECT uct.ID CADDYTYPEID, uct.REFERENCE REFERENCE, uct.USERID USERID, uct.REMISEEURO REMISEEURO, uct.REMISEPOUR REMISEPOUR, uct.isACTIF isCADDYTYPE_ACTIF,
u.NOM USERNOM, u.PRENOM USERPRENOM,
pc.ID IDCHILD, pc.isDEVIS isDEVIS, pc.isPROMO isPROMOCHILD, pc.PRIX PRIX, pc.DESIGNATION DESIGNATION,
pc.QUANTITYMIN QUANTITYMIN, pc.POIDS POIDS, pc.isFRANCODENIED isFRANCODENIED,
p.NOM NOM,p.NAVNOM NAVNOM, p.DESCRIPTIONSHORT DESCSHORT, p.ID IDPRODUCT, pic.URL URL,p.isPROMO isPROMO,
p.STOCK STOCK, p.IDCATEGORY IDCATEGORY, p.IDBREND IDBREND, p.isSHOWBREND isSHOWBREND, p.DATEPROMO DATEPROMO, c.NAVNOM_URLPARENTS NAVNOM_URLPARENTS
,pc.POINTFIDELITE POINTFIDELITE
FROM user_caddytype AS uct
LEFT JOIN user AS u ON uct.USERID = u.ID
LEFT JOIN productchild AS pc ON uct.REFERENCE = pc.REFERENCE
LEFT JOIN product p ON pc.IDPRODUCT = p.ID
LEFT JOIN category c ON p.IDCATEGORY = c.ID
LEFT JOIN picture pic ON pc.IDPRODUCT = pic.IDPRODUCT
WHERE uct.USERID = ".$iduser."
AND pic.POSITION = 1
AND uct.isACTIF = 'Y'
AND p.isACTIVE = 0
ORDER BY uct.REMISEEURO DESC,uct.REMISEPOUR DESC ";
return $this->getAdapter()->fetchAll($sql);
}
public function computeCaddyTypeByUser($iduser, $isQteTotal) {
$results = $this->getCaddyTypeByUserFull($iduser);
if ($results) {
$facture = new Facture();
$command = new Command();
foreach ($results as $row) {
if (empty($facture->user_id)) {
$facture->user_id = $row['USERID'];
$facture->user_nom = $row['USERNOM'];
$facture->user_prenom = $row['USERPRENOM'];
}
$factureLine = new FactureLine();
$factureLine->setLineInfo($row, 0, "N");
$factureLine->isCaddyType = true;
$factureLine->caddytype_id = $row['CADDYTYPEID'];
$factureLine->caddytype_isActif = $row['isCADDYTYPE_ACTIF'];
if ($isQteTotal) {
$factureLine->caddytype_qte_total = $command->getTotalQteByReferenceAndUser($iduser, $factureLine->item_reference);
}
if ($row['REMISEEURO'] > 0) { $factureLine->remise_euro = $row['REMISEEURO']; $factureLine->setPromo(true);}
else if ($row['REMISEPOUR'] > 0) { $factureLine->remise_pour = $row['REMISEPOUR']; $factureLine->setPromo(true);}
else {$factureLine->setPromo(false);}
$facture->addLine($factureLine);
}
return $facture;
}
return false;
}
public function computeFrontCaddyTypeByUser($user, $caddy, $isPromo) {
$results = $this->getCaddyTypeActiveByUserFull($user['id']);
if ($results) {
$itemsListType = array();
foreach ($results as $row) {
$itemCaddyType = new ItemCaddyType();
$itemCaddyType->setLineInfo($row, 0);
if ($itemCaddyType->isPromo()) {
$itemCaddyType->isPromoCaddyType = true;
if (!empty($caddy) && !empty($caddy->itemsCaddyType)) {
foreach ($caddy->itemsCaddyType as $caddyLine) {
if ($caddyLine->id == $row['CADDYTYPEID']) {
$itemCaddyType->qte = $caddyLine->qte;
break;
}
}
}
} else {
//On recup la qte du caddy normal
if (!empty($caddy) && !empty($caddy->items)) {
foreach ($caddy->items as $caddyLine) {
if ($caddyLine->idChild == $row['IDCHILD']) {
$itemCaddyType->qte = $caddyLine->qteChild;
break;
}
}
}
}
array_push($itemsListType, $itemCaddyType);
}
if ($isPromo && isset($itemsListType) && !empty($itemsListType)) {
$promo = new PromoCalculator();
$promo->computeItemsPromosCaddyType($itemsListType, $user);
}
return $itemsListType;
}
return false;
}
public function addNewUserItem($reference, $userid) {
if (!empty($reference) && (int)$userid > 0 ) {
if (!$this->isReferenceExist($reference, $userid)) {
$data = array (
'REFERENCE' => $reference,
'USERID' => $userid,
'REMISEEURO' => 0,
'REMISEPOUR' => 0,
'isACTIF' => 'Y'
);
$this->insert($data);
}
}
}
public function isReferenceExist($reference, $userid) {
$result = $this->select()->where("USERID = ?", $userid)->where("REFERENCE = ?", $reference)->query()->fetch();
if ($result) { return true; }
return false;
}
}
?>