<?php
namespace App\Model;


class Cliente extends GenericObject
{
    static $table_name = 'cliente';

    static $primary_key = 'cli_codigo';

    public function cargar($data){
        $this->cli_codigo = $data->id;
        $this->cli_nombre = $data->nombre;
        $this->cli_ruc = $data->ruc;
        $this->cli_telefo = $data->telefono;
        $this->cli_direcc = $data->direccion;
        $this->cli_zona = $data->zona->id;
    }

    public static function toJSON($result)
    {
        if ($result === null) return $result;
        $temp = array();
        if(!isset($result->cli_codigo)){
            foreach($result as $item){
                $zona = null;
                if(trim($item->cli_zona)!=""){
                    $zona = Zona::toJSON(
                        Zona::first(array("conditions" => "trim(zon_codigo) = '".trim($item->cli_zona)."'"))
                    );
                }
                $vendedor = null;
                if(trim($item->cli_codvdd)!=""){
                    try {
                        $vendedor = Vendedor::toJSON(
                            Vendedor::first(array("conditions" => "trim(vdd_codigo) = '".trim($item->cli_codvdd)."'"))
                        );
                    } catch (\Throwable $th) {}
                }
                $object = array(
                    "id" => $item->cli_codigo,
                    "nombre" => $item->cli_nombre,
                    "ruc" => $item->cli_ruc,
                    "telefono" => $item->cli_telefo,
                    "direccion" => $item->cli_direcc,
                    "codigoCanal" => $item->cli_codcan,
                    "zona" => json_decode($zona),
                    "vendedor" => json_decode($vendedor)
                );
                $temp[] = $object;
            }
        }else{
            $zona = null;
            if(trim($result->cli_zona)!=""){
                $zona = Zona::toJSON(
                    Zona::all(array("conditions" => "trim(zon_codigo) = '".trim($result->cli_zona)."'"))[0]
                );
            }
            $vendedor = null;
            if(trim($result->cli_codvdd)!=""){
                try {
                    $vendedor = Vendedor::toJSON(
                        Vendedor::first(array("conditions" => "trim(vdd_codigo) = '".trim($result->cli_codvdd)."'"))
                    );
                } catch (\Throwable $th) {}
            }
            $temp = array(
                "id" => $result->cli_codigo,
                "nombre" => $result->cli_nombre,
                "ruc" => $result->cli_ruc,
                "telefono" => $result->cli_telefo,
                "direccion" => $result->cli_direcc,
                "zona" => json_decode($zona),
                "codigoCanal" => $result->cli_codcan,
                "vendedor" => json_decode($vendedor)
            );
        }
        return json_encode($temp);
    }

}