الگوریتم نوشتن کد تخفیف در php

rocki3oy

کاربر عضو
سلام دوستان.

فرض کنید یک سیستم داریم می خوایم کد تخفیف برای این سیستم در نظر بگیریم

به صورتی که زمانی که تاریخ کد تخفیف 25 مهر هست در این تاریخ دیگه کار نکنه.

شما باشید تاریخ 25 مهر رو چطور در دیتابیس دخیره می کنید و با چه دستوری به سیستم می فهمونید که در این تاریخ این کد غیرفعال بشه.

تشکر بابت راهنمایی های شما.

 

MAYRAN

کاربر عضو
درود باید تاریخ بسازید.

1.ابتدا باید یک تقویم مثل لینک زیر داشته باشی.

http://amib.ir/weblog/?page_id=316


بعد از دستور زیر

$short = explode('/','مقدار وارد شده.')


مقدار وارد شده را بر اساس ( / ) جدا کنید سپس می توانید از تابع mktime برای ساخت تاریخ استفاده کنید.

توجه: اگر به خورشیدی تاریخ را ارسال کنید باید از یک تابع mktime برای تاریخ خورشیدی استفاده کنید.

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

if($time_data > time()){
/*کد تخفیف اجرا شود.*/
}else{
/*خطایی برای تاریخ انقضا نمایش داده شود*/
}


سوالی بود بپرسید.

 

rocki3oy

کاربر عضو
با تشکر از پاسخ شما.

دقیقا متوجه شدم که باید چی کار کنم.

فقط یک موردی هست تقویمی که شما لینک دارید به صورت شمسی خروجی میده و دستور mktime به صورت shortime خروجی میده خوب آیا میشه خروجی تاریخ شمسی رو برای mktime استفاده کرد؟

mktime(0,0,0,10,3,1975)

http://www.w3schools.com/php/func_date_mktime.asp


ممنون میشم در مورد این قسمت بیشتر توضیح بدید چون من همیشه مشکل دارم.

چون میشه با تاریخ های میلادی هر کاری کرد ولی الان این تقویم خروجی شمسی میده و من باید به صورت میلادی به mktime بدم اینجا باید چی کار کنم؟

 

MAYRAN

کاربر عضو
درود

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

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

 

Mostafa74

کاربر عضو
تاریخ رو دریافت میکنید بعد با استفاده از jdate تبدیلش کنید به میلادی و بعد تاریخ میلادی رو بصورت timestamp توی دیتابیس سیو کن !

حالا هر بار کد تخفیف وارد شد timestamp همون روز رو با دیتابیس چک کن اگر timestamp اون روز از تاریخ انقضا کمتر بود که تخفیف بده اگرم بزرگ تر بود تخفیف نده به کاربر

به همین راحتی !

 

rocki3oy

کاربر عضو
با سلام و احترام.

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

ممنون میشم یک مورد دیگه هم کمک کنید.

اگر بخواین برای کد تخفیف تعداد مصرف بزاریم به چه صورت می باشد البته من یک توضیح میدم ببینید به همین صورت خوبه.

فرض می کنیم یک کد تخفیف ایجاد کردیم که 10 بار تعداد مصرف داره.

ستون های دیتابیس کد تخفیف به صورت زیر خواهد بود => من ستون هارو فارسی می نویسم که برای درک بیشتر

ستون ها:

کد تخفیف،تاریخ ایجاد،تاریخ انقضا،تعداد مجاز استفاده،تعدادی که تا الان استفاده شده،وضعیت


خوب فرض می کنیم یک کد تخفیف با تعداد 10 بار اجازه استفاده داشته باشه.شما باشید چطور این مورد رو کدنویسی می کنید.

البته به کدها زیاد نیاز ندارم و الگوریتم کار برام مهم.

ما اگر محصولی برای فروش قرار بدیم و یک فردی این کد تخفیف را وارد اگر خرید موفق آمیز بود باید ستون "تعدادی که تا الان استفاده شده" یکی اضافه بشه درسته؟

بازم ممنونم.

 

MahdiY

راهبر انجمن
اول اینکه راهی که گفتید درسته

دوم اینکه توصیه میشه برای هر کد تخفیف یه شناسه یکتا (id) توی جدول بذارید

 

Mostafa74

کاربر عضو
با سلام و احترام.

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

ممنون میشم یک مورد دیگه هم کمک کنید.

اگر بخواین برای کد تخفیف تعداد مصرف بزاریم به چه صورت می باشد البته من یک توضیح میدم ببینید به همین صورت خوبه.

فرض می کنیم یک کد تخفیف ایجاد کردیم که 10 بار تعداد مصرف داره.

ستون های دیتابیس کد تخفیف به صورت زیر خواهد بود => من ستون هارو فارسی می نویسم که برای درک بیشتر

ستون ها:

کد تخفیف،تاریخ ایجاد،تاریخ انقضا،تعداد مجاز استفاده،تعدادی که تا الان استفاده شده،وضعیت


خوب فرض می کنیم یک کد تخفیف با تعداد 10 بار اجازه استفاده داشته باشه.شما باشید چطور این مورد رو کدنویسی می کنید.

البته به کدها زیاد نیاز ندارم و الگوریتم کار برام مهم.

ما اگر محصولی برای فروش قرار بدیم و یک فردی این کد تخفیف را وارد اگر خرید موفق آمیز بود باید ستون "تعدادی که تا الان استفاده شده" یکی اضافه بشه درسته؟

بازم ممنونم.
شما باید قبل اینکه تخفیف اعمال بشه چک کنی چند بار از کد استفاده شده و چند بار مجازه که استفاده بشه اگر تعداد استفاده شده کمتر از تعداد مجاز بود و تاریخ انقضا هم نگذشته بود به کاربر تخفیف میده و بعد از تخفیف تیبل کد تخفیف بروزمیشه ( یک واحد به تعداد استفاده شده ها اضافه میشه )

 
بالا