ساخت سیستم صدور فاکتور با php و mysql

  • آپدیت شده در تاریخ

ساخت سیستم صدور فاکتور با php و mysql

در این آموزش قصد داریم به شما نحوه ساخت سیستم صدور فاکتور با php و mysql را در صورت نیاز برای خدماتی که ارایه می دهیم یا محصولی که می فروشیم ، بسازیم و در اختیار مشتری قرار بدیم .

در اسکریپت php صدور فاکتور ، ما قصد داریم قابلیت های زیر را پیاده سازی کنیم . برای صدور فاکتور با php و mysql باید مشتریان و محصولاتی داشته باشیم تا بتوانیم این فرایند را پیاده سازی کنیم . ساخت سیستم صدور فاکتور برای توسعه دهنده هایی که تازه با php قصد توسعه و ساخت همچنین سیستمی دارند ، می توانید کمی سخت باشد .

اما نگران نباشید در این آموزش در ۶ قدم نحوه ساخت سیستم صدور فاکتور با php را پیش خواهیم رفت .

عملیات CRUD برای مشتریان

حتما با عملیات CRUD که مربوط به دیتابیس است ، آشنا هستید . (برای دیدن نحوه کار با دیتابیس mysql در php این مقاله را بخوانید) . مشتریان پایه اصلی هر کسب و کار مبتنی بر سیستم صورتحساب و صدور فاکتور هستند . باید هر فاکتور را به یک مشتری خاص نسبت بدیم . بنابراین ، بعدا مدیر فروش می تواند هر یک از فاکتور ها را به راحتی بررسی کند . در مورد قسمت مشتریان شما کافی است که با روش هایی که در مقاله اتصال به دیتابیس mysql با php فایل یا کلاس های مربوطه به هر کدام از عملیات را انجام بدید . بنابراین فقط روش پیاده سازی آن را در اختیارتان قرار می دم.

باید ۴ تا فایل برای هر یک از قسمت های مربوط به عملیات CRUD مشتریان را  بسازید که به صورت زیر است :

  • Addcustomers.php برای افزودن مشتری جدید – عملیات ایجاد (Create)
  • Customers.php برای دیدن همه مشتری ها –  عملیات خواندن (Read)
  • Editcustomers.php  برای ویرایش و بروزرسانی مشخصات مشتریان – عملیات بروزرسانی (Update)
  • Delcustomers.php برای حذف مشتریان به همراه مشخصات آنها – عملیات حذف (delete)

اگر با نحوه ساخت عملیات CRUD آشنا نیستید مقاله آموزشی زیر را بخوانید.

  1. اتصال به دیتابیس mysql در php – عملیات CRUD
  2. اتصال به دیتابیس mysql با pdo در php

با خواندن مقالات بالا به راحتی می توانید تمام بخش های مربوط به مشتریان را با عملیات CRUD پیاده سازی کنید . اما ، قبل از شروع باید شکل کلی جدول customers را طراحی کنید . جدول customers را با ستون (column) های زیر در phpmyadmin ایجاد کنید .

  • ID – نوع عددی (integer) و autoincreement
  • FirstName – نوع varchar و برای ذخیره اسم مشتری استفاده می شود
  • LastName – نوع varchar و برای ذخیره فامیلی مشتری استفاده می شود .
  • DOB – نوع date برای ذخیره تاریخ تولد کمشتری استفاده کنید
  • Email – نوع varchar و unique . برای ذخیره ایمیل مشتری که بعدا برای ارسال فاکتور استفاده می کنیم .
  • Mobile – نوع varchar و unique – برای ذخیره شماره موبایل کاربر که بعد می توانید از سیستم ارسال پیامک برای اطلاع رسانی استفاده کنید
  • Address – نوع varchar که برای ذخیره آدرس مشتری استفاده می کنیم .
  • City – نوع varchar . برای ذخیره شهر محل سکونت مشتری
  • State – نوع varchar . برای ذخیره استان محل سکونت مشتری
  • Zip – نوع varchar . برای ذخیره کدپستی مشتری استفاده می کنیم .
  • Country – نوع varchar . اگر مشتری های شما داخلی هستند و بین المللی کار نمی کنید ، می توانید این مورد رو پیش فرض ایران قرار بدید یا اینکه این ستون را ایجاد نکنید.

عملیات CRUD برای محصولات و خدمات

در این قسمت از آموزش ساخت سیستم صدور فاکتور با php و mysql ، اگر مراحل بالا که فقط بر عهده خودتان بود انجام دادید ، می توانید این مرحله را پیش برید . این مرحله نیز مربوط به عملیات مربوط به دیتابیس CRUD است .

۴ فایل برای قسمت products و services نیاز دارید . بسته به نیاز خود که آیا خدماتی ارایه می دهید یا محصولی را برای فروش دارید می توانید تنها یکی از آنها را ایجاد کنید.

  • Addproducts.php/addservices.php – عملیات ایجاد (Create)
  • Products.php/services.php – عملیات خواندن (Read)
  • Editproduct.php/editservice.php – عملیات بروزرسانی (Update)
  • Delproduct.php/delservice.php – عملیات حذف (delete)

عملیات CRUD برای محصولات/خدمات بر اساس ستون های زیر برای جدول products/services اجرا می شود.

  • ID – نوع عددی (integer) و autoincreement
  • Name– نوع varchar و برای ذخیره اسم محصول و یا خدمات
  • Description – نوع varchar و برای ذخیره توضیحات مربوط به محصول یا خدمات
  • Stock – نوع varchar و برای ذخیره موجودی محصولات استفاده می شود . این فیلد برای جدول محصولات وجود ندارد .
  • Cost – نوع varchar و برای ذخیره قیمت محصول یا خدمات استفاده می شود .

ساختار جدول برای صورتحساب و فاکتور ها

امیدوارم دو مرحله قبل برای ساخت سیستم صدور فاکتور با php و mysql پیش رفته باشید . پس از ساخت ۲ جدول بالا ، حالا باید دو جدول دیگر برای ذخیره فاکتور ها و محصولات/خدمات فاکتور بسازید

ساخت جدول invoice با ستون های زیر :

  1. ID یک مقدار عددی و autoincreement است .
  2. UserID یک مقدار عددی برای ذخیره id مشتریان است .
  3. Amount – نوع varchar و برای ذخیره قیمت کل فاکتور است .
  4. PaymentMode – نوع varchar و برای ذخیره نوع پرداخت (پرداخت آفلاین – چک – پرداخت آنلاین ) است.
  5. Timestamp – نوع datetime برای ذخیره تاریخ ایجاد فاکتور به صورت تام استپ است .

ساخت جدول invoice_itmes با ستون های زیر :

  1. ID – نوع عددی و autoincreement
  2. InvoiceID – نوع عددی و برای ذخیره id فاکتور از جدول invoice استفاده می شود .
  3. itemID – نوع عددی و برای ذخیره مقدار id محصول که در جدول products تعریف شده ، استفاده می شود.
  4. Price – نوع varchar و برای ذخیره مبلغ محصول یا خدمات مربوط به فاکتور مورد نظر استفاده می شود .

بعد از ساخت جداول بالا، حالا می توانیم به مرحله بعد ساخت سیستم صدور فاکتور با php برویم .

ساخت صفحه HTML فاکتور

در این مرحله قصد داریم صفحه صدور فاکتور را بسازیم . بنابراین با استفاده از فریمورک bootstrap یک جدول HTML برای نمایش فاکتور می سازیم . ولی در این کد من فقط برای ساخت فاکتور استفاده می کنم . شما می توانید از آن برای نمایش و پرینت فاکتور ها نیز بهره ببرید .

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

جستجوی محصولات و افزودن به فاکتور

قبل از جستجو ، باید اطلاعات مربوط به کاربر را به صفحه php فاکتور از طریق URL ارسال کنیم . رشته موردنظر url می تواند id یا شماره موبایل و یا ایمیل مشتری باشد .

اگر پروفایل کاربر با اطلاعاتی که از طریق url ارسال می شود ، وجود داشته باشد ، فیلد جستجوی محصولات / خدمات را نمایش می دهیم . با استفاده از این فیلد کاربران می توانند محصول یا خدمات مورد نظر را جستجو و به فاکتور مورد نظر اضافه کنند .

برای قسمت جستوی محصولات / خدمات از ajax استفاده می کنیم .

کد زیر را به بالای قسمت html فاکتور اضافه کنید . این یک کد ساده برای جستجوی محصولات با تابع onkeypress است . قبل از لود این صفحه در مرورگر ، اطمینان حاصل کنید که هب دیتابیس وصل شده اید . اگر هرگونه مشکلی در اتصال به دیتابیس mysql با php داشتید ، مقاله مورد نظر را مطالعه کنید.

تابع ajaxی که بر اساس متن ورودی فیلد مورد نظر بالا جستجو می کند به صورت زیر است . این کد های را در بین دو تگ script قرار بدید .

در کد بالا ، من درخواست را به فایل ajax.php می فرستم و از فایل ajax.php برای جستجوی محصولات استفاده می کنم . فایل ajax.php را با کد های زیر بسازید . در این فایل حتما فایل مربوط به کانکشن دیتابیس را فراخوانی کنید ، چونکه برای جستجو به آن نیاز داریم .

مقدار مشخصه id را در تگ tr کد زیر تغییر بدید. این کد مقدار id محصول را از url دریافت و اطلاعات محصول را از دیتابیس fetch می کنیم و در تگ tr نمایش می دهیم .

صدور فاکتور

قبل از صدور فاکتور ، باید همه مقدار داخل فرم را با متد POST پاس بدیم . این فرم را به قسمتی که قصد انتخاب روش پرداخت را داریم ، اضافه می کنیم .و همچنین مقدار مبلغ کل را محاصبه و در یک فیلد مخفی زیر فیلد ذخیره می کنیم .

بعد از submit فرم بالا ، یک کوئری sql برای insert فاکتور همراه با userid ، مبلغ کل فاکتور و روش پرداخت می نویسیم . بعد از موفقیت آمیز بودن عملیات insert ، id اخرین سطر درج شده را دریافت و یک کویری sql دیگر برای ذخیره تمام محصولات فاکتور خرید در جدول invoice_item همراه با id فاکتور ، id محصول و قیمت محصول ایجاد می کنیم . که این کار رو هم به خود شما می سپارم .

جمع بندی ساخت سیستم صدور فاکتور با php و mysql

زمانی که قصد نمایش فاکتور را داریم ، اول از همه مقدار تمام ستون های invoice را بر اساس id آن دریافت می کنیم که شامل تاریخ ، مقدار کل و id مشتری است . بر اساس id مشتری ، تمام مشخصال مشتری را از جدول customers خوانده و در فاکتور نمایش میدهیم .

سپس لیست محصولات را بر اساس id فاکتور از جدول invoice_item می خوانیم . بر اساس id تمام محصولات را از جدول products ، fetch کرده و نام محصول را نمایش می دهیم .

امیدوارم از آموزش ساخت سیستم صدور فاکتور با php و mysql نهایت استفاده رو برده باشید . سعی کردم سناریوی انجام پیاده سازی این سیستم را همراه با کد ها php و js مورد نظر به شما نمایش دهم . همچنین بهتره رو امنیت این کدها کار کنید و ورودی های کاربر را با توابع intval , htmlentities , strip_tags , filter_var پاکسازی و اعتبار سنجی کنید که قبلا در مقاله اعتبارسنجی فرم ها در php به طور کامل در مورد امنیت ورودی های کاربر صحبت کردیم .

هر مشکلی در پیاده سازی این پروژه داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۸)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. آتیلا ۶ مهر ۱۴۰۳

    سلام مهندس میشه لطفا سورس این آموزش رو قرار بدید؟

    پاسخ
    1. حسن شفیعی ۷ مهر ۱۴۰۳

      سلام. این به تنهایی قابل استفاده نیست حتما باید در پروژه خودتون استفاده کنید که به ترتیب کدهاش مشخصه که اول ظاهر و فرم ها ساخته میشه بعد هندل کردن درخواست ها با کد php

      پاسخ
  2. Reza ۳ خرداد ۱۳۹۹

    سلام اگه بتونی فیلم هم ازمطالب بالا تهیه کنید.توصیحتون کامل میشه

    پاسخ
    1. حسن شفیعی ۳ خرداد ۱۳۹۹

      سلام. ممنون از توجه شما.
      انشالا بتونیم به ترتیب اولویت ویدیو هم به مطالب اضافه کنیم.

      پاسخ
  3. عرفان زیده سرایی ۱ تیر ۱۳۹۷

    دوست عزیز لطفا سورس کد این پروژه رو پیوست کنید.
    سپاس.

    پاسخ
    1. حسن شفیعی ۱ تیر ۱۳۹۷

      سلام . سورس ربات رو میتونید مطابق آموزش بسازید و استفاده کنید.
      موفق باشید.

      پاسخ
      1. عرفان زیده سرایی ۱ تیر ۱۳۹۷

        عزیزم انجام دادم اما به مشکل بر خوردم واسه همین سورس رو میخواستم.

        پاسخ
      2. حسن شفیعی ۱ تیر ۱۳۹۷

        به چه مشکلی برخوردید . لطفا خطای مورد نظر یا فایل پروژه رو قرار بدید تا بررسی و حل بشه .

        پاسخ
دوره های آموزشی