Loading module/Oscar/src/Oscar/Controller/AdministrationController.php +7 −1 Original line number Diff line number Diff line Loading @@ -445,6 +445,11 @@ class AdministrationController extends AbstractOscarController implements $this->getOscarConfigurationService()->setNumerotationEditable($value); return $this->redirect()->toRoute('administration/parameters'); case OscarConfigurationService::frais_de_gestion_inclus: $value = $this->params()->fromPost('parameter_value') == "on"; $this->getOscarConfigurationService()->setFraisDeGestionInclus($value); return $this->redirect()->toRoute('administration/parameters'); case OscarConfigurationService::theme: $value = $this->params()->fromPost('parameter_value', ''); $this->getOscarConfigurationService()->setTheme($value); Loading Loading @@ -535,6 +540,7 @@ class AdministrationController extends AbstractOscarController implements 'timesheet_preview' => $this->getOscarConfigurationService()->getTimesheetPreview(), 'timesheet_excel' => $this->getOscarConfigurationService()->getTimesheetExcel(), 'allow_numerotation_custom' => $this->getOscarConfigurationService()->getNumerotationEditable(), 'frais_de_gestion_inclus' => $this->getOscarConfigurationService()->getFraisDeGestionInclus(), 'themes' => $this->getOscarConfigurationService()->getConfiguration('themes'), 'theme' => $this->getOscarConfigurationService()->getTheme(), 'export' => [ Loading module/Oscar/src/Oscar/Controller/ProjectGrantController.php +1 −0 Original line number Diff line number Diff line Loading @@ -2254,6 +2254,7 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif 'pcruEnabled' => $this->getOscarConfigurationService()->getPcruEnabled(), 'entity' => $activity, 'fraisDeGestionInclus' => $this->getOscarConfigurationService()->getFraisDeGestionInclus(), 'currencies' => $currencies, Loading module/Oscar/src/Oscar/Entity/Activity.php +32 −15 Original line number Diff line number Diff line Loading @@ -683,9 +683,9 @@ class Activity implements ResourceInterface return $this->fraisDeGestion; } public function getFraisDeGestionDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true) public function getFraisDeGestionDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false) { return $this->getFraisDisplay($this->getFraisDeGestion(), $diplayCurrency, $displayPercentInfo); return $this->getFraisDisplay($this->getFraisDeGestion(), $diplayCurrency, $displayPercentInfo, $fraisDeGestionInclusDansMontant); } /** Loading Loading @@ -813,7 +813,8 @@ class Activity implements ResourceInterface protected function getFraisDisplay( ?string $value, bool $diplayCurrency = true, bool $displayPercentInfo = true bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false, ): string { $percent = ''; $currency = ''; Loading @@ -828,7 +829,22 @@ class Activity implements ResourceInterface if ($displayPercentInfo) { $percent = sprintf(' (%s)', $value); } $data = $this->getAmount() / 100 * floatval($value); $montantDeBaseSansLesFraisDeGestionPourLeCalculDesPourcentages = $this->getAmount(); if ($fraisDeGestionInclusDansMontant) { $fraisDeGestion = $this->getFraisDeGestion(); if (is_string($fraisDeGestion)) { if (strpos($fraisDeGestion, '%')) { $fraisDeGestion = $this->getAmount() / (floatval(100) + floatval($fraisDeGestion)) * floatval($fraisDeGestion); } else { $fraisDeGestion = floatval($fraisDeGestion); } } else { $fraisDeGestion = floatval(0); } $montantDeBaseSansLesFraisDeGestionPourLeCalculDesPourcentages -= $fraisDeGestion; } $data = $montantDeBaseSansLesFraisDeGestionPourLeCalculDesPourcentages / floatval(100) * floatval($value); } else { $data = floatval($value); } Loading @@ -841,22 +857,23 @@ class Activity implements ResourceInterface return $out . $currency . $percent; } public function getFraisDeGestionPartUniteDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true) public function getFraisDeGestionPartUniteDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false) { return $this->getFraisDisplay($this->getFraisDeGestionPartUnite()); return $this->getFraisDisplay($this->getFraisDeGestionPartUnite(), true, true, $fraisDeGestionInclusDansMontant); } public function getFraisDeGestionPartHebergeurDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true) public function getFraisDeGestionPartHebergeurDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false) { return $this->getFraisDisplay($this->getFraisDeGestionPartHebergeur()); return $this->getFraisDisplay($this->getFraisDeGestionPartHebergeur(), true, true, $fraisDeGestionInclusDansMontant); } public function getFraisDeGestionPartGestionnaireDisplay( bool $diplayCurrency = true, bool $displayPercentInfo = true bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false ) { return $this->getFraisDisplay($this->getFraisDeGestionPartGestionnaire()); return $this->getFraisDisplay($this->getFraisDeGestionPartGestionnaire(), true, true, $fraisDeGestionInclusDansMontant); } /** Loading Loading @@ -2723,7 +2740,7 @@ class Activity implements ResourceInterface return $datas; } public function csv($dateFormat = 'Y-m-d', $activityTypeChainFormatted) public function csv($dateFormat = 'Y-m-d', $activityTypeChainFormatted, bool $fraisDeGestionInclusDansMontant = false) { return array( 'ID' => $this->getId(), Loading Loading @@ -2759,10 +2776,10 @@ class Activity implements ResourceInterface 'versement prévu' => number_format($this->getTotalPaymentProvided(), 2, ',', ''), 'écart de paiement' => number_format($this->getEcartPaiement(), 2, ',', ''), 'justificatif écart de paiement' => $this->getJustificatifEcartPaiement(), 'Frais de gestion' => $this->getFraisDeGestionDisplay(), 'Frais de gestion (part hébergeur)' => $this->getFraisDeGestionPartHebergeurDisplay(true, false), 'Frais de gestion (part unité)' => $this->getFraisDeGestionPartUniteDisplay(true, false), 'Frais de gestion (part gestionnaire)' => $this->getFraisDeGestionPartGestionnaireDisplay(true, false), 'Frais de gestion' => $this->getFraisDeGestionDisplay(true, true, $fraisDeGestionInclusDansMontant), 'Frais de gestion (part hébergeur)' => $this->getFraisDeGestionPartHebergeurDisplay(true, false, $fraisDeGestionInclusDansMontant), 'Frais de gestion (part unité)' => $this->getFraisDeGestionPartUniteDisplay(true, false, $fraisDeGestionInclusDansMontant), 'Frais de gestion (part gestionnaire)' => $this->getFraisDeGestionPartGestionnaireDisplay(true, false, $fraisDeGestionInclusDansMontant), 'incidence financière' => $this->getIncidenceFinanciere(), 'Assiette subventionnable' => $this->getAssietteSubventionnable(), 'Note' => $this->getNoteFinanciere(), Loading module/Oscar/src/Oscar/Service/OscarConfigurationService.php +12 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ class OscarConfigurationService implements ServiceLocatorAwareInterface const financial_description = 'financial_description'; const spent_effective_clause = 'spent_effective_clause'; const spent_predicted_clause = 'spent_predicted_clause'; const frais_de_gestion_inclus = 'frais_de_gestion_inclus'; const ORGANIZATION_REQUIRED = 'organization_required'; Loading Loading @@ -357,6 +358,16 @@ class OscarConfigurationService implements ServiceLocatorAwareInterface $this->saveEditableConfKey(self::allow_numerotation_custom, $boolean); } public function getFraisDeGestionInclus() { return $this->getEditableConfKey(self::frais_de_gestion_inclus, false); } public function setFraisDeGestionInclus($boolean) { $this->saveEditableConfKey(self::frais_de_gestion_inclus, $boolean); } public function getValidationPFI() { $reg = $this->getEditableConfKey(self::pfi_strict_format); Loading module/Oscar/src/Oscar/Service/ProjectGrantApiService.php +4 −4 Original line number Diff line number Diff line Loading @@ -600,10 +600,10 @@ class ProjectGrantApiService implements 'amount' => $activity->getAmount(), 'montant' => $activity->getAmount(), 'currency' => $activity->getCurrency() ? $activity->getCurrency()->toJson() : null, 'fraisDeGestion' => $activity->getFraisDeGestionDisplay(), 'fraisDeGestionPartHebergeur' => $activity->getFraisDeGestionPartHebergeurDisplay(), 'fraisDeGestionPartUnite' => $activity->getFraisDeGestionPartUniteDisplay(), 'fraisDeGestionPartGestionnaire' => $activity->getFraisDeGestionPartGestionnaireDisplay(), 'fraisDeGestion' => $activity->getFraisDeGestionDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'fraisDeGestionPartHebergeur' => $activity->getFraisDeGestionPartHebergeurDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'fraisDeGestionPartUnite' => $activity->getFraisDeGestionPartUniteDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'fraisDeGestionPartGestionnaire' => $activity->getFraisDeGestionPartGestionnaireDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'tva' => (string)$activity->getTva(), 'assietteSubventionnable' => $activity->getAssietteSubventionnable(), ]; Loading Loading
module/Oscar/src/Oscar/Controller/AdministrationController.php +7 −1 Original line number Diff line number Diff line Loading @@ -445,6 +445,11 @@ class AdministrationController extends AbstractOscarController implements $this->getOscarConfigurationService()->setNumerotationEditable($value); return $this->redirect()->toRoute('administration/parameters'); case OscarConfigurationService::frais_de_gestion_inclus: $value = $this->params()->fromPost('parameter_value') == "on"; $this->getOscarConfigurationService()->setFraisDeGestionInclus($value); return $this->redirect()->toRoute('administration/parameters'); case OscarConfigurationService::theme: $value = $this->params()->fromPost('parameter_value', ''); $this->getOscarConfigurationService()->setTheme($value); Loading Loading @@ -535,6 +540,7 @@ class AdministrationController extends AbstractOscarController implements 'timesheet_preview' => $this->getOscarConfigurationService()->getTimesheetPreview(), 'timesheet_excel' => $this->getOscarConfigurationService()->getTimesheetExcel(), 'allow_numerotation_custom' => $this->getOscarConfigurationService()->getNumerotationEditable(), 'frais_de_gestion_inclus' => $this->getOscarConfigurationService()->getFraisDeGestionInclus(), 'themes' => $this->getOscarConfigurationService()->getConfiguration('themes'), 'theme' => $this->getOscarConfigurationService()->getTheme(), 'export' => [ Loading
module/Oscar/src/Oscar/Controller/ProjectGrantController.php +1 −0 Original line number Diff line number Diff line Loading @@ -2254,6 +2254,7 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif 'pcruEnabled' => $this->getOscarConfigurationService()->getPcruEnabled(), 'entity' => $activity, 'fraisDeGestionInclus' => $this->getOscarConfigurationService()->getFraisDeGestionInclus(), 'currencies' => $currencies, Loading
module/Oscar/src/Oscar/Entity/Activity.php +32 −15 Original line number Diff line number Diff line Loading @@ -683,9 +683,9 @@ class Activity implements ResourceInterface return $this->fraisDeGestion; } public function getFraisDeGestionDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true) public function getFraisDeGestionDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false) { return $this->getFraisDisplay($this->getFraisDeGestion(), $diplayCurrency, $displayPercentInfo); return $this->getFraisDisplay($this->getFraisDeGestion(), $diplayCurrency, $displayPercentInfo, $fraisDeGestionInclusDansMontant); } /** Loading Loading @@ -813,7 +813,8 @@ class Activity implements ResourceInterface protected function getFraisDisplay( ?string $value, bool $diplayCurrency = true, bool $displayPercentInfo = true bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false, ): string { $percent = ''; $currency = ''; Loading @@ -828,7 +829,22 @@ class Activity implements ResourceInterface if ($displayPercentInfo) { $percent = sprintf(' (%s)', $value); } $data = $this->getAmount() / 100 * floatval($value); $montantDeBaseSansLesFraisDeGestionPourLeCalculDesPourcentages = $this->getAmount(); if ($fraisDeGestionInclusDansMontant) { $fraisDeGestion = $this->getFraisDeGestion(); if (is_string($fraisDeGestion)) { if (strpos($fraisDeGestion, '%')) { $fraisDeGestion = $this->getAmount() / (floatval(100) + floatval($fraisDeGestion)) * floatval($fraisDeGestion); } else { $fraisDeGestion = floatval($fraisDeGestion); } } else { $fraisDeGestion = floatval(0); } $montantDeBaseSansLesFraisDeGestionPourLeCalculDesPourcentages -= $fraisDeGestion; } $data = $montantDeBaseSansLesFraisDeGestionPourLeCalculDesPourcentages / floatval(100) * floatval($value); } else { $data = floatval($value); } Loading @@ -841,22 +857,23 @@ class Activity implements ResourceInterface return $out . $currency . $percent; } public function getFraisDeGestionPartUniteDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true) public function getFraisDeGestionPartUniteDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false) { return $this->getFraisDisplay($this->getFraisDeGestionPartUnite()); return $this->getFraisDisplay($this->getFraisDeGestionPartUnite(), true, true, $fraisDeGestionInclusDansMontant); } public function getFraisDeGestionPartHebergeurDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true) public function getFraisDeGestionPartHebergeurDisplay(bool $diplayCurrency = true, bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false) { return $this->getFraisDisplay($this->getFraisDeGestionPartHebergeur()); return $this->getFraisDisplay($this->getFraisDeGestionPartHebergeur(), true, true, $fraisDeGestionInclusDansMontant); } public function getFraisDeGestionPartGestionnaireDisplay( bool $diplayCurrency = true, bool $displayPercentInfo = true bool $displayPercentInfo = true, bool $fraisDeGestionInclusDansMontant = false ) { return $this->getFraisDisplay($this->getFraisDeGestionPartGestionnaire()); return $this->getFraisDisplay($this->getFraisDeGestionPartGestionnaire(), true, true, $fraisDeGestionInclusDansMontant); } /** Loading Loading @@ -2723,7 +2740,7 @@ class Activity implements ResourceInterface return $datas; } public function csv($dateFormat = 'Y-m-d', $activityTypeChainFormatted) public function csv($dateFormat = 'Y-m-d', $activityTypeChainFormatted, bool $fraisDeGestionInclusDansMontant = false) { return array( 'ID' => $this->getId(), Loading Loading @@ -2759,10 +2776,10 @@ class Activity implements ResourceInterface 'versement prévu' => number_format($this->getTotalPaymentProvided(), 2, ',', ''), 'écart de paiement' => number_format($this->getEcartPaiement(), 2, ',', ''), 'justificatif écart de paiement' => $this->getJustificatifEcartPaiement(), 'Frais de gestion' => $this->getFraisDeGestionDisplay(), 'Frais de gestion (part hébergeur)' => $this->getFraisDeGestionPartHebergeurDisplay(true, false), 'Frais de gestion (part unité)' => $this->getFraisDeGestionPartUniteDisplay(true, false), 'Frais de gestion (part gestionnaire)' => $this->getFraisDeGestionPartGestionnaireDisplay(true, false), 'Frais de gestion' => $this->getFraisDeGestionDisplay(true, true, $fraisDeGestionInclusDansMontant), 'Frais de gestion (part hébergeur)' => $this->getFraisDeGestionPartHebergeurDisplay(true, false, $fraisDeGestionInclusDansMontant), 'Frais de gestion (part unité)' => $this->getFraisDeGestionPartUniteDisplay(true, false, $fraisDeGestionInclusDansMontant), 'Frais de gestion (part gestionnaire)' => $this->getFraisDeGestionPartGestionnaireDisplay(true, false, $fraisDeGestionInclusDansMontant), 'incidence financière' => $this->getIncidenceFinanciere(), 'Assiette subventionnable' => $this->getAssietteSubventionnable(), 'Note' => $this->getNoteFinanciere(), Loading
module/Oscar/src/Oscar/Service/OscarConfigurationService.php +12 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ class OscarConfigurationService implements ServiceLocatorAwareInterface const financial_description = 'financial_description'; const spent_effective_clause = 'spent_effective_clause'; const spent_predicted_clause = 'spent_predicted_clause'; const frais_de_gestion_inclus = 'frais_de_gestion_inclus'; const ORGANIZATION_REQUIRED = 'organization_required'; Loading Loading @@ -357,6 +358,16 @@ class OscarConfigurationService implements ServiceLocatorAwareInterface $this->saveEditableConfKey(self::allow_numerotation_custom, $boolean); } public function getFraisDeGestionInclus() { return $this->getEditableConfKey(self::frais_de_gestion_inclus, false); } public function setFraisDeGestionInclus($boolean) { $this->saveEditableConfKey(self::frais_de_gestion_inclus, $boolean); } public function getValidationPFI() { $reg = $this->getEditableConfKey(self::pfi_strict_format); Loading
module/Oscar/src/Oscar/Service/ProjectGrantApiService.php +4 −4 Original line number Diff line number Diff line Loading @@ -600,10 +600,10 @@ class ProjectGrantApiService implements 'amount' => $activity->getAmount(), 'montant' => $activity->getAmount(), 'currency' => $activity->getCurrency() ? $activity->getCurrency()->toJson() : null, 'fraisDeGestion' => $activity->getFraisDeGestionDisplay(), 'fraisDeGestionPartHebergeur' => $activity->getFraisDeGestionPartHebergeurDisplay(), 'fraisDeGestionPartUnite' => $activity->getFraisDeGestionPartUniteDisplay(), 'fraisDeGestionPartGestionnaire' => $activity->getFraisDeGestionPartGestionnaireDisplay(), 'fraisDeGestion' => $activity->getFraisDeGestionDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'fraisDeGestionPartHebergeur' => $activity->getFraisDeGestionPartHebergeurDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'fraisDeGestionPartUnite' => $activity->getFraisDeGestionPartUniteDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'fraisDeGestionPartGestionnaire' => $activity->getFraisDeGestionPartGestionnaireDisplay(true, true, $this->getOscarConfigurationService()->getFraisDeGestionInclus()), 'tva' => (string)$activity->getTva(), 'assietteSubventionnable' => $activity->getAssietteSubventionnable(), ]; Loading