PluginProbe
ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce / 1.6.7
ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce v1.6.7
1.17.9 1.17.8 1.17.7 1.17.6 1.17.5 1.17.4 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.3.0 1.3.1 1.3.11 1.3.12 1.3.13 1.3.14 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 All 143 releases
erp / modules / accounting / api / class-rest-api-reports.php

class-rest-api-reports.php in ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce 1.6.7, at modules/accounting/api/class-rest-api-reports.php

309 lines 8.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WeDevs\ERP\Accounting\API;
4
5 use WP_Error;
6 use WP_REST_Response;
7 use WP_REST_Server;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly
11 }
12
13 class Reports_Controller extends \WeDevs\ERP\API\REST_Controller {
14
15 /**
16 * Endpoint namespace.
17 *
18 * @var string
19 */
20 protected $namespace = 'erp/v1';
21
22 /**
23 * Route base.
24 *
25 * @var string
26 */
27 protected $rest_base = 'accounting/v1/reports';
28
29 /**
30 * Register the routes for the objects of the controller.
31 */
32 public function register_routes() {
33 register_rest_route(
34 $this->namespace,
35 '/' . $this->rest_base . '/trial-balance',
36 [
37 [
38 'methods' => WP_REST_Server::READABLE,
39 'callback' => [ $this, 'get_trial_balance' ],
40 'args' => [],
41 'permission_callback' => function ( $request ) {
42 return current_user_can( 'erp_ac_view_sales_summary' );
43 },
44 ],
45 ]
46 );
47
48 register_rest_route(
49 $this->namespace,
50 '/' . $this->rest_base . '/ledger-report',
51 [
52 [
53 'methods' => WP_REST_Server::READABLE,
54 'callback' => [ $this, 'get_ledger_report' ],
55 'args' => [],
56 'permission_callback' => function ( $request ) {
57 return current_user_can( 'erp_ac_view_sales_summary' );
58 },
59 ],
60 ]
61 );
62
63 register_rest_route(
64 $this->namespace,
65 '/' . $this->rest_base . '/sales-tax-report',
66 [
67 [
68 'methods' => WP_REST_Server::READABLE,
69 'callback' => [ $this, 'get_sales_tax_report' ],
70 'args' => [],
71 'permission_callback' => function ( $request ) {
72 return current_user_can( 'erp_ac_view_sales_summary' );
73 },
74 ],
75 ]
76 );
77
78 register_rest_route(
79 $this->namespace,
80 '/' . $this->rest_base . '/income-statement',
81 [
82 [
83 'methods' => WP_REST_Server::READABLE,
84 'callback' => [ $this, 'get_income_statement' ],
85 'args' => [],
86 'permission_callback' => function ( $request ) {
87 return current_user_can( 'erp_ac_view_sales_summary' );
88 },
89 ],
90 ]
91 );
92
93 register_rest_route(
94 $this->namespace,
95 '/' . $this->rest_base . '/balance-sheet',
96 [
97 [
98 'methods' => WP_REST_Server::READABLE,
99 'callback' => [ $this, 'get_balance_sheet' ],
100 'args' => [],
101 'permission_callback' => function ( $request ) {
102 return current_user_can( 'erp_ac_view_sales_summary' );
103 },
104 ],
105 ]
106 );
107
108 register_rest_route(
109 $this->namespace,
110 '/' . $this->rest_base . '/closest-fn-year',
111 [
112 [
113 'methods' => WP_REST_Server::READABLE,
114 'callback' => [ $this, 'get_closest_fn_year' ],
115 'args' => [],
116 'permission_callback' => function ( $request ) {
117 return current_user_can( 'erp_ac_view_sales_summary' );
118 },
119 ],
120 ]
121 );
122 }
123
124 /**
125 * Get trial balance
126 *
127 * @param WP_REST_Request $request
128 *
129 * @return WP_Error|WP_REST_Response
130 */
131 public function get_trial_balance( $request ) {
132 $args = [
133 'start_date' => ! empty( $request['start_date'] ) ? $request['start_date'] : null,
134 'end_date' => ! empty( $request['end_date'] ) ? $request['end_date'] : null,
135 ];
136
137 $data = erp_acct_get_trial_balance( $args );
138
139 $response = rest_ensure_response( $data );
140
141 $response->set_status( 200 );
142
143 return $response;
144 }
145
146 /**
147 * Chart status
148 */
149 public function get_sales_chart_status( $request ) {
150 $args = [
151 'start_date' => empty( $request['start_date'] ) ? '' : $request['start_date'],
152 'end_date' => empty( $request['end_date'] ) ? date( 'Y-m-d' ) : $request['end_date'],
153 ];
154
155 $chart_status = erp_acct_get_sales_chart_status( $args );
156
157 $response = rest_ensure_response( $chart_status );
158
159 $response->set_status( 200 );
160
161 return $response;
162 }
163
164 /**
165 * Chart payment
166 */
167 public function get_sales_chart_payment( $request ) {
168 $args = [
169 'start_date' => empty( $request['start_date'] ) ? '' : $request['start_date'],
170 'end_date' => empty( $request['end_date'] ) ? date( 'Y-m-d' ) : $request['end_date'],
171 ];
172
173 $chart_payment = erp_acct_get_sales_chart_payment( $args );
174
175 $response = rest_ensure_response( $chart_payment );
176
177 $response->set_status( 200 );
178
179 return $response;
180 }
181
182 /**
183 * Get ledger report
184 *
185 * @param WP_REST_Request $request
186 *
187 * @return WP_Error|WP_REST_Response
188 */
189 public function get_ledger_report( $request ) {
190 $ledger_id = (int) $request['ledger_id'];
191 $start_date = empty( $request['start_date'] ) ? date( 'Y-m-d' ) : $request['start_date'];
192 $end_date = empty( $request['end_date'] ) ? date( 'Y-m-d' ) : $request['end_date'];
193
194 $data = erp_acct_get_ledger_report( $ledger_id, $start_date, $end_date );
195
196 $response = rest_ensure_response( $data );
197
198 $response->set_status( 200 );
199
200 return $response;
201 }
202
203 /**
204 * Get sales tax report
205 *
206 * @param WP_REST_Request $request
207 *
208 * @return WP_Error|WP_REST_Response
209 */
210 public function get_sales_tax_report( $request ) {
211 $agency_id = (int) $request['agency_id'];
212 $start_date = empty( $request['start_date'] ) ? null : $request['start_date'];
213 $end_date = empty( $request['end_date'] ) ? null : $request['end_date'];
214
215 $data = erp_acct_get_sales_tax_report( $agency_id, $start_date, $end_date );
216
217 $response = rest_ensure_response( $data );
218
219 $response->set_status( 200 );
220
221 return $response;
222 }
223
224 /**
225 * Get income statement report
226 *
227 * @param WP_REST_Request $request
228 *
229 * @return WP_Error|WP_REST_Response
230 */
231 public function get_income_statement( $request ) {
232 $start_date = $request['start_date'];
233 $end_date = $request['end_date'];
234 $args = [
235 'start_date' => $start_date,
236 'end_date' => $end_date,
237 ];
238
239 $data = erp_acct_get_income_statement( $args );
240
241 $response = rest_ensure_response( $data );
242
243 $response->set_status( 200 );
244
245 return $response;
246 }
247
248 /**
249 * Get balance sheet report
250 *
251 * @param WP_REST_Request $request
252 *
253 * @return WP_Error|WP_REST_Response
254 */
255 public function get_balance_sheet( $request ) {
256 $start_date = $request['start_date'];
257 $end_date = $request['end_date'];
258 $args = [
259 'start_date' => $start_date,
260 'end_date' => $end_date,
261 ];
262
263 $data = erp_acct_get_balance_sheet( $args );
264
265 $response = rest_ensure_response( $data );
266
267 $response->set_status( 200 );
268
269 return $response;
270 }
271
272 /**
273 * Get closest financial year
274 *
275 * @param WP_REST_Request $request request object
276 *
277 * @return WP_REST_Response $response response data
278 */
279 public function get_closest_fn_year( $request ) {
280 $data = erp_acct_get_closest_fn_year_date( date( 'Y-m-d' ) );
281
282 $response = rest_ensure_response( $data );
283
284 $response->set_status( 200 );
285
286 return $response;
287 }
288
289 /**
290 * Prepare a single user output for response
291 *
292 * @param object|array $item
293 * @param WP_REST_Request $request request object
294 * @param array $additional_fields (optional)
295 *
296 * @return WP_REST_Response $response response data
297 */
298 public function prepare_item_for_response( $item, $request, $additional_fields = [] ) {
299 $data = array_merge( $item, $additional_fields );
300
301 // Wrap the data in a response object
302 $response = rest_ensure_response( $data );
303
304 $response = $this->add_links( $response, $item, $additional_fields );
305
306 return $response;
307 }
308 }
309