From c0c5f42ba1b29109e22d3dd0ae21f1b6a36cce10 Mon Sep 17 00:00:00 2001 From: harshjagad20 Date: Wed, 8 Dec 2021 12:24:25 +0530 Subject: [PATCH 1/4] fix: profit loss report issue --- .../V1/Admin/Report/ProfitLossReportController.php | 9 ++++----- app/Models/Payment.php | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php index d8ff06f1..49fe99d6 100644 --- a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php @@ -7,7 +7,7 @@ use Crater\Http\Controllers\Controller; use Crater\Models\Company; use Crater\Models\CompanySetting; use Crater\Models\Expense; -use Crater\Models\Invoice; +use Crater\Models\Payment; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use PDF; @@ -31,10 +31,9 @@ class ProfitLossReportController extends Controller App::setLocale($locale); - $invoicesAmount = Invoice::whereCompanyId($company->id) + $paymentsAmount = Payment::whereCompanyId($company->id) ->applyFilters($request->only(['from_date', 'to_date'])) - ->wherePaidStatus(Invoice::STATUS_PAID) - ->sum('base_total'); + ->sum('base_amount'); $expenseCategories = Expense::with('category') ->whereCompanyId($company->id) @@ -68,7 +67,7 @@ class ProfitLossReportController extends Controller view()->share([ 'company' => $company, - 'income' => $invoicesAmount, + 'income' => $paymentsAmount, 'expenseCategories' => $expenseCategories, 'totalExpense' => $totalAmount, 'colorSettings' => $colorSettings, diff --git a/app/Models/Payment.php b/app/Models/Payment.php index a3c572ad..559c8eb5 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -312,6 +312,12 @@ class Payment extends Model implements HasMedia $query->whereCustomer($filters->get('customer_id')); } + if ($filters->get('from_date') && $filters->get('to_date')) { + $start = Carbon::createFromFormat('Y-m-d', $filters->get('from_date')); + $end = Carbon::createFromFormat('Y-m-d', $filters->get('to_date')); + $query->paymentsBetween($start, $end); + } + if ($filters->get('orderByField') || $filters->get('orderBy')) { $field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number'; $orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc'; @@ -319,6 +325,14 @@ class Payment extends Model implements HasMedia } } + public function scopePaymentsBetween($query, $start, $end) + { + return $query->whereBetween( + 'payments.payment_date', + [$start->format('Y-m-d'), $end->format('Y-m-d')] + ); + } + public function scopeWhereOrder($query, $orderByField, $orderBy) { $query->orderBy($orderByField, $orderBy); From f139912c5657e5d17b2115bfc8dedf60386362fd Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Wed, 8 Dec 2021 12:47:42 +0530 Subject: [PATCH 2/4] solve migration issue --- ...021_06_28_105334_create_bouncer_tables.php | 24 ++--- ...62411_update_customer_id_in_all_tables.php | 94 ++++++++----------- 2 files changed, 51 insertions(+), 67 deletions(-) diff --git a/database/migrations/2021_06_28_105334_create_bouncer_tables.php b/database/migrations/2021_06_28_105334_create_bouncer_tables.php index dfc4daf7..80b503c0 100644 --- a/database/migrations/2021_06_28_105334_create_bouncer_tables.php +++ b/database/migrations/2021_06_28_105334_create_bouncer_tables.php @@ -15,24 +15,24 @@ class CreateBouncerTables extends Migration */ public function up() { - if (Schema::hasTable('roles')) { - Schema::drop(Models::table('roles')); - } - - if (Schema::hasTable('permissions')) { - Schema::drop(Models::table('permissions')); - } - - if (Schema::hasTable('model_has_permissions')) { - Schema::drop(Models::table('model_has_permissions')); + if (Schema::hasTable('role_has_permissions')) { + Schema::drop(Models::table('role_has_permissions')); } if (Schema::hasTable('model_has_roles')) { Schema::drop(Models::table('model_has_roles')); } - if (Schema::hasTable('role_has_permissions')) { - Schema::drop(Models::table('role_has_permissions')); + if (Schema::hasTable('model_has_permissions')) { + Schema::drop(Models::table('model_has_permissions')); + } + + if (Schema::hasTable('permissions')) { + Schema::drop(Models::table('permissions')); + } + + if (Schema::hasTable('roles')) { + Schema::drop(Models::table('roles')); } Schema::create(Models::table('abilities'), function (Blueprint $table) { diff --git a/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php b/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php index 059a4e02..eabbe753 100644 --- a/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php +++ b/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php @@ -1,7 +1,13 @@ toArray()); - $customFields = CustomField::where('model_type', 'User')->get(); + Address::where('user_id', $user->id)->update([ + 'customer_id' => $newCustomer->id, + 'user_id' => null + ]); - if ($customFields) { - $user->fields->map(function ($customFieldValue) use ($newCustomer) { - $customFieldValue->custom_field_valuable_type = "Crater\Models\Customer"; - $customFieldValue->custom_field_valuable_id = $newCustomer->id; - $customFieldValue->save(); + Expense::where('user_id', $user->id)->update([ + 'customer_id' => $newCustomer->id, + 'user_id' => null + ]); - $customField = $customFieldValue->customField; - $customField->model_type = "Customer"; - $customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_')); - $customField->save(); - }); - } + Estimate::where('user_id', $user->id)->update([ + 'customer_id' => $newCustomer->id, + 'user_id' => null + ]); - if ($user->addresses()->exists()) { - $user->addresses->map(function ($address) use ($newCustomer) { - if ($address) { - $address->customer_id = $newCustomer->id; - $address->user_id = null; - $address->save(); - } - }); - } + Invoice::where('user_id', $user->id)->update([ + 'customer_id' => $newCustomer->id, + 'user_id' => null + ]); - if ($user->expenses()->exists()) { - $user->expenses->map(function ($expense) use ($newCustomer) { - if ($expense) { - $expense->customer_id = $newCustomer->id; - $expense->user_id = null; - $expense->save(); - } - }); - } + Payment::where('user_id', $user->id)->update([ + 'customer_id' => $newCustomer->id, + 'user_id' => null + ]); - if ($user->estimates()->exists()) { - $user->estimates->map(function ($estimate) use ($newCustomer) { - if ($estimate) { - $estimate->customer_id = $newCustomer->id; - $estimate->user_id = null; - $estimate->save(); - } - }); - } + CustomFieldValue::where('custom_field_valuable_id', $user->id) + ->where('custom_field_valuable_type', 'Crater\Models\User') + ->update([ + 'custom_field_valuable_type' => 'Crater\Models\Customer', + 'custom_field_valuable_id' => $newCustomer->id + ]); + } - if ($user->invoices()->exists()) { - $user->invoices->map(function ($invoice) use ($newCustomer) { - if ($invoice) { - $invoice->customer_id = $newCustomer->id; - $invoice->user_id = null; - $invoice->save(); - } - }); - } + $customFields = CustomField::where('model_type', 'User')->get(); - if ($user->payments()->exists()) { - $user->payments->map(function ($payment) use ($newCustomer) { - if ($payment) { - $payment->customer_id = $newCustomer->id; - $payment->save(); - } - }); + if ($customFields) { + foreach ($customFields as $customField) { + $customField->model_type = "Customer"; + $customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_')); + $customField->save(); } } } From 102a3a809d405b837dd9864cc62d9fd33b595487 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Wed, 8 Dec 2021 15:06:29 +0530 Subject: [PATCH 3/4] solve migration issue --- .../2021_06_28_105334_create_bouncer_tables.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/database/migrations/2021_06_28_105334_create_bouncer_tables.php b/database/migrations/2021_06_28_105334_create_bouncer_tables.php index 80b503c0..a20bbeb9 100644 --- a/database/migrations/2021_06_28_105334_create_bouncer_tables.php +++ b/database/migrations/2021_06_28_105334_create_bouncer_tables.php @@ -16,23 +16,23 @@ class CreateBouncerTables extends Migration public function up() { if (Schema::hasTable('role_has_permissions')) { - Schema::drop(Models::table('role_has_permissions')); + Schema::drop('role_has_permissions'); } if (Schema::hasTable('model_has_roles')) { - Schema::drop(Models::table('model_has_roles')); + Schema::drop('model_has_roles'); } if (Schema::hasTable('model_has_permissions')) { - Schema::drop(Models::table('model_has_permissions')); + Schema::drop('model_has_permissions'); } if (Schema::hasTable('permissions')) { - Schema::drop(Models::table('permissions')); + Schema::drop('permissions'); } if (Schema::hasTable('roles')) { - Schema::drop(Models::table('roles')); + Schema::drop('roles'); } Schema::create(Models::table('abilities'), function (Blueprint $table) { From 77ce1d7431f5a093ee440e9a70e98229069a26c8 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Wed, 8 Dec 2021 15:39:14 +0530 Subject: [PATCH 4/4] solve migration issue --- .../migrations/2020_12_02_090527_update_crater_version_400.php | 2 +- .../2021_06_28_120231_add_customer_id_to_payments_table.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/database/migrations/2020_12_02_090527_update_crater_version_400.php b/database/migrations/2020_12_02_090527_update_crater_version_400.php index 9520b200..1fc96f76 100644 --- a/database/migrations/2020_12_02_090527_update_crater_version_400.php +++ b/database/migrations/2020_12_02_090527_update_crater_version_400.php @@ -38,7 +38,7 @@ class UpdateCraterVersion400 extends Migration // Update user's addresses if ($user->addresses()->exists()) { foreach ($user->addresses as $address) { - $address->company_id = $user->companies()->first()->id; + $address->company_id = $user->company_id; $address->user_id = null; $address->save(); } diff --git a/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php b/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php index 96675b9d..38d4a6ab 100644 --- a/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php +++ b/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php @@ -14,6 +14,7 @@ class AddCustomerIdToPaymentsTable extends Migration public function up() { Schema::table('payments', function (Blueprint $table) { + $table->unsignedBigInteger('user_id')->nullable(); $table->unsignedBigInteger('customer_id')->nullable(); $table->foreign('customer_id')->references('id')->on('customers'); });