function insertarVentasPaquetesCredito($lineasArchivo) { $huboFalla = false; $numLinea = 0; $maxFields = 23; $prevLineValue = ""; global $varEnter; $fieldSeparator = ";"; $t0 = time(); $dbLink = getConnection(); mysql_query("SET autocommit = 0", $dbLink); // Podemos trabajar con todas las líneas: foreach ($lineasArchivo as $sLinea) { //echo $sLinea."<br>"; $lineaAsArray = explode($fieldSeparator, $prevLineValue . $sLinea); $numLinea++; if (count($lineaAsArray) < $maxFields) { //seguimos leyendo hasta tener toda la linea completa $prevLineValue .= $sLinea; continue; } else { $lineaAsArray = fixLineValue($prevLineValue . $sLinea); //ya tenemos la linea completa, procedemos al insert $prevLineValue = ""; } if (count($lineaAsArray) == $maxFields) { //$recordExists = queryHasResults("SELECT COUNT(*) FROM ventas_paquetes_credito WHERE nro_inscripcion = ".$lineaAsArray[0]); //if($recordExists){ $sql = "DELETE FROM ventas_paquetes_credito WHERE nro_inscripcion= " . $lineaAsArray[0]; mysql_query($sql, $dbLink); //} $sql = "INSERT INTO ventas_paquetes_credito VALUES (" . $lineaAsArray[0] . ", " . $lineaAsArray[1] . ", STR_TO_DATE('" . $lineaAsArray[2] . "', '%d/%m/%Y %H:%i:%S')" . ", '" . cleanSingleQuotes($lineaAsArray[3]) . "', " . nullIfEmpty($lineaAsArray[4]) . ", " . nullIfEmpty($lineaAsArray[5]) . ", '" . cleanSingleQuotes($lineaAsArray[6]) . "', '" . cleanSingleQuotes($lineaAsArray[7]) . "', '" . cleanSingleQuotes($lineaAsArray[8]) . "', '" . cleanSingleQuotes($lineaAsArray[9]) . "', " . nullIfEmpty(fixMonto($lineaAsArray[10])) . ", '" . cleanSingleQuotes($lineaAsArray[11]) . "', '" . cleanSingleQuotes($lineaAsArray[12]) . "', '" . cleanSingleQuotes($lineaAsArray[13]) . "', '" . cleanSingleQuotes($lineaAsArray[14]) . "', '" . cleanSingleQuotes($lineaAsArray[15]) . "', '" . cleanSingleQuotes($lineaAsArray[16]) . "', '" . cleanSingleQuotes($lineaAsArray[17]) . "', '" . cleanSingleQuotes($lineaAsArray[18]) . "', '" . cleanSingleQuotes($lineaAsArray[19]) . "', STR_TO_DATE('" . $lineaAsArray[20] . "', '%d/%m/%Y %H:%i:%S')" . ", '" . cleanSingleQuotes($lineaAsArray[21]) . "', " . nullIfEmpty(substr($lineaAsArray[22], 0, strlen($lineaAsArray[22]) - 2)) . ")"; mysql_query($sql, $dbLink); if (mysql_error()) { //echo $sql."<br>"; addLineInErrorFile("En el archivo que fue cargado, la linea " . $numLinea . " presento problemas en sus valores" . $varEnter . "El contenido de la linea " . $numLinea . " es: " . $sLinea . "A pesar de que la misma si cumple con el formato fijado, es posible que el valor de algun campo presente algun problema" . $varEnter . "Se recomienda proporcionar este texto a los encargados del sistema:" . $varEnter . " --> " . $sql . $varEnter . " --> Error SQL: " . mysql_error() . $varEnter . "Por favor ubique esta linea en el archivo original para tener un mejor contexto del problema" . $varEnter . "-------------------------------------------------------------" . $varEnter . $varEnter); $huboFalla = true; } //mysql_close(); } else { $huboFalla = true; addLineInErrorFile("En el archivo que fue cargado, la linea " . $numLinea . " no cumple con el formato fijado" . $varEnter . "El contenido de la linea " . $numLinea . " es: " . $sLinea . (count($lineaAsArray) > $maxFields ? "Probablemente en esta linea existan '" . $fieldSeparator . "' de mas, lo que ocasiona que se pierda el formato, las lineas de este formato deben tener solamente " . ($maxFields - 1) . " |" : "Es probable que esta linea este incompleta y el resto este en las lineas siguientes o anteriores") . $varEnter . "Se recomienda ubicar esta linea en el archivo original para tener un mejor contexto del problema" . $varEnter . "-------------------------------------------------------------" . $varEnter . $varEnter); } } mysql_query("commit", $dbLink); if (mysql_error($dbLink)) { echo mysql_error($dbLink); } mysql_query("SET autocommit = 1", $dbLink); if (mysql_error($dbLink)) { echo mysql_error($dbLink); } mysql_close($dbLink); //echo (time() - $t0)." segundos duro el proceso de $numLinea lineas<br>"; return $huboFalla; }
function insertarVentasPaquetesCredito($objPHPExcel) { $huboFalla = false; $numLinea = 2; $maxFields = 23; global $varEnter; $t0 = time(); $dbLink = getConnection(); mysql_query("SET autocommit = 0", $dbLink); // Podemos trabajar con todas las líneas: $objPHPExcel->setActiveSheetIndex(0); $tmpValueTipoCliente; while ($objPHPExcel->getActiveSheet()->getCell("A" . $numLinea)->getValue() != '') { //$recordExists = queryHasResults("SELECT COUNT(*) FROM ventas_paquetes_credito WHERE nro_inscripcion = ".($objPHPExcel->getActiveSheet()->getCell("A".$numLinea)->getValue())); //if($recordExists){ $sql = "DELETE FROM ventas_paquetes_credito WHERE nro_inscripcion = " . $objPHPExcel->getActiveSheet()->getCell("A" . $numLinea)->getValue(); mysql_query($sql, $dbLink); //} $sql = "INSERT INTO ventas_paquetes_credito VALUES (" . $objPHPExcel->getActiveSheet()->getCell("A" . $numLinea)->getValue() . ", " . $objPHPExcel->getActiveSheet()->getCell("B" . $numLinea)->getValue() . ", DATE_ADD('1900-01-01', INTERVAL " . ($objPHPExcel->getActiveSheet()->getCell("C" . $numLinea)->getValue() - 2) . " DAY)" . ", '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("D" . $numLinea)->getValue()) . "', " . nullIfEmpty($objPHPExcel->getActiveSheet()->getCell("E" . $numLinea)->getValue()) . ", " . nullIfEmpty($objPHPExcel->getActiveSheet()->getCell("F" . $numLinea)->getValue()) . ", '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("G" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("H" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("I" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("J" . $numLinea)->getValue()) . "', " . nullIfEmpty(fixMonto($objPHPExcel->getActiveSheet()->getCell("K" . $numLinea)->getValue())) . ", '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("L" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("M" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("N" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("O" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("P" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("Q" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("R" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("S" . $numLinea)->getValue()) . "', '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("T" . $numLinea)->getValue()) . "', DATE_ADD('1900-01-01', INTERVAL " . ($objPHPExcel->getActiveSheet()->getCell("U" . $numLinea)->getValue() - 2) . " DAY)" . ", '" . cleanSingleQuotes($objPHPExcel->getActiveSheet()->getCell("V" . $numLinea)->getValue()) . "', " . nullIfEmpty($objPHPExcel->getActiveSheet()->getCell("W" . $numLinea)->getValue()) . ")"; mysql_query($sql, $dbLink); if (mysql_error()) { //echo $sql."<br>"; addLineInErrorFile("En el archivo que fue cargado, la linea " . $numLinea . " presento problemas en sus valores" . $varEnter . "A pesar de que la misma si cumple con el formato fijado, es posible que el valor de algun campo presente algun problema" . $varEnter . "Se recomienda proporcionar este texto a los encargados del sistema:" . $varEnter . " --> " . $sql . $varEnter . " --> Error SQL: " . mysql_error() . $varEnter . "Por favor ubique esta linea en el archivo original para tener un mejor contexto del problema" . $varEnter . "-------------------------------------------------------------" . $varEnter . $varEnter); $huboFalla = true; } //mysql_close($dbLink); $numLinea++; } mysql_query("commit", $dbLink); if (mysql_error($dbLink)) { echo mysql_error($dbLink); } mysql_query("SET autocommit = 1", $dbLink); if (mysql_error($dbLink)) { echo mysql_error($dbLink); } mysql_close($dbLink); //echo (time() - $t0)." segundos duro el proceso de $numLinea lineas<br>"; return $huboFalla; }