<?php
namespace App\Controller;

use App\Definition\Controller;
use Incoviba\old\Venta\Venta;
use Carbon\Carbon;
use Incoviba\nuevo\Venta\Observacion;
use Incoviba\nuevo\Venta\EstadoObservacion;
use Incoviba\nuevo\Venta\Postventa;
use Incoviba\nuevo\Venta\PostventaObservacion;
use Incoviba\nuevo\Venta\EstadoPostventa;

class Postventas
{
	use Controller;

	public static function add()
	{
		$id = get('venta');
		$venta = model(Venta::class)->findOne($id);

		return view('ventas.postventas.add', compact('venta'));
	}
	public static function agregar()
	{
		$id = get('venta');
		$venta = model(Venta::class)->findOne($id);

		$f = Carbon::createFromDate(post('year'), post('month'), post('day'), config('app.timezone'));
		$observaciones = json_decode(post('observaciones'));
		$postventa = model(Postventa::class)->create();
		$postventa->venta_id = $venta->id;
		$postventa->save();

		$estado = model(EstadoPostventa::class)->create();
		$estado->postventa_id = $postventa->id;
		$estado->tipo_estado_postventa_id = 1;
		$estado->fecha = $f->format('Y-m-d');
		$estado->save();

		foreach ($observaciones as $o) {
			$observacion = model(Observacion::class)->create();
			$observacion->texto = post('observacion' . $o);

			$observacion->save();

			$estado = model(EstadoObservacion::class)->create();
			$estado->observacion_id = $observacion->id;
			$estado->tipo_estado_observacion_id = 1;
			$estado->fecha = $f->format('Y-m-d');
			$estado->save();

			$po = model(PostventaObservacion::class)->create();
			$po->postventa_id = $postventa->id;
			$po->observacion_id = $observacion->id;
			$po->save();
		}
		header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $venta->id]));
	}
	public static function show()
	{
		$id = get('postventa');
		$postventa = model(Postventa::class)->findOne($id);
		$venta = model(Venta::class)->findOne($postventa->venta_id);

		return view('ventas.postventas.show', compact('postventa', 'venta'));
	}
}
?>
