<?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'];
//+++
$Act=V($_POST['Act']);
//+++
if($StrCmd=="NEU_IMPORTAR"){
	$FILE_NAME=strtoupper($StrFileN);
	if($FILE_NAME=="REFERENCIAS.XLSX"){
		//***             
		if($FILE_NAME=="REFERENCIAS.XLSX"){
			//DELETE_FILE("listas/lista.xlsx");
			$StrFileNew="listas/referencias.xlsx";
			if (move_uploaded_file($_FILES['Productos']['tmp_name'], $StrFileNew)){ 
				if(file_exists("listas/referencias.xlsx")){
					$_ADD_SI=0;
					$_ADD_NO=0;
					$DAT=XLSX_LISTA($Act,$IdP,$_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($ACTUALIZAR,$IdP,&$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",$_BIT_MOD_ID,$_BIT_SQL_CAB,$_BIT_SQL_DET,$_BIT_PHP);
	BIT_DET_ADD($_BIT_ID,"");
	//BIT	
	$ADD_SI=0;
	$ADD_NO=0;
	if(strlen($ACTUALIZAR)==0){
		$ACTUALIZAR="NO";
	}	
	if(!file_exists("listas/referencias.xlsx")){
		return "El archivo referencias.xlsx no se encuentra";
	}	
	if($xlsx=SimpleXLSX::parse('listas/referencias.xlsx')) {
		//++++++++++++++++++
		$MIL=6000;
		$CIE=19;
		$CX=0;
		//
		$hojas=$xlsx->sheetNames();
		$H0=trim(strtoupper($hojas[0]));
		//
		$HOJA=$xlsx->rows(0);
		//
		$A1=strtoupper(trim($HOJA[0][0]));//EMPRESA
		$B1=strtoupper(trim($HOJA[0][1]));//INVOICE_FECHA
		$D1=strtoupper(trim($HOJA[0][3]));//INVOICE_NUMERO
		$I1=strtoupper(trim($HOJA[0][8]));//PAIS_DESEMBARCO
		//
		if( $H0==TU("Hoja1") && $A1=="EMPRESA" && 
			$B1=="INVOICE_FECHA" && $D1=="INVOICE_NUMERO" && $I1=="PAIS_DESEMBARCO"){
			$TODO_OK=1;
			//ejt("DELETE FROM dac_lista");
		}else{
			return "El archivo seleccionado no corresponde";
		}
		//
		if($TODO_OK==1){
			for($f=1;$f<=$MIL;$f++){
				$EMP=V($HOJA[$f][0]);
				if(gn("count(*)","ges_empresas","emp_nom_cor='$EMP'")==0){
					$TODO_OK=0;
					$MSG_RPT="Nombre corto de empresa '$EMP' no registrado";
					return $MSG_RPT;
				}
			}
		}
		if($TODO_OK==1){
			
			for($f=1;$f<=$MIL;$f++){
				$EMP=V($HOJA[$f][0]);
				$SER=V($HOJA[$f][2]);
				$NUM=V($HOJA[$f][3]);
				$ITEM=vbval(V($HOJA[$f][4]));
				if(strlen($SER)>0 && strlen($NUM)>0){
					//***
					$DAT_EMP=V($HOJA[$f][0]);
					$DAT_INV_FEC=V($HOJA[$f][1]);
					$DAT_INV_SER=V($HOJA[$f][2]);
					$DAT_INV_NUM=V($HOJA[$f][3]);
					$DAT_INV_NUM_=vbval($DAT_INV_NUM);
					$DAT_INV_ITE=vbval(V($HOJA[$f][4]));
					$DAT_DUA=V($HOJA[$f][5]);
					$DAT_DUA_ITE=vbval(V($HOJA[$f][6]));
					$DAT_PAI_ORI=V($HOJA[$f][7]);
					$DAT_PAI_DES=V($HOJA[$f][8]);
					$DAT_PAR=V($HOJA[$f][9]);
					$DAT_NOM_COM=V($HOJA[$f][10]);
					$DAT_EST=V($HOJA[$f][11]);
					$DAT_FOB_USD=vbval(V($HOJA[$f][12]));
					$DAT_FOB_KG=vbval(V($HOJA[$f][13]));
					$DAT_UND=V($HOJA[$f][14]);
					$DAT_CANT=vbval(V($HOJA[$f][15]));
					$DAT_MOD=V($HOJA[$f][16]);
					$DAT_CLA=V($HOJA[$f][17]);
					$DAT_OBS=V($HOJA[$f][18]);
					//				
					$SYS_FEC=date("Y-m-d");
					$SYS_HOR=GetHoraAP();
					$SYS_TIM=time();
					//
					$DAT_EMP_=0;
					$DAT_UND_=0;				
					//
					if(strlen($DAT_EMP)>0){
						if(gn("count(*)","ges_empresas","emp_nom_cor='$DAT_EMP'")==0){
							$IdE=GenId("id_emp","ges_empresas");
							$s="INSERT INTO ges_empresas VALUES ($IdE,'$DAT_EMP','$DAT_EMP','', '', 'ND')";
							ejt($s);
							BIT_DET_ADD($_BIT_ID,$s);
							//
							$DAT_EMP_=$IdE;					
						}else{
							$DAT_EMP_=gn("id_emp","ges_empresas","emp_nom_cor='$DAT_EMP'");
						}
					}
					//
					$DAT_INV_FEC_=ToDate($DAT_INV_FEC);
					//+++
					if(strlen($DAT_UND)>0){
						/*
						$CX=gn("id_und","ges_unidades","und_abr='$DAT_UND' AND id_und>0");
						if($CX==0){
							$CX=GenId("id_und","ges_unidades");
							$SQL="INSERT INTO ges_unidades VALUES ($CX,'$DAT_UND','$DAT_UND',1)";
							ejt($SQL);
							$DAT_UND_=$CX;
						}else{
							$DAT_UND_=$CX;
						}
						*/
					}
					//+++
					$ref_inv_id=0;
					$ref_inv_id_pro=0;
					$ref_inv_ok=0;
					//
					$ref_inv_id=gn("id_in","ges_invoice","in_inv_ser='".$DAT_INV_SER."' AND in_inv_num_=".$DAT_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=$DAT_INV_ITE");
						if($ref_inv_id_pro==$IdP){
							$ref_inv_ok=1;		
						}
					}
					//+++
					$LINK="";
					//+++
					$CXX=gn("count(*)","ges_productos_referencias",
							"id_pro=$IdP AND inv_ser='".$DAT_INV_SER."' AND inv_num_=".$DAT_INV_NUM_." AND inv_item=".$DAT_INV_ITE);
					//+++
					if($CXX==0){
						//
						$XXX_UNIDAD="";
						//
						$PRO_REF_KOD=GenId("id_ref","ges_productos_referencias");
						$SQL="INSERT INTO ges_productos_referencias 
							  (id_ref,sys_fec,sys_tim,sys_hor,id_pro,link,usu_id,xls_modo,xls_unidad) 
							  VALUES ($PRO_REF_KOD,'$SYS_FEC',$SYS_TIM,'$SYS_HOR',$IdP,'',0,'REG','$XXX_UNIDAD')";
						ejt($SQL);
						BIT_DET_ADD($_BIT_ID,$SQL);
						//
						ejt("UPDATE ges_productos_referencias SET id_emp=$DAT_EMP_ WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET inv_fec='$DAT_INV_FEC_' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET inv_ser='$DAT_INV_SER' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET inv_num='$DAT_INV_NUM' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET inv_num_=$DAT_INV_NUM_ WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET inv_item=$DAT_INV_ITE WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET pai_ori='$DAT_PAI_ORI' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET pai_des='$DAT_PAI_DES' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET partida='$DAT_PAR' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET nom_comercial='$DAT_NOM_COM' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET estado='$DAT_EST' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET fob_uss=$DAT_FOB_USD WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET fob_kg=$DAT_FOB_KG WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET unidad='$DAT_UND' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET cantidad=$DAT_CANT WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET modelo='$DAT_MOD' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET clase_variedad='$DAT_CLA' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET dua='$DAT_DUA' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET dua_item=$DAT_DUA_ITE WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET observacion='$DAT_OBS' WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET ref_inv_id=$ref_inv_id WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET ref_inv_id_pro=$ref_inv_id_pro WHERE id_ref=$PRO_REF_KOD");
						ejt("UPDATE ges_productos_referencias SET ref_inv_ok=$ref_inv_ok WHERE id_ref=$PRO_REF_KOD");
						//+++
						ejt("UPDATE ges_productos_referencias SET xls_pro_cod='' WHERE id_ref=$Idf");
						ejt("UPDATE ges_productos_referencias SET xls_pro_des='' WHERE id_ref=$Idf");
						ejt("UPDATE ges_productos_referencias SET xls_pro_pu=0 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='' WHERE id_ref=$Idf");
						//+++
						$ADD_SI=$ADD_SI + 1;	
					}else{
						$ADD_NO=$ADD_NO + 1;	
					}
				}else{
					break;
				}		
			}					
		}		
		return "OK";		
	}else{
		return "ERROR";
	}
}

//
?>