Пример #1
0
def listar_transacciones(request, id):
    listTransaccion = list()  # creamos la lista que enviaremos al contexto
    list_interna = list(
    )  # me permitira guardar en la primera posicion la transaccion, y en la segunda posicion una lista de transaccion_cuenta
    cv = 0
    periodo_existe = Periodo.objects.filter(id=id).exists()
    if periodo_existe:
        periodo = Periodo.objects.get(id=id)
        transaccion_existe = Transaccion.objects.filter(
            periodo_transaccion=periodo).exists()
        if transaccion_existe:
            transacciones = Transaccion.objects.filter(
                periodo_transaccion=periodo
            )  #traemos las transacciones del periodo en cuestion
            for transaccion in transacciones:
                list_interna.append(transaccion)
                detalle_existe = Transaccion_Cuenta.objects.filter(
                    transaccion_tc=transaccion).exists()
                if detalle_existe:
                    detalle_transacciones = Transaccion_Cuenta.objects.filter(
                        transaccion_tc=transaccion)
                    list_interna.append(detalle_transacciones)
                listTransaccion.append(list_interna)
                list_interna = []

    if request.method == 'POST':  #Prueba para el metodo pesp
        if 'btnPeps' in request.POST:
            idPeriodo = 1
            fecha = time.strftime("%Y-%m-%d")
            id_cuenta = 19
            cant = 50
            precio_u = 1.10
            tipo = False
            cv = list()
            cv = peps(idPeriodo, fecha, id_cuenta, cant, precio_u, tipo, cv)
            for x in cv:
                print(x[0])
                print(x[1])
                print(x[2])
            return redirect('listar_transacciones', id=id)

    contexto = {'listTransaccion': listTransaccion}
    return render(request, 'transaccion/listar_transacciones.html', contexto)
Пример #2
0
def compra_inventario(request):
    cuentas = CuentaHija.objects.select_related().all()
    periodo = Periodo.objects.latest('id')
    form1 = TransaccionForm()
    if request.is_ajax():
        iniciar_transaccion(request, form1)

    if 'guardar' in request.POST:

        t = Transaccion.objects.latest('id')
        # Cargado
        c = CuentaHija.objects.get(nombre_cuenta=request.POST['cuenta'])
        totalCompra = request.POST['total']
        iva = request.POST['iva']
        precio_uni = request.POST['precio_unit']
        cant = request.POST['cantidad']

        cv = list()
        cv = peps(periodo.id, t.fecha_transaccion, c.id, int(cant),
                  float(precio_uni), False, cv)

        tran = Transaccion_Cuenta(
            transaccion_tc=t,
            cuenta_tc=c,
            debe_tc=Decimal(totalCompra),
            haber_tc=Decimal("0.0"),
        )
        tran.save()
        aumentar_saldo(c.id, totalCompra, True)

        tran1 = Transaccion_Cuenta(
            transaccion_tc=t,
            cuenta_tc=CuentaHija.objects.get(id=24),
            debe_tc=Decimal(iva),
            haber_tc=Decimal("0.0"),
        )
        tran1.save()
        aumentar_saldo(24, iva, True)
        if 'efectivo0' in request.POST and 'cxp0' in request.POST:
            if request.POST['efectivo0'] == 'on' and request.POST[
                    'cxp0'] == 'on':
                efectivo = request.POST['efectivo']
                cxp = request.POST['cxp']

                tran = Transaccion_Cuenta(
                    transaccion_tc=t,
                    cuenta_tc=CuentaHija.objects.get(id=1),
                    debe_tc=Decimal("0.0"),
                    haber_tc=Decimal(efectivo),
                )
                tran.save()
                aumentar_saldo(1, efectivo, False)

                tran1 = Transaccion_Cuenta(
                    transaccion_tc=t,
                    cuenta_tc=CuentaHija.objects.get(id=137),
                    debe_tc=Decimal("0.0"),
                    haber_tc=Decimal(cxp),
                )
                tran1.save()
                aumentar_saldo(137, cxp, False)
        else:
            if 'efectivo0' in request.POST:
                if request.POST['efectivo0'] == 'on':
                    efectivo = request.POST['efectivo']
                    tran = Transaccion_Cuenta(
                        transaccion_tc=t,
                        cuenta_tc=CuentaHija.objects.get(id=1),
                        debe_tc=Decimal("0.0"),
                        haber_tc=Decimal(efectivo),
                    )
                    tran.save()
                    aumentar_saldo(1, efectivo, False)

            else:
                cxp = request.POST['cxp']
                tran1 = Transaccion_Cuenta(
                    transaccion_tc=t,
                    cuenta_tc=CuentaHija.objects.get(id=137),
                    debe_tc=Decimal("0.0"),
                    haber_tc=Decimal(cxp),
                )
                tran1.save()
                aumentar_saldo(137, cxp, False)

        return redirect('transaccion:transacciones')

    contexto = {'form': form1, 'periodo': periodo, 'cuentas': cuentas}
    return render(request, 'transaccion/transaccion_compra.html', contexto)
Пример #3
0
def venta(request):
    cuentas = CuentaHija.objects.select_related().all()
    periodo = Periodo.objects.latest('id')
    error = False
    form1 = TransaccionForm()
    if request.is_ajax():
        iniciar_transaccion(request, form1)

    if 'guardar' in request.POST:

        t = Transaccion.objects.latest('id')
        # Cargado
        c = CuentaHija.objects.get(nombre_cuenta=request.POST['cuenta'])
        cant = request.POST['cantidad']
        porcentaje = request.POST['porcentaje']

        cv = list()
        cv = peps(periodo.id, t.fecha_transaccion, c.id, int(cant), 0, True,
                  cv)

        costo = 0

        if cv:
            for v in cv:
                costo = costo + v[2]

            tran = Transaccion_Cuenta(
                transaccion_tc=t,
                cuenta_tc=c,
                haber_tc=Decimal(costo),
                debe_tc=Decimal("0.0"),
            )
            tran.save()
            aumentar_saldo(c.id, costo, False)

            tran1 = Transaccion_Cuenta(
                transaccion_tc=t,
                cuenta_tc=CuentaHija.objects.get(id=133),
                haber_tc=Decimal("0.0"),
                debe_tc=Decimal(costo),
            )
            tran1.save()
            aumentar_saldo(133, costo, True)

            total = (costo * float(porcentaje)) + costo
            iva = total * 0.13

            tran2 = Transaccion_Cuenta(
                transaccion_tc=t,
                cuenta_tc=CuentaHija.objects.get(id=134),
                haber_tc=Decimal(total),
                debe_tc=Decimal("0.0"),
            )
            tran2.save()
            aumentar_saldo(134, total, False)

            tran3 = Transaccion_Cuenta(
                transaccion_tc=t,
                cuenta_tc=CuentaHija.objects.get(id=97),
                haber_tc=Decimal(iva),
                debe_tc=Decimal("0.0"),
            )
            tran3.save()
            aumentar_saldo(97, iva, False)

            cuenta = request.POST['cargo']
            c = CuentaHija.objects.get(id=int(cuenta))

            if c.id == 1:
                tran = Transaccion_Cuenta(
                    transaccion_tc=t,
                    cuenta_tc=CuentaHija.objects.get(id=1),
                    haber_tc=Decimal("0.0"),
                    debe_tc=total + iva,
                )
                tran.save()
                aumentar_saldo(1, total + iva, True)

            if c.id == 138:
                tran = Transaccion_Cuenta(
                    transaccion_tc=t,
                    cuenta_tc=CuentaHija.objects.get(id=138),
                    haber_tc=Decimal("0.0"),
                    debe_tc=total + iva,
                )
                tran.save()
                aumentar_saldo(138, total + iva, True)

            return redirect('transaccion:transacciones')
        else:
            error = True
            contexto = {
                'form': form1,
                'periodo': periodo,
                'cuentas': cuentas,
                'error': error
            }

    contexto = {
        'form': form1,
        'periodo': periodo,
        'cuentas': cuentas,
        'error': error
    }
    return render(request, 'transaccion/transaccion_venta.html', contexto)
Пример #4
0
def seguimiento(request, id_programacion):
	procesos_pendientes = Programacion_Proceso.objects.filter(programacion__id = id_programacion, terminado = False).order_by('id')[:1]
	materialesLista = CuentaHija.objects.filter(codigo_padre='1105') | CuentaHija.objects.filter(codigo_padre='1104')
	materiales = []
	for x in materialesLista:
		if x.debe > 0 and (x.debe - x.haber) > 0:
			materiales.append(x)
			pass
		pass
	cargos = Cargo.objects.all()
	if 'btnTerminarProceso' in request.POST:
		#Se procede a saldar cuenta de proceso finalizado
		programacion_proceso = request.POST['idProgramacionProcesofrm']
		periodo = Programacion_Proceso.objects.get(id = programacion_proceso).programacion.periodo_programacion
		fecha = time.strftime("%Y-%m-%d")
		transaccion = Transaccion(fecha_transaccion = fecha, descripcion_transaccion = "Saldando cuenta de proceso finalizado", periodo_transaccion = periodo)
		transaccion.save()
		prog_proc = request.POST['idProgramacionProcesofrm']
		cuenta_proceso = Programacion_Proceso.objects.get(id = prog_proc).proceso.cuenta_proceso
		total = cuenta_proceso.debe
		total = round(total,2)

		if Programacion_Proceso.objects.get(id = prog_proc).proceso.id < 7:
			siguiente_proc_name = Programacion_Proceso.objects.get(id = prog_proc).proceso.proceso_siguiente
			cuenta_proceso_siguiente = Proceso.objects.get(nombre_proceso = siguiente_proc_name).cuenta_proceso
			transaccion_saldar = Transaccion_Cuenta(debe_tc = 0.00, haber_tc = total, cuenta_tc = cuenta_proceso, transaccion_tc = transaccion)
			transaccion_cargar = Transaccion_Cuenta(debe_tc = total, haber_tc = 0.00, cuenta_tc = cuenta_proceso_siguiente, transaccion_tc = transaccion)
			if transaccion_saldar.haber_tc == transaccion_cargar.debe_tc:
				transaccion_saldar.save()
				transaccion_cargar.save()

				nuevo_haber = total
				nuevo_debe = total
				CuentaHija.objects.filter(id = cuenta_proceso.id).update(debe = 0.0, haber = 0.0)
				CuentaHija.objects.filter(id = cuenta_proceso_siguiente.id).update(debe = nuevo_debe)
				Programacion_Proceso.objects.filter(id = programacion_proceso).update(terminado = True)
				prog_proc_obj = Programacion_Proceso.objects.get(id = str(int(programacion_proceso) + 1))
				asignacion_mp = Asignar_Materia_Prima(cantidad_mp = 0.00, monto = total, nombre_mp = None, proceso_prog_mp = prog_proc_obj)
				asignacion_mp.save()
				pass
			pass
		else:
			pt = Programacion_Proceso.objects.get(id = prog_proc).programacion.producto_programacion
			cuenta_inventario_pt = CuentaHija.objects.get(codigo_cuenta = pt)
			transaccion_saldar = Transaccion_Cuenta(debe_tc = 0.00, haber_tc = total, cuenta_tc = cuenta_proceso, transaccion_tc = transaccion)
			transaccion_cargar = Transaccion_Cuenta(debe_tc = total, haber_tc = 0.00, cuenta_tc = cuenta_inventario_pt, transaccion_tc = transaccion)
			if transaccion_saldar.haber_tc == transaccion_cargar.debe_tc:
				transaccion_saldar.save()
				transaccion_cargar.save()
				nuevo_haber = total
				nuevo_debe = cuenta_inventario_pt.debe + total
				CuentaHija.objects.filter(id = cuenta_proceso.id).update(debe = 0.00, haber = 0.00)
				CuentaHija.objects.filter(id = cuenta_inventario_pt.id).update(debe = nuevo_debe)
				Programacion_Proceso.objects.filter(id = programacion_proceso).update(terminado = True)
				progra = Programacion_Proceso.objects.get(id = programacion_proceso).programacion
				cantidad = float(Programacion_Proceso.objects.get(id = programacion_proceso).programacion.cantidad_programacion)
				costo_unitario = float(total)/cantidad
				costo_unitario = round(costo_unitario,2)
				Programacion.objects.filter(id = progra.id).update(estado_programacion = True, costo_unitario = costo_unitario)
				peps(progra.periodo_programacion.id, date.today(), cuenta_inventario_pt.id,cantidad,costo_unitario,False,[])
				pass

		lista_programacion = Programacion.objects.all()
		return render(request,'contabilidad_costos/programacion_list.html', {'programaciones':lista_programacion})
		pass
	return render(request,'contabilidad_costos/seguimiento.html', {'procesos_pendientes':procesos_pendientes, 'materiales':materiales, 'cargos':cargos} )
Пример #5
0
	def get(self, request, *args, **kwargs):
		if request.GET['transaccion'] == 'CargarMP':
			#Se obtendra el monto, a traves de kardex
			programacion_proceso = request.GET['programacion_proceso']
			periodo_obj = Programacion_Proceso.objects.get(id = programacion_proceso).programacion.periodo_programacion
			periodo= periodo_obj.id
			producto = request.GET['producto']
			cantidad = request.GET['cantidad']
			fecha = time.strftime("%Y-%m-%d")
			cv = list()
			costoMP = peps(periodo, fecha, producto,int(cantidad),0, True, cv)
			monto = 0.00	
			if costoMP == []:
				data = []
				return HttpResponse(data)
				pass
			else:
					#Aqui iva ajuste_peps()
				#Se creara la transaccion para luego cargar y abonar las cuentas correspondientes
				for x in costoMP:
					monto = monto + x[2]
					pass
				monto = round(monto,2)
				fecha = time.strftime("%Y-%m-%d")
				transaccion = Transaccion(fecha_transaccion = fecha, descripcion_transaccion = "Cargando materia prima al proceso productivo", periodo_transaccion = periodo_obj)
				transaccion.save()
				cuenta_mp = CuentaHija.objects.get(id = producto)
				cuenta_proceso = Programacion_Proceso.objects.get(id = programacion_proceso).proceso.cuenta_proceso
				transaccion_mp = Transaccion_Cuenta(debe_tc = 0.00, haber_tc = monto, cuenta_tc = cuenta_mp, transaccion_tc = transaccion)
				transaccion_proceso = Transaccion_Cuenta(debe_tc = monto, haber_tc = 0.00, cuenta_tc = cuenta_proceso, transaccion_tc = transaccion)
				
				#Se comprobara partida doble y luego aplicar cambios en cuentas hijas
				if transaccion_mp.haber_tc == transaccion_proceso.debe_tc:
					transaccion_mp.save()
					transaccion_proceso.save()
					nuevo_haber = cuenta_mp.haber + monto
					nuevo_debe = cuenta_proceso.debe + monto
					CuentaHija.objects.filter(id = cuenta_mp.id).update(haber = nuevo_haber)
					CuentaHija.objects.filter(id = cuenta_proceso.id).update(debe = nuevo_debe)
					prog_proc_obj = Programacion_Proceso.objects.get(id = programacion_proceso) 
					asignacion_mp = Asignar_Materia_Prima(cantidad_mp = float(cantidad), monto = monto, nombre_mp = cuenta_mp, proceso_prog_mp = prog_proc_obj)
					asignacion_mp.save()
					
					#Se alistara JSON para reflejar datos en la tabla de mp
					data = serializers.serialize('json',[asignacion_mp],fields = ('proceso_prog_mp','nombre_mp','cantidad_mp','monto'))
					return HttpResponse(data, content_type = 'application/json')
					pass


			pass

		elif request.GET['transaccion'] == 'CargarMOD':
			programacion_proceso = request.GET['programacion_proceso']
			periodo = Programacion_Proceso.objects.get(id = programacion_proceso).programacion.periodo_programacion
			cargoSueldo = request.GET['cargo']
			cargo = cargoSueldo.split("/")[0]
			sueldo = Decimal((cargoSueldo.split("/")[1]+"0").replace(",","."))/720
			sueldo = round(sueldo,2)
			cantidadEmpleados = int(request.GET['cantidadEmpleados'])
			cantidadHRSempleado = int(request.GET['cantidadHRSempleado'])
			monto = float(sueldo*cantidadEmpleados*cantidadHRSempleado)
			monto = round(monto,2)
			fecha = time.strftime("%Y-%m-%d")
			transaccion = Transaccion(fecha_transaccion = fecha, descripcion_transaccion = "Cargando mano de obra a proceso", periodo_transaccion = periodo)
			transaccion.save()
			cuenta_sueldo = CuentaHija.objects.get(codigo_cuenta = 410101)
			codigo_cuenta = Programacion_Proceso.objects.get(id = programacion_proceso).proceso.cuenta_proceso.codigo_cuenta
			cuenta_proceso = CuentaHija.objects.get(codigo_cuenta = codigo_cuenta)
			transaccion_sueldo = Transaccion_Cuenta(debe_tc = 0.00, haber_tc = monto, cuenta_tc = cuenta_sueldo, transaccion_tc = transaccion)
			transaccion_proceso = Transaccion_Cuenta(debe_tc = monto, haber_tc = 0.00, cuenta_tc = cuenta_proceso, transaccion_tc = transaccion)
			
			if transaccion_proceso.debe_tc == transaccion_sueldo.haber_tc:
				transaccion_sueldo.save()
				transaccion_proceso.save()
				nuevo_haber = cuenta_sueldo.haber + monto
				nuevo_debe = cuenta_proceso.debe + monto
				CuentaHija.objects.filter(id = cuenta_sueldo.id).update(haber = nuevo_haber)
				CuentaHija.objects.filter(id = cuenta_proceso.id).update(debe = nuevo_debe)
				prog_proc = Programacion_Proceso.objects.get(id = programacion_proceso)
				cargo_obj = Cargo.objects.get(id = cargo)
				asignacion_mo = Asignar_Mano_Obra(cantidad_horas_empleado = float(cantidadHRSempleado), cantidad_empleados = cantidadEmpleados, cargo_mo = cargo_obj, proceso_prog_mo = prog_proc, monto = monto)
				asignacion_mo.save()
				data = serializers.serialize('json',[asignacion_mo],fields = ('cantidad_horas_empleado','cantidad_empleados','cargo_mo','proceso_prog_mo', 'monto'))
				return HttpResponse(data, content_type = 'application/json')
			pass

		elif request.GET['transaccion'] == 'CargarCIF':
			programacion_proceso = request.GET['programacion_proceso']
			baseAsignacion = request.GET['baseAsignacion']
			porcentajeAsignacion = request.GET['porcentajeAsignacion']
			#Se procedera a calcular los montos de mod, mp y cp
			prog_proc_obj = Programacion_Proceso.objects.get(id = programacion_proceso)
			asignaciones_mp = Asignar_Materia_Prima.objects.filter(proceso_prog_mp = prog_proc_obj)
			asignaciones_mod = Asignar_Mano_Obra.objects.filter(proceso_prog_mo = prog_proc_obj)

			monto_mp = 0.00
			monto_mod = 0.00
			for x in asignaciones_mp:
				monto_mp = monto_mp + x.monto
				pass
			for x in asignaciones_mod:
				monto_mod = monto_mod + x.monto
				pass
			monto_cp = monto_mp + monto_mod
			total_cif = 0.00

			#Se calculara los CIF
			if baseAsignacion == 'mod':
				total_cif = monto_mod*float(porcentajeAsignacion)
				pass

			elif baseAsignacion == 'mp':
				total_cif = monto_mp*float(porcentajeAsignacion)
				pass

			elif baseAsignacion == 'cp':
				total_cif = monto_cp*float(porcentajeAsignacion)
				pass

			#Se procedera a realizar las transacciones
			total_cif = round(total_cif,2)
			fecha = time.strftime("%Y-%m-%d")
			periodo = Programacion_Proceso.objects.get(id = programacion_proceso).programacion.periodo_programacion
			transaccion = Transaccion(fecha_transaccion = fecha, descripcion_transaccion = "Cargando CIF a proceso", periodo_transaccion = periodo)
			transaccion.save()

			cuenta_variacion = CuentaHija.objects.get(codigo_cuenta = 610101)
			cuenta_proceso = Programacion_Proceso.objects.get(id = programacion_proceso).proceso.cuenta_proceso

			transaccion_proceso = Transaccion_Cuenta(debe_tc = total_cif, haber_tc = 0.00, cuenta_tc = cuenta_proceso, transaccion_tc = transaccion)
			transaccion_variacion = Transaccion_Cuenta(debe_tc = 0.00, haber_tc = total_cif, cuenta_tc = cuenta_variacion, transaccion_tc = transaccion)

			#Se procede a comprobar partida doble y cerrar transacciones

			if transaccion_proceso.debe_tc == transaccion_variacion.haber_tc:
				transaccion_proceso.save()
				transaccion_variacion.save()
				nuevo_haber = cuenta_variacion.haber + total_cif
				nuevo_debe = cuenta_proceso.debe + total_cif
				CuentaHija.objects.filter(id = cuenta_variacion.id).update(haber = nuevo_haber)
				CuentaHija.objects.filter(id = cuenta_proceso.id).update(debe = nuevo_debe)
				prog_proc = Programacion_Proceso.objects.get(id = programacion_proceso)
				asignacion_cif = Asignar_Cif(base_cif = baseAsignacion, porcentaje_cif = float(porcentajeAsignacion), proceso_prog_cif = prog_proc, monto = total_cif)
				asignacion_cif.save()
				data = serializers.serialize('json',[asignacion_cif],fields = ('base_cif','porcentaje_cif','proceso_prog_cif','monto'))
				return HttpResponse(data, content_type = 'application/json')
				pass
			pass

		data = serializers.serialize('json',[])
		return HttpResponse(data, content_type = 'application/json')
Пример #6
0
def devolucion_compra(request):
    cuentas = CuentaHija.objects.select_related().all()
    periodo = Periodo.objects.latest('id')
    error = False

    if 'guardar' in request.POST:

        t = Transaccion(
            periodo_transaccion=periodo,
            fecha_transaccion=request.POST["fecha_transaccion"],
            descripcion_transaccion=request.POST["descripcion_transaccion"],
        )
        t.save()
        # Cargado
        c = CuentaHija.objects.get(nombre_cuenta=request.POST['cuenta'])
        totalCompra = request.POST['total']
        iva = request.POST['iva']
        precio_uni = request.POST['precio_unit']
        cant = request.POST['cantidad']

        cv = list()
        cv = peps(periodo.id, t.fecha_transaccion, c.id, int(cant),
                  float(precio_uni), True, cv)

        if cv:
            tran = Transaccion_Cuenta(
                transaccion_tc=t,
                cuenta_tc=c,
                haber_tc=Decimal(totalCompra),
                debe_tc=Decimal("0.0"),
            )
            tran.save()
            aumentar_saldo(c.id, totalCompra, False)

            tran1 = Transaccion_Cuenta(
                transaccion_tc=t,
                cuenta_tc=CuentaHija.objects.get(id=24),
                haber_tc=Decimal(iva),
                debe_tc=Decimal("0.0"),
            )
            tran1.save()
            aumentar_saldo(24, iva, False)

            if 'efectivo0' in request.POST and 'cxp0' in request.POST:
                if request.POST['efectivo0'] == 'on' and request.POST[
                        'cxp0'] == 'on':
                    efectivo = request.POST['efectivo']
                    cxp = request.POST['cxp']

                    tran = Transaccion_Cuenta(
                        transaccion_tc=t,
                        cuenta_tc=CuentaHija.objects.get(id=1),
                        haber_tc=Decimal("0.0"),
                        debe_tc=Decimal(efectivo),
                    )
                    tran.save()
                    aumentar_saldo(1, efectivo, True)

                    tran1 = Transaccion_Cuenta(
                        transaccion_tc=t,
                        cuenta_tc=CuentaHija.objects.get(id=137),
                        haber_tc=Decimal("0.0"),
                        debe_tc=Decimal(cxp),
                    )
                    tran1.save()
                    aumentar_saldo(137, cxp, True)
            else:
                if 'efectivo0' in request.POST:
                    if request.POST['efectivo0'] == 'on':
                        efectivo = request.POST['efectivo']
                        tran = Transaccion_Cuenta(
                            transaccion_tc=t,
                            cuenta_tc=CuentaHija.objects.get(id=1),
                            haber_tc=Decimal("0.0"),
                            debe_tc=Decimal(efectivo),
                        )
                        tran.save()
                        aumentar_saldo(1, efectivo, True)

                else:
                    cxp = request.POST['cxp']
                    tran1 = Transaccion_Cuenta(
                        transaccion_tc=t,
                        cuenta_tc=CuentaHija.objects.get(id=137),
                        haber_tc=Decimal("0.0"),
                        debe_tc=Decimal(cxp),
                    )
                    tran1.save()
                    aumentar_saldo(137, cxp, True)

            return redirect('transaccion:transacciones')
        else:
            error = True
            contexto = {'periodo': periodo, 'cuentas': cuentas, 'error': error}

    contexto = {'periodo': periodo, 'cuentas': cuentas, 'error': error}
    return render(request, 'transaccion/transaccion_devo_compra.html',
                  contexto)