<?php
	//
	function V_OK($str){
		if(strlen($str)>0){
			return 1;
		}else{
			return 0;
		}
	}
	function V_X($S){
		if($S==null){
			return "";
		}else{
			$S=str_replace('"',' ',$S);
			$S=str_replace("'",' ',$S);
			return strtoupper($S);
		}
	}
	//
	function XLS_GET_TIP($TIP){
		$TIP=strtoupper(trim($TIP));
		if(strlen($TIP)==0){
			return 0;
		}else{
			$CX=gn("id_linea","lineas","lin_nombre='$TIP'");
			if($CX>0){
				return $CX;
			}else{
				$CX=GenId("id_linea","lineas");
				$s="INSERT INTO lineas VALUES ($CX,'$TIP','')";				
				ejt($s);
				return $CX;
			}
		}
	}
	//
	function XLS_GET_MAR($MAR){
		$MAR=strtoupper(trim($MAR));
		if(strlen($MAR)==0){
			return 0;
		}else{
			$CX=gn("id_marca","marcas","mar_nombre='$MAR'");
			if($CX>0){
				return $CX;
			}else{
				$CX=GenId("id_marca","marcas");
				$s="INSERT INTO marcas VALUES ($CX,'$MAR')";				
				ejt($s);
				return $CX;
			}
		}
	}
	//
	function XLS_GET_UNI($UNI){
		$UNI=strtoupper(trim($UNI));
		if(strlen($UNI)==0){
			return 0;
		}else{
			$CX=gn("id_unidad","unidades","uni_nombre='$UNI'");
			if($CX>0){
				return $CX;
			}else{
				$CX=GenId("id_unidad","unidades");
				$s="INSERT INTO unidades VALUES ($CX,'$UNI')";				
				ejt($s);
				return $CX;
			}
		}
	}
	//
	function XLS_GET_PRV($PRV){
		$PRV=strtoupper(trim($PRV));
		if(strlen($PRV)==0){
			return 0;
		}else{
			$CX=gn("id_proveedor","proveedores","pro_nombre='$PRV'");
			if($CX>0){
				return $CX;
			}else{
				$CX=GenId("id_proveedor","proveedores");
				//
				$CON="";
				$DIR="";
				$DIS=0;
				$DNI="";
				$RUC="";
				$TEL="";
				$CEL="";
				$FAX="";
				$EMA="";
				//
				$s="INSERT INTO proveedores ".
				"VALUES ($CX,'$PRV','$CON','$DIR',$DIS,'$DNI','$RUC','$TEL','$CEL','$FAX','$EMA')";				
				ejt($s);
				return $CX;
			}
		}
	}
	//
	function PRODUCTOS_ADD($COD,$TIP,$DES,$MAR,$UND,$PDC,$MND,$PDV,$PRV,$STO){
		if(strlen($MND)==0){
			$MND="S";
		}else{
			$MND=substr($MND,0,1);
			if(!($MND=="S" || $MND=="D")){
				$MND="S";
			}
		}
		//
		$TIP=XLS_GET_TIP($TIP);
		$MAR=XLS_GET_MAR($MAR);
		$UND=XLS_GET_UNI($UND);
		$PRV=XLS_GET_PRV($PRV);					
		//
		$DESC="";
		$PVM=0;
		$PVW=0;
		$OBS="";
		$T_Y=0;
		$T_Z=0;
		$FAB=0;
		$MOD=0;
		//
		if(strlen($COD)>0){
			$PRO_ID=gn("id_producto","productos","pro_codigo='$COD'");
		}else{
			$PRO_ID=gn("id_producto","productos","pro_des='$DES'");
		}
		//
		if($PRO_ID==0){
			$PRO_ID=GenId("id_producto","productos");
			$s="INSERT INTO productos 
				VALUES ($PRO_ID,'$COD',$TIP,'$DES','$DESC',
				$MAR,$UND,$PDC,$PVM,$PVW,'$OBS',$PRV,$T_Y,$T_Z,
				$FAB,$MOD,$PDV,0,0,'NO','$MND')";
			ejt($s);
		}else{
			$s="UPDATE productos 
				SET
				pro_codigo='$COD',
				pro_id_linea=$TIP,
				pro_des='$DES',
				pro_des_cor='$DESC',
				pro_id_marca=$MAR,
				pro_id_unidad=$UND,
				pro_pc_sol=$PDC,
				pro_pv_min=$PVM,
				pro_pv_max=$PVW,
				pro_obs='$OBS',
				pro_id_proveedor=$PRV,
				y_id=$T_Y,
				z_id=$T_Z,
				pro_id_fab=$FAB,
				pro_id_mod=$MOD,
				pro_pxu=$PDV,
				pro_pxc=0,
				pro_pxm=0,
				pro_ofe='NO',
				pro_mnd='$MND'							
				WHERE id_producto=$PRO_ID";
			ejt($s);
		}
		//
		$ALM_ID=1;
		STOCK_ADD($ALM_ID,$PRO_ID,0);		
		$AX_StrFec=date("Y-m-d");			
		if($STO>0){
			$STOCK_ACTUAL=gn("SUM(stock)","stocks","id_producto=$PRO_ID");				
			$AX_DIF=abs($STOCK_ACTUAL - $STO);
			if($AX_DIF!=0){
				$AX_ID=GenId("id_ajuste","ajustex");
				if($STOCK_ACTUAL>$STO){
					$s="INSERT INTO ajustex VALUES ($AX_ID,'$AX_StrFec',$ALM_ID,$PRO_ID,'Q',$AX_DIF)";					
				}else{
					$s="INSERT INTO ajustex VALUES ($AX_ID,'$AX_StrFec',$ALM_ID,$PRO_ID,'A',$AX_DIF)";					
				}
				ejt($s);
				$s="UPDATE stocks SET stock=$STO WHERE id_producto=$PRO_ID AND id_almacen=$ALM_ID";
				ejt($s);
			}
		}
		//
	}
	//
	function IMPORTAR_PRODUCTOS_EXCEL(){
		$COD="";
		$TIP="";
		$DES="";
		$MAR="";
		$UND="";
		$PDC="";
		$MND="";
		$PDV="";
		$PRV="";
		$STO="";
		//
		$FIL=0;
		$COL=0;
		//
		if($xlsx=SimpleXLSX::parse("ImpProd.xlsx")){
			$dim = $xlsx->dimension();
			$cols = $dim[0];
			foreach ( $xlsx->rows() as $k => $r ) {
				$FIL++;
				if($FIL>=2){
					$COL=0;
					//
					$COD="";
					$TIP="";
					$DES="";
					$MAR="";
					$UND="";
					$PDC="";
					$MND="";
					$PDV="";
					$PRV="";
					$STO="";
					//
					for ( $i = 0; $i < $cols; $i ++ ) {
						$COL++;
						if($COL==1)$COD=trim(isset($r[$i])?$r[$i]:'');
						if($COL==2)$TIP=trim(isset($r[$i])?$r[$i]:'');
						if($COL==3)$DES=trim(isset($r[$i])?$r[$i]:'');
						if($COL==4)$MAR=trim(isset($r[$i])?$r[$i]:'');
						if($COL==5)$UND=trim(isset($r[$i])?$r[$i]:'');
						if($COL==6)$PDC=vbval(trim(isset($r[$i])?$r[$i]:''));
						if($COL==7)$MND=trim(isset($r[$i])?$r[$i]:'');
						if($COL==8)$PDV=vbval(trim(isset($r[$i])?$r[$i]:''));
						if($COL==9)$PRV=trim(isset($r[$i])?$r[$i]:'');
						if($COL==10)$STO=vbval(trim(isset($r[$i])?$r[$i]:''));
						if($COL>=10)break;					
					}
					//
					if(strlen($DES)==0){
						break;
					}
					//
					PRODUCTOS_ADD($COD,$TIP,$DES,$MAR,$UND,$PDC,$MND,$PDV,$PRV,$STO);
					//
				}
			}
		}else{
			echo SimpleXLSX::parseError();
		}
	}
	//
	function XLS_PROD2020(){	
		$data = new Spreadsheet_Excel_Reader();
		$data->setOutputEncoding('CP1251');
		$data->read('ImpProd.xls');
		error_reporting(E_ALL ^ E_NOTICE);
		$Fil=$data->sheets[0]['numRows'];
		$Col=$data->sheets[0]['numCols'];	
		for ($i = 2; $i <= $Fil; $i++) {		
			$COD=trim(V8($data->sheets[0]['cells'][$i][1]));
			$COD=str_replace("*","+",$COD);				
			$LIN=trim(V8($data->sheets[0]['cells'][$i][2])); 		
			$DES=trim(V8($data->sheets[0]['cells'][$i][3]));
			$DES=str_replace("*","+",$DES);				 		
			$MAR=trim(V8($data->sheets[0]['cells'][$i][4])); 		
			$UNI=trim(V8($data->sheets[0]['cells'][$i][5]));
			$PRC=vbval(trim(V8($data->sheets[0]['cells'][$i][6]))); 		
			$prv=vbval(trim(V8($data->sheets[0]['cells'][$i][7]))); 		
			$PRV=vbval(trim(V8($data->sheets[0]['cells'][$i][8]))); 		
			$PRO=trim(V8($data->sheets[0]['cells'][$i][9]));
			$MOD="";
			$FAB="";
			//
			$PXU=vbval(trim(V8($data->sheets[0]['cells'][$i][10]))); 
			$PXC=vbval(trim(V8($data->sheets[0]['cells'][$i][11]))); 
			$PXM=vbval(trim(V8($data->sheets[0]['cells'][$i][12]))); 
			$OFE=strtoupper(trim(V($data->sheets[0]['cells'][$i][13]))); 
			//
			if(strlen($OFE)==0){
				$OFE="NO";
			}else{
				if($OFE=="SI" || $OFE=="S"){
					$OFE="SI";
				}else{
					$OFE="NO";
				}
			}
			//
			if(strlen($DES)==0) break;
			//
			if(strlen($FAB)==0){
				$FAB=0;
			}else{
				$FAB_=gn("id_fab","fabricantes","fab_nom='$FAB' AND id_fab>0");					 
				if($FAB_==0){
					$FAB_=GenId("id_fab","fabricantes");
					$s="INSERT INTO fabricantes VALUES ($FAB_,'$FAB')";
					ejt($s);
				}
				$FAB=$FAB_;
			}
			//
			if(strlen($MOD)==0){
				$MOD=0;
			}else{
				$MOD_=gn("id_mod","modelos","mod_nom='$MOD' AND id_mod>0");					 
				if($MOD_==0){
					$MOD_=GenId("id_mod","modelos");
					$s="INSERT INTO modelos VALUES ($MOD_,'$MOD','SI')";
					ejt($s);
				}
				$MOD=$MOD_;		
			}
			//
			if(strlen($LIN)==0){
				$LIN=0;
			}else{
				$LIN_=gn("id_linea","lineas","lin_nombre='$LIN' AND id_linea>0");					 
				if($LIN_==0){
					$LIN_=GenId("id_linea","lineas");
					$s="INSERT INTO lineas VALUES ($LIN_,'$LIN','')";
					ejt($s);
				}
				$LIN=$LIN_;
			}
			//
			if(strlen($MAR)==0){
				$MAR=0;
			}else{
				$MAR_=gn("id_marca","marcas","mar_nombre='$MAR' AND id_marca>0");
				if($MAR_==0){
					$MAR_=GenId("id_marca","marcas");
					$s="INSERT INTO marcas VALUES ($MAR_,'$MAR')";
					ejt($s);
				}
				$MAR=$MAR_;
			}
			//
			if(strlen($UNI)==0){
				$UNI=0;
			}else{
				$UNI_=gn("id_unidad","unidades","uni_nombre='$UNI' AND id_unidad>0");
				if($UNI_==0){
					$UNI_=GenId("id_unidad","unidades");
					$s="INSERT INTO unidades VALUES ($UNI_,'$UNI')";
					ejt($s);
				}
				$UNI=$UNI_;
			}
			//
			if(strlen($PRO)==0){
				$PRO=0;
			}else{
				$PRO_=gn("id_proveedor","proveedores","pro_nombre='$PRO' AND id_proveedor>0");
				if($PRO_==0){
					$PRO_=GenId("id_proveedor","proveedores");
					$s="INSERT INTO proveedores VALUES ".
					   "($PRO_,'$PRO','','',".
					   "0,'','','','',".
					   "'','') ";			
					ejt($s);
				}
				$PRO=$PRO_;
			}
			//
			if(strlen($COD)>0){
				$IDP=gn("id_producto","productos","pro_codigo='$COD'");	
			}else{
				$IDP=gn("id_producto","productos",
						"pro_id_linea=$LIN AND pro_id_marca=$MAR AND pro_id_unidad=$UNI AND pro_des='$DES'");	
			}		
			if($IDP==0 ){
				$IDP=GenId("id_producto","productos");
				$s="INSERT INTO productos VALUES ".
				   "($IDP,'$COD',$LIN,'$DES','',$MAR,$UNI,".
				   "$PRC,$prv,$PRV,'',$PRO,0,0,$FAB,$MOD,$PXU,$PXC,$PXU,'$OFE')";			
				ejt($s);
				//echo $s."<br>";
				//INICIALIZAR PARA TODOS
				ejt("DELETE FROM stocks WHERE id_producto=$IDP");
				ejt("DELETE FROM stockm WHERE id_producto=$IDP");
				$s="SELECT id_almacen FROM almacenes ORDER by id_almacen";
				$result = grs($s);
				while ($row = $result->fetch_row()){
					STOCK_ADD($row[0],$IDP,0);
					$ID_MIN=GenId("id_stockm","stockm");
					$s="INSERT INTO stockm VALUES ($ID_MIN,$row[0],$IDP,0)";
					ejt($s);
				}		
			}else{
				$s="UPDATE productos SET ".
				   "pro_codigo='$COD',pro_id_linea=$LIN,".
				   "pro_des='$DES',pro_id_marca=$MAR,pro_id_unidad=$UNI,".
				   "pro_pc_sol=$PRC,pro_pv_min=$prv,".
				   "pro_pv_max=$PRV,pro_id_proveedor=$PRO,".
				   "pro_id_fab=$FAB,pro_id_mod=$MOD,pro_pxu=$PXU,".
				   "pro_pxc=$PXC,pro_pxm=$PXM,pro_ofe='$OFE' ".
				   "WHERE id_producto=$IDP";	
				ejt($s);
			}
		}
	}
	//
	if($StrCmd=="IMPORTAR"){
		$StrFileN = $_FILES['userfile']['name']; 
		$StrFileT = $_FILES['userfile']['type']; 		
		$StrExt=extension($StrFileN);
		//	
		if (!($StrExt== "xlsx" || $StrExt=="XLSX")){ 
			$LStrMsg="La extension debe ser XLSX : $StrExt";
			$LStrFoc="document.getElementById('userfile').focus();";
			$StrGT="S";	
		}else{ 
			$StrFileNew="ImpProd.xlsx";
			if (move_uploaded_file($_FILES['userfile']['tmp_name'], $StrFileNew)){ 				
				IMPORTAR_PRODUCTOS_EXCEL();
				$LStrMsg="El archivo ha sido cargado correctamente ";
				$LStrFoc="document.getElementById('CmdZ').focus();";
				$StrGT="S";
			}else{ 
				$LStrMsg="Error al subir el archivo";
				$LStrFoc="document.getElementById('userfile').focus();";
				$StrGT="S";		
			} 
		}
		// 
	}
	//
	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('CmdZ').focus();";
		$LStrMsg="onload=\"$LStrFoc;\"";
	}

?>