مهرداد
3 سال پیش توسط مهرداد مطرح شد
0 پاسخ

باگ تخفیف عمومی برای دسته بندی خاص

سلام دوستان عزیز من وقتی برای دسته بندی خاص تخفیف در نظر میگیرم بدرستی تخفیف اعمال میشه و قیمت اپدیت میشه وقتی مثلا سه تا محصول به سبد خریدم اضافه میکنم که دوتا از این سه تا تخفیف خوردن قیمت مجموع بدون احتساب تخفیف بدرستی جمع میشه و میره میشنه توی فیلد total_price جدول کارت اما باگ مربوطه اینجاست که جمع قیمت ها پس از اعمال تخفیف بدرستی انجام نمیشه توی کد که قرار میدم فورایچ بخش دوم عملیات جمع قیمت با احتساب تخفیفبدرستی انجام نمیشه
و جمع قیمت ها پس از اعمال تخفیف هم باید بره توی فیلد final_price تو جدول کارت
جدول تخفیف من به صورت مورف چند به چند هست که به مدل های یوزر- کورس- کتگوری مربوط میشه توی ویدیو رکورد گرفتم مشکل رو ممنون میشم ملاحضه بفرمایید مشکل کارمو بگید
لینک ویدیو

این جدول کارت

        Schema::create('carts', function (Blueprint $table) {
            $table->id();
            $table->foreignId('user_id')->constrained('users')->cascadeOnDelete();
            $table->foreignId('coupon_id')->nullable()->constrained('coupons')->cascadeOnDelete();
            $table->string('status');
            $table->integer('total_price')->default(0);
            $table->integer('final_price')->default(0);
            $table->dateTime('expired_at');
            $table->timestamps();
        });

        Schema::create('cart_course', function (Blueprint $table) {

            $table->foreignId('cart_id')->constrained('carts')->cascadeOnDelete();
            $table->foreignId('course_id')->constrained('courses')->cascadeOnDelete();
        });

اینم جدول کوپن

    public function up()
    {
        Schema::create('coupons', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('code')->unique();
            $table->integer('percent');
            $table->bigInteger('limit')->nullable();
            $table->boolean('is_general')->default(0)->nullable();
            $table->unsignedInteger('quantity')->nullable();
            $table->enum('type'  , ['fixed' , 'percent'])->nullable();
            $table->enum('status'  , ['enable' , 'disable'])->default('disable');
            $table->text('description')->nullable();
            $table->dateTime('start_at');
            $table->dateTime('expired_at');
            $table->timestamps();
        });

        Schema::create('couponables', function (Blueprint $table) {
            $table->foreignId('coupon_id')->constrained('coupons')->cascadeOnDelete();
            $table->integer('couponable_id');
            $table->string('couponable_type');
        });

        Schema::create('coupon_used', function (Blueprint $table) {
            $table->foreignId('coupon_id')->constrained('coupons')->cascadeOnDelete();
            $table->foreignId('user_id')->constrained('users')->cascadeOnDelete();
        });
    }

مدل کورس ها عملیات مربوط به تخفیف دسته بندی

 public function getPriceAfterApplyCoupon()
    {
        foreach ($this->categories as $category) {
            $coupons = $category->validCoupons();
            if ($coupons->isNotEmpty()) {
                $amount = $this->price;
                $discount = ($amount * $coupons[0]->percent) / 100;
                $total = $amount - $discount;
                foreach ($this->carts as  $cart) {
                    $cart->coupon_id = $coupons[0]->id;
                    $final = (collect($amount)->sum() * $coupons[0]->percent) / 100;
                    $test = $cart->total_price - $final;
                    $cart->final_price  = $test;
                    $cart->save();
                }
                return number_format($total);
            }
        }

        return $this->price;
    }

خواهش میکنم ویدیو رو حتما ببینید متوجه مشکل بشید باگ مربوط به جمع قیمت ها با احتساب تخفیف هستش
@Rp76
@ali.bayat
@mhyeganeh


ثبت پرسش جدید

به همدیگه کمک کنیم

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

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام