<?php
	$StrHWND_A=$_SESSION['SYS_HW']."_A";
	$VAR_USER_ID=0;	
	//-------------------------
	$StrId=V($_POST['TxtId']);
	$StrCmd=V($_POST['TxtAc']);	
	//-------------------------
	$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']);
	if(strlen($StrCmd)==0){
		$StrCmd=V($_GET['TxtAc']);
		if($StrCmd=="X")$StrCmd="C";
		$StrFec=date("d-m-y");
	}
	//------------------------
	$StrPro_ID=vbval(V($_POST['Pro_TxtId']));
	$StrPro_PR=V($_POST['TxtPre']);
	$StrPro_CA=vbval(V($_POST['TxtCant']));
	//------------------------
	if(strlen($StrPro_PR)==0 || !is_numeric($StrPro_PR)) $StrPro_PR="0";
	if(strlen($StrAcc)==0) $StrAcc="Q";
	//------------------------
	$StrCod=V($_POST['TxtCod']);
	$StrDes=V($_POST['TxtDes']);
	$StrMARCA=V($_POST['TxtMarca']);
	$StrCant=V($_POST['TxtCant']);
	$StrUCAN=vbval(V($_POST['TxtUCAN']));
	//ACTIVAR DESDE OTRA PAGINA
	if(strlen($StrId)==0){
		$StrId=V($_GET['Id']);
		if(is_numeric($StrId)==false){
			$StrId="";
		}else{
			$StrCmd="AR";
			$LStrPag=V($_GET['Pag']);
			if(!is_numeric($LStrPag)){
				$LStrPag="";
			}
		}
	}
	//FUNCIONES DE DESZPLAZAMIENTO
	if(strlen($LStrPag)==0)	$LStrPag="0";
	if($StrCmd=="MSig")	$LStrPag=($LStrPag+1);
	if($StrCmd=="MAnt")	$LStrPag=($LStrPag-1);
	if($StrCmd=="MPri")	$LStrPag=0;
	if($StrCmd=="MUlt")	$LStrPag=(floor($LStrTR / $VP_RegXPag));
	//FUNCION PARA ACTIVAR UN REGISTRO
	if(strlen($StrId)>0 && $StrCmd=="AR"){
		$Id=$StrId;
		$StrEmp=gs("EMPC","vajustes","ID=$Id");
		$StrAlm=gs("ALM","vajustes","ID=$Id");
		$StrAcc=gs("ACC","vajustes","ID=$Id");
		$StrFec=gs("DATE_FORMAT(FEC,'%d-%m-%y')","vajustes","ID=$Id");
		$StrNum=gs("NUM","vajustes","ID=$Id");
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_A'");
		$s="SELECT * FROM ajustes_det WHERE id_ajuste=$Id";
		$cx=0;
		$result = grs($s);			
		while ($row = $result->fetch_row()){
			$cx++;
			$AR_ID=$row[2];
			$AR_CA=$row[3];
			$AR_CU=$row[4];
			$AR_PR=0;
			$AR_IM=0;
			$s="INSERT INTO temp_compras VALUES ('$StrHWND_A',$AR_ID,
			$AR_CA,$AR_PR,$AR_IM,$cx,'','',$AR_CU)";
			ejt($s);			
		}
	}
	//
	if($StrCmd=="C"){
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_A'");		
		$StrAlmD="";
		$StrFec=date("d-m-y");
		$StrNum="";	
		$StrCod="";
		$StrObs="";
		$StrDes="";
		$StrMARCA="";	
		$StrCant="";
		$StrId="";
	}
	//
	if($StrCmd=="KILLER"){
		ejt("DELETE FROM temp_compras WHERE 
				temc_index=$StrPro_ID AND cod_temc='$StrHWND_A'");
	}
	//
	if($StrCmd=="ADD"){	
		if($StrPro_ID==0){
			$LStrMsg="No se puede determinar el ID del producto";
			$LStrFoc="document.getElementById('TxtCod').focus();";						
			$StrGT="S";			
		}
		if(strlen($StrGT)==0){
			if($StrPro_CA==0){
				$LStrMsg="La cantidad debe ser mayor a cero";
				$LStrFoc="document.getElementById('TxtCant').focus();";						
				$StrGT="S";							
			}
		}
		if(strlen($StrGT)==0){
			if(gn("count(*)","temp_compras",
				  "temc_id_producto=$StrPro_ID AND ".
				  "cod_temc='$StrHWND_A' AND dscto=$StrUCAN")>0){
				$LStrMsg="El producto que desea agregar ya se encuentra en la lista";
				$LStrFoc="document.getElementById('TxtCod').focus();";						
				$StrGT="S";	
			}
		}
		if(strlen($StrGT)==0){			
			$StrImporte="0";
			$StrPro_PR="0";
			$StrIndex=GenId("temc_index","temp_compras");
			$s="INSERT INTO temp_compras VALUES ('$StrHWND_A',
				$StrPro_ID,$StrPro_CA,$StrPro_PR,
				$StrImporte,$StrIndex,'','',$StrUCAN)";
			ejt($s);
			$StrCant="";
			$StrPre="";
			$StrDes="";
			$StrMARCA="";	
			$StrCod="";
			$StrImp="";
			$StrUCAN="";
			$LStrFoc="document.getElementById('TxtCod').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_");
		if(gn("count(*)","temp_compras","cod_temc='$StrHWND_A'")==0){
			$LStrMsg="La lista de productos esta vacia";
			$LStrFoc="document.getElementById('TxtCod').focus();";						
			$StrGT="S";
		}
	}
	//FUNCIONES DE ACTUALIZACION
	if($StrCmd=="M" && strlen($StrGT)==0){
		$LStrMsg="";
		$M_AC=gs("acc","ajustes","id_ajuste=$StrId");
		$M_ID_ALM=gs("id_alm","ajustes","id_ajuste=$StrId");
		$qqq=ejt("DELETE FROM ajustes WHERE id_ajuste=$StrId");
		//BIT
		$_BIT_MOD_ID=$StrId;
		$_BIT_SQL_CAB=$qqq;
		$_BIT_SQL_DET="";
		$_BIT_PHP="ajustes.php";
		$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK","MODIFICAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$qqq);
		//BIT	
		$s="SELECT id_producto,ca,can_uni FROM ajustes_det WHERE id_ajuste=$StrId";
		$result = grs($s);			
		while ($row = $result->fetch_row()){
			$E_ID=$row[0];
			$E_CA=$row[1];
			$E_CU=$row[2];
			if($M_AC=="A"){
				STOCK_SUB($M_ID_ALM,$E_ID,$E_CA*$E_CU);
				//--------------------------------------------
				if(gn("count(*)","stocks_presentaciones","sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones VALUES ($StrAlm_,$E_ID,$E_CU,$E_CA* -1,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones 
							  SET sp_cantidad=sp_cantidad-$E_CA 
							  WHERE sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}					
				//--------------------------------------------
			}else{		
				STOCK_ADD($M_ID_ALM,$E_ID,$E_CA*$E_CU);
				//--------------------------------------------
				if(gn("count(*)","stocks_presentaciones","sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones 
							  VALUES ($StrAlm_,$E_ID,$E_CU,$E_CA,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones 
							  SET sp_cantidad=sp_cantidad+$E_CA 
							  WHERE sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);							  
				}					
				//--------------------------------------------	
			}
		}
		$qqq=ejt("DELETE FROM ajustes_det WHERE id_ajuste=$StrId");
		//
		BIT_DET_ADD($_BIT_ID,$qqq);	
		//	
		$LStrMsg="Los datos han sido modificados";
		$StrGT="";
		$StrCmd="G";
	}
	//FUNCIONES DE ACTUALIZACION
	if($StrCmd=="G" && strlen($StrGT)==0){
		$StrFec_=ToDate($StrFec);
		$StrAcc_=substr($StrAcc,0,1);
		$GII=GenGI();
		$StrId=GenId("id_ajuste","ajustes");
		$StrNum=vbr("00000".$StrId,5);
		$s="INSERT INTO ajustes VALUES ($StrId,'$StrFec_',$StrAlm_,
		   '$StrNum','$StrAcc_','$StrObs',$VAR_USER_ID,'N',$GII,'M')";
	 	ejt($s);
		//BIT
		$_BIT_MOD_ID=$StrId;
		$_BIT_SQL_CAB=$s;
		$_BIT_SQL_DET="";
		$_BIT_PHP="ajustes.php";
		$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK","GUARDAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$s);
		//BIT	
		$qqq=ejt("DELETE FROM ajustes_det WHERE id_ajuste=$StrId");
		//
		BIT_DET_ADD($_BIT_ID,$qqq);
		//
		$s="SELECT * FROM temp_compras WHERE cod_temc='$StrHWND_A' 
			ORDER BY temc_index";
		$result = grs($s);			
		$cx=0;			
		while ($row = $result->fetch_row()){
			$cx++;
			$G_ID=$row[1];
			$G_CA=$row[2];
			$G_CU=$row[8];
			$ss="INSERT INTO ajustes_det VALUES ($StrId,$cx,$G_ID,$G_CA,$G_CU)";
			ejt($ss);
			//
			BIT_DET_ADD($_BIT_ID,$ss);
			//
			if($StrAcc_=="A"){
				STOCK_ADD($StrAlm_,$G_ID,$G_CA*$G_CU);
				//-------------------------------------
				if(gn("count(*)","stocks_presentaciones",
					  "sp_id_almacen=$StrAlm_ AND ".
					  "sp_id_producto=$G_ID AND sp_presentacion=$G_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones 
							  VALUES ($StrAlm_,$G_ID,$G_CU,$G_CA,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones 
						 SET sp_cantidad=sp_cantidad+$G_CA 
						 WHERE sp_id_almacen=$StrAlm_ AND 
						 sp_id_producto=$G_ID AND sp_presentacion=$G_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}	
				//-------------------------------------	
			}else{
				STOCK_SUB($StrAlm_,$G_ID,$G_CA*$G_CU);
				//-------------------------------------
				if(gn("count(*)","stocks_presentaciones",
					  "sp_id_almacen=$StrAlm_ AND sp_id_producto=$G_ID 
					  AND sp_presentacion=$G_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones 
						 VALUES ($StrAlm_,$G_ID,$G_CU,$G_CA* -1,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones 
						 SET sp_cantidad=sp_cantidad-$G_CA 
						 WHERE sp_id_almacen=$StrAlm_ AND 
						 sp_id_producto=$G_ID AND sp_presentacion=$G_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}	
				//-------------------------------------	
			}
			T_P_ACT($G_ID);
		}
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_A'");
		//
		if(strlen($LStrMsg)==0){
			$LStrMsg="Los datos han sido registrado. El numero generado es : $StrNum";
		}
		$LStrFoc="document.getElementById('TxtFec').focus();";						
		$StrGT="S";
		//
		$StrId="";
		$StrFec="";
		$StrNum="";
		$StrObs="";
		$StrCod="";
		$StrDes="";
		$StrMARCA="";	
		$StrCant="";
	}
	
	if($StrCmd=="E"){
		$StrAlm_=gn("id_alm","ajustes","id_ajuste=$StrId");
		$StrAcc_=gs("acc","ajustes","id_ajuste=$StrId");
		$qqq=ejt("DELETE FROM ajustes WHERE id_ajuste=$StrId");
		//BIT
		$_BIT_MOD_ID=$StrId;
		$_BIT_SQL_CAB=$qqq;
		$_BIT_SQL_DET="";
		$_BIT_PHP="ajustes.php";
		$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK","ELIMINAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$qqq);
		//BIT	
		$s="SELECT id_producto,ca,can_uni FROM ajustes_det WHERE id_ajuste=$StrId";
		$result = grs($s);			
		while ($row = $result->fetch_row()){
			$E_ID=$row[0];
			$E_CA=$row[1];
			$E_CU=$row[2];
			if($StrAcc_=="A"){
				STOCK_SUB($StrAlm_,$E_ID,$E_CA*$E_CU);
				//--------------------------------------------
				if(gn("count(*)","stocks_presentaciones","sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones 
							VALUES ($StrAlm_,$E_ID,$E_CU,$E_CA* -1,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones SET sp_cantidad=sp_cantidad-$E_CA 
							  WHERE sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}					
				//--------------------------------------------		
			}else{
				STOCK_ADD($StrAlm_,$E_ID,$E_CA*$E_CU);
				//--------------------------------------------
				if(gn("count(*)","stocks_presentaciones","sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones 
							  VALUES ($StrAlm_,$E_ID,$E_CU,$E_CA,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones 
							  SET sp_cantidad=sp_cantidad+$E_CA 
							  WHERE sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}					
				//--------------------------------------------			
			}
			T_P_ACT($E_ID);
		}
		$qqq=ejt("DELETE FROM ajustes_det WHERE id_ajuste=$StrId");
		BIT_DET_ADD($_BIT_ID,$qqq);
		//
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_A'");
		//
		$LStrMsg="Los datos han sido eliminados";
		$LStrFoc="document.getElementById('TxtFec').focus();";						
		$StrGT="S";
		//
		$StrId="";
		$StrFec="";
		$StrNum="";
		$StrObs="";
		$StrCod="";
		$StrDes="";
		$StrMARCA="";	
		$StrCant="";
	}	
	
	if($StrCmd=="A"){
		$StrAlm_=gn("id_alm","ajustes","id_ajuste=$StrId");
		$StrAcc_=gs("acc","ajustes","id_ajuste=$StrId");
		$qqq=ejt("UPDATE ajustes SET anu='S' WHERE id_ajuste=$StrId");
		//BIT
		$_BIT_MOD_ID=$StrId;
		$_BIT_SQL_CAB=$qqq;
		$_BIT_SQL_DET="";
		$_BIT_PHP="ajustes.php";
		$_BIT_ID=BIT_ADD("ALMACEN","AJUSTES DE STOCK","ANULAR",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
		BIT_DET_ADD($_BIT_ID,$qqq);
		//BIT	
		$s="SELECT id_producto,ca,can_uni FROM ajustes_det WHERE id_ajuste=$StrId";
		$result = grs($s);			
		while ($row = $result->fetch_row()){
			$E_ID=$row[0];
			$E_CA=$row[1];
			$E_CU=$row[2];
			if($StrAcc_=="A"){
				STOCK_SUB($StrAlm_,$E_ID,$E_CA*$E_CU);	
				//--------------------------------------------
				if(gn("count(*)","stocks_presentaciones","sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones VALUES ($StrAlm_,$E_ID,$E_CU,$E_CA* -1,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones SET sp_cantidad=sp_cantidad-$E_CA 
					WHERE sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}					
				//--------------------------------------------					
			}else{
				STOCK_ADD($StrAlm_,$E_ID,$E_CA*$E_CU);
				//--------------------------------------------
				if(gn("count(*)","stocks_presentaciones","sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU")==0){
					$qqq=ejt("INSERT INTO stocks_presentaciones VALUES ($StrAlm_,$E_ID,$E_CU,$E_CA,$PRO_SI)");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}else{
					$qqq=ejt("UPDATE stocks_presentaciones SET sp_cantidad=sp_cantidad+$E_CA 
					WHERE sp_id_almacen=$StrAlm_ AND sp_id_producto=$E_ID AND sp_presentacion=$E_CU");
					BIT_DET_ADD($_BIT_ID,$qqq);
				}					
				//--------------------------------------------				
			}
			T_P_ACT($E_ID);
		}
		//
		ejt("DELETE FROM temp_compras WHERE cod_temc='$StrHWND_A'");
		//
		$LStrMsg="La transferencia ha sido anulada";
		$LStrFoc="document.getElementById('TxtFec').focus();";						
		$StrGT="S";
		//
		$StrId="";
		$StrFec="";
		$StrNum="";
		$StrObs="";
		$StrCod="";
		$StrDes="";
		$StrMARCA="";	
		$StrCant="";
	}	
	//////////////////////////////////
	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('TxtFec').focus();";
		$LStrMsg="onload=\"$LStrFoc;\"";
	}
	
?>