<?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=="REFERENCIAS_MASIVAS.XLSX"){
		//***             
		if($FILE_NAME=="REFERENCIAS_MASIVAS.XLSX"){
			//DELETE_FILE("listas/lista.xlsx");
			$StrFileNew="listas/referencias_masivas.xlsx";
			if (move_uploaded_file($_FILES['Productos']['tmp_name'], $StrFileNew)){ 
				if(file_exists("listas/referencias_masivas.xlsx")){
					$_ADD_SI=0;
					$_ADD_NO=0;
					$DAT=XLSX_LISTA_MASIVA($Aut,$_ADD_SI,$_ADD_NO);
					if($DAT!="OK"){
						$SYS_MSG="($DAT)";
						$StrGT="S";
					}else{
						$SYS_MSG="El archivo ha sido cargado correctamente. ".
								 "Total agregados : $_ADD_SI, total no agregados : $_ADD_NO";
						$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_MASIVA($ACTUALIZAR,&$ADD_SI,&$ADD_NO){
	//BIT
	$_BIT_MOD_ID="0";
	$_BIT_SQL_CAB="SQL";
	$_BIT_SQL_DET="";
	$_BIT_PHP="ges_productos.php";
	$_BIT_ID=BIT_ADD("MANTENIMIENTO","PRODUCTOS","IMPORTAR REFERENCIAS MASIVAS",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
	BIT_DET_ADD($_BIT_ID,"");
	//BIT	
	$ADD_SI=0;
	$ADD_NO=0;
	//
	$ACTUALIZAR=strtoupper($ACTUALIZAR);
	if(strlen($ACTUALIZAR)==0){
		$ACTUALIZAR="NO";
	}
	if($ACTUALIZAR=="SI" || $ACTUALIZAR=="S"){
		$ACTUALIZAR="SI";
	}
	if(!file_exists("listas/referencias_masivas.xlsx")){
		return "El archivo referencias_masivas.xlsx no se encuentra";
	}	
	if($xlsx=SimpleXLSX::parse('listas/referencias_masivas.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]));
		//
		$HOJA=$xlsx->rows(0);
		//
		$A1=strtoupper(trim($HOJA[0][0]));
		$B1=strtoupper(trim($HOJA[0][1]));
		$D1=strtoupper(trim($HOJA[0][3]));
		$E1=strtoupper(trim($HOJA[0][4]));
		$I1=strtoupper(trim($HOJA[0][8]));
		//
		if( ($H0==TU("Hoja1") && $A1=="CODIGO_PRODUCTO" && $B1=="DESCRIPCION_PRODUCTO" && 
			 $D1=="PRECIO_UNITARIO_PRODUCTO" && $E1=="UNIDAD" && $I1=="INVOICE_NUMERO")
			){
			$TODO_OK=1;
			//ejt("DELETE FROM dac_lista");
		}else{
			return "El archivo seleccionado no corresponde, descarge la plantilla correspondiente";
		}
		//VALIDAR SI EXISTE LA EMPRESA
		if($TODO_OK==1){
			for($f=1;$f<=$MIL;$f++){			
				$XLS_EMP=strtoupper(V($HOJA[$f][5]));
				if(gn("count(*)","ges_empresas","emp_nom_cor='$XLS_EMP'")==0){
					$TODO_OK=0;
					$MSG_RPT="Nombre corto de empresa '$XLS_EMP' no registrado";
					return $MSG_RPT;
				}
			}			
		}
		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]));
				$STR_PRE=V($HOJA[$f][3]);
				$P_UND=strtoupper(V($HOJA[$f][4]));
				//
				$XLS_EMP=strtoupper(V($HOJA[$f][5]));
				$XLS_INV_FEC=strtoupper(V($HOJA[$f][6]));
				$XLS_INV_SER=strtoupper(V($HOJA[$f][7]));
				$XLS_INV_NUM=strtoupper(V($HOJA[$f][8]));
				$XLS_INV_ITE=vbval(V($HOJA[$f][9]));
				$XLS_DUA=strtoupper(V($HOJA[$f][10]));
				$XLS_DUA_ITEM=vbval(V($HOJA[$f][11]));//@
				$XLS_PAI_ORI=strtoupper(V($HOJA[$f][12]));
				$XLS_PAI_EMB=strtoupper(V($HOJA[$f][13]));
				$XLS_PARTIDA=strtoupper(V($HOJA[$f][14]));
				$XLS_NOM_COM=strtoupper(V($HOJA[$f][15]));
				$XLS_ESTADO=strtoupper(V($HOJA[$f][16]));
				$XLS_FOB_USD=vbval(V($HOJA[$f][17]));
				$XLS_FOB_KG=vbval(V($HOJA[$f][18]));
				$XLS_UNIDAD=strtoupper(V($HOJA[$f][19]));
				$XLS_CANTIDAD=vbval(V($HOJA[$f][20]));
				$XLS_MODELO=strtoupper(V($HOJA[$f][21]));
				$XLS_CLASE_VARIEDAD=strtoupper(V($HOJA[$f][22]));
				$XLS_OBS=strtoupper(V($HOJA[$f][23]));				
				//
				$P_KOD=0;
				$PK_UND=0;
				//
				if(strlen($P_COD)==0 && strlen($P_DES)==0){
					break;
				}
				//
				$PRODUCTO_NUEVO=0;
				//
				if($ACTUALIZAR=="SI"){
					$PK_UND=gn("id_und","ges_unidades","und_abr='$P_UND'");
					if(strlen($P_COD)>0){
						$P_KOD=gn("id_pro","ges_productos","pro_cod='$P_COD' AND pro_hab='SI' ");
						if($P_KOD==0){
							$P_KOD=GenId("id_pro","ges_productos");
							$SQL="INSERT INTO ges_productos VALUES ($P_KOD,'$P_COD','$P_DES',$P_PRE,'SI',$PK_UND,'$P_MED')";
							ejt($SQL);
							BIT_DET_ADD($_BIT_ID,$SQL);
							//
							$PRODUCTO_NUEVO=1;
						}
					}else{
						if(strlen($P_DES)>0){
							$P_KOD=gn("id_pro","ges_productos","pro_des='$P_DES' AND pro_hab='SI' ");
							if($P_KOD==0){
								$P_KOD=GenId("id_pro","ges_productos");
								$SQL="INSERT INTO ges_productos VALUES ($P_KOD,'','$P_DES',$P_PRE,'SI',$PK_UND,'$P_MED')";
								ejt($SQL);
								BIT_DET_ADD($_BIT_ID,$SQL);
								//
								$PRODUCTO_NUEVO=1;
							}
						}
					}
					//+++				
				}else{
					if(strlen($P_COD)>0){
						$P_KOD=gn("id_pro","ges_productos","pro_cod='$P_COD' AND pro_hab='SI' ");						
					}else{
						if(strlen($P_DES)>0){
							$P_KOD=gn("id_pro","ges_productos","pro_des='$P_DES' AND pro_hab='SI' ");							
						}
					}
				}
				//
				$IdP=$P_KOD;
				//
				if($IdP>0){
					//
					if($PRODUCTO_NUEVO==0 && $ACTUALIZAR=="SI"){
						if(strlen($P_DES)>0){
							$s="UPDATE ges_productos SET pro_des='$P_DES' WHERE id_pro=$IdP";
							ejt($s);
							BIT_DET_ADD($_BIT_ID,$s);
							//
						}
						if(strlen($STR_PRE)>0){
							$s="UPDATE ges_productos SET pro_pu=$P_PRE WHERE id_pro=$IdP";
							ejt($s);
							BIT_DET_ADD($_BIT_ID,$s);
							//
						}
						if(strlen($P_MED)>0){
							$s="UPDATE ges_productos SET pro_medidas='$P_MED' WHERE id_pro=$IdP";
							ejt($s);
							BIT_DET_ADD($_BIT_ID,$s);
							//
						}
						/*
						if(strlen($P_UND)>0){
							$s="UPDATE ges_productos SET pro_id_und=$PK_UND WHERE id_pro=$IdP";
							ejt($s);
						}
						*/
					}
					//
					if(strlen($XLS_INV_SER)>0 && strlen($XLS_INV_NUM)>0){						
						if(gn("count(*)","ges_empresas","emp_nom_cor='$XLS_EMP'")==0){
							$IdE=GenId("id_emp","ges_empresas");
							$s="INSERT INTO ges_empresas VALUES ($IdE,'$XLS_EMP','$XLS_EMP','', '', 'ND')";
							ejt($s);
							BIT_DET_ADD($_BIT_ID,$s);
							//				
						}else{
							$IdE=gn("id_emp","ges_empresas","emp_nom_cor='$XLS_EMP'");
						}
						$XLS_INV_FEC=ToDate($XLS_INV_FEC);
						/*
						if(strlen($XLS_UNIDAD)>0){
							$CX=gn("id_und","ges_unidades","und_abr='$XLS_UNIDAD' AND id_und>0");
							if($CX==0){
								$CX=GenId("id_und","ges_unidades");
								$SQL="INSERT INTO ges_unidades VALUES ($CX,'$XLS_UNIDAD','$XLS_UNIDAD',1)";
								ejt($SQL);
							}
						}
						*/
						$ref_inv_id=0;
						$ref_inv_id_pro=0;
						$ref_inv_ok=0;
						//
						$ref_inv_id=gn("id_in","ges_invoice","in_inv_ser='".$XLS_INV_SER."' AND in_inv_num_=".$XLS_INV_NUM);
						if($ref_inv_id>0){
							$ref_inv_id_pro=gn("det_id_pro","ges_invoice_det",
											   "det_id_inv=$ref_inv_id AND det_cx=$XLS_INV_ITE");
							if($ref_inv_id_pro==$_PRO){
								$ref_inv_ok=1;		
							}
						}
						//
						$CXX=gn("count(*)","ges_productos_referencias",
								"id_pro=$P_KOD AND inv_ser='$XLS_INV_SER' AND inv_num_=".vbval($XLS_INV_NUM)." AND inv_item=".$XLS_INV_ITE);
						//
						if($CXX==0){
							//
							$Idf=GenId("id_ref","ges_productos_referencias");
							$s="INSERT INTO ges_productos_referencias (id_ref,sys_fec,sys_tim,sys_hor,xls_modo,xls_unidad) 
								VALUES ($Idf,'$SYS_FEC',$SYS_TIM,'$SYS_HOR','MAS','$P_UND')";
							ejt($s);
							BIT_DET_ADD($_BIT_ID,$s);
							//			
							//++++
							ejt("UPDATE ges_productos_referencias SET id_pro=$P_KOD WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET id_emp=$IdE WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET inv_fec='$XLS_INV_FEC' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET inv_ser='$XLS_INV_SER' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET inv_num='$XLS_INV_NUM' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET inv_num_=".vbval($XLS_INV_NUM)." WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET inv_item=".$XLS_INV_ITE." WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET pai_ori='$XLS_PAI_ORI' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET pai_des='$XLS_PAI_EMB' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET partida='$XLS_PARTIDA' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET nom_comercial='$XLS_NOM_COM' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET estado='$XLS_ESTADO' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET fob_uss=$XLS_FOB_USD WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET fob_kg=$XLS_FOB_KG WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET unidad='$XLS_UNIDAD' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET cantidad=$XLS_CANTIDAD WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET modelo='$XLS_MODELO' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET clase_variedad='$XLS_CLASE_VARIEDAD' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET dua='$XLS_DUA' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET dua_item=$XLS_DUA_ITEM WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET link='$XLS_LINK' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET observacion='$XLS_OBS' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET usu_id=0 WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET ref_inv_id=$ref_inv_id WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET ref_inv_id_pro=$ref_inv_id_pro WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET ref_inv_ok=$ref_inv_ok WHERE id_ref=$Idf");
							//+++
							ejt("UPDATE ges_productos_referencias SET xls_pro_cod='$P_COD' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET xls_pro_des='$P_DES' WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET xls_pro_pu=$P_PRE WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET xls_pro_id_und=0 WHERE id_ref=$Idf");
							ejt("UPDATE ges_productos_referencias SET xls_pro_medidas='$P_MED' WHERE id_ref=$Idf");
							//+++
							$ADD_SI=$ADD_SI+1;
						}else{
							$ADD_NO=$ADD_NO+1;
						}
					}else{
						break;
					}	
				}
			}					
		}		
		return "OK";		
	}else{
		return "ERROR";
	}
}

//
?>