accounting modules

This commit is contained in:
Thanakorn S
2026-05-13 15:11:24 +07:00
parent 511360faa2
commit 04a683bd02
70 changed files with 4451 additions and 42 deletions
+9
View File
@@ -0,0 +1,9 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/ChartOfAccounts.php';
$coa = new ChartOfAccounts($pdo2, $company_id);
$answer['output'] = $coa->getAll();
$answer['success'] = 1;
exit(json_encode($answer));
@@ -0,0 +1,9 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/ChartOfAccounts.php';
$coa = new ChartOfAccounts($pdo2, $company_id);
$stats = $coa->getStats();
$answer = array_merge(['success' => 1], $stats);
exit(json_encode($answer));
+9
View File
@@ -0,0 +1,9 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/DepartmentManager.php';
$dept = new DepartmentManager($pdo2, $company_id);
$answer['output'] = $dept->getAll();
$answer['success'] = 1;
exit(json_encode($answer));
@@ -0,0 +1,9 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/DepartmentManager.php';
$dept = new DepartmentManager($pdo2, $company_id);
$stats = $dept->getStats();
$answer = array_merge(['success' => 1], $stats);
exit(json_encode($answer));
@@ -0,0 +1,22 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/ChartOfAccounts.php';
if (empty($data['account_code']) || empty($data['account_name']) || empty($data['account_type'])) {
exit(json_encode(['message' => 'Account code, name, and type are required']));
}
$coa = new ChartOfAccounts($pdo2, $company_id);
$id = (int)($data['id'] ?? 0);
if ($id) {
$coa->update($id, $data);
$answer['message'] = 'Account updated';
} else {
$coa->create($data);
$answer['message'] = 'Account created';
}
$answer['success'] = 1;
exit(json_encode($answer));
@@ -0,0 +1,22 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/DepartmentManager.php';
if (empty($data['dept_code']) || empty($data['dept_name'])) {
exit(json_encode(['message' => 'Department code and name are required']));
}
$dept = new DepartmentManager($pdo2, $company_id);
$id = (int)($data['id'] ?? 0);
if ($id) {
$dept->update($id, $data);
$answer['message'] = 'Department updated';
} else {
$dept->create($data);
$answer['message'] = 'Department created';
}
$answer['success'] = 1;
exit(json_encode($answer));
@@ -0,0 +1,40 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/PeriodManager.php';
$pm = new PeriodManager($pdo2, $company_id);
$action = $data['action_type'] ?? '';
if ($action === 'create_year') {
$year = (int)($data['year'] ?? date('Y'));
if ($year < 2000 || $year > 2100) exit(json_encode(['message' => 'Invalid year']));
$pm->createYear($year);
$answer['message'] = "All 12 periods for {$year} created";
} elseif ($action === 'create_single') {
$period = $data['period'] ?? '';
if (!preg_match('/^\d{4}-(0[1-9]|1[0-2])$/', $period)) {
exit(json_encode(['message' => 'Invalid period format (YYYY-MM)']));
}
$pm->create($period);
$answer['message'] = "Period {$period} created";
} elseif ($action === 'open') {
$pm->open((int)($data['id'] ?? 0));
$answer['message'] = 'Period reopened';
} elseif ($action === 'close') {
$pm->close((int)($data['id'] ?? 0));
$answer['message'] = 'Period closed';
} elseif ($action === 'lock') {
$pm->lock((int)($data['id'] ?? 0));
$answer['message'] = 'Period locked';
} else {
exit(json_encode(['message' => 'Unknown action']));
}
$answer['success'] = 1;
exit(json_encode($answer));
+9
View File
@@ -0,0 +1,9 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/PeriodManager.php';
$pm = new PeriodManager($pdo2, $company_id);
$answer['output'] = $pm->getAll();
$answer['success'] = 1;
exit(json_encode($answer));
@@ -0,0 +1,9 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/PeriodManager.php';
$pm = new PeriodManager($pdo2, $company_id);
$stats = $pm->getStats();
$answer = array_merge(['success' => 1], $stats);
exit(json_encode($answer));
@@ -0,0 +1,16 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/ChartOfAccounts.php';
$id = (int)($data['id'] ?? 0);
if (!$id) {
exit(json_encode(['message' => 'Missing id']));
}
$coa = new ChartOfAccounts($pdo2, $company_id);
$coa->delete($id);
$answer['success'] = 1;
$answer['message'] = 'Account removed';
exit(json_encode($answer));
@@ -0,0 +1,14 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/DepartmentManager.php';
$id = (int)($data['id'] ?? 0);
if (!$id) exit(json_encode(['message' => 'Missing id']));
$dept = new DepartmentManager($pdo2, $company_id);
$dept->delete($id);
$answer['success'] = 1;
$answer['message'] = 'Department removed';
exit(json_encode($answer));
@@ -0,0 +1,19 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/ChartOfAccounts.php';
$id = (int)($data['id'] ?? 0);
if (!$id) {
exit(json_encode(['message' => 'Missing id']));
}
$coa = new ChartOfAccounts($pdo2, $company_id);
$row = $coa->getById($id);
if (!$row) {
exit(json_encode(['message' => 'Account not found']));
}
$answer['output'] = $row;
$answer['success'] = 1;
exit(json_encode($answer));
@@ -0,0 +1,15 @@
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes_ac/DepartmentManager.php';
$id = (int)($data['id'] ?? 0);
if (!$id) exit(json_encode(['message' => 'Missing id']));
$dept = new DepartmentManager($pdo2, $company_id);
$row = $dept->getById($id);
if (!$row) exit(json_encode(['message' => 'Department not found']));
$answer['output'] = $row;
$answer['success'] = 1;
exit(json_encode($answer));