<?php
	$Focus="TxtFec";
	//-------------------------
	$StrId=V($_POST['TxtId']);
	$StrCmd=V($_POST['TxtAc']);
	$StrKill=V($_POST['TxtKill']);
	//
	if(strlen($StrCmd)==0){
		$StrCmd=V($_GET['TxtAc']);
		if($StrCmd=="X")$StrCmd="L";
	}
	//-------------------------
	$StrFec=V($_POST['TxtFec']);
	$StrEmp=V($_POST['CboEmp']);
	$StrAlm=V($_POST['CboAlm']);
	//
	if(strlen($StrEmp)==0)$StrEmp=GE("N");
	if(strlen($StrAlm)==0)$StrAlm=GA($StrEmp,"N");	
	//
	$StrNum=V($_POST['TxtNum']);
	$StrAcc=V($_POST['CboAcc']);
	$StrObs=V($_POST['TxtObs']);
	//
	$D_Cod=V($_POST['D_Cod']);
	$D_Des=V($_POST['D_Des']);
	$D_Lin=V($_POST['D_Lin']);
	$D_Caj=V($_POST['D_Caj']);
	$D_Pie=V($_POST['D_Pie']);
	$D_Can=V($_POST['D_Can']);
	//------------------------
//******************************************************************************	
	if(strlen($StrId)==0){
		$StrId=V($_GET['Id']);
		if(is_numeric($StrId)==false){
			$StrId="";
			$StrFec=date("d-m-y");
		}else{
			$StrCmd="AR";
			$LStrPag=V($_GET['Pag']);
			if(!is_numeric($LStrPag)){
				$LStrPag="";
			}
		}
	}
//******************************************************************************	
if(strlen($StrId)>0 && $StrCmd=="AR"){
	$Id=$StrId;
	$StrEmp=gs("EMPC","vis_ajustes_presentacion","ID=$Id");
	$StrAlm=gs("ALM","vis_ajustes_presentacion","ID=$Id");
	$StrAcc=gs("ACC","vis_ajustes_presentacion","ID=$Id");
	$StrFec=gs("DATE_FORMAT(FEC,'%d-%m-%y')","vis_ajustes_presentacion","ID=$Id");
	$StrNum=gs("NUM","vis_ajustes_presentacion","ID=$Id");
	$StrObs=gs("OBS","vis_ajustes_presentacion","ID=$Id");

	ejt("DELETE FROM ajustes_presentacion_det_temp WHERE aju_hw='$STR_HW'");
	$s="SELECT * FROM ajustes_presentacion_det WHERE id_ajuste=$Id";
	$result = grs($s);			
	while ($row = $result->fetch_assoc()){
		$StrItem=GenId("item","ajustes_presentacion_det_temp");
		$s="INSERT INTO ajustes_presentacion_det_temp ".
		   "VALUES ('$STR_HW',$StrItem,".$row['id_producto'].",".$row['cajas'].
		   ",".$row['piezas'].",".$row['piezas_ajuste'].")";
		ejt($s);		
	}

	$LStrFoc="document.getElementById('D_Cod').focus();";						
	$StrGT="S";	
}
//******************************************************************************	
if(($StrCmd=="G" || $StrCmd=="M") && strlen($StrGT)==0){	
	$StrEmp_=gn("id_emp","empresas","emp_nomc='$StrEmp'");		
	$StrAlm_=gn("id_almacen","almacenes","alm_obs='$StrAlm' AND alm_id_empresa=$StrEmp_");
	$StrFec_=ToDate($StrFec);
	//
	if(gn("count(*)","ajustes_presentacion_det_temp","aju_hw='$STR_HW'")==0){
		$LStrMsg="La lista de productos esta vacia";
		$LStrFoc="document.getElementById('D_Cod').focus();";						
		$StrGT="S";
	}
}

//******************************************************************************	
//FUNCIONES DE ACTUALIZACION
if($StrCmd=="M" && strlen($StrGT)==0){
	$StrAcc_=substr($StrAcc,0,1);
	$_StrAlm=gs("id_alm","ajustes_presentacion","id_ajuste=$StrId");
	$AJU_ACC=gs("acc","ajustes_presentacion","id_ajuste=$StrId");
	//
	$s="SELECT * FROM ajustes_presentacion_det WHERE id_ajuste=$StrId";
		$result = grs($s);			
		while ($row = $result->fetch_assoc()){
			$CAN=$row['cajas']*$row['piezas'];	
			if($AJU_ACC=="A"){
				STOCK_SUB($_StrAlm,$row['id_producto'],$CAN);
			}else{		
				STOCK_ADD($_StrAlm,$row['id_producto'],$CAN);
				STOCK_SUB_PRESENTACION($_StrAlm,$row['id_producto'],$row['piezas'],$row['cajas']);
				//
				STOCK_SUB_NUEVA_PRESENTACION($_StrAlm,$row['id_producto'],$row['piezas'],$row['cajas'],$row['piezas_ajuste']);
				//
				$NCant=	$row['cajas']*($row['piezas']-$row['piezas_ajuste']);
				STOCK_SUB($_StrAlm,$row['id_producto'],$NCant);
			}
		}

	$qqq=ejt("DELETE FROM ajustes_presentacion_det WHERE id_ajuste=$StrId");
	//BIT
	$_BIT_MOD_ID=$StrId;
	$_BIT_SQL_CAB=$qqq;
	$_BIT_SQL_DET="";
	$_BIT_PHP="ajustes_piezas.php";
	$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK PIEZAS","MODIFICAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
	BIT_DET_ADD($_BIT_ID,$qqq);
	//BIT	
	ejt("DELETE FROM ajustes_presentacion WHERE id_ajuste=$StrId");	
	//	
	$LStrMsg="Los datos han sido modificados";
	$StrCmd="G";
}
//******************************************************************************	
//FUNCIONES DE ACTUALIZACION
if($StrCmd=="G" && strlen($StrGT)==0){		
	$GII=GenGI();
	if(strlen($StrId)==0){$StrId=GenId("id_ajuste","ajustes_presentacion");}
	$StrNum=vbr("00000".$StrId,5);
	$s="INSERT INTO ajustes_presentacion VALUES ($StrId,'$StrFec_',$StrAlm_,
		'$StrNum','$StrAcc','$StrObs',$ID_USU,'N',$GII)";
	ejt($s);
	//BIT
	$_BIT_MOD_ID=$StrId;
	$_BIT_SQL_CAB=$s;
	$_BIT_SQL_DET="";
	$_BIT_PHP="ajustes_piezas.php";
	$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK PIEZAS","GUARDAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
	BIT_DET_ADD($_BIT_ID,$s);
	//BIT	
	$s="SELECT * FROM ajustes_presentacion_det_temp WHERE aju_hw='$STR_HW' 
		ORDER BY item";
	$result = grs($s);		
	$Item=0;			
	while ($row = $result->fetch_assoc()){
		$Item++;
		$Sql="INSERT INTO ajustes_presentacion_det ".
			 "VALUES ($StrId,$Item,".$row['id_producto'].",".
			 $row['cajas'].",".$row['piezas'].",".$row['piezas_ajuste'].")";
		$qqq=ejt($Sql);
		//
		BIT_DET_ADD($_BIT_ID,$qqq);	
		//
		$CAN=$row['cajas']*$row['piezas'];
		STOCK_SUB($StrAlm_,$row['id_producto'],$CAN);
		STOCK_ADD_PRESENTACION($StrAlm_,$row['id_producto'],$row['piezas'],$row['cajas']);
		//
		STOCK_ADD_NUEVA_PRESENTACION($StrAlm_,$row['id_producto'],$row['piezas'],$row['cajas'],$row['piezas_ajuste']);
		//
		$NCant=	$row['cajas']*($row['piezas']-$row['piezas_ajuste']);
		STOCK_ADD($StrAlm_,$row['id_producto'],$NCant);
		T_P_ACT($row['id_producto']);
	}
	//
	ejt("DELETE FROM ajustes_presentacion_det_temp WHERE aju_hw='$STR_HW'");
	//
	if(strlen($LStrMsg)==0){
		$LStrMsg="Los datos han sido registrado. El numero generado es : $StrNum";
	}
	//
	$LStrFoc="document.getElementById('$Focus').focus();";						
	$StrCmd="L";
}
//******************************************************************************
//ELIMINAR
if($StrCmd=="E"){
	$StrAlm_=gn("id_alm","ajustes_presentacion","id_ajuste=$StrId");
	$StrAcc_=gs("acc","ajustes_presentacion","id_ajuste=$StrId");
	$s="SELECT * FROM ajustes_presentacion_det WHERE id_ajuste=$StrId";
	$result = grs($s);			
	while ($row = $result->fetch_assoc()){
		$CAN=$row['cajas']*$row['piezas'];
		if($StrAcc_=="A"){
			STOCK_SUB($StrAlm_,$row['id_producto'],$CAN);
		}else{
			STOCK_ADD($StrAlm_,$row['id_producto'],$CAN);
			STOCK_SUB_PRESENTACION($StrAlm_,$row['id_producto'],$row['piezas'],$row['cajas']);
			//
			STOCK_SUB_NUEVA_PRESENTACION($StrAlm_,$row['id_producto'],$row['piezas'],$row['cajas'],$row['piezas_ajuste']);
			//
			$NCant=	$row['cajas']*($row['piezas']-$row['piezas_ajuste']);
			STOCK_SUB($StrAlm_,$row['id_producto'],$NCant);
		}
		T_P_ACT($row['id_producto']);
	}
	//
	ejt("DELETE FROM ajustes_presentacion_det_temp WHERE aju_hw='$STR_HW'");
	$qqq=ejt("DELETE FROM ajustes_presentacion_det WHERE id_ajuste=$StrId");
	//BIT
	$_BIT_MOD_ID=$StrId;
	$_BIT_SQL_CAB=$qqq;
	$_BIT_SQL_DET="";
	$_BIT_PHP="ajustes_piezas.php";
	$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK PIEZAS","ELIMINAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
	BIT_DET_ADD($_BIT_ID,$qqq);
	//BIT	
	$qqq=ejt("DELETE FROM ajustes_presentacion WHERE id_ajuste=$StrId");
	BIT_DET_ADD($_BIT_ID,$qqq);
	//
	$LStrMsg="Los datos han sido eliminados";
	$LStrFoc="document.getElementById('TxtFec').focus();";						
	$StrCmd="L";
}	

//******************************************************************************
//ANULAR
if($StrCmd=="A"){
	$StrAlm_=gn("id_alm","ajustes_presentacion","id_ajuste=$StrId");
	$StrAcc_=gs("acc","ajustes_presentacion","id_ajuste=$StrId");
	//
	if(strlen($StrGT)==0){
		$s="SELECT * FROM ajustes_presentacion_det WHERE id_ajuste=$StrId";
		$result = grs($s);			
		while ($row = $result->fetch_assoc()){
			$CAN=$row['cajas']*$row['piezas'];
			if($StrAcc_=="A"){
				STOCK_SUB($StrAlm_,$row['id_producto'],$CAN);
			}else{
				STOCK_ADD($StrAlm_,$row['id_producto'],$CAN);
				STOCK_SUB_PRESENTACION($StrAlm_,$row['id_producto'],$row['piezas'],$row['cajas']);
				//
				STOCK_SUB_NUEVA_PRESENTACION($StrAlm_,$row['id_producto'],$row['piezas'],$row['cajas'],$row['piezas_ajuste']);
				//
				$NCant=	$row[cajas]*($row['piezas']-$row['piezas_ajuste']);
				STOCK_SUB($StrAlm_,$row['id_producto'],$NCant);
			}
			T_P_ACT($row['id_producto']);
		}	
		//
		$qqq=ejt("UPDATE ajustes_presentacion SET anu='S' WHERE id_ajuste=$StrId");
		//BIT
		$_BIT_MOD_ID=$StrId;
		$_BIT_SQL_CAB=$qqq;
		$_BIT_SQL_DET="";
		$_BIT_PHP="ajustes_piezas.php";
		$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK PIEZAS","ANULAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$qqq);
		//BIT		
		ejt("DELETE FROM ajustes_presentacion_det_temp WHERE aju_hw='$STR_HW'");
		//
		$LStrMsg="Los datos han sido Anulados";
		$LStrFoc="document.getElementById('TxtFec').focus();";						
		$StrCmd="L";
	}
}
//******************************************************************************
//AGREGAR	
if($StrCmd=="ADD"){	
	$IdProd=gn("ID","vis_stock_presentaciones","COD='$D_Cod'");
	//
	if(strlen($StrGT)==0){
		if($IdProd==0){
			$LStrMsg="No se puede determinar el ID del producto";
			$LStrFoc="document.getElementById('D_Cod').focus();";						
			$StrGT="S";			
		}
	}
	//
	if(strlen($StrGT)==0){
		if(gn("count(*)","ajustes_presentacion_det_temp",
		"id_producto=$IdProd AND aju_hw='$STR_HW' AND piezas=".vbval($D_Pie))>0){
			$LStrMsg="El producto que desea agregar ya se encuentra en la lista";
			$LStrFoc="document.getElementById('D_Cod').focus();";						
			$StrGT="S";	
		}
	}
	//
	if(strlen($StrGT)==0){
		if(vbval($D_Caj)==0 || vbval($D_Pie)==0 || vbval($D_Can)==0){
			$LStrMsg="Cantidades deben ser mayor a cero";
			$LStrFoc="document.getElementById('D_Caj').focus();";						
			$StrGT="S";							
		}
	}
	if(strlen($StrGT)==0){
		$StrItem=GenId("item","ajustes_presentacion_det_temp");		
		$s="INSERT INTO ajustes_presentacion_det_temp VALUES ('$STR_HW',$StrItem,$IdProd,$D_Caj,$D_Pie,$D_Can)";
		ejt($s);
		//
		$LStrFoc="document.getElementById('D_Cod').focus();";	
		$StrCmd="L2";
	}
}

//******************************************************************************
//KILLER
if($StrCmd=="KILLER"){
	ejt("DELETE FROM ajustes_presentacion_det_temp WHERE 
	item=$StrKill AND aju_hw='$STR_HW'");
	//
	$LStrFoc="document.getElementById('D_Cod').focus();";	
	$StrCmd="L2";
}

//******************************************************************************
//LIMPIAR	
if($StrCmd=="L"){
	$StrId="";
	$StrFec=date("d-m-y");
	$StrAlm="";
	$StrNum="";
	$StrAcc="";
	$StrObs="";
	ejt("DELETE FROM ajustes_presentacion_det_temp WHERE aju_hw='$STR_HW'");
	$LStrFoc="document.getElementById('TxtFec').focus();";	
	$StrCmd="L2";
}

if($StrCmd=="L2"){
	$D_Cod="";
	$D_Des="";
	$D_Lin="";
	$D_Caj="";
	$D_Pie="";
	$D_Can="";
	$StrGT="S";
}

//******************************************************************************
//FUN ADD Y SUB STOCK PRESENTACION
function STOCK_ADD_PRESENTACION($IdAlm,$IdPro,$Pres,$Cant){
$Sql="UPDATE stocks_presentaciones 
	SET sp_cantidad=sp_cantidad - $Cant 
	WHERE sp_id_almacen=$IdAlm AND sp_id_producto=$IdPro AND sp_presentacion=$Pres";
ejt($Sql);
}
//******************************************************************************
function STOCK_SUB_PRESENTACION($IdAlm,$IdPro,$Pres,$Cant){
	$Sql="UPDATE stocks_presentaciones 
		SET sp_cantidad=sp_cantidad + $Cant 
		WHERE sp_id_almacen=$IdAlm AND sp_id_producto=$IdPro AND sp_presentacion=$Pres";
	ejt($Sql);
}
//******************************************************************************
//FUN ADD Y SUB NUEVAS PRESENTACIONES
function STOCK_ADD_NUEVA_PRESENTACION($IdAlm,$IdPro,$Piezas,$Cajas,$Piezas_Ajuste){
	$NPres=$Piezas-$Piezas_Ajuste;
	if($NPres>0){
		if(GetC("stocks_presentaciones","sp_id_almacen=$IdAlm AND sp_id_producto=$IdPro AND sp_presentacion=$NPres")==0){
			$Sql="INSERT INTO stocks_presentaciones VALUES ($IdAlm,$IdPro,$NPres,$Cajas,1)";
			ejt($Sql);
		}else{
			$Sql="UPDATE stocks_presentaciones 
				SET sp_cantidad=sp_cantidad + $Cajas 
				WHERE sp_id_almacen=$IdAlm AND sp_id_producto=$IdPro AND sp_presentacion=$NPres";
			ejt($Sql);
		}
	}
}
//******************************************************************************
function STOCK_SUB_NUEVA_PRESENTACION($IdAlm,$IdPro,$Piezas,$Cajas,$Piezas_Ajuste){
	$NPres=$Piezas-$Piezas_Ajuste;
	//
	$Sql="UPDATE stocks_presentaciones 
		SET sp_cantidad=sp_cantidad - $Cajas 
		WHERE sp_id_almacen=$IdAlm AND sp_id_producto=$IdPro AND sp_presentacion=$NPres";
	ejt($Sql);
}
//******************************************************************************
if($StrGT=="S"){
	if(strlen($LStrMsg)>0){
		if(strlen($LStrFoc)==0){
			$LStrMsg="onload=\"alert('$LStrMsg');\"";
		}else{
			$LStrMsg="onload=\"alert('$LStrMsg');$LStrFoc;\"";
		}
	}else{
		if(strlen($LStrFoc)>0){
			$LStrMsg="onload=\"$LStrFoc;\"";
		}
	}
}else{
	$LStrFoc="document.getElementById('$Focus').focus();";
	$LStrMsg="onload=\"$LStrFoc;\"";
}
//******************************************************************************		
?>