<?php
namespace App\Model;


class Articulo extends GenericObject
{
    static $table_name = 'articulo';

    static $primary_key = 'art_codigo';

    public function cargar($data){
        $this->art_codigo = $data->id;
        $this->art_descri = $data->descripcion;
        $this->art_precio = $data->precio;
        $this->art_exegra = $data->tipo_impuesto;
        $this->art_inpu = $data->inpuesto;
    }

    public static function toJSON($result,$uptateStock = '2000-01-01')
    {
        if($result == null) return null;
        $temp = array();
        if(!isset($result->art_codigo)){
            $art_borrado = 0;
            $stock = json_decode(Stock::toJSON(Stock::all(
                array("conditions" => "stk_update > '".$uptateStock."'")
            )), true);
            $stock = Articulo::group_by($stock,"articulo_id");
            $presentaciones = json_decode(Presentacion::toJSON(Presentacion::all()), true);
            $presentaciones = Articulo::group_by($presentaciones,"articulo_id");
            foreach($result as $item){
                if (trim($item->art_codigo) == "099999") $art_borrado ++;
                $object = array(
                    "id" => $item->art_codigo,
                    "descripcion" => $item->art_descri,
                    "precio" => $item->art_precio,
                    "precioCosto" => $item->art_costo,
                    "precioMinimo" => $item->art_premin,
                    "canal1" => $item->art_canal1,
                    "canal2" => $item->art_canal2,
                    "canal3" => $item->art_canal3,
                    "precioOferta" => !isset($item->art_preofe) ? 0 : $item->art_preofe,
                    "ofertaDesde" => !isset($item->art_desofe) || $item->art_desofe == null ? null : $item->art_desofe->format('Y-m-d'),
                    "ofertaHasta" => !isset($item->art_hasofe) || $item->art_hasofe == null ? null : $item->art_hasofe->format('Y-m-d'),
                    "codigoBarra" => !isset($item->art_cbarra) || $item->art_cbarra == null ? null : $item->art_cbarra,
                    "multiplo" => !isset($item->art_solmul) || $item->art_solmul == null ? 0 : $item->art_solmul,
                    "tipoImpuesto" => $item->art_exegra,
                    "impuesto" => $item->art_impu,
                    "stock" => isset($stock[$item->art_codigo])?$stock[$item->art_codigo]:[],
                    "presentaciones" => isset($presentaciones[$item->art_codigo])?$presentaciones[$item->art_codigo]:[]
                );
                $temp[] = $object;
            }
            if($art_borrado == 0) {
                $temp[] = [
                    "id" => "099999",
                    "descripcion" => "Articulo Forzado Borrado",
                    "precio" => 0,
                    "precioCosto" => 0,
                    "precioMinimo" => 0,
                    "canal1" => 0,
                    "canal2" => 0,
                    "canal3" => 0,
                    "precioOferta" => 0,
                    "ofertaDesde" => null,
                    "ofertaHasta" => null,
                    "codigoBarra" => null,
                    "multiplo" => 0,
                    "tipoImpuesto" => 'I',
                    "impuesto" => 10
                ];
            }
        }else{
            $temp = array(
                "id" => $result->art_codigo,
                "descripcion" => $result->art_descri,
                "precioCosto" => $result->art_costo,
                "precioMinimo" => $result->art_premin,
                "canal1" => $result->art_canal1,
                "canal2" => $result->art_canal2,
                "canal3" => $result->art_canal3,
                "precio" => $result->art_precio,
                "precioOferta" => !isset($result->art_preofe) ? 0 : $result->art_preofe,
                "ofertaDesde" => !isset($result->art_desofe) || $result->art_desofe == null ? null : $result->art_desofe->format('Y-m-d'),
                "ofertaHasta" => !isset($result->art_hasofe) || $result->art_hasofe == null ? null : $result->art_hasofe->format('Y-m-d'),
                "codigoBarra" => !isset($result->art_cbarra) || $result->art_cbarra == null ? null : $result->art_cbarra,
                "multiplo" => !isset($result->art_solmul) || $result->art_solmul == null ? 0 : $result->art_solmul,
                "tipoImpuesto" => $result->art_exegra,
                "impuesto" => $result->art_impu
            );
        }
        return json_encode($temp);
    }

}