Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from dsn import db, meta, engine
- import pandas as pd
- from dateutil.parser import parse
- from datetime import datetime, timedelta
- import xlsxwriter
- # Rango de Fechas
- fec_final = datetime.now() # Ahora
- fec_inicio = fec_final - timedelta(days=20) # 20 dias atras
- # Tablas
- detalle_fac = db.Table('fatfac', meta, autoload=True, autoload_with=engine)
- vendedores = db.Table('fapvendedor', meta, autoload=True, autoload_with=engine)
- articulos = db.Table('inmart', meta, autoload=True, autoload_with=engine)
- # Consulta
- locales = ['07', '08']
- query = db.select([
- detalle_fac.c.loccodigo.label('Local'),
- db.cast(detalle_fac.c.facfecemi, db.Date).label('Fecha'),
- detalle_fac.c.artcodigo.label('Codigo'),
- articulos.c.artdescri.label('Descripcion'),
- detalle_fac.c.faccantidad.label('Cantidad'),
- detalle_fac.c.facvalor.label('Subtotal Bruto'),
- detalle_fac.c.facvaldesc.label('Descuento'),
- detalle_fac.c.facvaliva.label('IVA'),
- detalle_fac.c.vencodigo.label('ID'),
- vendedores.c.vennombre.label('Nombre')
- ]).select_from(
- detalle_fac.join(articulos, db.and_(
- detalle_fac.c.ciacodigo == articulos.c.ciacodigo,
- detalle_fac.c.artcodigo == articulos.c.artcodigo
- )).join(vendedores, db.and_(
- detalle_fac.c.ciacodigo == vendedores.c.ciacodigo,
- detalle_fac.c.vencodigo == vendedores.c.vencodigo,
- detalle_fac.c.loccodigo == vendedores.c.loccodigo
- ))
- ).where(
- db.and_(
- detalle_fac.c.ciacodigo == '01',
- detalle_fac.c.factipo == 'FA',
- detalle_fac.c.facvalor > 0,
- detalle_fac.c.facvalnc == 0,
- detalle_fac.c.facfecemi.between(
- db.cast(fec_inicio_parsed, db.DateTime),
- db.cast(fec_final_parsed, db.DateTime)
- ),
- detalle_fac.c.loccodigo.in_(locales)
- )
- ).order_by(
- detalle_fac.c.loccodigo,
- detalle_fac.c.vencodigo,
- detalle_fac.c.artcodigo
- )
- rp = engine.execute(query)
- rs = rp.fetchall()
- for registro in rs:
- print(registro)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement