This commit is contained in:
2020-12-01 17:23:13 -03:00
parent 09e8c226bb
commit 9852a8cbdc
274 changed files with 24706 additions and 0 deletions

View File

@ -0,0 +1,197 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">Abonar Cuotas</div>
<div class="panel-body">
Hay {{$total}} cuotas para abonar.<br />
<div class="row">
<div class="col-md-2">Se est&aacute;n viendo de ha</div>
<div class="col-md-1"><input type="text" name="step" class="form-control" value="{{((get('step')) ? get('step') : 30)}}" /></div>
<div class="col-md-3"> en {{$pages}} p&aacute;ginas.</div>
</div>
<div class="row">
<div class="col-md-offset-6 col-md-2 text-right">Filtro</div>
<div class="col-md-4"><input type="text" class="form-control focus" id="tableFilter" /></div>
</div>
<br />
<div class="row">
<div class="col-md-1">
@if (get('start') > 0)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => 0, 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-left"></span><span class="glyphicon glyphicon-chevron-left"></span></a>
@endif
</div>
<div class="col-md-1">
@if (get('start') > 0)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => max(0, get('start') - ((get('step')) ? get('step') : 30)), 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-left"></span></a>
@endif
</div>
<div class="col-md-8 text-center">{{$current}} / {{$pages}}</div>
<div class="col-md-1 text-right">
@if (get('start') + ((get('step')) ? get('step') : 30) < $total)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => max(0, get('start')) + ((get('step')) ? get('step') : 30), 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-right"></span></a>
@endif
</div>
<div class="col-md-1 text-right">
@if (get('start') + ((get('step')) ? get('step') : 30) < $total)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => (((get('step')) ? get('step') : 30) * floor($total / ((get('step')) ? get('step') : 30))), 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-right"></span><span class="glyphicon glyphicon-chevron-right"></span></a>
@endif
</div>
</div>
<table class="table table-striped" id="filteredTable">
<thead>
<tr>
<th rowspan="2">Proyecto</th>
<th>Departamento</th>
<th>Valor Cuota</th>
<th>Fecha Depositada</th>
<th></th>
</tr>
<tr>
<th>Propietario</th>
<th>Fecha Cuota</th>
<th>Fecha Abono / Devoluci&oacute;n</th>
<th></th>
</tr>
</thead>
<tbody>
<?php $f = \Carbon\Carbon::today(config('app.timezone')) ?>
@foreach ($cuotas as $cuota)
<tr>
<td rowspan="2">{{$cuota->pie()->venta()->proyecto()->descripcion}}</td>
<td><a href="{{url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $cuota->pie()->venta()->id])}}">{{$cuota->pie()->venta()->unidad()->descripcion}}</a></td>
<td>$ {{format('pesos', $cuota->pago()->valor)}}</td>
<td>{{format('shortDate', $cuota->pago()->estado()->fecha)}}</td>
<td><a href="#" class="abonar" data-id="{{$cuota->id}}">&check;</a></td>
</tr>
<tr>
<td>{{$cuota->pie()->venta()->propietario()->nombreCompleto()}}</td>
<td>{{format('shortDate', $cuota->pago()->fecha)}}</td>
<td>
<div class="row">
<div class="col-md-3"><select name="d{{$cuota->id}}" class="form-control">
@for ($i = 0; $i < 31; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $f->day)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-3"><select name="m{{$cuota->id}}" class="form-control">
@for ($i = 0; $i < 12; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $f->month)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-4"><select name="y{{$cuota->id}}" class="form-control">
@for ($i = $f->year; $i > $f->year - 5; $i --)
<option value="{{$i}}">{{$i}}</option>
@endfor
</select></div>
</div>
</td>
<td><a href="#" class="rebote" data-id="{{$cuota->id}}">X</a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="row">
<div class="col-md-1">
@if (get('start') > 0)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => 0, 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-left"></span><span class="glyphicon glyphicon-chevron-left"></span></a>
@endif
</div>
<div class="col-md-1">
@if (get('start') > 0)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => max(0, get('start') - ((get('step')) ? get('step') : 30)), 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-left"></span></a>
@endif
</div>
<div class="col-md-8 text-center">{{$current}} / {{$pages}}</div>
<div class="col-md-1 text-right">
@if (get('start') + ((get('step')) ? get('step') : 30) < $total)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => max(0, get('start')) + ((get('step')) ? get('step') : 30), 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-right"></span></a>
@endif
</div>
<div class="col-md-1 text-right">
@if (get('start') + ((get('step')) ? get('step') : 30) < $total)
<a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar', 'start' => (((get('step')) ? get('step') : 30) * floor($total / ((get('step')) ? get('step') : 30))), 'step' => ((get('step')) ? get('step') : 30)])}}"><span class="glyphicon glyphicon-chevron-right"></span><span class="glyphicon glyphicon-chevron-right"></span></a>
@endif
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
$('.focus').focus();
$("input[name='step']").change(function(e) {
var step = $(this).val();
var qs = parseQS();
qs.step = step;
var url = window.location;
console.debug(url);
url.search = stringifyQS(qs);
});
$('#tableFilter').filterTable({"table": 'filteredTable', "height": 2, "excludes": ['Fecha Abono / Devolución', '']});
$('.abonar').click(function(e) {
var id = $(this).attr('data-id');
var fy = $("select[name='y" + id + "']").val();
var fm = $("select[name='m" + id + "']").val();
var fd = $("select[name='d" + id + "']").val();
var fecha = fy + '-' + fm + '-' + fd;
$.post('{!!url('', ['p' => 'cuotas', 'a' => 'abonar'])!!}', {"cuota": id, "fecha": fecha}, function(data) {
if (data == 'ok') {
window.location.reload();
} else {
console.debug(data);
}
});
});
$('.rebote').click(function(e) {
var id = $(this).attr('data-id');
var fy = $("select[name='y" + id + "']").val();
var fm = $("select[name='m" + id + "']").val();
var fd = $("select[name='d" + id + "']").val();
var fecha = fy + '-' + fm + '-' + fd;
$.post('{!!url('', ['p' => 'cuotas', 'a' => 'rebotar'])!!}', {"cuota": id, "fecha": fecha}, function(data) {
if (data == 'ok') {
window.location.reload();
} else {
console.debug(data);
}
});
});
});
function parseQS() {
var url = window.location;
var qs = url.search;
var parsed = qs.substring(1).split('&');
var output = {};
$.each(parsed, function(i, e) {
var data = e.split('=');
output[data[0]] = data[1];
});
return output;
}
function stringifyQS(qsObj) {
return '?' + joinObj(qsObj, '=', '&');
}
function joinObj(obj, glue, separator) {
var object = obj;
if (glue == undefined)
glue = '=';
if (separator == undefined)
separator = ',';
return $.map(Object.getOwnPropertyNames(object), function(k) { return [k, object[k]].join(glue) }).join(separator);
}
</script>
@endpush

View File

@ -0,0 +1,123 @@
@extends('layout.base') @section('content')
<div class="panel panel-default">
<div class="panel-heading">Agregar Cuotas - <a href="{{url('', ['p' => 'pies', 'a' => 'resumen', 'pie' => $pie->id])}}">Departamento {{$pie->venta()->unidad()->descripcion}}</a> - {{$pie->venta()->proyecto()->descripcion}}</div>
<div class="panel-body">
@if (count($pie->venta()->propietario()->ventas()) > 1)
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'pies', 'a' => 'asociar', 'pie' => $pie->id])}}">
<div class="form-group">
<div class="col-md-3">
<select name="asociado" class="form-control">
@foreach ($pie->venta()->propietario()->ventas() as $v)
@if ($v->unidad()->id == $pie->venta()->unidad()->id)
@continue
@endif
<option value="{{$v->pie()->id}}">
{{$v->unidad()->descripcion}} - {{$v->proyecto()->descripcion}}
@if ($v->pie()->asociado == 0)
({{count($v->pie()->cuotas())}})
@endif
</option>
@endforeach
</select>
</div>
<div class="col-md-2"><input type="submit" class="form-control" value="Asociar" /></div>
</div>
</form>
@endif
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'cuotas', 'a' => 'agregar', 'pie' => $pie->id])}}">
<?php $t = \Carbon\Carbon::today(config('app.timezone')) ?>
<table class="table">
<thead>
<tr>
<th>#</th>
<th colspan="3">Fecha</th>
<th>Banco</th>
<th>Identificador</th>
<th>Valor [$]</th>
</tr>
</thead>
<tbody>
<?php $cant = $pie->cuotas - count($pie->cuotas()); $ini = count($pie->cuotas()) + 1 ?>
@for ($n = 0; $n < $cant; $n ++)
<tr>
<td>
<div class="input-group">
<input type="text" size="2" maxlength="2" name="numero{{$n}}" class="form-control" value="{{$ini + $n}}" />
<span class="input-group-addon glyphicon glyphicon-copy" data-name="numero" data-n="{{$n}}"></span>
</div>
</td>
<td><select name="day{{$n}}" class="form-control">
@for ($i = 0; $i < 31; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $t->day)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></td>
<td><select name="month{{$n}}" class="form-control">
@for ($i = 0; $i < 12; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $t->month)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></td>
<td>
<div class="input-group">
<select name="year{{$n}}" class="form-control">
@for ($i = $t->year + 4; $i > $t->year - 5; $i --)
<option value="{{$i}}"
@if ($i == $t->year)
selected="selected"
@endif
>{{$i}}</option>
@endfor
</select>
<span class="input-group-addon glyphicon glyphicon-copy" data-n="{{$n}}" data-name="fecha"></span>
</div>
</td>
<td>
<div class="input-group">
<input type="text" name="banco{{$n}}" class="banco form-control" autocomplete="off" />
<span class="input-group-addon glyphicon glyphicon-copy" data-n="{{$n}}" data-name="banco"></span>
</div>
</td>
<td>
<div class="input-group">
<input type="text" name="identificador{{$n}}" class="form-control" />
<span class="input-group-addon glyphicon glyphicon-copy" data-n="{{$n}}" data-name="identificador"></span>
</div>
</td>
<td>
<div class="input-group">
<input type="text" name="valor{{$n}}" class="form-control" />
<span class="input-group-addon glyphicon glyphicon-copy" data-n="{{$n}}" data-name="valor"></span>
</div>
</td>
</tr>
@endfor
</tbody>
</table>
<input type="hidden" name="cuotas" value="{{$cant}}" />
<div class="form-group">
<div class="col-md-3"><input type="submit" value="Agregar" class="form-control" /></div>
</div>
</form>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
$.getJSON('{!!url('', ['p' => 'ajax', 'a' => 'buscar', 't' => 'bancos'])!!}', function(data, status, xhr) {
$('.banco').each(function(i, e) {
$(this).typeahead({"source": data});
});
});
});
</script>
<script type="text/javascript" src="{!!url('js/ventas/pies/cuotas/add.js')!!}"></script>
@endpush

View File

@ -0,0 +1,69 @@
@extends('layout.base') @section('content')
<div class="panel panel-default">
<div class="panel-heading">Editar Cuota - <a href="{{url('', ['p' => 'pies', 'a' => 'resumen', 'pie' => $cuota->pie()->id])}}">Departamento {{$cuota->pie()->venta()->unidad()->descripcion}}</a> - {{$cuota->pie()->venta()->proyecto()->descripcion}}</div>
<div class="panel-body">
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'cuotas', 'a' => 'editar', 'cuota' => $cuota->id])}}">
<?php $f = \Carbon\Carbon::parse($cuota->fecha, config('app.timezone')); $t = \Carbon\Carbon::today(config('app.timezone')) ?>
<div class="form-group">
<div class="col-md-2">#</div>
<div class="col-md-2"><input type="text" size="2" maxlength="2" class="form-control" name="numero" value="{{$cuota->numero}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Fecha</div>
<div class="col-md-1"><select name="day" class="form-control">
@for ($i = 0; $i < 31; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $f->day)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-1"><select name="month" class="form-control">
@for ($i = 0; $i < 12; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $f->month)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-2"><select name="year" class="form-control">
@for ($i = $t->year + 4; $i > $t->year - 5; $i --)
<option value="{{$i}}"
@if ($i == $f->year)
selected="selected"
@endif
>{{$i}}</option>
@endfor
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Banco</div>
<div class="col-md-5"><input type="text" name="banco" id="banco" class="form-control" value="{{($cuota->pago()->banco != 0) ? $cuota->pago()->banco()->nombre : ''}}" autocomplete="off" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Identificador</div>
<div class="col-md-5"><input type="text" name="identificador" class="form-control" value="{{$cuota->pago()->identificador}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Valor [$]</div>
<div class="col-md-4"><input type="text" name="valor" class="form-control" value="{{$cuota->pago()->valor}}" /></div>
</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>
</div>
</div>
@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,10 @@
@if ($cuota->pago()->estado()->tipo()->descripcion == 'abonado')
success
@elseif ($cuota->pago()->estado()->tipo()->descripcion == 'depositado')
warning
@elseif ($cuota->pago()->estado()->tipo()->descripcion == 'devuelto')
error
@elseif ($cuota->pago()->estado()->tipo()->descripcion == 'no pagado')
@else
danger
@endif

View File

@ -0,0 +1,139 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">Cuotas Pendientes</div>
<div class="panel-body">
<div class="row">
<div class="col-md-2">Total</div>
<div class="col-md-1">{{count($cuotas)}}</div>
<div class="col-md-8">$ {{format('pesos', $sum)}}</div>
<div class="col-md-1 text-right"></div>
</div>
<div class="row">
<div class="col-md-offset-8 col-md-4"><input type="text" class="form-control focus" id="tableFilter" /></div>
</div>
<table class="table table-striped" id="filteredTable">
<thead>
<tr>
<th rowspan="2">Proyecto</th>
<th>Departamento</th>
<th>$</th>
<th>D&iacute;a</th>
<th>Cuota</th>
<th><button onclick="javascript: pagarTodos();">&check;</button></th>
</tr>
<tr>
<th>Propietario</th>
<th>Banco</th>
<th>Fecha Cheque</th>
<th>Depositar</th>
<th></th>
</tr>
</thead>
<tbody>
<?php $t = \Carbon\Carbon::today(config('app.timezone')) ?>
@foreach ($cuotas as $cuota)
<?php
$f = \Carbon\Carbon::parse($cuota->pago()->fecha, config('app.timezone'));
if ($f->dayOfWeek == \Carbon\Carbon::SATURDAY or $f->dayOfWeek == \Carbon\Carbon::SUNDAY) {
$f->next(\Carbon\Carbon::MONDAY);
}
?>
<tr>
<td rowspan="2">{{$cuota->pie()->venta()->proyecto()->descripcion}}</td>
<td class="text-center"><a href="{{url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $cuota->pie()->venta()->id])}}">{{$cuota->pie()->venta()->unidad()->descripcion}}</a></td>
<td class="text-right">$ {{format('pesos', $cuota->pago()->valor)}}</td>
<td>{{format('localDate', $f, 'EEEE dd')}}</td>
<td>{{str_pad($cuota->numero, 2, '0', STR_PAD_LEFT)}} - {{str_pad($cuota->pie()->cuotas, 2, '0', STR_PAD_LEFT)}}</td>
<td><input type="checkbox" name="chk" data-value="{{$cuota->id}}" /></td>
</tr>
<tr>
<td>{{$cuota->pie()->venta()->propietario()->nombreCompleto()}}</td>
<td>@if ($cuota->pago()->banco()) {{$cuota->pago()->banco()->nombre}} @endif</td>
<td
@if ($f < $t)
class="danger"
@endif
>{{format('shortDate', $cuota->pago()->fecha)}}</td>
<td>
<select name="d{{$cuota->id}}">
@for ($i = 0; $i < 31; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $t->day)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select>
<select name="m{{$cuota->id}}">
@for ($i = 0; $i < 12; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $t->month)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select>
<select name="y{{$cuota->id}}">
@for ($i = $t->year; $i > $t->year - 5; $i --)
<option value="{{$i}}">{{$i}}</option>
@endfor
</select>
</td>
<td><a href="#" onclick="javascript: pagar({{$cuota->id}})">&check;</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
$('.focus').focus();
});
$('#tableFilter').filterTable({"table": 'filteredTable', "height": 2, "excludes": ['Depositar', '']});
function pagar(id_cuota) {
var fy = $("select[name='y" + id_cuota + "']").val();
var fm = $("select[name='m" + id_cuota + "']").val();
var fd = $("select[name='d" + id_cuota + "']").val();
var fecha = fy + '-' + fm + '-' + fd;
$.post('{!!nUrl('cuotas', 'depositar')!!}', {"cuota": id_cuota, "fecha": fecha} , function(data) {
if (data == 'ok') {
window.location.reload();
}
console.debug(data);
});
}
function pagarTodos()
{
var cnt = 0;
var ok = 0;
$("input[name='chk']").each(function(e, i) {
if (!$(this).is(':checked')) {
return;
}
cnt ++;
var id = $(this).attr('data-value');
var fy = $("select[name='y" + id + "']").val();
var fm = $("select[name='m" + id + "']").val();
var fd = $("select[name='d" + id + "']").val();
var fecha = fy + '-' + fm + '-' + fd;
$.post('{!!nUrl('cuotas', 'depositar')!!}', {"cuota": id, "fecha": fecha}, function(data) {
if (data == 'ok') {
ok ++;
} else {
console.debug(data);
}
});
});
if (ok == cnt) {
window.location.reload();
}
}
</script>
@endpush

View File

@ -0,0 +1,64 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-11 h3"><a href="{{url('', ['p' => 'pies', 'a' => 'resumen', 'pie' => $cuota->pie()->id])}}">Cuota - {{$cuota->pie()->venta()->unidad()->descripcion}} - {{$cuota->pie()->venta()->proyecto()->descripcion}}</a></div>
<div class="col-md-1 h3"><a href="{{url('', ['p' => 'cuotas', 'a' => 'edit', 'cuota' => $cuota->id])}}"><span class="glyphicon glyphicon-edit"></span></a></div>
</div>
<br />
<div class="row">
<div class="col-md-2">N&uacute;mero</div>
<div class="col-md-1">{{$cuota->numero()}}</div>
</div>
<div class="row">
<div class="col-md-2">Fecha</div>
<div class="col-md-5">{{format('shortDate', $cuota->pago()->fecha)}}</div>
</div>
<div class="row">
<div class="col-md-2">Identificador</div>
<div class="col-md-5">{{$cuota->pago()->identificador}}</div>
</div>
<div class="row">
<div class="col-md-2">Banco</div>
<div class="col-md-4">{{($cuota->pago()->banco != 0) ? $cuota->pago()->banco()->nombre : ''}}</div>
</div>
<div class="row">
<div class="col-md-2">Valor</div>
<div class="col-md-3">$ {{format('pesos', $cuota->pago()->valor())}}</div>
<div class="col-md-3">{{format('ufs', $cuota->pago()->valor('ufs'))}} UF</div>
</div>
<div class="row">
<div class="col-md-4 h4">Historial</div>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>Fecha</th>
<th>Estado</th>
</tr>
</thead>
<tbody>
@foreach ($cuota->pago()->estados() as $estado)
<tr class="
@switch ($estado->tipo()->descripcion)
@case ('abonado')
success
@break
@case ('depositado')
warning
@break
@case ('devuelto')
danger
@break
@case ('en observacion')
info
@break
@endswitch
">
<td>{{format('shortDate', $estado->fecha)}}</td>
<td>{{ucwords($estado->tipo()->descripcion)}}</td>
</tr>
@endforeach
</tbody>
</table>
@endsection