سیستم مدیریت بسته‌ها در هاب لجستیک، نقش حیاتی در بهبود فرآیندهای حمل و نقل، ردیابی، و مدیریت موجودی دارد. این سیستم، به ویژه در بسترهای فناوری اطلاعات، باید قابلیت‌های متعددی از جمله ثبت بسته‌ها، پیگیری وضعیت، مدیریت مسیر، و ارتباط با بخش‌های مختلف زنجیره تأمین را دارا باشد. در این مقاله، قصد دارم به صورت کامل و جامع، نمونه‌ای از اسکریپت سیستم مدیریت بسته‌ها را در زبان برنامه‌نویسی PHP و با استفاده از پایگاه داده SQLite ارائه دهم و شرح دهم که چگونه این سیستم می‌تواند طراحی و پیاده‌سازی شود.


مقدمات و نیازمندی‌ها




در ابتدا، باید بدانیم که برای ساخت چنین سیستمی، نیازمند چند مؤلفه مهم هستیم. نخست، زبان برنامه‌نویسی PHP، که به دلیل سادگی، قدرت، و پشتیبانی گسترده، برای توسعه وب‌سایت‌ها و سیستم‌های مدیریت بسیار مناسب است. دوم، پایگاه داده SQLite، که به دلیل سبک بودن، سهولت در راه‌اندازی، و عدم نیاز به نصب سرور جداگانه، در پروژه‌های کوچک و متوسط بسیار کارآمد است. این ترکیب، راه‌حلی سریع و کم‌هزینه را فراهم می‌کند که می‌تواند در پروژه‌های واقعی، به عنوان نمونه‌ای عملی، مورد استفاده قرار گیرد.

طراحی ساختار دیتابیس SQLite




در ابتدا، باید ساختار دیتابیس را طراحی کنیم. فرض کنیم، جدولی به نام `packages` داریم که شامل فیلدهای زیر است:
- `id`: کلید اصلی، شناسه یکتا برای هر بسته.

- `tracking_number`: شماره رهگیری منحصر به فرد.

- `sender`: نام فرستنده.

- `recipient`: نام گیرنده.

- `origin`: مبدا ارسال.

- `destination`: مقصد.

- `status`: وضعیت فعلی بسته (مانند در حال حمل، تحویل شده، در انبار).

- `created_at`: تاریخ و زمان ثبت بسته.

- `updated_at`: تاریخ و زمان آخرین بروزرسانی وضعیت.
نمونه کد SQL برای ایجاد این جدول در SQLite:
sql  

CREATE TABLE packages (

id INTEGER PRIMARY KEY AUTOINCREMENT,

tracking_number TEXT UNIQUE,

sender TEXT,

recipient TEXT,

origin TEXT,

destination TEXT,

status TEXT,

created_at TEXT DEFAULT CURRENT_TIMESTAMP,

updated_at TEXT DEFAULT CURRENT_TIMESTAMP

);


ساختار فایل‌های پروژه




برای سازماندهی، توصیه می‌شود فایل‌های PHP را در قالب‌های مختلف قرار دهیم:
- `db.php`: فایل برای اتصال به پایگاه داده.

- `create.php`: فرم ثبت بسته جدید.

- `list.php`: فهرست بسته‌ها و مدیریت آنها.

- `update.php`: بروزرسانی وضعیت بسته.

- `delete.php`: حذف بسته‌ها.

- `index.php`: صفحه اصلی و راهنمای سیستم.

کد PHP برای اتصال به دیتابیس




در فایل `db.php`، باید اتصال به پایگاه داده SQLite برقرار شود:
php  

<?php

try {

$db = new PDO('sqlite:packages.db');

// تنظیم حالت خطای PDO به حالت استثنا

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

die("خطا در اتصال به پایگاه داده: " . $e->getMessage());

}

?>


این کد، اتصال پایدار و امنی را فراهم می‌کند، و هر خطایی در اتصال، به صورت واضح نشان داده می‌شود.

ثبت بسته جدید




در فایل `create.php`، یک فرم برای وارد کردن اطلاعات بسته طراحی می‌شود، و پس از ارسال، این اطلاعات در دیتابیس ذخیره می‌شود. نمونه کد:
php  

<?php

require 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$tracking_number = $_POST['tracking_number'];

$sender = $_POST['sender'];

$recipient = $_POST['recipient'];

$origin = $_POST['origin'];

$destination = $_POST['destination'];

$status = 'در حال حمل';
$stmt = $db->prepare("INSERT INTO packages (tracking_number, sender, recipient, origin, destination, status) VALUES (?, ?, ?, ?, ?, ?)");

try {

$stmt->execute([$tracking_number, $sender, $recipient, $origin, $destination, $status]);

echo "بسته با موفقیت ثبت شد.";

} catch (PDOException $e) {

echo "خطا در ثبت بسته: " . $e->getMessage();

}

}

?>
<!-- فرم HTML -->

<form method="POST" action="">

شماره رهگیری: <input type="text" name="tracking_number" required><br>

فرستنده: <input type="text" name="sender" required><br>

گیرنده: <input type="text" name="recipient" required><br>

مبدا: <input type="text" name="origin" required><br>

مقصد: <input type="text" name="destination" required><br>

<button type="submit">ثبت بسته</button>

</form>


در این بخش، پس از پر کردن فرم، اطلاعات به پایگاه داده وارد می‌شود و پیام موفقیت یا خطا نمایش داده می‌شود.

نمایش لیست بسته‌ها




در فایل `list.php`، باید لیستی از بسته‌ها نمایش داده شود، و امکان ویرایش یا حذف هر کدام فراهم گردد. نمونه کد:
php  

<?php

requir... ← ادامه مطلب در magicfile.ir