<?php 
require_once("ConexionMod.php");
require_once("EntidadMod.php");
class AsignacionEnt extends EntidadEnt{
	private $idasignacion,$cod_entidad,$idusua,$fech_asig;
	/*Atributo abstracto*/
	private $nombreu,$fecha_ven;
	
	public function setIdasignacion($val){$this->idasignacion=$val;} public function getIdasignacion(){return $this->idasignacion;}
	//public function setCod_entidad($val){$this->cod_entidad=$val;} public function getCod_entidad(){return $this->cod_entidad;}
	public function setIdusua($val){$this->idusua=$val;} public function getIdusua(){return $this->idusua;}
	public function setFech_asig($val){$this->fech_asig=$val;} public function getFech_asig(){return $this->fech_asig;}
	/*Abstracto*/
	public function setNombreu($val){$this->nombreu=$val;} public function getNombreu(){return $this->nombreu;}
	public function setFecha_ven($val){$this->fecha_ven=$val;} public function getFecha_ven(){return $this->fecha_ven;}
}
class AsignacionMod{
	public function registrar($val){
		$c2=$val->getCod_entidad();
		$i3=$val->getIdusua();
		$f4=$val->getFech_asig();
		$sql="INSERT INTO (cod_entidad,idusua,fech_asig) VALUES('".$c2."','".$i3."','".$f4."');";
		mysqli_query(ConexionMod::Conectar(),$sql) or die("Error de registro");
		mysqli_close(ConexionMod::Conectar());
	}
	
	public function registrarAsignacionTodos($co,$id){
		$sql="INSERT INTO asignacion(cod_entidad,idusua) VALUES({$co},{$id});";
		mysqli_query(ConexionMod::Conectar(),$sql) or die("Error de registro de asignacion");
		mysqli_close(ConexionMod::Conectar());
	}
	
	public function eliminarAsignacionTodos($co,$id){
		$sql="DELETE FROM asignacion WHERE cod_entidad={$co} AND idusua={$id};";
		mysqli_query(ConexionMod::Conectar(),$sql) or die("Error de registro de asignacion");
		mysqli_close(ConexionMod::Conectar());
	}
	
	public function listarAsignacion($nmu){
		$sql="SELECT fecha_ven,LPAD(cod_entidad,6,0) AS 'cod_entidad',UPPER(nom_entidad) AS 'nom_entidad',depart,provin,distri,igv,UPPER(GROUP_CONCAT(nombreu SEPARATOR ' - ')) AS nombreu FROM (SELECT ag.cod_entidad,e.nom_entidad,dt.depart,dt.provin,dt.distri,CASE WHEN dt.igv='0' THEN 'AYP' ELSE 'SYS' END AS 'igv',u.nombreu,MAX(ad.fech_ven) AS fecha_ven FROM asignacion ag LEFT JOIN entidad e ON e.cod_entidad=ag.cod_entidad LEFT JOIN detalle_entidad dt ON e.cod_entidad=dt.cod_entidad LEFT JOIN adquisicion ad ON ad.cod_entidad=e.cod_entidad LEFT JOIN usuario u ON u.idusua=ag.idusua GROUP BY ag.cod_entidad,e.nom_entidad,u.nombreu,dt.depart,dt.provin,dt.distri,dt.igv) AS dt GROUP BY cod_entidad,nom_entidad,fecha_ven,depart,provin,distri,igv HAVING nombreu LIKE '%{$nmu}%' ORDER BY fecha_ven ASC;";
		$que=mysqli_query(ConexionMod::Conectar(),$sql) or die("Error al listar asignación.");
		$i=0;
		if(mysqli_num_rows($que)!=0){
			while($rs=mysqli_fetch_row($que)){
				$arreglo[$i]=new AsignacionEnt();
				$arreglo[$i]->setFecha_ven($rs[0]);
				$arreglo[$i]->setCod_entidad($rs[1]);
				$arreglo[$i]->setNom_entidad($rs[2]);
				$arreglo[$i]->setDepart($rs[3]);
				$arreglo[$i]->setProvin($rs[4]);
				$arreglo[$i]->setDistri($rs[5]);
				$arreglo[$i]->setIgv($rs[6]);
				$arreglo[$i]->setNombreu($rs[7]);
				$i++;
			}
			return $arreglo;
		}else{
			return 0;
		}
		mysqli_close(ConexionMod::Conectar());
	}
	
	public function listarAsignacionTodos($bus,$asi,$fec){
		if($asi=='' && $fec==''){
			$cad='AND nombreu IS NOT NULL';
			$ca2='AND fecha_ven IS NOT NULL';
		}else if($asi!='' && $fec==''){
			$cad='';
			$ca2='AND fecha_ven IS NOT NULL';
		}else if($asi=='' && $fec!=''){
			$cad='AND nombreu IS NOT NULL';
			$ca2='';
		}else if($asi!='' && $fec!=''){
			$cad='';
			$ca2='';
		}
		$sql="SELECT fecha_ven,LPAD(cod_entidad,6,0) AS cod_entidad,UPPER(nom_entidad) AS nom_entidad,depart,provin,distri,igv,UPPER(GROUP_CONCAT(nombreu SEPARATOR ' - ')) AS nombreu
FROM (SELECT e.cod_entidad,e.nom_entidad,dt.depart,dt.provin,dt.distri,CASE WHEN dt.igv='0' THEN 'AYP' ELSE 'SYS' END AS 'igv',u.nombreu,MAX(ad.fech_ven) AS fecha_ven
FROM entidad e
LEFT JOIN asignacion ag ON e.cod_entidad=ag.cod_entidad
LEFT JOIN detalle_entidad dt ON e.cod_entidad=dt.cod_entidad 
LEFT JOIN adquisicion ad ON ad.cod_entidad=e.cod_entidad 
LEFT JOIN usuario u ON u.idusua=ag.idusua
GROUP BY e.cod_entidad,e.nom_entidad,u.nombreu,dt.depart,dt.provin,dt.distri,dt.igv) AS dt
GROUP BY cod_entidad,nom_entidad,fecha_ven,depart,provin,distri,igv 
HAVING (fecha_ven LIKE '%{$bus}%' || cod_entidad LIKE '%{$bus}%' || nom_entidad LIKE '%{$bus}%' || depart LIKE '%{$bus}%' || provin LIKE '%{$bus}%' || distri LIKE '%{$bus}%' || igv LIKE '%{$bus}%' || nombreu LIKE '%{$bus}%') {$cad} {$ca2}
ORDER BY fecha_ven ASC LIMIT 0,80;";
		
		//return $sql;
		
		$que=mysqli_query(ConexionMod::Conectar(),$sql) or die("Error al listar asignación.");
		$i=0;
		if(mysqli_num_rows($que)!=0){
			while($rs=mysqli_fetch_row($que)){
				$arreglo[$i]=new AsignacionEnt();
				$arreglo[$i]->setFecha_ven($rs[0]);
				$arreglo[$i]->setCod_entidad($rs[1]);
				$arreglo[$i]->setNom_entidad($rs[2]);
				$arreglo[$i]->setDepart($rs[3]);
				$arreglo[$i]->setProvin($rs[4]);
				$arreglo[$i]->setDistri($rs[5]);
				$arreglo[$i]->setIgv($rs[6]);
				$arreglo[$i]->setNombreu($rs[7]);
				$i++;
			}
			return $arreglo;
		}else{
			return 0;
		}
		mysqli_close(ConexionMod::Conectar());
	}
	
	
	
	public function buscar($val){
		$c2=$val->getCod_entidad();
		$i3=$val->getIdusua();
		$f4=$val->getFech_asig();
		$sql="SELECT * FROM  WHERE cod_entidad LIKE '%".$c2."%' || idusua LIKE '%".$i3."%' || fech_asig LIKE '%".$f4."%' ORDER BY idasignacion DESC LIMIT 0,20";
		$que=mysqli_query(ConexionMod::Conectar(),$sql) or die("Error al buscar");
		$i=0;
		if(mysqli_num_rows($que)!=0){
			while($rs=mysqli_fetch_row($que)){
				$arreglo[$i]=new Ent();
				$arreglo[$i]->setIdasignacion($rs[0]);
				$arreglo[$i]->setCod_entidad($rs[1]);
				$arreglo[$i]->setIdusua($rs[2]);
				$arreglo[$i]->setFech_asig($rs[3]);
				$i++;
			}
			return $arreglo;
		}else{
			return 0;
		}
		mysqli_close(ConexionMod::Conectar());
	}
	public function eliminar($val){
		$i5=$val->getIdasignacion();
		$sql="DELETE FROM  WHERE idasignacion = ".$i5.";";
		mysqli_query(ConexionMod::Conectar(),$sql) or die("Error al eliminar");
		mysqli_close(ConexionMod::Conectar());
	}
	public function editar($val){
		$i1=$val->getIdasignacion();
		$c2=$val->getCod_entidad();
		$i3=$val->getIdusua();
		$f4=$val->getFech_asig();
		$sql="UPDATE  SET cod_entidad = '".$c2."',idusua = '".$i3."',fech_asig = '".$f4."' WHERE idasignacion = ".$i1."";
		mysqli_query(ConexionMod::Conectar(),$sql) or die("Error al editar");
		mysqli_close(ConexionMod::Conectar());
	}
}