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)); } } $label_action = $data['label_action'] ?? 'create'; $barcode = trim($data['barcode'] ?? ''); $warehouse_id = (int)($data['warehouse_id'] ?? 0); $zone = trim($data['zone'] ?? ''); $aisle = trim($data['aisle'] ?? ''); $rack = trim($data['rack'] ?? ''); 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]); $answer['success'] = 1; $answer['output'] = $sth->fetchAll(PDO::FETCH_ASSOC); exit(json_encode($answer)); } if ($label_action === 'print') { if ($barcode === '') { $answer['message'] = 'No barcode provided.'; 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]); $answer['success'] = 1; exit(json_encode($answer)); } if ($label_action === 'disable') { if ($barcode === '') { $answer['message'] = 'No barcode provided.'; 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]); $answer['success'] = 1; exit(json_encode($answer)); } if ($label_action === 'enable') { if ($barcode === '') { $answer['message'] = 'No barcode provided.'; 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]); $answer['success'] = 1; exit(json_encode($answer)); } 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); $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)); ?>