findOne($id); $len = strlen(post('total')); $unis = json_decode(post('unidades')); $data = []; foreach ($unis as $n_unidad) { if ($tipo->tipo()->descripcion == 'departamento') { $ini = post('piso_ini' . $n_unidad); $end = post('piso_end' . $n_unidad); $subtipo = post('linea' . $n_unidad); $orientacion = post('orientacion' . $n_unidad); for ($piso = $ini; $piso <= $end; $piso ++) { $descripcion = $piso . str_pad(post('linea' . $n_unidad), $len, '0', \STR_PAD_LEFT); $data []= [ 'proyecto' => $tipo->proyecto()->id, 'tipo' => $tipo->tipo()->id, 'subtipo' => $subtipo, 'piso' => $piso, 'descripcion' => $descripcion, 'abreviacion' => $tipo->abreviacion, 'm2' => $tipo->m2, 'terraza' => $tipo->terraza, 'logia' => $tipo->logia, 'orientacion' => $orientacion, 'pt' => $tipo->id ]; } } else { $descripcion = post('descripcion' . $n_unidad); $piso = post('piso' . $n_unidad); $data []= [ 'proyecto' => $tipo->proyecto()->id, 'tipo' => $tipo->tipo()->id, 'piso' => $piso, 'descripcion' => $descripcion, 'abreviacion' => $tipo->abreviacion, 'm2' => $tipo->m2, 'terraza' => $tipo->terraza, 'logia' => $tipo->logia, 'pt' => $tipo->id ]; } } foreach ($data as $uni) { $unidad = model(Unidad::class) ->where('descripcion', $uni['descripcion']) ->where('proyecto', $uni['proyecto']) ->where('tipo', $uni['tipo']) ->findOne(); if ($unidad) { continue; } $unidad = model(Unidad::class)->create($uni); $unidad->save(); } header('Location: ' . url('', ['p' => 'proyectos', 'a' => 'list_unidades', 'proyecto' => $tipo->proyecto()->id])); } public static function edit() { $id = get('unidad'); $unidad = model(Unidad::class)->findOne($id); $tipos = model(ProyectoTipoUnidad::class)->where('proyecto', $unidad->proyecto()->id)->findMany(); $abreviaciones = ['N', 'NE', 'E', 'SE', 'S', 'SO', 'O', 'NO']; $descripciones = ['Norte', 'Noreste', 'Este', 'Sureste', 'Sur', 'Suroeste', 'Oeste', 'Noroeste']; $orientaciones = []; foreach ($abreviaciones as $i => $ab) { $orientaciones []= (object) ['abreviacion' => $ab, 'descripcion' => $descripciones[$i]]; } return view('proyectos.unidades.edit', compact('unidad', 'tipos', 'orientaciones')); } public static function editar() { $id = get('unidad'); $unidad = model(Unidad::class)->findOne($id); $change = false; $fields = ['descripcion', 'tipo', 'piso', 'linea', 'orientacion']; foreach ($fields as $field) { $f = $field; if ($f == 'tipo') { $f = 'pt'; } if ($f == 'linea') { $f = 'subtipo'; } if ($unidad->{$f} != post($field)) { $unidad->{$f} = post($field); $change = true; } } if ($change) { $unidad->save(); } header('Location: ' . nUrl('proyectos', 'list_unidades', ['proyecto' => $unidad->proyecto()->id])); } public static function remove() { $id = get('unidad'); $unidad = model(Unidad::class)->findOne($id); $unidad->delete(); $id = get('proyecto'); header('Location: ' . nUrl('proyectos', 'list_unidades', ['proyecto' => $id])); } } ?>