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

213 lines
6.5 KiB
PHP

<?php
namespace App\Controller;
use App\Definition\Controller;
use Incoviba\old\Venta\Venta;
use Incoviba\old\Venta\Pago;
use Carbon\Carbon;
use Incoviba\old\Venta\Escritura;
use Incoviba\old\Common\Banco;
use Incoviba\old\Venta\Credito;
use Incoviba\old\Venta\Subsidio;
use Incoviba\old\Venta\EstadoPago;
use Incoviba\old\Venta\TipoEstadoVenta;
use Incoviba\old\Venta\EstadoVenta;
class Escrituras
{
use Controller;
protected static function setDefault()
{
self::$default = view('construccion');
}
public static function add()
{
$id = get('venta');
if ($id == null) {
header('Location: .');
}
$venta = \Model::factory(Venta::class)->findOne($id);
return view('ventas.escrituras.add', compact('venta'));
}
public static function agregar()
{
$id = get('venta');
$venta = \Model::factory(Venta::class)->findOne($id);
$f = Carbon::createFromDate(post('escritura_year'), post('escritura_month'), post('escritura_day'), config('app.timezone'));
$venta->escriturado = $f->format('Y-m-d');
if (post('valor_reajuste')) {
$reajuste = \Model::factory(Pago::class)->create();
$reajuste->valor = correctNumber(post('valor_reajuste'));
$fp = Carbon::createFromDate(post('reajuste_year'), post('reajuste_month'), post('reajuste_day'), config('app.timezone'));
$reajuste->fecha = $fp->format('Y-m-d');
$reajuste->uf = (float) uf($fp)->uf->value;
$reajuste->newPagado();
$pie = $venta->pie();
$pie->reajuste = $reajuste->id;
$pie->save();
}
if (post('escritura_valor') or post('escritura_valor_uf')) {
$pago = \Model::factory(Pago::class)->create();
$fp = Carbon::createFromDate(post('pago_escritura_year'), post('pago_escritura_month'), post('pago_escritura_day'), config('app.timezone'));
$pago->fecha = $fp->format('Y-m-d');
$pago->uf = (float) uf($fp)->uf->value;
if (post('escritura_valor')) {
$pago->valor = correctNumber(post('escritura_valor'));
$pago->newPagado();
} else {
$pago->valor = correctNumber(post('escritura_valor_uf')) * $pago->uf;
$pago->new();
}
$escritura = \Model::factory(Escritura::class)->create();
$escritura->pago = $pago->id;
$escritura->valor = $pago->valor('uf');
$escritura->fecha = $pago->fecha;
$escritura->save();
$venta->escritura = $escritura->id;
}
if (post('subsidio_ahorrado') or post('subsidio_valor')) {
$total = post('subsidio_ahorrado') + post('subsidio_valor');
$subsidio = \Model::factory(Subsidio::class)->create();
$pago = \Model::factory(Pago::class)->create();
$pago->fecha = $f->format('Y-m-d');
$pago->uf = (float) uf($f)->uf->value;
$pago->valor = correctNumber(post('subsidio_ahorrado')) * $pago->uf;
$pago->new();
$subsidio->pago = $pago->id;
$pago = \Model::factory(Pago::class)->create();
$pago->fecha = $f->format('Y-m-d');
$pago->uf = (float) uf($f)->uf->value;
$pago->valor = correctNumber(post('subsidio_valor')) * $pago->uf;
$pago->new();
$subsidio->subsidio = $pago->id;
$subsidio->save();
$venta->subsidio = $subsidio->id;
}
if (post('credito_valor')) {
$pago = \Model::factory(Pago::class)->create();
$pago->fecha = $f->format('Y-m-d');
$pago->uf = (float) uf($f)->uf->value;
$valor = post('credito_valor');
if (strpos($valor, ',') !== false) {
$valor = correctNumber($valor);
}
$pago->valor = $valor * $pago->uf;
$banco = \Model::factory(Banco::class)->where('nombre', post('credito_banco'))->findOne();
$pago->banco = $banco->id;
$pago->new();
$credito = \Model::factory(Credito::class)->create();
$credito->pago = $pago->id;
$credito->save();
$venta->credito = $credito->id;
} elseif (post('credito_banco')) {
$pago = $venta->credito()->pago();
$banco = \Model::factory(Banco::class)->where('nombre', post('credito_banco'))->findOne();
$pago->banco = $banco->id;
$pago->save();
}
$tipo = \Model::factory(TipoEstadoVenta::class)->where('descripcion', 'escriturando')->findOne();
$data = [
'venta' => $venta->id,
'estado' => $tipo->id,
'fecha' => $venta->escriturado
];
$estado = \Model::factory(EstadoVenta::class)->create($data);
$estado->save();
$venta->save();
header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $venta->id]));
}
public static function edit()
{
$id = get('venta');
$venta = \Model::factory(Venta::class)->findOne($id);
echo view('ventas.escrituras.edit', compact('venta'));
}
public static function editar()
{
$id = get('venta');
$venta = \Model::factory(Venta::class)->findOne($id);
$f = Carbon::createFromDate(post('year'), post('month'), post('day'), config('app.timezone'));
$uf = uf($f);
$valor = correctNumber(post('valor'));
if ($valor == '') {
$valor_uf = correctNumber(post('valor_uf'));
$valor = $valor_uf * $uf->uf->value;
}
$pago = $venta->escritura()->pago();
if ($pago->valor != $valor) {
$pago->valor = $valor;
}
if ($pago->fecha != $f->format('Y-m-d')) {
$pago->fecha = $f->format('Y-m-d');
$pago->uf = $uf->uf->value;
}
$pago->save();
header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $venta->id]));
}
public static function informe()
{
$id = get('venta');
$venta = \Model::factory(Venta::class)->findOne($id);
return view('ventas.escrituras.informe', compact('venta'));
}
public static function pagar()
{
$id = get('venta');
$venta = model(Venta::class)->findOne($id);
return view('ventas.escrituras.pagar', compact('venta'));
}
public static function pagado()
{
$id = get('venta');
$venta = model(Venta::class)->findOne($id);
$f = Carbon::createFromDate(post('year'), post('month'), post('day'), config('app.timezone'));
$data = [
'pago' => $venta->escritura()->pago()->id,
'fecha' => $f->format('Y-m-d'),
'estado' => 1
];
$estado = model(EstadoPago::class)->create($data);
$estado->save();
header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $venta->id]));
}
public static function abonar()
{
$id = get('venta');
$venta = model(Venta::class)->findOne($id);
return view('ventas.escrituras.abonar', compact('venta'));
}
public static function abonado()
{
$id = get('venta');
$venta = model(Venta::class)->findOne($id);
$f = Carbon::createFromDate(post('year'), post('month'), post('day'), config('app.timezone'));
$data = [
'pago' => $venta->escritura()->pago()->id,
'fecha' => $f->format('Y-m-d'),
'estado' => 2
];
$estado = model(EstadoPago::class)->create($data);
$estado->save();
header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $venta->id]));
}
}
?>