def calcular_facturacion(fini = None, ffin = None): """ Calcula la facturación bruta de todos los clientes entre las fechas recibidas. """ res = 0.0 if fini and not ffin: fras = FacturaVenta.select(AND(FacturaVenta.q.fecha >= fini, FacturaVenta.q.clienteID == Cliente.q.id, Cliente.q.inhabilitado == False)) elif not fini and ffin: fras = FacturaVenta.select(AND(FacturaVenta.q.fecha < ffin, FacturaVenta.q.clienteID == Cliente.q.id, Cliente.q.inhabilitado == False)) elif fini and ffin: fras = FacturaVenta.select(AND(FacturaVenta.q.fecha >= fini, FacturaVenta.q.fecha < ffin, FacturaVenta.q.clienteID == Cliente.q.id, Cliente.q.inhabilitado == False)) else: # not fini and not ffin fras = FacturaVenta.select(AND( FacturaVenta.q.clienteID == Cliente.q.id, Cliente.q.inhabilitado == False)) res = sum([f.calcular_importe_total() for f in fras]) return res
def calcular_facturado(self, fini = None, ffin = None): """ Calcula la facturación bruta del cliente entre las fechas recibidas. """ res = 0.0 if fini and not ffin: fras = FacturaVenta.select(AND(FacturaVenta.q.fecha >= fini, FacturaVenta.q.clienteID == self.id)) elif not fini and ffin: fras = FacturaVenta.select(AND(FacturaVenta.q.fecha < ffin, FacturaVenta.q.clienteID == self.id)) elif fini and ffin: fras = FacturaVenta.select(AND(FacturaVenta.q.fecha >= fini, FacturaVenta.q.fecha < ffin, FacturaVenta.q.clienteID == self.id)) else: # not fini and not ffin fras = FacturaVenta.select(AND( FacturaVenta.q.clienteID == self.id)) res = sum([f.calcular_importe_total() for f in fras]) return res
def get_facturas(self, fechaini = None, fechafin = None): """ Devuelve las facturas del cliente entre las dos fechas recibidas (incluidas). Si ambas son None no aplicará rango de fecha en la búsqueda. """ criterio = (FacturaVenta.q.clienteID == self.id) criteriopre = (Prefactura.q.clienteID == self.id) if fechaini: criterio = AND(criterio, FacturaVenta.q.fecha >= fechaini) criteriopre = AND(criteriopre, Prefactura.q.fecha >= fechaini) if fechafin: criterio = AND(criterio, FacturaVenta.q.fecha <= fechafin) criteriopre = AND(criteriopre, Prefactura.q.fecha >= fechaini) return ([f for f in FacturaVenta.select(criterio)] + [f for f in Prefactura.select(criterio)])