-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compte épargne : initialisation #767
Conversation
837d86c
to
54ff720
Compare
… initCycleEndRegulateOptionalShiftsTimeLog
54ff720
to
e6492c9
Compare
return $this->createdAt; | ||
return $this->timeLogs->filter(function (TimeLog $log) { | ||
return ($log->getType() != TimeLog::TYPE_SAVING); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faudrait le faire directement en SQL. C’est pas très performant de le faire de cette manière. Surtout que ce bout de code est appelé à beaucoup d’endroits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes t'as raison. le hic c'est qu'on ne peut pas faire appel à Repository depuis une Entity. il faudrait passer par le Service (un peu comme BeneficiaryService.getTimeCount()
)
j'ai mis un commentaire dans l'issue, en optimisations à faire après-coup (ca mérite une PR dédiée)
return $this->timeLogs->filter(function (TimeLog $log) { | ||
return ($log->getType() == TimeLog::TYPE_SAVING); | ||
}); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Même remarque ici
return ($log->getCreatedAt() < $before); | ||
}); | ||
else | ||
$logs = $this->getTimeLogs(); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Est ce que le before
est toujours utilisé dans le code ?
cf mes commentaires précédents ça vaudrait peut être le coup là aussi de faire directement en SQL
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes c'est utilisé à pas mal d'endroits..
$log->setTime(-1 * ($counter_today - ($this->due_duration_by_cycle + $allowed_cumul))); | ||
$log->setType(TimeLog::TYPE_CYCLE_END_REGULATE_OPTIONAL_SHIFTS); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
J’ai l’impression qu’on perd plus en lisibilité à déplacer ce code dans le service ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
c'est vrai j'ai opté pour répliquer l'usage que j'avais fait pour initShiftValidatedTimeLog
qui lui était utilisé à d'autres endroits.
Après je trouve que la fonction initCycleEndRegulateOptionalShiftsTimeLog
permet de savoir quels sont les paramètres à fournir, vs devoir tout re-set + faire appel à TYPE_CYCLE_END_REGULATE_OPTIONAL_SHIFTS
si l'inhéritance n'est pas utilisée
je vais merger pour rebaser / maj les PR par dessus. |
* New parameter: use_time_log_saving * Add TYPE_SAVING * Rename getTimeCount to getShiftTimeCount. Create getSavingTimeCount & initCycleEndRegulateOptionalShiftsTimeLog * fixes
* New parameter: use_time_log_saving * Add TYPE_SAVING * Rename getTimeCount to getShiftTimeCount. Create getSavingTimeCount & initCycleEndRegulateOptionalShiftsTimeLog * fixes
Quoi ?
TimeLog.TYPE_SAVING
use_time_log_saving
Membership
:getShiftTimeLogs()
(tous les timeLogs qui ne sont pas TYPE_SAVING)getSavingTimeLogs()
(tous les timeLogs qui sont TYPE_SAVING)getTimeCount()
engetShiftTimeCount
(impact sur d'autres fichiers & templates)getSavingTimeCount()
BeneficiaryService
:getTimeCount()
engetCycleShiftDurationSum()
pour éviter de confondre avec celles de MembershipTimeLogEventListener
:initCycleEndRegulateOptionalShiftsTimeLog()
Pourquoi ?
Pour séparer la notion de "compteur-temps" et de "compteur-épargne"
Captures d'écran
Aucun impact sur l'interface dans cette PR