127 lines
3.5 KiB
PHP
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]));
|
||
|
}
|
||
|
}
|
||
|
?>
|