Agregar datos propietario

This commit is contained in:
Juan Pablo Vial
2025-05-15 15:23:34 -04:00
parent e33edc4d7b
commit 03317b3aa5
10 changed files with 441 additions and 132 deletions

View File

@ -153,7 +153,7 @@
@include('layout.body.scripts.rut')
@push('page_scripts')
<script type="text/javascript">
<script>
const regiones = [
@foreach ($regiones as $region)
'<div class="item" data-value="{{$region->id}}">{{$region->descripcion}}</div>',
@ -354,56 +354,65 @@
const lines = [
'<label for="rut">RUT</label>',
'<div class="inline field">',
'<input type="text" id="rut" name="rut" placeholder="00000000-0" required />',
'<span class="ui error message" id="alert_rut">',
'<i class="exclamation triangle icon"></i>',
'RUT Inválido',
'</span>',
'<input type="text" id="rut" name="rut" placeholder="00000000-0" required />',
'<span class="ui error message" id="alert_rut">',
'<i class="exclamation triangle icon"></i>',
'RUT Inválido',
'</span>',
'</div>',
'<label for="nombres">Nombre</label>',
'<div class="inline fields">',
'<div class="field">',
'<input type="text" name="nombres" id="nombres" placeholder="Nombre(s)" required />',
'</div>',
'<div class="field">',
'<input type="text" name="apellido_paterno" placeholder="Apellido Paterno" required />',
'</div>',
'<div class="field">',
'<input type="text" name="apellido_materno" placeholder="Apellido Materno" required />',
'</div>',
'<div class="field">',
'<input type="text" name="nombres" id="nombres" placeholder="Nombre(s)" required />',
'</div>',
'<div class="field">',
'<input type="text" name="apellido_paterno" placeholder="Apellido Paterno" required />',
'</div>',
'<div class="field">',
'<input type="text" name="apellido_materno" placeholder="Apellido Materno" required />',
'</div>',
'</div>',
'<label for="calle">Dirección</label>',
'<div class="inline fields">',
'<div class="eight wide field">',
'<input type="text" name="calle" id="calle" size="16" placeholder="Calle" required />',
'</div>',
'<div class="field">',
'<input type="text" name="numero" size="5" placeholder="Número" required />',
'</div>',
'<div class="field">',
'<input type="text" name="extra" placeholder="Otros Detalles" />',
'</div>',
'<div class="eight wide field">',
'<input type="text" name="calle" id="calle" size="16" placeholder="Calle" required />',
'</div>',
'<div class="field">',
'<input type="text" name="numero" size="5" placeholder="Número" required />',
'</div>',
'<div class="field">',
'<input type="text" name="extra" placeholder="Otros Detalles" />',
'</div>',
'</div>',
'<div class="inline fields">',
'<div class="two wide field"></div>',
'<div class="four wide field">',
'<div class="ui fluid search selection dropdown" id="comuna">',
'<input type="hidden" name="comuna" />',
'<i class="dropdown icon"></i>',
'<div class="default text">Comuna</div>',
'<div class="menu"></div>',
'</div>',
'</div>',
'<div class="six wide field">',
'<div class="ui fluid search selection dropdown" id="region">',
'<input type="hidden" name="region" />',
'<i class="dropdown icon"></i>',
'<div class="default text">Región</div>',
'<div class="menu">',
...regiones,
'</div>',
'</div>',
'<div class="two wide field"></div>',
'<div class="four wide field">',
'<div class="ui fluid search selection dropdown" id="comuna">',
'<input type="hidden" name="comuna" />',
'<i class="dropdown icon"></i>',
'<div class="default text">Comuna</div>',
'<div class="menu"></div>',
'</div>',
'</div>',
'<div class="six wide field">',
'<div class="ui fluid search selection dropdown" id="region">',
'<input type="hidden" name="region" />',
'<i class="dropdown icon"></i>',
'<div class="default text">Región</div>',
'<div class="menu">',
...regiones,
'</div>',
'</div>',
'</div>',
'</div>',
'<label>Otros Datos</label>',
'<div class="inline fields">',
'<div class="four wide field">',
'<input type="email" name="email" placeholder="Email" />',
'</div>',
'<div class="field">',
'<input type="text" name="telefono" placeholder="Teléfono" />',
'</div>',
'</div>'
]
return lines.join("\n")
@ -467,8 +476,10 @@
'</div>',
'</div>',
'<div>Representante Legal</div>',
'<div class="ui divider"></div>',
this.persona.draw()
]
return [lines.join("\n"), this.persona.draw()].join("\n")
return lines.join("\n")
}
activate() {
new RutHandler({id: '#rut_sociedad', alert_id: '#alert_rut_sociedad'})
@ -486,6 +497,7 @@
draw() {
let lines = [
this.persona.draw(),
'<div class="ui divider"></div>',
'<label for="rut">RUT Otro</label>',
'<div class="inline field">',
'<input type="text" id="rut_otro" name="rut_otro" required />',
@ -538,6 +550,15 @@
'</div>',
'</div>',
'</div>',
'</div>',
'<label>Otros Datos para Otro</label>',
'<div class="inline fields">',
'<div class="four wide field">',
'<input type="email" name="email_otro" placeholder="Email" />',
'</div>',
'<div class="field">',
'<input type="text" name="telefono_otro" placeholder="Teléfono" />',
'</div>',
'</div>'
]
return lines.join("\n")
@ -607,6 +628,8 @@
parent.find("[name='extra']").val(data.propietario.direccion.extra)
parent.find('#region').dropdown('set selected', data.propietario.direccion.comuna.provincia.region.id)
parent.find('#comuna').dropdown('set selected', data.propietario.direccion.comuna.id)
parent.find("[name='email']").val(data.propietario.email)
parent.find("[name='telefono']").val(data.propietario.telefono)
if (data.propietario.representante !== '') {
document.getElementById(this.ids.tipo).trigger('check')

View File

@ -58,7 +58,17 @@ Editar Propietario
<select class="ui search selection dropdown" name="comuna" id="comunas"></select>
</div>
</div>
<button class="ui button" id="guardar_button">Guardar</button>
<div class="fields">
<div class="four wide field">
<label>Email</label>
<input type="email" name="email" value="{{$propietario->datos?->email}}" />
</div>
<div class="field">
<label>Teléfono</label>
<input type="text" name="telefono" value="{{$propietario->datos?->telefono}}" />
</div>
</div>
<button type="button" class="ui button" id="guardar_button">Guardar</button>
</form>
</div>
@endsection
@ -66,10 +76,10 @@ Editar Propietario
@include('layout.body.scripts.rut')
@push('page_scripts')
<script type="text/javascript">
<script>
class Propietario {
props
constructor({rut, digito, nombres, apellidos: {paterno, materno}, direccion: {calle, numero, extra, comuna, region}}) {
constructor({rut, digito, nombres, apellidos: {paterno, materno}, direccion: {calle, numero, extra, comuna, region}, email, telefono}) {
this.props = {
rut,
digito,
@ -85,6 +95,8 @@ Editar Propietario
comuna,
region
},
email,
telefono
}
}
@ -128,6 +140,12 @@ Editar Propietario
this.props.direccion.region = region
}
}
},
email: email => {
this.props.email = email
},
telefono: telefono => {
this.props.telefono = telefono
}
}
}
@ -145,7 +163,9 @@ Editar Propietario
numero: '{{$propietario->datos->direccion->numero}}',
extra: '{{trim($propietario->datos->direccion->extra)}}',
comuna: '{{$propietario->datos->direccion->comuna->id}}'
}
},
email: '{{trim($propietario->datos?->email)}}',
telefono: '{{trim($propietario->datos?->telefono)}}'
}
const data = {}
const collator = new Intl.Collator('es')
@ -299,6 +319,16 @@ Editar Propietario
propietario.props.data.update().direccion().comuna(comuna_id)
})
}
static email() {
$("[name='email']").change(event => {
propietario.props.data.update().email(event.currentTarget.value)
})
}
static telefono() {
$("[name='telefono']").change(event => {
propietario.props.data.update().telefono($(event.currentTarget).val())
})
}
static run() {
Watcher.rut()
@ -307,6 +337,8 @@ Editar Propietario
Watcher.direccion()
Watcher.region()
Watcher.comuna()
Watcher.email()
Watcher.telefono()
}
}
class EventHandler {
@ -381,6 +413,8 @@ Editar Propietario
$("[name='numero']").val(this.props.data.props.direccion.numero)
$("[name='extra']").val(this.props.data.props.direccion.extra)
$('#region').val(this.props.data.props.direccion.region)
$("[name='email']").val(this.props.data.props.email)
$("[name='telefono']").val(this.props.data.props.telefono)
this.update().region()
},
region: () => {
@ -422,6 +456,8 @@ Editar Propietario
this.props.data.update().direccion().extra(data.propietario.direccion.extra)
this.props.data.update().direccion().comuna(data.propietario.direccion.comuna.id)
this.props.data.update().direccion().region(data.propietario.direccion.comuna.provincia.region.id)
this.props.data.update().email(data.propietario.email)
this.props.data.update().telefono(data.propietario.telefono)
this.update().propietario()
})
})
@ -476,6 +512,8 @@ Editar Propietario
$("[name='calle']").val('')
$("[name='numero']").val('')
$("[name='extra']").val('')
$("[name='email']").val('')
$("[name='telefono']").val('')
}
}
},
@ -498,7 +536,8 @@ Editar Propietario
})
this.update().region()
$(this.props.ids.forms.edit).submit(Form.submit)
document.getElementById(this.props.ids.forms.edit.replace('#', '')).addEventListener('submit', Form.submit)
document.getElementById(this.props.ids.buttons.guardar.replace('#', '')).addEventListener('click', Form.submit)
Watcher.run()
}
}
@ -529,7 +568,9 @@ Editar Propietario
extra: '{{$propietario->datos->direccion->extra}}',
comuna: '{{$propietario->datos->direccion->comuna->id}}',
region: '{{$propietario->datos->direccion->comuna->provincia->region->id}}',
}
},
email: '{{$propietario->datos?->email}}',
telefono: '{{$propietario->datos?->telefono}}'
})
})
})