From 0ec36e60bd87ca984ed822ebf0c0f9ba5feadad9 Mon Sep 17 00:00:00 2001 From: Etienne Pallier <epallier@irap.omp.eu> Date: Fri, 12 May 2017 17:07:16 +0200 Subject: [PATCH] bugfix merge --- src/Controller/MaterielsController.php | 4 ---- src/Controller/MaterielsController.php~ | 1453 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/Template/Pages/acls.ctp | 122 -------------------------------------------------------------------------------------------------------------------------- 3 files changed, 0 insertions(+), 1579 deletions(-) delete mode 100644 src/Controller/MaterielsController.php~ diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 2c4ba0e..f872842 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -321,11 +321,7 @@ class MaterielsController extends AppController // $this->sendEmail($materiel->id); -<<<<<<< HEAD - return $this->redirect(['action' => 'view', $materiel->id]); -======= return $this->redirect(['action' => 'view', $materiel->id]); ->>>>>>> dev-IRAP } else { $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); } diff --git a/src/Controller/MaterielsController.php~ b/src/Controller/MaterielsController.php~ deleted file mode 100644 index a8bf5b4..0000000 --- a/src/Controller/MaterielsController.php~ +++ /dev/null @@ -1,1453 +0,0 @@ -<?php -namespace App\Controller; - -use App\Controller\AppController; -use Cake\Core\Configure; -use Cake\ORM\TableRegistry; -use Cake\Mailer\Email; - -/** - * Materiels Controller - * - * @property \App\Model\Table\MaterielsTable $Materiels - */ -class MaterielsController extends AppController -{ - - private $NOTARCHIVED = ['CREATED', 'VALIDATED', 'TOBEARCHIVED']; - public $role; - - /** - * @param $user - * - * Give authorization for materiels - * - * @return boolean - */ - public function isAuthorized($user) - { - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); - $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; - $this->role = $role; - $action = $this->request->params['action']; - - - if ($action == 'edit') { - $id = (int)$this->passedArgs[0]; - - if($this->isCreated($id) || $this->isValidated($id)) { - if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0].' '.$user['givenname'][0])) { - return true; - } - else if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { - return true; - } - else if ($this->userHasRole('Administration')) { - return true; - } - } - if($this->userHasRole('Administration Plus')) { - return true; - } - } - - if ($action == 'delete') { - $id = (int)$this->passedArgs[0]; - - if($this->isCreated($id)) { - if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0].' '.$user['givenname'][0])) { - return true; - } - else if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { - return true; - } - else if ($this->userHasRole('Administration')) { - return true; - } - } - } - - if ($action == 'statusValidated') { - $id = (int)$this->passedArgs[0]; - if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { - if($this->isCreated($id)) { - return true; - } - } - else if ($this->userHasRole('Administration')) { - if($this->isCreated($id)) { - return true; - } - } - } - - if ($action == 'statusToBeArchived') { - $id = (int)$this->passedArgs[0]; - if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { - if($this->isValidated($id)) { - return true; - } - } - else if ($this->userHasRole('Administration')) { - if($this->isValidated($id)) { - return true; - } - } - } - - if ($action == 'statusArchived') { - $id = (int)$this->passedArgs[0]; - if ($this->userHasRole('Administration')) { - if($this->isToBeArchived($id)) { - if($role == 'Super Administrateur') { - return false; - } - else { - return true; - } - } - } - } - - if ($action == 'export') { - if ($this->userHasRole('Responsable')) { - return true; - } - } - - if (in_array($action, ['execActions', 'setLabelIsPlaced', 'setLabelIsPlacedOrNotPlaced', 'setLabelIsNotPlaced', 'printLabelRuban'])) { - if ($this->userHasRole('Administration')) { - return true; - } - } - - - - return parent::isAuthorized($user); - } - - public function isOwnedBy($id, $nomCreateur) - { - return ($this->Materiels->exists(['id' => $id, 'nom_createur' => $nomCreateur]) || $this->Materiels->exists(['id' => $id, 'nom_responsable' => $nomCreateur])); - } - - public function isRespGroup($id, $loginResponsable) - { - $u = TableRegistry::get('Users')->find()->where(['username' => $loginResponsable])->first(); - - if(isset($u['groupes_metier_id']) && $u['groupes_metier_id'] != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { - return ($this->Materiels->exists(['id' => $id, 'groupes_metier_id' => $u['groupes_metier_id']])); - } - else if (isset($u['groupe_thematique_id']) && $u['groupe_thematique_id'] != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { - return ($this->Materiels->exists(['id' => $id, 'groupes_thematique_id' => $u['groupe_thematique_id']])); - } - else { - return false; - } - } - - public function isCreated($id) - { - return $this->Materiels->exists(['id' => $id, 'status' => 'CREATED']); - } - public function isValidated($id) - { - return $this->Materiels->exists(['id' => $id, 'status' => 'VALIDATED']); - } - public function isToBeArchived($id) - { - return $this->Materiels->exists(['id' => $id, 'status' => 'TOBEARCHIVED']); - } - public function isArchived($id) - { - return $this->Materiels->exists(['id' => $id, 'status' => 'ARCHIVED']); - } - - - - /** - * Index method - * - * @return \Cake\Network\Response|null - */ - public function index() - { - // Remplacement de $this->passedArgs[0] (deprecated) - // Par $this->passedArgs[0] - $condition = ''; - if (isset($this->passedArgs[0])) { - $condition = ['Materiels.status =' => $this->passedArgs[0]]; - $this->set('STATUS', $this->passedArgs[0]); - } - - $GM = $this->request->query('GM'); - $GT = $this->request->query('GT'); - if(isset($GM) || isset($GT)) { - if(isset($GM) && $GM != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { - $condition = ['Materiels.groupes_metier_id =' => $GM, 'Materiels.status !=' => 'ARCHIVED']; - } - else if (isset($GT) && $GT != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { - $condition = ['Materiels.groupes_thematique_id =' => $GT, 'Materiels.status !=' => 'ARCHIVED']; - } - else { - $condition = ['Materiels.id =' => 0]; - } - } - - $GMV = $this->request->query('GMV'); - $GTV = $this->request->query('GTV'); - if(isset($GMV) || isset($GTV)) { - if(isset($GMV) && $GMV != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { - $condition = ['Materiels.groupes_metier_id =' => $GMV, 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; - } - else if (isset($GTV) && $GTV != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { - $condition = ['Materiels.groupes_metier_id =' => $GTV, 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; - } - else { - $condition = ['Materiels.id =' => 0]; - } - } - - - $MY = $this->request->query('MY'); - if(isset($MY)) { - if(in_array($this->role, ['Utilisateur', 'Responsable'])) { - $condition = ['Materiels.nom_responsable =' => $this->request->query('MY'), 'Materiels.status !=' => 'ARCHIVED']; - } else { - $condition = ['Materiels.nom_responsable =' => $this->request->query('MY')]; - } - - } - - - if(in_array($this->role, ['Utilisateur', 'Responsable']) && $condition == '') { - $condition = ['Materiels.status !=' => 'ARCHIVED']; - } - - $config = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); - $limit = $config['aff_par_defaut']; - - $this->paginate = [ - 'limit' => $limit, - 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites'], - 'order' => ['Materiels.numero_laboratoire' => 'desc'] - ]; - - $materiels = $this->paginate($this->Materiels->find('all', ['conditions' => $condition])); - - $this->set('nbMateriels', $this->Materiels->find('all', ['conditions' => $condition])->count()); - - - $this->set(compact('materiels')); - $this->set('_serialize', ['materiels']); - } - - /** - * View method - * - * @param string|null $id Materiel id. - * @return \Cake\Network\Response|null - * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. - */ - public function view($id = null) - { - $materiel = $this->Materiels->get($id, [ - 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites', 'Documents', 'Emprunts', 'Suivis'] - ]); - - $sites = TableRegistry::get('Sites'); - $typeSuivis = TableRegistry::get('TypeSuivis'); - $typeDocuments = TableRegistry::get('TypeDocuments'); - - if($materiel->photo_id != null) { - $imgMateriel = $materiel->photo_id.'.'.TableRegistry::get('Documents')->get($materiel->photo_id)->get('type_doc'); - $this->set('imgMateriel', $imgMateriel); - } - - $this->set('sites', $sites); - $this->set('typeSuivis', $typeSuivis); - $this->set('typeDocuments', $typeDocuments); - - $this->set('materiel', $materiel); - $this->set('_serialize', ['materiel']); - } - - /** - * Add method - * - * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. - */ - public function add() - { - $materiel = $this->Materiels->newEntity(); - if ($this->request->is('post')) { - $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); - if ($this->Materiels->save($materiel)) { - $this->Flash->success(__('Le matériel a bien été ajouté.')); - - $this->sendEmailToManagement($materiel->id); - - if($materiel->nom_createur != $materiel->nom_responsable) { - $this->sendEmailToCreate($materiel->id); - } - - $message = $materiel->get('nom_createur').' a ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; - - //Envoi mail responsable - $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray(); - $mails = []; - for($i = 0; $i < sizeof($mailsResp); $i++) { - $mails[$i] = $mailsResp[$i]['email']; - } - $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); - - //Envoi mail administratif - //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray(); - $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray(); - $mails = []; - for($i = 0; $i < sizeof($mailsResp); $i++) { - $mails[$i] = $mailsResp[$i]['email']; - } - - - // Rajout condition d'envoi de mail ou pas - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); - - if(!$configuration['envoi_mail_management_dev']){ // Si false, on envoie les mails, sinon on les envoie pas - $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); - } - - - return $this->redirect(['action' => 'view', $materiel->id]); - } else { - $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); - } - } - - $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom']); - $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Categories.nom']); - $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SousCategories.nom']); - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); - $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); - $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); - - $users = TableRegistry::get('LdapConnections')->getListUsers(); - //tri des utilisateurs par nom - sort($users); - $utilisateurs = []; - for($i = 0; $i < sizeof($users); $i++) { - $utilisateurs[$users[$i]] = $users[$i]; - } - - $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; - - if(isset($this->passedArgs[0])) { - $cpMateriel = $this->Materiels->get($this->passedArgs[0]); - $this->set('cpMateriel', $cpMateriel); - } - - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); - $this->set('_serialize', ['materiel']); - - } - - /** - * Edit method - * - * @param string|null $id Materiel id. - * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. - * @throws \Cake\Network\Exception\NotFoundException When record not found. - */ - public function edit($id = null) - { - $materiel = $this->Materiels->get($id, [ - 'contain' => [] - ]); - if ($this->request->is(['patch', 'post', 'put'])) { - $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); - if ($this->Materiels->save($materiel)) { - $this->Flash->success(__('Le matériel a bien été édité.')); - $this->sendEmailToManagement($id); - if($materiel->nom_modificateur != $materiel->nom_responsable) { - $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; - $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]); - } - return $this->redirect(['action' => 'view', $id]); - } else { - $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); - } - } - $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom']); - $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Categories.nom']); - $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SousCategories.nom']); - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); - $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); - $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); - - $users = TableRegistry::get('LdapConnections')->getListUsers(); - //tri des utilisateurs par nom - sort($users); - $utilisateurs = []; - for($i = 0; $i < sizeof($users); $i++) { - $utilisateurs[$users[$i]] = $users[$i]; - } - - if(!empty($materiel->get('nom_responsable'))){ - if(!in_array($materiel->get('nom_responsable'), $utilisateurs)){ - $nom_ancien_responsable = $materiel->get('nom_responsable'); - $this->set(compact('nom_ancien_responsable')); - } - } - $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; - - //Fonction utilisé dans la vue, déclaré ici pour éviter les problèmes de tests - $isReadonlyField = function ($fieldName, $myReadonlyFields) { - if (! empty ( $myReadonlyFields ) && $myReadonlyFields [0] == '*') { - $modifiableFields = $myReadonlyFields; - array_shift ( $modifiableFields ); - return ! in_array ( $fieldName, $modifiableFields ); - } - return in_array ( $fieldName, $myReadonlyFields ); - }; - $this->set('isReadonlyField', $isReadonlyField); - - $this->set('IS_CREATED', $materiel->status == 'CREATED'); - $this->set('IS_VALIDATED', $materiel->status == 'VALIDATED'); - $this->set('IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'])); - - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); - $this->set('_serialize', ['materiel']); - } - - - /** - * Administrer method - * - * @param string|null $id Materiel id. - * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. - * @throws \Cake\Network\Exception\NotFoundException When record not found. - */ - public function administrer($id = null) - { - $materiel = $this->Materiels->get($id, [ - 'contain' => [] - ]); - if ($this->request->is(['patch', 'post', 'put'])) { - $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); - if ($this->Materiels->save($materiel, ['checkRules' => false])) { - $this->Flash->success(__('Le matériel a bien été édité.')); - return $this->redirect(['action' => 'view', $id]); - } else { - $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); - } - } - $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom']); - $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Categories.nom']); - $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SousCategories.nom']); - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); - $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); - $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); - - $users = TableRegistry::get('LdapConnections')->getListUsers(); - //tri des utilisateurs par nom - sort($users); - $utilisateurs = []; - for($i = 0; $i < sizeof($users); $i++) { - $utilisateurs[$users[$i]] = $users[$i]; - } - - if(!empty($materiel->get('nom_responsable'))){ - if(!in_array($materiel->get('nom_responsable'), $utilisateurs)){ - $nom_ancien_responsable = $materiel->get('nom_responsable'); - $this->set(compact('nom_ancien_responsable')); - } - } - $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; - - $this->set('IS_CREATED', $materiel->status == 'CREATED'); - $this->set('IS_VALIDATED', $materiel->status == 'VALIDATED'); - $this->set('IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'])); - - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); - $this->set('_serialize', ['materiel']); - } - - - /** - * Delete method - * - * @param string|null $id Materiel id. - * @return \Cake\Network\Response|null Redirects to index. - * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. - */ - public function delete($id = null) - { - //$this->request->allowMethod(['post', 'delete']); - $materiel = $this->Materiels->get($id); - if ($this->Materiels->delete($materiel)) { - $this->Flash->success(__('Le matériel a bien été supprimé.')); - $this->sendEmailToManagement($id); - } else { - $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.')); - } - return $this->redirect(['action' => 'index']); - } - - /** - * StatusSetTo method - * - * @param string $newStatus - * @param string $message - * @param string $id - * @param string $from - * @return \Cake\Network\Response|NULL - */ - private function statusSetTo($newStatus, $message, $id = null, $from = 'index') { - $materiel = $this->Materiels->get($id)->set('status', $newStatus); - - if($newStatus == 'ARCHIVED') { - $materiel->set('date_archivage', date('Y-m-d')); - } - - if($newStatus == 'VALIDATED') { - if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { - $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); - return $this->redirect(['action' => 'edit', $id]); - } - $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.'; - $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); - } - - if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { - $this->Flash->success(__($message)); - $this->sendEmailToManagement($id); - } - else { - $this->Flash->error(__('Le statut n\'a pas pu être édité.')); - } - - if($from == 'index') return $this->redirect(['action'=>$from]); - else return $this->redirect(['action'=>$from, $id]); - } - - /** - * StatusValidated method - * - * @param string $id - * @param string $from - */ - public function statusValidated($id = null, $from = 'index') { - $this->statusSetTo('VALIDATED', 'Le matériel a bien été validé', $id, $from); - } - - /** - * StatusToBeArchived method - * - * @param string $id - * @param string $from - */ - public function statusToBeArchived($id = null, $from = 'index') { - $this->statusSetTo('TOBEARCHIVED', 'La sortie d\'inventaire a bien été demandée', $id, $from); - } - - /** - * StatusArchived method - * - * @param string $id - * @param string $from - */ - public function statusArchived($id = null, $from = 'index') { - $this->statusSetTo('ARCHIVED', 'Le matériel a bien été sorti de l\'inventaire', $id, $from); - } - - /** - * GetConditionForField method - * - * @param unknown $fieldName - * @return string[]|NULL - */ - private function getConditionForField($fieldName) { - $searchFieldName = 's_' . $fieldName; - if ( isset($this->request->data[$searchFieldName]) && ($this->request->data[$searchFieldName] != '')) return ["Materiels.$fieldName LIKE" => '%'.$this->request->data[$searchFieldName].'%']; - return NULL; - } - - /** - * GetConditionForFieldNumber method - * - * @param unknown $fieldName - * @return $string[]|NULL - */ - private function getConditionForFieldNumber($fieldName) { - $searchFieldName = 's_' . $fieldName; - if ( isset($this->request->data[$searchFieldName]) && ($this->request->data[$searchFieldName] != '')) return ["Materiels.$fieldName =" => $this->request->data[$searchFieldName]]; - return NULL; - } - - /** - * Find method - */ - public function find() { - - $s_sur_categories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom']); - $s_categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Categories.nom']); - $s_sous_categories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SousCategories.nom']); - $s_groupes_thematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); - $s_groupes_metiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); - $s_organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); - - $categories = $this->Materiels->Categories; - - $this->set(compact('s_sur_categories', 's_categories', 's_sous_categories', 's_groupes_thematiques', 's_groupes_metiers', 's_organismes', 'categories')); - - $resultTri = $this->request->session()->read("resultTri"); - - if(!(in_array($this->role, ['Administration', 'Administration Plus', 'Super Administrateur']))) { - $conditionNotArchived = ['Materiels.status !=' => 'ARCHIVED']; - }else { - $conditionNotArchived = ''; - } - - // some data POSTED (au moins le champ de recherche generale) ? - if ( isset($this->request->data['s_all']) || isset($this->request->data['s_all_2']) || isset($this->request->data['s_designation'])) { - $generalFieldConditions = NULL; - // if general field set (s_all), then set general request for it - if (isset($this->request->data['s_all'])) { - $all = $this->request->data['s_all']; - $generalFieldConditions = ['OR' => [ - 'Materiels.designation LIKE' => '%'.$all.'%', - 'Materiels.numero_laboratoire LIKE' => '%'.$all.'%', - 'Materiels.numero_inventaire_organisme LIKE' => '%'.$all.'%', - 'Materiels.numero_inventaire_old LIKE' => '%'.$all.'%', - 'Materiels.numero_commande LIKE' => '%'.$all.'%', - 'Materiels.description LIKE' => '%'.$all.'%', - 'Materiels.fournisseur LIKE' => '%'.$all.'%', - 'Materiels.nom_responsable LIKE' => '%'.$all.'%', - 'Materiels.email_responsable LIKE' => '%'.$all.'%', - 'Materiels.code_comptable LIKE' => '%'.$all.'%', - 'Materiels.numero_serie LIKE' => '%'.$all.'%', - 'Materiels.date_acquisition LIKE' => '%'.$all.'%', - 'Materiels.date_reception LIKE' => '%'.$all.'%', - ]]; - } - if (isset($this->request->data['s_all_2'])) { - $all = $this->request->data['s_all_2']; - $generalFieldConditions = ['OR' => [ - 'Materiels.designation LIKE' => '%'.$all.'%', - 'Materiels.numero_laboratoire LIKE' => '%'.$all.'%', - 'Materiels.numero_inventaire_organisme LIKE' => '%'.$all.'%', - 'Materiels.numero_inventaire_old LIKE' => '%'.$all.'%', - 'Materiels.numero_commande LIKE' => '%'.$all.'%', - 'Materiels.description LIKE' => '%'.$all.'%', - 'Materiels.fournisseur LIKE' => '%'.$all.'%', - 'Materiels.nom_responsable LIKE' => '%'.$all.'%', - 'Materiels.email_responsable LIKE' => '%'.$all.'%', - 'Materiels.code_comptable LIKE' => '%'.$all.'%', - 'Materiels.numero_serie LIKE' => '%'.$all.'%', - 'Materiels.date_acquisition LIKE' => '%'.$all.'%', - 'Materiels.date_reception LIKE' => '%'.$all.'%', - ]]; - } - $specificFieldsConditions = NULL; - // au moins un champ specifique rempli ? - if ( isset($this->request->data['s_designation']) ) { - // Materiel type - $matostype = $this->request->data['s_matostype']; - $matostypeRequest = NULL; - - switch ($matostype) { - // Administratif - case 'A': - $matostypeRequest['Materiels.materiel_administratif ='] = '1'; - break; - // Technique - case 'T': - $matostypeRequest['Materiels.materiel_technique ='] = '1'; - break; - // Admin et Tech - case 'AT': - $matostypeRequest['Materiels.materiel_administratif ='] = '1'; - $matostypeRequest['Materiels.materiel_technique ='] = '1'; - break; - // Admin ONLY - case 'AO': - $matostypeRequest['Materiels.materiel_administratif ='] = '1'; - $matostypeRequest['Materiels.materiel_technique ='] = '0'; - break; - // Tech ONLY - case 'TO': - $matostypeRequest['Materiels.materiel_administratif ='] = '0'; - $matostypeRequest['Materiels.materiel_technique ='] = '1'; - break; - } - - $periode_acquisitionRequest = NULL; - $date_acquisition = NULL; - if ($this->request->data['s_periode_acquisition1'] != '') - $periode_acquisitionRequest['Materiels.date_acquisition >='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_periode_acquisition1']))); - if ($this->request->data['s_periode_acquisition2'] != '') - $periode_acquisitionRequest['Materiels.date_acquisition <='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_periode_acquisition2']))); - if ($this->request->data['s_date_acquisition'] != '') - $date_acquisition['Materiels.date_acquisition LIKE'] = '%'.date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_date_acquisition']))).'%'; - - $montantRequest = []; - if ($this->request->data['s_prix_ht_inf'] != '') - $montantRequest['Materiels.prix_ht <='] = $this->request->data['s_prix_ht_inf']; - if ($this->request->data['s_prix_ht_sup'] != '') - $montantRequest['Materiels.prix_ht >='] = $this->request->data['s_prix_ht_sup']; - - $specificFieldsConditions = [ - 'Materiels.designation LIKE' => '%'.$this->request->data['s_designation'].'%', - 'Materiels.numero_laboratoire LIKE' => '%'.$this->request->data['s_numero_laboratoire'].'%', - $this->getConditionForField('numero_commande'), - $date_acquisition, - $periode_acquisitionRequest, - $this->getConditionForFieldNumber('prix_ht'), - $montantRequest, - $this->getConditionForFieldNumber('sur_categorie_id'), - $this->getConditionForFieldNumber('categorie_id'), - $this->getConditionForFieldNumber('sous_categorie_id'), - $this->getConditionForField('nom_responsable'), - $this->getConditionForField('numero_inventaire_organisme'), - $this->getConditionForField('numero_inventaire_old'), - $this->getConditionForFieldNumber('groupes_metier_id'), - $this->getConditionForFieldNumber('groupes_thematique_id'), - - $this->getConditionForFieldNumber('organisme_id'), - $matostypeRequest, - ]; - if($this->request->data['s_status'] != '') { - array_push($specificFieldsConditions, ['Materiels.status =' => $this->request->data['s_status']]); - } - } - - // CONSTRUCTION DE LA REQUETE SQL COMPLETE = $specificFieldsConditions OR $generalFieldConditions (mais entre chaque champ, c'est un AND) - // by default, no sort - - if (isset($this->request->data['s_all_2']) && $this->request->data['s_all_2'] != '') { - $conditions = [$generalFieldConditions, $conditionNotArchived]; - } - else if (isset($this->request->data['s_all']) && $this->request->data['s_all'] != '') { - $conditions = [$generalFieldConditions, $conditionNotArchived]; - } - else { - $conditions = [$specificFieldsConditions, $conditionNotArchived]; - } - - $lastResults = $this->Materiels->find('all', ['limit' => 1000, 'conditions' => $conditions]); - - $this->paginate = ['limit' => 1000]; - $_results = $this->paginate($lastResults); - $this->set(compact('_results')); - - //pour l'export - $this->request->session()->write("result", $lastResults->toArray()); - - } // end if() - else if (isset($resultTri) && strstr($this->request->here(), 'sort') != false && strstr($this->request->here(), 'direction') != false) { - $findedMateriel = []; - - foreach($resultTri as $r) { - array_push($findedMateriel, $r->id); - } - $res = $this->Materiels->find('all', ['limit' => 1000]); - for($i = 0; $i < sizeof($findedMateriel); $i++) { - $res->orWhere(['id =' => $findedMateriel[$i]]); - } - - $this->paginate = ['limit' => 1000]; - $_results = $this->paginate($res); - $this->set(compact('_results')); - - //pour l'export - $this->request->session()->write("result", $res->toArray()); - } - } - - /** - group update status + exportAll - */ - public function execActions() { - if (isset($this->request->data['updateSelectedStatus'])) { - $this->updateSelectedStatus(); - } - else { - $this->export(); - } - } - - - /** - * group update status (selected from materiels/index) - */ - private function updateSelectedStatus() { - - if (isset($this->request->data) && sizeof($this->request->data) > 0) { - $this->myDebug("IN UPDATE"); - $this->myDebug($this->request->data); - $what = $this->request->data['what']; - $nb = 0; - - if ( in_array($what,$this->NOTARCHIVED) ) { - foreach ($this->request->data as $id => $value) : if ($value == 1) { - switch ($what) { - case 'CREATED': $new = 'VALIDATED'; break; - case 'VALIDATED': $new = 'TOBEARCHIVED'; break; - case 'TOBEARCHIVED': $new = 'ARCHIVED'; - break; - } - //if mode_debug desactivate - if (!$this->isLabinventDebugMode()) { - $materiel = $this->Materiels->get($id)->set('status', $new); - $this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false]); - } - $nb++; - } endforeach; - if ($nb != 0) $this->Flash->success(__($nb.' matériel(s) mis à jour')); - $this->myDebug("Nb matos = ".$nb); - - if(!$this->isLabinventDebugMode()) return $this->redirect(['action' => 'index', $what]); - } - } - } - - /** - * - * Export method - * - * Generation d'un fichier .csv comportant la date du jour - * - * CSV export of the list of materiels - * This action is called from 3 different sources : - * - tools - * - materiels/find - * - materiels/index (from the 2 submit green buttons named "Exporter la liste...") - * - * Optional parameter "what:value" may be passed when calling this action, and is read from $this->params['named']['what'] - * ex : materiels/export/what:toValidate - * - */ - public function export() { - - $materiels = NULL; - $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray(); - - $what = ''; - - $this->myDebug($this->request->data); - - if ( isset($this->request->data['export'])) { - $this->myDebug("IN EXPORT"); - $what = $this->request->data['what']; - - $selectedMateriels = []; - $i = 0; - $data = $this->request->data; - foreach ($data as $val) { - if ($val == 1) { - $selectedMateriels[$i] = key($data); - $i++; - } - next($data); - } - - $this->myDebug($selectedMateriels); - - if (sizeof($selectedMateriels) > 0) { - - $materiels = $this->Materiels->find('all')->where(['Materiels.id' => $selectedMateriels[0]]); - - for ($j = 0; $j < sizeof($selectedMateriels); $j++) { - $materiels->orWhere(['Materiels.id' => $selectedMateriels[$j]]); - } - - $this->myDebug($materiels); - } - - } - - else if (isset($this->request->data['exportAll'])) { - $this->myDebug("IN EXPORTALL"); - - if (isset($this->request->data['what'])) { - $what=$this->request->data['what']; - $status=$what; - $materiels = $this->Materiels->find('all', ['conditions' => ['Materiels.status =' => $status]]); - } - else { - $status = 'ARCHIVED'; - $materiels = $this->Materiels->find('all', ['conditions' => ['Materiels.status !=' => $status]]); - } - - $this->myDebug("what is ".$what); - $this->myDebug("statut is ".$status); - - - } - - - else if (isset($this->passedArgs[0])) { - - $this->myDebug("OTHER CASE 3"); - $what = $this->passedArgs[0]; - if ($what == 'search') { - $materiels = $this->request->session()->read("result"); - } - - } - - else { - $this->myDebug("OTHER CASE 4"); - $materiels = $this->Materiels->find('all', ['conditions' => ['Materiels.status !=' => 'ARCHIVED']]); - } - - $this->myDebug("Nb matos = ".count($materiels)); - $this->myDebug($materiels, true); - - - - ini_set('max_execution_time', 600); - - $filename = 'export_'.date("Y-m-d") . '.csv'; - $csv_file = fopen('php://output', 'w'); - - $this->response->header(['Content-type: application/csv', 'Content-Disposition: attachment; filename="'.$filename.'"']); - $this->response->sendHeaders(); - - $header_row = [ - "id", "Designation", "Sur-categorie", "Categorie", "Sous-categorie", "Numero interne", "Description", "Organisme", - "Mat. administratif", "Mat. technique", "Statut", "Date d'acquisition", "Date de reception", "Fournisseur", "Prix HT", - "EOTP", "Numero de commande", "Code comptable", "Numero de serie", "Grp. thematique", "Grp. metier", - "Numero inventaire organisme", "Ancien Numero inventaire", "Site stockage", "Nom responsable", "Email responsable"]; - - fputcsv($csv_file, $header_row, ';'); - - foreach($materiels as $result) { - $row = [ - utf8_encode($result->id), - $result->designation, - ]; - - if(isset($surCategories[$result->sur_categorie_id])) { - array_push($row, $surCategories[$result->sur_categorie_id]); - } - else { - array_push($row, ""); - } - - if(isset($categories[$result->categorie_id])) { - array_push($row, $categories[$result->categorie_id]); - } - else { - array_push($row, ""); - } - - if(isset($sousCategories[$result->sous_categorie_id])) { - array_push($row, $sousCategories[$result->sous_categorie_id]); - } - else { - array_push($row, ""); - } - - array_push($row, $result->numero_laboratoire); - array_push($row, $result->description); - - if(isset($organismes[$result->organisme_id])) { - array_push($row, $organismes[$result->organisme_id]); - } - else { - array_push($row, ""); - } - - array_push($row, $result->materiel_administratif); - array_push($row, $result->materiel_technique); - array_push($row, $result->status); - array_push($row, $result->date_acquisition); - array_push($row, $result->date_reception); - array_push($row, $result->fournisseur); - array_push($row, $result->prix_ht); - array_push($row, $result->eotp); - array_push($row, $result->numero_commande); - array_push($row, $result->code_comptable); - array_push($row, $result->numero_serie); - - if(isset($groupesThematiques[$result->groupes_thematique_id])) { - array_push($row, $groupesThematiques[$result->groupes_thematique_id]); - } - else { - array_push($row, ""); - } - if(isset($groupesMetiers[$result->groupes_metier_id])) { - array_push($row, $groupesMetiers[$result->groupes_metier_id]); - } - else { - array_push($row, ""); - } - - array_push($row, $result->numero_inventaire_organisme); - array_push($row, $result->numero_inventaire_old); - - if(isset($sites[$result->site_id])) { - array_push($row, $sites[$result->site_id].'-'.$result->lieu_detail); - } - else { - array_push($row, ""); - } - - array_push($row, $result->nom_responsable); - array_push($row, $result->email_responsable); - - fputcsv($csv_file,$row,';','"'); - - } - sleep(3); - fclose($csv_file); - - exit(); - //Sans le exit() ca ne fonctionne pas pour de petite liste, et dans tous les cas une ligne en javascript est écris si il n'y a pas exit() - - //La redirection suivante fonctionne parfaitement, mais inutile à cause du exit() - /* - if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]); - else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)'); - else return $this->redirect(['action' => 'index']); - */ - - - } - - - /** - * SetLabelIsPlacedOrNotPlaced method - * - * @param string $id - * @param string $from - * @param string $printed - * @return \Cake\Network\Response|NULL - */ - public function setLabelIsPlacedOrNotPlaced($id,$from,$printed=TRUE) { - $materiel = $this->Materiels->get($id)->set('etiquette', $printed); - - if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { - $this->Flash->success(__('L\'étiquette a bien été éditer.')); - // Envoi email seulement si etiquette posée - if ($printed) { - $this->sendEmailToManagement($id); - } - } - else { - $this->Flash->error(__('L\'étiquette n\'a pas pu être édité.')); - } - - return $this->redirect($this->referer()); - } - - /** - * SetLabelIsPlaced method - * - * @param string $id - * @param string $from - */ - public function setLabelIsPlaced($id,$from) { - $this->setLabelIsPlacedOrNotPlaced($id, $from, TRUE); - } - - /** - * SetLabelIsNotPlaced method - * - * @param string $id - * @param string $from - */ - public function setLabelIsNotPlaced($id,$from) { - $this->setLabelIsPlacedOrNotPlaced($id, $from, FALSE); - } - - - /** - * PrintLabelRuban method - * - * @param string $id - * @param string $from - */ - public function printLabelRuban($id, $from='view') { - $this->printLabel('ruban', $id, $from); - } - - /** - * PrintLabelEtiquette method - * - * @param string $id - * @param string $from - * - public function printLabelEtiquette($id, $from='view') { - $this->printLabel('etiquette', $id, $from); - }*/ - - - /** - * PrintLabel method - * - * @param string $type - * @param string $id - * @param string $from - */ - private function printLabel($type='etiquette', $id, $from='view') { - - $materiel = $this->Materiels->get($id); - - $numeroLab = $materiel->numero_laboratoire; - - $organisme = $materiel->organisme_id; - - $numeroInventaireOrganisme = $materiel->numero_inventaire_organisme; - $dateAcquisition = $materiel->date_acquisition; - - $filename = 'inventirap_label.label'; - $file = fopen('php://output', 'w'); - $this->response->header(['Content-type: application/xml', 'Content-Disposition: attachment; filename="'.$filename.'"']); - $this->response->sendHeaders(); - - - /* - * SIMPLE LABEL FOR PRINTER DYMO LabelWriter 450 : NO LOGO - */ - /* - '<?xml version="1.0" encoding="utf-8"?> - <DieCutLabel Version="8.0" Units="twips"> - <PaperOrientation>Landscape</PaperOrientation> - <Id>MultiPurpose11355</Id> - <PaperName>11355 Multi-Purpose</PaperName> - <DrawCommands> - <RoundRectangle X="0" Y="0" Width="1080" Height="2880" Rx="180" Ry="180"/> - </DrawCommands> - <ObjectInfo> - <TextObject> - <Name>TEXTE</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable> - <HorizontalAlignment>Left</HorizontalAlignment> - <VerticalAlignment>Middle</VerticalAlignment> - <TextFitMode>None</TextFitMode> - <UseFullFontHeight>True</UseFullFontHeight> - <Verticalized>False</Verticalized> - <StyledText> - <Element> - <String>' - ."$numeroLab"."\n" - ."$dateAcquisition"."\n" - ."$organisme"."\n" - .'</String> - <Attributes> - <Font Family="Lucida Grande" Size="10" Bold="False" Italic="False" Underline="False" Strikeout="False"/> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Attributes> - </Element> - </StyledText> - </TextObject> - <Bounds X="326.4" Y="57.59995" Width="2467.2" Height="940.8"/> - </ObjectInfo> - </DieCutLabel>' - ."\n" - */ - - /* - * ETIQUETTE (19x51 mm) - * - * LABEL FOR PRINTER DYMO LabelWriter 450 : WITH LOGO - */ - if ($type == 'etiquette') fputs($file, - - '<?xml version="1.0" encoding="utf-8"?> - <DieCutLabel Version="8.0" Units="twips"> - <PaperOrientation>Landscape</PaperOrientation> - <Id>MultiPurpose11355</Id> - <PaperName>11355 Multi-Purpose</PaperName> - <DrawCommands> - <RoundRectangle X="0" Y="0" Width="1080" Height="2880" Rx="180" Ry="180"/> - </DrawCommands> - <ObjectInfo> - <TextObject> - <Name>TEXTE</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable> - <HorizontalAlignment>Left</HorizontalAlignment> - <VerticalAlignment>Middle</VerticalAlignment> - <TextFitMode>ShrinkToFit</TextFitMode> - <UseFullFontHeight>True</UseFullFontHeight> - <Verticalized>False</Verticalized> - <StyledText> - <Element> - <String>' - - ."$numeroLab"."\n" - ."$dateAcquisition"."\n" - ."$organisme".($numeroInventaireOrganisme?'-'."$numeroInventaireOrganisme":'') - .'</String> - <Attributes>' - .'<Font Family="Arial" Size="48" Bold="False" Italic="False" Underline="False" Strikeout="False"/> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Attributes> - </Element> - </StyledText> - </TextObject>' - .'<Bounds X="326.4" Y="120.6717" Width="1596.468" Height="844.4843"/> - </ObjectInfo> - <ObjectInfo> - <ImageObject> - <Name>GRAPHISME</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable>' - .'<Image>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</Image> - <ScaleMode>Uniform</ScaleMode> - <BorderWidth>0</BorderWidth> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - <HorizontalAlignment>Right</HorizontalAlignment>' - .'<VerticalAlignment>Center</VerticalAlignment> - </ImageObject>' - .'<Bounds X="2146.378" Y="267.5423" Width="544.0805" Height="629.0975"/> - </ObjectInfo> - </DieCutLabel>' - ."\n" - - ); // fputs (etiquette) - - - /* - * RUBAN (12mm) - * - * LABEL FOR PRINTER DYMO LabelManager PnP : 2 lines WITH LOGO - */ - if ($type == 'ruban') fputs($file, - - '<?xml version="1.0" encoding="utf-8"?> - <ContinuousLabel Version="8.0" Units="twips"> - <PaperOrientation>Landscape</PaperOrientation> - <Id>Tape12mm</Id> - <PaperName>12mm</PaperName> - <LengthMode>Auto</LengthMode> - <LabelLength>0</LabelLength> - <RootCell> - <Length>0</Length> - <LengthMode>Auto</LengthMode> - <BorderWidth>0</BorderWidth> - <BorderStyle>Solid</BorderStyle> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - <SubcellsOrientation>Horizontal</SubcellsOrientation> - <Subcells> - <Cell> - <TextObject> - <Name>TEXTE_1</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable> - <HorizontalAlignment>Left</HorizontalAlignment> - <VerticalAlignment>Middle</VerticalAlignment> - <TextFitMode>ShrinkToFit</TextFitMode> - <UseFullFontHeight>True</UseFullFontHeight> - <Verticalized>False</Verticalized> - <StyledText> - <Element> - <String>' - .trim("$numeroLab / "."$organisme")."\n" - ."$dateAcquisition " .trim($numeroInventaireOrganisme?'/ '."$numeroInventaireOrganisme":'') - .'</String> - <Attributes> - <Font Family="Arial" Size="24" Bold="True" Italic="False" Underline="False" Strikeout="False"/> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Attributes> - </Element> - </StyledText> - </TextObject> - <ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/> - <Length>2606.94</Length> - <LengthMode>Fixed</LengthMode> - <BorderWidth>0</BorderWidth> - <BorderStyle>Solid</BorderStyle> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Cell> - <Cell> - <ImageObject> - <Name>GRAPHISME</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable> - <Image>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</Image>' - .'<ScaleMode>Uniform</ScaleMode> - <BorderWidth>0</BorderWidth> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - <HorizontalAlignment>Right</HorizontalAlignment> - <VerticalAlignment>Center</VerticalAlignment> - </ImageObject> - <ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/> - <Length>863.9999</Length> - <LengthMode>Auto</LengthMode> - <BorderWidth>0</BorderWidth> - <BorderStyle>Solid</BorderStyle> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Cell> - </Subcells> - </RootCell> - </ContinuousLabel>' - ."\n" - - ); // fputs (ruban 2 lines) - - - - /* - * RUBAN - * - * LABEL FOR PRINTER DYMO LabelMznzhrt PnP : 3 lines WITH LOGO - */ - if ($type == 'ruban3lines') fputs($file, - - '<?xml version="1.0" encoding="utf-8"?> - <ContinuousLabel Version="8.0" Units="twips"> - <PaperOrientation>Landscape</PaperOrientation>' - /* - // 9mm - <Id>Tape9mm</Id> - <PaperName>9mm</PaperName> - */ - // 12mm - .'<Id>Tape12mm</Id> - <PaperName>12mm</PaperName> - <LengthMode>Auto</LengthMode> - <LabelLength>0</LabelLength> - <RootCell> - <Length>0</Length> - <LengthMode>Auto</LengthMode> - <BorderWidth>0</BorderWidth> - <BorderStyle>Solid</BorderStyle> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - <SubcellsOrientation>Horizontal</SubcellsOrientation> - <Subcells> - <Cell> - <TextObject> - <Name>TEXTE</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable> - <HorizontalAlignment>Left</HorizontalAlignment> - <VerticalAlignment>Middle</VerticalAlignment> - <TextFitMode>AlwaysFit</TextFitMode> - <UseFullFontHeight>True</UseFullFontHeight> - <Verticalized>False</Verticalized> - <StyledText> - <Element> - <String>' - ."$numeroLab"."\n" - ."$organisme".($numeroInventaireOrganisme?'-'."$numeroInventaireOrganisme":'')."\n" - ."$dateAcquisition" - .'</String> - <Attributes> - <Font Family="Arial" Size="11" Bold="True" Italic="False" Underline="False" Strikeout="False"/> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Attributes> - </Element> - </StyledText> - </TextObject> - <ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/> - <Length>1477.513</Length> - <LengthMode>Fixed</LengthMode> - <BorderWidth>0</BorderWidth> - <BorderStyle>Solid</BorderStyle> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Cell> - <Cell> - <ImageObject> - <Name>GRAPHISME</Name> - <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/> - <BackColor Alpha="0" Red="255" Green="255" Blue="255"/> - <LinkedObjectName></LinkedObjectName> - <Rotation>Rotation0</Rotation> - <IsMirrored>False</IsMirrored> - <IsVariable>False</IsVariable> - <Image>iVBORw0KGgoAAAANSUhEUgAAAJYAAABOCAYAAADCbO+gAAAKQWlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfADXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAmK0lEQVR4Ae2dB5hV1dX+173TK8PQmxRlEAEVVBBRSSxREY0aS9TEoCYxluijqWr0s6R+SYwaW9Qvaiwxxq7YBVEQITQBQZAOw9AZYHq59/979713OHPmzAwDjOb5P3fFl7Pb2Xufvd+91tr7nDsJRaNRS0pyBPb3CIT3d4XJ+pIjoBFIEivJg3YZgSSx2mVYk5UmiZXkQLuMQJJY7TKsyUqTxEpyoF1GIEmsdhnWZKVJYiU50C4jkCRWuwxrstIksZIcaJcRSBKrXYY1WWmSWEkOtMsIpO7HWrOoqzCOHK7pIAIqQCnYAnaCNsmPHphsf3txtllORnP3nUbGL0C1p0Aa4fvBC560ZLCdRiD6yo+b1LyvxBpBjceA08Fg0Lm8vCJ7V1lZqKam1sIpYcvJyraOHTto0kWuteA9MBnMADtAi/Lj8YfZP95dZJV19bzZDAWV7U7i2ICMZwPSkklf0gjsDbHy6dt3wYVgzKcLFtqUj6bbgkVLbNnKVbZ85WrbsbPc6vkcJxQKW0ZmpvXt3SvjoAH9ug0eeGC30SOHH3n8MSN/mZWVuYb7XwJ/B/NBoAw5oNDOHVtkT06kSLaUYBNpzpzvalIymfCljUCoDd9jaQKvAddt3bZ9wN+feNr+/eKrNnfBYqvbyRyG4WgaFiiNyU9JoRjFQ2gYfe5Vj0WUxtE1I936H9jfTho72n444QI78vAh0mb/BreAVaCJfLZmmw296slYfU211nXccHeTm8zOI+35gPRk0n4egSBTuKfEGklf/lheUXn8Xx98xB58+HFbs3QZJMGtysqysEglEqGhGgiVIFbDVfkhx7NobZ1ZZbWl5ObYeWeebD+/7jIbPnTQZm6+DTwAmsi1j3xof/0n1jM3k3oaZQ8hNgaIoLDXxGo5ZG+BNSAp7TwCe0sseWZ/eP2td7N+cdPttmjuAhzpHAtnaIITRJJ2Yj5dPE4wb1hMEPEcIxJhPPsI6qyswrIK8uy6Ky6yW39yuWVlZkh7XQG2gwaJYFqvkiP/0hxMIrxRdUn5rxiBthJLrLmnpqbmml/e+mv7y90oEsgTzs7lKiLFyeQ0UiIevybSHKFIayCW8hOM8BCsHkUDwUaNGWGP3XOzDT7ogHncdC5YDhrJlZDroVfmmmVq45eU/4YRaCux/obp++F3Lr/KXn6WXXtBIbs8mTxpJlkbSBKOXxMkSxDOR6yoI1OCVLsJ5QhHTSGZSDRSFHJ169XNXn3iNzbysCJsrZ0EVoNGMv7O12ziVLIz6U9SvvIRCCKW1EmQ/G8FpPrWxZfby8+9YuHCrvjmMj9oCSHsQYrCOOwuTVc57+kWdchwV0vhXuLYz1geZaKEo5Zmmdl5VJnl4tah0DZu3mWnfudXNn3ukoPo2Kugk7+DPQtzZEf9ycn4f9EIBBFrQiQa+dmEq26wt195y8IdmVfnnKMdRB5HJF3jJIoTSeSJOohUEMiRiDQRKAHlhzNReJkouwzLL+hoZ51yrI06fIilQy6lWW6+bd9RZd/84e9syYr1hzJWj4OGfmqTuWrTTqk5Ql+q5NFaZ6DrvoieJRsUgC5AC0d1Sv1/WaK2WJ2uD3omoQNgYveP+G3JQKr9651/vNf+/eS/0VQ8t8xdwvzp2iieitYJW1TKo5Z/pEVcWeIhKCDIvwpz5ZjBUlPZQYbgRNhyczKtqF8Pu+3H59tbUz+1kg3brKR0l9XUsGPMzbXNG0vtwhvusWnP3jk+KzP9Niq6FVhNbb0Vby1nGhq4NojkQ4B64ZV3iejUP0h6k3gkUAcTojcD0xKR+PUMrt8Gw4AIAPOtBqwBytsMmhN1UP1S/44AqkNEKgTsfNybCU2k+q061VfVJxfgbTAFrAP7In24uQgMAKOAnlskEqn1LGo/wYFawpVgK5D7MQl8CBaCNov/uOHNGbPmnnr8N8612mgYEyWtRLteYoWIQ65IBMJUQ4K0DOvao4sNH1ZkRw8fbH17dbXCgnw4lGIVVTW2aesOW7RsnX0w83NbtmaD1eyi7xlplkJ+GkQ7/qiDbW3JNlu6qsT5WglFpJ871u0o4yjiPPvDTy/UA48Gn+oJr7h/kj38Mg587MD0FpLuULpHNFEa1E2eNG/wQiLPeBMIvwNOiaeN5fo7oDabEy1CkcAvJ5HwAzAE6G2ECLY3ol3xRPBbsHgPKxhFudOA2j4QiFQ5YG+lnhtFrifjYMKbSpCP5SXW2XV19S+OPuVcmzV9joXzOGB3hIoRyYUhWQTCWUWN5XbpZONOHG1XXDTOjhs5lLNRyiHFG7fZhs2ltn1nBWeiERRVGkTLsXSIVMP51TtTF9hTr02z+YtYFKR1LMh16bRNe5DV6ZCYIolwfwh1+N4TN9txRwx6g+rHg+jjkxbbpb8jGiPWr0i7E3hlBRENbpU30RM+j/BznriC/wLSTheDvwNWVYsiM70goMSLpJ0dkO5NknYQ+SXSXpiCZgW7b1eBp5stsTvjBYLn7I7u19BMarsCaMfeSIKIFWNDbBBvfOq5l23Wx7MslI+mdJqJbF1FMHaEkRq0djhs37vkbLvpxxdZ0YBeroFX359lr4F3py+09ZtKrVbmLMYN7uNeCFSQm21DB/a207823O6++RJbsnKD3fvUu7Z4WbHl5GZRvXdhczP/6daK8kq79b6XbPJjvxxHY8eDKcP7d7F0SFWjc7BwKIgAJZRrjlSuzwH/bCRtOGiOVDy8k0RHZU6CpLsvUaZEmvYLsArIzKwFCTOdR3gQkKk8BegZvcIKt3+A9WCyNyMgvCfPLC2kPiwHMv9lgIE0tdMPaAwygF9GkvABOBe8B1qUBLGOjUQiR93z8FOQAOdaTrrI5K4UkaZCS3Xv3dP++ttr7dzTjnWVPv/mJ/abB16wefPVR7RNVoal8lonPTvN+VE6RhCkiarwwabPX2VTZ31huXk5dvH4o+3uGy+2Z17/xJ6a+Am3psERzRnHDq52rgSy83Jt6uwv7P1PFtmJRx9yJVlTDunT0Xp1y7eV67AWYe0mmojMSFtFA/sQ8BJ1NvGXwBSwDfAwzteSiSwFfskmoSeYC14DL4P5QJPZnJSQsRSo/G/BteAuwAQ0iAbmZtAasdQ/v2g4Rer/AJlWkVwTVg2CZCCJIs+lQGGvdCDyPNDzt2ieE8S69N0PPrZ5cz+zUE6uI1JMU6Wxi8NBL6+xI48+3P55/812UN8etmLdJrv+jr/bq2/NwMdKs7T8XBQZzw4x5JiH4g56jFhKixEsI4NrTjbm1OzRF6fZ8+/Ns2svPtFu/MF4u/fpSY5IqSk609Kz8I/OtghVVtba0xNniFhnEO2RlppSMqBbB1u5eivtBxJLq7Ctcj43iBiScvBz8CBwveHqlQ+9EU9YBJCZ1STurdzLjXng174KpEk6A2mZ5iRI09xH4Z+A2uZu8qWLhL8Duk/Xq4FXRK7HwBjQ7ILRQEiln/bixEl4y3yRoGOE+FlVlDmLVtTaWHyp95/9X0eq9zF3x573K0g101I75FkG7/t0cBoCKQIOubu6eBpWMBaXYgmJA6lopvR0y+M1Tk00ZLc/+pYtWr3ZrrzwBJdeT3n3MptyKhsC0nDvTv/cijeVauJlEq0fGssxtLGGUZZEfklbJUGqSm48GzwAgkjVUr0i9L6QKlH3EwTUD68UEhnqTQgIB2ksaag9JZW3yl1ErgEil19GkXCZP9EbF7GGlZVXdHrnQ7SPe13DhGICozrErK63omEH2/MP3WL5+EjvTJtvZ3z/91ayeYels/MTgUI4QiLWbjKlEGbXR1oYkokcu5GIc1WZDM6yIOcrUxfbJ4vX2VknjbA6LEBU5NJ9aEMdUahcSWmlzV68Rn0fr3/6dM51Go0ghZqIBqUl8Zo7f7mfkvCuP/FLjougQf6SNFlLEjQW8uf2RW7iZrROE7meFG08AkXEOmnJ8tW2eu0GC6VnOTPozB/HCZk5+fbEXT+1zh3zbN7nq+3b191tlezsMjBnYUcoSMXRQyqTL80kgjnNlCCU01AeMjmSJeIiTQx5+Xk2fXGxrd60y4Yf0pflhXvRiJBpFqHu2UuK9RBFILV7AQom9glN0GC2Riw9d5CwuuzhoIwvOW0A7aGSm0hrmsfrlyVu3pII7MNVboG/7cGkHddcnRrgIctWrnPaSaZKpHKmsDpiN1x9gR19eJHtLKu0C667x7aXlltGdnZMS1EuBeiTmSw+5svi8xl35iVt00AoP4lQFKkxhLjKzCWQwxcTs77YwLFYhnUqzLeI+hEvK5KlZWbYxwvd4utDn7t0ymOxiFh6L9RU5CO1JM1pLPkVbGm/crmTHgSRpKaVnvmfSzvZIM3XSjVNsmeTMrlJasx6BPl17vCu37qSzUwQJijhW9WFrOdB/e3GK85xdf3Pvc/b0iVrLIMdmjSUyOTVWGkcpKZysh7lWCFmxhLkkkYSkXYTKEy4MdKxvKRpNwmplhaXWufCDnCTdAiqsiJhKp/pbNxZxWdctTIHRb065UAsp3j8g6k+y5S0JEFkZBDszZZu+hLyutPGM8D5kQHttfZcDHwjERGb2/01KrgHkccDynyDNG0qmog60rNk03a0FEEIE9UVc3f1d8dZbnYmp+Ub7bEXpliqI1U4TiyRK8z7vXS+RY9gMjP5cDTdtlbUWV5Wpnu7E3W7Qybe7RTZDTbsGtEy2iVq566jCEn8omB1fdS2ltU4ktXri1NUUpRD0jQc/XK0aCWn/RxNdKnX1jImMKyJtKaxglbZAmrZ2qSm9k+QZjoKnA6+D0SuIBFJgo44vGX9C0bma38Raz51aULcao432ovrQPBJPN5wEbEyt/COTpolqnMrNFd6Ya5dMO4YV+hv/5pkO0rL+Bgv35EpRRoL/0rECXOq3q0w2zqxw9MJeiV+WYj87eV8HYpJ1NGDtIo7bogTy5FJhHKk4mghQa54l8TrCsglkof0jpEjB14P8DR1Vk99dbGvGhI7ON0VRKyKeHXNXYK03IrmCu/ndLWtyfg6OByIVIcCv2gr7zWHWixogBbF/1wiVmvms8UKPZkbCav9Tp40dlDu/aMnKRYUsaLujNGdsBPldH3s14bagQd0c77Vy5PmWCp+lUxgglQwC1OVxlSHrUe3QrtpwknWvXO+/eYfU+yjBZhMzJaojTPWoKlEMEciiCRSxgglgkknucL8Ew+5S4xQIlXsLTdEllmMqbeIh49BTm5rxArSWMWuG+3zzyCqHQPOBENAP6CxD5K5JN4F7gfeZ9MztfRcIiGObiMRqfYXsXSEo02Rl1jMnnUETUQPV9a1cyFnJPQLLWGRahsz4mBXcM7i1bZ8zWbLzuaVi3aBEEp+UBamr1vnAke+oQf2sFNGFZEXdteCDrm2omSHrd9ejumqt2pMVgQCRqWxRC6IoXCDpoprrt09E5EUSxALikKu+mgtDnyme7lNZkUNJhjRCu2ggE/8Z0C+7MBXFtv8hfYx3oP7vw0uBNJMmIMWZQG5fwOPgG7ATxKRShqoOdFYeDW5ymkjsr+IpbaDfLygRepWzdoe3TofoLOrEBomiiYayOcsksXL16MsojFNBalglxSa1XBoun3dNpu3aqstXLPVunbqYAV5Wfbkewtt3vJN7OxwvDlycATCJMaIRN3axcW1lTOT0lYQS7QX4aCca9f9cggy6ZrQWHwtw+udHD53T1Wh4rnLN9ORuixO3oOIFTQAru74P/5JU/L+0lhalb8A3wSBq5l0yQawELwBJsfDiR2ptIJfo8kUtkQsTbD/uVQ+USfBfRJpRL+pVYVuhftrVudX9+3VfYz72Za0CsTq0UWH8bzAWr0RLRPzqXR1Gg1y6YW0fKmunCXtqqq3e1+aaR3zc+yL9TusEyTbiaaKyA+jTMTdt1tjybcSqRJm0b1LFKli7KJVkUmtxzSViC1TqB/29OnekS9uUqRZvli3Fe6EQhpM/8NqhUpttySxB2xcQhO9L6In+Dm4Ffg1R6LeWQSmgPfBx2AHCBI9k+rziojlRsab6Ak3R6zAiffct6dB+bJe05y4L3CsRazZRf17XJSKNpB1SeW8SCSRLF+7mZMCNLjIAZmksWLX2HFDVW3Uaqtr+FFqlm1hJ1fJzq2WNGm9GKEgl+5xZtDjb8XJJUcpna8aNFq1OOwJbjnN5Xwr0uSsQ6y6mqgdP6SXurUGlO7gpTiSCfwru5q01jRWkCaR/7C3ogF7GkhL+WU7CY+Cl8B0f2YzcT2XX/bEvItcXlGcCdgvWgt3qYnboUlA+zQVTcr7mL7oYYP7h2Z/upwviuULxRZLRZV+Jh8nlCOXiAVBHGTi9LFeilWKFNwS4sihHgdbZFKeK8vVhRWXbyWSuer5B0alpqHVuNZEsHWxZhsvSxEMcqUx1CP6d9YTyHxENpTicsQ0lt930cO2NgkaJK9oB9aSmfGWDQrLNwoilQh1G2irmQ3SeNJYLYm0HIPbSFSPSK/Ftq9yABX4Ta2shxZ6E1FHlkKOtScdMwxeR3BborZDX3kiHXHEtYOLaSwRQ1pH7wd14h43kYTr8M1qKBeBVHr1EuWqQ1F3OMpZVwgNFpLPJe3lbF6MQfp2IY1PjNP0RUNjOrn23T+Ur4VxA7oX2Ih+TtG8oA8Il2/AiqTog/smGmtP/AodsnpFfsjeEutk7r3YWxlhKeGfgB+AYtBW8U+g7pfz3pJoLBjgRiKT71Zjo9S9i3w94LbFpH0WkO4YLhY9d/6pR1smRNLP4DdujZlNTCQ6FBLEtY3zraStRDCnyUSWVKvCBMoMxsgkEsWguPKlsRp2gTQmJSTRIWfnnHQ+BI1pLaXph6l+qayptzMO7WEFWWk6wPxgzeYyW7uBPqbyy4ymgymN1ZJfocXkNxn7Qqwrqc8vD5Bwlz+xDfG91Vh+YrG63TFHG5oOLCpNcH5AzkTSVgakN6jOp0YM6Rc5cQxaC99lBb6VpKhfd2f20AxMX8xhF6mkrRTX+7wImkifukR0uJoglN4Vyjdr0FC7m07FzIpIIlUt6Nsp23IzuJ8w/1khX4Y6pRa/RX9cpIAPByccLU3svqTcMWfFZqvYxSuwsHPed1ceC4kkMm3NiQbbTyyVb+me5uqSSR3ry5TJ+rMvra3RIGK1prH8z5Ro88xEYB+up3DvwQH3Tw5Ic0lavZJPwcSfXToOK5phMxeudok6o8rEmY+9nokRSv6VSOX8KMJOIxHX5y0yd7pGBZnQABGZcjJSrEeHTKvjq9L+nWPEqiN9AGGRy/30nnu1TMqr6uybaKshPfPkJzysKqcuKk6ovSAnV8RqSWPRyUBi6b62Sgdu8JNgA2l0cJ8ktntqXAUrqUWRKQySU0k8LCijDWk3UVbT4ZWpROZ5E7xh7+z/euxRg2ovPOtYe3PqZ/qozg4d2NMOLerNj3FwznG6YxCxYscI8qcERypd0VTuJbRX5cRbgy/OBOpsqri0ynpCrHGHdreiLrk2ok+BjR/WnU9y6m1zmfgTO9Gqxufr3THLbjvDLZa/k/F5LWmTFzBvbBoQv6+kNPlKLWkfTUAQIXVvW0Xt+EnsOtbWinzlg/yi1jYkzT2T0u8HzeX7mm4SvZaU45qk8ucXSPM/e0MxL7FmkvroH64/l5P2TPvXO3Pcju+8Ew+LEyu2G5S/paOEmMYSmeL+lrSVtJmPVCmYPjnnGRwryATiJzlS7UATXXFsP/vuqD52B8Q54oACR7we+ZmWx0/nMykvM3jHGYOtX2G2trS3q9fzV22xhSs2YWrd/Elj+KU1jSWT4XeORZC90Vjy+bQz8kovIiO8CXsRHhBwT2vECtJYei7JGPAUaM5cqkyQnEPiHwMyZAKfD0hvSIINjeSXHEKe+tAtF/f/xX2v25XnHWcTTj/S7n91tm3ZVW0ZIpQjFTtANJTIlTCNzjx6SCUNJX9KznlGWtg6cZWW6pqXEbvmZ9jg7nnOLKoHXy/qbF3y0m0Dv4Iu2VltSzeW2diBnezS0Qco+2dA5OK0f4tFIGX8p1/5SvOJVpGab040uPKzvOIUqjdhD8Pyp94Bl3nKq+7fgpNAsyvaUz4o2CMgsSwgzZsUpJEepMB40A98C4j0PwQLQEsis3cD+APwa2AR/GrQoviJtZPSl5x38vD35y4rSf/9k5Pt9u9/w64/f4zd8OB7/Dms2DmU01ju0BOFp/eLEMy761OL6pkc9BK+odJGb8WWCq6x+ZY/JYf9j+cMtcKcNNsJUV6aV2L3TF7OPiFk1XwaM+qgTnbt1w9UVX8CTypQjam851XMeswMKinoBF2msCWRT+QnVkvlW8t7ggJeYqn814FW9PVgNWhJCsnsC+aDhIYJMvEicUvi18IqOx28BN5XBDkafAJeAI+BzwDnNk5bi5jdwcngB2AECJIfkbg4KMOb5ieW8qaCy3975bgn73xiss1YtM6uOesoe3/eGntjzhrLRes0HHg6vyqmxbyVesNhaTH+i0nMd5IVO6pvgT300Urbxi+A5qwtteWby50GW7Cu1EYe2Mle/OFI65id9hz3/Txx9zMfLrUFi0sS2krJvRN5nmuMvZ4EX1DE8q9CX5GgqB4isOoPyXgIaMC9cjaRE8G7QBNMx90LYVUkE94TjARHgcngQiCRSQsiVmvOu57LLyLLJHANuC+eqXLfjaOUq8y5FqPSu4EMECQiver5R1CmPy2IWCrzFMi68TtjH35r5he2dUelPXL9OBt3+0s2d91Oy0mnv5hEHT24My5/rS3ExbOuuRm2YP0uK9lW6Xyrtdv5ocSaUudbnT2ilz104WEymS9SzSXAzWYNv5S+9zW0lY4+dssBu4N7HAracTVQP7AWaWVpW2npCGY4rnk9Za8jLI3xPU+agjLVMkFCS/IKme45uWpig0x8axoriFgJ7X0/dRaDe4B3zKTxg7Q+yY1kKbFrwduNUluINJolX7lHUlPCl40fPahKGqdzhyx75uenW1HvQme63BehDLR7ReO7saVoCsySltrF66J0nPl1kErvGXXEcNFRve2flx0pUj1NHRcBbRGdPDFluc1byNhgQj0SNCitOeFBE9CUWM7EM8dp2Za5fal1+vxZy9i+jHeXVM+PellVnm44TTSBhEvBf7wZexhe6Cmn/rWd/E03JKqyYfwIvwyOAL8BIsqeiMrdCUaBPSaVKvb+7QbFg+Q4Eh8Bg5S5ekuZXfrwNJv8xVbL4cW1fkfYVtHS1EyW4Uv14TjhoK65ds3Y/nbWYT20wm4BchobJMp7xOOu5C/PrKGtdE1oYnG7X+ykkSA1LVFmDVimSDMiM9QXqFxCdJ8GMUZKfluZtmudpZVvtNTqUsstmWHhWnxEyFSbw7FIl2FW1u0IzutQUtF407woj4seTb7MoWAAkN/SFaifEjnhW8AmsBaor5NBrO2YKSzyxAm6e9dwlT/UnIgAv/JlnkNcPpZfZCLHgMPAQUBaTITWIazaWQ7k4H8IWjPBFvS3G/aEWNTt/vTO/3DVjiKzCif6dxMX230frbZtlXVuZydN1JqIDtJMOq/S11eDuufaVcf3dzs/jiKmkf1T8Im3nm3bttktN91izzz1pNUdcqaV9flazBxFElreW9oTlpnWV7GNhB40mDL1xie88+RHjJZdMtMKVrxu4To2HpDJfbId11DSWEJtTjcrPXC81WV35uOLiEUycItUZYJovqpbjcbr15ccMdF4BvSx+YruIut6X/bpxN/wpe336L4QK9EZMfx2cCYILSrZZb9/+wt7feEG287HfxIRTBxL8EzuiHaH2hHqL85oFzi6f6FdPLKPnT60K39KNGUVt0k9/x9oNJL/fOZZu/OOO2198XrL4SvWELv3cjRFefcjrTa3J6U1CTSWmEwRQ2FIlVq20bK3fkaF3JWe68pG0DDVHfrzGgpNo9dOjmTUIbPHvSlop+yNcy1v7RTV2uzbA7IcufRTuYj+1gUatbqgv5UOOA2CYZ3VL9XtRDURV99c/wirj45IPC736iPLcHVMGUWy2CTWM5ZaODK5CVE5J7q/0TAlSjxGYEIiEr+ezPU9X9p+j+4PYiU6NZyAtNc3wAAdJXy0bIvNXFVqG3mHt4vjA30lIV83Jz3VkWlIj3wbxdcJRd1yrXt+xjbumwkeB7LdpaBBpk2dZr/8xY22+LPFjD/fbPE5TkLC9dWcoWVYVaeDbVevMRZCq9RlMhlIWtVWNEkPy1n/ieUVT3Max8twaZ/6jA4WwW+q7DwUko5wpEut4PPrzfMtZ8NsS6nZSf1qT4RoTZjg+CSHIUINbUuD1WZ3tbKeR1sIgoQi+I+p2ZZaieuwaa5VFQyw2rw+9FvHQfw4JKerpe9YaYWfP++arOg23FIrtmCGN9DHIVZDWUltVifyWSTUpT99kGjXZcb+eZ2LNJRXxhKROWtXCSTWGxNb1pRlZeVWXFxs1VVVdsiQIXb06FHWpUuXREe1pEaD48Bg0B/0A/JjoJXTQLLRxWAVWAJmgfeqqqo2TXp/kp1wwgmWyU/G1q9fb3/581+4ltjMGTNt82Z9a8+PYxOqj5sahMkMMZH6O6chVn99ej5ZIadx6tPzIEdZ7FwtYV4abiSANtHf3NJ9tdldrC6ri2XsWBEze2gOkW9vRXVKU4mSIpf6KHJFUzMsTJ+caYUUIofyJCJOasUm+rzLte3SXR/oh9NsMYJLy8oEV3YabNuL2GTG73eVxP6ZwWWkJ66g5qaRa+HL3y/RQGIV5HVssXL+vBHaWqo8Vqxf/352+eWX2c5du6ygQwc7auRRtmjRIjt+7FgbOFB+oCOVZhrd74glh1BnJZG1a9fa1q1bbePGTXbXn+6yKR9MsTPPPIO/j5VjH0+bbiUlJWi5MC++Mzlz1e2NBPvldjl0JiEyCZhemR6aiiZMTcvk6Exh9akiRoQIPpRMYfwBydgLUWc1kHLKnahumWGJ+9rM9cnFieIbJPKidbF+N+4zHXLfme12nLWYMKl6xk2HXo6mY0/QYG5dZZ9yzzC15xHtAud44u0SDCRWz2692tRYHR+fV1ahxmUF+J+0SllZ2ZBevXotHjZsaKS8osLy8/NtwIABtmTJEuXZsceOsVn/mWUL+P/dqSC/ro5VHQr1ysrMuqiisuKPIm8Gv/7R34BoQaQV54MdLZRpLet7FNDuVuZ3SiuFbyf/z2BnK+WUPQZoMb0JNKDa+QX18wbSHwWt1dmDMr1Bk6OLcF21lXU/wkqLzsEXq6aIE9lu7eKKYtGGfw+NpzcktEcgiFgtzqSnE7IPF4OOqWmp0by0vH8Q/j4I45RPLygo+NPOnTvvmzRpcg0a5zDS3hB50DonEQ/NmD7j/rT0tOFpaWknQp5KrrO5dzbEHMXffLiW8ADwGNBAPAt0jnMikHbRWdVTACfDHRGM5zo8Hn+Q61DwDtDqngCeBheAjmAV0HabZeBEp9x/AqtcbPc/hxP8DhAZSsDjQG3nAaVngDVA5uZskAsKwR1ARDoZsNrcR28ij/ryG/BN0A1sAE8AEUZsuAT0BWpPh5ddwQSg+agFE4HcCT3z5UDyNvg0ginN3va5lXEUUie/S+YydkQhje6VOiLeIxVvXruHw3vYgmzNB0CrYiwYCEaA59A8IskiSPQK2utUzNgcyLI8Ly/vUuJ3E3+bvyZzNddjKDOZ8ndRXhNxGJBteBpIe2gSDgIa8HFAk3okeA0UA5HiGHACuAfsBAOAykhExq8BTbwIOh2cBDRBEk2envdHIA2wrWyQYYTmgT8D9WEM0DmT2lXfNoNzgOodDh4AMqdngmvAR0Dl1bf54P/AaSAF6HlFPj2TypwPpFmUrsn/HrgevAnuBmr/YKC2rgTrwSKgcowYP9ytLbP0snU8jap3IuIHEUsk/UpEA70nMoRCGkARYQlYDm4FNwBpFK3WXUCTPQfkA03GDrASaNJ171agMmWgN1gMlLYFaCU/D84EfcCT4GZwNRgAtoMDwYdAdWggRXgtWbWtNiXSNAvj+ClX9UEyAYjE0gb3gQtAQtIJqB8iy1rQFZSBb4HxQP0TyXLBJKA6NwK1qUmdDZ4DIpRItALoGdSPclACVKfKDgLLgdJhhyOSiC5ipwCNkzSNnk3k/xh8ADQWzp+sT+/ADpQs51sq1dXrJ5bGRcT9SmRPidWN3unhNaAacA3aoSAVaMDywHFAg6U6RSYNzIXgKiDCRIEm6VKgCZwFEg+uQVHaAiBiaZWqvdFA0heorcngBHAWENlFXg2g2rgYqI63wDBwCpBWVLsSkfhEoIUgLSYyqQ1JJhgH1N8iMB9IDgQinIi7Dai8FoBE4UVAzzEBnAq0gGrBd4EIfBoQgfuDj4Ge83Ggviv9WPAQ0EKZAPQMqkNjtwm8AVSXnkVzgOBAsHutz4DTu4mle/Q8XlEdwlcioTY47xpwTe4aoMk8BBSDDaAXyAbrgfwL5UuGg41A6X8AL4FK8ClIARpoEVUTK0Jqtf4VXA+ULvJqYtWmyCBidwGdgAj6KpgODgda/SK2oLIHg7VAbSfkAAK6V9pBBBNhRO5fAdWjthYDkScXqA96BqVvBhIRVc+oyZRmEZE0FnoWEVLPpbbVRkcwAChd5WCDI5HqHgQ+B+pvBlAdSp8ArgYaC42VSKln/gyU6ziiOr+vbRlyCVGJWzfq4xwX3f2P+j4YaFzaVfbFeVfHlvp6N9sTF8GCZK4ncSHhZWBLPE3k08NLNFGa9CvBs0AEknjvT6RpggUN9CagVekfVJWdAfwiggqS7bGL+3cV/64G6l9CEn3z9iGRp6sIkRBproSIQCKVRG14x0maSaK6veknExcZtUAfBRqPhKwkICCQiOOGXb2Pg75pLF/x2okI65cwCSLnVyLSQF+WvE1DCXIEtamJmgI+DMoMSHuLtMREBWS3Kend/VhXmxqOF5aW1AIR2T6JpzW56O9Y6BWSDl/dq6DdJbTQHgMJMy1CqT4v+Yl+ebKnL6G/vB4lW/r/YgSkLpOSHIH9PgJJYu33IU1WqBFIEivJg3YZgSSx2mVYk5UmiZXkQLuMQJJY7TKsyUqTxEpyoF1GIEmsdhnWZKVJYiU50C4jkCRWuwxrstL/BxJPAjyhtOFQAAAAAElFTkSuQmCC</Image> - <ScaleMode>Uniform</ScaleMode> - <BorderWidth>0</BorderWidth> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - <HorizontalAlignment>Right</HorizontalAlignment> - <VerticalAlignment>Center</VerticalAlignment> - </ImageObject> - <ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/> - <Length>800</Length> - <LengthMode>Auto</LengthMode> - <BorderWidth>0</BorderWidth> - <BorderStyle>Solid</BorderStyle> - <BorderColor Alpha="255" Red="0" Green="0" Blue="0"/> - </Cell> - </Subcells> - </RootCell> - </ContinuousLabel>' - ."\n" - - ); // fputs (ruban 3 lines) - - sleep(3); - fclose($file); - exit(); - - - } - - // called from Javascript (Ajax) - public function getDateGarantie($dateORjour, $dureeORmois, $uniteORannee, $duree = null, $unite = null) { - - if($duree != null && $unite != null) { - $date = $dateORjour.'-'.$dureeORmois.'-'.$uniteORannee; - } else { - $date = $dateORjour; - $duree = $dureeORmois; - $unite = $uniteORannee; - } - - $date_next = date_create_from_format('d-m-Y', $date); - - switch($unite) { - case "Mois": - date_add($date_next, date_interval_create_from_date_string($duree.' months')); - break; - case "Ans": - date_add($date_next, date_interval_create_from_date_string($duree.' years')); - break; - } - - $this->set ('date', date_format($date_next, 'd-m-Y')); - - - $this->viewBuilder()->layout = 'ajax'; - } - - -} diff --git a/src/Template/Pages/acls.ctp b/src/Template/Pages/acls.ctp index 3fa6cdf..34d8526 100755 --- a/src/Template/Pages/acls.ctp +++ b/src/Template/Pages/acls.ctp @@ -1,124 +1,3 @@ -<<<<<<< HEAD -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/"><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/><title xml:lang="en-US">- no title specified</title><meta name="DCTERMS.title" content="" xml:lang="en-US"/><meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/><meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/><meta name="DCTERMS.creator" content="Etienne Pallier"/><meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.modified" content="2016-06-24T15:39:15.489669761" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.provenance" content="" xml:lang="en-US"/><meta name="DCTERMS.subject" content="," xml:lang="en-US"/><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/><link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/><link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/><link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/><style type="text/css"> - @page { } - table { border-collapse:collapse; border-spacing:0; empty-cells:show } - td, th { vertical-align:top; font-size:12pt;} - h1, h2, h3, h4, h5, h6 { clear:both } - ol, ul { margin:0; padding:0;} - li { list-style: none; margin:0; padding:0;} - <!-- "li span.odfLiEnd" - IE 7 issue--> - li span. { clear: both; line-height:0; width:0; height:0; margin:0; padding:0; } - span.footnodeNumber { padding-right:1em; } - span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; } - * { margin:0;} - .P1 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } - .P10 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; } - .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; } - .P12 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P13 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P14 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } - .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } - .P16 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } - .P17 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } - .P18 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } - .P19 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } - .P2 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } - .P22 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P23 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P25 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P26 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P28 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } - .P29 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } - .P3 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } - .P30 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } - .P31 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; } - .P33 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; } - .P34 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; } - .P35 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P36 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P37 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P38 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P39 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P4 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P40 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } - .P41 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } - .P42 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P43 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; } - .P44 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P45 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; } - .P46 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P47 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P48 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } - .P49 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P5 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P51 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P52 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P53 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P54 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P55 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P56 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P57 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P58 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P59 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P6 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P62 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P68 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } - .P7 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } - .P8 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; } - .P9 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; } - .Standard { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .Table_20_Contents { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } - .Tableau2 { width:27.25cm; float:none; writing-mode:lr-tb; } - .Tableau2_A1 { background-color:#cccccc; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:thin; border-top-style:solid; border-top-color:#000000; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_A2 { background-color:#dddddd; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_C12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_C13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_C5 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_D12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_D13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_D4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_D9 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_E10 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_E11 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_E12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_E13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_E4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_E7 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_F12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_F13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_F3 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_F8 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_G1 { background-color:#cccccc; padding:0.097cm; border-width:thin; border-style:solid; border-color:#000000; } - .Tableau2_G12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_G13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } - .Tableau2_A { width:3.893cm; } - .Tableau2_G { width:3.893cm; } - .T1 { font-style:italic; font-weight:bold; } - .T13 { font-size:9pt; font-style:italic; } - .T14 { font-size:9pt; font-style:italic; font-weight:bold; } - .T15 { font-size:9pt; font-weight:bold; } - .T16 { font-size:9pt; } - .T17 { font-size:9pt; } - .T18 { font-size:9pt; } - .T25 { font-weight:normal; } - .T4 { font-weight:bold; } - .T5 { font-weight:bold; } - .T6 { font-weight:bold; } - .T7 { font-weight:bold; } - .WW8Num1z0 { font-family:Symbol; } - .WW8Num2z0 { font-family:Symbol; } - .WW8Num3z0 { font-family:Symbol; } - .WW8Num4z0 { font-family:Symbol; } - .WW8Num5z0 { font-family:Symbol; } - .WW8Num6z0 { font-family:Symbol; font-size:12pt; } - .WW8Num7z0 { font-family:Symbol; } - .WW8Num8z0 { font-family:Symbol; font-size:9pt; font-weight:normal; } - <!-- ODF styles with no properties representable as CSS --> - .Tableau2.13 .T10 .T11 .T12 .T19 .T2 .T20 .T21 .T22 .T23 .T24 .T3 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { } - </style></head><body dir="ltr" style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; "><p class="P46">ACL (Access Control List)</p><p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p><p class="P1"> </p><p class="P1"> </p><p class="P1"> </p><p class="P1">I – Cycle de vie du statut du matériel</p><p class="P1"> </p><p class="Standard"><span class="T5">Créer</span><span class="T2"> un matériel ==</span><span class="T9">> passe alors en statut </span><span class="T7">CREATED ==> </span><span class="T1">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T7">Valider</span><span class="T9"> un matériel CREATED ==> passe alors en statut </span><span class="T7">VALIDATED </span><span class="T9">(</span><span class="T11">resp et </span><span class="T9">admin only)</span></p><p class="P4"><span class="T7">Demander l'Archivage</span><span class="T9"> d'un materiel VALIDATED ==> passe alors en statut </span><span class="T7">TOBEARCHIVED</span><span class="T9"> (resp et admin only)</span></p><p class="P4"><span class="T7">Sortir</span><span class="T9"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==> statut </span><span class="T7">ARCHIVED</span><span class="T9"> (admin only)</span></p><p class="P4"><span class="T7">Désarchiver</span><span class="T9"> un matériel ==> repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T7">VALIDATED</span><span class="T9"> (admin only) </span></p><p class="P4"> </p><p class="P5">En résumé : </p><p class="P4"> </p><p class="P3">CREATED ==> VALIDATED ==> TOBEARCHIVED ==> ARCHIVED</p><p class="P2"><span class="T12"> </span><span class="T8">I /\ I I</span></p><p class="P2"><span class="T12"> </span><span class="T8">V I ------------------------ I --------------------------------- I (adminplus only)</span></p><p class="P3">DELETED</p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P1">II - Droits des utilisateurs selon leur profil</p><p class="P1"> </p><p class="P1">A – Globalement (principes généraux)</p><p class="P1"> </p><p class="P6">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p><p class="P6">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p><p class="P14"><span class="T2">- un </span><span class="T5">USER</span><span class="T2"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p><p class="P18"><span class="T2">- un </span><span class="T5">RESPONSABLE</span><span class="T2"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)(uniquement ce </span><span class="T3">lié à son groupe métier ou thématiques</span><span class="T2">)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMIN</span><span class="T2">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMINPLUS</span><span class="T2"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">SUPERADMIN</span><span class="T2"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p><p class="P15"> </p><p class="Standard"><span class="T2">Concernant les informations internes permettant de savoir </span><span class="T5">qui a fait quoi</span><span class="T2"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p><p class="P1"/><p class="P7">B - sur la table MATERIEL</p><table border="0" cellspacing="0" cellpadding="0" class="Tableau2"><colgroup><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/></colgroup><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="Table_20_Contents"> </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P41">ALL (TOUS)</p><p class="P43">(droits par defaut)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P40"><span class="T5">U</span><span class="T6">tilisateur </span><span class="T5"> </span><span class="T2">(quelconque)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration Plus</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G1"><p class="P42">Super-Administrateur</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Read (un seul ou une liste)</p><p class="P45">(view ou index)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">Y</p><p class="Table_20_Contents"><span class="T14">champs caches:</span><span class="T13"> donnees admin</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E4"><p class="P23"><span class="T16">(idem Responsable </span><span class="T15">+ donnees admin</span><span class="T16">)</span></p><p class="P37"> </p><p class="P23"><span class="T13">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T14">readonly</span><span class="T13"> les </span><span class="T14">donnees admin</span></p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_F3"><p class="P37">idem Admin</p></td><td rowspan="11" style="text-align:left;width:3.893cm; " class="Tableau2_G12"><p class="P37">idem Adminplus</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Create (1)</p><p class="P45">(add)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">Idem ALL</p><p class="P39"><span class="T14">champs readonly </span><span class="T13">:</span></p><p class="P34">nom_responsable</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D4"><p class="P36">idem ALL</p><p class="P36">(+ etiquette)</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Update (1)</p><p class="P45">(edit)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P33">ssi</p><p class="P39"><span class="T15">CREATED</span><span class="T16"> (tous les champs) </span></p><p class="P39"><span class="T13">ou </span><span class="T14">VALIDATED</span><span class="T13"> (quelques champs visibles sont </span><span class="T14">readonly</span><span class="T13">) (1)</span></p><p class="P34"> </p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_C5"><p class="P36">idem ALL</p><p class="P22"><span class="T16">ssi </span><span class="T15">createur</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem Admin</p><p class="P23"><span class="T16">(</span><span class="T15">tous les statuts</span><span class="T16">)</span></p><p class="P23"><span class="T16">(+ champ </span><span class="T15">statut</span><span class="T16">)</span></p><p class="P23"> </p><p class="P23"><span class="T16">TOBEARCHIVED ou ARCHIVED: </span><span class="T15">seulement le statut</span></p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Delete</p><p class="P45">(delete)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P29">ssi CREATED</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E7"><p class="P37">idem Responsable</p></td><td rowspan="4" style="text-align:left;width:3.893cm; " class="Tableau2_F8"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Valider</p><p class="P45">(statusValidated)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td rowspan="7" style="text-align:left;width:3.893cm; " class="Tableau2_C12"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">CREATED</p><p class="P37"> </p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Demander archivage</p><p class="P45">(statusToBeArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">VALIDATED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Sortir de l'inventaire</p><p class="P45"><span class="T12"> </span>(statusArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D9"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P35">Y</p><p class="P28">ssi</p><p class="P28">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Desarchiver (2)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(adminplus+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_E10"><p class="P37">idem Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">ARCHIVED ou</p><p class="P30">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Exporter</p><p class="P45">(csv)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_F12"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Montee de statut group<span class="T24">é</span>e</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D12"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P38">Y</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Edition (4)</p><p class="P44">DOCUMENTS</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P26">N</p><p class="P29">(admin+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P37">Y</p><p class="P31">- admission : ssi VALIDATED</p><p class="P31">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td></tr><tr class="Tableau213"><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P68">Fiche Matériel </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_C13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_D13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_F13"><p class="P49">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td></tr></table><p class="P7"> </p><p class="P7"> </p><p class="P6"> </p><p class="P10">Par défaut, le superadmin a TOUS les droits</p><p class="P10"> </p><p class="Standard"><span class="T15">Conventions d'écriture </span><span class="T16">: </span></p><p class="P14"><span class="T16">- r</span><span class="T15">esp+</span><span class="T16"> = possible pour un </span><span class="T15">Responsable et plus </span><span class="T16">(responsable, admin, adminplus, et superadmin)</span></p><p class="P14"><span class="T16">- </span><span class="T15">admin+</span><span class="T16"> = possible pour un </span><span class="T15">Admin</span><span class="T16"> </span><span class="T15">et plus </span><span class="T16">(admin, adminplus, et superadmin)</span></p><p class="P16">- ...</p><p class="P16"> </p><p class="Standard"><span class="T15">Notes </span><span class="T16">:</span></p><p class="P9"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T15">Droits en modification (edit) </span><span class="T16">:</span><span class="odfLiEnd"></span> </p></li></ol><p class="P16">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Un «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Les données admin ne sont accessibles qu'aux profils admin+</p><p class="P14"><span class="T16">- Le champ "</span><span class="T15">status</span><span class="T16">" n'est modifiable que par les profils adminplus+</span></p><p class="P14"><span class="T16">- Tout le monde peut modifier un matériel </span><span class="T15">VALIDATED </span><span class="T16">(</span><span class="T15">user </span><span class="T16">ne peut modifier que </span><span class="T15">ses</span><span class="T16"> matériels, </span><span class="T17">resp ne peut modifier que les matériels de son groupe thématique ou métier</span><span class="T16">),</span></p><p class="P14"><span class="T16">MAIS PAS</span><span class="T15"> certains champs</span><span class="T16"> qui sont </span><span class="T15">readonly</span><span class="T16"> (</span><span class="T18">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p><p class="P14"><span class="T16">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T18">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T16"><br/>- Seuls les profils </span><span class="T15">adminplus+</span><span class="T16"> peuvent modifier un matériel </span><span class="T15">TOBEARCHIVED, ou ARCHIVED </span><span class="T16">mais </span><span class="T15">UNIQUEMENT le champ "status" </span><span class="T16">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p><p class="P14"><span class="T16">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T15">changer son statut</span><span class="T16">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P16"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T15">Désarchiver </span><span class="T16">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"></span> </p></li></ol><p class="P8"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T15">Montée de statut groupée : </span><span class="T16">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T15">augmenter (+1) le statut d'un groupe de matériels</span><span class="T16">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"></span> </p></li></ol><p class="P8"> </p><ol><li><p class="P48" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"/> </p></li></ol><p class="P16">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p><p class="P16">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p><p class="P16">De plus :</p><p class="P16">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p><p class="P16">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p><p class="P16">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p><p class="P16"> </p><p class="P17"> </p><p class="P1">C - sur les différentes VUES liées au matériel</p><p class="Standard"> </p><p class="P6"><span class="T4">Page accueil </span>:</p><p class="P6"><span> Administration <span class="T20">& Administration Plus </span>voit un menu avec 2 options :</span></p><ul><li><ul><li><ul><li><p class="P51" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0cm"><!-- --></span><span class="T21">Responsable </span>voit un menu avec <span class="T21">3</span> options :<span class="odfLiEnd"/> </p><ul><li><ul><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier à valider</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« <span class="T21">Voir les suivis des matériels donc je suis responsable »</span><span class="odfLiEnd"/> </p></li></ul></li></ul></li></ul><p class="P1">Page Outils :</p><p class="P6">User n'a pas accès à cette page</p><p class="P6">Les autres ont quelques options</p><p class="P6">superadmin a ces options en plus :</p><ul><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"></span> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T20">privilégiés</span><span class="odfLiEnd"/> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"/> </p></li><li><p class="P54" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/index (liste) </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><ul><li><ul><li><p class="P55" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T20">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/find </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><p class="P6"><span> Seul le<span class="T20">s</span> profil<span class="T20">s</span> Admin<span class="T20">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/view </span>:</p><p class="P6"><span> boutons « Imprimer Etiquettes » : <span class="T20">resp+</span></span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/edit </span>:</p><ul><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T20">superadmin+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="P6"> </p><p class="P1"> </p><p class="P19">D - sur un SUIVI et un EMPRUNT</p><p class="P1"> </p><ul><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T19">.</span></p><p class="P12">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p><p class="P13">Tout le monde peut rechercher un suivi,</p><p class="P5"> </p><p class="P5"> </p><p class="P3">E - sur les UTILISATEURS</p><p class="P4"><span class="T9">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p><p class="P5"> </p><p class="P5"> </p><p class="P3">F - sur tous les autres objets métiers</p><p class="P5">Voici la liste des autres objets métiers :</p><ul><li><p class="P58" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"/> </p></li></ul><ul><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"/> </p></li><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T10">plus</span><span class="T9"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p> - - <div class="actions"> -======= <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--> <head profile="http://dublincore.org/documents/dcmi-terms/"> @@ -507,7 +386,6 @@ <p class="P4"><span class="T9">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T10">plus</span><span class="T9"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p> </div> <div class="actions"> ->>>>>>> dev-IRAP <?php echo $this->element('menu') ?> </div> </body></html> \ No newline at end of file -- libgit2 0.21.2