Allow forcing single-time SEPA payment in procpost-test.
authorWerner Koch <wk@gnupg.org>
Mon, 12 Jun 2017 13:55:08 +0000 (15:55 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 12 Jun 2017 13:55:08 +0000 (15:55 +0200)
* src/payproc-post.c (post_sepa): Detect explict value.
--

This allows

  payproc-post --live ABCDEF  10/0

to force a single payment even if the preorder DB says a reccuring
payment was planned.

src/payproc-post.c

index 4dc63cf..ca647b6 100644 (file)
@@ -355,6 +355,7 @@ post_sepa (const char *refstring, const char *amountstr_arg)
   keyvalue_t kv;
   char *amountstr;
   int recur = 0;
   keyvalue_t kv;
   char *amountstr;
   int recur = 0;
+  int force_single = 0;
   char *p;
 
   amountstr = xstrdup (amountstr_arg);
   char *p;
 
   amountstr = xstrdup (amountstr_arg);
@@ -367,6 +368,8 @@ post_sepa (const char *refstring, const char *amountstr_arg)
         recur = -1;
       else
         recur = atoi (p);
         recur = -1;
       else
         recur = atoi (p);
+      if (!recur && *p)
+        force_single = 1;
     }
 
   if (!*amountstr || !convert_amount (amountstr, 2))
     }
 
   if (!*amountstr || !convert_amount (amountstr, 2))
@@ -399,6 +402,8 @@ post_sepa (const char *refstring, const char *amountstr_arg)
       else
         err = keyvalue_putf (&input, "Recur", "%d", recur);
     }
       else
         err = keyvalue_putf (&input, "Recur", "%d", recur);
     }
+  else if (!err && force_single)
+    err = keyvalue_put (&input, "Recur", "0");
 
   if (err)
     log_fatal ("keyvalue_put failed: %s\n", gpg_strerror (err));
 
   if (err)
     log_fatal ("keyvalue_put failed: %s\n", gpg_strerror (err));