Index: src/include/lib/Garradin/Entities/Services/Service_User.php
==================================================================
--- src/include/lib/Garradin/Entities/Services/Service_User.php
+++ src/include/lib/Garradin/Entities/Services/Service_User.php
@@ -87,11 +87,11 @@
}
return $this->_fee;
}
- public function addPayment(int $user_id, ?array $source = null)
+ public function addPayment(int $user_id, ?array $source = null): Transaction
{
if (null === $source) {
$source = $_POST;
}
@@ -139,14 +139,16 @@
$su->expected_amount = $su->fee()->getAmountForUser($su->id_user);
}
$su->save();
- if ($su->id_fee && $su->fee()->id_account && !empty($source['amount'])) {
+ if ($su->id_fee && $su->fee()->id_account
+ && !empty($source['amount'])
+ && !empty($source['create_payment'])) {
$su->addPayment($user_id, $source);
}
$db->commit();
return $su;
}
}
Index: src/templates/services/save.tpl
==================================================================
--- src/templates/services/save.tpl
+++ src/templates/services/save.tpl
@@ -86,11 +86,11 @@
Décocher cette case pour pouvoir suivre les règlements de personnes qui payent en plusieurs fois. Il sera possible de cocher cette case lorsque le solde aura été réglé.
- Enregistrement en comptabilité
+ {input type="checkbox" name="create_payment" value=1 default=1 label="Enregistrer en comptabilité"}
{input type="money" name="amount" label="Montant réglé par le membre" fake_required=1 help="En cas de règlement en plusieurs fois il sera possible d'ajouter des règlements via la page de suivi des activités de ce membre."}
{input type="list" target="acc/charts/accounts/selector.php?targets=%s"|args:$account_targets name="account" label="Compte de règlement" required=1}
{input type="text" name="reference" label="Numéro de pièce comptable" help="Numéro de facture, de note de frais, etc."}
@@ -152,9 +152,13 @@
var selected = document.querySelector('input[name="id_service"]:checked, input[name="id_service"]');
selected.checked = true;
g.toggle('.accounting', false);
selectService(selected);
+
+$('#f_create_payment_1').onchange = (e) => {
+ g.toggle('.accounting dl', $('#f_create_payment_1').checked);
+};
{/literal}
{include file="admin/_foot.tpl"}