persona = models.ForeignKey(Persona, related_name='prebeneficiarios') def get_absolute_url(self): return self.precontrato.get_absolute_url() class Autorizacion(TimeStampedModel): imagen = models.FileField(upload_to='contracts/autorizaciones/%Y/%m/%d') descripcion = models.TextField(blank=True, null=True) vigente = models.BooleanField(default=True) def __unicode__(self): return self.imagen.name def consolidate_contracts(persona, clone): [ transfer_object_to_persona(contrato, persona) for contrato in clone.contratos.all() ] [ transfer_object_to_persona(beneficiario, persona) for beneficiario in clone.beneficiarios.all() ] [transfer_object_to_persona(pcd, persona) for pcd in clone.pcds.all()] persona_consolidation_functions.append(consolidate_contracts)
] [ transfer_object_to_persona(espera, persona) for espera in clone.espera.all() ] [ transfer_object_to_persona(signos, persona) for signos in clone.lecturas_signos.all() ] [transfer_object_to_persona(cita, persona) for cita in clone.citas.all()] [ transfer_object_to_persona(remision, persona) for remision in clone.remisiones.all() ] persona_consolidation_functions.append(consolidate_clinique) User.consultorios_activos = property( lambda u: Consultorio.objects.filter(usuario=u, activo=True)) Persona.consultas_activas = property( lambda p: Consulta.objects.filter(persona=p, activa=True)) Persona.ultima_consulta = property( lambda p: Consulta.objects.filter(persona=p).last())
def diferencia_total(self): cierre = sum(c.monto for c in self.cierres.all()) pagos = sum(r.pagado() for r in self.recibos()) return cierre - pagos - self.apertura class CierreTurno(TimeStampedModel): turno = models.ForeignKey(TurnoCaja, related_name='cierres') pago = models.ForeignKey(TipoPago, related_name='cierres') monto = models.DecimalField(blank=True, null=True, max_digits=7, decimal_places=2) def get_absolute_url(self): """Obtiene la URL absoluta""" return reverse('invoice-turno', args=[self.turno.id]) def consolidate_invoice(persona, clone): [move_invoice(persona, recibo) for recibo in clone.recibos.all()] def move_invoice(persona, recibo): recibo.paciente = persona recibo.save() persona_consolidation_functions.append(consolidate_invoice)
def __unicode__(self): return self.nombre class Deposito(TimeStampedModel): admision = models.ForeignKey(Admision, related_name='depositos') monto = models.DecimalField(blank=True, null=True, max_digits=7, decimal_places=2) fecha = models.DateTimeField(default=timezone.now, null=True, blank=True) recibo = models.IntegerField(null=True, blank=True) def get_absolute_url(self): """Obtiene la URL absoluta""" return reverse('admision-view-id', args=[self.admision.id]) def consolidate_spital(persona, clone): [move_admision(persona, admision) for admision in clone.admisiones.all()] def move_admision(persona, admision): admision.paciente = persona admision.save() persona_consolidation_functions.append(consolidate_spital)
class Prebeneficiario(TimeStampedModel): precontrato = models.ForeignKey(Precontrato, related_name='prebeneficiarios') persona = models.ForeignKey(Persona, related_name='prebeneficiarios') def get_absolute_url(self): return self.precontrato.get_absolute_url() class Autorizacion(TimeStampedModel): imagen = models.FileField(upload_to='contracts/autorizaciones/%Y/%m/%d') descripcion = models.TextField(blank=True, null=True) vigente = models.BooleanField(default=True) def __unicode__(self): return self.imagen.name def consolidate_contracts(persona, clone): [transfer_object_to_persona(contrato, persona) for contrato in clone.contratos.all()] [transfer_object_to_persona(beneficiario, persona) for beneficiario in clone.beneficiarios.all()] [transfer_object_to_persona(pcd, persona) for pcd in clone.pcds.all()] persona_consolidation_functions.append(consolidate_contracts)
def __unicode__(self): return self.nombre class Deposito(TimeStampedModel): admision = models.ForeignKey(Admision, related_name='depositos') monto = models.DecimalField(blank=True, null=True, max_digits=7, decimal_places=2) fecha = models.DateTimeField(default=timezone.now, null=True, blank=True) recibo = models.IntegerField(null=True, blank=True) def get_absolute_url(self): """Obtiene la URL absoluta""" return reverse('admision-view-id', args=[self.admision.id]) def consolidate_spital(persona, clone): [move_admision(persona, admision) for admision in clone.admisiones.all()] def move_admision(persona, admision): admision.paciente = persona admision.save() persona_consolidation_functions.append(consolidate_spital)
return reverse('emergency-view-id', args=[self.emergencia.id]) @python_2_unicode_compatible class Cobro(TimeStampedModel): """Permite registrar los distintos cargos""" emergencia = models.ForeignKey(Emergencia, related_name='cobros') cargo = models.ForeignKey(ItemTemplate, related_name='cobros') cantidad = models.IntegerField(default=1) facturado = models.NullBooleanField(default=False) def get_absolute_url(self): """Obtiene la URL absoluta""" return reverse('emergencia-cobro-agregar', args=[self.emergencia.id]) def __str__(self): return _('{1}: {0}').format(self.cargo.descripcion, self.created) def total(self): return self.cargo.precio_de_venta * self.cantidad def consolidate_emergency(persona, clone): [transfer_object_to_persona(emergency, persona) for emergency in clone.emergencias.all()] persona_consolidation_functions.append(consolidate_emergency)
[transfer_object_to_persona(evaluacion, persona) for evaluacion in clone.evaluaciones.all()] [transfer_object_to_persona(orden, persona) for orden in clone.ordenes_medicas.all()] [transfer_object_to_persona(espera, persona) for espera in clone.espera.all()] [transfer_object_to_persona(signos, persona) for signos in clone.lecturas_signos.all()] [transfer_object_to_persona(cita, persona) for cita in clone.citas.all()] [transfer_object_to_persona(remision, persona) for remision in clone.remisiones.all()] persona_consolidation_functions.append(consolidate_clinique) User.consultorios_activos = property( lambda u: Consultorio.objects.filter(usuario=u, activo=True)) Persona.consultas_activas = property( lambda p: Consulta.objects.filter(persona=p, activa=True)) Persona.ultima_consulta = property( lambda p: Consulta.objects.filter(persona=p).last())
cierre = sum( c.monto for c in CierreTurno.objects.filter(turno=self).all()) pagos = sum(r.pagado() for r in self.recibos()) return cierre - pagos - self.apertura class CierreTurno(TimeStampedModel): turno = models.ForeignKey(TurnoCaja, related_name='cierres') pago = models.ForeignKey(TipoPago, related_name='cierres') monto = models.DecimalField(blank=True, null=True, max_digits=7, decimal_places=2) def get_absolute_url(self): """Obtiene la URL absoluta""" return self.turno.get_absolute_url() def consolidate_invoice(persona, clone): [move_invoice(persona, recibo) for recibo in clone.recibos.all()] def move_invoice(persona, recibo): recibo.paciente = persona recibo.save() persona_consolidation_functions.append(consolidate_invoice)
return reverse('emergency-view-id', args=[self.emergencia.id]) class Cobro(TimeStampedModel): """Permite registrar los distintos cargos""" emergencia = models.ForeignKey(Emergencia, related_name='cobros') cargo = models.ForeignKey(ItemTemplate, related_name='cobros') cantidad = models.IntegerField(default=1) facturado = models.NullBooleanField(default=False) def get_absolute_url(self): """Obtiene la URL absoluta""" return reverse('emergencia-cobro-agregar', args=[self.emergencia.id]) def __unicode__(self): return u'{1}: {0}'.format(self.cargo.descripcion, self.created) def total(self): return self.cargo.precio_de_venta * self.cantidad def consolidate_emergency(persona, clone): [transfer_object_to_persona(emergency, persona) for emergency in clone.emergencias.all()] persona_consolidation_functions.append(consolidate_emergency)