Current File : /home/karenpetzb/application/modules/backoffice/controllers/UserController.php |
<?php
class Backoffice_UserController extends Modules_Backoffice_Controllers_MainController
{
function init()
{
$this->view->title = "Administration";
$this->view->currentMenu = "User";
$this->isConnectedWithRole('isUser');
}
function indexAction()
{
$this->_forward('/list');
}
function newsletterAction() {
$this->view->titlePage = "Envoyer une newsletter";
$userNewsletter = new UserNewsletter();
$listUser = $userNewsletter->select()->order('EMAIL ASC')->query()->fetchAll();
$this->view->listMail = $listUser;
$from = $this->newsletter_Mail;
$this->view->messageFrom = $from;
if ($this->getRequest()->isPost()) {
$body = $this->getRequest()->getPost('mailMessage');
$objet = $this->getRequest()->getPost('objetMessage');
$from = $this->getRequest()->getPost('fromMessage');
$this->view->messageBody = $body;
$this->view->messageObjet = $objet;
$this->view->messageFrom = $from;
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
$validatorEmail = new Zend_Validate();
$validatorEmail -> addValidator(new Zend_Validate_EmailAddress());
if ($validator->isValid($body) && $validator->isValid($objet) && $validatorEmail->isValid($from)) {
if ($this->getRequest()->getPost('email') == 'All') {
foreach ($listUser as $row) {
$mail = new Zend_Mail();
$mess = $body;
//$mess = $body."<br><br> Pour vous d�sinscrire � la newsletter de ".$this->siteName.", <a href='XXXXXX/user/newsletter/nltr_quit/".$row['CODE']."' >cliquer ici</a>";
$mail->setBodyHtml($mess);
$mail->setFrom($from, $this->siteName);
$mail->addTo($row['EMAIL']);
$mail->setSubject($objet);
try {
$mail->send();
$this->log("Les emails ont �t� envoy�s",'info');
$this->view->messageSuccess = "Les emails ont �t� envoy�s";
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "Les emails n'ont pas �t� envoy�s";
}
}
} else {
$isExist = $userNewsletter->fetchRow("EMAIL = '".$this->getRequest()->getPost('email')."'");
if ($isExist) {
$mail = new Zend_Mail();
$mess = $body;
$mail->setBodyHtml($mess);
$mail->setFrom($from, $this->siteName);
$mail->addTo($isExist['EMAIL']);
$mail->setSubject($objet);
try {
$mail->send();
$this->view->messageSuccess = "L'email a �t� envoy�";
$this->log("L'email � �t� envoy� : ".$isExist['EMAIL'],'info');
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "L'email n'a pas �t� envoy� : ".$isExist['EMAIL'];
}
}
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
foreach ($validatorEmail->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
}
}
}
function searchAction()
{
$this->view->titlePage = "Recherche avanc�e des clients";
$adminNamespace = $this->getSession();
$this->view->messageSuccess = "";
$this->view->messageError = "";
//Gestion des tris
$table = 'NOM';
$tri = 'ASC';
if ($this->_request->getParam('col'))
{
$adminNamespace->triUserCol = $this->_request->getParam('col');
($adminNamespace->triUserSens == 'ASC') ? $adminNamespace->triUserSens = 'DESC' : $adminNamespace->triUserSens = 'ASC';
}
if (isset($adminNamespace->triUserCol)) {
$table = $adminNamespace->triUserCol;
$tri = $adminNamespace->triUserSens;
}
$this->view->listSearch = array();
if ($this->_request->isPost()) {
$post = $this->_request->getPost();
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
if ($validator->isValid($post['searchValue'])) {
$recherche = '%'.$post['searchValue'].'%';
$this->view->titlePage .= " : ".$post['searchValue'];
//Appel model pour listing
$user = new User();
$select = $user->select()
->where('NOM LIKE ? ',$recherche)
->orWhere('PRENOM LIKE ? ',$recherche)
->orWhere('TEL LIKE ? ',$recherche)
->orWhere('ADRESSE LIKE ? ',$recherche)
->orWhere('EMAIL LIKE ? ',$recherche)
->order($table.' '.$tri);
$listusers = $user->fetchAll($select);
$adminNamespace->searchUsers = $listusers;
$this->view->listSearch = $listusers;
if (count($listusers) == 0) {
$this->view->messageError = "Aucun resultats";
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError = $this->getErrorValidator($errorCode);
}
}
} else {
if (isset($adminNamespace->searchUsers) && !empty($adminNamespace->searchUsers)) {
$this->view->listSearch = $adminNamespace->searchUsers;
}
}
}
function editAction() {
$this->view->titlePage = "Modifier un client";
$codeIntern = new CodeIntern();
$this->view->listCodeIntern = $codeIntern->fetchAll();
$id = (int)$this->_request->getParam('id');
if ($id > 0) {
$user = new User();
$row = $user->getUserByID($id);
$carteFidelite = new CarteFidelite();
$this->view->listcommandfidelite = $carteFidelite->getCommandUserCarteFidelite($id);
$this->view->userfidelite = $carteFidelite->getInfosByUser($id);
$this->view->populateForm = $row;
$this->getRemiseClient($row['ID'], $row['CODEINTERN']);
$userCaddyType = new UserCaddyType();
$this->view->caddyType = $userCaddyType->computeCaddyTypeByUser($row['ID'], true);
}
}
function edituserAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
$validatorEmail = new Zend_Validate_EmailAddress();
//get the form params
$params = $this->_request->getPost();
//Refractor the params
$data = array (
'ID' => $filter->filter($params['id']),
'NOM' => $filter->filter($params['lastname']),
'PRENOM' => $filter->filter($params['firstname']),
'CIVILITE' => $filter->filter($params['civility']),
'FONCTION' => $filter->filter($params['fct']),
'RAISONSOCIAL' => $filter->filter($params['raisonsocial']),
'ADRESSECOMPLETE' => $filter->filter($params['adressecomplete']),
'ADRESSE' => $filter->filter($params['adresse']),
'CP' => $filter->filter($params['cp']),
'VILLE' => $filter->filter($params['ville']),
'PAYS' => $filter->filter($params['pays']),
'DEPARTEMENT' => $filter->filter($params['departement']),
'REGION' => $filter->filter($params['region']),
'EMAIL' => $filter->filter($params['email']),
'TEL' => $filter->filter($params['tel']),
'FAX' => $filter->filter($params['fax']),
'NUMCOMPTE' => $filter->filter($params['numcompte']),
'SIRET' => $filter->filter($params['siret']),
'NUMIDFISC' => $filter->filter($params['numidfisc']),
'CODEAPE' => $filter->filter($params['codeape']),
'SECTACTIVITE' => $filter->filter($params['sectactivite']),
'COMMENTAIRE' => $filter->filter($params['comm']),
'CODEINTERN' => $filter->filter($params['cintern']),
'MODEPAIEMENT' => $filter->filter($params['modepaiement']),
'TYPE' => $filter->filter($params['typeuser']),
'isCREDIT' => $filter->filter($params['iscredit']),
'isRECEPFACTURE' => $filter->filter($params['isrecepfacture']));
if ($validator->isValid($data['NOM']) &&
$validator->isValid($data['PRENOM']) &&
$validator->isValid($data['ADRESSE']) &&
$validator->isValid($data['CP']) &&
$validator->isValid($data['VILLE']) &&
$validator->isValid($data['PAYS']) &&
$validatorEmail->isValid($data['EMAIL'])
) {
try {
$id = $data['ID'];
if ( $id > 0) {
$user = new User();
$user->update($data, 'ID = '.$id);
$this->log("Mise a jour de l'utilisateur : ".$id,'info');
}
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "L'email existe d�j�";
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
foreach ($validatorEmail->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
}
}
$this->_forward('edit');
}
function getRemiseClient($id, $codeintern) {
$promoUser = new PromoUser();
$listUser = $promoUser->getRemiseByUserIDFull($id);
if ($listUser) { $this->view->listUser = $listUser; }
$listUserBrend = $promoUser->getRemiseByMarqueFull($id);
if ($listUserBrend) {
$this->view->listUserBrend = $listUserBrend;
}
$listCinternBrend = $promoUser->getRemiseByCodeInternMarqueFull($codeintern);
if ($listCinternBrend) {
$this->view->listCinternBrend = $listCinternBrend;
}
}
function guestAction()
{
if ($this->FeatureProductSendDetail || $this->FeatureProductDocumentDownloadGuest) {
$this->view->titlePage = "Gestion des invit�s";
$userGuest = new UserGuest();
$select = $userGuest->select()->order('DATEINSERT desc');
$listusers = $userGuest->fetchAll($select);
$this->setPaginator($listusers, $this->_getParam('page',1), 50);
} else {
$this->_forward('/list');
}
}
function listAction()
{
$this->view->titlePage = "Gestion des clients";
$adminNamespace = $this->getSession();
//Gestion des tris
$table = 'NOM';
$tri = 'ASC';
if ($this->_request->getParam('col'))
{
$adminNamespace->triUserCol = $this->_request->getParam('col');
($adminNamespace->triUserSens == 'ASC') ? $adminNamespace->triUserSens = 'DESC' : $adminNamespace->triUserSens = 'ASC';
}
if (isset($adminNamespace->triUserCol)) {
$table = $adminNamespace->triUserCol;
$tri = $adminNamespace->triUserSens;
}
//Appel model pour listing
$user = new User();
$select = $user->select()
->order($table.' '.$tri);
$listusers = $user->fetchAll($select);
$this->setPaginator($listusers, $this->_getParam('page',1), 50);
}
function delAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->getParam('id')) {
$id = (int)$this->_request->getParam('id');
if ($id > 0) {
try {
$user = new User();
$user->delete('ID = '.$id);
$this->view->messageSuccess = "L'utilisateur a ete supprime";
$this->log("L'utilisateur a ete supprime ",'info');
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
}
$this->_forward('/list');
}
function banAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->getParam('id')) {
$id = (int)$this->_request->getParam('id');
if ($id > 0) {
try {
$user = new User();
$data = array (
'isBAN' => (int)$this->_request->getParam('ban'));
$user->update($data, 'ID = '.$id);
if ($data['isBAN']==0) {
$this->view->messageSuccess = "L'utilisateur ne peut plus se connecter";
$this->log("L'utilisateur ne peut plus se connecter : ".$id,'info');
} else {
$this->view->messageSuccess = "L'utilisateur peut se connecter";
$this->log("L'utilisateur peut se connecter ".$id,'info');
}
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
}
$this->_forward('/list');
}
function codeinterneAction() {
$this->view->titlePage = "Gestion des codes internes";
$codeintern = new CodeIntern();
if ($this->_request->isPost() && (int)$this->_request->getParam('id') ==0) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
//get the form params
$params = $this->_request->getPost();
$data = array (
'CODE' => $filter->filter($params['code']),
'LABEL' => $filter->filter($params['label'])
);
if ($validator->isValid($data['CODE']) && $validator->isValid($data['LABEL'])) {
try {
$codeintern->insert($data);
$this->view->messageSuccess = "Le code interne a �t� ajout�";
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "Le code interne existe d�j�";
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
}
}
$this->view->listcodeintern = $codeintern->select()->order('CODE ASC')->query()->fetchAll();
}
function codeinterneeditAction()
{
$this->view->messageSuccess = "";
$this->view->messageError = "";
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty())
-> addValidator(new Zend_Validate_StringLength(3));
$codeintern = new CodeIntern();
//get the form params
$params = $this->_request->getPost();
$data = array (
'CODE' => $filter->filter($params['code']),
'LABEL' => $filter->filter($params['label']),
'ID' => $filter->filter($params['id'])
);
if ($validator->isValid($data['CODE']) && $validator->isValid($data['LABEL'])
) {
try {
$codeintern->update($data, 'ID = '.$data['ID']);
$this->view->messageSuccess = "Le code interne a �t� modifi�";
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = "Le code interne existe d�j�";
$this->_forward('codeinterne');
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
}
}
$this->_forward('codeinterne');
}
function codeinternedelAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if($this->_request->getParam('id')) {
$id = (int)$this->_request->getParam('id');
if ($id > 0) {
try {
$codeintern = new CodeIntern();
$sql = 'SELECT u.NOM NOM, u.PRENOM PRENOM, u.ID IDUSER, uci.ID IDCODEINTERN, uci.CODE CODEINTERN
FROM user_cintern uci
LEFT JOIN user AS u ON u.CODEINTERN = uci.ID
WHERE u.CODEINTERN = '.$id ;
$isExistCode = $codeintern->getAdapter()->fetchRow($sql);
if (!$isExistCode) {
$codeintern->delete('ID = '.$id);
$this->view->messageSuccess = "Le code interne a �t� supprim�";
} else {
$this->view->messageError = "Le code interne est utilis� par : <b>".$isExistCode['NOM']." ".$isExistCode['PRENOM']."</b>";
}
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
$this->_forward('codeinterne');
}
}
}
$this->_forward('codeinterne');
}
function panieraddAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
$params = $this->getRequest()->getPost();
$productChild = new ProductChild();
$reference = $filter->filter($params['reference']);
$remiseeuro = (int)$params['remiseeuro'];
$remisepour = (int)$params['remisepour'];
$id = (int)$params['id'];
$isOK = true;
if ($remiseeuro > 0 && $remisepour > 0) {
$this->view->messageError = "La remise est soit en EURO, soit en POURCENTAGE. ";
$isOK = false;
}
if ($remiseeuro == 0 && $remisepour == 0) {
$this->view->messageError = "La remise est soit en EURO, soit en POURCENTAGE et est obligatoire. ";
$isOK = false;
}
if (($validator->isValid($remiseeuro) || $validator->isValid($remisepour)) && $isOK == true && $validator->isValid($reference)) {
$isExistChild = $productChild->fetchRow("REFERENCE = '".$reference."'");
if ($isExistChild) {
$userCaddyType = new UserCaddyType();
$isExistCaddy = $userCaddyType->fetchRow("REFERENCE = '".$reference."' AND USERID = ".$id);
if ($isExistCaddy) {
$data = array (
'REFERENCE' => $reference,
'REMISEEURO' => $remiseeuro,
'REMISEPOUR' => $remisepour,
'isACTIF' => 'Y'
);
$userCaddyType->update($data, "REFERENCE = '".$reference."' AND USERID = ".$id);
} else {
$data = array (
'REFERENCE' => $reference,
'USERID' => $id,
'REMISEEURO' => $remiseeuro,
'REMISEPOUR' => $remisepour,
'isACTIF' => 'Y'
);
$userCaddyType->insert($data);
}
$this->view->messageSuccess = "La r�f�rence : ".$data['REFERENCE']." a �t� ajout�e. ";
} else {
$this->view->messageError = "La r�f�rence : <b>".$reference."</b> n'existe pas. ";
}
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError = $this->getErrorValidator($errorCode);
}
}
}
$this->_forward('/edit');
}
function paniereditAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
if ($this->_request->isPost()) {
//filtres pour changer les chaines
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
//valideurs pour les chaines
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
$params = $this->getRequest()->getPost();
$idcaddy = (int)$params['idcaddy'];
$iduser = (int)$params['id'];
$remiseeuro = (int)$params['remiseeuro'];
$remisepour = (int)$params['remisepour'];
$isOK = true;
if ($remiseeuro > 0 && $remisepour > 0) {
$this->view->messageError = "La remise est soit en EURO, soit en POURCENTAGE. ";
$isOK = false;
}
if ($isOK == true && $idcaddy > 0) {
$userCaddyType = new UserCaddyType();
$data = array ('REMISEEURO' => $remiseeuro,
'REMISEPOUR' => $remisepour,
'isACTIF' => 'Y');
$userCaddyType->update($data, "ID = ".$idcaddy);
$this->view->messageSuccess = "La r�f�rence a �t� modifi�e. ";
} else {
foreach ($validator->getErrors() as $errorCode) {
$this->view->messageError .= $this->getErrorValidator($errorCode);
}
}
}
$this->_forward('/edit');
}
function panierdelAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
if ($this->_request->isPost()) {
$params = $this->getRequest()->getPost();
$idcaddy = (int)$params['idcaddy'];
if ($idcaddy > 0) {
try {
$userCaddyType = new UserCaddyType();
$result = $userCaddyType->delete("ID = ".$idcaddy);
$this->view->messageSuccess = "L'article du panier a �t� supprim�";
$this->log("L'article du panier a �t� supprim�",'info');
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
}
$this->_forward('/edit');
}
function panieractiveAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
if ($this->_request->isPost()) {
$params = $this->getRequest()->getPost();
$idcaddy = (int)$params['idcaddy'];
if ($idcaddy > 0) {
try {
$userCaddyType = new UserCaddyType();
$data = array ( 'isACTIF' => $params['isActif'] );
$result = $userCaddyType->update($data, "ID = ".$idcaddy);
$this->view->messageSuccess = "L'article du panier a �t� modifi�";
$this->log("L'article du panier a �t� modifi�",'info');
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
}
$this->_forward('/edit');
}
function panieractiveallAction() {
$this->view->messageSuccess = "";
$this->view->messageError = "";
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
if ($this->_request->isPost()) {
$params = $this->getRequest()->getPost();
$idUser = (int)$params['id'];
if ($idUser > 0) {
try {
$user = new User();
$data = array ( 'isCADDYTYPE' => $params['isActif'] );
$result = $user->update($data, "ID = ".$idUser);
$this->view->messageSuccess = "Les articles du panier ont �t� modifi�s";
$this->log("Les articles du panier ont �t� modifi�s",'info');
} catch (Zend_Exception $e) {
$this->log($e->getMessage(),'err');
$this->view->messageError = $e->getMessage();
}
}
}
$this->_forward('/edit');
}
}
?>