Consulta de base de datos por medio de python
Publicado por Marco Antonio (9 intervenciones) el 07/06/2013 19:14:20
Hola, estoy trabajando en obtener informacion de una base de datos y los datos que se necesitan es el RFC y los precios de compra base (osea sin impuesto) y dependiendo del tipo de IVA que se aplique (que es parte del "where account_id = 3337/3336/3338" las cosnultas asi manejo todo igual y solo me muevo entre el tipo de impuestos con el account_id de la tabla account_invoice_tax.
Para utilizarlo con python el codigo que tengo hasta el momento es este.
Como ya mencione este codigo se comunica con la base de datos me regresa tanto el RFC y como el monto base de compra, correcto, ahora lo que quiero hacer con esos datos es lo siguiente.
digamos que el fetchall obtuvo solo una linea con los siguientes datos.
LOEL910624ND5 como RFC y el monto base de 227
entonces lo siguiente que deberia de hacer el programa es ponerlo en el siguiente formato.
04|85|LOEL910624ND5|||||227|||||||||||||||
son 22 columnas obligatorias, en la primera siempre va a ir el 04 mientras que en la segunda siempre va a ir el 85. el RFC siempre va en la tercera columna y el monto base se acomoda en la columna 8 si es IVA del 16%., en la columna 11 si es del 11% y en la columna 19 si el IVA es 0%.
y una ves tengo esta tupla digamos, la guardaria como un archivo txt.
Para utilizarlo con python el codigo que tengo hasta el momento es este.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/python
# -*- coding: utf-8 -*-
import psycopg2
import sys
con = None
try:
con = psycopg2.connect(database='DB', user='ME', password='1234')
cur = con.cursor()
cur.execute(" select Account_Invoice.amount_untaxed, right (Res_Partner.vat,length(Res_Partner.vat)-2) as RFC from Account_Invoice inner join Res_Partner on Account_Invoice.partner_id = Res_Partner.id inner join Account_Invoice_Tax on Account_Invoice.id = Account_Invoice_Tax.invoice_id where account_invoice.journal_id=2 and account_invoice.date_invoice >= '2013-01-01' and account_invoice.date_invoice <= '2013-02-01' and account_invoice.reconciled is TRUE and account_invoice_tax.account_id = 3237 and account_invoice.amount_tax >= 0;")
rows = cur.fetchall()
for row in rows:
print row
except psycopg2.DatabaseError, e:
print 'Error %s' % e
sys.exit(1)
finally:
if con:
con.close()
Como ya mencione este codigo se comunica con la base de datos me regresa tanto el RFC y como el monto base de compra, correcto, ahora lo que quiero hacer con esos datos es lo siguiente.
digamos que el fetchall obtuvo solo una linea con los siguientes datos.
LOEL910624ND5 como RFC y el monto base de 227
entonces lo siguiente que deberia de hacer el programa es ponerlo en el siguiente formato.
04|85|LOEL910624ND5|||||227|||||||||||||||
son 22 columnas obligatorias, en la primera siempre va a ir el 04 mientras que en la segunda siempre va a ir el 85. el RFC siempre va en la tercera columna y el monto base se acomoda en la columna 8 si es IVA del 16%., en la columna 11 si es del 11% y en la columna 19 si el IVA es 0%.
y una ves tengo esta tupla digamos, la guardaria como un archivo txt.
Valora esta pregunta


0