272 lines
8.1 KiB
PHP
272 lines
8.1 KiB
PHP
|
<?php
|
||
|
namespace App\Controller;
|
||
|
|
||
|
use App\Definition\Controller;
|
||
|
use Incoviba\old\Proyecto\Pagare;
|
||
|
use Incoviba\old\Proyecto\Proyecto;
|
||
|
use Incoviba\old\Proyecto\RenovacionPagare;
|
||
|
use Incoviba\old\Proyecto\TipoMonedaPagare;
|
||
|
|
||
|
class Pagares
|
||
|
{
|
||
|
use Controller;
|
||
|
|
||
|
public static function show()
|
||
|
{
|
||
|
$pagare = model(Pagare::class)->findOne(get('pagare'));
|
||
|
return view('proyectos.pagares.show', compact('pagare'));
|
||
|
}
|
||
|
public static function add()
|
||
|
{
|
||
|
$proyecto = model(Proyecto::class)->findOne(get('proyecto'));
|
||
|
return view('proyectos.pagares.add', compact('proyecto'));
|
||
|
}
|
||
|
public static function do_add()
|
||
|
{
|
||
|
$proyecto = model(Proyecto::class)->findOne(get('proyecto'));
|
||
|
$data = post();
|
||
|
|
||
|
$data['id'] = $data['numero'];
|
||
|
unset($data['numero']);
|
||
|
$data['proyecto'] = $proyecto->id;
|
||
|
$moneda = model(TipoMonedaPagare::class)->where('descripcion', $data['moneda'])->findOne();
|
||
|
$data['moneda'] = $moneda->id;
|
||
|
|
||
|
$fecha = ['year', 'month', 'day'];
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha'] = implode('-', $fecha_arr);
|
||
|
|
||
|
foreach ($fecha as &$key) {
|
||
|
$key .= '_banco';
|
||
|
}
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha_banco'] = implode('-', $fecha_arr);
|
||
|
|
||
|
$data['abonado'] = (int) $data['abonado'];
|
||
|
if ($data['abonado'] == 0) {
|
||
|
$data['fecha'] = '0000-00-00';
|
||
|
}
|
||
|
|
||
|
$pagare = model(Pagare::class)->create($data);
|
||
|
$pagare->save();
|
||
|
header('Location: ' . nUrl('pagares', 'show', ['pagare' => $pagare->id]));
|
||
|
}
|
||
|
public static function edit()
|
||
|
{
|
||
|
$pagare = model(Pagare::class)->findOne(get('pagare'));
|
||
|
return view('proyectos.pagares.edit', compact('pagare'));
|
||
|
}
|
||
|
public static function do_edit()
|
||
|
{
|
||
|
$pagare = model(Pagare::class)->findOne(get('pagare'));
|
||
|
|
||
|
$data = post();
|
||
|
if ($pagare->id != $data['numero']) {
|
||
|
foreach ($pagare->renovaciones() as $renovacion) {
|
||
|
$renovacion->pagare = $data['numero'];
|
||
|
$renovacion->save();
|
||
|
}
|
||
|
$pagare->id = $data['numero'];
|
||
|
$changed = true;
|
||
|
}
|
||
|
unset($data['numero']);
|
||
|
$moneda = model(TipoMonedaPagare::class)->where('descripcion', $data['moneda'])->findOne();
|
||
|
$data['moneda'] = $moneda->id;
|
||
|
$fecha = ['year', 'month', 'day'];
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha'] = implode('-', $fecha_arr);
|
||
|
|
||
|
foreach ($fecha as &$key) {
|
||
|
$key .= '_banco';
|
||
|
}
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha_banco'] = implode('-', $fecha_arr);
|
||
|
|
||
|
$data['abonado'] = (int) $data['abonado'];
|
||
|
if ($data['abonado'] == 0) {
|
||
|
$data['fecha'] = '0000-00-00';
|
||
|
}
|
||
|
|
||
|
$changed = false;
|
||
|
foreach ($data as $k => $v) {
|
||
|
if ($pagare->$k != $v) {
|
||
|
$pagare->$k = $v;
|
||
|
$changed = true;
|
||
|
if (strpos($k, 'fecha') !== false) {
|
||
|
$pagare->uf = 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ($changed) {
|
||
|
$pagare->save();
|
||
|
}
|
||
|
header('Location: ' . nUrl('pagares', 'show', ['pagare' => $pagare->id]));
|
||
|
}
|
||
|
public static function edit_renovacion()
|
||
|
{
|
||
|
$renovacion = model(RenovacionPagare::class)->findOne(get('renovacion'));
|
||
|
return view('proyectos.pagares.edit_renovacion', compact('renovacion'));
|
||
|
}
|
||
|
public static function do_edit_renovacion()
|
||
|
{
|
||
|
$renovacion = model(RenovacionPagare::class)->findOne(get('renovacion'));
|
||
|
|
||
|
$data = post();
|
||
|
$fecha = ['year', 'month', 'day'];
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha'] = implode('-', $fecha_arr);
|
||
|
|
||
|
foreach ($fecha as &$key) {
|
||
|
$key .= '_banco';
|
||
|
}
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha_banco'] = implode('-', $fecha_arr);
|
||
|
|
||
|
$changed = false;
|
||
|
foreach ($data as $k => $v) {
|
||
|
if ($renovacion->$k != $v) {
|
||
|
$renovacion->$k = $v;
|
||
|
$changed = true;
|
||
|
if (strpos($k, 'fecha') !== false) {
|
||
|
$renovacion->uf = 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if ($changed) {
|
||
|
$renovacion->save();
|
||
|
}
|
||
|
header('Location: ' . nUrl('pagares', 'show', ['pagare' => $renovacion->pagare]));
|
||
|
}
|
||
|
public static function add_renovacion()
|
||
|
{
|
||
|
$pagare = model(Pagare::class)->findOne(get('pagare'));
|
||
|
return view('proyectos.pagares.add_renovacion', compact('pagare'));
|
||
|
}
|
||
|
public static function do_add_renovacion()
|
||
|
{
|
||
|
$pagare = model(Pagare::class)->findOne(get('pagare'));
|
||
|
$data = post();
|
||
|
|
||
|
$data['pagare'] = $pagare->id;
|
||
|
$fecha = ['year', 'month', 'day'];
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha'] = implode('-', $fecha_arr);
|
||
|
|
||
|
foreach ($fecha as &$key) {
|
||
|
$key .= '_banco';
|
||
|
}
|
||
|
$fecha_arr = array_filter($data, function($item) use ($fecha) {
|
||
|
return (array_search($item, $fecha) !== false);
|
||
|
}, \ARRAY_FILTER_USE_KEY);
|
||
|
uksort($fecha_arr, function($a, $b) use ($fecha) {
|
||
|
return array_search($a, $fecha) - array_search($b, $fecha);
|
||
|
});
|
||
|
foreach ($fecha as $f) {
|
||
|
unset($data[$f]);
|
||
|
}
|
||
|
array_walk($fecha_arr, function(&$item) {
|
||
|
if (strlen($item) < 4) {
|
||
|
$item = str_pad($item, 2, '0', \STR_PAD_LEFT);
|
||
|
}
|
||
|
});
|
||
|
$data['fecha_banco'] = implode('-', $fecha_arr);
|
||
|
|
||
|
$renovacion = model(RenovacionPagare::class)->create($data);
|
||
|
$renovacion->save();
|
||
|
|
||
|
header('Location: ' . nUrl('pagares', 'show', ['pagare' => $renovacion->pagare]));
|
||
|
}
|
||
|
}
|