]> git.agnieray.net Git - galette.git/commitdiff
Choose default payment type; refs #1309, closes #1578
authorJohan Cwiklinski <johan@x-tnd.be>
Fri, 1 Oct 2021 05:43:52 +0000 (07:43 +0200)
committerJohan Cwiklinski <johan@x-tnd.be>
Fri, 1 Oct 2021 09:33:55 +0000 (11:33 +0200)
galette/lib/Galette/Controllers/GaletteController.php
galette/lib/Galette/Core/Preferences.php
galette/lib/Galette/Entity/Contribution.php
galette/templates/default/preferences.tpl

index b22da58f062068be389181463174dfffd92dcd6d..9d7f044245c66960e7ff9a3120fd164b5a7d61db 100644 (file)
@@ -36,6 +36,7 @@
 
 namespace Galette\Controllers;
 
+use Galette\Repository\PaymentTypes;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use Galette\Core\Logo;
@@ -222,6 +223,14 @@ class GaletteController extends AbstractController
         }
         $d->close();
 
+        //List payment types for default to be selected
+        $ptypes = new PaymentTypes(
+            $this->zdb,
+            $this->preferences,
+            $this->login
+        );
+        $ptlist = $ptypes->getList();
+
         $m = new Members();
         $s = new Status($this->zdb);
 
@@ -248,7 +257,8 @@ class GaletteController extends AbstractController
                     Members::ALL_ACCOUNTS       => _T("All accounts"),
                     Members::ACTIVE_ACCOUNT     => _T("Active accounts"),
                     Members::INACTIVE_ACCOUNT   => _T("Inactive accounts")
-                )
+                ),
+                'paymenttypes'          => $ptlist
             )
         );
         return $response;
index 6b1feb908d05440472096c8f0a1a518623c5fe18..a96b94a39cdeab96e88664a62284db4522a21c35 100644 (file)
@@ -35,6 +35,7 @@
 
 namespace Galette\Core;
 
+use Galette\Entity\PaymentType;
 use Throwable;
 use Analog\Analog;
 use Galette\Entity\Adherent;
@@ -271,7 +272,8 @@ class Preferences
         /* Security related */
         'pref_password_length' => 6,
         'pref_password_blacklist' => false,
-        'pref_password_strength' => self::PWD_NONE
+        'pref_password_strength' => self::PWD_NONE,
+        'pref_default_paymenttype' => PaymentType::CHECK
     );
 
     // flagging required fields
index 3c65644b58bf77aad541ec863428997e6155fddd..e0da8a89661a5ec52ab374551d8b25f7f69d8dc6 100644 (file)
@@ -86,9 +86,11 @@ class Contribution
     //fields list and their translation
     private $_fields;
 
+    /** @var Db */
     private $zdb;
+    /** @var Login */
     private $login;
-
+    /** @var array */
     private $errors;
 
     private $sendmail = false;
@@ -107,6 +109,9 @@ class Contribution
         $this->zdb = $zdb;
         $this->login = $login;
 
+        global $preferences;
+        $this->_payment_type = (int)$preferences->pref_default_paymenttype;
+
         /*
          * Fields configuration. Each field is an array and must reflect:
          * array(
index 782cffabd440cd761c107b95e459186ca5a59b02..15bd336036e295ebbee3b3e48774c321999975c4 100644 (file)
                     <span class="tip">{_T string="When using the beginning of membership option; you can offer the last months of the year."}<br/>{_T string="Let's say you offer last 2 months, and have a renewal on 31th of December. All created contributions in current year will be valid until this date, but as of October, they will be valid for the entire next year."}</span>
                     <input type="number" name="pref_membership_offermonths" min="0" id="pref_membership_offermonths" value="{$pref.pref_membership_offermonths}" maxlength="5"{if isset($required.pref_membership_offermonths) and $required.pref_membership_offermonths eq 1} required="required"{/if}/>
                 </p>
+                <p>
+                    <label for="pref_default_paymenttype" class="bline">{_T string="Default payment type:"}</label>
+                    <select name="pref_default_paymenttype" id="pref_default_paymenttype">
+                        {html_options options=$paymenttypes selected=$pref.pref_default_paymenttype}
+                    </select>
+                </p>
                 <p>
                     <label for="pref_bool_publicpages" class="bline">{_T string="Public pages enabled?"}</label>
                     <input type="checkbox" name="pref_bool_publicpages" id="pref_bool_publicpages" value="1" {if $pref.pref_bool_publicpages} checked="checked"{/if}{if isset($required.pref_bool_publicpages) and $required.pref_bool_publicpages eq 1} required="required"{/if}/>