Files
oficial/resources/views/ventas/edit.blade.php
2021-03-25 21:20:49 -03:00

546 lines
18 KiB
PHP

@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Editar Venta - {{$venta->unidad()->descripcion}} - {{$venta->proyecto()->descripcion}}</div>
</div>
<br />
<form method="post" class="form-horizontal" action="{{url('', ['p' => 'ventas', 'a' => 'editar', 'venta' => $venta->id])}}">
<div class="form-group">
<div class="col-md-2">Fecha de Venta</div>
<?php $f = \Carbon\Carbon::parse($venta->fecha, config('app.timezone')) ?>
@include('form.fecha')
</div>
<div class="section-heading">PROPIETARIO</div>
<br />
<div class="form-group">
<div class="col-md-2">RUT</div>
<div class="col-md-2"><input type="text" name="rut" class="form-control" value="{{$venta->propietario()->rut}}{{$venta->propietario()->dv}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Nombre</div>
<div class="col-md-3"><input type="text" name="nombres" class="form-control" autocomplete="off" value="{{$venta->propietario()->nombres}}" /></div>
<div class="col-md-3"><input type="text" name="paterno" class="form-control" autocomplete="off" value="{{$venta->propietario()->apellido_paterno}}" /></div>
<div class="col-md-3"><input type="text" name="materno" class="form-control" autocomplete="off" value="{{$venta->propietario()->apellido_materno}}" /></div>
<div class="col-md-1"><input type="checkbox" name="otro" value="{{$venta->propietario()->otro}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Direcci&oacute;n</div>
<div class="col-md-4"><input type="text" name="calle" class="form-control" autocomplete="off" value="{{$venta->propietario()->direccion()->calle}}" /></div>
<div class="col-md-2"><input type="text" name="numero" class="form-control" value="{{$venta->propietario()->direccion()->numero}}" /></div>
<div class="col-md-3"><input type="text" name="extra" class="form-control" autocomplete="off" value="{{$venta->propietario()->direccion()->extra}}" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-5"><select name="region" class="form-control">
@foreach ($regiones as $region)
<option value="{{$region->id}}"
@if ($region->numeral == $venta->propietario()->direccion()->comuna()->provincia()->region()->numeral)
selected="selected"
@endif
>{{$region->descripcion}}</option>
@endforeach
</select></div>
<div class="col-md-4"><select name="comuna" class="form-control"></select></div>
</div>
<div class="section-heading">PROPIEDAD</div>
</br>
<div class="form-group">
<div class="col-md-2">Proyecto</div>
<div class="col-md-4"><select name="proyecto" class="form-control">
<option value="0">---</option>
@foreach ($proyectos as $proyecto)
<option value="{{$proyecto->id}}"
@if ($venta->proyecto()->id == $proyecto->id)
selected="selected"
@endif
>{{$proyecto->descripcion}}</option>
@endforeach
</select></div>
</div>
<div id="unidades">
<input type="hidden" name="unidades" value="0" />
<div class="form-group">
<div class="col-md-2">Unidades</div>
<div class="col-md-1"><span class="glyphicon glyphicon-plus agregar" id="agregar_unidad"></span></div>
<div class="col-md-2"><select name="tipo_unidad" class="form-control"></select></div>
</div>
</div>
<div class="section-heading">FORMA DE PAGO</div>
<br />
<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="{{$venta->valor_uf}}" /></div>
<div class="col-md-1">UF</div>
</div>
<div class="form-group" id="pie">
<div class="col-md-2">Pie</div>
<div class="col-md-1"><span class="glyphicon glyphicon-plus agregar" id="agregar_pie"></span></div>
</div>
<div class="form-group" id="credito">
<div class="col-md-2">Cr&eacute;dito</div>
<div class="col-md-1"><span class="glyphicon glyphicon-plus agregar" id="agregar_credito"></span></div>
</div>
<div class="section-heading">OTRAS CONDICIONES</div>
<br />
<div class="form-group" id="bono">
<div class="col-md-2">Bono Pie</div>
<div class="col-md-1"><span class="glyphicon glyphicon-plus agregar" id="agregar_bono"></span></div>
</div>
<div class="form-group">
<div class="col-md-2">Operador</div>
<div class="col-md-3"><select name="operador" class="form-control">
</select></div>
</div>
<div id="promociones">
<input type="hidden" name="promociones" value="0" />
<div class="form-group">
<div class="col-md-2">Promociones</div>
<div class="col-md-1"><span class="glyphicon glyphicon-plus agregar" id="agregar_promocion"></span></div>
</div>
</div>
<hr />
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><input type="submit" value="Editar" class="form-control" /></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
var unidades = [];
var pie = false;
var credito = false;
var bono = false;
var promociones = [];
$(document).ready(function() {
$("input[name='rut']").rut({"formatOn": 'keyup', "validateOn": 'blur'}).on('rutInvalido', function(e) {
$(this).parent().next().remove();
$(this).parent().after($('<div></div>').attr('class', 'col-md-2 alert-danger').html('Rut inv&aacute;lido'));
}).on('rutValido', function(e, rut, dv) {
$(this).parent().next().remove();
$.post('{!!url('', ['p' => 'ajax', 'a' => 'propietario', 'ajax' => true])!!}', {"rut": rut}, function(data) {
if (data.trim() != '' || data != 'false') {
info = $.parseJSON(data);
$("input[name='nombres']").val(info.nombres);
$("input[name='paterno']").val(info.apellido_paterno);
$("input[name='materno']").val(info.apellido_materno);
if (info.direccion) {
$.post('{!!url('', ['p' => 'ajax', 'a' => 'direccion', 'ajax' => true])!!}', {"direccion": info.direccion}, function(info) {
$("input[name='calle']").val(info.calle);
$("input[name='numero']").val(info.numero);
$("input[name='extra']").val(info.extra);
$("select[name='region']").val(info.comuna.provincia.region.id);
changeRegion().done(function() {
$("select[name='comuna']").val(info.comuna.id);
});
}, 'json');
}
}
});
});
$.post('{!!url('', ['p' => 'ajax', 'a' => 'nombres', 'ajax' => true])!!}', function(data) {
$("input[name='nombres']").typeahead({
"source": data,
"updater": function(item) {
return this.$element.val().replace(/[^ ]*$/,'') + item + ' ';
},
"matcher": function (item) {
var tquery = extractor(this.query);
if(!tquery) return false;
return ~item.toLowerCase().indexOf(tquery.toLowerCase())
},
"highlighter": function (item) {
var query = extractor(this.query).replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&');
return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>'
});
}
});
}, 'json');
$.post('{!!url('', ['p' => 'ajax', 'a' => 'apellidos', 'ajax' => true])!!}', function(data) {
$("input[name='paterno']").typeahead({"source": data});
$("input[name='materno']").typeahead({"source": data});
}, 'json');
$.post('{!!url('', ['p' => 'ajax', 'a' => 'calles', 'ajax' => true])!!}', function(data) {
$("input[name='calle']").typeahead({"source": data});
}, 'json');
$("input[name='extra']").typeahead({"source": ['Casa', 'Departamento', 'Oficina', 'Villa']});
$("select[name='region']").change(function(e) {
changeRegion($(this).val());
});
changeRegion($("select[name='region']").val());
$("select[name='proyecto']").change(function(e) {
changeProyecto();
});
changeProyecto();
$('#agregar_unidad').click(function(e) {
agregarUnidad();
});
$('#agregar_pie').click(function(e) {
agregarPie();
});
$('#agregar_credito').click(function(e) {
agregarCredito();
});
$('#agregar_bono').click(function(e) {
agregarBonoPie();
});
$('#agregar_promocion').click(function(e) {
agregarPromocion();
});
setup();
});
function extractor(query) {
var result = /([^ ]+)$/.exec(query);
if(result && result[1])
return result[1].trim();
return '';
}
function changeProyecto() {
var proyecto = $("select[name='proyecto']").val();
if (proyecto == '0') {
$('#unidades').hide();
return;
}
$.post('{!!url('', ['p' => 'ajax', 'a' => 'tipo_unidades', 'ajax' => true])!!}', {"proyecto": proyecto}, function(data) {
var tipo = $("select[name='tipo_unidad']");
tipo.html('');
var info = $.parseJSON(data);
$.each(info, function(i, e) {
tipo.append($('<option></option>').attr('value', e.id).html(e.descripcion.ucwords()));
});
$('#unidades').show();
});
$.post('{!!url('', ['p' => 'ajax', 'a' => 'operadores', 'ajax' => true])!!}', {"proyecto": proyecto}, function(data) {
var operadores = $("select[name='operador']");
operadores.html('').append($('<option></option>').attr('value', 0).html('---'));
var info = $.parseJSON(data);
$.each(info, function(i, e) {
operadores.append($('<option></option>').attr('value', e.id).html(e.abreviacion));
});
});
}
function agregarUnidad() {
var proyecto = $("select[name='proyecto']").val();
if (proyecto == '0') {
$('#unidades').hide();
}
var tipo = $("select[name='tipo_unidad']").val();
$.post('{!!url('', ['p' => 'ajax', 'a' => 'unidades', 'ajax' => true])!!}', {"proyecto": proyecto, "tipo": tipo}, function(data) {
var info = $.parseJSON(data);
var unis = $('#unidades');
var n = unidades[unidades.length - 1] + 1;
if (unidades.length == 0) {
n = 1
}
unidades[unidades.length] = n;
var select = $('<select></select>').attr('name', 'unidad' + n).attr('class', 'form-control');
$.each(info, function(i, e) {
select.append($('<option></option>').attr('value', e.id).html(e.descripcion + ' - ' + e.abreviacion));
});
var ntipo = $("select[name='tipo_unidad'] option[value='" + tipo + "']").text();
unis.append(
$('<div></div>').attr('class', 'form-group').append(
$('<div></div>').attr('class', 'col-md-2').html(ntipo)
).append(
$('<div></div>').attr('class', 'col-md-3').append(
select
)
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('data-id', n).attr('id', 'remover_unidad' + n)
)
)
);
$("input[name='unidades']").val(JSON.stringify(unidades));
$('#remover_unidad' + n).click(function(e) {
i = $(this).attr('data-id');
removeUnidad(i);
});
});
}
function removeUnidad(n) {
var unis = $('#unidades');
unis.find("select[name='unidad" + n + "']").parent().parent().remove();
i = unidades.binaryIndexOf(n);
unidades.splice(i, 1);
$("input[name='unidades']").val(JSON.stringify(unidades));
}
function agregarPie() {
if (pie) {
return;
}
pie = true;
$('#pie').html('').append(
$('<div></div>').attr('class', 'col-md-2').html('Pie')
).append(
$('<div></div>').attr('class', 'col-md-3').append(
$('<input/>').attr('type', 'text').attr('name', 'pie').attr('class', 'form-control')
)
).append(
$('<div></div>').attr('class', 'col-md-1').html('UF')
).after(
$('<div></div>').attr('class', 'form-group').append(
$('<div></div>').attr('class', 'col-md-2').html('Cuotas')
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<input/>').attr('type', 'text').attr('name', 'cuotas').attr('maxlength', '2').attr('class', 'form-control')
)
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('id', 'remover_pie')
)
)
);
$('#remover_pie').click(function(e) {
removePie();
});
}
function removePie() {
if (!pie) {
return;
}
pie = false;
$('#pie').next().remove();
$('#pie').html('').append(
$('<div></div>').attr('class', 'col-md-2').html('Pie')
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-plus agregar').attr('id', 'agregar_pie')
)
);
$('#agregar_pie').click(function(e) {
agregarPie();
});
}
function agregarCredito() {
if (credito) {
return;
}
credito = true;
$('#credito').html('').append(
$('<div></div>').attr('class', 'col-md-2').html('Cr&eacute;dito')
).append(
$('<div></div>').attr('class', 'col-md-3').append(
$('<input/>').attr('type', 'text').attr('name', 'credito').attr('class', 'form-control')
)
).append(
$('<div></div>').attr('class', 'col-md-1').html('UF')
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('id', 'remove_credito')
)
);
$('#remove_credito').click(function(e) {
removeCredito();
});
}
function removeCredito() {
if (!credito) {
return;
}
credito = false;
$('#credito').html('').append(
$('<div></div>').attr('class', 'col-md-2').html('Cr&eacute;dito')
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-plus agregar').attr('id', 'agregar_credito')
)
);
$('#agregar_credito').click(function(e) {
agregarCredito();
});
}
function agregarBonoPie() {
if (bono) {
return;
}
bono = true;
$('#bono').html('').append(
$('<div></div>').attr('class', 'col-md-2').html('Bono Pie')
).append(
$('<div></div>').attr('class', 'col-md-3').append(
$('<input/>').attr('type', 'text').attr('name', 'bono_pie').attr('class', 'form-control')
)
).append(
$('<div></div>').attr('class', 'col-md-1').html('UF')
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('id', 'remove_bono')
)
);
$('#remove_bono').click(function(e) {
removeBonoPie();
});
}
function removeBonoPie() {
if (!bono) {
return;
}
bono = false;
$('#bono').html('').append(
$('<div></div>').attr('class', 'col-md-2').html('Bono Pie')
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-plus agregar').attr('id', 'agregar_bono')
)
);
$('#agregar_bono').click(function(e) {
agregarBonoPie();
});
}
function changeRegion(region) {
var jq_comunas = $("select[name='comuna']");
var region = $("select[name='region']").val();
jq_comunas.html('');
return $.post('{!!url('', ['p' => 'ajax', 'a' => 'comunas', 'ajax' => true])!!}', {"region": region}, function(data) {
info = $.parseJSON(data);
$.each(info, function(i, e) {
jq_comunas.append(
$('<option></option>').attr('value', e.id).html(e.descripcion)
);
});
});
}
function agregarPromocion() {
var proyecto = $("select[name='proyecto']").val();
if (proyecto == '0') {
return;
}
$.post('{!!url('', ['p' => 'ajax', 'a' => 'promociones', 'ajax' => true])!!}', {"proyecto": proyecto}, function(data) {
var info = $.parseJSON(data);
var promos = $('#promociones');
var n = promociones[promociones.length - 1] + 1;
if (promociones.length == 0) {
n = 1
}
promociones[promociones.length] = n;
var select = $('<select></select>').attr('name', 'promocion' + n).attr('class', 'form-control');
$.each(info, function(i, e) {
select.append($('<option></option>').attr('value', e.id).html(e.titulo));
});
promos.append(
$('<div></div>').attr('class', 'form-group').append(
$('<div></div>').attr('class', 'col-md-2').append(
select
)
).append(
$('<div></div>').attr('class', 'col-md-3').append(
$('<input/>').attr('type', 'text').attr('name', 'promo' + n).attr('class', 'form-control')
)
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('data-id', n).attr('id', 'remover_promociones' + n)
)
)
);
$("input[name='promociones']").val(JSON.stringify(promociones));
$('#remover_promociones' + n).click(function(e) {
i = $(this).attr('data-id');
removePromocion(i);
});
});
}
function removePromocion(n) {
var promos = $('#promociones');
promos.find("select[name='promocion" + n + "']").parent().parent().remove();
i = promociones.binaryIndexOf(n);
promociones.splice(i, 1);
$("input[name='promociones']").val(JSON.stringify(promociones));
}
function setup() {
$("input[name='rut']").keyup();
var proyecto = {{$venta->proyecto()->id}};
agregarUnidadTipo(proyecto, 1, $.parseJSON('{!!json_encode($venta->unidad()->as_array())!!}'));
@if ($venta->propiedad()->estacionamientos != '')
var ests = [];
@foreach ($venta->propiedad()->estacionamientos() as $e)
ests.push($.parseJSON('{!!json_encode($e->as_array())!!}'));
@endforeach
$.each(ests, function(i, e) {
agregarUnidadTipo(proyecto, 2, e);
});
@endif
@if ($venta->propiedad()->bodegas != '')
var bods = [];
@foreach ($venta->propiedad()->bodegas() as $b)
bods.push($.parseJSON('{!!json_encode($b->as_array())!!}'));
@endforeach
$.each(bods, function(i, b) {
agregarUnidadTipo(proyecto, 3, b);
});
@endif
@if ($venta->pie != 0)
agregarPie();
$("input[name='pie']").val({{$venta->pie()->valor}});
$("input[name='cuotas']").val({{$venta->pie()->cuotas}});
@endif
@if ($venta->credito != 0)
agregarCredito();
$("input[name='credito']").val({{$venta->credito()->pago()->valor('ufs')}});
@endif
}
function agregarUnidadTipo(proyecto, tipo, unidad) {
$.post('{!!url('', ['p' => 'ajax', 'a' => 'unidades', 'ajax' => true])!!}', {"proyecto": proyecto, "tipo": tipo}, function(data) {
var info = $.parseJSON(data);
var unis = $('#unidades');
var n = unidades[unidades.length - 1] + 1;
if (unidades.length == 0) {
n = 1
}
unidades[unidades.length] = n;
var select = $('<select></select>').attr('name', 'unidad' + n).attr('class', 'form-control');
info.push(unidad);
$.each(info, function(i, e) {
var option = $('<option></option>').attr('value', e.id).html(e.descripcion + ' - ' + e.abreviacion);
select.append(option);
});
var ntipo = $("select[name='tipo_unidad'] option[value='" + tipo + "']").text();
unis.append(
$('<div></div>').attr('class', 'form-group').append(
$('<div></div>').attr('class', 'col-md-2').html(ntipo)
).append(
$('<div></div>').attr('class', 'col-md-3').append(
select
)
).append(
$('<div></div>').attr('class', 'col-md-1').append(
$('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('data-id', n).attr('id', 'remover_unidad' + n)
)
)
);
$("input[name='unidades']").val(JSON.stringify(unidades));
$('#remover_unidad' + n).click(function(e) {
i = $(this).attr('data-id');
removeUnidad(i);
});
$("select[name='unidad" + n + "']").val(unidad.id);
});
}
</script>
@endpush