encapsulate Barcode Operations [OOP]
This commit is contained in:
@@ -1,30 +1,7 @@
|
||||
<?php
|
||||
session_start();
|
||||
require '../../../assets/utils/db_auth.php';
|
||||
|
||||
function validateLocation(PDO $pdo, int $company_id, int $warehouse_id, string $zone, string $aisle, string $rack): void {
|
||||
$sth = $pdo->prepare(
|
||||
"SELECT 1 FROM md_rack
|
||||
WHERE company_id = :company_id
|
||||
AND warehouse = :warehouse
|
||||
AND zone = :zone
|
||||
AND aisle = :aisle
|
||||
AND rack = :rack
|
||||
LIMIT 1"
|
||||
);
|
||||
$sth->execute([
|
||||
':company_id' => $company_id,
|
||||
':warehouse' => $warehouse_id,
|
||||
':zone' => $zone,
|
||||
':aisle' => $aisle,
|
||||
':rack' => $rack,
|
||||
]);
|
||||
if (!$sth->fetchColumn()) {
|
||||
$answer = ['success' => 0, 'message' => 'Location not found.'];
|
||||
http_response_code(404);
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
}
|
||||
require '../../../assets/utils/classes/BarcodeManager.php';
|
||||
|
||||
$label_action = $data['label_action'] ?? 'create';
|
||||
$barcode = trim($data['barcode'] ?? '');
|
||||
@@ -37,17 +14,11 @@
|
||||
require_role($user_role, ['owner', 'admin', 'staff']);
|
||||
}
|
||||
|
||||
if ($label_action === 'list') {
|
||||
$sth = $pdo2->prepare(
|
||||
"SELECT barcode, warehouse_id, zone, aisle, rack, status, print_count, last_printed_dt
|
||||
FROM md_barcode
|
||||
WHERE company_id = :company_id
|
||||
AND barcode_type = 'loc'"
|
||||
);
|
||||
$sth->execute([':company_id' => $company_id]);
|
||||
$bm = new BarcodeManager($pdo2, $company_id);
|
||||
|
||||
if ($label_action === 'list') {
|
||||
$answer['success'] = 1;
|
||||
$answer['output'] = $sth->fetchAll(PDO::FETCH_ASSOC);
|
||||
$answer['output'] = $bm->listLocationLabels();
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
|
||||
@@ -57,18 +28,7 @@
|
||||
http_response_code(400);
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
|
||||
$sth = $pdo2->prepare(
|
||||
"UPDATE md_barcode
|
||||
SET print_count = print_count + 1,
|
||||
last_printed_dt = NOW()
|
||||
WHERE company_id = :company_id
|
||||
AND barcode = :barcode
|
||||
AND barcode_type = 'loc'
|
||||
AND status = 1"
|
||||
);
|
||||
$sth->execute([':company_id' => $company_id, ':barcode' => $barcode]);
|
||||
|
||||
$bm->recordPrint($barcode, 'loc');
|
||||
$answer['success'] = 1;
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
@@ -79,17 +39,7 @@
|
||||
http_response_code(400);
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
|
||||
$sth = $pdo2->prepare(
|
||||
"UPDATE md_barcode
|
||||
SET status = 0
|
||||
WHERE company_id = :company_id
|
||||
AND barcode = :barcode
|
||||
AND barcode_type = 'loc'
|
||||
AND status = 1"
|
||||
);
|
||||
$sth->execute([':company_id' => $company_id, ':barcode' => $barcode]);
|
||||
|
||||
$bm->setStatus($barcode, 'loc', 0);
|
||||
$answer['success'] = 1;
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
@@ -100,58 +50,26 @@
|
||||
http_response_code(400);
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
|
||||
$sth = $pdo2->prepare(
|
||||
"UPDATE md_barcode
|
||||
SET status = 1
|
||||
WHERE company_id = :company_id
|
||||
AND barcode = :barcode
|
||||
AND barcode_type = 'loc'
|
||||
AND status <> 1"
|
||||
);
|
||||
$sth->execute([':company_id' => $company_id, ':barcode' => $barcode]);
|
||||
|
||||
$bm->setStatus($barcode, 'loc', 1);
|
||||
$answer['success'] = 1;
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
|
||||
// Default: create
|
||||
if ($barcode === '' || !$warehouse_id || $zone === '' || $aisle === '' || $rack === '') {
|
||||
$answer['message'] = 'Location barcode data is incomplete.';
|
||||
http_response_code(400);
|
||||
exit(json_encode($answer));
|
||||
}
|
||||
|
||||
validateLocation($pdo2, $company_id, $warehouse_id, $zone, $aisle, $rack);
|
||||
try {
|
||||
$output = $bm->createLocationLabel($barcode, $warehouse_id, $zone, $aisle, $rack);
|
||||
$answer['success'] = 1;
|
||||
$answer['output'] = $output;
|
||||
} catch (Exception $e) {
|
||||
$answer['message'] = $e->getMessage();
|
||||
http_response_code($e->getMessage() === 'Location not found.' ? 404 : 400);
|
||||
}
|
||||
|
||||
$sth = $pdo2->prepare(
|
||||
"INSERT INTO md_barcode
|
||||
(company_id, barcode_type, barcode, warehouse_id, zone, aisle, rack)
|
||||
VALUES
|
||||
(:company_id, 'loc', :barcode, :warehouse_id, :zone, :aisle, :rack)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
barcode_type = VALUES(barcode_type),
|
||||
warehouse_id = VALUES(warehouse_id),
|
||||
zone = VALUES(zone),
|
||||
aisle = VALUES(aisle),
|
||||
rack = VALUES(rack),
|
||||
status = 1"
|
||||
);
|
||||
$sth->execute([
|
||||
':company_id' => $company_id,
|
||||
':barcode' => $barcode,
|
||||
':warehouse_id' => $warehouse_id,
|
||||
':zone' => $zone,
|
||||
':aisle' => $aisle,
|
||||
':rack' => $rack,
|
||||
]);
|
||||
|
||||
$answer['success'] = 1;
|
||||
$answer['output'] = [
|
||||
'barcode' => $barcode,
|
||||
'warehouse_id' => $warehouse_id,
|
||||
'zone' => $zone,
|
||||
'aisle' => $aisle,
|
||||
'rack' => $rack,
|
||||
];
|
||||
exit(json_encode($answer));
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user