Files
oficial/app/resources/views/ventas/facturacion/show.blade.php

141 lines
6.7 KiB
PHP
Raw Normal View History

2023-11-22 19:08:19 -03:00
@extends('layout.base')
@section('page_content')
<div class="ui container">
2023-11-29 20:09:08 -03:00
<h2 class="ui header">
Facturación -
<a href="{{$urls->base}}/proyecto/{{$venta->proyecto()->id}}">
{{$venta->proyecto()->descripcion}}<span class="ui tiny text"><sub><i
class="search icon"></i></sub></span>
</a>
-
<a href="{{$urls->base}}/venta/{{$venta->id}}">
{{$venta->propiedad()->summary()}}
</a>
</h2>
2024-04-28 23:01:55 -04:00
<span id="venta"></span>
2024-04-18 20:30:26 -04:00
<div id="facturas"></div>
2024-04-28 23:01:55 -04:00
</div>
2023-11-22 19:08:19 -03:00
@endsection
2023-11-29 20:09:08 -03:00
@push('page_scripts')
2025-01-17 00:07:45 -03:00
@include('ventas.facturacion.show.factura')
@include('ventas.facturacion.show.propietario')
@include('ventas.facturacion.show.unidad')
@include('ventas.facturacion.show.venta')
2023-11-29 20:09:08 -03:00
<script>
2024-04-28 23:01:55 -04:00
const facturas = {
ids: {},
venta: null,
formatters: {
date: new Intl.DateTimeFormat('es-CL', {year: 'numeric', month: '2-digit', day: '2-digit'}),
pesos: new Intl.NumberFormat('es-CL', {minimumFractionDigits: 0, maximumFractionDigits: 0}),
ufs: new Intl.NumberFormat('es-CL', {minimumFractionDigits: 2, maximumFractionDigits: 2}),
2024-06-10 21:41:11 -04:00
percent: new Intl.NumberFormat('es-CL', {minimumFractionDigits: 4, maximumFractionDigits: 4})
2024-04-18 20:30:26 -04:00
},
draw() {
return {
2024-04-28 23:01:55 -04:00
venta: () => {
document.getElementById(this.ids.venta).innerHTML = this.venta.draw().venta(this.formatters.ufs)
this.venta.watch().venta()
2024-04-18 20:30:26 -04:00
},
facturas: () => {
2024-04-28 23:01:55 -04:00
document.getElementById(this.ids.facturas).innerHTML = this.venta.draw().facturas(this.formatters)
2024-06-18 22:41:03 -04:00
$('button.guardar').click(clickEvent => {
const index = clickEvent.currentTarget.getAttribute('data-index')
facturas.venta.save().factura({index: index-1})
})
2023-11-29 20:09:08 -03:00
}
}
},
2024-04-28 23:01:55 -04:00
setup({ids}) {
this.ids = ids
this.venta = new Venta({
id: {{$venta->id}},
2025-01-17 00:07:45 -03:00
inmobiliaria: {
rut: '{{$venta->proyecto()->inmobiliaria()->rut()}}',
nombre: '{{$venta->proyecto()->inmobiliaria()->nombreCompleto()}}',
direccion: '{{$venta->proyecto()->direccion()->simple()}}',
comuna: '{{$venta->proyecto()->direccion()->comuna->descripcion}}'
},
2024-04-28 23:01:55 -04:00
proyecto: {
id: {{$venta->proyecto()->id}},
2023-11-30 18:40:15 -03:00
},
2024-04-28 23:01:55 -04:00
valor: {{$venta->valor}},
2024-04-29 10:45:19 -04:00
uf: {
fecha: new Date('{{$venta->currentEstado()->fecha->add(new DateInterval('P1D'))->format('Y-m-d')}}'),
valor: {{$uf}}
},
2024-04-28 23:01:55 -04:00
estado: {
fecha: new Date('{{$venta->currentEstado()->fecha->add(new DateInterval('P1D'))->format('Y-m-d')}}')
2023-11-30 18:40:15 -03:00
},
2024-04-28 23:01:55 -04:00
last: {
november: new Date('{{(new DateTimeImmutable())->sub(new DateInterval('P1Y'))->format('Y-11-30')}}')
},
unidades: [
@foreach ($venta->propiedad()->unidades as $unidad)
new Unidad({
id: {{$unidad->id}},
tipo: '{{ucwords($unidad->proyectoTipoUnidad->tipoUnidad->descripcion)}}',
descripcion: '{{$unidad->descripcion}}',
prorrateo: {{$unidad->prorrateo}},
propiedad_unidad_id: {{$unidad->pu_id}},
valor: {{($unidad->valor > 0) ? $unidad->valor : $unidad->precio($venta->currentEstado()->fecha)->valor}}
}),
@endforeach
],
propietarios: [],
2025-01-17 00:07:45 -03:00
facturas: {
fecha: new Date('{{$venta->currentEstado()->fecha->add(new DateInterval('P1D'))->format('Y-m-d')}}'),
terreno: {
@if ($terreno->fecha != null) fecha: new Date('{{$terreno->fecha->add(new DateInterval('P1D'))->format('Y-m-d')}}'),
@else fecha: null,
@endif
valor: {{($terreno->valor ?? 0) * (1+$ipc)}}
},
facturas: []
}
2023-11-29 20:09:08 -03:00
})
2024-06-18 22:41:03 -04:00
@if (count($facturas) > 0)
this.venta.props.uf = {
fecha: new Date('{{$facturas[0]->fechaUF->format('Y-m-d')}}'),
valor: {{$facturas[0]->valorUF}}
}
@foreach ($facturas as $factura)
this.venta.props.facturas[{{$factura->index-1}}] = new Factura(JSON.parse('{!! json_encode($factura) !!}'))
this.venta.props.facturas[{{$factura->index-1}}].props.saved = true
this.venta.props.propietarios[{{$factura->index-1}}] = new Propietario({
index: {{$factura->index}},
proporcion: {{$factura->proporcion}},
rut: '{{$factura->receptorRut}}',
nombre: '{{$factura->receptorNombre}}',
direccion: '{{$factura->receptorDireccion}}',
comuna: '{{$factura->receptorComuna}}',
fecha: new Date('{{$factura->fecha->format('Y-m-d')}}'),
})
@endforeach
@else
this.venta.add().propietario({
2025-01-17 00:07:45 -03:00
proporcion: 1,
2024-06-18 22:41:03 -04:00
rut: '{{$venta->propietario()->rut()}}',
nombre: '{{$venta->propietario()->nombreCompleto()}}',
direccion: '{{$venta->propietario()->datos->direccion->simple()}}',
2025-01-17 00:07:45 -03:00
comuna: '{{$venta->propietario()->datos->direccion->comuna->id}}'
2024-06-18 22:41:03 -04:00
})
@endif
2024-04-28 23:01:55 -04:00
this.draw().venta()
2025-01-17 00:07:45 -03:00
this.venta.update().facturas()
2024-04-28 23:01:55 -04:00
this.draw().facturas()
2023-11-29 20:09:08 -03:00
}
}
$(document).ready(() => {
2024-04-28 23:01:55 -04:00
facturas.setup({
ids: {
venta: 'venta',
facturas: 'facturas'
}
})
2023-11-29 20:09:08 -03:00
})
</script>
@endpush