//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;						
Exemplo n.º 2
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;
}