"t1.id", 0 => "t1.nombre", 1 => "t1.code", 2 => "t1.code_ot", 3 => "t1.show_in_client", ]; protected $allowedFields = ["nombre", "code", "code_ot", "show_in_client", "deleted_at", "is_deleted"]; protected $returnType = "App\Entities\Configuracion\PapelGenerico"; protected $useTimestamps = true; protected $useSoftDeletes = false; protected $createdField = "created_at"; protected $updatedField = "updated_at"; public static $labelField = "nombre"; protected $validationRules = [ "code" => [ "label" => "PapelGenericoes.code", "rules" => "trim|max_length[5]", ], "code_ot" => [ "label" => "PapelGenericoes.codeOt", "rules" => "trim|max_length[5]", ], "nombre" => [ "label" => "PapelGenericoes.nombre", "rules" => "trim|required|max_length[255]", ], ]; protected $validationMessages = [ "code" => [ "max_length" => "PapelGenericoes.validation.code.max_length", ], "code_ot" => [ "max_length" => "PapelGenericoes.validation.code_ot.max_length", ], "nombre" => [ "max_length" => "PapelGenericoes.validation.nombre.max_length", "required" => "PapelGenericoes.validation.nombre.required", ], ]; /** * Get resource data. * * @param string $search * * @return \CodeIgniter\Database\BaseBuilder */ public function getResource(string $search = "") { $builder = $this->db ->table($this->table . " t1") ->select( "t1.id AS id, t1.nombre AS nombre, t1.code AS code, t1.code_ot AS code_ot, t1.show_in_client AS show_in_client" ) ->where("is_deleted", 0); return empty($search) ? $builder : $builder ->groupStart() ->like("t1.id", $search) ->orLike("t1.nombre", $search) ->orLike("t1.code", $search) ->orLike("t1.code_ot", $search) ->orLike("t1.id", $search) ->orLike("t1.nombre", $search) ->orLike("t1.code", $search) ->orLike("t1.code_ot", $search) ->groupEnd(); } public function getPapelForComparador($tipo, $is_cubierta = null, $is_sobrecubierta = null, $rotativa = null) { /* 1.-> Tipo impresion 2.-> Maquina 3.-> Papeles impresion asociados a esa maquina 4.-> papeles genericos que aparecen en esos papeles impresion */ $builder = $this->db ->table($this->table . " t1") ->select( "t1.id as id, t1.nombre AS nombre" ) ->distinct('t1.id') ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "left") ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "left") ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "left") ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "left") ->where("t1.is_deleted", 0) ->where("t2.is_deleted", 0) ->where("t3.active", 1) ->where("t4.is_deleted", 0) ->where("t4.tipo", "impresion") ->where("t5.tipo", $tipo); if(!is_null($is_cubierta)){ if($is_cubierta==true){ $builder->where("t2.cubierta", 1); } } if(!is_null($is_sobrecubierta)){ if($is_sobrecubierta==true){ $builder->where("t2.sobrecubierta", 1); } } if(!is_null($rotativa)){ if($rotativa==true){ $builder->where("t2.rotativa", 1); } } return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject(); } public function getGramajeComparador(string $papel_generico_nombre="", $uso="") { if($uso == 'cubierta' || $uso == 'sobrecubierta') $tipo = 'color'; else $tipo=$uso; // color y colorhq valen para los dos if($uso == 'bn') $tipo="negro"; if($uso == 'bnhq') $tipo="negrohq"; $builder = $this->db ->table($this->table . " t1") ->select( "t2.gramaje AS text" ) ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "left") ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "left") ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "left") ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "left") ->where("t1.is_deleted", 0) ->where("t2.is_deleted", 0) ->where("t2.isActivo", 1) ->where("t3.active", 1) ->where("t4.is_deleted", 0) ->where("t4.tipo", "impresion") ->where("t5.tipo", $tipo) ->where("t1.nombre", $papel_generico_nombre); $uso_tarifa = 'interior'; if($uso == 'bn' || $uso == 'bnhq') $builder->where("t2.bn", 1); else if ($uso == 'color' || $uso == 'colorhq') $builder->where("t2.color", 1); else if ($uso == 'cubierta'){ $uso_tarifa = 'cubierta'; $builder->where("t2.cubierta", 1); } else if ($uso == 'sobrecubierta'){ $uso_tarifa = 'sobrecubierta'; $builder->where("t2.sobrecubierta", 1); } $builder->where("t5.uso", $uso_tarifa); $values = $builder->orderBy("t2.gramaje", "asc")->get()->getResultObject(); $id = 1; foreach ($values as $value){ $value->id = $id; $id++; } $values_array = array_map( function( $value ) { return $value->text; }, $values ); $unique_values = array_unique($values_array); return array_values(array_intersect_key($values, $unique_values)); } //tipo: negro, negrohq, color, colorhq //uso: interior, rotativa, cubierta, sobrecubierta public function getGramajeLineasPresupuesto($papel_generico_id=0, $tipo="", $uso="") { $builder = $this->db ->table($this->table . " t1") ->select( "t2.gramaje AS text" ) ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "left") ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "left") ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "left") ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "left") ->where("t1.is_deleted", 0) ->where("t2.is_deleted", 0) ->where("t2.isActivo", 1) ->where("t3.active", 1) ->where("t4.is_deleted", 0) ->where("t4.tipo", "impresion") ->where("t5.tipo", $tipo) ->where("t1.id", $papel_generico_id); $uso_tarifa = 'interior'; if ($uso == 'cubierta'){ $uso_tarifa = 'cubierta'; $builder->where("t2.cubierta", 1); } else if ($uso == 'sobrecubierta'){ $uso_tarifa = 'sobrecubierta'; $builder->where("t2.sobrecubierta", 1); } else{ if($tipo == 'negro' || $tipo == 'negrohq') $builder->where("t2.bn", 1); else if ($tipo == 'color' || $tipo == 'colorhq') $builder->where("t2.color", 1); } if($uso=='rotativa') $builder->where("t2.rotativa", 1); else $builder->where("t2.rotativa", 0); $builder->where("t5.uso", $uso_tarifa); $values = $builder->orderBy("t2.gramaje", "asc")->get()->getResultObject(); $id = 1; foreach ($values as $value){ $value->id = $id; $id++; } $values_array = array_map( function( $value ) { return $value->text; }, $values ); $unique_values = array_unique($values_array); return array_values(array_intersect_key($values, $unique_values)); } }