Files
intranet/app/Controller/Pagares.php

272 lines
8.1 KiB
PHP
Raw Normal View History

2020-12-01 17:23:13 -03:00
<?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]));
}
}