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)
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()
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)
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()
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())
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())
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)
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())
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())
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())