User:Andy/GoCardless Legacy Process

Legacy payment process.

 digraph legacy_payment { graph[fontsize="10", ratio="compress", dpi="100"]; node[fontsize="10"]; edge[fontsize="10"];
 * 1) graph[fontsize="10", ratio="compress", dpi="100", size="6,30"];

node[shape="box", style="rounded,filled", fillcolor="#eeeeee"] start; end;

node[shape="diamond", style="filled", fillcolor="#efefff"] cust_has_dd_mandate; ready_to_charge; can_charge_amount; payment_generated_ok;

node[shape="box", style="filled"] no_mandate; not_ready; generate_payment; over_limit; other_failure; paid;

start               -> cust_has_dd_mandate; cust_has_dd_mandate -> ready_to_charge[label="Yes"]; ready_to_charge     -> can_charge_amount[label="Yes"]; can_charge_amount   -> generate_payment[label="Yes"]; generate_payment    -> payment_generated_ok; payment_generated_ok -> paid[label="Yes"]; paid                -> end;

cust_has_dd_mandate -> no_mandate[label="No"]; no_mandate         -> end;

ready_to_charge -> not_ready[label="No"]; not_ready      -> end;

can_charge_amount -> over_limit[label="No"]; over_limit       -> end;

payment_generated_ok -> other_failure[label="No"]; other_failure       -> end;

can_charge_amount[label="Can we charge\nthe amount\nwe want to\ncharge?"]; cust_has_dd_mandate[label="Does customer\nhave a Direct\nDebit mandate?"]; end[label="End"]; generate_payment[fillcolor="#eeeeee", label="Generate a\nDD payment"]; no_mandate[fillcolor="#ccffcc", label="Invoice generated\nand payment requested\nby any supported method"]; not_ready[fillcolor="orange", label="Log when it\nwill be ready,\nleave BitFolk\nto decide\nif acceptable"]; other_failure[fillcolor="#ffcccc", label="Report unexpected\nproblem to\nBitFolk"]; over_limit[fillcolor="#ffcccc", label="Report permanent\nerror to BitFolk"]; paid[fillcolor="#ccffcc", label="Generate invoice\nand tell\ncustomer that\nit's paid by DD"]; payment_generated_ok[label="Was payment\nsuccessfully\ngenerated?"]; ready_to_charge[label="Can we charge\nanything to\nthe mandate\nright now?"]; start[label="Start"]; }