Advertisement
Fhernd

ParseExtractos.java

Mar 13th, 2013
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 27.24 KB | None | 0 0
  1. package upload;
  2.  
  3. /**
  4.  *
  5.  * @author John Ortiz
  6.  *
  7.  */
  8. import com.mysql.jdbc.Connection;
  9. import java.io.BufferedReader;
  10. import java.io.File;
  11. import java.io.FileReader;
  12. import java.io.FileNotFoundException;
  13. import java.io.IOException;
  14. import java.sql.DriverManager;
  15. import java.sql.SQLException;
  16. import java.text.SimpleDateFormat;
  17. import java.util.ArrayList;
  18. import java.util.Calendar;
  19. import java.util.Properties;
  20. import java.util.regex.Matcher;
  21. import java.util.regex.Pattern;
  22.  
  23. public class ParseExtractos {
  24.  
  25.     private String urlParam = "";
  26.     private String emailParam = "";
  27.     private String passwordParam = "";
  28.  
  29.     public void startParse(String fileName) throws SQLException, ClassNotFoundException {
  30.         File archivoFuenteDatos = new File(fileName); // archivo fuente
  31.  
  32.         BufferedReader reader = null;
  33.  
  34.         ArrayList< String> elements = new ArrayList< String>();
  35.  
  36.         try {
  37.             reader = new BufferedReader(new FileReader(archivoFuenteDatos));
  38.             String text = null;
  39.  
  40.             // repeat until all lines is read
  41.             while ((text = reader.readLine()) != null) {
  42.                 String[] campos;
  43.  
  44.                 switch (text.charAt(0)) {
  45.                     case '1':
  46.  
  47.                         campos = text.split(";");
  48.  
  49.                         for (int i = 0; i < (campos.length - 1); ++i) {
  50.                             elements.add(campos[ i].trim().replaceAll(" +", " "));
  51.                         } // end for
  52.  
  53.                         break;
  54.  
  55.                     case '2':
  56.  
  57.                         campos = text.split(";");
  58.  
  59.                         for (int i = 0; i < (campos.length - 1); ++i) {
  60.                             elements.add(campos[ i].trim().replaceAll(" +", " "));
  61.                         } // end for
  62.  
  63.                         break;
  64.  
  65.                     case '3':
  66.  
  67.                         campos = text.split(";");
  68.  
  69.                         for (int i = 0; i < (campos.length - 1); ++i) {
  70.                             elements.add(campos[ i].trim().replaceAll(" +", " "));
  71.                         } // end for
  72.  
  73.                         break;
  74.  
  75.                     case '4':
  76.  
  77.                         campos = text.split(";");
  78.  
  79.                         int iteraciones = contarPuntoComas(text) == 6 ? 5 : 5;
  80.  
  81.                         for (int i = 0; i < iteraciones; ++i) {
  82.                             elements.add(campos[ i].trim().replaceAll(" +", " "));
  83.                         } // end for
  84.  
  85.                         break;
  86.                 }
  87.             } // end while
  88.         } // end try
  89.         catch (FileNotFoundException e) {
  90.             //e.printStackTrace();
  91.             System.out.println(e.getMessage());
  92.         } // end catch: FileNotFoundException
  93.         catch (IOException e) {
  94.             //e.printStackTrace();
  95.             System.out.println(e.getMessage());
  96.         } // end catch: IOException
  97.         finally {
  98.             try {
  99.                 if (reader != null) {
  100.                     reader.close();
  101.                 } // end if
  102.             } // end try
  103.             catch (IOException e) {
  104.                 //e.printStackTrace();
  105.             } // end catch: IOException
  106.         } // end finally
  107.  
  108.  
  109.         saveOnDB(elements);
  110.  
  111.  
  112.     } // end main
  113.  
  114.     private void saveOnDB(ArrayList< String> elements) throws SQLException, ClassNotFoundException {
  115.         // carga las propiedades de la base de datos
  116.         Properties dbconfig = new Properties();
  117.         try {
  118.             dbconfig.load(this.getClass().getResourceAsStream("/upload/dbconfig.properties"));
  119.         } catch (IOException ex) {
  120.             System.err.println("Error: " + ex.toString());
  121.         }
  122.  
  123.         Class.forName("com.mysql.jdbc.Driver");
  124.         Connection con = (Connection) DriverManager.getConnection(dbconfig.getProperty("dburl") + "/" + dbconfig.getProperty("dbname"), dbconfig.getProperty("dbuser"), dbconfig.getProperty("dbpw"));
  125.         int count = 0;
  126.  
  127.         // aux variables
  128.         String idCedulaNit = "";
  129.         String codigoCuenta = "";
  130.         long idExtracto = 0;
  131.  
  132.         Calendar currentDate = Calendar.getInstance();
  133.         SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  134.         String fechaExtraco = formatter.format(currentDate.getTime());
  135.  
  136.         while (count < elements.size()) {
  137.  
  138.  
  139.             // test registry typem
  140.             switch (Integer.parseInt(elements.get(count))) {
  141.  
  142.                 // Registry no. 1
  143.                 case 1:
  144.  
  145.                     /* Busca por la cédula o NIT. Si el usuario no existe, se encarga de crearlo.
  146.                      * Siendo así, también se deberá crear los inmuebles asociados con ese usuario.
  147.                      */
  148.                     if (!userIDExists(removeFrontZeros(elements.get(count + 8)), con)) {
  149.                         idCedulaNit = removeFrontZeros(elements.get(count + 8));
  150.                         String nombrePropietario = elements.get(count + 4);
  151.  
  152.                         createUser(idCedulaNit, firstLetterCapital(nombrePropietario), "", removeFrontZeros(idCedulaNit), 3, con); // include fields from 1 to 11
  153.  
  154.                         // crear inmuebles
  155.                         codigoCuenta = elements.get(count + 1) + elements.get(count + 2) + elements.get(count + 3);
  156.                         String pais = elements.get(count + 7);
  157.                         String ciudad = firstLetterCapital(elements.get(count + 6));
  158.                         String direccion = firstLetterCapital(elements.get(count + 5));
  159.  
  160.                         // graba sobre la base de datos los datos de la cuenta actual
  161.                         if (!accountExists(codigoCuenta, con)) {
  162.                             createAccount(codigoCuenta, pais, ciudad, direccion.replace("'", "-"), con);
  163.  
  164.                         }
  165.                         createUserAccount(idCedulaNit, codigoCuenta, con);
  166.                     } // end if: test if a user exists.
  167.                     else {
  168.  
  169.                         codigoCuenta = elements.get(count + 1).concat(elements.get(count + 2)).concat(elements.get(count + 3));
  170.                         idCedulaNit = removeFrontZeros(elements.get(count + 8));
  171.                        
  172.                         // test if the property exists
  173.                         if (!accountExists(codigoCuenta, con)) {
  174.                             createAccount(codigoCuenta, firstLetterCapital(elements.get(count + 7)), firstLetterCapital(elements.get(count + 6)),
  175.                                     firstLetterCapital(elements.get(count + 5)).replace("'", "-"), con);
  176.  
  177.                             createUserAccount(idCedulaNit, codigoCuenta, con);
  178.                         } else // update property details
  179.                         {
  180.  
  181.                             updateAccount(codigoCuenta, firstLetterCapital(elements.get(count + 7)), firstLetterCapital(elements.get(count + 6)),
  182.                                     firstLetterCapital(elements.get(count + 5)).replace('\'', '_').replace('\\', '_'), con);
  183.                         } // end else
  184.                     } // end else
  185.  
  186.                     String saldoAnterior = elements.get(count + 9).length() == 0 ? "0" : removeFrontZeros(elements.get(count + 9));
  187.  
  188.                     if (saldoAnterior.length() > 1) {
  189.                         saldoAnterior = saldoAnterior.substring(0, saldoAnterior.length() - 2);
  190.                     } // end if
  191.  
  192.  
  193.                     if (elements.get(count + 9).charAt(elements.get(count + 9).length() - 1) == '-') {
  194.                         if (!saldoAnterior.equals("0")) {
  195.                             saldoAnterior = "-" + saldoAnterior;
  196.                         }
  197.                     }
  198.  
  199.                     idExtracto = createExtract(formatDate(elements.get(count + 10)), formatDate(elements.get(count + 11)), saldoAnterior.length() == 0 ? "0" : saldoAnterior.equals("-") || saldoAnterior.equals("") ? "0" : saldoAnterior, codigoCuenta, fechaExtraco, con);
  200.  
  201.  
  202.                     count += 13;
  203.  
  204.                     break;
  205.  
  206.                 // Registry no. 2    
  207.                 case 2: // registry type 2
  208.  
  209.                     int contadorMovimientos = 1;
  210.  
  211.                     String fechaDocumento = "";
  212.                     String documento = "";
  213.                     String numero = "";
  214.                     String transaccion = "";
  215.                     String detalleTransaccion = "";
  216.                     String detalle = "";
  217.                     String valorDebito = "";
  218.                     String valorCredito = "";
  219.                     String saldo = "";
  220.  
  221.                     // mientras que hayan más elementos de tipo 2
  222.                     while (isNumeric(elements.get(count)) && Long.parseLong(elements.get(count)) == 2) {
  223.  
  224.                         ++count; // first registry of reg. type 2
  225.  
  226.                         fechaDocumento = convertToMdy(elements.get(count));
  227.  
  228.                         ++count;
  229.                         documento = firstLetterCapital(elements.get(count));
  230.                         ++count;
  231.                         numero = elements.get(count);
  232.                         ++count;
  233.                         transaccion = firstLetterCapital(elements.get(count));
  234.                         ++count;
  235.                         detalleTransaccion = firstLetterCapital(elements.get(count));
  236.                         ++count;
  237.                         detalle = firstLetterCapital(elements.get(count));
  238.                         ++count;
  239.                         valorDebito = removeFrontZeros(elements.get(count));
  240.  
  241.                         if (valorDebito.length() > 1) {
  242.                             valorDebito = valorDebito.substring(0, valorDebito.length() - 2);
  243.                         } // end
  244.  
  245.                         ++count;
  246.                         valorCredito = removeFrontZeros(elements.get(count));
  247.  
  248.                         if (valorCredito.length() > 1) {
  249.                             valorCredito = valorCredito.substring(0, valorCredito.length() - 2);
  250.                         }
  251.  
  252.                         ++count;
  253.  
  254.                         saldo = removeFrontZeros(elements.get(count));
  255.  
  256.                         if (saldo.length() > 1) {
  257.                             saldo = saldo.substring(0, saldo.length() - 2);
  258.                         } // end if
  259.  
  260.                         if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  261.                             if (!saldo.equals("0")) {
  262.                                 saldo = "-" + saldo;
  263.                             }
  264.                         }
  265.  
  266.                         // escribe sobre la base de datos
  267.                         insertIntoRegistry2(fechaDocumento, documento, numero, transaccion, detalleTransaccion, detalle, valorDebito.equals("-") || valorDebito.equals("") ? "0" : valorDebito, valorCredito.equals("-") || valorCredito.equals("") ? "0" : valorCredito, saldo.equals("-") || saldo.equals("") ? "0" : saldo, idExtracto, contadorMovimientos, con);
  268.  
  269.                         ++count; // next detail (or next registry type 3, if any)
  270.  
  271.                         ++contadorMovimientos;
  272.                     } // end while
  273.  
  274.                     break;
  275.  
  276.                 // Registry no. 3
  277.                 case 3: // registry type 3
  278.  
  279.                     ++count; // first element of reg. type 3
  280.  
  281.                     String totalDebitos = removeFrontZeros(elements.get(count));
  282.  
  283.                     if (totalDebitos.length() > 1) {
  284.                         totalDebitos = totalDebitos.substring(0, totalDebitos.length() - 2);
  285.                     }
  286.  
  287.                     ++count;
  288.                     String totalCreditos = removeFrontZeros(elements.get(count));
  289.  
  290.                     if (totalCreditos.length() > 1) {
  291.                         totalCreditos = totalCreditos.substring(0, totalCreditos.length() - 2);
  292.                     }
  293.  
  294.  
  295.                     ++count;
  296.                     String totalSaldoActual = elements.get(count);
  297.  
  298.                     if (totalSaldoActual.length() > 1) {
  299.                         totalSaldoActual = totalSaldoActual.substring(0, totalSaldoActual.length() - 3);
  300.                     }
  301.  
  302.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  303.                         if (!totalSaldoActual.equals("0")) {
  304.                             totalSaldoActual = "-" + totalSaldoActual;
  305.                         }
  306.                     }
  307.  
  308.                     ++count;
  309.                     String totalArrendamientos = elements.get(count);
  310.  
  311.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  312.                         if (!totalArrendamientos.equals("0")) {
  313.                             totalArrendamientos = "-" + totalArrendamientos;
  314.                         }
  315.                     }
  316.  
  317.                     ++count;
  318.                     String totalComisiones = elements.get(count);
  319.  
  320.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  321.                         if (!totalComisiones.equals("0")) {
  322.                             totalComisiones = "-" + totalComisiones;
  323.                         }
  324.                     }
  325.  
  326.                     ++count;
  327.                     String totalSeguro = elements.get(count);
  328.  
  329.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  330.                         if (!totalSeguro.equals("0")) {
  331.                             totalSeguro = "-" + totalSeguro;
  332.                         }
  333.                     }
  334.  
  335.                     ++count;
  336.                     String totalGastos = elements.get(count);
  337.  
  338.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  339.                         if (!totalGastos.equals("0")) {
  340.                             totalGastos = "-" + totalGastos;
  341.                         }
  342.                     }
  343.  
  344.                     ++count;
  345.                     String totalReparaciones = elements.get(count);
  346.  
  347.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  348.                         if (!totalReparaciones.equals("0")) {
  349.                             totalReparaciones = "-" + totalReparaciones;
  350.                         }
  351.                     }
  352.  
  353.                     ++count;
  354.                     String totalOtros = elements.get(count);
  355.  
  356.                     if (elements.get(count).charAt(elements.get(count).length() - 1) == '-') {
  357.                         if (!totalOtros.equals("0")) {
  358.                             totalOtros = "-" + totalOtros;
  359.                         }
  360.                     }
  361.  
  362.                     ++count;
  363.                     String espacios = elements.get(count);
  364.  
  365.  
  366.  
  367.                     insertIntoRegistry3(totalDebitos, totalCreditos, totalSaldoActual, removeFrontZeros(totalArrendamientos),
  368.                             removeFrontZeros(totalComisiones), removeFrontZeros(totalSeguro), removeFrontZeros(totalGastos), removeFrontZeros(totalReparaciones),
  369.                             removeFrontZeros(totalOtros), espacios, idExtracto, con);
  370.  
  371.                     ++count;
  372.  
  373.                     break;
  374.  
  375.                 // Registry no. 4
  376.                 case 4: // registry type 4
  377.  
  378.  
  379.                     ++count; // first element of reg. type 4
  380.  
  381.                     String observacion = elements.get(count);
  382.                     ++count;
  383.                     String espaciosR4 = elements.get(count);
  384.                     ++count;
  385.                     String email = elements.get(count);
  386.  
  387.                     insertIntoRegistry4(String.format("%s %s", observacion, espaciosR4), email, idExtracto, idCedulaNit, con);
  388.  
  389.                     count += 2; // next user
  390.  
  391.                     break;
  392.             } // end switch
  393.  
  394.         } // end while
  395.  
  396.         con.close();
  397.  
  398.     } // end method saveOnDB
  399.  
  400.     /**
  401.      * Comprueba si el usuario existe en la base de datos.
  402.      *
  403.      * @param idCedulaNit Documento de identidad del cliente o la empresa
  404.      * @return Si el documento de identidad existe devuelve <em>true</em>, en caso contrario <em>false</em>.
  405.      */
  406.     private boolean userIDExists(String idCedulaNit, Connection con) {
  407.         ClassConnection cc = new ClassConnection();
  408.         Boolean presente = (Boolean) cc.execute("SELECT idcedulanit FROM usuario WHERE idcedulanit = " + Long.parseLong(idCedulaNit), 2, con);
  409.  
  410.         return presente;
  411.     } // end method userIDExists
  412.  
  413.     /**
  414.      * Inserte un nuevo registro de tipo 3, con el ID del extracto.
  415.      *
  416.      * @param fechaDocumento Fecha en la se realiza la privateación o gestión del documento.
  417.      * @param documento Tipo del documento.
  418.      * @param numero Número del documento.
  419.      * @param transaccion Tipo de transacción.
  420.      * @param detalleTransaccion Detalle de la transacción.
  421.      * @param detalle Detalle
  422.      * @param valorDebito Valor débido de la transacción.
  423.      * @param valorCredito Valor crédito de la transacción.
  424.      * @param saldo Saldo del reporte.
  425.      * @param idExtracto ID con el que se asociará esta entrada
  426.      */
  427.     private void insertIntoRegistry2(String fechaDocumento, String documento, String numero, String transaccion, String detalleTransaccion, String detalle,
  428.             String valorDebito, String valorCredito, String saldo, long idExtracto, int contadorMovimientos, Connection con) {
  429.         ClassConnection cc = new ClassConnection();
  430.  
  431.         cc.execute("INSERT INTO registrotipo2 ( fechadocumento, documento, numero, transaccion, detalletransaccion, detalle, valordebito, valorcredito, saldo, contadormovimientos, extractos_idreporte ) VALUES ('" + fechaDocumento + "', '" + documento + "', '" + numero + "', '" + transaccion + "', '" + detalleTransaccion + "', '" + detalle.replace('\'', '_').replace('\\', '_') + "', " + Double.parseDouble(valorDebito) + ", " + Double.parseDouble(valorCredito) + "," + Double.parseDouble(saldo) + ", " + contadorMovimientos + ", " + idExtracto + ")", 1, con);
  432.     } // end method insertIntoRegistry3
  433.  
  434.     /**
  435.      * Crea un nuevo registro de tipo 3
  436.      *
  437.      * @param totalDebitos Total débitos
  438.      * @param totalCreditos Total crédito
  439.      * @param totalSaldoActual Total saldo actual
  440.      * @param totalArrendamientos Total arrendimientos
  441.      * @param totalComisiones Total comisiones
  442.      * @param totalSeguro Total seguro
  443.      * @param totalGastos Total gastos
  444.      * @param totalReparaciones Total reparaciones
  445.      * @param totalOtros Total otros
  446.      * @param espacios Espacios
  447.      * @param idExtracto ID con el que se asociará esta entrada
  448.      */
  449.     private void insertIntoRegistry3(String totalDebitos, String totalCreditos, String totalSaldoActual, String totalArrendamientos, String totalComisiones,
  450.             String totalSeguro, String totalGastos, String totalReparaciones, String totalOtros, String espacios, long idExtracto, Connection con) {
  451.         ClassConnection cc = new ClassConnection();
  452.  
  453.         cc.execute("INSERT INTO registrotipo3 ( totalDebitos, totalcreditos, totalsaldoactual, totalarrendamiento, totalcomisiones, totalseguro, totalgastos, totalreparaciones, totalotros, espacios, extractos_idreporte )VALUES ("
  454.                 + Double.parseDouble(totalDebitos) + ", " + Double.parseDouble(totalCreditos) + ", " + Double.parseDouble(totalSaldoActual) + ", "
  455.                 + Double.parseDouble(totalArrendamientos) + ", " + Double.parseDouble(totalComisiones) + ", " + Double.parseDouble(totalSeguro) + ", "
  456.                 + Double.parseDouble(totalGastos) + ", " + Double.parseDouble(totalReparaciones) + ", " + Double.parseDouble(totalOtros) + ", '"
  457.                 + espacios + "', " + idExtracto + ")", 1, con);
  458.  
  459.     } // end method insertIntoRegistry3
  460.  
  461.     /**
  462.      *
  463.      * @param observacion Observación a este extracto
  464.      * @param email Email para este cliente
  465.      * @param espacios Espacios
  466.      * @param idExtracto ID con el que se asociará esta entrada
  467.      * @
  468.      */
  469.     private void insertIntoRegistry4(String observacion, String email, long idExtracto, String idCedulaNit, Connection con) {
  470.         ClassConnection cc = new ClassConnection();
  471.  
  472.         cc.execute("INSERT INTO registrotipo4 ( observacion, email, extractos_idreporte) VALUES ('" + observacion + "', '" + email + "', " + idExtracto + ")", 1, con);
  473.  
  474.         if (!email.equals("")) {
  475.             cc.execute("UPDATE usuario SET email = '" + email + "' WHERE idcedulanit = " + Long.parseLong(idCedulaNit), 1, con);
  476.         } // end if
  477.     } // next method insertIntoRegistry4
  478.  
  479.     /**
  480.      * Crea un nuevo usuario
  481.      *
  482.      * @param idCedulaNit Documento de identidad del cliente o la empresa
  483.      * @param nombrePropietario Nombre del propietario del inmueble
  484.      * @param contrasegnia Contraseña asignada a la cuenta de este cliente o empresa
  485.      * @param email Email
  486.      */
  487.     private void createUser(String idCedulaNit, String nombrePropietario, String email, String contrasegnia, int nivelAcceso, Connection con) {
  488.         ClassConnection cc = new ClassConnection();
  489.  
  490.  
  491.  
  492.         cc.execute("INSERT INTO usuario VALUES (" + Long.parseLong(idCedulaNit) + ", '" + nombrePropietario + "', '" + email + "', '" + contrasegnia + "', " + nivelAcceso + ")", 1, con);
  493.     } // end method createUser
  494.  
  495.     /**
  496.      *
  497.      * @param valor Cadena que representa el valor a ser transformado
  498.      * @return Retorna el valor convertido en un formato predeterminado.
  499.      */
  500.     private String removeFrontZeros(String valor) {
  501.         String nuevoValorDebito = "";
  502.  
  503.         if (valor.endsWith("+") || valor.endsWith("-")) {
  504.             valor = valor.substring(0, valor.length() - 1);
  505.         } //
  506.  
  507.         for (int i = 0; i < valor.length(); ++i) {
  508.             if (valor.charAt(i) == '0') {
  509.                 continue;
  510.             } else {
  511.                 nuevoValorDebito = valor.substring(i, valor.length());
  512.  
  513.                 break;
  514.             } // end else
  515.         } // end for
  516.  
  517.         return "".equals(nuevoValorDebito) ? "0" : nuevoValorDebito;
  518.     } // end method removeFrontZeros
  519.  
  520.     /**
  521.      * Crea un nuevo inmueble y lo asocia con el cliente o empresa pasado como argumento (idCedulaNit).
  522.      *
  523.      * @param codigoCuenta Una de las cuentas asociadas al cliente
  524.      * @param pais País de localización del inmueble
  525.      * @param ciudad Ciudad donde está localizado el inmueble
  526.      * @param saldoAnterior Saldo de la cuenta asociado al inmueble
  527.      * @param idCedulaNit Documento de identidad del cliente o empresa
  528.      *
  529.      * @return [Nota: Este es un método mutador.]
  530.      */
  531.     private void createAccount(String codigoCuenta, String pais, String ciudad, String direccion, Connection con) {
  532.         ClassConnection cc = new ClassConnection();
  533.  
  534.         cc.execute("INSERT INTO cuenta VALUES (" + Long.parseLong(codigoCuenta) + ", '" + pais + "', '" + ciudad + "', '" + direccion + "')", 1, con);
  535.     } // end method create property
  536.  
  537.     /**
  538.      *
  539.      * @param codigoCuenta
  540.      * @return
  541.      */
  542.     private boolean accountExists(String codigoCuenta, Connection con) {
  543.         ClassConnection cc = new ClassConnection();
  544.         boolean presente = (Boolean) cc.execute("SELECT codigocuenta FROM cuenta WHERE codigocuenta = " + Long.parseLong(codigoCuenta), 2, con);
  545.  
  546.         return presente;
  547.     } // end method propertyExists
  548.  
  549.     /**
  550.      * Actualiza el saldo anterior de un inmueble que coincida con el código de la cuenta y el documento de identidad del propietario.
  551.      *
  552.      * @param codigoCuenta Código de la cuenta asociada con el inmueble
  553.      * @param idCedulaNit Documento de identidad del cliente o empresa
  554.      * @param saldoAnterior Saldo anterior asociado el inmueble (Este debe actualizarse en la base de datos.
  555.      */
  556.     private void updateAccount(String codigoCuenta, String pais, String ciudad, String direccion, Connection con) {
  557.         ClassConnection cc = new ClassConnection();
  558.  
  559.         cc.execute("UPDATE cuenta SET pais = '" + pais + "', ciudad = '" + ciudad + "', direccion = '" + direccion + "' WHERE codigocuenta = " + Long.parseLong(codigoCuenta), 1, con);
  560.     } // end method updateProperty
  561.  
  562.     private long createExtract(String fechaInicialMovimiento, String fechaFinalMovimiento, String saldoAnterior, String codigoCuenta, String fechaExtracto, Connection con) {
  563.         ClassConnection cc = new ClassConnection();
  564.  
  565.         long lastInserted = (Long) cc.execute("INSERT INTO extractos( fechaInicialmovimiento, fechafinalmovimiento, saldoanterior, cuenta_codigocuenta, fechasubidaextracto ) VALUES ( '" + fechaInicialMovimiento + "', '"
  566.                             + fechaFinalMovimiento + "', " + Double.parseDouble(saldoAnterior) + ", " + Long.parseLong(codigoCuenta) + ", '" + fechaExtracto + "')", 3, con);
  567.         return lastInserted;
  568.     } // end method createExtract
  569.  
  570.     /**
  571.      * Formatea el nombre de un propietario: primera letra en mayúscula
  572.      *
  573.      * @param name Nombre del propietario
  574.      * @return Nombre del propieatario formateado
  575.      */
  576.     private String firstLetterCapital(String name) {
  577.         StringBuffer stringbf = new StringBuffer();
  578.         Matcher m = Pattern.compile("([a-z])([a-z]*)",
  579.                 Pattern.CASE_INSENSITIVE).matcher(name);
  580.         while (m.find()) {
  581.             m.appendReplacement(stringbf,
  582.                     m.group(1).toUpperCase() + m.group(2).toLowerCase());
  583.         } // end while
  584.  
  585.         return m.appendTail(stringbf).toString();
  586.     } // end method firstLetterCapital
  587.  
  588.     private String formatDate(String date) {
  589.  
  590.         String day = date.substring(0, 2);
  591.         String month = date.substring(3, 5);
  592.         String year = date.substring(6, 10);
  593.  
  594.         return String.format("%s-%s-%s", year, month, day);
  595.     } // end method formatDate
  596.  
  597.     /**
  598.      * Determina si una cadena pasada como argumento coniene sólo números.
  599.      *
  600.      * @param numeroCadena Cadena de caracteres
  601.      * @return Returna <em>true</em> si el valor pasado corresponde a un número, en caso contrario <em>false</em>.
  602.      */
  603.     private boolean isNumeric(String numeroCadena) {
  604.         return java.util.regex.Pattern.matches("\\d+", numeroCadena);
  605.     } // end method isNumeric
  606.  
  607.     private void createUserAccount(String idCedulaNit, String codigoCuenta, Connection con) {
  608.         ClassConnectionCert ccc = new ClassConnectionCert();
  609.  
  610.         ccc.execute("INSERT INTO usuario_has_cuenta( usuario_idcedulanit, cuenta_codigocuenta) VALUES( " + Long.parseLong(idCedulaNit) + ", " + Long.parseLong(codigoCuenta) + ")", 1, con);
  611.     } // end of method createUserAccount
  612.  
  613.     private String convertToMdy(String fechaDocumento) {
  614.         String ahnio = fechaDocumento.substring(0, 4);
  615.         String mes = fechaDocumento.substring(4, 6);
  616.         String dia = fechaDocumento.substring(6, 8);
  617.  
  618.         return String.format("%s-%s-%s", ahnio, mes, dia);
  619.     }
  620.  
  621.     /**
  622.      *
  623.      */
  624.     public int contarPuntoComas(String registro) {
  625.         int i, ln, puntoComa = 0;
  626.         char ch;
  627.  
  628.         ln = registro.length();
  629.  
  630.         for (i = 0; i < ln; i++) {
  631.             ch = registro.charAt(i);
  632.             if (registro.charAt(i) == ';') {
  633.                 puntoComa++;
  634.             }
  635.         }
  636.  
  637.         return puntoComa;
  638.     }
  639.  
  640.     public static void main(String[] args) throws SQLException, ClassNotFoundException {
  641.         ParseExtractos pe = new ParseExtractos();
  642.  
  643.         pe.startParse("C:/etc/docs/EXTRA.TXT");
  644.     } // end main
  645. } // end class ReadTextFile
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement