This commit is contained in:
2021-12-01 21:04:06 -03:00
parent 1230c02f60
commit 7e01974ec8
201 changed files with 15370 additions and 0 deletions

View File

@ -0,0 +1,77 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Editar Pago</h3>
</div>
<br />
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'pagos', 'a' => 'editar', 'pago' => $pago->id, 'asociado' => $asociado, $asociado => $id_asociado])}}">
<div class="form-group">
<div class="col-md-2">Fecha</div>
<?php $f = \Carbon\Carbon::parse($pago->fecha, config('app.timezone')) ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-2">Tipo</div>
<div class="col-md-3"><select name="tipo" class="form-control">
@foreach ($tipos as $tipo)
<option value="{{$tipo->id}}"
@if ($pago->tipo() and $tipo->id == $pago->tipo()->id)
selected="selected"
@endif
>{{ucwords($tipo->descripcion)}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">(Identificador)</div>
<div class="col-md-4"><input type="text" name="identificador" class="form-control" value="{{$pago->identificador}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Banco</div>
<div class="col-md-3"><input type="text" name="banco" class="form-control"
@if ($pago->banco())
value="{{$pago->banco()->nombre}}"
@endif
id="banco" autocomplete="off" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Valor [$]</div>
<div class="col-md-3"><input type="text" name="valor" class="form-control" value="{{$pago->valor}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">(Pagador)</div>
<div class="col-md-5"><input type="text" name="pagador" class="form-control" value="{{$pago->pagador}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Estado</div>
<div class="col-md-3"><select name="estado" class="form-control">
@foreach ($estados as $estado)
<option value="{{$estado->id}}"
@if ($estado->id == $pago->estado()->estado)
selected="selected"
@endif
>{{ucwords($estado->descripcion)}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Fecha Estado</div>
<?php $f = \Carbon\Carbon::parse($pago->estado()->fecha, config('app.timezone')); $id = 'estado' ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-3"><input type="submit" value="Editar" class="form-control" /></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
$.getJSON('{!!url('', ['p' => 'ajax', 'a' => 'buscar', 't' => 'bancos'])!!}', function(data, status, xhr) {
$('#banco').typeahead({"source": data});
});
});
</script>
@endpush

View File

@ -0,0 +1,268 @@
@extends('layout.base')
@section('content')
<h2>Pagos Pendientes</h2>
<div class="row">
<div class="col-md-2">Hist&oacute;ricos</div>
<div class="col-md-10" id="historicos"></div>
</div>
<div class="row">
<div class="col-md-12">
<div class="loader" id="graph_spinner"></div>
<canvas id="pagos_pendientes" width="400" height="200"></canvas>
</div>
</div>
<h2>Para Abonar [<span id="total_pendientes"><div class="loader" style="display: inline-block; width: 26px; height: 26px;"></div></span>]</h2>
<table class="table table-striped">
<thead>
<tr>
<th>Proyecto</th>
<th>Departamento</th>
<th>Propietario</th>
<th>Tipo</th>
<th>Fecha Deposito</th>
<th>Valor</th>
</tr>
</thead>
<tbody id="depositos">
</tbody>
</table>
<h2>Pagos Rebotados Pendientes [<span id="total_rebotes"><div class="loader" style="display: inline-block; width: 26px; height: 26px;"></div></span>]</h2>
<table class="table table-striped">
<thead>
<tr>
<th>Proyecto</th>
<th>Departamento</th>
<th>Propietario</th>
<th>Tipo</th>
<th>Fecha Rebote</th>
<th>Valor</th>
</tr>
</thead>
<tbody id="rebotes">
</tbody>
</table>
@endsection
@push('styles')
<style type="text/css">
.loader {
border: 8px solid #f3f3f3; /* Light grey */
border-top: 8px solid #3498db; /* Blue */
border-radius: 50%;
width: 48px;
height: 48px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
@endpush
@push('scripts')
<script type="text/javascript">
function createChart(ctx, labels, data1, data2) {
var chart = new Chart(ctx, {
"type": 'bar',
"data": {
"labels": labels,
"datasets": [{
"label": 'Pagos',
"data": data1.data,
"backgroundColor": data1.backgroundColor
},
{
"label": 'Abonos',
"data": data2.data,
"backgroundColor": data2.backgroundColor
}]
},
"options": {
"legend": {
"display": false
},
"scales": {
"xAxes": [{
"stacked": true
}],
"yAxes": [{
"stacked": true
}]
},
"plugins": {
"chartJSPluginBarchartBackground": {
"color": 'rgb(100, 100, 100)'
}
}
}
})
}
function formatNumber(number) {
return (new Intl.NumberFormat('es-ES', {style: 'decimal'}).format(number))
}
var total_pendientes = 0
var sum_pendientes = 0
var total_rebotes = 0
var sum_rebotes = 0
function sortTr(div) {
var trs = div.children('tr')
objs = []
$.each (trs, function(i, el) {
var tds = $(el).find('td')
var proyecto = $(tds.get(0)).text()
var departamento = parseInt($(tds.get(1)).text())
objs.push({
'tr': el,
'proyecto': proyecto,
'departamento': departamento
})
})
objs.sort((a, b) => {
if (a.proyecto === b.proyecto) {
return a.departamento - b.departamento
}
return (a.proyecto > b.proyecto) ? 1 : -1
})
div.html('')
$.each(objs, function(i, el) {
div.append(el.tr)
})
}
function getDatos(type) {
var promises = []
var ventas = []
@foreach ($ventas as $i => $venta)
ventas.push({{$venta->id}})
@if ($i % $lots->size == 0 and $i > 0)
if (type == 'pendientes') {
promises.push(getPendiente(ventas))
}
if (type == 'rebotes') {
promises.push(getRebote(ventas))
}
ventas = []
@endif
@endforeach
@if ($lots->rest->size > 0)
ventas = []
@for ($i = $lots->rest->start; $i < count($ventas); $i ++)
ventas.push({{$ventas[$i]->id}})
@endfor
if (type == 'pendientes') {
promises.push(getPendiente(ventas))
}
if (type == 'rebotes') {
promises.push(getRebote(ventas))
}
@endif
promises.reduce((promiseChain, currentTask) => {
return promiseChain.then(chainResults => currentTask.then(currentResult => [ ...chainResults, currentResult]))
}, Promise.resolve([])).then(arrayOfResults => {
if (type == 'rebotes') {
$('#total_rebotes').html(total_rebotes)
sortTr($('#rebotes'))
div = $('#rebotes')
sum = sum_rebotes
}
if (type == 'pendientes') {
$('#total_pendientes').html(total_pendientes)
sortTr($('#depositos'))
div = $('#depositos')
sum = sum_pendientes
}
div.append(
$('<tr></tr>').append(
$('<td></td>').append(
$('<strong></strong>').html('TOTAL')
)
).append(
$('<td></td>').attr('colspan', '4')
).append(
$('<td></td>').append(
$('<strong></strong>').html('$ ' + formatNumber(sum))
)
)
)
})
}
function getPendiente(list) {
return $.post('{!!nUrl('pagos', 'para_abonar', ['ajax' => true])!!}', {ids: JSON.stringify(list)}, function(data) {
$.each (data, function(i, venta) {
if (venta.status == 1) {
$.each(venta.pagos, function(i, el) {
$('#depositos').append(
$('<tr></tr>').append(
$('<td></td>').html(venta.proyecto)
).append(
$('<td></td>').append(
$('<a></a>').attr('href', '{!!nUrl('ventas', 'show', ['venta' => ''])!!}' + venta.venta).html(venta.departamento)
)
).append(
$('<td></td>').html(venta.propietario)
).append(
$('<td></td>').html(el.tipo)
).append(
$('<td></td>').html(el.fecha)
).append(
$('<td></td>').html('$ ' + el.valor)
)
)
sum_pendientes += parseInt(el.valor.replace('.', ''))
total_pendientes ++
})
}
});
}, 'json')
}
function getRebote(list) {
return $.post('{!!nUrl('pagos', 'rebotes', ['ajax' => true])!!}', {ids: JSON.stringify(list)}, function(data) {
$.each(data, function(i, rebote) {
if (rebote.status == 1) {
$.each(rebote.rebotes, function(i, el) {
$('#rebotes').append(
$('<tr></tr>').attr('data-id', el.id).append(
$('<td></td>').html(el.proyecto)
).append(
$('<td></td>').append(
$('<a></a>').attr('href', '{!!nUrl('ventas', 'show', ['venta' => ''])!!}' + el.venta).html(el.departamento)
)
).append(
$('<td></td>').html(el.propietario)
).append(
$('<td></td>').html(el.tipo)
).append(
$('<td></td>').html(el.fecha)
).append(
$('<td></td>').html('$ ' + el.valor)
)
)
sum_rebotes += parseInt(el.valor.replace('.', ''))
total_rebotes ++
})
}
})
}, 'json')
}
$(document).ready(function() {
$.post('{!!nUrl('pagos', 'para_pendientes', ['ajax' => true])!!}', function(data) {
$('#historicos').append(
$('<a></a>').attr('href', '{!!nUrl('cuotas', 'pendientes')!!}').html(data.pagos.historico)
).append(
$('<br />')
).append(
$('<a></a>').attr('href', '{!!nUrl('cuotas', 'para_abonar')!!}').html(data.abonos.historico)
)
$('#graph_spinner').remove()
var ctx = $('#pagos_pendientes')
createChart(ctx, data.fechas, data.pagos, data.abonos)
}, 'json')
getDatos('pendientes')
getDatos('rebotes')
});
</script>
@endpush

View File

@ -0,0 +1,61 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-10 h2">Pago</div>
<div class="col-md-2 text-right h2"><a href="{{url('', ['p' => 'pagos', 'a' => 'edit', 'pago' => $pago->id, 'asociado' => $asociado, $asociado => $id_asociado])}}">
<span class="glyphicon glyphicon-edit"></span>
</a></div>
</div>
<br />
<div class="row">
<div class="col-md-2">Tipo</div>
<div class="col-md-3">
@if ($pago->tipo())
{{ucwords($pago->tipo()->descripcion)}}
@endif
</div>
</div>
<div class="row">
<div class="col-md-2">Fecha</div>
<div class="col-md-3">{{format('shortDate', $pago->fecha)}}</div>
</div>
<div class="row">
<div class="col-md-2">Valor</div>
<div class="col-md-3">{{format('pesos', $pago->valor('pesos'), null, true)}}</div>
<div class="col-md-3">{{format('ufs', $pago->valor('ufs'), null, true)}}</div>
</div>
<div class="row">
<div class="col-md-2">Valor de UF</div>
<div class="col-md-3">{{format('pesos', $pago->uf, null, true)}}</div>
</div>
@if ($pago->banco != 0)
<div class="row">
<div class="col-md-2">Banco</div>
<div class="col-md-3">{{$pago->banco()->descripcion}}</div>
</div>
@endif
@if ($pago->identificador != '')
<div class="row">
<div class="col-md-2">Identificador</div>
<div class="col-md-4">{{$pago->identificador}}</div>
</div>
@endif
<table class="table table-striped">
<thead>
<tr>
<th>Estado</th>
<th>Fecha</th>
</tr>
</thead>
<tbody>
@foreach ($pago->estados() as $estado)
<tr>
<td>{{ucwords($estado->tipo()->descripcion)}}</td>
<td>{{format('shortDate', $estado->fecha)}}</td>
</tr>
@endforeach
</tbody>
</table>
<a href="{{url('', ['p' => $asociado . 's', 'a' => 'show', $asociado => $id_asociado])}}">Volver</a>
@endsection