From 2b3f476df72c7bdcd018fa5e55a6500c94880bf7 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Tue, 18 Mar 2025 19:12:59 -0300 Subject: [PATCH] Agregar, editar y eliminar promociones --- ...0318204147_alter_promotions_null_dates.php | 27 +++ ...er_promotions_add_description_and_type.php | 27 +++ .../routes/api/ventas/promotions.php | 10 + app/resources/routes/ventas/promotions.php | 6 + .../views/ventas/promotions.blade.php | 172 ++++++++++++++++++ .../ventas/promotions/add_modal.blade.php | 100 ++++++++++ .../views/ventas/promotions/base.blade.php | 10 + .../ventas/promotions/edit_modal.blade.php | 126 +++++++++++++ app/src/Controller/API/Ventas/Promotions.php | 97 ++++++++++ app/src/Controller/Ventas/Promotions.php | 19 ++ app/src/Model/Venta/Promotion/Type.php | 16 ++ 11 files changed, 610 insertions(+) create mode 100644 app/resources/database/migrations/20250318204147_alter_promotions_null_dates.php create mode 100644 app/resources/database/migrations/20250318205221_alter_promotions_add_description_and_type.php create mode 100644 app/resources/routes/api/ventas/promotions.php create mode 100644 app/resources/routes/ventas/promotions.php create mode 100644 app/resources/views/ventas/promotions.blade.php create mode 100644 app/resources/views/ventas/promotions/add_modal.blade.php create mode 100644 app/resources/views/ventas/promotions/base.blade.php create mode 100644 app/resources/views/ventas/promotions/edit_modal.blade.php create mode 100644 app/src/Controller/API/Ventas/Promotions.php create mode 100644 app/src/Controller/Ventas/Promotions.php create mode 100644 app/src/Model/Venta/Promotion/Type.php diff --git a/app/resources/database/migrations/20250318204147_alter_promotions_null_dates.php b/app/resources/database/migrations/20250318204147_alter_promotions_null_dates.php new file mode 100644 index 0000000..9540573 --- /dev/null +++ b/app/resources/database/migrations/20250318204147_alter_promotions_null_dates.php @@ -0,0 +1,27 @@ +table('promotions') + ->changeColumn('end_date', 'date', ['null' => true]) + ->changeColumn('valid_until', 'date', ['null' => true]) + ->update(); + } +} diff --git a/app/resources/database/migrations/20250318205221_alter_promotions_add_description_and_type.php b/app/resources/database/migrations/20250318205221_alter_promotions_add_description_and_type.php new file mode 100644 index 0000000..d349bd8 --- /dev/null +++ b/app/resources/database/migrations/20250318205221_alter_promotions_add_description_and_type.php @@ -0,0 +1,27 @@ +table('promotions') + ->addColumn('description', 'string', ['limit' => 255, 'null' => false, 'after' => 'id']) + ->addColumn('type', 'integer', ['limit' => 1, 'null' => false, 'default' => 0, 'after' => 'description']) + ->update(); + } +} diff --git a/app/resources/routes/api/ventas/promotions.php b/app/resources/routes/api/ventas/promotions.php new file mode 100644 index 0000000..f69303f --- /dev/null +++ b/app/resources/routes/api/ventas/promotions.php @@ -0,0 +1,10 @@ +group('/promotions', function($app) { + $app->post('/add[/]', [Promotions::class, 'add']); + $app->post('/edit[/]', [Promotions::class, 'edit']); +}); +$app->group('/promotion/{promotion_id}', function($app) { + $app->delete('/remove[/]', [Promotions::class, 'remove']); +}); diff --git a/app/resources/routes/ventas/promotions.php b/app/resources/routes/ventas/promotions.php new file mode 100644 index 0000000..43ddf79 --- /dev/null +++ b/app/resources/routes/ventas/promotions.php @@ -0,0 +1,6 @@ +group('/promotions', function($app) { + $app->get('[/]', Promotions::class); +}); diff --git a/app/resources/views/ventas/promotions.blade.php b/app/resources/views/ventas/promotions.blade.php new file mode 100644 index 0000000..df4df75 --- /dev/null +++ b/app/resources/views/ventas/promotions.blade.php @@ -0,0 +1,172 @@ +@extends('ventas.promotions.base') + +@section('promotions_content') + + + + + + + + + + + + + + + @foreach($promotions as $promotion) + + + + + + + + + + + @endforeach + +
PromociónTipoValorFecha InicioFecha TérminoVálido HastaContratos + +
+ + {{ $promotion->description }} + + {{ ucwords($promotion->type->name()) }}{{ ($promotion->type === Incoviba\Model\Venta\Promotion\Type::FIXED) ? $format->ufs($promotion->amount) : $format->percent($promotion->amount, 2, true) }}{{ $promotion->startDate->format('d-m-Y') }}{{ $promotion->endDate?->format('d-m-Y') }}{{ $promotion->validUntil?->format('d-m-Y') }} + Proyectos: {{ count(array_unique(array_map(function ($contract) { return $contract->project->descripcion; }, $promotion->contracts()))) }}
+ Operadores: {{ count(array_unique(array_map(function ($contract) { return $contract->broker->name; }, $promotion->contracts()))) }} +
+ + +
+ @include('ventas.promotions.add_modal') + @include('ventas.promotions.edit_modal') +@endsection + +@push('page_scripts') + +@endpush diff --git a/app/resources/views/ventas/promotions/add_modal.blade.php b/app/resources/views/ventas/promotions/add_modal.blade.php new file mode 100644 index 0000000..6a71ba0 --- /dev/null +++ b/app/resources/views/ventas/promotions/add_modal.blade.php @@ -0,0 +1,100 @@ +