public function indexAction()
 {
     $date = date('Y-m-d');
     $thisWeekStartDate = Needs_Tools::getWeekDaysByDate($date, $type = 'start');
     $thisWeekEndDay = Needs_Tools::getWeekDaysByDate($date, $type = 'end');
     $dateFrom = $this->getRequest()->getParam('dateFrom') != null ? $this->getRequest()->getParam('dateFrom') : $thisWeekStartDate;
     $dateTo = $this->getRequest()->getParam('dateTo') != null ? $this->getRequest()->getParam('dateTo') : $thisWeekEndDay;
     //check if dates are week start date and week end date
     $weekStartDate = Needs_Tools::getWeekDaysByDate($dateFrom, $type = 'start');
     $weekEndDay = Needs_Tools::getWeekDaysByDate($dateFrom, $type = 'end');
     if ($dateFrom != $weekStartDate || $dateTo != $weekEndDay) {
         $this->_redirect(WEBROOT . 'projected-costs');
     }
     $form = new Default_Form_ProjectedCosts();
     $form->showHistory($dateFrom, $dateTo);
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/projected-costs/add.phtml'))));
     $this->view->form = $form;
     if ($this->getRequest()->isPost()) {
         if ($form->isValid($this->getRequest()->getPost())) {
             $success = false;
             $post = $this->getRequest()->getPost();
             $idManager = Zend_Registry::get('user')->getId();
             $result = Needs_Tools::fetchDistrictManagerShops($idManager);
             if ($result) {
                 $model = new Default_Model_ProjectedCost();
                 $model->setOptions($post);
                 $model->setIdUser($idManager);
                 if ($id = $model->save()) {
                     foreach ($result as $value) {
                         $modelPCS = new Default_Model_ProjectedCostShops();
                         $modelPCS->setIdProjectedCost($id);
                         $modelPCS->setIdShop($value->getId());
                         $modelPCS->setFoodCost($post['foodCost_' . $value->getId()]);
                         $modelPCS->setLaborCost($post['laborCost_' . $value->getId()]);
                         $modelPCS->save();
                     }
                 }
             }
             if ($success) {
                 $this->_flashMessenger->addMessage("<div class='success canhide'><p>Projected costs was successfully saved!</p><a href='javascript:;'></a></div>");
             } else {
                 $this->_flashMessenger->addMessage("<div class='failure canhide'><p>Some error occurred while saving projected cost!</p><a href='javascript:;'></a></div>");
             }
             $this->_redirect(WEBROOT . 'projected-costs/index/dateFrom/' . $dateFrom . '/dateTo/' . $dateTo);
         }
     }
 }
Beispiel #2
0
 public function forgotPasswordAction()
 {
     $form = new Default_Form_ForgotPassword();
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/forgot-password.phtml'))));
     $this->view->formForgotPassword = $form;
     $model = new Default_Model_Users();
     if ($this->getRequest()->isPost()) {
         if ($form->isValid($this->getRequest()->getPost())) {
             $model->setOptions($form->getValues());
             $select = $model->getMapper()->getDbTable()->select()->from(array('u' => 'users'), array('u.*'))->where("NOT u.deleted")->where("u.email=?", $model->getEmail());
             $result = $model->fetchRow($select);
             if (count($result) != 0) {
                 $newpass = '';
                 $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
                 for ($i = 0; $i < 8; $i++) {
                     $n = rand(0, count($alphabet) - 1);
                     $pass[$i] = $alphabet[$n];
                     $newpass .= $pass[$i];
                 }
                 $newpassMd5 = md5($newpass);
                 $model->setPassword($newpassMd5);
                 $savedPass = $model->save();
                 $emailArray = array();
                 $emailArray['subject'] = 'Resetare Parola';
                 $emailArray['content'] = 'Noua dumneavoastra parola este: ' . $newpass;
                 $emailArray['toEmail'] = $model->getEmail();
                 $emailArray['fromEmail'] = "*****@*****.**";
                 $emailArray['fromName'] = "Resetare Parola";
                 $emailArray['SMTP_USERNAME'] = SMTP_USERNAME;
                 $emailArray['SMTP_PASSWORD'] = SMTP_PASSWORD;
                 $emailArray['SMTP_PORT'] = SMTP_PORT;
                 $emailArray['SMTP_URL'] = SMTP_URL;
                 $sent = Needs_Tools::sendEmail($emailArray);
                 if ($sent && $savedPass) {
                     $this->_flashMessenger->addMessage("<div class='success  canhide'><p>The password was successfully changed!</p><a href='javascript:;'></a></div>");
                 } else {
                     $this->_flashMessenger->addMessage("<div class='error canhide'><p>The password was not changed!<a href='javascript:;'></a></p></div>");
                 }
             } else {
                 $this->_flashMessenger->addMessage("<div class='error canhide'><p>The email was not found in the database!<a href='javascript:;'></a></p></div>");
             }
             $this->_redirect('/auth/forgot-password/');
         }
     }
 }
Beispiel #3
0
 public function auditAction()
 {
     $date = $this->getRequest()->getParam('date') ? $this->getRequest()->getParam('date') : date('Y-m-d');
     $idShop = $this->getRequest()->getParam('idShop') ? $this->getRequest()->getParam('idShop') : NULL;
     $form = new Default_Form_AuditSearch();
     $form->auditSearch();
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/daily-sales/search.phtml'))));
     $this->view->form = $form;
     if (!empty($date) && !empty($idShop)) {
         $dateNew = date('Y-m-d', strtotime($date));
         $dailySales = Needs_Tools::checkIfDailySaleCompleted($dateNew, $idShop);
         if ($dailySales->getId() != NULL) {
             $errors = Needs_Tools::fetchDailySalesErrors($dailySales->getId());
             $this->view->resultError = $errors;
             $formAudit = new Default_Form_DailySaleAudit();
             $formAudit->show($dateNew, $idShop);
             $formAudit->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/daily-sales/audit.phtml'))));
             $this->view->formAudit = $formAudit;
         } else {
             //mesaj de eroare
             $dateShow = date('m-d-Y', strtotime($date));
             $shop = Needs_Tools::getShopById($idShop);
             $this->_flashMessenger->addMessage("<div class='failure canhide'><p>There is no report registered on ' {$dateShow} ' in shop ' {$shop} ' ! Please select another date !<a href='javascript:;'></a><p></div>");
             $this->_redirect(WEBROOT . 'daily-sales/audit');
         }
         $post = $this->getRequest()->getPost();
         if (!empty($post['action']) && $post['action'] == 'addAudit') {
             if ($formAudit->isValid($post)) {
                 $post = $this->getRequest()->getPost();
                 $dailySales->setOptions($formAudit->getValues());
                 $dailySales->setOverShortNotification($post['overshort']);
                 $dailySales->setAudited(1);
                 $dailySales->setDateAudited(date('Y-m-d'));
                 $dailySales->setDate($post['dateSave']);
                 $arrayGiftNr = array();
                 $arrayGiftVal = array();
                 foreach ($post['giftNr'] as $key => $value) {
                     $arrayGiftNr[] = $post['giftNr'][$key];
                     $arrayGiftVal[] = $post['giftVal'][$key];
                 }
                 if ($dailySales->save()) {
                     //BEGIN:GIFT CARDS EDIT
                     foreach ($arrayGiftNr as $key => $value) {
                         $model = new Default_Model_DailySalesGift();
                         $model->setIdSale($dailySales->getId());
                         $model->setNumber($arrayGiftNr[$key]);
                         $model->setValue($arrayGiftVal[$key]);
                         $model->save();
                     }
                     //END:GIFT CARDS EDIT
                     $products = Needs_Tools::getProductsByShop($idShop);
                     $registryNumber = Needs_Tools::getRegistryNrByShop($idShop);
                     foreach ($products as $value) {
                         //find daily sales products by saleId ad prodId
                         $model = Needs_Tools::fetchDailySalesProductbySalesId($dailySales->getId(), $value->getId());
                         $model->setIdSale($dailySales->getId());
                         $model->setIdShop($idShop);
                         $model->setIdProduct($value->getId());
                         $model->setRegister1($post['register1_' . $value->getId()]);
                         if ($registryNumber == 2) {
                             $model->setRegister2($post['register2_' . $value->getId()]);
                         }
                         $model->save();
                     }
                     //mesaj de succes
                     $this->_flashMessenger->addMessage("<div class='success  canhide'><p>Report was saved successfully<a href='javascript:;'></a><p></div>");
                 } else {
                     //mesaj de eroare
                     $this->_flashMessenger->addMessage("<div class='failure canhide'><p>Report was not saved<a href='javascript:;'></a><p></div>");
                 }
                 $this->_redirect(WEBROOT . 'daily-sales/audit/date/' . $date . '/idShop/' . $idShop);
             }
         }
     }
 }
Beispiel #4
0
 public function indexAction()
 {
     $model = new Default_Model_Users();
     $params = array();
     $name = $this->getRequest()->getParam('nameSearch');
     $email = $this->getRequest()->getParam('emailSearch');
     $page = $this->getRequest()->getParam('page') ? (int) $this->getRequest()->getParam('page') : 1;
     $shop = $this->getRequest()->getParam('idShopSearch');
     $level = $this->getRequest()->getParam('idRoleSearch');
     $select = $model->getMapper()->getDbTable()->select()->where('NOT deleted');
     if (!empty($name)) {
         $params['nameSearch'] = $name;
         $select->where('name LIKE ?', '%' . $name . '%');
     }
     if (!empty($email)) {
         $params['emailSearch'] = $email;
         $select->where('email LIKE ?', '%' . $email . '%');
     }
     if (!empty($shop)) {
         $params['idShopSearch'] = $shop;
         $select->where('idShop = ?', $shop);
     }
     if (!empty($level)) {
         $params['idRoleSearch'] = $level;
         $select->where('idRole = ?', $level);
     }
     $select->order('created DESC');
     $this->view->page = $page;
     $this->view->search = $params;
     $result = $model->fetchAll($select);
     if (NULL != $result) {
         $paginator = Zend_Paginator::factory($result);
         $paginator->setItemCountPerPage(10);
         $paginator->setCurrentPageNumber($this->_getParam('page'));
         $paginator->setPageRange(5);
         $this->view->result = $paginator;
         $this->view->itemCountPerPage = $paginator->getItemCountPerPage();
         $this->view->totalItemCount = $paginator->getTotalItemCount();
         Zend_Paginator::setDefaultScrollingStyle('Sliding');
         Zend_View_Helper_PaginationControl::setDefaultViewPartial(array('_pagination.phtml', $params));
     }
     Needs_Roles::hasAccess('adaugare_utilizator', true);
     $form = new Default_Form_Users();
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/users/user-add.phtml'))));
     $this->view->form = $form;
     $formSearch = new Default_Form_UsersSearch();
     $formSearch->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/users/user-search.phtml'))));
     $this->view->formSearch = $formSearch;
     if ($this->getRequest()->isPost()) {
         $post = $this->getRequest()->getPost();
         if (!empty($post['action']) && $post['action'] == 'add') {
             if ($form->isValid($post)) {
                 $model = new Default_Model_Users();
                 $model->setOptions($form->getValues());
                 $password = substr(md5(sha1(rand(0, 9999999))), 0, 6);
                 $code = substr(md5(sha1(rand(0, 9999999))), 0, 6);
                 $model->setPassword(md5($password));
                 //generare parola random la inregistrare user
                 $model->setCode($code);
                 $model->setStatus(0);
                 if ($id = $model->save()) {
                     //BEGIN:salvam drepturile
                     if ($form->getValue('resourceId')) {
                         foreach ($form->getValue('resourceId') as $value) {
                             $resourceUser = new Default_Model_ResourceUsers();
                             $resourceUser->setResourceId($value);
                             $resourceUser->setUserId($id);
                             $resourceUser->save();
                         }
                     }
                     //END:salvam drepturile
                     //BEGIN: CHECK IF DISTRICT MANAGER AND SAVE SHOPS
                     if ($form->getValue('idRole') == 14) {
                         foreach ($form->getValue('idShopMulti') as $value) {
                             $shopUser = new Default_Model_DistrictManagerShops();
                             $shopUser->setIdShop($value);
                             $shopUser->setIdUser($id);
                             $shopUser->save();
                         }
                     }
                     //END: CHECK IF DISTRICT MANAGER AND SAVE SHOPS
                     //BeGIN: send email with user data, generated password and activation link
                     $activation = '<a href="' . WEBROOT . 'auth/activation/code/' . $code . '">Activate</a>';
                     $emailTemplate = new Default_Model_EmailTemplates();
                     $select = $emailTemplate->getMapper()->getDbTable()->select()->where('const = ?', 'user_activare_cont')->limit(1);
                     $emailTemplate->fetchRow($select);
                     if (NULL != $emailTemplate->getContent()) {
                         $emailArray = array();
                         $name = $model->getName();
                         $message = nl2br($emailTemplate->getContent());
                         $message = str_replace("{" . "\$" . "name}", $name, $message);
                         $message = str_replace("{" . "\$" . "password}", $password, $message);
                         $message = str_replace("{" . "\$" . "activation_link}", $activation, $message);
                         $emailArray['subject'] = $emailTemplate->getSubject();
                         $emailArray['content'] = $message;
                         $emailArray['toEmail'] = $model->getEmail();
                         $emailArray['toName'] = $name;
                         $emailArray['fromEmail'] = FROM_EMAIL;
                         $emailArray['fromName'] = FROM_NAME;
                         $emailArray['SMTP_USERNAME'] = SMTP_USERNAME;
                         $emailArray['SMTP_PASSWORD'] = SMTP_PASSWORD;
                         $emailArray['SMTP_PORT'] = SMTP_PORT;
                         $emailArray['SMTP_URL'] = SMTP_URL;
                         Needs_Tools::sendEmail($emailArray);
                     }
                     //END:  send email
                     $this->_flashMessenger->addMessage("<div class='success  canhide'><p>User was successfully added!<a href='javascript:;'>Close</a></p></div>");
                 } else {
                     $this->_flashMessenger->addMessage("<div class='failure canhide'><p>The user was not saved!<a href='javascript:;'>Close</a></p></div>");
                 }
                 $this->_redirect('/users');
             }
         }
     }
 }
 public function editAction()
 {
     $auth = Zend_Auth::getInstance();
     $authAccount = $auth->getStorage()->read();
     if (null != $authAccount) {
         if (null != $authAccount->getId()) {
             $user = new Default_Model_Users();
             $user->find($authAccount->getId());
         }
     }
     $id = $this->getRequest()->getParam('id');
     /*$hasAccess = Needs_Roles::hasAccess(Zend_Registry::get('user')->getIdRole(),'adaugare_proiect');
     		if(!$hasAccess)
     		{
     			$this->_redirect(WEBROOT.'products');
     		}*/
     $model = new Default_Model_RecurrentExpenses();
     if ($model->find($id)) {
         $form = new Default_Form_RecurrentExpenses();
         $form->edit($model);
         $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/recurrent-expenses/edit-expense.phtml'))));
         $this->view->form = $form;
         if ($this->getRequest()->isPost()) {
             if ($this->getRequest()->getPost('submit')) {
                 if ($form->isValid($this->getRequest()->getPost())) {
                     $oldDate = $model->getDate();
                     $post = $this->getRequest()->getPost();
                     $model->setOptions($form->getValues());
                     $model->setDate(date("Y-m-d", strtotime($post["date"])));
                     if ($oldDate != date("Y-m-d", strtotime($post["date"]))) {
                         $model->setDatePaid();
                     }
                     $model->setType('0');
                     if ($expenseId = $model->save()) {
                         if (!empty($post['galleryFiles']) && is_array($post['galleryFiles'])) {
                             foreach ($post['galleryFiles'] as $valuesGallery) {
                                 $tmpFiles = new Default_Model_TempFiles();
                                 if ($tmpFiles->find($valuesGallery)) {
                                     $post = $this->getRequest()->getPost();
                                     $gallery = new Default_Model_FileManager();
                                     $gallery->setOptions($form->getValues());
                                     $gallery->setType($tmpFiles->getFileType());
                                     $gallery->setSize($tmpFiles->getFileSize());
                                     $gallery->setModule('sharedfiles');
                                     $gallery->setIdMessage($expenseId);
                                     $gallery->setIdUser(1);
                                     $gallery->setName($tmpFiles->getFileName());
                                     $savedId = $gallery->save();
                                     if ($savedId) {
                                         $shared = new Default_Model_SharedList();
                                         $shared->setIdUser(Zend_Registry::get('user')->getId());
                                         $shared->setIdFile($savedId);
                                         $shared->save();
                                     }
                                     //copy picture and crop
                                     $tempFile = APPLICATION_PUBLIC_PATH . '/media/temps/' . $tmpFiles->getFileName();
                                     $targetFile = APPLICATION_PUBLIC_PATH . '/media/files/' . $tmpFiles->getFileName();
                                     @copy($tempFile, $targetFile);
                                     @unlink($tempFile);
                                     $tmpFiles->delete();
                                 }
                             }
                             //END:SAVE ATTACHMENTS
                         }
                         Needs_Tools::DeleteLegaturi($expenseId, '1');
                         $idGroup = $this->getRequest()->getParam('idGroup');
                         $modelGroup = new Default_Model_ProductGroups();
                         $modelGroup->setIdProduct($expenseId);
                         $modelGroup->setIdGroup($idGroup);
                         $modelGroup->setRepeated(1);
                         $modelGroup->save();
                         $post = $this->getRequest()->getPost();
                         //mesaj de succes
                         $this->_flashMessenger->addMessage("<div class='success  canhide'><p>Recurrent expense was modified successfully<a href='javascript:;'></a></p></div>");
                     } else {
                         $this->_flashMessenger->addMessage("<div class='failure canhide'><p>Recurrent expense was not modified<a href='javascript:;'></a></p></div>");
                     }
                     $this->_redirect(WEBROOT . 'recurrent-expenses');
                 }
             }
         }
     }
 }
Beispiel #6
0
 public function deleteAction()
 {
     $userId = NULL;
     $auth = Zend_Auth::getInstance();
     $authAccount = $auth->getStorage()->read();
     if (null != $authAccount) {
         if (null != $authAccount->getId()) {
             $userId = $authAccount->getId();
         }
     }
     $id = $this->getRequest()->getParam('id');
     $model = new Default_Model_Groups();
     if ($model->find($id)) {
         if ($groupId = $model->delete()) {
             Needs_Tools::DeleteLegaturibyGroup($groupId);
             $this->_flashMessenger->addMessage("<div class='success  canhide'><p>Group was deleted successfully!<a href='javascript:;'></a></p></div>");
         } else {
             $this->_flashMessenger->addMessage("<div class='failure canhide'><p>Group was not deleted!<a href='javascript:;'></a></p></div>");
         }
         $this->_redirect('groups');
     }
 }
Beispiel #7
0
 public function init()
 {
     $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
     $this->view->message = $this->_flashMessenger->getMessages();
     Needs_Tools::hasAccess('acces_modul_setari', true);
 }
Beispiel #8
0
 public function indexAction()
 {
     // BEGIN:FILTERS
     $filters = array();
     //array with variables to send to pagination (filters)
     // END:FILTERS
     //BEGIN:LISTING	MESSAGES
     $model = new Default_Model_Messages();
     $select = $model->getMapper()->getDbTable()->select();
     $select->from(array('u' => 'messages'), array('u.id', 'u.idUserFrom', 'u.idUserTo', 'u.subject', 'u.created'))->where('u.idUserTo = ?', Zend_Registry::get('user')->getId())->where('NOT u.deletedTo')->where('NOT u.trashedTo');
     $select->order('u.created  DESC')->setIntegrityCheck(false);
     // pagination
     $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
     $paginator->setItemCountPerPage(10);
     $paginator->setCurrentPageNumber($this->_getParam('page'));
     $paginator->setPageRange(5);
     Zend_Paginator::setDefaultScrollingStyle('Sliding');
     Zend_View_Helper_PaginationControl::setDefaultViewPartial(array('_pagination.phtml', $filters));
     $this->view->inboxNr = Needs_Messages::getInboxMessagesNumber();
     $this->view->result = $paginator;
     $this->view->itemCountPerPage = $paginator->getItemCountPerPage();
     $this->view->totalItemCount = $paginator->getTotalItemCount();
     //END:LISTING MESSAGES
     //BEGIN:LISTING LATEST EXPENSES / INCOME
     $model = new Default_Model_Expenses();
     $select = $model->getMapper()->getDbTable()->select();
     $select->from(array('u' => 'expenses'), array('u.id', 'u.name', 'u.price', 'u.date', 'u.type'))->where('u.idMember = ?', Zend_Registry::get('user')->getId())->where('NOT u.deleted');
     $select->order('u.date  DESC');
     // pagination
     $paginatorLatest = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
     $paginatorLatest->setItemCountPerPage(10);
     $paginatorLatest->setCurrentPageNumber($this->_getParam('page'));
     $paginatorLatest->setPageRange(5);
     Zend_Paginator::setDefaultScrollingStyle('Sliding');
     Zend_View_Helper_PaginationControl::setDefaultViewPartial(array('_pagination.phtml', $filters));
     $this->view->resultLatest = $paginatorLatest;
     $this->view->itemCountPerPageLatest = $paginatorLatest->getItemCountPerPage();
     $this->view->totalItemCountLatest = $paginatorLatest->getTotalItemCount();
     //END:LISTING LATEST EXPENSES / INCOME
     //START: Expenses PIE
     $groups = new Default_Model_Groups();
     $select = $groups->getMapper()->getDbTable()->select()->from(array('g' => 'groups'), array('g.id', 'g.name', 'g.color', 'g.created', 'g.deleted'))->joinLeft(array('pg' => 'product_groups'), 'g.id = pg.idGroup', array())->joinLeft(array('p' => 'expenses'), 'p.id = pg.idProduct', array('price' => 'SUM(p.price)'))->where('NOT g.deleted')->where('p.type=?', 0)->where('p.date>=?', date('Y-m-01'))->group('g.id')->setIntegrityCheck(false);
     $resultPieExpenses = $groups->fetchAll($select);
     $this->view->resultPieExpenses = $resultPieExpenses;
     //END: Expenses PIE
     //START: Income PIE
     $groups2 = new Default_Model_Groups();
     $select2 = $groups2->getMapper()->getDbTable()->select()->from(array('g' => 'groups'), array('g.id', 'g.name', 'g.color', 'g.created', 'g.deleted'))->joinLeft(array('pg' => 'product_groups'), 'g.id = pg.idGroup', array())->joinLeft(array('p' => 'expenses'), 'p.id = pg.idProduct', array('price' => 'SUM(p.price)'))->where('NOT g.deleted')->where('p.type=?', 1)->where('p.date>=?', date('Y-m-01'))->group('g.id')->setIntegrityCheck(false);
     $resultPieIncome = $groups2->fetchAll($select2);
     $this->view->resultPieIncome = $resultPieIncome;
     //END: Income PIE
     $date = date('Y-m-d');
     $thisWeekStartDate = Needs_Tools::getWeekDaysByDate($date, $type = 'start');
     $thisWeekEndDay = Needs_Tools::getWeekDaysByDate($date, $type = 'end');
     $this->view->dateFrom = $thisWeekStartDate;
     $this->view->dateTo = $thisWeekEndDay;
     //		$resultInfo= Needs_Tools::showProjectedDashboard($thisWeekStartDate,$thisWeekEndDay);
     //		if ($resultInfo){
     //			$this->view->foodCost=$resultInfo["foodCost"];
     //			$this->view->laborCost=$resultInfo["laborCost"];
     //			$this->view->idShop=$resultInfo["idShop"];
     //		}else{
     //                        $this->view->foodCost='';
     //			$this->view->laborCost='';
     //			$this->view->idShop='';
     //                }
     $resultIncomeExpense = Needs_Tools::showIncomeExpensesDashboard(date('Y'), date('m'));
     if ($resultIncomeExpense) {
         $value = array();
         foreach ($resultIncomeExpense as $values) {
             $value[] = $values->getPrice();
         }
         $this->view->incomeAmount = isset($value[1]) ? $value[1] : 0;
         $this->view->expensesAmount = isset($value[0]) ? $value[0] : 0;
     } else {
         $this->view->incomeAmount = 0;
         $this->view->expensesAmount = 0;
     }
     $date = date('Y-m-d');
     $day = date('d', strtotime($date));
     $feb = date('L', strtotime($date)) ? 29 : 28;
     //an bisect
     $days = array(0, 31, $feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31);
     //nr zile pe luna
     //$month=array(1,2,3,4,5,6,7,8,9,10,11,12);
     $newdate = strtotime('-' . $days[date('n', strtotime($date))] . ' days', strtotime($date));
     $resultIncomeExpenseLastMonth = Needs_Tools::showIncomeExpensesDashboard(date('Y', $newdate), date('m', $newdate));
     if ($resultIncomeExpenseLastMonth) {
         $value = array();
         foreach ($resultIncomeExpenseLastMonth as $values) {
             $value[] = $values->getPrice();
         }
         $this->view->incomeAmountLastMonth = isset($value[1]) ? $value[1] : 0;
         $this->view->expensesAmountLastMonth = isset($value[0]) ? $value[0] : 0;
     } else {
         $this->view->incomeAmountLastMonth = 0;
         $this->view->expensesAmountLastMonth = 0;
     }
     $this->view->newdate = $newdate;
     //$this->view->form = $form;
 }
Beispiel #9
0
 public function statusAuditAction()
 {
     $dailySales = new Default_Model_DailySales();
     $select = $dailySales->getMapper()->getDbTable()->select();
     $select->from(array('d' => 'daily_sales'), array('d.idShop', 'd.date', 'd.id'))->where('audited = ?', 0)->order('date DESC');
     $result = $dailySales->fetchAll($select);
     $this->view->totalNr = Needs_Tools::getTotalNoAudit();
     if (NULL != $result) {
         $paginator = Zend_Paginator::factory($result);
         $paginator->setItemCountPerPage(10);
         $paginator->setCurrentPageNumber($this->_getParam('page'));
         $paginator->setPageRange(5);
         $this->view->result = $paginator;
         $this->view->itemCountPerPage = $paginator->getItemCountPerPage();
         $this->view->totalItemCount = $paginator->getTotalItemCount();
         Zend_Paginator::setDefaultScrollingStyle('Sliding');
         Zend_View_Helper_PaginationControl::setDefaultViewPartial('_pagination.phtml');
     }
 }
Beispiel #10
0
    public function viewSavedMessageFilesAction()
    {
        $return = '';
        $id = (int) $this->getRequest()->getParam('messageId');
        $type = $this->getRequest()->getParam('type') ? $this->getRequest()->getParam('type') : NULL;
        if ($id) {
            $projectFiles = Needs_Tools::getGallerybyMessageId($id);
            if ($projectFiles) {
                foreach ($projectFiles as $value) {
                    if (file_exists(APPLICATION_PUBLIC_PATH . '/media/files/' . $value->getName())) {
                        $return .= '<tr class="defaultSavedShow_' . $value->getId() . '" >';
                        $return .= '<td>
										<a href="' . WEBROOT . '/media/files/' . $value->getName() . '" target="_blank">' . $value->getName() . '</a> 
									</td>';
                        $return .= '</tr>';
                    }
                }
            }
        }
        echo Zend_Json_Encoder::encode($return);
    }
Beispiel #11
0
 public function indexAction()
 {
     // BEGIN:FILTERS
     $filters = array();
     //array with variables to send to pagination (filters)
     // END:FILTERS
     $params = array();
     if ($this->getRequest()->getParam('dataStart')) {
         $params['dataStart'] = $this->getRequest()->getParam('dataStart');
     }
     if ($this->getRequest()->getParam('dataEnd')) {
         $params['dataEnd'] = $this->getRequest()->getParam('dataEnd');
     }
     $formsearch = new Default_Form_SearchStatistics();
     $formsearch->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/statistics/search.phtml'))));
     $this->view->formsearch = $formsearch;
     if (empty($params)) {
         $params['dataStart'] = date('Y-m-01');
         $params['dataEnd'] = '';
     }
     $this->view->search = $params;
     $formsearchcomplex = new Default_Form_SearchComplexStatistics();
     $formsearchcomplex->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/statistics/search-complex.phtml'))));
     $this->view->formsearchcomplex = $formsearchcomplex;
     //START: Expenses PIE
     $groups = new Default_Model_Groups();
     $select = $groups->getMapper()->getDbTable()->select()->from(array('g' => 'groups'), array('g.id', 'g.name', 'g.color', 'g.created', 'g.deleted'))->joinLeft(array('pg' => 'product_groups'), 'g.id = pg.idGroup', array())->joinLeft(array('p' => 'expenses'), 'p.id = pg.idProduct', array('price' => 'SUM(p.price)'))->where('NOT g.deleted')->where('p.type=?', 0)->group('g.id')->setIntegrityCheck(false);
     if (!empty($params['dataStart'])) {
         $select->where('p.date >= ?', $params['dataStart']);
     }
     if (!empty($params['dataEnd'])) {
         $select->where('p.date <= ?', $params['dataEnd']);
     }
     if (empty($params['dataStart']) && empty($params['dataEnd'])) {
         $select->where('p.date>=?', date('Y-m-01'));
     }
     $resultPieExpenses = $groups->fetchAll($select);
     $this->view->resultPieExpenses = $resultPieExpenses;
     //END: Expenses PIE
     //START: Income PIE
     $groups2 = new Default_Model_Groups();
     $select2 = $groups2->getMapper()->getDbTable()->select()->from(array('g' => 'groups'), array('g.id', 'g.name', 'g.color', 'g.created', 'g.deleted'))->joinLeft(array('pg' => 'product_groups'), 'g.id = pg.idGroup', array())->joinLeft(array('p' => 'expenses'), 'p.id = pg.idProduct', array('price' => 'SUM(p.price)'))->where('NOT g.deleted')->where('p.type=?', 1)->group('g.id')->setIntegrityCheck(false);
     if (!empty($params['dataStart'])) {
         $select2->where('p.date >= ?', $params['dataStart']);
     }
     if (!empty($params['dataEnd'])) {
         $select2->where('p.date <= ?', $params['dataEnd']);
     }
     if (empty($params['dataStart']) && empty($params['dataEnd'])) {
         $select2->where('p.date>=?', date('Y-m-01'));
     }
     $resultPieIncome = $groups2->fetchAll($select2);
     $this->view->resultPieIncome = $resultPieIncome;
     //END: Income PIE
     //START current month expenses / income / left
     $resultIncomeExpense = Needs_Tools::showIncomeExpensesDashboard(date('Y'), date('m'));
     if ($resultIncomeExpense) {
         $value = array();
         foreach ($resultIncomeExpense as $values) {
             $value[] = $values->getPrice();
         }
         if (isset($value[1])) {
             $this->view->incomeAmount = $value[1];
         } else {
             $this->view->incomeAmount = 0;
         }
         if (isset($value[0])) {
             $this->view->expensesAmount = $value[0];
         } else {
             $this->view->expensesAmount = 0;
         }
     } else {
         $this->view->incomeAmount = 0;
         $this->view->expensesAmount = 0;
     }
     //END current month expenses / income / left
     $categoryNames = array();
     $categoryRes = array();
     $monthly_stats = array();
     $line_color = array();
     $categoryNamesi = array();
     $categoryResi = array();
     $monthly_statsi = array();
     $line_colori = array();
     $i = 0;
     if ($this->getRequest()->getParam('idCategoryE')) {
         $params['idCategoryE'] = $this->getRequest()->getParam('idCategoryE');
     }
     if ($this->getRequest()->getParam('idCategoryI')) {
         $params['idCategoryI'] = $this->getRequest()->getParam('idCategoryI');
     }
     if ($this->getRequest()->getParam('dataStartC')) {
         $params['dataStartC'] = $this->getRequest()->getParam('dataStartC');
     }
     if ($this->getRequest()->getParam('dataEndC')) {
         $params['dataEndC'] = $this->getRequest()->getParam('dataEndC');
     }
     if ($this->getRequest()->getParam('timeframe')) {
         $params['timeframe'] = $this->getRequest()->getParam('timeframe');
     }
     if (isset($params['dataStartC']) || isset($params['dataEndC']) || isset($params['idCategoryE']) || isset($params['idCategoryI'])) {
         $value = array();
         if (empty($params['idCategoryE'])) {
             $params['idCategoryE'][0] = 1;
         }
         //expenses "category"
         if (empty($params['idCategoryI'])) {
             $params['idCategoryI'][0] = 2;
         }
         //income "category"
         $resultExpense = Needs_Tools::showExpensesDashboardbyDateCat($params['dataStartC'], $params['dataEndC'], $params['idCategoryE'], $params['timeframe']);
         $resultIncome = Needs_Tools::showIncomeDashboardbyDateCat($params['dataStartC'], $params['dataEndC'], $params['idCategoryI'], $params['timeframe']);
         $totalAmountCat = array();
         foreach ($resultExpense as $Expense => $values) {
             //echo($Expense."<br>");
             //print_r($values);
             foreach ($values as $cat => $value) {
                 //echo $cat."<br>";
                 //print_r($value);
                 $totalAmountCat[$cat] = isset($totalAmountCat[$cat]) ? $totalAmountCat[$cat] + $value[2] : $value[2];
                 $categoryRes[$cat] = $value[0];
                 $monthly_stats[$value[1]][$cat] = $value[2];
                 //monthly_stat[saptamana de forma data1/data2]=cheltuieli din sapt respectiva
                 $line_color[$cat] = $value[3];
                 //culoarea liniei pt categoria asta
             }
         }
         foreach ($categoryRes as $key => $value) {
             $categoryNames[$key] = $value . "-" . $totalAmountCat[$key];
         }
         asort($categoryNames);
         //order alphabetically
         $totalAmountCati = array();
         foreach ($resultIncome as $Income => $valuesi) {
             //echo($Income."<br>");
             //print_r($values);
             foreach ($valuesi as $cati => $valuei) {
                 //echo $cat."<br>";
                 //print_r($value);
                 $totalAmountCati[$cati] = isset($totalAmountCati[$cati]) ? $totalAmountCati[$cati] + $valuei[2] : $valuei[2];
                 $categoryResi[$cati] = $valuei[0];
                 $monthly_statsi[$valuei[1]][$cati] = $valuei[2];
                 //monthly_stat[saptamana de forma data1/data2]=cheltuieli din sapt respectiva
                 $line_colori[$cati] = $valuei[3];
                 //culoarea liniei pt categoria asta
             }
         }
         foreach ($categoryResi as $keyi => $valuei) {
             $categoryNamesi[$keyi] = $valuei . "-" . $totalAmountCati[$keyi];
         }
         asort($categoryNamesi);
         //order alphabetically
     } else {
         //                    $categoryNames[0]='Expenses';
         //                    $categoryNames[1]='Income';
         //                //for ($i=1;$i>=0;$i--){//show chart for last year as well.
         //                    for ($j=1;$j<(date('n')+1);$j++){
         //                        if (strlen($j)==1) $m="0".$j;
         //                        else $m=$j;
         //                        $resultIncomeExpense = Needs_Tools::showIncomeExpensesDashboard(date('Y')-$i, $m);
         //                        if ($resultIncomeExpense){
         //                            $value=array();
         //                            foreach ($resultIncomeExpense as $values){
         //                                $value[] = $values->getPrice();
         //                            }
         //                            if (isset($value[1])){
         //                            $monthly_stats[$m.'-'.(date('Y')-$i)][1]=$value[1];
         //                            }else $monthly_stats[$m.'-'.(date('Y')-$i)][1]=0;
         //                            if (isset($value[0])){
         //                            $monthly_stats[$m.'-'.(date('Y')-$i)][0]=$value[0];
         //                            }else $monthly_stats[$m.'-'.(date('Y')-$i)][0]=0;
         //                        }else{
         //                            $monthly_stats[$m.'-'.(date('Y')-$i)][0]=0;
         //                            $monthly_stats[$m.'-'.(date('Y')-$i)][1]=0;
         //                        }
         //                    }
         //                    $line_color[0]='#d43c2c';
         //                    $line_color[1]='#58a87d';
         //                //}//this shows income and expenses together when first loading the page
         //here i separate expenses and income each with its own graph.
         $categoryNames[0] = Zend_Registry::get('translate')->_('admin_expenses');
         $categoryNamesi[0] = Zend_Registry::get('translate')->_('admin_income');
         //for ($i=1;$i>=0;$i--){//show chart for last year as well.
         for ($j = 1; $j < date('n') + 1; $j++) {
             if (strlen($j) == 1) {
                 $m = "0" . $j;
             } else {
                 $m = $j;
             }
             $resultIncomeExpense = Needs_Tools::showIncomeExpensesDashboard(date('Y') - $i, $m);
             if ($resultIncomeExpense) {
                 $value = array();
                 foreach ($resultIncomeExpense as $values) {
                     $value[] = $values->getPrice();
                 }
                 if (isset($value[1])) {
                     $monthly_statsi[$m . '-' . (date('Y') - $i)][0] = $value[1];
                 } else {
                     $monthly_statsi[$m . '-' . (date('Y') - $i)][0] = 0;
                 }
                 if (isset($value[0])) {
                     $monthly_stats[$m . '-' . (date('Y') - $i)][0] = $value[0];
                 } else {
                     $monthly_stats[$m . '-' . (date('Y') - $i)][0] = 0;
                 }
             } else {
                 $monthly_stats[$m . '-' . (date('Y') - $i)][0] = 0;
                 $monthly_statsi[$m . '-' . (date('Y') - $i)][0] = 0;
             }
             $monthly_stats[$m . '-' . (date('Y') - $i)][1] = $m . '-' . (date('Y') - $i);
             //monthlystats[1]=the date
             $monthly_statsi[$m . '-' . (date('Y') - $i)][1] = $m . '-' . (date('Y') - $i);
             //monthlystats[1]=the date
         }
         $line_color[0] = '#d43c2c';
         $line_colori[0] = '#58a87d';
         //}
     }
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($formsearchcomplex->isValid($formData)) {
             $formsearchcomplex->populate($formData);
         }
     }
     if ($this->getRequest()->isPost()) {
         if ($this->getRequest()->getPost('submitReportE')) {
             $monthly_stats = array_filter($monthly_stats);
             $objPHPExcel = new PHPExcel();
             $objPHPExcel->getProperties()->setCreator("Money-Management-System")->setLastModifiedBy("Money-Management-System")->setTitle("Form")->setSubject(Zend_Registry::get('translate')->_('admin_expenses'))->setDescription(Zend_Registry::get('translate')->_('admin_expenses_chart'))->setKeywords("")->setCategory("");
             $col = 0;
             $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(0, 1, '');
             $col++;
             foreach ($categoryNames as $keys => $values) {
                 foreach ($monthly_stats as $monthlyStat => $valuesms) {
                     if (!array_key_exists($keys, $valuesms)) {
                         $valuesms[$keys] = 0;
                     }
                 }
                 $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($col, 1, $values);
                 $col++;
             }
             $row = 2;
             foreach ($monthly_stats as $monthlyStat => $values) {
                 //for each period: days/week intervals/months
                 $rowDate = $monthlyStat != '' ? $monthlyStat : '-';
                 $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(0, $row, $rowDate);
                 $col = 1;
                 foreach ($categoryNames as $keys => $value) {
                     if (array_key_exists($keys, $values)) {
                         $rowAmount = $values[$keys];
                     } else {
                         $rowAmount = 0;
                     }
                     $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($col, $row, $rowAmount);
                     $col++;
                 }
                 $row++;
             }
             $objPHPExcel->getActiveSheet()->setTitle(Zend_Registry::get('translate')->_('admin_expenses'));
             $objPHPExcel->setActiveSheetIndex(0);
             header('Content-Type: application/vnd.ms-excel');
             header('Content-Disposition: attachment;filename="' . date('Y-m-d-H-i-s') . '.xls"');
             /*header('Cache-Control: max-age=0');*/
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
             $objWriter->save('php://output');
             $this->_helper->viewRenderer->setNoRender();
             $this->_helper->getHelper('layout')->disableLayout();
         }
         //generate excel report for income
         if ($this->getRequest()->getPost('submitReportI')) {
             $monthly_stats = array_filter($monthly_stats);
             $objPHPExcel = new PHPExcel();
             $objPHPExcel->getProperties()->setCreator("Money-Management-System")->setLastModifiedBy("Money-Management-System")->setTitle("Form")->setSubject(Zend_Registry::get('translate')->_('admin_income'))->setDescription(Zend_Registry::get('translate')->_('admin_income_chart'))->setKeywords("")->setCategory("");
             $col = 0;
             $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(0, 1, '');
             $col++;
             foreach ($categoryNamesi as $keys => $values) {
                 foreach ($monthly_statsi as $monthlyStat => $valuesms) {
                     if (!array_key_exists($keys, $valuesms)) {
                         $valuesms[$keys] = 0;
                     }
                 }
                 $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($col, 1, $values);
                 $col++;
             }
             $row = 2;
             foreach ($monthly_statsi as $monthlyStat => $values) {
                 //for each period: days/week intervals/months
                 $rowDate = $monthlyStat != '' ? $monthlyStat : '-';
                 $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(0, $row, $rowDate);
                 $col = 1;
                 foreach ($categoryNamesi as $keys => $value) {
                     if (array_key_exists($keys, $values)) {
                         $rowAmount = $values[$keys];
                     } else {
                         $rowAmount = 0;
                     }
                     $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($col, $row, $rowAmount);
                     $col++;
                 }
                 $row++;
             }
             $objPHPExcel->getActiveSheet()->setTitle(Zend_Registry::get('translate')->_('admin_expenses'));
             $objPHPExcel->setActiveSheetIndex(0);
             header('Content-Type: application/vnd.ms-excel');
             header('Content-Disposition: attachment;filename="' . date('Y-m-d-H-i-s') . '.xls"');
             /*header('Cache-Control: max-age=0');*/
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
             $objWriter->save('php://output');
             $this->_helper->viewRenderer->setNoRender();
             $this->_helper->getHelper('layout')->disableLayout();
         }
     }
     $this->view->monthlyStats = array_filter($monthly_stats);
     $this->view->lineColor = $line_color;
     $this->view->categoryNames = $categoryNames;
     $this->view->monthlyStatsi = array_filter($monthly_statsi);
     $this->view->lineColori = $line_colori;
     $this->view->categoryNamesi = $categoryNamesi;
 }
Beispiel #12
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     if (!empty($_POST['PHPSESSID'])) {
         session_id($_POST['PHPSESSID']);
     }
     // GET MODULE/CONTROLLER/ACTION
     $module = $request->getModuleName();
     $controller = $request->getControllerName();
     $action = $request->getActionName();
     $auth = Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_Session());
     // SEND MODULE/CONTROLLER/ACTION
     $layout = Zend_Layout::getMvcInstance();
     $layout->getView()->module = $module;
     $layout->getView()->controller = $controller;
     $layout->getView()->action = $action;
     // Read ini file
     $options['nestSeparator'] = '.';
     $iniSettings = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV, $options);
     $db = new Zend_Db_Adapter_Pdo_Mysql(array('host' => $iniSettings->resources->db->params->host, 'username' => $iniSettings->resources->db->params->username, 'password' => $iniSettings->resources->db->params->password, 'dbname' => $iniSettings->resources->db->params->dbname));
     Zend_Registry::set('DB', $db);
     // BEGIN: Translate
     setlocale(LC_ALL, 'en_US.UTF-8');
     Zend_Registry::set('lang', 'ro');
     Zend_Registry::set('lang_id', '1');
     $adminLang = 'ro';
     $translate = new Zend_Translate('csv', 'data/lang/' . $adminLang . '.csv', $adminLang);
     $translate->setLocale($adminLang);
     Zend_Registry::set('translate', $translate);
     // END: Translate
     $acl = new Zend_Acl();
     $acl->add(new Zend_Acl_Resource('default:auth'));
     $acl->add(new Zend_Acl_Resource('default:index'));
     //BEGIN:ROLES
     $acl->addRole(new Zend_Acl_Role('guest'));
     $acl->allow('guest', 'default:auth', 'login');
     $acl->allow('guest', 'default:auth', 'index');
     $roles = Needs_Roles::fetchAllRoles();
     if ($roles) {
         foreach ($roles as $value) {
             $acl->addRole(new Zend_Acl_Role($value->getId()));
             $acl->deny($value->getId(), 'default:auth', 'login');
         }
     }
     //END:ROLES
     $accountRole = 'guest';
     if ($auth->hasIdentity()) {
         $accountAuth = $auth->getStorage()->read();
         Zend_Registry::set('user', $accountAuth);
         if ($accountAuth) {
             $accountRole = $accountAuth->getIdRole();
             $isAdmin = false;
             if (Needs_Roles::isAdmin($accountAuth->getIdRole())) {
                 $isAdmin = true;
             }
             Zend_Registry::set('isAdmin', $isAdmin);
             //BEGIN:NOTIFICARI
             $result_array = Needs_Tools::notifications($accountAuth->getId());
             Zend_Layout::getMvcInstance()->assign('notifications', $result_array[1]);
             Zend_Layout::getMvcInstance()->assign('notification_results', $result_array[0]);
             //BEGIN:NOTIFICARI
         }
     }
     //BEGIN:SETTING
     $settingsAll = new Default_Model_Setting();
     $select = $settingsAll->getMapper()->getDbTable()->select();
     $resultSettings = $settingsAll->fetchAll($select);
     if (null != $resultSettings) {
         foreach ($resultSettings as $value) {
             defined(strtoupper($value->getConst())) || define(strtoupper($value->getConst()), $value->getValue());
         }
     }
     //END:SETTING
     switch ($module) {
         //front-end
         default:
             $layout->setLayout('admin');
             //if ($auth->hasIdentity()) {
             //BEGIN:MENIU+RESOURCES
             $arrResources = array('default:index', 'default:auth');
             $resourcesGroup = Needs_Roles::fetchAllResourceGroups();
             if ($resourcesGroup) {
                 foreach ($resourcesGroup as $key => $modelMenu) {
                     //fetch resources by resource group
                     $submenu = new Default_Model_Resource();
                     $select = $submenu->getMapper()->getDbTable()->select()->where('deleted = ?', 0)->where('idGroup = ?', $modelMenu->getId());
                     $arrSubMenu = $submenu->fetchAll($select);
                     foreach ($arrSubMenu as $submenu) {
                         if ($submenu->getController() == NULL) {
                             continue;
                         }
                         $modul = $submenu->getModule() != NULL ? $submenu->getModule() : 'default';
                         $resource = $modul . ':' . $submenu->getController() . ':' . $submenu->getAction();
                         //chack if has access
                         $hasaccess = Needs_Roles::hasAccessbyId($accountRole, $submenu->getId());
                         //check if resource is already made
                         if (!in_array($resource, $arrResources)) {
                             //add resource to acl and to $arrResources
                             $acl->add(new Zend_Acl_Resource($resource));
                             $arrResources[] = $resource;
                             if ($hasaccess) {
                                 //allow on modul:controller (resource)
                                 $acl->allow($accountRole, $resource);
                             }
                         }
                         //BEGIN:allow on action
                         //								if($hasaccess){
                         //									//echo $resource.','.$submenu->getAction().'<br/>';
                         //									$acl->allow($accountRole, $resource, $submenu->getAction());
                         //								}else{
                         //									//$acl->deny($accountRole, $resource,$submenu->getAction());
                         //								}
                         //END:allow on action
                         if ($submenu->getInMeniu()) {
                             //BEGIN:TOP MENIU
                             $visible = $submenu->getVisible() ? true : false;
                             if ($submenu->getFirstNode()) {
                                 $pages[$key] = array('label' => $modelMenu->getName(), 'title' => $modelMenu->getName(), 'module' => $modul, 'controller' => $submenu->getController(), 'action' => $submenu->getAction(), 'resource' => $resource, 'class' => $modelMenu->getIconClass(), 'visible' => $visible);
                             }
                             //END:TOP MENIU
                             //BEGIN:SUBMENIU
                             $label = $submenu->getDescription();
                             $pages[$key]['pages'][] = array('label' => $label, 'title' => $label, 'module' => $modul, 'controller' => $submenu->getController(), 'action' => $submenu->getAction(), 'resource' => $resource, 'visible' => $visible);
                             //END:SUBMENIU
                         }
                     }
                 }
                 //}
                 //allow on index if logged in
                 if ($auth->hasIdentity()) {
                     $acl->allow($accountRole, 'default:index:index');
                     $acl->deny($accountRole, 'default:auth', 'login');
                     $acl->deny($accountRole);
                 }
                 //END:MENIU+RESOURCES
             }
             // Create container from array
             $container = new Zend_Navigation($pages);
             $layout->getView()->navigation($container)->setAcl($acl)->setRole($accountRole);
             $layout->getView()->headTitle('Admin', 'SET');
             $stylesheets = $layout->getView()->headLink();
             $stylesheets->prependStylesheet(WEBROOT . 'theme/front/css/style.css');
             $stylesheets->prependStylesheet(WEBROOT . 'theme/front/css/vali.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/js/jquery-ui/css/custom-theme/jquery-ui-1.10.4.custom.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/admin/js/uploadify/uploadify.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/admin/js/fancybox/jquery.fancybox.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/js/validation/validationEngine.jquery.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/css/shThemeDefault.css')->appendStylesheet(WEBROOT . '/theme/front/js/jquery-uniform/css/uniform.default.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/css/ana.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/css/shCoreDefault.min.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/css/shThemejqPlot.min.css');
             $stylesheets->appendStylesheet(WEBROOT . 'theme/front/css/spectrum.css');
             $javascripts = $layout->getView()->headScript();
             $javascripts->prependFile(WEBROOT . 'theme/admin/js/jquery-1.8.3.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/jquery-ui/js/jquery-ui-1.10.4.custom.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/admin/js/uploadify/jquery.uploadify.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/validation/jquery.validationEngine.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/validation/jquery.validationEngine-en.js');
             $javascripts->appendFile(WEBROOT . 'theme/admin/js/jquery.livequery.js');
             $javascripts->appendFile(WEBROOT . 'theme/admin/js/tipsy.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/fancybox/source/jquery.fancybox.pack.js')->appendFile(WEBROOT . 'theme/front/js/jquery-uniform/jquery.uniform.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/shCore.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/shBrushPhp.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/scripts.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/jquery.jqplot.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/jqplot.dateAxisRenderer.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/jqplot.barRenderer.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/jqplot.categoryAxisRenderer.min.js');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/jquery.editinplace.js');
             $javascripts->appendFile('http://www.google.com/jsapi');
             $javascripts->appendFile(WEBROOT . 'theme/front/js/spectrum.js');
             //
             switch ($controller) {
                 case 'error':
                     switch ($action) {
                         case 'error':
                             $layout->setLayout('error');
                             break;
                         default:
                             break;
                     }
                     break;
                 case 'iframe':
                     $layout->setLayout('iframe');
                     break;
                 case 'auth':
                     $layout->setLayout('auth');
                     switch ($action) {
                         case 'login':
                             $layout->getView()->headTitle('Login', 'SET');
                             if (!$acl->isAllowed($accountRole, 'default:auth', 'login')) {
                                 $this->_response->setRedirect(WEBROOT . 'index');
                             }
                             break;
                         default:
                             break;
                     }
                     break;
                 default:
                     $layout->setLayout('layout');
                     if (!$acl->isAllowed($accountRole, $module . ':' . $controller . ':' . $action)) {
                         $this->_response->setRedirect(WEBROOT . 'auth/login');
                     }
                     break;
             }
             break;
     }
 }