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.10 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 All 144 releases
erp / modules / accounting / api / class-rest-api-closing-balance.php

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

145 lines 4.0 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 Closing_Balance_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/closing-balance';
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,
36 [
37 [
38 'methods' => WP_REST_Server::CREATABLE,
39 'callback' => [ $this, 'close_balancesheet' ],
40 'args' => [],
41 'permission_callback' => function ( $request ) {
42 return current_user_can( 'erp_ac_create_expenses_voucher' );
43 },
44 ],
45 ]
46 );
47
48 register_rest_route(
49 $this->namespace,
50 '/' . $this->rest_base . '/closest-fn-year',
51 [
52 [
53 'methods' => WP_REST_Server::READABLE,
54 'callback' => [ $this, 'get_closest_fn_year' ],
55 'args' => [],
56 'permission_callback' => function ( $request ) {
57 return current_user_can( 'erp_ac_view_expense' );
58 },
59 ],
60 ]
61 );
62
63 register_rest_route(
64 $this->namespace,
65 '/' . $this->rest_base . '/next-fn-year',
66 [
67 [
68 'methods' => WP_REST_Server::READABLE,
69 'callback' => [ $this, 'get_next_fn_year' ],
70 'args' => [],
71 'permission_callback' => function ( $request ) {
72 return current_user_can( 'erp_ac_view_expense' );
73 },
74 ],
75 ]
76 );
77 }
78
79 /**
80 * Close balancesheet
81 *
82 * @param WP_REST_Request $request
83 *
84 * @return WP_Error|WP_REST_Response
85 */
86 public function close_balancesheet( $request ) {
87 if ( empty( $request['start_date'] ) ) {
88 return new WP_Error( 'rest_invalid_date', __( 'Start date missing.' ), [ 'status' => 404 ] );
89 }
90
91 if ( empty( $request['end_date'] ) ) {
92 return new WP_Error( 'rest_invalid_date', __( 'End date missing.' ), [ 'status' => 404 ] );
93 }
94
95 $args = [
96 'f_year_id' => (int) $request['f_year_id'],
97 'start_date' => $request['start_date'],
98 'end_date' => $request['end_date'],
99 ];
100
101 $data = erp_acct_clsbl_close_balance_sheet_now( $args );
102 $response = rest_ensure_response( $data );
103
104 $response->set_status( 200 );
105
106 return $response;
107 }
108
109 /**
110 * Get next financial year
111 *
112 * @param WP_REST_Request $request
113 *
114 * @return WP_Error|WP_REST_Response
115 */
116 public function get_next_fn_year( $request ) {
117 if ( empty( $request['date'] ) ) {
118 return new WP_Error( 'rest_invalid_date', __( 'Invalid resource date.' ), [ 'status' => 404 ] );
119 }
120
121 $data = erp_acct_clsbl_get_closest_next_fn_year( $request['date'] );
122 $response = rest_ensure_response( $data );
123
124 $response->set_status( 200 );
125
126 return $response;
127 }
128
129 /**
130 * Get current financial year
131 *
132 * @param WP_REST_Request $request
133 *
134 * @return WP_Error|WP_REST_Response
135 */
136 public function get_closest_fn_year( $request ) {
137 $data = erp_acct_get_closest_fn_year_date( date( 'Y-m-d' ) );
138 $response = rest_ensure_response( $data );
139
140 $response->set_status( 200 );
141
142 return $response;
143 }
144 }
145