findOne($id); $propietario = $venta->propietario(); $regiones = model(Region::class)->orderByAsc('numeracion')->findMany(); return view('ventas.propietarios.edit', compact('venta', 'propietario', 'regiones')); } public static function editar() { $id = get('venta'); $venta = model(Venta::class)->findOne($id); $info = post(); list($info['rut'], $info['dv']) = explode('-', str_replace('.', '', $info['rut'])); $propietario = model(Propietario::class)->findOne($info['rut']); if (!$propietario) { $propietario = model(Propietario::class)->create(); } if ($propietario->direccion != 0) { $direccion = $propietario->direccion(); } else { $direccion = model(Direccion::class) ->where('calle', post('calle')) ->where('numero', post('numero')) ->where('extra', post('extra')) ->where('comuna', post('comuna')) ->findOne(); if (!$direccion) { $data = [ 'calle' => post('calle'), 'numero' => post('numero'), 'extra' => post('extra'), 'comuna' => post('comuna') ]; $direccion = model(Direccion::class)->create($data); } } if (isset($info['empresa'])) { $info['apellido_paterno'] = ''; $info['apellido_materno'] = ''; } if ($propietario->representante != 0) { list($info['rep_rut'], $info['rep_dv']) = explode('-', str_replace('.', '', $info['rep_rut'])); $representante = $propietario->representante(); } elseif (isset($info['rep_rut'])) { list($info['rep_rut'], $info['rep_dv']) = explode('-', str_replace('.', '', $info['rep_rut'])); $representante= model(Propietario::class)->findOne($info['rep_rut']); if (!$representante) { $representante= model(Propietario::class)->create(); } } $fields = ['rut', 'dv', 'nombres', 'apellido_paterno', 'apellido_materno']; $change = false; foreach ($fields as $key) { if ($propietario->$key != $info[$key]) { $propietario->$key = $info[$key]; $change = true; } } if ($direccion->isNew()) { $direccion->save(); } if ($propietario->direccion != $direccion->id) { $propietario->direccion = $direccion->id; $change = true; } if ($change) { d($propietario); $propietario->save(); } if (isset($info['rep_rut'])) { $change = false; if ($representante->rut != $info['rep_rut']) { $representante->rut = $info['rep_rut']; $representante->dv = $info['rep_dv']; $change = true; } if ($representante->nombres != $info['rep_nombres']) { $representante->nombres = $info['rep_nombres']; $change = true; } if ($representante->apellido_paterno != $info['rep_apaterno']) { $representante->apellido_paterno = $info['rep_apaterno']; $change = true; } if ($representante->apellido_materno != $info['rep_amaterno']) { $representante->apellido_materno = $info['rep_amaterno']; $change = true; } if ($representante->direccion != $direccion->id) { $representante->direccion = $direccion->id; $change = true; } if ($change) { $representante->save(); } if ($propietario->representante != $representante->rut) { $propietario->representante = $representante->rut; $propietario->save(); } } if ($venta->propietario != $propietario->rut) { $venta->propietario = $propietario->rut; $venta->save(); } header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $venta->id])); } } ?>