//si el primer dato es 1 se toma encuenta para procesar if (substr($linea, 0, 1) == 1) { //obtiene datos $tarjeta = trim(substr($linea, 207, 20)); $fecha_cargo = trim(substr($linea, 588, 10)); $no_transaccion = trim(substr($linea, 631, 50)); $signo = trim(substr($linea, 736, 1)); $monto_amex = trim(substr($linea, 737, 15)); $monto_amex = intval($monto_amex) / 100; $moneda_amex = trim(substr($linea, 769, 3)); $moneda_amex = codigo_divisa($moneda_amex); //echo "<br>"; $monto = trim(substr($linea, 811, 15)); $monto = intval($monto) / 100; $moneda_local = trim(substr($linea, 858, 3)); $moneda_local = codigo_divisa($moneda_local); $rfc_establecimiento = trim(substr($linea, 991, 45)); $concepto = mysql_real_escape_string(trim(substr($linea, 1953, 40))); $rfc_establecimiento = substr($rfc_establecimiento, 0, 3) != "RFC" ? "" : substr($rfc_establecimiento, 3, 42); error_log("---->>>>RFC: " . $rfc_establecimiento); if ($signo == "+") { $estatusTarjeta = 0; /*$estatusTarjeta = ''; $sql_empleado = "SELECT idempleado FROM empleado WHERE notarjetacredito = '$tarjeta' AND estatus = 1 OR notarjetacredito_gas = '$tarjeta' AND estatus = 1"; $res = $cnn->consultar($sql_empleado); $row = mysql_fetch_array($res); if($row['idempleado'] != ''){ $estatusTarjeta = 0;
/** * Obtiene linea por linea de cada archivo para insertar el registro de cada cargo en la tabla AMEX * @param char $dir => URL donde se almacenan los archivos * @param char $file => Nombre del archivo */ function procesaArchivo($dir, $file) { $con = new conexion(); $archivo = fopen($dir . $file, "r") or exit("No es posible abrir el archivo"); $data = fread($archivo, filesize($dir . $file)); $linea_array = explode("\n", $data); $cantidad_lineas = count($linea_array); $noRegistros = 0; $registrosInsertados = 0; $registrosnoInsertados = 0; $sql = ""; $_array = array("consulta" => $sql, "total_registros" => $noRegistros, "registros_insertados" => $registrosInsertados, "registros_no_insertados" => $registrosnoInsertados); $log_querys = "# Línea\t\tIndicador\t Signo\t\tExiste\t\t\t\t Inserción en BD "; for ($i = 0; $i < $cantidad_lineas; $i++) { $linea = $linea_array[$i]; $log_querys .= "\r\n\t" . $i . " \t\t\t" . substr($linea, 0, 1) . " \t\t\t"; // Si el primer dato es 1 se toma encuenta para procesar if (substr($linea, 0, 1) == 1) { //obtiene datos $tarjeta = trim(substr($linea, 207, 20)); $fecha_cargo = trim(substr($linea, 588, 10)); $no_transaccion = trim(substr($linea, 631, 50)); $signo = trim(substr($linea, 736, 1)); $monto_amex = trim(substr($linea, 737, 15)); $monto_amex = intval($monto_amex) / 100; $moneda_amex = trim(substr($linea, 769, 3)); $moneda_amex = codigo_divisa($moneda_amex); $monto = trim(substr($linea, 811, 15)); $monto = intval($monto) / 100; $moneda_local = trim(substr($linea, 858, 3)); $moneda_local = codigo_divisa($moneda_local); $rfc_establecimiento = trim(substr($linea, 991, 16)); $concepto = mysql_real_escape_string(trim(substr($linea, 1953, 40))); $rfc_establecimiento = substr($rfc_establecimiento, 0, 3) != "RFC" ? "" : trim(substr($rfc_establecimiento, 3, 16)); $log_querys .= $signo . " \t\t"; $query = "SELECT idamex, notransaccion FROM amex WHERE notransaccion = '" . $no_transaccion . "'"; $res = $con->consultar($query); $response = mysql_fetch_assoc($res); if ($signo == "+") { $estatusTarjeta = 0; if (empty($response)) { $sql .= "('{$tarjeta}', NOW(), '{$fecha_cargo}', '{$monto}', '{$estatusTarjeta}', '{$moneda_local}', '{$concepto}', '{$rfc_establecimiento}', '{$no_transaccion}', '0.00', '{$monto_amex}', '{$moneda_amex}'),"; $log_querys .= " No \t\t"; $registrosInsertados++; } else { $log_querys .= " Si \t\t"; $registrosnoInsertados++; } $log_querys .= "INSERT INTO amex (tarjeta, fecha, fecha_cargo, monto, estatus, moneda_local, concepto, rfc_establecimiento, notransaccion, conversion_pesos, montoAmex, monedaAmex) VALUES ('{$tarjeta}', NOW(), '{$fecha_cargo}', '{$monto}', '{$estatusTarjeta}', '{$moneda_local}', '{$concepto}', '{$rfc_establecimiento}', '{$no_transaccion}', '0.00', '{$monto_amex}', '{$moneda_amex}');"; $noRegistros++; } } } // Guardamos un log de los datos que deberian registrarse en la tabla log_amex_querys($log_querys, $file, $dir); $_array["consulta"] = $sql; $_array["total_registros"] = $noRegistros; $_array["registros_insertados"] = $registrosInsertados; $_array["registros_no_insertados"] = $registrosnoInsertados; return $_array; }