def crearTransaccion (request): usuario = request.user if usuario.has_perm('modelo.add_transaccion'): formulario = FormularioTransaccion(request.POST) if request.method == 'POST': if formulario.is_valid(): datos = formulario.cleaned_data #dni = request.GET['cedula'] #cliente = Cliente.objects.get(cedula = dni) cuenta = datos.get('cuenta') if cuenta.estado == True: if datos.get('tipo') == "retiro" or datos.get('tipo') == "online": if saldo(cuenta.saldo,datos.get('valor')): transaccion = Transaccion() guardar_transaccion(transaccion, datos) caja = Caja() guardar_caja(caja, transaccion, usuario) cuenta.saldo = cuenta.saldo-transaccion.valor cuenta.save() transaccion.saldoFinal = cuenta.saldo transaccion.save() messages.warning(request, 'Transaccion de RETIRO exitosa!!') #return redirect(principal) dat={ 'cuentaA': cuenta, } return render(request, 'pdf/btn_cartola.html', dat) else: html = "<html><body>No se puede realizar el retiro.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) elif datos.get('tipo') == "deposito" or datos.get('tipo') == "pensiones" or datos.get('tipo') == "seguros" or datos.get('tipo') == "iess": transaccion = Transaccion() guardar_transaccion(transaccion, datos) caja = Caja() guardar_caja(caja, transaccion, usuario) cuenta.saldo = cuenta.saldo+transaccion.valor cuenta.save() transaccion.saldoFinal = cuenta.saldo transaccion.save() messages.warning(request, 'Transaccion de DEPOSITO exitoso!!') #return redirect(principal) dat={ 'cuentaA': cuenta, } return render(request, 'pdf/btn_cartola.html', dat) elif datos.get('tipo') == "transferencia": html = "<html><body>No se puede realizar la transferencia.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) else: html = "<html><body>No se puede realizar la transferencia Debido a que su CUenta esta Inactiva.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) context = { 'f': formulario, 'title': "Ingresar Cuenta", 'mensaje': "Ingresar nueva Transaccion", } return render(request, 'transaccion/crear_transaccion.html', context) else: return render(request, 'login/acceso_prohibido.html')
def crearTransaccionNumeroCuenta (request): usuario = request.user if usuario.has_perm('modelo.add_transaccion'): formulario = FormularioTransaccionNumCuenta(request.POST) num = request.GET['numero'] if request.method == 'POST': if formulario.is_valid(): datos = formulario.cleaned_data cuenta = Cuenta.objects.get(numero=num) if cuenta.estado == True: if datos.get('tipo') == 'retiro': if cuenta.saldo >= datos.get('valor'): transaccion = Transaccion() guardar_transaccion_num(transaccion, datos, cuenta) caja = Caja() guardar_caja(caja, transaccion, usuario) cuenta.saldo = cuenta.saldo-transaccion.valor cuenta.save() transaccion.saldoFinal = cuenta.saldo transaccion.save() messages.warning(request, 'Transaccion de RETIRO exitosa!!') dat={ 'cuentaA': cuenta, } return render(request, 'pdf/btn_cartola.html', dat) else: html = "<html><body>No se puede realizar el retiro.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) elif datos.get('tipo')== 'deposito': transaccion = Transaccion() guardar_transaccion_num(transaccion, datos, cuenta) caja = Caja() guardar_caja(caja, transaccion, usuario) cuenta.saldo = cuenta.saldo+transaccion.valor cuenta.save() transaccion.saldoFinal = cuenta.saldo transaccion.save() messages.warning(request, 'Transaccion de DEPOSITO exitoso!!') dat={ 'cuentaA': cuenta, } return render(request, 'pdf/btn_cartola.html', dat) elif datos.get('tipo') == "transferencia": html = "<html><body>No se puede realizar la transferencia.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) else: html = "<html><body>No se puede realizar la transferencia Debido a que su CUenta esta Inactiva.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) context = { 'f': formulario, 'title': "Ingresar Cuenta", 'mensaje': "Ingresar nueva Transaccion", 'num': num } return render(request, 'transaccion/crear_transaccion.html', context) else: return render(request, 'login/acceso_prohibido.html')
def transaccion(request): usuario = request.user if usuario.has_perm('modelo.add_transaccion'): numero = request.GET['numero'] cuenta = Cuenta.objects.get(numero=numero) formulario = FormularioTransaccion(request.POST) context = { 'f': formulario, 'numero': numero, 'title': "Transaccion", 'mensaje': "Ingresar Nueva Transaccion" } if request.method == 'POST': if formulario.is_valid(): datos = formulario.cleaned_data transaccion = Transaccion() transaccion.cuenta = cuenta transaccion.tipo = datos.get('tipo') transaccion.valor = datos.get('valor') transaccion.descripcion = datos.get('descripcion') cuenta = Cuenta.objects.get(numero=numero) cuentaSuma = Cuenta.objects.filter(numero=numero) suma = 0 for item in cuentaSuma: if datos.get('tipo') == 'deposito': suma = datos.get('valor') + item.saldo if datos.get('tipo') == 'retiro': if item.saldo >= datos.get('valor'): suma = item.saldo - datos.get('valor') else: messages.warning(request, 'SALDO INSUFICIENTE') return render(request, 'clientes/Transaccion.html', context) cuenta.saldo = suma transaccion.save() cuenta.save() messages.warning(request, 'Guardado Exitosamente') context = { 'nombres': cuenta.cliente.nombres + " ", 'apellidos': cuenta.cliente.apellidos, 'fecha': transaccion.fecha, 'tipo': transaccion.tipo, 'valor': transaccion.valor, 'cuenta': transaccion.cuenta, 'descripcion': transaccion.descripcion } return render(request, 'clientes/Presentar.html', context) numero = random.randrange(10) return render(request, 'clientes/Transaccion.html', context) else: messages.warning(request, 'No Permitido') return render(request, 'login/403.html')
def transferencia(request): numero1 = request.GET['numero1'] cedula1= request.GET['cedula1'] numero2 = request.GET['numero2'] cedula2 = request.GET['cedula2'] valor = request.GET['monto'] descripcion = request.GET['descripcion'] responsable = request.GET['responsable'] cliente1=Cliente.objects.all().filter(cedula = cedula1) cuenta1 = Cuenta.objects.all().filter(numero = numero1) cliente2=Cliente.objects.all().filter(cedula = cedula2) cuenta2 = Cuenta.objects.all().filter(numero = numero2) titulo ="Transaccion estado" subtitulo ="Mensaje" if cliente1 and cuenta1 and cliente2 and cuenta2: transaccion = Transaccion() auxCuenta1=str(Cuenta.objects.get(numero = numero1)) auxCuenta2=str(Cuenta.objects.get(numero = numero2)) auxCuenta1 = auxCuenta1.split(';') auxCuenta2 = auxCuenta2.split(';') saldoActual1 = float(auxCuenta1[0]) saldoActual2 = float(auxCuenta2[0]) transaccion.tipo= 'Transferencia' transaccion.valor = round(float(valor),3) transaccion.descripcion = descripcion transaccion.responsable = responsable transaccion.cuenta = Cuenta.objects.get(cuenta_id=int(auxCuenta1[1])) deposito = float(valor) for cu in cuenta1: cu.saldo =round(saldoActual1-deposito,3) cu.save() transaccion.save() for cu in cuenta2: cu.saldo =round(saldoActual2+deposito,3) cu.save() mensaje ='Transaccin realizada con éxito' valor = valor return render (request,'transferencias/mensaje_transferencia.html',locals()) else: valor = valor mensaje ='ERROR AL REALIZAR TRANSACCION' return render (request,'transferencias/mensaje_transferencia.html',locals())
def crearTransferencia(request): usuario = request.user if usuario.has_perm('modelo.add_transaccion'): formulario = FormularioTansferencia(request.POST) form = FormularioBancaVirtual(request.POST) if request.method == 'POST': if formulario.is_valid() and form.is_valid(): datosA = formulario.cleaned_data datosB = form.cleaned_data aux = Cuenta.objects.filter(numero = datosB.get('numeroCuentaDestino')) if aux: cuentaB = aux.get(numero = datosB.get('numeroCuentaDestino')) if cuentaB: cuenta = datosA.get('cuenta') if saldo(cuenta.saldo, datosA.get('valor')): #guradar transaccion A transaccion = Transaccion() transaccion.tipo = 'transferencia' transaccion.valor = datosA.get('valor') transaccion.descripcion = datosA.get('descripcion') transaccion.cuenta = datosA.get('cuenta') transaccion.save() #guradar transaccion B transaccionB = Transaccion() transaccionB.tipo = 'transferencia' transaccionB.valor = datosA.get('valor') transaccionB.descripcion = datosA.get('descripcion') transaccionB.cuenta = cuentaB transaccionB.save() #guardar bancaVirtual banca = BancaVirtual() banca.numeroCuentaDestino = datosB.get('numeroCuentaDestino') banca.dniTitularCuentaDestino = datosB.get('dniTitularCuentaDestino') banca.titularCuentaDestino = datosB.get('titularCuentaDestino') banca.transaccion = transaccion banca.save() #realizamos la transferencia cuenta.saldo = cuenta.saldo - transaccion.valor cuentaB.saldo = cuentaB.saldo + transaccion.valor cuenta.save() cuentaB.save() #se guarda el saldo final de la transaccion transaccion.saldoFinal = cuenta.saldo transaccion.save() transaccionB.saldoFinal = cuentaB.saldo transaccionB.save() messages.warning(request, 'Transferencia exitosa!!') #return redirect(principal) dat={ 'cuentaA': cuenta, 'cuentaB': cuentaB, 'transaccionA': transaccion, 'nombresA': cuenta.cliente.nombres, 'apellsA': cuenta.cliente.apellidos, 'direccionA': cuenta.cliente.direccion, 'telefonoA': cuenta.cliente.telefono, 'nombresBB': cuentaB.cliente.nombres, 'apellsBB': cuentaB.cliente.apellidos, } return render(request, 'pdf/btn.html', dat) else: html = "<html><body>No se puede realizar la transaccion debido a que no cuenta con el saldo suficiente.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) else: html = "<html><body>No existe el numero de cuenta del destinatario.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) else: html = "<html><body>No existe el numero de cuenta.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) else: html = "<html><body>Los datos estan mal ingresados.<br><a href= "''">Volver</a> | <a href= "'listarAllCuentas'">Principal</a></body></html>" return HttpResponse(html) context = { 'f': formulario, 'b': form, 'title': "Ingresar Cuenta", 'mensaje': "Ingresar nueva Transferencia" } return render(request, 'transaccion/crear_transferencia.html', context) else: return render(request, 'login/acceso_prohibido.html')
def transaccion(request): usuario = request.user if usuario.has_perm('modelo.add_transaccion'): dni = request.GET['numero'] c = Cuenta.objects.get(numero=dni) trans = Transaccion() trans.cuenta = c formulario = FormularioTransaccion(instance=trans) context = { 'f': formulario, 'title': "Transaccion", 'mensaje': "Ingresar Nueva Transaccion" } formulario = FormularioTransaccion(request.POST) if request.method == 'POST': if formulario.is_valid(): datos = formulario.cleaned_data transaccion = Transaccion() transaccion.cuenta = datos.get('cuenta') transaccion.tipo = datos.get('tipo') transaccion.valor = datos.get('valor') transaccion.descripcion = datos.get('descripcion') transaccion.cedula_responsable = datos.get('cedula_responsable') transaccion.responsable = datos.get('responsable') cuenta = Cuenta.objects.get(numero=datos.get('cuenta')) if cuenta.estado: cuentaSuma = Cuenta.objects.filter(numero=datos.get('cuenta')) suma = 0 for item in cuentaSuma: if datos.get('tipo') == 'deposito': suma = datos.get('valor') + item.saldo if datos.get('tipo') == 'retiro': if item.saldo >= datos.get('valor'): suma = item.saldo - datos.get('valor') else: messages.warning(request, 'SALDO INSUFICIENTE') return render(request, 'transaccion/crear_transaccion.html', context) cuenta.saldo = suma; transaccion.save() cuenta.save() messages.warning(request, 'Guardado Exitosamente') context = { 'fecha': transaccion.fecha, 'tipo': transaccion.tipo, 'valor': transaccion.valor, 'cuenta': transaccion.cuenta, 'descripcion': transaccion.descripcion, 'cedula_responsable': transaccion.cedula_responsable, 'responsable': transaccion.responsable } return render(request, 'transaccion/presentar.html', context) else: messages.warning(request, 'CUENTA INACTIVA') return redirect(homePage) return render(request, 'transaccion/crear_transaccion.html', context) else: return render(request, 'login/buscar.html')
def depositar_retirar_transaccion(request, cedula, numero): formMonto = FormularioMonto(request.POST) formTransaccion =FormularioTransaccion(request.POST) cliente = Cliente.objects.all().filter(cedula = cedula) cuenta = Cuenta.objects.all().filter(numero = numero) if request.method == 'POST': if formMonto.is_valid() and formTransaccion.is_valid(): datosMonto = formMonto.cleaned_data datosTransaccion = formTransaccion.cleaned_data transaccion = Transaccion() monto = float(datosTransaccion.get('valor')) dep = str(Cuenta.objects.get(numero = numero)) dep = dep.split(';') saldoActual = float(dep[0]) transaccion.tipo = datosTransaccion.get('tipo') transaccion.valor= datosTransaccion.get('valor') transaccion.descripcion = datosTransaccion.get('descripcion') transaccion.responsable = datosTransaccion.get('responsable') transaccion.cuenta = Cuenta.objects.get(cuenta_id = int(dep[1])) if datosTransaccion.get('tipo') == 'Deposito': transaccion.save() for cuen in cuenta: cuen.saldo = round(saldoActual + monto, 3) cuen.save() return render(request, 'transacciones/mensaje_transaccion.html', locals()) if datosTransaccion.get('tipo') == 'Retiro': transaccion.save() for cuen in cuenta: cuen.saldo = round(saldoActual - monto, 3) cuen.save() return render(request, 'transacciones/mensaje_transaccion.html', locals()) else: return render(request,'transacciones/depositar_retirar_transaccion.html', locals())