[OOP] contact,inventory,ics,dashboard

This commit is contained in:
Thanakorn S
2026-04-28 15:44:57 +07:00
parent 3d3b497c08
commit 2061624641
49 changed files with 1946 additions and 2146 deletions
+5 -15
View File
@@ -1,20 +1,10 @@
<?php
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php';
$sql = "SELECT *
FROM md_contact
WHERE
company_id = :company_id ";
$sth = $pdo2->prepare($sql);
$sth->execute([
":company_id" => $company_id
]);
db_check($sth, $answer);
$answer["output"] = $sth->fetchAll(PDO::FETCH_ASSOC);
$answer["success"] = 1;
$contact = new ContactManager($pdo2, $company_id);
$answer['output'] = $contact->getContactList();
$answer['success'] = 1;
exit(json_encode($answer));
?>
+5 -15
View File
@@ -1,20 +1,10 @@
<?php
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php';
$sql = "SELECT *
FROM md_contact_type
WHERE
company_id = :company_id ";
$sth = $pdo2->prepare($sql);
$sth->execute([
":company_id" => $company_id
]);
db_check($sth, $answer);
$answer["output"] = $sth->fetchAll(PDO::FETCH_ASSOC);
$answer["success"] = 1;
$contact = new ContactManager($pdo2, $company_id);
$answer['output'] = $contact->getContactTypeList();
$answer['success'] = 1;
exit(json_encode($answer));
?>
+14 -71
View File
@@ -1,106 +1,49 @@
<?php
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/FileUploader.php';
require '../../../assets/utils/classes/ContactManager.php';
$id = (int)$data['id'];
try {
/** 1. FILE HANDLING **/
$uploader = new FileUploader($include_url . "uploads/contact/");
$uploader = new FileUploader($include_url . 'uploads/contact/');
// Cleanup deleted files
if ($id > 0) {
$sql = "SELECT `contact_image` FROM md_contact WHERE company_id = :company_id AND id = :id";
$sth = $pdo2->prepare($sql);
$sth->execute([":company_id" => $company_id, ":id" => $id]);
$sth->execute([':company_id' => $company_id, ':id' => $id]);
$uploader->cleanup($sth->fetchColumn(), $data['keep_files'] ?? '');
}
// Upload new files
$errors = $uploader->upload('contact_image');
if (!empty($errors)) {
$answer["success"] = 0;
$answer["message"] = $errors[0];
$answer['success'] = 0;
$answer['message'] = $errors[0];
exit(json_encode($answer));
}
$db_image_string = $uploader->buildFileString($data['keep_files'] ?? '');
/** 2. DATABASE **/
dbTransaction($pdo2, function($pdo) use ($data, $company_id, $logging, $id, $db_image_string) {
$sql = "SELECT `log` FROM md_contact
WHERE company_id = :company_id AND id = :id";
$sth = $pdo->prepare($sql);
$sth->execute([
":company_id" => $company_id,
":id" => $id
]);
$table_log = json_decode($sth->fetchColumn() ?: '[]', true);
if (!is_array($table_log)) $table_log = [];
$table_log[] = $logging;
$params = [
":company_id" => $company_id,
":contact_name" => $data["contact_name"],
":tax_id" => $data["tax_id"],
":organization" => $data["organization"],
":branch" => $data["branch"],
":contact_type" => (int)$data["contact_type"],
":billing_address" => $data["billing_address"],
":shipping_location"=> $data["shipping_location"],
":shipping_address" => $data["shipping_address"],
":remark" => $data["remark"],
":contact_image" => $db_image_string,
":status" => (int)$data["status"],
":log" => json_encode($table_log),
];
if ($id > 0) {
$sql = "UPDATE md_contact SET
`contact_name` = :contact_name,
`tax_id` = :tax_id,
`organization` = :organization,
`branch` = :branch,
`contact_type` = :contact_type,
`billing_address` = :billing_address,
`shipping_location` = :shipping_location,
`shipping_address` = :shipping_address,
`remark` = :remark,
`contact_image` = :contact_image,
`status` = :status,
`log` = :log
WHERE id = :id AND company_id = :company_id";
$params[":id"] = $id;
} else {
$sql = "INSERT INTO md_contact
(company_id, contact_name, tax_id, organization, branch, contact_type,
billing_address, shipping_location, shipping_address, remark, contact_image, status, log)
VALUES
(:company_id, :contact_name, :tax_id, :organization, :branch, :contact_type,
:billing_address, :shipping_location, :shipping_address, :remark, :contact_image, :status, :log)";
}
$sth = $pdo->prepare($sql);
$sth->execute($params);
dbTransaction($pdo2, function($pdo) use ($data, $company_id, $logging, $db_image_string) {
$contact = new ContactManager($pdo, $company_id);
$contact->saveContact($data, $logging, $db_image_string);
});
$answer["success"] = 1;
$answer['success'] = 1;
} catch (PDOException $e) {
// DB failed — rollback uploaded files
if (isset($uploader)) $uploader->rollbackUploads();
$answer["success"] = 0;
$answer["message"] = "Database error, please try again";
$answer['success'] = 0;
$answer['message'] = 'Database error, please try again';
http_response_code(500);
} catch (Exception $e) {
if (isset($uploader)) $uploader->rollbackUploads();
$answer["success"] = 0;
$answer["message"] = $e->getMessage();
$answer['success'] = 0;
$answer['message'] = $e->getMessage();
http_response_code(400);
}
+9 -51
View File
@@ -1,66 +1,24 @@
<?php
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php';
try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id, $logging) {
$id = (int)$data['id'];
$sql = "SELECT `log` FROM md_contact_type
WHERE company_id = :company_id AND id = :id";
$sth = $pdo->prepare($sql);
$sth->execute([
":company_id" => $company_id,
":id" => $id
]);
$table_log = json_decode($sth->fetchColumn() ?: '[]', true);
if (!is_array($table_log)) $table_log = [];
$table_log[] = $logging;
$params = [
":company_id" => $company_id,
":contact_type" => $data["contact_type"],
":description" => $data["description"],
":status" => (int)$data["status"],
":log" => json_encode($table_log),
];
if ($id > 0) {
$sql = "UPDATE md_contact_type SET
`contact_type` = :contact_type,
`description` = :description,
`status` = :status,
`log` = :log
WHERE id = :id AND company_id = :company_id";
$params[":id"] = $id;
} else {
$sql = "INSERT INTO md_contact_type
(company_id, contact_type, `description`, `status`, `log`)
VALUES
(:company_id, :contact_type, :description, :status, :log)";
}
$sth = $pdo->prepare($sql);
$sth->execute($params);
$contact = new ContactManager($pdo, $company_id);
$contact->saveContactType($data, $logging);
});
$answer["success"] = 1;
$answer['success'] = 1;
} catch (PDOException $e) {
$answer["success"] = 0;
$answer["message"] = "Database error, please try again";
$answer['success'] = 0;
$answer['message'] = 'Database error, please try again';
http_response_code(500);
} catch (Exception $e) {
$answer["success"] = 0;
$answer["message"] = $e->getMessage();
$answer['success'] = 0;
$answer['message'] = $e->getMessage();
http_response_code(400);
}
+6 -23
View File
@@ -1,28 +1,11 @@
<?php
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php';
$id = (int)$data['id'];
$sql = "SELECT *
FROM md_contact
WHERE
company_id = :company_id and
id = :id ";
$sth = $pdo2->prepare($sql);
$sth->execute([
":company_id" => $company_id,
":id" => $id
]);
db_check($sth, $answer);
$target_dir = $include_url."uploads/contact/";
$answer["contact_dir"] = $target_dir;
$answer["output"] = $sth->fetch(PDO::FETCH_ASSOC);
$answer["success"] = 1;
$contact = new ContactManager($pdo2, $company_id);
$answer['contact_dir'] = $include_url . 'uploads/contact/';
$answer['output'] = $contact->getContactById((int)$data['id']);
$answer['success'] = 1;
exit(json_encode($answer));
?>
@@ -1,25 +1,10 @@
<?php
<?php
session_start();
require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php';
$id = (int)$data['id'];
$sql = "SELECT *
FROM md_contact_type
WHERE
company_id = :company_id and
id = :id ";
$sth = $pdo2->prepare($sql);
$sth->execute([
":company_id" => $company_id,
":id" => $id
]);
db_check($sth, $answer);
$answer["output"] = $sth->fetch(PDO::FETCH_ASSOC);
$answer["success"] = 1;
$contact = new ContactManager($pdo2, $company_id);
$answer['output'] = $contact->getContactTypeById((int)$data['id']);
$answer['success'] = 1;
exit(json_encode($answer));
?>