Ejemplo n.º 1
0
    def save(self, *args, **kwargs):

        # Tomar el costo actual del producto que sera vendido (para reportes futuros)
        self.costo = self.producto.costo

        # Actualizar la existencia del producto
        try:
            exist = Existencia.objects.get(producto=self.producto, almacen=self.almacen)

            exist.cantidadAnterior = exist.cantidad
            exist.cantidad -= decimal.Decimal(self.cantidad)
            exist.save()

        except Existencia.DoesNotExist:
            raise Exception("Intenta facturar un producto que no tiene existencia " + self.producto.descripcion)

            # Guardar el movimiento del producto
        mov = Movimiento()
        mov.producto = self.producto
        mov.cantidad = float(self.cantidad)
        mov.precio = self.precio
        mov.costo = self.costo
        mov.almacen = self.almacen
        mov.tipo_mov = "S"
        mov.documento = "FACT"
        mov.documentoNo = self.factura.noFactura
        mov.userLog = self.factura.userLog
        mov.save()

        super(Detalle, self).save(*args, **kwargs)
Ejemplo n.º 2
0
	def post(self, request, *args, **kwargs):

		try:
			data = json.loads(request.body)
			facturaNo = int(data['facturaNo'])

			fact = Factura.objects.get(noFactura=facturaNo)
			detalle = Detalle.objects.filter(factura=fact)

			for item in detalle:
				quitar_producto(self, item.producto.codigo, item.almacen.id, facturaNo, 'E') #E = Eliminar

				mov = Movimiento()
				mov.producto = item.producto
				mov.cantidad = decimal.Decimal(Detalle.objects.get(factura__noFactura=facturaNo, producto=item.producto).cantidad) * -1
				mov.precio = item.producto.precio
				mov.costo = item.producto.costo
				mov.almacen = item.almacen
				mov.documento = 'FACT'
				mov.documentoNo = facturaNo
				mov.tipo_mov = 'S'
				mov.userLog = request.user
				mov.save()
			
			fact.borrado = True
			fact.borradoPor = request.user
			fact.borradoFecha = datetime.datetime.now()
			fact.save()

			return HttpResponse('1')

		except Exception as e:
			return HttpResponse(e)