Files
intranet/app/Controller/Unidades.php
2020-12-01 17:23:13 -03:00

127 lines
3.5 KiB
PHP

<?php
namespace App\Controller;
use App\Definition\Controller;
use Incoviba\old\Proyecto\Proyecto;
use Incoviba\old\Venta\TipoUnidad;
use Incoviba\old\Proyecto\ProyectoTipoUnidad;
use Incoviba\old\Venta\Unidad;
class Unidades
{
use Controller;
public static function agregar()
{
$id = get('tipo');
$tipo = model(ProyectoTipoUnidad::class)->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]));
}
}
?>