167 lines
8.4 KiB
PHP
167 lines
8.4 KiB
PHP
@extends('ventas.base')
|
|
|
|
@section('venta_subtitle')
|
|
Cuotas - Abono a Escritura
|
|
@endsection
|
|
|
|
@section('venta_content')
|
|
<table class="ui table">
|
|
<thead>
|
|
<tr>
|
|
<th rowspan="2">#</th>
|
|
<th rowspan="2">Fecha</th>
|
|
<th colspan="2">Valor</th>
|
|
<th rowspan="2" colspan="2">Estado</th>
|
|
<th class="right aligned" rowspan="2">
|
|
<button class="ui tertiary green icon button" id="add_button">
|
|
<i class="plus icon"></i>
|
|
</button>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<th class="right aligned">$</th>
|
|
<th class="right aligned">UF</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="cuotas">
|
|
@foreach ($cuotas as $cuota)
|
|
<tr data-id="{{$cuota->id}}">
|
|
<td class="numero" data-value="{{$cuota->numero}}">{{$cuota->numero}}</td>
|
|
<td class="fecha" data-value="{{$cuota->pago->fecha->format('Y-m-d')}}">{{$cuota->pago->fecha->format('d-m-Y')}}</td>
|
|
<td class="valor right aligned" data-value="{{$cuota->pago->valor}}">{{$format->pesos($cuota->pago->valor)}}</td>
|
|
<td class="valor_uf right aligned" data-value="{{$cuota->pago->valor()}}">{{$format->ufs($cuota->pago->valor())}}</td>
|
|
<td class="estado{{$cuota->pago->currentEstado->tipoEstadoPago->descripcion === 'no pagado' ? ' warning' :
|
|
($cuota->pago->currentEstado->tipoEstadoPago->descripcion === 'abonado' ? ' positive' : '')}}"
|
|
data-value="{{$cuota->pago->currentEstado->tipoEstadoPago->id}}">
|
|
{{ucwords($cuota->pago->currentEstado->tipoEstadoPago->descripcion)}}
|
|
@if (in_array($cuota->pago->currentEstado->tipoEstadoPago->descripcion, ['abonado', 'depositado']))
|
|
<br />
|
|
{{$cuota->pago->currentEstado->fecha->format('d-m-Y')}}
|
|
@endif
|
|
</td>
|
|
<td class="collapsing">
|
|
@if (in_array($cuota->pago->currentEstado->tipoEstadoPago->descripcion, ['depositado', 'no pagado']))
|
|
<form class="ui compact form avance_pago_form" data-id="{{$cuota->id}}"
|
|
data-pago="{{$cuota->pago->id}}"
|
|
data-estado="{{$cuota->pago->currentEstado->tipoEstadoPago->descripcion}}">
|
|
<div class="inline field">
|
|
<div class="ui calendar">
|
|
<div class="ui icon input">
|
|
<input type="text" name="fecha_avance_pago{{$cuota->id}}" />
|
|
<i class="calendar icon"></i>
|
|
</div>
|
|
</div>
|
|
<button class="ui tertiary green icon button accept_button" data-id="{{$cuota->id}}"><i class="check icon"></i></button>
|
|
@if ($cuota->pago->currentEstado->tipoEstadoPago->descripcion === 'depositado')
|
|
<button class="ui tertiary red icon button cancel_button" data-id="{{$cuota->id}}"><i class="remove icon"></i></button>
|
|
@endif
|
|
</div>
|
|
</form>
|
|
@endif
|
|
</td>
|
|
<td class="right aligned">
|
|
<button class="ui tertiary icon button edit_button" data-id="{{$cuota->id}}">
|
|
<i class="edit icon"></i>
|
|
</button>
|
|
<button class="ui tertiary red icon button remove_button" data-id="{{$cuota->id}}">
|
|
<i class="remove icon"></i>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
|
|
@include('ventas.escrituras.abono.cuotas.add_modal')
|
|
@include('ventas.escrituras.abono.cuotas.edit_modal')
|
|
@endsection
|
|
|
|
@push('page_scripts')
|
|
<script>
|
|
$(document).ready(function () {
|
|
const addModal = new AddModal({
|
|
modal: '#add_cuota_modal',
|
|
form: 'add_cuota_form',
|
|
fecha: '#add_fecha',
|
|
})
|
|
const editModal = new EditModal({
|
|
table: 'cuotas',
|
|
modal: '#edit_cuota_modal',
|
|
form: 'edit_cuota_form',
|
|
fecha: '#edit_fecha',
|
|
estado: '#edit_estado'
|
|
})
|
|
|
|
document.getElementById('add_button').addEventListener('click', clickEvent => {
|
|
addModal.draw()
|
|
})
|
|
Array.from(document.getElementsByClassName('edit_button')).forEach(button => {
|
|
button.addEventListener('click', clickEvent => {
|
|
const id = $(clickEvent.currentTarget).data('id')
|
|
editModal.getData({cuota_id: id})
|
|
})
|
|
})
|
|
Array.from(document.getElementsByClassName('remove_button')).forEach(button => {
|
|
button.addEventListener('click', clickEvent => {
|
|
const id = $(clickEvent.currentTarget).data('id')
|
|
const url = `{{$urls->api}}/venta/{{$venta->id}}/cuota/${id}`
|
|
const method = 'delete'
|
|
console.debug(url)
|
|
})
|
|
})
|
|
|
|
Array.from(document.getElementsByClassName('avance_pago_form')).forEach(form => {
|
|
form.addEventListener('submit', submitEvent => {
|
|
submitEvent.preventDefault()
|
|
return false
|
|
})
|
|
const cdo = structuredClone(calendar_date_options)
|
|
cdo['initialDate'] = new Date()
|
|
cdo['maxDate'] = new Date()
|
|
@if ($cuota->pago->currentEstado->tipoEstadoPago->descripcion === 'depositado')
|
|
cdo['initialDate'] = new Date('{{$cuota->pago->currentEstado->fecha->format('Y-m-d')}}')
|
|
@endif
|
|
$(form).find('.ui.calendar').calendar(cdo)
|
|
})
|
|
Array.from(document.getElementsByClassName('accept_button')).forEach(button => {
|
|
button.addEventListener('click', clickEvent => {
|
|
const id = $(clickEvent.currentTarget).data('id')
|
|
const method = 'post'
|
|
const form = Array.from(document.getElementsByClassName('avance_pago_form')).filter(form => parseInt(form.dataset.id) === id)[0]
|
|
const pago = form.dataset.pago
|
|
const estado = form.dataset.estado
|
|
const newEstado = estado === 'depositado' ? 'abonar' : 'depositar'
|
|
const url = `{{$urls->api}}/ventas/pago/${pago}/${newEstado}`
|
|
const body = new FormData()
|
|
const fecha = $(form).find('.ui.calendar').calendar('get date')[0]
|
|
body.set('fecha', fecha.getFullYear() + '-' + (fecha.getMonth() + 1).toString().padStart(2, '0') + '-' + fecha.getDate().toString().padStart(2, '0'))
|
|
|
|
APIClient.fetch(url, {method, body}).then(response => {
|
|
if (response.ok) {
|
|
return response.json().then(json => {
|
|
if (json.success) {
|
|
window.location.reload()
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
})
|
|
Array.from(document.getElementsByClassName('cancel_button')).forEach(button => {
|
|
button.addEventListener('click', clickEvent => {
|
|
const id = $(clickEvent.currentTarget).data('id')
|
|
const method = 'post'
|
|
const form = Array.from(document.getElementsByClassName('avance_pago_form')).filter(form => parseInt(form.dataset.id) === id)[0]
|
|
const pago = form.dataset.pago
|
|
const url = `{{$urls->api}}/ventas/pago/${pago}/devolver`
|
|
const body = new FormData()
|
|
const fecha = $(form).find('.ui.calendar').calendar('get date')[0]
|
|
body.set('fecha', fecha.getFullYear() + '-' + (fecha.getMonth() + 1).toString().padStart(2, '0') + '-' + fecha.getDate().toString().padStart(2, '0'))
|
|
|
|
console.debug(url, body)
|
|
})
|
|
})
|
|
})
|
|
</script>
|
|
@endpush
|