:::: MENU ::::
Posts tagged with: csv

Carga de datos anidadas en OpenERP

Hoy os voy a mostrar cómo hacer una carga de Clientes con sus Cuentas Contables y Cuentas Bancarias mediante archivos CSV en OpenERP.

Este tipo de carga de datos se utiliza mucho para la carga de datos masivas, ya que de esta maneras podremos aprovechar todo el potencial que nos ofrece el Servidor de OpenERP.

Es altamente recomendable hacer uso de este tipo de carga de datos en OpenERP ya que es fácil, limpio y seguro.

El archivo init.py lo dejaremos en blanco.

El archivo __openerp__.py contendrá lo siguiente:

{

''name'': ''Carga de Clientes'',

''version'': ''1.0'',

''category'': '''',

''description'': """ Carga de Clientes """,

''author'': ''Javier Llamas'',

''website'': ''http://www.javierllamas.es'',

''depends'': [''base''],

''init_xml'': [],

''update_xml'': [

''account.account.csv'',

''res.partner.csv'',

''res.partner.address.csv'', 

''res.partner.bank.csv'', ],

''demo_xml'': [],

''test'': [ ],

''installable'': True,

''active'': False,

''certificate'': False,

}

En el archivo account.account.csv vamos a establecer los siguientes campos y vamos a poner como ejemplo la cuenta contable 430000020

"active","currency_mode","name","reconcile","user_type/id","type","parent_id","code"

"true","At Date","Cliente ejemplo","true","l10n_es.terceros_-_rec","Receivable","430","430000020"

Luego en el fichero res.partner.address.csv pondremos algunos datos ejemplos. Aquí la variable mas importante es partner_id:id que es la que nos hará de ancla con el fichero res.partner.csv y res.partner.bank.csv que veremos mas adelante.

"city","email","partner_id:id","mobile","name","phone","fax","zip","street"

"MURCIA","email@email.com","partner_1","000-000-000","Cliente Ejemplo","000-000-000","000-000-000","30000","C/ Ejemplo"

El fichero res.partner.csv estará formado por:

"active","customer","employee","name","supplier","website","id","property_account_receivable"

"true","true","false","Cliente Ejemplo","false","web.com","partner_1","430000020"

Y ya por último res.partner.bank. csv tendría las propiedades del Banco ligado a este cliente

"partner_id:id","owner_name","state","acc_number","street","city","default_bank"

"partner_1","Cliente Ejemplo","bank","0000-0000-00-0000000000","Calle nueva","MURCIA","True"

Y para terminar,  vamos a OpenERP e instalamos el módulo que hemos creado. Y ahora podemos ver cómo en la zona de Clientes se ha creado el nuevo registro.

Sencillo y rápido 😉

Saludos.


Tratar archivos CSV en Java

Hoy quiero mencionar el tratado de ficheros CSV a través de la librería CSVReader de Java.

Estos ficheros vienen muy bien si por ejemplo queréis hacer un volcado de datos masivos a una Base de Datos y no os interesa que los usuarios de la aplicación piquen todos los datos a mano. Imaginaros que una empresa tiene cientos o miles de datos en un Excell  y lo quiere pasar a una Base de datos en SQL, Oracle,… Pues gracias a que el Excell tiene la opción de poder guardar los archivos en CSV y al fácil tratado de estos archivos con la librería CSVReader de Java, podéis solucionar este problema muy rápidamente.

En el  ejemplo sencillo que os voy a comentar, la idea principal es mostrar por consola el contenido de un fichero tipo .csv. Pero ya sabemos, que también lo podemos aplicar para ecribir por ejemplo en bases de datos.
Partimos del fichero ejemplo “productos.csv”:

ID,PRODUCTO,STOCK,PRECIO
1,MESA,124,65
2,SILLA,20,25.80
3,LAMPARA,68,30

Y de la clase:

import java.io.FileNotFoundException;
import java.io.IOException;


import com.csvreader.CsvReader;

public class leerCSV {

/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {

//Le pasamos la URL del archivo CSV a leer.
CsvReader reader = new CsvReader("C:\\\\productos.csv",);
//Si partimos de un input type File
/*CsvReader reader = new CsvReader(objetoformulario.getFichero.getInputStream(), Charset.forName("ISO-8859-1"));*/
try {
while (reader.readRecord())
{
String id = reader.get(0);
String producto = reader.get(1);
String stock = reader.get(2);
String precio = reader.get(3);
System.out.println("Filas: " + id + "-" + producto + "-" + stock + "-" + precio);
}
} catch (IOException e) {
e.printStackTrace();
}

reader.close();

}

}

Saludos.