App control
This commit is contained in:
100
app/Controller/Contabilidad.php
Normal file
100
app/Controller/Contabilidad.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
namespace App\Controller;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Definition\Controller;
|
||||
use Incoviba\old\Proyecto\Proyecto;
|
||||
|
||||
class Contabilidad {
|
||||
use Controller;
|
||||
|
||||
/**
|
||||
* Obtener Proyecto y fecha
|
||||
* Listar Proyectos y fechas
|
||||
* Listar pagos realizados en esa fecha para detalle de contabilidad
|
||||
*/
|
||||
public static function get_proyectos() {
|
||||
$proyectos = model(Proyecto::class)->orderByAsc('descripcion')->findMany();
|
||||
foreach ($proyectos as &$proyecto) {
|
||||
$arr = $proyecto->asArray();
|
||||
$arr['direccion'] = $proyecto->direccion()->asArray();
|
||||
$arr['direccion']['comuna'] = $proyecto->direccion()->comuna()->asArray();
|
||||
$arr['inmobiliaria'] = $proyecto->inmobiliaria()->asArray();
|
||||
$proyecto = $arr;
|
||||
}
|
||||
return json_encode(compact('proyectos'));
|
||||
}
|
||||
public static function get_fechas() {
|
||||
$id_proyecto = get('proyecto');
|
||||
$proyecto = model(Proyecto::class)->findOne($id_proyecto);
|
||||
$cuotas = [];
|
||||
foreach ($proyecto->ventas() as $venta) {
|
||||
$cs = $venta->pie()->cuotas();
|
||||
$cuotas = array_merge($cs, array_filter($cs, function($item) {
|
||||
$tipo = $item->pago()->estado()->tipo();
|
||||
return ($tipo == 'depositado' or $tipo == 'abonado');
|
||||
}));
|
||||
}
|
||||
$fechas = array_map(function($item) {
|
||||
return [
|
||||
'timestamp' => $item->pago()->estado()->fecha()->timestamp,
|
||||
'short' => $item->pago()->estado()->fecha()->format('Y-m-d'),
|
||||
'long' => $item->pago()->estado()->fecha()->format('d / m / Y')
|
||||
];
|
||||
}, $cuotas);
|
||||
usort($fechas, function($a, $b) {
|
||||
return $b['timestamp'] - $a['timestamp'];
|
||||
});
|
||||
return json_encode(compact('fechas'));
|
||||
}
|
||||
public static function get_pagos_fechas() {
|
||||
$id_proyecto = get('proyecto');
|
||||
$fecha = Carbon::parse(get('fecha'));
|
||||
$proyecto = model(Proyecto::class)->findOne($id_proyecto);
|
||||
$pagos = [];
|
||||
foreach ($proyecto->ventas() as $venta) {
|
||||
foreach ($venta->pie()->cuotas() as $cuota) {
|
||||
if ($cuota->pago()->estado()->fecha() == $fecha) {
|
||||
$pagos []= [
|
||||
'Departamento' => $venta->propiedad()->unidad()->descripcion,
|
||||
'Valor' => [
|
||||
'UF' => $cuota->pago()->valor('ufs'),
|
||||
'Pesos' => $cuota->pago()->valor()
|
||||
],
|
||||
'Numero' => $cuota->numero(),
|
||||
'Total' => $venta->pie()->cuotas
|
||||
];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return json_encode(compact('pagos'));
|
||||
}
|
||||
public static function pagos_fecha() {
|
||||
$fecha = Carbon::now();
|
||||
return view('contabilidad.pagos', compact('fecha'));
|
||||
}
|
||||
public static function show_pagos() {
|
||||
$id_proyecto = get('proyecto');
|
||||
$fecha = Carbon::parse(get('fecha'));
|
||||
$proyecto = model(Proyecto::class)->findOne($id_proyecto);
|
||||
$pagos = [];
|
||||
foreach ($proyecto->ventas() as $venta) {
|
||||
foreach ($venta->pie()->cuotas() as $cuota) {
|
||||
if ($cuota->pago()->estado()->fecha() == $fecha) {
|
||||
$pagos []= (object) [
|
||||
'Departamento' => $venta->propiedad()->unidad()->descripcion,
|
||||
'Valor' => (object) [
|
||||
'UF' => $cuota->pago()->valor('ufs'),
|
||||
'Pesos' => $cuota->pago()->valor()
|
||||
],
|
||||
'Numero' => $cuota->numero(),
|
||||
'Total' => $venta->pie()->cuotas
|
||||
];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return view('contabilidad.pago', compact('proyecto', 'fecha', 'pagos'));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user