<?php
date_default_timezone_set('America/Lima');
class cKardex{

	function insertar($fec,$des,$mod_id,$idm,$usu_id,$emp_id,$doc){
		$now =  date('Y-m-d h:i:s a');
		$sql = "INSERT INTO tb_kardex(		
			tb_kardex_reg ,
			tb_kardex_fec ,
			tb_kardex_des ,
			tb_modulo_id ,
			tb_kardex_idm ,
			tb_usuario_id ,
			tb_empresa_id ,
			tb_documento_id
		)
		VALUES (
			'$now', '$fec', '$des', '$mod_id', '$idm', '$usu_id',  '$emp_id' , '$doc'
		);"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}
	
	
	
function sumatipokardex_por_presentacion($cat_id,$mar_id,$alm_id,$fecini,$fecfin){
	
	$sql="SELECT SUM(CASE WHEN kd.tb_kardexdetalle_tip = 1 THEN kd.tb_kardexdetalle_can ELSE 0 END) - SUM(CASE WHEN kd.tb_kardexdetalle_tip = 2 THEN kd.tb_kardexdetalle_can ELSE 0 END) 'total'  
        FROM tb_kardex k
		left join tb_usuario u on u.tb_usuario_id = k.tb_usuario_id
		INNER JOIN tb_kardexdetalle kd ON k.tb_kardex_id = kd.tb_kardex_id		
		WHERE k.tb_kardex_xac = 1
		AND kd.tb_catalogo_id = '$cat_id' and kd.tb_marca_id = '$mar_id' and kd.tb_almacen_id = '$alm_id' ";
		if($fecini!="")$sql.=" AND k.tb_kardex_fec>='$fecini' ";
		if($fecfin!="")$sql.=" AND k.tb_kardex_fec<='$fecfin' ";
		
		
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;
	}
	
	
	
function mostrar_kardexdetalle_x_modulo2($mod,$idm,$catid,$marid,$tip){
		$sql="SELECT kd.* FROM tb_kardex k 
		inner join tb_kardexdetalle kd on kd.tb_kardex_id = k.tb_kardex_id
		where k.tb_kardex_xac = '1' ";
		
		if($mod>0)$sql.=" AND k.tb_modulo_id = '$mod' ";
		if($idm>0)$sql.=" AND k.tb_kardex_idm = '$idm' ";
		if($catid>0)$sql.=" AND kd.tb_catalogo_id = '$catid' ";
		if($marid>0)$sql.=" AND kd.tb_marca_id = '$marid' ";
		if($tip>0)$sql.=" AND kd.tb_kardexdetalle_tip = '$tip' ";
 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	

function mostrar_kardexdetalle_x_modulo($mod,$idm,$catid,$marid){
		$sql="SELECT kd.* FROM tb_kardex k 
		inner join tb_kardexdetalle kd on kd.tb_kardex_id = k.tb_kardex_id
		where k.tb_kardex_xac = '1' ";
		
		if($mod>0)$sql.=" AND k.tb_modulo_id = '$mod' ";
		if($idm>0)$sql.=" AND k.tb_kardex_idm = '$idm' ";
		if($catid>0)$sql.=" AND kd.tb_catalogo_id = '$catid' ";
		if($marid>0)$sql.=" AND kd.tb_marca_id = '$marid' ";
 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function ultimoInsert(){
		$sql = "SELECT MAX(tb_kardex_id) as 'id' from tb_kardex "; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}

	function obtener_stock_inicial($mod_id,$alm_id,$cat_id,$mar_id){
		$sql = "SELECT kd.tb_kardexdetalle_can 
		FROM tb_kardex k INNER JOIN tb_kardexdetalle kd on kd.tb_kardex_id = k.tb_kardex_id 
		WHERE k.tb_modulo_id = '$mod_id'
		AND kd.tb_almacen_id= '$alm_id'
		AND kd.tb_marca_id = '$mar_id'
		AND kd.tb_catalogo_id = '$cat_id' "; 
		$oCado = new Cado();
		//echo $sql; 
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}

	function insertar_detalle($cat_id,$mar_id,$tipo,$cant,$cost,$precioventa,$kar_id, $alm_id){
		$sql = "INSERT INTO tb_kardexdetalle(
		tb_catalogo_id ,
		tb_marca_id ,
		tb_kardexdetalle_tip ,
		tb_kardexdetalle_can ,
		tb_kardexdetalle_cos ,
		tb_kardexdetalle_pre ,
		tb_kardex_id,
		tb_almacen_id
		)
		VALUES ('$cat_id','$mar_id', '$tipo', '$cant',  '$cost',  '$precioventa',  '$kar_id', '$alm_id' );"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}


	function insertar_detalle_inventarioinicial($cat_id, $tipo , $can,$cos,$pre,$kar_id){
		$sql = "INSERT INTO tb_kardexdetalle(
		tb_catalogo_id ,
		tb_kardexdetalle_tip ,
		tb_kardexdetalle_can ,
		tb_kardexdetalle_cos ,
		tb_kardexdetalle_pre ,
		tb_kardex_id
		)
		VALUES ('$cat_id', '$tipo', '$can',  '$cos',  '$pre',  '$kar_id');"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}


	function modificar_campo($id,$campo,$valor){
		$sql = "UPDATE tb_kardex SET
		tb_kardex_$campo =  '$valor' 
		WHERE tb_kardex_id ='$id';"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}

	function mostrar_filtro($fec1,$fec2,$alm_id,$tip,$tipope,$man,$emp_id){
		$sql="SELECT *
		FROM tb_kardex na
		INNER JOIN tb_almacen a ON na.tb_almacen_id=a.tb_almacen_id
		INNER JOIN tb_tipoperacion tp ON na.tb_tipoperacion_id = tp.tb_tipoperacion_id
		INNER JOIN tb_documento d ON na.tb_documento_id=d.tb_documento_id 
		WHERE na.tb_empresa_id = $emp_id AND tb_kardex_fec BETWEEN '$fec1' AND '$fec2' ";

		if($alm_id>0)$sql.=" AND na.tb_almacen_id = $alm_id ";
		if($tipope>0)$sql.=" AND na.tb_tipoperacion_id = $tipope ";
		if($man>0)$sql.=" AND tb_tipoperacion_man = $man ";

		$sql.=" ORDER BY tb_kardex_fec, tb_almacen_nom, tb_tipoperacion_nom ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function mostrarUno($id){
		$sql="SELECT * 
		FROM tb_kardex t
		INNER JOIN tb_almacen a ON t.tb_almacen_id=a.tb_almacen_id
		WHERE tb_kardex_id=$id";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function mostrar_codigo(){
		$sql="SELECT MAX(tb_kardex_id) as numero 
		FROM tb_kardex;";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function mostrar_kardex_detalle($notalm_id){
		$sql="SELECT * 
		FROM tb_producto p
		INNER JOIN tb_categoria c ON p.tb_categoria_id = c.tb_categoria_id
		INNER JOIN tb_marca m ON p.tb_marca_id = m.tb_marca_id
		LEFT JOIN tb_presentacion pr ON pr.tb_presentacion_id = p.tb_presentacion_id
		LEFT JOIN tb_catalogo ct ON p.tb_producto_id = ct.tb_producto_id
		INNER JOIN tb_kardexdetalle td ON ct.tb_catalogo_id = td.tb_catalogo_id
		INNER JOIN tb_unidad u ON ct.tb_unidad_id_equ = u.tb_unidad_id
		WHERE td.tb_kardex_id=$notalm_id ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function modificar($id, $fec, $des){
		$sql = "UPDATE tb_kardex SET  
		tb_kardex_fec =  '$fec',
		tb_kardex_des =  '$des' 
		WHERE  tb_kardex_id =$id;"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}

	function mostrar_datos_kardex($catid,$marid)
	{
		$sql="SELECT * 
		FROM tb_producto p
		INNER JOIN tb_categoria c ON p.tb_categoria_id=c.tb_categoria_id
		LEFT JOIN tb_presentacion pr ON pr.tb_presentacion_id = p.tb_presentacion_id
		LEFT JOIN tb_catalogo ct ON p.tb_producto_id = ct.tb_producto_id
        inner join tb_productomarca pm on pm.tb_catalogo_id = ct.tb_catalogo_id
        inner join tb_marca m on m.tb_marca_id = pm.tb_marca_id
		INNER JOIN tb_unidad u ON ct.tb_unidad_id=u.tb_unidad_id
		inner join tb_empaque em on em.tb_empaque_id = p.tb_empaque_id
		WHERE ct.tb_catalogo_id = '$catid'
        and pm.tb_marca_id = '$marid' ";
		//echo $sql;exit;
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function consultar_existencia_saldo_inicial($cat_id,$alm_id){
		$sql="SELECT * 
		FROM tb_producto p        
		LEFT JOIN tb_presentacion pr ON pr.tb_presentacion_id = p.tb_presentacion_id
		LEFT JOIN tb_catalogo ct ON p.tb_producto_id = ct.tb_producto_id
		INNER JOIN tb_kardexdetalle td ON ct.tb_catalogo_id = td.tb_catalogo_id
		INNER JOIN tb_kardex na ON na.tb_kardex_id = td.tb_kardex_id        
		WHERE td.tb_catalogo_id=$cat_id 
		AND na.tb_tipoperacion_id = 9 
		AND na.tb_almacen_id = $alm_id";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function actualizar_salini($kardet_id, $can){
		$sql = "UPDATE tb_kardexdetalle SET  
		tb_kardexdetalle_can =  '$can' 
		WHERE tb_kardexdetalle_id =$kardet_id;"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}

	function consulta_eliminar($tiporeg,$tipo,$documento_id,$tipoperacion_id,$operacion_id){
		$sql = "SELECT * FROM tb_kardex WHERE 
		tb_modulo_id= '$tipoperacion_id'
		AND tb_kardex_idm = '$operacion_id' and tb_kardex_xac != 0 ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function consulta_por_operacion_si($tipoperacion_id,$operacion_id){
		$sql = "SELECT * 
				FROM tb_kardex k
				INNER JOIN tb_kardexdetalle kd ON k.tb_kardex_id=kd.tb_kardex_id
				WHERE tb_tipoperacion_id = $tipoperacion_id
				AND tb_kardex_idm = $operacion_id";

		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}


	function consulta_kardex_compra($operacion_id){
		$sql = "SELECT * 
				FROM tb_kardex 
				WHERE tb_kardex_idm = '$operacion_id' ";

		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
   ///////////////////////////////////////
	function mostrar_kardex_detalle2($notalm_id,$alm_id){
		$sql="SELECT * 
		FROM tb_kardex n 
		INNER JOIN tb_kardexdetalle td ON n.tb_kardex_id = td.tb_kardex_id
		LEFT JOIN tb_catalogo ct ON td.tb_catalogo_id = ct.tb_catalogo_id
		INNER JOIN tb_producto p ON pr.tb_producto_id = p.tb_producto_id
		LEFT JOIN tb_presentacion pr ON pr.tb_presentacion_id = p.tb_presentacion_id
		INNER JOIN tb_categoria c ON p.tb_categoria_id = c.tb_categoria_id
		INNER JOIN tb_marca m ON p.tb_marca_id = m.tb_marca_id
		INNER JOIN tb_unidad u ON ct.tb_unidad_id_equ = u.tb_unidad_id
		WHERE ";

		$sql.= " AND tb_tipoperacion_id=1 AND tb_almacen_id=$alm_id";

		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}

	function modificar_detalle_na($id, $cos, $pre){
		$sql = "UPDATE tb_kardexdetalle SET  
					tb_kardexdetalle_cos =  '$cos',
					tb_kardexdetalle_pre =  '$pre' 
				WHERE  tb_kardexdetalle_id =$id;"; 
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;	
	}

	function mostrar_kardex_por_producto($cat_id,$mar_id, $alm_id,$fecini,$fecfin){
		$sql="SELECT *
		FROM tb_kardex k
		left join tb_usuario u on u.tb_usuario_id = k.tb_usuario_id
		INNER JOIN tb_kardexdetalle kd ON k.tb_kardex_id = kd.tb_kardex_id		
		WHERE tb_kardex_xac = 1
		AND kd.tb_catalogo_id = '$cat_id' and kd.tb_marca_id = '$mar_id' ";

		if($alm_id>0)$sql.=" AND kd.tb_almacen_id = '$alm_id' ";
		if($fecini!="")$sql.=" AND tb_kardex_fec>='$fecini' ";
		if($fecfin!="")$sql.=" AND tb_kardex_fec<='$fecfin' ";

		$sql.=" ORDER BY tb_kardex_fec";
		//echo $sql;exit;
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;		
	}

	function mostrar_kardex_tipoperacion_por_producto($cat_id, $alm_id, $tipope_id){
		$sql="SELECT *
		FROM tb_kardex n
		INNER JOIN tb_kardexdetalle nd ON n.tb_kardex_id = nd.tb_kardex_id
		INNER JOIN tb_almacen a ON n.tb_almacen_id = a.tb_almacen_id
		INNER JOIN tb_documento d ON n.tb_documento_id = d.tb_documento_id
		INNER JOIN tb_tipoperacion tp ON n.tb_tipoperacion_id = tp.tb_tipoperacion_id

		WHERE nd.tb_catalogo_id = $cat_id 
		AND n.tb_almacen_id = $alm_id
		AND n.tb_tipoperacion_id = $tipope_id
		ORDER BY n.tb_kardex_fec";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;		
	}
	
	function inventario_tipo_por_producto($cat_id,$alm_id,$tip,$fecini,$fecfin,$emp_id){
		$sql="SELECT SUM( tb_kardexdetalle_can ) AS cantidad
		FROM tb_kardex n
		INNER JOIN tb_kardexdetalle nd ON n.tb_kardex_id = nd.tb_kardex_id

		WHERE tb_kardex_xac=1
		AND n.tb_empresa_id = $emp_id
		AND nd.tb_catalogo_id = $cat_id ";
		
		if($alm_id>0)$sql.=" AND n.tb_almacen_id = $alm_id ";
		if($fecini!="")$sql.=" AND n.tb_kardex_fec>='$fecini' ";
		if($fecfin!="")$sql.=" AND n.tb_kardex_fec<='$fecfin' ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;		
	}
	
	function mostrar_datos_producto($id,$marid){
		$sql="SELECT * 
		FROM tb_producto p
		LEFT JOIN tb_presentacion pr ON pr.tb_presentacion_id = p.tb_presentacion_id
		LEFT JOIN tb_catalogo ct ON p.tb_producto_id = ct.tb_producto_id
		INNER JOIN tb_stock s ON ct.tb_catalogo_id = s.tb_catalogo_id
		INNER JOIN tb_almacen a ON a.tb_almacen_id = s.tb_almacen_id
		INNER JOIN tb_categoria c ON p.tb_categoria_id=c.tb_categoria_id
		WHERE ct.tb_catalogo_id= '$id' and s.tb_marca_id = '$marid'";
		//echo $sql;
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	function mostrarkardex_masantiguo($catid,$marid){
		$sql="SELECT * FROM tb_kardexdetalle kd 
		INNER JOIN tb_kardex k on k.tb_kardex_id = kd.tb_kardex_id
		where kd.tb_catalogo_id ='$catid' and tb_marca_id = '$marid'and k.tb_kardex_xac = 1
		order by k.tb_kardex_fec limit 1 ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	
function kardexrecuperar(){
		$sql="select SUM(CASE WHEN kd.tb_kardexdetalle_tip = 1 THEN kd.tb_kardexdetalle_can ELSE 0 END) 'kdentra',
		SUM(CASE WHEN kd.tb_kardexdetalle_tip = 2 THEN kd.tb_kardexdetalle_can ELSE 0 END) 'kdsale' , 
pro.tb_producto_nom,ma.tb_marca_nom,kd.tb_catalogo_id,kd.tb_marca_id,pre.tb_presentacion_id from tb_kardex k
inner join tb_kardexdetalle kd on kd.tb_kardex_id = k.tb_kardex_id
LEFT JOIN tb_presentacion pr ON pr.tb_presentacion_id = p.tb_presentacion_id
		LEFT JOIN tb_catalogo ct ON p.tb_producto_id = ct.tb_producto_id
inner join tb_marca ma on ma.tb_marca_id = kd.tb_marca_id
inner join tb_producto pro on pro.tb_producto_id = pre.tb_producto_id
where k.tb_kardex_xac= 1 and kd.tb_almacen_id = 2 GROUP by kd.tb_catalogo_id,kd.tb_marca_id ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	
	
	
	function mostrarUno2(){
		$sql="SELECT * 	FROM tb_kardexdetalle kd where kd.tb_almacen_id in('15','16') ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	function eliminar_kardex($kar_id){
		$sql="DELETE FROM tb_kardex WHERE tb_kardex_id = '$kar_id' ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
		
	function eliminar_kardexdetalle($kardet_id){
		$sql="DELETE FROM tb_kardexdetalle WHERE tb_kardexdetalle_id = '$kardet_id' ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	
	






	
	
}
?>