Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
open-source
OSE
Commits
21a8ba76
Commit
21a8ba76
authored
Mar 06, 2019
by
Laurent Lécluse
Browse files
Merge branch 'MotifModificationService' into 'b8.1'
Motif modification service See merge request
!30
parents
b6173d9d
e6d5c92b
Changes
11
Hide whitespace changes
Inline
Side-by-side
module/Application/config/administration.config.php
View file @
21a8ba76
...
...
@@ -81,6 +81,7 @@ return [
Privileges
::
ETAT_SORTIE_ADMINISTRATION_VISUALISATION
,
Privileges
::
TYPE_INTERVENTION_VISUALISATION
,
Privileges
::
MODULATEUR_VISUALISATION
,
Privileges
::
MOTIFS_MODIFICATION_SERVICE_DU_VISUALISATION
,
],
'assertion'
=>
Assertion\GestionAssertion
::
class
,
],
...
...
module/Application/config/motif-modification-service.config.php
0 → 100644
View file @
21a8ba76
<?php
namespace
Application
;
use
Application\Provider\Privilege\Privileges
;
use
UnicaenAuth\Guard\PrivilegeController
;
return
[
'router'
=>
[
'routes'
=>
[
'motif-modification-service'
=>
[
'type'
=>
'Literal'
,
'options'
=>
[
'route'
=>
'/motif-modification-service'
,
'defaults'
=>
[
'controller'
=>
'Application\Controller\MotifModificationService'
,
'action'
=>
'index'
,
],
],
'may_terminate'
=>
true
,
'child_routes'
=>
[
'delete'
=>
[
'type'
=>
'Segment'
,
'options'
=>
[
'route'
=>
'/delete/:motif-modification-service'
,
'constraints'
=>
[
'motif-modification-service'
=>
'[0-9]*'
,
],
'defaults'
=>
[
'action'
=>
'delete'
,
],
],
],
'saisie'
=>
[
'type'
=>
'Segment'
,
'options'
=>
[
'route'
=>
'/saisie/[:motif-modification-service]'
,
'constraints'
=>
[
'motif-modification-service'
=>
'[0-9]*'
,
],
'defaults'
=>
[
'action'
=>
'saisie'
,
],
],
],
],
],
],
],
'navigation'
=>
[
'default'
=>
[
'home'
=>
[
'pages'
=>
[
'administration'
=>
[
'pages'
=>
[
'motif-modification-service'
=>
[
'label'
=>
'Motif de modification du service dû'
,
'icon'
=>
'fa fa-graduation-cap'
,
'route'
=>
'motif-modification-service'
,
'resource'
=>
PrivilegeController
::
getResourceId
(
'Application\Controller\MotifModificationService'
,
'index'
),
'order'
=>
80
,
'border-color'
=>
'#BBCF55'
,
],
],
],
],
],
],
],
'bjyauthorize'
=>
[
'guards'
=>
[
PrivilegeController
::
class
=>
[
[
'controller'
=>
'Application\Controller\MotifModificationService'
,
'action'
=>
[
'index'
],
'privileges'
=>
Privileges
::
MOTIFS_MODIFICATION_SERVICE_DU_VISUALISATION
,
],
[
'controller'
=>
'Application\Controller\MotifModificationService'
,
'action'
=>
[
'saisie'
,
'delete'
],
'privileges'
=>
Privileges
::
MOTIFS_MODIFICATION_SERVICE_DU_EDITION
,
],
],
],
],
'controllers'
=>
[
'invokables'
=>
[
'Application\Controller\MotifModificationService'
=>
Controller\MotifModificationServiceController
::
class
,
],
],
'service_manager'
=>
[
'invokables'
=>
[
Service\MotifModificationServiceService
::
class
=>
Service\MotifModificationServiceService
::
class
,
],
],
'view_helpers'
=>
[
],
'form_elements'
=>
[
'invokables'
=>
[
Form\MotifModificationService\MotifModificationServiceSaisieForm
::
class
=>
Form\MotifModificationService\MotifModificationServiceSaisieForm
::
class
,
],
],
];
module/Application/src/Application/Controller/MotifModificationServiceController.php
0 → 100644
View file @
21a8ba76
<?php
namespace
Application\Controller
;
use
Application\Service\Traits\MotifModificationServiceServiceAwareTrait
;
use
Application\Entity\Db\MotifModificationServiceDu
;
use
Application\Form\MotifModificationService\Traits\MotifModificationServiceSaisieFormAwareTrait
;
use
UnicaenApp\View\Model\MessengerViewModel
;
class
MotifModificationServiceController
extends
AbstractController
{
use
MotifModificationServiceServiceAwareTrait
;
use
MotifModificationServiceSaisieFormAwareTrait
;
public
function
indexAction
()
{
$this
->
em
()
->
getFilters
()
->
enable
(
'historique'
)
->
init
([
MotifModificationServiceDu
::
class
,
]);
$motifModificationServices
=
$this
->
getServiceMotifModificationService
()
->
getList
();
return
compact
(
'motifModificationServices'
);
}
public
function
saisieAction
()
{
/* @var $motifModificationService MotifModificationServiceDu */
$motifModificationServiceDu
=
$this
->
getEvent
()
->
getParam
(
'motif-modification-service'
);
$form
=
$this
->
getFormMotifModificationServiceSaisie
();
if
(
empty
(
$motifModificationServiceDu
))
{
$title
=
'Création d\'un nouveau motif de modification de service dû'
;
$motifModificationServiceDu
=
$this
->
getServiceMotifModificationService
()
->
newEntity
();
}
else
{
$title
=
'Édition d\'un motif de modification de service dû'
;
}
$form
->
bindRequestSave
(
$motifModificationServiceDu
,
$this
->
getRequest
(),
function
(
MotifModificationServiceDu
$fr
)
{
try
{
$this
->
getServiceMotifModificationService
()
->
save
(
$fr
);
$this
->
flashMessenger
()
->
addSuccessMessage
(
'Enregistrement effectué'
);
}
catch
(
\
Exception
$e
)
{
$this
->
flashMessenger
()
->
addErrorMessage
(
$this
->
translate
(
$e
));
}
});
return
compact
(
'form'
,
'title'
);
}
public
function
deleteAction
()
{
$motifModificationServiceDu
=
$this
->
getEvent
()
->
getParam
(
'motif-modification-service'
);
try
{
$this
->
getServiceMotifModificationService
()
->
delete
(
$motifModificationServiceDu
);
$this
->
flashMessenger
()
->
addSuccessMessage
(
"Motif de Modification de Service supprimé avec succès."
);
}
catch
(
\
Exception
$e
)
{
$this
->
flashMessenger
()
->
addErrorMessage
(
DbException
::
translate
(
$e
)
->
getMessage
());
}
return
new
MessengerViewModel
(
compact
(
'motifModificationService'
));
}
}
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.MotifModificationServiceDu.dcm.xml
View file @
21a8ba76
...
...
@@ -8,8 +8,10 @@
</indexes>
<id
name=
"id"
type=
"integer"
column=
"ID"
>
<generator
strategy=
"SEQUENCE"
/>
<sequence-generator
sequence-name=
"MOTIF_MODIFICATION_SERV_ID_SEQ"
allocation-size=
"1"
/>
</id>
<field
name=
"code"
type=
"string"
column=
"CODE"
length=
"3"
nullable=
"false"
/>
<field
name=
"multiplicateur"
type=
"integer"
column=
"MULTIPLICATEUR"
precision=
"38"
nullable=
"false"
/>
<field
name=
"histoCreation"
type=
"datetime"
column=
"HISTO_CREATION"
nullable=
"false"
/>
<field
name=
"histoDestruction"
type=
"datetime"
column=
"HISTO_DESTRUCTION"
nullable=
"true"
/>
<field
name=
"histoModification"
type=
"datetime"
column=
"HISTO_MODIFICATION"
nullable=
"false"
/>
...
...
module/Application/src/Application/Entity/Db/MotifModificationServiceDu.php
View file @
21a8ba76
...
...
@@ -32,6 +32,10 @@ class MotifModificationServiceDu implements HistoriqueAwareInterface
*/
protected
$decharge
;
/**
* @var float
*/
protected
$multiplicateur
;
/**
...
...
@@ -124,8 +128,32 @@ class MotifModificationServiceDu implements HistoriqueAwareInterface
return
$this
;
}
/**
* Set multiplicateur
*
* @param int $multiplicateur
*
* @return MotifModificationService
*/
public
function
setMultiplicateur
(
$multiplicateur
)
{
$this
->
multiplicateur
=
$multiplicateur
;
return
$this
;
}
/**
* Get mutiplicateur
*
* @return int
*/
public
function
getMultiplicateur
()
{
return
$this
->
multiplicateur
;
}
/**
* Retourne la représentation littérale de cet objet.
*
...
...
module/Application/src/Application/Form/MotifModificationService/MotifModificationServiceSaisieForm.php
0 → 100644
View file @
21a8ba76
<?php
namespace
Application\Form\MotifModificationService
;
use
Application\Form\AbstractForm
;
use
Zend\Form\Element\Csrf
;
use
Zend\Stdlib\Hydrator\HydratorInterface
;
/**
* Description of MotifModificationServiceSaisieForm
*
* @author ZVENIGOROSKY Alexandre <alexandre.zvenigorosky@unicaen.fr>
*/
class
MotifModificationServiceSaisieForm
extends
AbstractForm
{
public
function
init
()
{
$hydrator
=
new
MotifModificationServiceHydrator
();
$this
->
setHydrator
(
$hydrator
);
$this
->
setAttribute
(
'action'
,
$this
->
getCurrentUrl
());
$this
->
add
([
'name'
=>
'code'
,
'options'
=>
[
'label'
=>
"Code"
,
],
'type'
=>
'Text'
,
]);
$this
->
add
([
'name'
=>
'libelle'
,
'options'
=>
[
'label'
=>
"Libelle"
,
],
'type'
=>
'Text'
,
]);
$this
->
add
([
'name'
=>
'multiplicateur'
,
'options'
=>
[
'label'
=>
"Multiplicateur"
,
],
'type'
=>
'Select'
,
]);
$this
->
get
(
'multiplicateur'
)
->
setValueOptions
(
Array
(
'-1'
=>
'-1'
,
'1'
=>
'1'
,
));
$this
->
add
([
'name'
=>
'decharge'
,
'options'
=>
[
'label'
=>
"Traité comme une décharge (le dépassement du service dû ne donne pas lieu à des heures complémentaires)"
,
],
'type'
=>
'Checkbox'
,
]);
$this
->
add
(
new
Csrf
(
'security'
));
$this
->
add
([
'name'
=>
'submit'
,
'type'
=>
'Submit'
,
'attributes'
=>
[
'value'
=>
"Enregistrer"
,
'class'
=>
'btn btn-primary'
,
],
]);
return
$this
;
}
/**
* Should return an array specification compatible with
* {@link Zend\InputFilter\Factory::createInputFilter()}.
*
* @return array
*/
public
function
getInputFilterSpecification
()
{
return
[
'code'
=>
[
'required'
=>
true
,
],
'libelle'
=>
[
'required'
=>
true
,
],
'multiplicateur'
=>
[
'required'
=>
true
,
],
'decharge'
=>
[
'required'
=>
true
,
],
];
}
}
class
MotifModificationServiceHydrator
implements
HydratorInterface
{
/**
* Hydrate $object with the provided $data.
*
* @param array $data
* @param \Application\Entity\Db\MotifModificationServiceDu $object
*
* @return object
*/
public
function
hydrate
(
array
$data
,
$object
)
{
$object
->
setCode
(
$data
[
'code'
]);
$object
->
setLibelle
(
$data
[
'libelle'
]);
$object
->
setMultiplicateur
(
$data
[
'multiplicateur'
]);
$object
->
setDecharge
(
$data
[
'decharge'
]);
return
$object
;
}
/**
* Extract values from an object
*
* @param \Application\Entity\Db\MotifModificationServiceDu $object
*
* @return array
*/
public
function
extract
(
$object
)
{
$data
=
[
'id'
=>
$object
->
getId
()
,
'code'
=>
$object
->
getCode
()
,
'libelle'
=>
$object
->
getLibelle
()
,
'multiplicateur'
=>
$object
->
getMultiplicateur
()
,
'decharge'
=>
$object
->
getDecharge
()
,
];
return
$data
;
}
}
\ No newline at end of file
module/Application/src/Application/Form/MotifModificationService/Traits/MotifModificationServiceSaisieFormAwareTrait.php
0 → 100644
View file @
21a8ba76
<?php
namespace
Application\Form\MotifModificationService\Traits
;
use
Application\Form\MotifModificationService\MotifModificationServiceSaisieForm
;
/**
* Description of MotifModificationServiceSaisieFormAwareTrait
*
* @author UnicaenCode
*/
trait
MotifModificationServiceSaisieFormAwareTrait
{
/**
* @var MotifModificationServiceSaisieForm
*/
private
$formMotifModificationServiceSaisie
;
/**
* @param MotifModificationServiceSaisieForm $formMotifModificationServiceSaisie
*
* @return self
*/
public
function
setFormMotifModificationServiceSaisie
(
MotifModificationServiceSaisieForm
$formMotifModificationServiceSaisie
)
{
$this
->
formMotifModificationServiceSaisie
=
$formMotifModificationServiceSaisie
;
return
$this
;
}
/**
* Retourne un nouveau formulaire ou fieldset systématiquement, sauf si ce dernier a été fourni manuellement.
*
* @return MotifModificationServiceSaisieForm
*/
public
function
getFormMotifModificationServiceSaisie
()
{
if
(
!
empty
(
$this
->
formMotifModificationServiceSaisie
))
{
return
$this
->
formMotifModificationServiceSaisie
;
}
return
\
Application
::
$container
->
get
(
'FormElementManager'
)
->
get
(
MotifModificationServiceSaisieForm
::
class
);
}
}
module/Application/src/Application/Service/MotifModificationServiceService.php
0 → 100644
View file @
21a8ba76
<?php
namespace
Application\Service
;
use
Doctrine\ORM\QueryBuilder
;
/**
* Description of MotifModificationServiceDu
*
*/
class
MotifModificationServiceService
extends
AbstractEntityService
{
/**
* retourne la classe des entit?s
*
* @return string
* @throws RuntimeException
*/
public
function
getEntityClass
()
{
return
\
Application\Entity\Db\MotifModificationServiceDu
::
class
;
}
/**
* Retourne l'alias d'entit? courante
*
* @return string
*/
public
function
getAlias
()
{
return
'fr'
;
}
public
function
getList
(
QueryBuilder
$qb
=
null
,
$alias
=
null
)
{
list
(
$qb
,
$alias
)
=
$this
->
initQuery
();
return
parent
::
getList
(
$qb
,
$alias
);
}
}
module/Application/src/Application/Service/Traits/MotifModificationServiceServiceAwareTrait.php
0 → 100644
View file @
21a8ba76
<?php
namespace
Application\Service\Traits
;
use
Application\Service\MotifModificationServiceService
;
/**
* Description of MotifModificationServiceAwareTrait
*
* @author UnicaenCode
*/
trait
MotifModificationServiceServiceAwareTrait
{
/**
* @var MotifModificationServiceService
*/
private
$serviceMotifModificationService
;
/**
* @param MotifModificationServiceService $serviceMotifModificationService
*
* @return self
*/
public
function
setServiceMotifModificationService
(
MotifModificationServiceService
$serviceMotifModificationService
)
{
$this
->
serviceMotifModificationService
=
$serviceMotifModificationService
;
return
$this
;
}
/**
* @return MotifModificationServiceService
*/
public
function
getServiceMotifModificationService
()
{
if
(
empty
(
$this
->
serviceMotifModificationService
))
{
$this
->
serviceMotifModificationService
=
\
Application
::
$container
->
get
(
MotifModificationServiceService
::
class
);
}
return
$this
->
serviceMotifModificationService
;
}
}
module/Application/view/application/motif-modification-service/index.phtml
0 → 100644
View file @
21a8ba76
<?php
/**
* @var $this \Application\View\Renderer\PhpRenderer
* @var $motifModificationServices \Application\Entity\Db\MotifModificationService[]
*/
use
Application\Provider\Privilege\Privileges
;
function
affBooleen
(
$flg
)
{
// affiche booléen avec des glypheIcon
return
(
$flg
?
'<span class="glyphicon glyphicon-ok text-success"></span>'
:
'<span class="glyphicon glyphicon-remove text-danger refuse"></span>'
);
}
$this
->
headTitle
()
->
append
(
"Motifs de modification de service dû"
);
$canEdit
=
$this
->
isAllowed
(
Privileges
::
getResourceId
(
Privileges
::
MOTIFS_MODIFICATION_SERVICE_DU_EDITION
));
?>
<h1
class=
"page-header"
>
Motifs de modification de service dû
</h1>
<table
class=
"table table-bordered table-sort"
>
<thead>
<th
style=
"word-wrap: break-word ; "
>
Code
</th>
<th
style=
"word-wrap: break-word ; "
>
Libelle
</th>
<th
style=
"word-wrap: break-word ; "
>
Multiplicateur
</th>
<th
style=
"word-wrap: break-word ; "
>
Décharge
</th>
<?php
if
(
$canEdit
)
echo
'<th>Actions</th>'
?>
</thead>
<tbody>
<?php
foreach
(
$motifModificationServices
as
$fr
)
:
?>
<tr>
<td
style=
"word-wrap: break-word ; "
>
<?=
$fr
->
getCode
()
?>
</td>
<td
style=
"word-wrap: break-word ; "
>
<?=
$fr
->
getLibelle
()
?>
</td>
<td
style=
"word-wrap: break-word ; "
>
<?=
$fr
->
getMultiplicateur
()
?>
</td>
<td
style=
"word-wrap: break-word ; "
>
<?=
affBooleen
(
$fr
->
getDecharge
())
?>
</td>
<?php
if
(
$canEdit
)
{
?>
<td
style=
"text-align:center;width:1px;white-space: nowrap"
>
<a
class=
"ajax-modal"
data-event=
"motif-modification-service-saisie"
href=
"
<?=
$this
->
url
(
'motif-modification-service/saisie'
,
[
'motif-modification-service'
=>
$fr
->
getId
()])
?>
"
title=
"Modifier le Motif de Modificationde Service dû"
>
<span
class=
"glyphicon glyphicon-edit"
></span></a>
<a
class=
"pop-ajax"
href=
"
<?=
$this
->
url
(
'motif-modification-service/delete'
,
[
'motif-modification-service'
=>
$fr
->
getId
()])
?>
"
title=
"Supprimer le Motif de Modificationde Service dû"
data-content=
"<p class='lead text-danger'><strong>Attention!</strong> Confirmez-vous cette suppression ?</p>"
data-confirm=
"true"