Exemple #1
0
def crear_ventas(items, recibo, examen=False, tecnico=False):
    """Permite convertir un :class:`dict` de :class:`ItemTemplate` y sus
    cantidades en una las :class:`Venta`s de un :class:`Recibo`

    Toma en consideración las indicaciones acerca de los cobros de comisiones
    indicados por los examenes"""

    for item in items:
        if item is None:
            continue
        venta = Venta()
        venta.item = item
        venta.recibo = recibo
        venta.cantidad = items[item]

        precio = item.precio_de_venta

        if examen:
            comisiones = precio * item.comision * dot01
            if tecnico:
                comisiones += precio * item.comision2 * dot01
            venta.precio = precio - comisiones
        else:
            venta.precio = precio
        venta.impuesto = item.impuestos

        venta.save()
        recibo.ventas.add(venta)
Exemple #2
0
    def get_redirect_url(self, **kwargs):
        aseguradora = get_object_or_404(Aseguradora, pk=kwargs['pk'])

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = aseguradora.cardex
        recibo.credito = True

        recibo.save()
        for master in aseguradora.master_contracts.all():
            venta = Venta()
            venta.item = master.plan.item
            venta.recibo = recibo
            venta.descripcion = u'Poliza {0}  {1}'.format(
                master.poliza, master.contratante.nombre)
            venta.cantidad = master.active_contracts_count()
            venta.precio = master.plan.item.precio_de_venta
            venta.impuesto = master.plan.item.impuestos
            venta.save()
            recibo.ventas.add(venta)
            venta.save()

        recibo.save()

        messages.info(self.request, u'¡La consulta se marcó como facturada!')
        return recibo.get_absolute_url()
Exemple #3
0
def crear_ventas(items, recibo, examen=False, tecnico=False):
    """Permite convertir un :class:`dict` de :class:`ItemTemplate` y sus
    cantidades en una las :class:`Venta`s de un :class:`Recibo`

    Toma en consideración las indicaciones acerca de los cobros de comisiones
    indicados por los examenes"""

    for item in items:
        venta = Venta()
        venta.item = item
        venta.recibo = recibo
        venta.cantidad = items[item]

        precio = item.precio_de_venta

        if examen:
            comisiones = precio * item.comision * dot01
            if tecnico:
                comisiones += precio * item.comision2 * dot01
            venta.precio = precio - comisiones
        else:
            venta.precio = precio
        venta.impuesto = item.impuestos

        venta.save()
        recibo.ventas.add(venta)
Exemple #4
0
    def get_redirect_url(self, **kwargs):
        aseguradora = get_object_or_404(Aseguradora, pk=kwargs['pk'])

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = aseguradora.cardex
        recibo.credito = True

        recibo.save()
        for master in aseguradora.master_contracts.all():
            venta = Venta()
            venta.item = master.plan.item
            venta.recibo = recibo
            venta.descripcion = u'Poliza {0}  {1}'.format(master.poliza,
                                                          master.contratante.nombre)
            venta.cantidad = master.active_contracts_count()
            venta.precio = master.plan.item.precio_de_venta
            venta.impuesto = master.plan.item.impuestos
            venta.save()
            recibo.ventas.add(venta)
            venta.save()

        recibo.save()

        messages.info(self.request, u'¡La consulta se marcó como facturada!')
        return recibo.get_absolute_url()
Exemple #5
0
    def form_valid(self, form):
        self.object = form.save()

        venta = Venta()
        venta.item = self.examen.tipo_de_examen.item
        venta.recibo = self.object
        venta.cantidad = 1
        venta.precio = venta.item.precio_de_venta
        venta.impuesto = venta.item.impuestos

        venta.save()
        self.object.ventas.add(venta)
        self.examen.facturado = True
        self.examen.save()

        self.object.save()

        return HttpResponseRedirect(self.object.get_absolute_url())
Exemple #6
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = self.object.admision.paciente
        recibo.save()

        venta = Venta()
        venta.item = ItemTemplate.objects.get(pk=config.DEPOSIT_ACCOUNT)
        venta.recibo = recibo
        venta.cantidad = 1
        venta.precio = self.object.monto
        venta.impuesto = 0
        venta.descontable = False
        venta.save()

        return HttpResponseRedirect(recibo.get_absolute_url())
Exemple #7
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = self.object.admision.paciente
        recibo.save()

        venta = Venta()
        venta.item = ItemTemplate.objects.get(pk=config.DEPOSIT_ACCOUNT)
        venta.recibo = recibo
        venta.cantidad = 1
        venta.precio = self.object.monto
        venta.impuesto = 0
        venta.descontable = False
        venta.save()

        return HttpResponseRedirect(recibo.get_absolute_url())
Exemple #8
0
    def form_valid(self, form):
        self.object = form.save()

        venta = Venta()
        venta.item = self.examen.tipo_de_examen.item
        venta.recibo = self.object
        venta.cantidad = 1
        venta.precio = venta.item.precio_de_venta
        venta.impuesto = venta.item.impuestos

        venta.save()
        self.object.ventas.add(venta)
        self.examen.facturado = True
        self.examen.save()

        self.object.save()

        return HttpResponseRedirect(self.object.get_absolute_url())
Exemple #9
0
def crear_ventas_consulta(items, precios, recibo):
    """Permite convertir un :class:`dict` de :class:`ItemTemplate` y sus
    cantidades en una las :class:`Venta`s de un :class:`Recibo`

    Toma en consideración las indicaciones acerca de los cobros de comisiones
    indicados por los examenes"""

    for item in items:
        venta = Venta()
        venta.item = item
        venta.recibo = recibo
        venta.cantidad = items[item]

        precio = item.precio_de_venta
        venta.precio = precios[item]
        venta.impuesto = item.impuestos

        venta.save()
        recibo.ventas.add(venta)
Exemple #10
0
def crear_ventas_consulta(items, precios, recibo):
    """Permite convertir un :class:`dict` de :class:`ItemTemplate` y sus
    cantidades en una las :class:`Venta`s de un :class:`Recibo`

    Toma en consideración las indicaciones acerca de los cobros de comisiones
    indicados por los examenes"""

    for item in items:
        venta = Venta()
        venta.item = item
        venta.recibo = recibo
        venta.cantidad = items[item]

        precio = item.precio_de_venta
        venta.precio = precios[item]
        venta.impuesto = item.impuestos

        venta.save()
        recibo.ventas.add(venta)
Exemple #11
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        items = self.object.facturar()

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = self.object.persona
        recibo.radiologo = self.object.radiologo
        recibo.tipo_de_venta = self.object.tipo_de_venta
        recibo.save()

        # Crear los honorarios de los radiologos
        honorarios = sum(i.precio_de_venta * i.comision * dot01 for i in items)
        venta = Venta()
        venta.recibo = recibo
        venta.precio = honorarios
        venta.cantidad = 1
        venta.item = self.object.radiologo.item
        venta.impuesto = self.object.radiologo.item.impuestos
        venta.save()

        venta_tecnico = False
        if not self.object.tecnico is None:
            # Crear los honorarios de los tecnicos
            tecnico = sum(i.precio_de_venta * i.comision2 * dot01
                          for i in items)
            venta = Venta()
            venta.recibo = recibo
            venta.precio = tecnico
            venta.cantidad = 1
            venta.item = self.object.tecnico.item
            venta.impuesto = self.object.tecnico.item.impuestos
            venta.save()
            venta_tecnico = True

        crear_ventas(items, recibo, True, venta_tecnico)

        self.object.save()

        return HttpResponseRedirect(recibo.get_absolute_url())
Exemple #12
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        items = self.object.facturar()

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = self.object.persona
        recibo.radiologo = self.object.radiologo
        recibo.tipo_de_venta = self.object.tipo_de_venta
        recibo.save()

        # Crear los honorarios de los radiologos
        honorarios = sum(i.precio_de_venta * i.comision * dot01 for i in items)
        venta = Venta()
        venta.recibo = recibo
        venta.precio = honorarios
        venta.cantidad = 1
        venta.item = self.object.radiologo.item
        venta.impuesto = self.object.radiologo.item.impuestos
        venta.save()

        venta_tecnico = False
        if not self.object.tecnico is None:
            # Crear los honorarios de los tecnicos
            tecnico = sum(
                i.precio_de_venta * i.comision2 * dot01 for i in items)
            venta = Venta()
            venta.recibo = recibo
            venta.precio = tecnico
            venta.cantidad = 1
            venta.item = self.object.tecnico.item
            venta.impuesto = self.object.tecnico.item.impuestos
            venta.save()
            venta_tecnico = True

        crear_ventas(items, recibo, True, venta_tecnico)

        self.object.save()

        return HttpResponseRedirect(recibo.get_absolute_url())
Exemple #13
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        items = self.object.facturar()

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = self.object.paciente
        recibo.tipo_de_venta = self.object.tipo_de_venta

        recibo.save()

        crear_ventas(items, recibo)

        for honorario in self.object.honorarios.all():
            venta = Venta()
            venta.item = honorario.item
            venta.recibo = recibo
            venta.cantidad = 1
            venta.precio = honorario.monto
            venta.impuesto = honorario.item.impuestos
            venta.descontable = False

            venta.save()
            recibo.ventas.add(venta)

        for deposito in self.object.depositos.all():
            pago = Pago()
            pago.recibo = recibo
            pago.monto = deposito.monto
            pago.tipo = TipoPago.objects.get(pk=config.DEPOSIT_PAYMENT)
            pago.save()

        self.object.ultimo_cobro = timezone.now()
        self.object.save()

        return HttpResponseRedirect(recibo.get_absolute_url())
Exemple #14
0
    def form_valid(self, form):
        self.object = form.save(commit=False)

        items = self.object.facturar()

        recibo = Recibo()
        recibo.cajero = self.request.user
        recibo.cliente = self.object.paciente
        recibo.tipo_de_venta = self.object.tipo_de_venta

        recibo.save()

        crear_ventas(items, recibo)

        for honorario in self.object.honorarios.all():
            venta = Venta()
            venta.item = honorario.item
            venta.recibo = recibo
            venta.cantidad = 1
            venta.precio = honorario.monto
            venta.impuesto = honorario.item.impuestos
            venta.descontable = False

            venta.save()
            recibo.ventas.add(venta)

        for deposito in self.object.depositos.all():
            pago = Pago()
            pago.recibo = recibo
            pago.monto = deposito.monto
            pago.tipo = TipoPago.objects.get(pk=config.DEPOSIT_PAYMENT)
            pago.save()

        self.object.ultimo_cobro = timezone.now()
        self.object.save()

        return HttpResponseRedirect(recibo.get_absolute_url())