def compras(request,compra_id=None): template_name = "cmp/compras.html" prod = Producto.objects.filter(estado=True) form_compras = {} contexto = {} if request.method=='GET': form_compras=ComprasEncForm() enc=ComprasEnc.objects.filter(pk=compra_id).first() if enc: det = Comprasdet.objects.filter(compras=enc) fecha_compra = datetime.date.isoformat(enc.fecha_compra) fecha_factura = datetime.date.isoformat(enc.fecha_factura) e = { 'fecha_compra':fecha_compra, 'proveedor':enc.proveedor, 'observacion': enc.observacion, 'no_factura': enc.no_factura, 'fecha_factura':enc.fecha_factura, 'subtotal':enc.subtotal, 'descuento':enc.descuento, 'total':enc.total } form_compras = ComprasEncForm(e) else: det=None contexto={'producto':prod, 'encabezado':enc, 'detalle':det, 'form_enc':form_compras} return render(request, template_name, contexto)
def compras(request, compra_id=None): template_name = "cmp/compras.html" prod = Producto.objects.filter(estado=True) form_compras = {} contexto = {} if request.method == 'GET': form_compras = ComprasEncForm() enc = ComprasEnc.objects.filter(pk=compra_id).first() if enc: det = Comprasdet.objects.filter(compra=enc) fecha_compra = datetime.date.isoformat(enc.fecha_compra) fecha_factura = datetime.date.isoformat(enc.fecha_factura) e = { 'fecha_compra': fecha_compra, 'proveedor': enc.proveedor, 'observacion': enc.observacion, 'no_factura': enc.no_factura, 'fecha_factura': fecha_factura, 'sub_total': enc.sub_total, 'descuento': enc.descuento, 'total': enc.total } form_compras = ComprasEncForm(e) else: det = None contexto = { 'productos': prod, 'encabezado': enc, 'detalle': det, 'form_enc': form_compras } if request.method == 'POST': fecha_compra = request.POST.get("fecha_compra") observacion = request.POST.get("observacion") no_factura = request.POST.get("no_factura") fecha_factura = request.POST.get("fecha_factura") proveedor = request.POST.get("proveedor") sub_total = 0 descuento = 0 total = 0 if not compra_id: prov = Proveedor.objects.get(pk=proveedor) enc = ComprasEnc(fecha_compra=fecha_compra, observacion=observacion, no_factura=no_factura, fecha_factura=fecha_factura, proveedor=prov, uc=request.user) if enc: enc.save() compra_id = enc.id else: enc = ComprasEnc.objects.filter(pk=compra_id).first() if enc: enc.fecha_compra = fecha_compra enc.observacion = observacion enc.no_factura = no_factura enc.fecha_factura = fecha_factura enc.um = request.user.id enc.save() if not compra_id: return redirect("cmp:compras_list") producto = request.POST.get("id_id_producto") cantidad = request.POST.get("id_cantidad_detalle") precio = request.POST.get("id_precio_detalle") sub_total_detalle = request.POST.get("id_sub_total_detalle") descuento_detalle = request.POST.get("id_descuento_detalle") total_detalle = request.POST.get("id_total_detalle") prod = Producto.objects.get(pk=producto) det = Comprasdet(compra=enc, producto=prod, cantidad=cantidad, precio_prv=precio, descuento=descuento_detalle, costo=0, uc=request.user) if det: det.save() sub_total = Comprasdet.objects.filter(compra=compra_id).aggregate( Sum('sub_total')) descuento = Comprasdet.objects.filter(compra=compra_id).aggregate( Sum('descuento')) enc.sub_total = sub_total["sub_total__sum"] enc.descuento = descuento["descuento__sum"] enc.save() return redirect("cmp:compras_edit", compra_id=compra_id) return render(request, template_name, contexto)