<?php
$StrId=V($_POST['TxtId']);
$StrCmd=V($_POST['TxtAc']);
$Link=V($_POST['Link']);
$LIMPIAR=0;
//++++
$P_C="Productos";
$StrFileN = $_FILES['Productos']['name']; 
$StrFileT = $_FILES['Productos']['type']; 
$StrFileX = $_FILES['Productos']['tmp_name'];
$Aut=V($_POST['Aut']);
//++++
if(strlen($Aut)==0)$Aut="NO";
//++++
if($StrCmd=="NEU_IMPORTAR"){
	$FILE_NAME=strtoupper($StrFileN);
	if($FILE_NAME=="IMPORTAR_PRODUCTOS.XLSX"){
		//***             
		if($FILE_NAME=="IMPORTAR_PRODUCTOS.XLSX"){
			//DELETE_FILE("listas/lista.xlsx");
			$StrFileNew="listas/lista_de_productos.xlsx";
			if (move_uploaded_file($_FILES['Productos']['tmp_name'], $StrFileNew)){ 
				if(file_exists("listas/lista_de_productos.xlsx")){
					$PRO_NUE=0;
					$PRO_ACT=0;
					$PRO_REP=0;
					$DAT=XLSX_LISTA_PRODUCTOS($Aut,$PRO_NUE,$PRO_ACT,$PRO_REP);
					if($DAT!="OK"){
						$SYS_MSG="($DAT)";
						$StrGT="S";
					}else{
						$SYS_MSG="El archivo ha sido cargado correctamente. ".
								 "Productos registrados : $PRO_NUE, ".
								 "productos actualizados :  $PRO_ACT , ".
								 "productos no registrados/repetidos : $PRO_REP ";
						$SYS_CERRAR="SI";
						$StrGT="S";
					}
				}else{
					$SYS_MSG="Error 001";
					$StrGT="S";
				}
			}else{ 
				$SYS_MSG="Error al subir el archivo lista.xls";
				$StrGT="S";		
			} 
		}
		//***		
	}else{
		$SYS_MSG="Nombre de archivo incorrecto";
		$StrGT="S";		
	}
}
//++
function XLSX_LISTA_PRODUCTOS($ACTUALIZAR,&$PRO_NUE,&$PRO_ACT,&$PRO_REP){
	//BIT
	$_BIT_MOD_ID="0";
	$_BIT_SQL_CAB="SQL";
	$_BIT_SQL_DET="";
	$_BIT_PHP="ges_productos.php";
	$_BIT_ID=BIT_ADD("MANTENIMIENTO","PRODUCTOS","IMPORTAR PRODUCTOS",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
	BIT_DET_ADD($_BIT_ID,"");
	//BIT	
	$PRO_NUE=0;
	$PRO_ACT=0;
	$PRO_REP=0;
	//++++++++++++++
	$ACTUALIZAR=strtoupper($ACTUALIZAR);
	if(strlen($ACTUALIZAR)==0){
		$ACTUALIZAR="NO";
	}
	if($ACTUALIZAR=="SI" || $ACTUALIZAR=="S"){
		$ACTUALIZAR="SI";
	}
	if(!file_exists("listas/lista_de_productos.xlsx")){
		return "El archivo lista_de_productos.xlsx no se encuentra";
	}	
	if($xlsx=SimpleXLSX::parse('listas/lista_de_productos.xlsx')) {
		//+++
		$MIL=6000;
		$CIE=22;
		$CX=0;
		//
		$SYS_FEC=date("Y-m-d");
		$SYS_HOR=GetHoraAP();
		$SYS_TIM=time();
		//
		$hojas=$xlsx->sheetNames();
		$H0=trim(strtoupper($hojas[0]));//NOMBRE DE LA HOJA
		//
		$HOJA=$xlsx->rows(0);
		//
		$A1=strtoupper(trim($HOJA[0][0]));//CODIGO
		$B1=strtoupper(trim($HOJA[0][1]));
		$C1=strtoupper(trim($HOJA[0][2]));
		$D1=strtoupper(trim($HOJA[0][4]));
		//
		if($A1=="CODIGO" && $B1=="NOMBRE/DESCRIPCION" && $C1=="MEASURES/MEDIDAS" && $D1=="UNIDAD"){
			$TODO_OK=1;
		}else{
			return "El archivo seleccionado no corresponde, descarge la plantilla correspondiente";
		}
		//
		if($TODO_OK==1){
			//
			for($f=1;$f<=$MIL;$f++){
				//+++
				$P_COD=strtoupper(V($HOJA[$f][0]));
				$P_DES=strtoupper(V($HOJA[$f][1]));
				$P_MED=trim(V($HOJA[$f][2]));
				$P_PRE=vbval(V($HOJA[$f][3]));
				$P_UND=strtoupper(V($HOJA[$f][4]));
				//
				$PK_UND=0;
				$PK_PRO=0;
				//
				if(strlen($P_COD)==0 && strlen($P_DES)==0){
					break;
				}
				//				
				if(strlen($P_UND)==0)$P_UND="DOC";
				//
				$PRODUCTO_NUEVO=0;
				//
				if(strlen($P_UND)>0){
					$PK_UND=gn("id_und","ges_unidades","und_abr='$P_UND' AND id_und>0");
					if($PK_UND==0){
						$PK_UND=GenId("id_und","ges_unidades");
						$SQL="INSERT INTO ges_unidades VALUES ($PK_UND,'$P_UND','$P_UND',1)";
						ejt($SQL);
						BIT_DET_ADD($_BIT_ID,$SQL);
						//
					}
				}
				//
				if($ACTUALIZAR=="SI"){					
					if(strlen($P_COD)>0){
						$PK_PRO=gn("id_pro","ges_productos","pro_cod='$P_COD' AND pro_hab='SI' ");
						if($PK_PRO>0){
							$SQL="UPDATE ges_productos 
								  SET 
								  	  pro_des='$P_DES',
									  pro_pu=$P_PRE,
									  pro_id_und=$PK_UND,
									  pro_medidas='$P_MED'
								  WHERE id_pro=$PK_PRO";
							ejt($SQL);
							BIT_DET_ADD($_BIT_ID,$SQL);
							//
							$PRO_ACT++;
						}else{
							$PK_PRO=GenId("id_pro","ges_productos");
							$SQL="INSERT INTO ges_productos VALUES ($PK_PRO,'$P_COD','$P_DES',$P_PRE,'SI',$PK_UND,'$P_MED','')";
							ejt($SQL);
							BIT_DET_ADD($_BIT_ID,$SQL);
							//
							$PRO_NUE++;
						}
					}else{
						if(strlen($P_DES)>0){
							$PK_PRO=gn("id_pro","ges_productos","LENGTH(TRIM(pro_cod))=0 AND pro_des='$P_DES' AND pro_hab='SI' ");
							if($PK_PRO>0){
								$SQL="UPDATE ges_productos 
									  SET 
										  pro_pu=$P_PRE,
										  pro_id_und=$PK_UND,
										  pro_medidas='$P_MED'
									  WHERE id_pro=$PK_PRO";
								ejt($SQL);
								BIT_DET_ADD($_BIT_ID,$SQL);
								//
								$PRO_ACT++;
							}else{
								$PK_PRO=GenId("id_pro","ges_productos");
								$SQL="INSERT INTO ges_productos VALUES ($PK_PRO,'$P_COD','$P_DES',$P_PRE,'SI',$PK_UND,'$P_MED','')";
								ejt($SQL);
								//echo "<br>".$SQL."<br>";
								BIT_DET_ADD($_BIT_ID,$SQL);
								//
								$PRO_NUE++;
							}
						}
					}
				}else{					
					if(strlen($P_COD)>0){
						$PK_PRO=gn("id_pro","ges_productos","pro_cod='$P_COD' AND pro_hab='SI' ");
						if($PK_PRO==0){
							$PK_PRO=GenId("id_pro","ges_productos");
							$SQL="INSERT INTO ges_productos VALUES ($PK_PRO,'$P_COD','$P_DES',$P_PRE,'SI',$PK_UND,'$P_MED','')";
							ejt($SQL);
							BIT_DET_ADD($_BIT_ID,$SQL);
							//
							$PRO_NUE++;
						}else{
							$PRO_REP++;
						}
					}else{
						if(strlen($P_DES)>0){
							$PK_PRO=gn("id_pro","ges_productos","LENGTH(TRIM(pro_cod))=0 AND pro_des='$P_DES' AND pro_hab='SI' ");
							if($PK_PRO==0){
								$PK_PRO=GenId("id_pro","ges_productos");
								$SQL="INSERT INTO ges_productos VALUES ($PK_PRO,'$P_COD','$P_DES',$P_PRE,'SI',$PK_UND,'$P_MED','')";
								ejt($SQL);
								echo "<br>".$SQL."<br>";
								BIT_DET_ADD($_BIT_ID,$SQL);
								//
								$PRO_NUE++;
							}else{
								$PRO_REP++;
							}
						}
					}
				}
			}					
		}		
		return "OK";		
	}else{
		return "ERROR";
	}
}

//
?>