Tarifas y promos por usuario (falta el editar en la vista de tarifas)

Introduces the subvendedor_id field to the tarifa_promos table and updates the TarifaPromo model accordingly. Refactors tarifas and promociones management in ShowTarifas and ShowUsuarios Livewire components, including utility calculation, validation, and UI improvements for managing both regular and promo tarifas.
This commit is contained in:
Juan Felipe Duarte
2025-06-25 16:36:32 -07:00
parent e8050ea19f
commit 85d18dc4ff
7 changed files with 430 additions and 86 deletions
@@ -37,7 +37,7 @@
@if (auth()->user()->rol->nombre === 'super' || auth()->user()->rol->nombre === 'administrador')
<a x-on:click="modTarifas = true" class="justify-center flex px-4 py-2 rounded-lg cursor-pointer text-white bg-[#B221FD] hover:bg-[#7a02b8]">Mod.
tarifas promos.
tarifas promos
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" version="1.1" class="w-4 ml-2" x="0" y="0" viewBox="0 0 24 24" style="enable-background:new 0 0 512 512" xml:space="preserve">
<polygon points="14.604 5.687 0 20.29 0 24 3.71 24 18.313 9.396 14.604 5.687" fill="#ffffff" data-original="#000000" />
<path d="M23.232.768a2.624,2.624,0,0,0-3.71,0l-3.5,3.505,3.709,3.709,3.5-3.5A2.624,2.624,0,0,0,23.232.768Z" fill="#ffffff" data-original="#000000" />
@@ -184,29 +184,22 @@
<option value="" selected>Tarifas</option>
@if (!empty($consulta_tarifas))
@foreach ($consulta_tarifas as $consulta_tarifa)
@if ($consulta_tarifa->servicio && $consulta_tarifa->servicio->por_tiempo)
<option value="{{ $consulta_tarifa->id }}">
{{ $consulta_tarifa->servicio->nombre ?? '' }}:
{{ $consulta_tarifa->dias ?? '' }}
{{ $consulta_tarifa->dias == 1 ? 'día' : 'días' }}
</option>
@elseif ($consulta_tarifa->servicio)
<option value="{{ $consulta_tarifa->id }}">
{{ $consulta_tarifa->servicio->nombre ?? '' }}:
{{ $consulta_tarifa->pantallas ?? '' }}
{{ $consulta_tarifa->pantallas == 1 ? 'pantalla' : 'pantallas' }} -
{{ $consulta_tarifa->dias ?? '' }}
{{ $consulta_tarifa->dias == 1 ? 'día' : 'días' }}
</option>
@endif
@if ($consulta_tarifa->servicio && $consulta_tarifa->servicio->por_tiempo)
<option value="{{ $consulta_tarifa->id }}">
{{ $consulta_tarifa->servicio->nombre ?? '' }}: {{ $consulta_tarifa->dias ?? '' }} {{ $consulta_tarifa->dias == 1 ? 'día' : 'días' }}
</option>
@elseif ($consulta_tarifa->servicio)
<option value="{{ $consulta_tarifa->id }}">
{{ $consulta_tarifa->servicio->nombre ?? '' }}: {{ $consulta_tarifa->pantallas ?? '' }} {{ $consulta_tarifa->pantallas == 1 ? 'pantalla' : 'pantallas' }} - {{ $consulta_tarifa->dias ?? '' }} {{ $consulta_tarifa->dias == 1 ? 'día' : 'días' }}
</option>
@endif
@endforeach
@endif
</select>
</div>
<div class="w-[7rem]">
<input placeholder="$25000" type="number" id="precioTarifasGestion"
wire:model="precioTarifasGestion" min="0"
wire:model.debounce.500ms="precioTarifasGestion" min="0"
class="w-full border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
</div>
<div class="w-[5rem] self-center justify-self-center mx-auto">
@@ -223,9 +216,14 @@
<p class="font-semibold text-gray-500">
Utilidad
</p>
<input placeholder="$12000" type="number" id="utilidad" wire:model="utilidad"
min="0"
class="w-1/2 border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
@if (auth()->user()->rol->nombre === 'super' || auth()->user()->rol->nombre === 'administrador')
<input placeholder="$12000" type="number" id="utilidad" wire:model="utilidad" min="0" class="w-1/2 border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
@else
<input disabled placeholder="$12000" type="number" id="utilidad" wire:model="utilidad" min="0" class="w-1/2 border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
@endif
<span>
<button wire:click="addtarifas" type="button"
class="inline-flex justify-center w-full md:w-auto rounded-md border border-transparent px-4 py-1 sm:mb-[0] mb-2 text-white bg-[#B221FD] hover:bg-[#7a02b8] focus:shadow-outline-green ease-in-out sm-text-sm sm-leading-5">Añadir</button>
@@ -366,9 +364,11 @@
<p class="font-semibold text-gray-500">
Utilidad
</p>
<input placeholder="$12000" type="number" id="utilidad" wire:model="utilidad"
min="0"
class="w-1/2 border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
@if (auth()->user()->rol->nombre === 'super' || auth()->user()->rol->nombre === 'administrador')
<input placeholder="$12000" type="number" id="utilidad" wire:model="utilidad" min="0" class="w-1/2 border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
@else
<input disabled placeholder="$12000" type="number" id="utilidad" wire:model="utilidad" min="0" class="w-1/2 border-2 border-neutral-200 rounded-[0.8rem] focus:ring-0 shadow apperance-none focus:border-neutral-300 py-2 pl-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
@endif
<span>
<button wire:click="addpromos" type="button"
class="inline-flex justify-center w-full md:w-auto rounded-md border border-transparent px-4 py-1 sm:mb-[0] mb-2 text-white bg-[#B221FD] hover:bg-[#7a02b8] focus:shadow-outline-green ease-in-out sm-text-sm sm-leading-5">Añadir</button>