Overview
Comment: | Allow to just subscribe a user to a service, without adding a payment |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | stable |
Files: | files | file ages | folders |
SHA1: |
481cf0b0009719a33a16c4f02739b2fc |
User & Date: | bohwaz on 2020-12-08 17:08:31 |
Other Links: | manifest | tags |
Context
2020-12-08
| ||
17:47 | Allow to do an opening balance from nothing check-in: 99bb6ee70f user: bohwaz tags: trunk | |
17:08 | Allow to just subscribe a user to a service, without adding a payment check-in: 481cf0b000 user: bohwaz tags: trunk, stable | |
17:03 | Allow unprotected SQL queries, but only if created by someone who has access to main config check-in: 820a6f443d user: bohwaz tags: trunk | |
Changes
Modified src/include/lib/Garradin/Entities/Services/Service_User.php from [2a1fc75349] to [c3706f63b1].
︙ | ︙ | |||
85 86 87 88 89 90 91 | if (null === $this->_fee) { $this->_fee = Fees::get($this->id_fee); } return $this->_fee; } | | | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | if (null === $this->_fee) { $this->_fee = Fees::get($this->id_fee); } return $this->_fee; } public function addPayment(int $user_id, ?array $source = null): Transaction { if (null === $source) { $source = $_POST; } $transaction = new Transaction; $transaction->id_creator = $user_id; |
︙ | ︙ | |||
137 138 139 140 141 142 143 | if ($su->id_fee && $su->fee()->id_account && $su->id_user) { $su->expected_amount = $su->fee()->getAmountForUser($su->id_user); } $su->save(); | | > > | 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | if ($su->id_fee && $su->fee()->id_account && $su->id_user) { $su->expected_amount = $su->fee()->getAmountForUser($su->id_user); } $su->save(); if ($su->id_fee && $su->fee()->id_account && !empty($source['amount']) && !empty($source['create_payment'])) { $su->addPayment($user_id, $source); } $db->commit(); return $su; } } |
Modified src/templates/services/save.tpl from [73e786595a] to [76ea220052].
︙ | ︙ | |||
84 85 86 87 88 89 90 | {input type="date" name="expiry_date" default=$today label="Date d'expiration de l'inscription"} {input type="checkbox" name="paid" value="1" default="1" label="Marquer cette inscription comme payée"} <dd class="help">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é.</dd> </dl> </fieldset> <fieldset class="accounting"> | | | 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | {input type="date" name="expiry_date" default=$today label="Date d'expiration de l'inscription"} {input type="checkbox" name="paid" value="1" default="1" label="Marquer cette inscription comme payée"} <dd class="help">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é.</dd> </dl> </fieldset> <fieldset class="accounting"> <legend>{input type="checkbox" name="create_payment" value=1 default=1 label="Enregistrer en comptabilité"}</legend> <dl> {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."} {input type="text" name="payment_reference" label="Référence de paiement" help="Numéro de chèque, numéro de transaction CB, etc."} </dl> |
︙ | ︙ | |||
150 151 152 153 154 155 156 157 158 159 160 | }); var selected = document.querySelector('input[name="id_service"]:checked, input[name="id_service"]'); selected.checked = true; g.toggle('.accounting', false); selectService(selected); </script> {/literal} {include file="admin/_foot.tpl"} | > > > > | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | }); 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); }; </script> {/literal} {include file="admin/_foot.tpl"} |