Skip to content

Instantly share code, notes, and snippets.

@batok
Created September 20, 2010 14:02
Show Gist options
  • Save batok/587949 to your computer and use it in GitHub Desktop.
Save batok/587949 to your computer and use it in GitHub Desktop.
#!/bin/env python
# -*- coding: iso-8859-15 -*-
from sqlalchemy import create_engine, ForeignKey, MetaData, Column, Integer, String, Numeric, DateTime, Boolean
from sqlalchemy.orm import mapper, sessionmaker, validates, relation, synonym
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime
from factura import config as config_ini
Base = declarative_base()
engine = create_engine(config_ini["DB"]["url"])
session = sessionmaker( bind = engine )()
class Factura(Base):
__tablename__ = "facturas"
id = Column( Integer, primary_key = True )
folio = Column( Integer, unique = True )
fecha = Column( DateTime )
aprobacion = Column( Integer )
ano_aprobacion = Column( Integer )
certificado = Column(String(20))
cliente = Column( Integer , ForeignKey( "clientes.id"))
porcentaje_iva = Column( Numeric(6,3))
porcentaje_retencion_iva = Column( Numeric(6,3))
porcentaje_retencion_isr = Column( Numeric(6,3))
porcentaje_descuento = Column( Numeric(6,3))
forma_de_pago = Column( String(50))
generada = Column( Boolean, default = False) # sirve de bandera para saber si se genero la factura electronica o no
partidas = relation("PartidaFactura", backref="mi_factura")
porcentaje = synonym("porcentaje_iva")
@property
def fecha_iso(self):
return self.fecha.isoformat().split(".")[0]
@property
def fecha_reporte(self):
fecha = "{0:02d}/{1:02d}/{2:04d} {3:02d}:{4:02d}:{5:02d}".format(self.fecha.day, self.fecha.month, self.fecha.year, self.fecha.minute, self.fecha.minute, self.fecha.second)
return fecha
def __init__(self, folio = 1, fecha = datetime.now(), aprobacion = None, ano_aprobacion = None, certificado = None, cliente = 1, porcentaje_iva = None, forma_de_pago = None, porcentaje_descuento = None, porcentaje_retencion_iva = None, porcentaje_retencion_isr = None):
g = session.query(General).order_by(General.id.desc()).one()
self.folio = folio
self.fecha = fecha
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment