Passed
Push — master ( 6621fa...568391 )
by Brian
06:12
created

GetPaid_Payment_Forms::increment_form_revenue()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 6
rs 10
cc 2
nc 2
nop 1
1
<?php
2
/**
3
 * Contains the payment forms controller class.
4
 *
5
 */
6
7
defined( 'ABSPATH' ) || exit;
8
9
/**
10
 * Payment forms controller class
11
 *
12
 */
13
class GetPaid_Payment_Forms {
14
15
    /**
16
	 * Class constructor
17
	 *
18
	 */
19
	public function __construct() {
20
21
		// Update a payment form's revenue whenever an invoice is paid for or refunded.
22
		add_action( 'getpaid_invoice_payment_status_changed', array( $this, 'increment_form_revenue' ) );
23
		add_action( 'getpaid_invoice_payment_status_reversed', array( $this, 'decrease_form_revenue' ) );
24
25
		// Sync form amount whenever invoice statuses change.
26
		add_action( 'getpaid_invoice_status_changed', array( $this, 'update_form_failed_amount' ), 10, 3 );
27
		add_action( 'getpaid_invoice_status_changed', array( $this, 'update_form_refunded_amount' ), 10, 3 );
28
		add_action( 'getpaid_invoice_status_changed', array( $this, 'update_form_cancelled_amount' ), 10, 3 );
29
30
	}
31
32
	/**
33
	 * Increments a form's revenue whenever there is a payment.
34
	 *
35
	 * @param WPInv_Invoice $invoice
36
	 */
37
	public function increment_form_revenue( $invoice ) {
38
39
		$form = new GetPaid_Payment_Form( $invoice->get_payment_form() );
40
		if ( $form->get_id() ) {
41
			$form->set_earned( $form->get_earned() + $invoice->get_total() );
42
			$form->save();
43
		}
44
45
	}
46
47
	/**
48
	 * Decreases form revenue whenever invoice payment changes.
49
	 *
50
	 * @param WPInv_Invoice $invoice
51
	 */
52
	public function decrease_form_revenue( $invoice ) {
53
54
		$form = new GetPaid_Payment_Form( $invoice->get_payment_form() );
55
		if ( $form->get_id() ) {
56
			$form->set_earned( $form->get_earned() - $invoice->get_total() );
57
			$form->save();
58
		}
59
60
	}
61
62
	/**
63
	 * Updates a form's failed amount.
64
	 *
65
	 * @param WPInv_Invoice $invoice
66
	 * @param string $from
67
	 * @param string $to
68
	 */
69
	public function update_form_failed_amount( $invoice, $from, $to ) {
70
71
		$form = new GetPaid_Payment_Form( $invoice->get_payment_form() );
72
		if ( $form->get_id() ) {
73
			return;
74
		}
75
76
		if ( 'wpi-failed' == $from ) {
77
			$form->set_failed( $form->get_failed() - $invoice->get_total() );
78
			$form->save();
79
		}
80
81
		if ( 'wpi-failed' == $to ) {
82
			$form->set_failed( $form->get_failed() + $invoice->get_total() );
83
			$form->save();
84
		}
85
86
	}
87
88
	/**
89
	 * Updates a form's refunded amount.
90
	 *
91
	 * @param WPInv_Invoice $invoice
92
	 * @param string $from
93
	 * @param string $to
94
	 */
95
	public function update_form_refunded_amount( $invoice, $from, $to ) {
96
97
		$form = new GetPaid_Payment_Form( $invoice->get_payment_form() );
98
		if ( $form->get_id() ) {
99
			return;
100
		}
101
102
		if ( 'wpi-refunded' == $from ) {
103
			$form->set_refunded( $form->get_refunded() - $invoice->get_total() );
104
			$form->save();
105
		}
106
107
		if ( 'wpi-refunded' == $to ) {
108
			$form->set_refunded( $form->get_refunded() + $invoice->get_total() );
109
			$form->save();
110
		}
111
112
	}
113
114
	/**
115
	 * Updates a form's cancelled amount.
116
	 *
117
	 * @param WPInv_Invoice $invoice
118
	 * @param string $from
119
	 * @param string $to
120
	 */
121
	public function update_form_cancelled_amount( $invoice, $from, $to ) {
122
123
		$form = new GetPaid_Payment_Form( $invoice->get_payment_form() );
124
		if ( $form->get_id() ) {
125
			return;
126
		}
127
128
		if ( 'wpi-cancelled' == $from ) {
129
			$form->set_cancelled( $form->get_cancelled() - $invoice->get_total() );
130
			$form->save();
131
		}
132
133
		if ( 'wpi-cancelled' == $to ) {
134
			$form->set_cancelled( $form->get_cancelled() + $invoice->get_total() );
135
			$form->save();
136
		}
137
138
	}
139
140
}
141