# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.contrib.auth.decorators import login_required, permission_required
from django.contrib.auth.models import User, Group
from django.db.models import Sum,Q,Avg,Count
from django.http import HttpResponseRedirect
from django.http import HttpResponse
from django.db  import  IntegrityError ,  transaction 
import json
import sys
from django.core import serializers
from Main.models import *
from Process.models import *
from Maintenance.models import *
from Consult.models import *
from datetime import date, time, timedelta
import time
import datetime
import calendar

#factura
import requests
import base64
import os

#modulos adicionales
def esReal(t):
	f=0
	try:
		f=float(t)
	except:
		f=0
	return f

def QuitarEspacios(texto):
	a=str(texto)
	return " ".join(a.split())
def ConvertirDecimal(numtext):
	a=str(numtext)
	return float(a.replace(',','.'))
def getSerie8Digits(num):
	an = "00000000"+str(num)
	return an[-8:]
#modulos adicionales
def poner_coma(numero):
	cadena=numero
	n= len(cadena)
	resul=''
	p=n
	while p>3:
		p= p-3
		p1=cadena[:p]
		p2=cadena[p:]
		resul= ','+p2+resul
		cadena= p1
	return (cadena+resul)
def normalizar(numero):
	cadena=str(float(numero))
	part= cadena.split('.')
	num= part[0]
	dec= part[1]
	cade= poner_coma(num)
	return cade+'.'+dec

#*******************************
@login_required
@permission_required('Main.add_oficina')
def listaComisiones_ajax_view(request):
	if request.is_ajax:
		idCaja=request.GET.get('idCa')
		id_otraCa=request.GET.get('idCaDes')
		data=''
		lista=[]
		try:
			conf= ConfiguracionExtra_caja.objects.get(id_caja=idCaja)
			consulta=list(Configuracion_comision.objects.filter(id_config=conf.pk,id_caja=id_otraCa).values('pk','id_config','id_caja','fecha','montomin','montomax','comision'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['montomin']=float(obj['montomin'])
				dato['montomax']=float(obj['montomax'])
				dato['comision']=float(obj['comision'])
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def oficinas_como_Externas_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(TConfiguracionSistema.objects.filter(conf2='externa').values('pk'))
			for obj in consulta:
				#if TConfiguracionSistema.objects.filter(conf2='externa').exists():
				conf=TConfiguracionSistema.objects.get(pk=obj['pk'])
				dato={}
				dato['conf']=conf.pk
				dato['nombre']=conf.id_oficina.nombre_oficina+' ['+conf.id_caja.nombre+']'
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def bases_para_of_externa_view_ajax(request):
	if request.is_ajax:
		idconfig=request.GET.get('idConf')
		data=''
		lista=[]
		try:
			conf= TConfiguracionSistema.objects.get(pk=idconfig)
			consulta=list(Base_Ext.objects.filter(id_confSis=conf.pk).values('pk','fecha','nombre_base','ciudad','direccion','descripcion','observaciones','estado_base'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['nombre']=obj['nombre_base']
				dato['ciudad']=obj['ciudad']
				dato['dir']=obj['direccion']
				dato['des']=obj['descripcion']
				dato['obs']=obj['observaciones']
				dato['est']=obj['estado_base']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def oficinas_no_Externas_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
			for obj in consulta:
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk']).exclude(conf2='externa').exists():
					lista.append(obj)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def cajas_no_Externas_ajax_view(request):
	idO=request.GET.get('idOfi')
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(Cajas.objects.filter(id_oficina=idO).values('pk','nombre'))
			for obj in consulta:
				if not TConfiguracionSistema.objects.filter(id_oficina=idO,id_caja=obj['pk'],conf2='externa').exists():
					lista.append(obj)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def bases_por_oficina_view_ajax(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			conf= TConfiguracionSistema.objects.get(id_oficina=C.id_oficina.pk,id_caja=C.pk,conf2='externa')
			consulta=list(Base_Ext.objects.filter(id_confSis=conf.pk,estado_base=True).values('pk','nombre_base'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['nombre']=obj['nombre_base']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def oficinas_version2_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Oficina.objects.exclude(pk=C.id_oficina.pk).exclude(estado_oficina=False).exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina','estado_oficina'))
			for obj in consulta:
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').exists():
					tconf= TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk')
					bases= list(Base_Ext.objects.filter(id_confSis=tconf[0]['pk'],estado_base=True).values('pk','nombre_base'))
					for b in bases:
						dato={}
						dato['pk']= 'b'+str(b['pk'])
						dato['nombre_oficina']= b['nombre_base']
						dato['bx']='si'
						lista.append(dato)
				else:
					dato={}
					dato['pk']= obj['pk']
					dato['nombre_oficina']= obj['nombre_oficina']
					dato['bx']='no'
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def oficinas_version3_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			#C= Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Oficina.objects.exclude(estado_oficina=False).exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina','estado_oficina'))
			for obj in consulta:
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').exists():
					tconf= TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk')
					bases= list(Base_Ext.objects.filter(id_confSis=tconf[0]['pk'],estado_base=True).values('pk','nombre_base'))
					for b in bases:
						dato={}
						dato['pk']= 'b'+str(b['pk'])
						dato['nombre_oficina']= b['nombre_base']
						dato['bx']='si'
						lista.append(dato)
				else:
					dato={}
					dato['pk']= obj['pk']
					dato['nombre_oficina']= obj['nombre_oficina']
					dato['bx']='no'
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def oficinas_des_glo_version2_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Oficina.objects.exclude(estado_oficina=False).exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina','estado_oficina'))
			for obj in consulta:
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').exists():
					tconf= TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk')
					bases= list(Base_Ext.objects.filter(id_confSis=tconf[0]['pk'],estado_base=True).values('pk','nombre_base'))
					for b in bases:
						dato={}
						dato['pk']= 'b'+str(b['pk'])
						dato['nombre_oficina']= b['nombre_base']
						dato['bx']='si'
						lista.append(dato)
				else:
					dato={}
					dato['pk']= obj['pk']
					dato['nombre_oficina']= obj['nombre_oficina']
					dato['bx']='no'
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Transfe_CreadasBE_view(request):
	try:
		usr= request.user.username
		cargo =''
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,'TransfereciaBE.html',{"cargo":cargo} )

@login_required
def Transfe_RecibidasBE_view(request):
	try:
		usr= request.user.username
		cargo =''
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,'TransRecibidasBE.html',{"cargo":cargo} )


@login_required
def Transfe_PagadasBE_view(request):
	try:
		usr= request.user.username
		cargo =''
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,'TransPagadasBE.html',{"cargo":cargo} )


@login_required
def ver_oficinas_cajas(request):
	if request.is_ajax:
		idOficina=request.GET.get('pk')
		data=''
		lista=[]
		try:
			consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").exclude(pk=idOficina).values('pk','nombre_oficina'))
			for obj in consulta:
				dato={}
				dato['pkO']=obj['pk']
				dato['nombre_o']=obj['nombre_oficina']
				consulta1=list(TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk','id_caja__nombre'))
				listaB=[]
				for obj1 in consulta1:
					consulta2=list(Base_Ext.objects.filter(id_confSis=obj1['pk']).values('pk','nombre_base'))
					for obj2 in consulta2:
						dato1={}
						dato1['pkB']=obj2['pk']
						dato1['nombre_b']=obj2['nombre_base']
						listaB.append(dato1)
				dato['listaBases']=listaB
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])

		'''try:
			consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['nombre']=obj['nombre_oficina']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])'''
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def ver_comisiones_guardadas(request):
	if request.is_ajax:
		idOficina=request.GET.get('idOficina')
		idCaja=request.GET.get('idCaja')
		idBase=request.GET.get('idBase')
		# print 'VALOR DE LA IDBASE'+idBase
		data=''
		lista=[]
		try:
			if idBase!='' and idBase!=None and idBase!='null':
				conf= ConfiguracionExtra_caja.objects.get(id_caja=idCaja)
				consulta=list(Configuracion_comision.objects.filter(id_config=conf.pk,id_oficina=idOficina,base_ori=idBase).exclude(base_des__isnull=False).exclude(base_des='').values('pk','montomin','montomax','comision'))
				for obj in consulta:
					dato={}
					dato['pk']=obj['pk']
					dato['montomin']=str(obj['montomin'])
					dato['montomax']=str(obj['montomax'])
					dato['comision']=str(obj['comision'])
					lista.append(dato)
				data= json.dumps(lista)
			else:
				conf= ConfiguracionExtra_caja.objects.get(id_caja=idCaja)
				consulta=list(Configuracion_comision.objects.filter(id_config=conf.pk,id_oficina=idOficina).exclude(base_ori__isnull=False).exclude(base_des__isnull=False).values('pk','montomin','montomax','comision'))
				for obj in consulta:
					dato={}
					dato['pk']=obj['pk']
					dato['montomin']=str(obj['montomin'])
					dato['montomax']=str(obj['montomax'])
					dato['comision']=str(obj['comision'])
					lista.append(dato)
				data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#------------- comision
@login_required
def listaConfigCo_para_ofici_ajax_view(request):
	if request.is_ajax:
		idO=request.GET.get('idOfi')#destino 
		idOrigen=request.GET.get('idOfiOri')#origen #base
		idCaOrigen=request.GET.get('idCOri')#caja origen
		usr= request.user.username
		data=''
		lista=[]
		con=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if idOrigen !=None and idOrigen !='':
				if idOrigen.isdigit():
					ofiOrg= Oficina.objects.get(pk=idOrigen)
					C= Cajas.objects.get(id_usuario=ofiOrg.id_usuario.pk)
					idOrigen=None
				else:
					bx=Base_Ext.objects.get(pk=idOrigen[1:])
					idOrigen= idOrigen[1:]
					C=bx.id_confSis.id_caja

			if idCaOrigen !=None and idCaOrigen !='':
				C=Cajas.objects.get(pk=idCaOrigen)
				idOrigen=None
			if idOrigen == None or idOrigen == '':
				if idO.isdigit():
					if Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=idO,id_caja=0).exists():
						con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=idO,id_caja=0).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
					else:
						Cp= Cajas.objects.get(id_usuario=C.id_oficina.id_usuario.pk)
						con=list(Configuracion_comision.objects.filter(id_config__id_caja=Cp.pk,id_oficina=idO,id_caja=0).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
				else:
					if idO[0]=='b':
						con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,tipo='subbase',base_des=idO[1:]).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
					else:
						caja=Cajas.objects.get(pk=idO[1:])
						con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=caja.id_oficina.pk,id_caja=idO[1:]).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
			else:
				if idO.isdigit():
					con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=idO,tipo='subbase',base_ori=idOrigen,id_caja=0).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
				else:
					if idO[0]=='b':
						con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,tipo='subbase',base_ori=idOrigen,base_des=idO[1:]).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
					else:
						caja=Cajas.objects.get(pk=idO[1:])
						con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=caja.id_oficina.pk,tipo='subbase',base_ori=idOrigen,id_caja=idO[1:]).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
			for obj in con:
				dato={}
				dato['montomin']=float(obj['montomin'])
				dato['montomax']=float(obj['montomax'])
				dato['comision']=float(obj['comision'])
				dato['banco_nacion']=float(obj['banco_nacion'])
				dato['banco_nacion_de']=float(obj['banco_nacion_de'])
				dato['otros_bancos']=float(obj['otros_bancos'])
				dato['continental']=float(obj['continental'])
				dato['continental_de']=float(obj['continental_de'])
				dato['bcp_de']=float(obj['bcp_de'])
				dato['bcp']=float(obj['bcp'])
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#------------- comision intercambio 
@login_required
def listaConfigCo_inter_para_ofici_ajax_view(request):
	if request.is_ajax:
		idO=request.GET.get('idOfi')#destino 
		idOrigen=request.GET.get('idOfiOri')#origen #base
		idCaOrigen=request.GET.get('idCOri')#caja origen
		usr= request.user.username
		data=''
		lista=[]
		con=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if idOrigen !=None and idOrigen !='':
				if idOrigen.isdigit():
					ofiOrg= Oficina.objects.get(pk=idOrigen)
					C= Cajas.objects.get(id_usuario=ofiOrg.id_usuario.pk)
					idOrigen=None
				else:
					bx=Base_Ext.objects.get(pk=idOrigen[1:])
					idOrigen= idOrigen[1:]
					C=bx.id_confSis.id_caja

			if idCaOrigen !=None and idCaOrigen !='':
				C=Cajas.objects.get(pk=idCaOrigen)
				idOrigen=None
			if idOrigen == None or idOrigen == '':
				if idO.isdigit():
					if Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,id_oficina=idO,id_caja=0).exists():
						con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,id_oficina=idO,id_caja=0).values('montomin','montomax','comision'))
					else:
						Cp= Cajas.objects.get(id_usuario=C.id_oficina.id_usuario.pk)
						con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=Cp.pk,id_oficina=idO,id_caja=0).values('montomin','montomax','comision'))
				else:
					if idO[0]=='b':
						con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,tipo='subbase',base_des=idO[1:]).values('montomin','montomax','comision'))
					else:
						caja=Cajas.objects.get(pk=idO[1:])
						con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,id_oficina=caja.id_oficina.pk,id_caja=idO[1:]).values('montomin','montomax','comision'))
			else:
				if idO.isdigit():
					con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,id_oficina=idO,tipo='subbase',base_ori=idOrigen,id_caja=0).values('montomin','montomax','comision'))
				else:
					if idO[0]=='b':
						con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,tipo='subbase',base_ori=idOrigen,base_des=idO[1:]).values('montomin','montomax','comision'))
					else:
						caja=Cajas.objects.get(pk=idO[1:])
						con=list(Configuracion_comision_intercambio.objects.filter(id_config__id_caja=C.pk,id_oficina=caja.id_oficina.pk,tipo='subbase',base_ori=idOrigen,id_caja=idO[1:]).values('montomin','montomax','comision'))
			for obj in con:
				dato={}
				dato['montomin']=float(obj['montomin'])
				dato['montomax']=float(obj['montomax'])
				dato['comision']=float(obj['comision'])
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

"""
@login_required
def listaConfigCo_para_ofici_ajax_view(request):
	if request.is_ajax:
		idO=request.GET.get('idOfi')#destino
		usr= request.user.username
		data=''
		lista=[]
		con=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if idO.isdigit():
				if Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=idO).exists():
					con=list(Configuracion_comision.objects.filter(id_config__id_caja=C.pk,id_oficina=idO).values('montomin','montomax','comision'))
				else:
					Cp= Cajas.objects.get(id_usuario=C.id_oficina.id_usuario.pk)
					con=list(Configuracion_comision.objects.filter(id_config__id_caja=Cp.pk,id_oficina=idO).values('montomin','montomax','comision'))
				for obj in con:
					dato={}
					dato['montomin']=float(obj['montomin'])
					dato['montomax']=float(obj['montomax'])
					dato['comision']=float(obj['comision'])
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
"""

@login_required
@permission_required('Main.add_oficina')
def Autorizaciones_comi_st_view(request):
	return render(request,'autorizarComi.html' )

@login_required
def Autorizaciones_comi_st_personal_view(request):
	return render(request,'AutorizarComisionPer.html' )

@login_required
def autorizaciones_comi_ajax_view(request):#consulta autorizaciones Retiro Transferencia
	if request.is_ajax:
		try:
			consulta=list(Solicitud_aut_comision.objects.all().order_by('-pk').values('pk','fecha','id_st','codigo_aut','estado','id_caja_solicitante','id_user_solicitante','usuario_autorizador','id_usuario_aut','fecha_aut','fecha_desbloqueo','fecha_creacion_st','id_oficina_des','obs'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['id_st']= obj['id_st']
				dato['cod']=obj['codigo_aut']
				dato['estado']=obj['estado']
				per= Personal.objects.get(pk=obj['id_user_solicitante'])
				Ca = Cajas.objects.get(pk=obj['id_caja_solicitante'])
				dato['Csoli']='['+Ca.id_oficina.nombre_oficina +'] '+Ca.nombre
				dato['soli']= per.nombre.capitalize() +' '+ per.Apellido_paterno.capitalize()+' '+per.Apellido_materno.capitalize()
				fa=""
				if obj['fecha_aut'] !=None:
					fa= str(obj['fecha_aut'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_aut']=fa
				fd=""
				if obj['fecha_desbloqueo'] !=None:
					fd= str(obj['fecha_desbloqueo'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_desb']=fd
				fst=""
				if obj['fecha_creacion_st'] !=None:
					fst= str(obj['fecha_creacion_st'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_st']=fst
				dato['obs']=obj['obs']
				if obj['id_oficina_des'][0]=="b":
					bd=Base_Ext.objects.get(pk=obj['id_oficina_des'][1:])
					dato['ofi_des']=bd.nombre_base
				elif obj['id_oficina_des'][0]=="c":
					ci=Cajas.objects.get(pk=obj['id_oficina_des'][1:])
					dato['ofi_des']=ci.nombre
				else:
					o=Oficina.objects.get(pk=obj['id_oficina_des'])
					dato['ofi_des']=o.nombre_oficina
				dato['user_aut']=''
				dato['cargo_aut']=''
				if obj['usuario_autorizador']=='Gerente':
					g= Gerente.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=g.nombre.capitalize() +' '+g.Apellido_paterno.capitalize()+' '+g.Apellido_materno.capitalize()
					dato['cargo_aut']='Gerente'
				elif obj['usuario_autorizador']=='Personal':
					p= Personal.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=p.nombre.capitalize() +' '+p.Apellido_paterno.capitalize()+' '+p.Apellido_materno.capitalize()
					dato['cargo_aut']='Personal'

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='Error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def monto_trans_leidos_ajax(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		m=0
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if C.id_usuario == C.id_oficina.id_usuario:
				consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__observaciones2__startswith='leido').values('pk','idCajaDebe','comision','monto_conceptos'))
				for obj in consulta:
					d= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
					oc=0
					if obj['monto_conceptos'] !='' and obj['monto_conceptos']!= None:
						oc= float(obj['monto_conceptos'])
					m=m+ float(d.cantidadDinero) -float(obj['comision']) -oc
			data=normalizar(m)
		except:
			data='fail'
	else:
		data='fail'
	mimetype="text"
	return HttpResponse(data,mimetype)

@login_required
def monto_trans_x_pagar_caja_inde_ajax(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		m=0
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',observaciones__startswith=C.nombre).values('pk','idCajaDebe','comision','monto_conceptos'))
			for obj in consulta:
				d= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
				oc=0
				if obj['monto_conceptos'] !='' and obj['monto_conceptos']!= None:
					oc= float(obj['monto_conceptos'])
				m=m+ float(d.cantidadDinero) -float(obj['comision']) -oc
			data=normalizar(m)
		except:
			data='fail'
	else:
		data='fail'
	mimetype="text"
	return HttpResponse(data,mimetype)

#********* subgerentes *******

@login_required
@permission_required('Main.add_oficina')
def SubGerentes_view(request):
	return render(request,'Subgerentes.html' )


@login_required
@permission_required('Main.add_oficina')
def SubGerentesTotal_ajax_view(request):
	if request.is_ajax:
		try:
			#o=Oficina.objects.get(nombre_oficina='Gerencia')
			consulta=list(Gerente.objects.exclude(id_usuario__cargo='gerente').values('pk','nombre','Apellido_paterno','Apellido_materno','dni','telefono','direccion','email','fecha_nacimiento','fecha_creacion','observacion','estado','usuario','password'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['nombre']=obj['nombre']
				dato['ap']=obj['Apellido_paterno']
				dato['am']=obj['Apellido_materno']
				dato['dni']= obj['dni']
				dato['tlf']= obj['telefono']
				dato['dir']= obj['direccion']
				dato['email']= obj['email']
				dato['fn']=  str(obj['fecha_nacimiento'])
				dato['fc']= str(obj['fecha_creacion'])
				dato['obs']= obj['observacion']
				dato['estado']= obj['estado']
				dato['user']= obj['usuario']
				dato['pass']= obj['password']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def CtaCtePeticionPendiente(request):
	nroP=0
	if request.is_ajax:
		usr= request.user.username
		C= Cajas.objects.get(id_usuario__usuario=usr)
		idCta=request.GET.get('idCtaCte')
		try:
			#if not PeticionesCtaCtes.objects.filter(idctacte=idCta,id_personal=C.id_usuario,estado='RETIRADO').exists():
			sql=PeticionesCtaCtes.objects.filter(idctacte=idCta,id_personal=C.id_usuario,estado="CONFIRMADO").values('pk')
			nroP=sql.count()
			#else:
			#	nroP=0
			 
		except:
			nroP=str(sys.exc_info()[1])
	else:
		nroP=0
	mimetype="application/json"
	return HttpResponse(nroP,mimetype)



@login_required
def ListadoSobregiros_ajax(request):
	if request.is_ajax:
		idCtaCte=request.GET.get('pk')
		data=''
		lista=[]
		try:
			consulta=list(CtaCteMovimientos.objects.filter(Q(id_ctacte=idCtaCte)&Q(sobregiroNro__gt=0)).values('pk','fechaHora','montoDeposito','montoRetiro','saldo','montoSobregiro','interesSobregiro','nroDiasSobregiro','observacionesMovimientos','comision','tabla','tipoDocumento','nroRecibo'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fechaHora']=obj['fechaHora'].strftime("%d-%m-%Y")
				dato['monto']=str(obj['montoSobregiro'])
				dato['interes']=str(obj['interesSobregiro'])
				dato['nrodias']=str(obj['nroDiasSobregiro'])
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def ListadoAutorizarCtaCtesOperador_view(request):
	try:
		usr= request.user.username
		cargo ='administrador'
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,'ListadoPeticionesCtasCtesOperador.html',{"cargo":cargo} )



@login_required
def ListadoAutorizarCtaCtesOperador_ajax(request):
	data=''
	if request.is_ajax:
		pag=request.GET.get('pg','')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20

		usr= request.user.username
		C= Cajas.objects.get(id_usuario__usuario=usr)
		try:
			lista=[]
			consulta1= list(PeticionesCtaCtes.objects.filter(id_oficina=C.id_oficina).values('id','idctacte','estado','monto','tipoMoneda','fechaHora','id_personal','saldo','esSobregiro','montoSobregiro','interesSobregiro','nroDiasSobregiro'))
			for obj in consulta1:
				dato={}
				idPers= int(obj['id_personal'])
				idCta= str(obj['idctacte'])
				consulta2=CtaCte.objects.filter(pk=idCta).values('id_cliente','idCajaDebe')
				consulta3=Cliente.objects.filter(pk=consulta2[0]['id_cliente']).values('nombre','Apellido_paterno','Apellido_materno')
				consulta4=TCajaDebe.objects.filter(pk=consulta2[0]['idCajaDebe']).values('id_oficina','id_personal')
				consulta5=Oficina.objects.filter(pk=consulta4[0]['id_oficina']).values('nombre_oficina')
				consulta6=Personal.objects.filter(pk=consulta4[0]['id_personal']).values('usuario')
				dato['id']= obj['id']
				dato['usuario']= consulta6[0]['usuario']
				dato['oficina']= consulta5[0]['nombre_oficina']
				dato['nombre']= consulta3[0]['nombre']
				dato['ap']= consulta3[0]['Apellido_paterno']
				dato['am']= consulta3[0]['Apellido_materno']
				dato['idCta']= idCta
				dato['fechaHora']= str(obj['fechaHora'].strftime("%Y-%m-%d %H:%M %p"))
				dato['estado']=obj['estado']
				dato['monto']=str(obj['monto'])
				dato['saldo']=str(obj['saldo'])
				dato['moneda']=obj['tipoMoneda']
				lista.append(dato)

			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#********************** cierres caja externa ********************
@login_required
def listaCierresGlobalPersonal_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			conf = conf_permisos_Cajas.objects.get(id_caja=C.pk,Trans_global='si')
			lo=[]
			consu= conf_oficinas_para_TransGlobal.objects.filter(id_conf=conf.pk,aux1="si").values('id_oficina')
			for o1 in consu:
				lo.append(o1['id_oficina'])
			if len(lo)>0:
				consulta = list(CajaCierre.objects.filter(id_oficina__in=lo).order_by('-pk')[0:20].values('pk','fecha','id_caja','id_oficina','totalDebeSoles','totalDebeDolares','totalHaberSoles','totalHaberDolares','observaciones','saldo_soles','saldo_dolares','saldoInicial_soles','saldoInicial_dolares','fechaDesde','fechaHasta','estado'))
				for obj in consulta:
					dato={}
					dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
					ca=Cajas.objects.get(pk=obj['id_caja'])
					dato['ofi']=ca.id_oficina.nombre_oficina
					dato['caja']=ca.nombre
					dato['pkCa']=ca.pk
					dato['pk']=obj['pk']
					dato['is']=str(obj['totalDebeSoles'])
					dato['ide']=str(obj['totalDebeDolares'])
					dato['es']=str(obj['totalHaberSoles'])
					dato['ed']=str(obj['totalHaberDolares'])
					dato['ss']=str(obj['saldo_soles'])
					dato['sd']=str(obj['saldo_dolares'])
					dato['sis']=str(obj['saldoInicial_soles'])
					dato['sid']=str(obj['saldoInicial_dolares'])
					dato['fd']=str(obj['fechaDesde'].strftime("%Y-%m-%d"))
					dato['fh']=str(obj['fechaHasta'].strftime("%Y-%m-%d"))
					dato['est']=str(obj['estado'])
					dato['obs']=obj['observaciones']
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def cierres_globales_tem_view(request):
	try:
		usr= request.user.username
		cargo =''
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,'CierresGlobal.html',{"cargo":cargo} )


@login_required
def saldoCajaGlob_ajax_view(request):
	if request.is_ajax:
		pkc = request.GET.get('pkC')
		#usr = request.user.username
		data=''
		lista=[]
		try:
			c=Cajas.objects.get(pk=pkc)
			s=SaldoDisponibleCajas.objects.get(id_caja=pkc)
			datos={}
			datos['p_nombre']=c.id_usuario.nombre
			datos['p_ap']=c.id_usuario.Apellido_paterno
			datos['p_am']=c.id_usuario.Apellido_materno
			datos['p_dni']=c.id_usuario.dni
			datos['caja']=c.nombre
			datos['saldo_soles']=normalizar(float(s.saldo_soles))
			datos['saldo_dolares']=normalizar(float(s.saldo_dolares))
			data= json.dumps(datos)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def saldoinicialGlob_ajax_view(request):
	pkc = request.GET.get('pkC')
	#usr = request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(pk=pkc)
			SI_soles=0
			SI_dolares=0
			SI_material=0
			if CajaCierre.objects.filter(id_caja=C.pk,estado="cancelado").exists():
				Uc= CajaCierre.objects.filter(id_caja=C.pk,estado="cerrado").latest("fechaHasta")
				SI_soles=Uc.saldo_soles
				SI_dolares=Uc.saldo_dolares
				
			else:
				Sin=SaldoInicialCaja.objects.get(id_caja=C.pk)
				SI_soles=Sin.saldo_soles
				SI_dolares=Sin.saldo_dolares
			dato={}
			dato['sis']=str(SI_soles)
			dato['sid']= str(SI_dolares)
			data= json.dumps(dato)
		except:
			data= 'error en consulta'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def validarCierreGlob_ajax_view(request):
	if request.is_ajax:
		pkc = request.GET.get('pkC')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		data=''
		try:
			if F1=='':
				F1=datetime.date.today()
			C= Cajas.objects.get(pk=pkc)
			if F2!='':
				if F2 !=F1:
					q=CajaCierre.objects.filter(Q(fechaHasta__gte=F1,id_caja=C.pk,estado="cerrado")|Q(fechaHasta__gte=F2,id_caja=C.pk,estado="cerrado"))
				else:
					q=CajaCierre.objects.filter(Q(fechaHasta__gte=F1,id_caja=C.pk,estado="cerrado"))
			else:
				q=CajaCierre.objects.filter(Q(fechaHasta__gte=F1,id_caja=C.pk,estado="cerrado"))
			if q.count()>0:
				data='fail'
			else:
				data='exito'
		except:
			data='fail'
	else:
		data='fail'
	mimetype="text"
	return HttpResponse(data,mimetype)

#config caja global
@login_required
@permission_required('Main.add_oficina')
def ver_cajas_TransfGlobal_ajax_view(request):
	pkConf = request.GET.get('pkConf','')
	pkOf = request.GET.get('idOf','')
	if request.is_ajax:
		lista=[]
		try:
			ofic=list(Cajas.objects.filter(id_oficina=pkOf).values('pk','nombre','id_usuario'))
			for obj in ofic:
				u= Personal.objects.get(pk=obj['id_usuario'])
				dato={}
				dato['pk']=obj['pk']
				dato['ca']=obj['nombre']
				dato['op']=u.nombre + ' ' +u.Apellido_paterno+' '+u.Apellido_materno
				dato['trG']= ''
				if conf_oficinas_para_TransGlobal.objects.filter(id_conf=pkConf,id_oficina=pkOf,aux2=obj['pk'],aux1='si').exists():
					dato['trG']= 'si'
				lista.append(dato)
			data= json.dumps(lista)	
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def cajas_tg_ori_ajax_view(request):
	if request.is_ajax:
		idOf=request.GET.get('idO')
		usr= request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			conf = conf_permisos_Cajas.objects.get(id_caja=C.pk,Trans_global='si')
			lo=[]
			consu= conf_oficinas_para_TransGlobal.objects.filter(id_conf=conf.pk,id_oficina=idOf,aux1="si").values('aux2')
			for c1 in consu:
				if c1['aux2']!=None and c1['aux2']!='':
					cAux= Cajas.objects.get(pk=c1['aux2'])
					dato={}
					dato['pk']= cAux.pk
					dato['nombre']= cAux.nombre+'/ '+cAux.id_usuario.nombre+ ' '+cAux.id_usuario.Apellido_paterno
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#--------- autorizaciones retiro de intercambios ------------
@login_required
@permission_required('Main.add_oficina')
def Autorizaciones_ret_in_view(request):
	return render(request,'ListadoAutInt.html' )

@login_required
def Autorizaciones_ret_in_personal_view(request):
	return render(request,'AutorizarRetiroInt.html' )

@login_required
def autorizaciones_inter_ajax_view(request):#consulta autorizaciones Retiro Transferencia
	if request.is_ajax:
		try:
			consulta=list(soli_ret_intercambios_dir.objects.all().order_by('-pk').values('pk','fecha','id_intercambio_dir','codigo_aut','estado','id_user_solicit','id_caja_solicit','usuario_autorizador','id_usuario_aut','fecha_aut','fecha_ret','observaciones'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['id_st']= obj['id_intercambio_dir']
				dato['cod']=obj['codigo_aut']
				dato['estado']=obj['estado']
				per= Personal.objects.get(pk=obj['id_user_solicit'])
				Ca= Cajas.objects.get(pk=obj['id_caja_solicit'])
				dato['soli']= per.nombre.capitalize() +' '+ per.Apellido_paterno.capitalize()+' '+per.Apellido_materno.capitalize()
				dato['caja']= Ca.nombre
				fa=""
				if obj['fecha_aut'] !=None:
					fa= str(obj['fecha_aut'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_aut']=fa
				fr=""
				if obj['fecha_ret'] !=None:
					fr= str(obj['fecha_ret'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_ret']=fr
				dato['obs']=obj['observaciones']
				dato['user_aut']=''
				dato['cargo_aut']=''
				if obj['usuario_autorizador']=='Gerente':
					g= Gerente.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=g.nombre.capitalize() +' '+g.Apellido_paterno.capitalize()+' '+g.Apellido_materno.capitalize()
					dato['cargo_aut']='Gerente'
				elif obj['usuario_autorizador']=='Personal':
					p= Personal.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=p.nombre.capitalize() +' '+p.Apellido_paterno.capitalize()+' '+p.Apellido_materno.capitalize()
					dato['cargo_aut']='Personal'

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='Error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
#------------------------------------------------------------


@login_required
def comisionesFechas_ajax_view(request):

	if request.is_ajax: 
		F1=request.POST.get('F1','')
		F2=request.POST.get('F2','')
		data=''
		promedio_compra=0
				
		saldoSoles=0
		saldoDolares=0
		saldoMaterial=0
		solesMaterial=0

		solesHabilitacionesMaterial=0
		saldoCtaCteMaterial=0

		totalSTXPSoles=0
		totalSTXPDolares=0

		totalSTCreadasSoles=0
		totalSTCreadasDolares=0


		totalSTComisionSoles=0
		totalSTComisionDolares=0

		totalEDMCSoles=0
		totalIDMVSoles=0

		totalEDMCDolares=0
		totalIDMVDolares=0

		totalMaterialComprado=0
		totalMaterialVendido=0

		saldoCtaCteDebemosDolares=0
		saldoCtaCteDebemosSoles=0
		saldoCtaCteNosDebenDolares=0
		saldoCtaCteNosDebenSoles=0

		habilitacionesDolares=0
		habilitacionesSoles=0
		habilitacionesMaterial=0

		habilitacionesDolaresO=0
		habilitacionesSolesO=0
		habilitacionesMaterialO=0


		CauxCtaCteDolares=0
		CauxCtaCteSoles=0
		CauxCtaCteDolaresN=0
		CauxCtaCteSolesN=0

		CauxCtaCteMaterial=0
		CauxCtaCteMaterialN=0

		saldoSolesReal=0
		saldoDolaresReal=0
		saldoMaterialReal=0

		totalHaberSTSoles=0
		totalHaberSTDolares=0

		totalHaberSTTotalSoles=0
		totalHaberSTTotalDolares=0

		totalHaberOtrosSoles=0
		totalHaberOtrosDolares=0

		totalHaberOtrosSolesTotal=0
		totalHaberOtrosDolaresTotal=0

		totalSTComisionSolesTotal=0
		totalSTComisionDolaresTotal=0

		capital=0

		if F1!='' and F1!=None and F2!='' and F2!=None:
			try:
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')

				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)

				promedio_compraOro=TCompraMaterial.objects.filter(Precio_gramo__gt=0,fecha__range=(fhoramin,fhoramax)).aggregate(Avg('Precio_gramo'))

				if promedio_compraOro['Precio_gramo__avg']==None:
					promedio_compra=0
				else:
					promedio_compra=promedio_compraOro['Precio_gramo__avg']
				

				haberST= TCajaHaber.objects.filter(tablaRelacional__in=['TtransferenciaExtorno','PagoTransferencia'],fecha__range=(fhoramin,fhoramax)).values('pk','cantidadDinero')
				HaberSolesST= haberST.filter(moneda='soles').aggregate(Sum('cantidadDinero'))
				HaberDolaresST= haberST.filter(moneda='dolares').aggregate(Sum('cantidadDinero'))
				
				#egresos otros
				haberOtros= TCajaHaber.objects.filter(tablaRelacional__in=['Egreso','ComisionEnvio'],fecha__range=(fhoramin,fhoramax)).values('pk','cantidadDinero')
				HaberSolesOtros= haberOtros.filter(moneda='soles').aggregate(Sum('cantidadDinero'))
				HaberDolaresOtros= haberOtros.filter(moneda='dolares').aggregate(Sum('cantidadDinero'))


				haberSTTotal= TCajaHaber.objects.filter(tablaRelacional__in=['TtransferenciaExtorno','PagoTransferencia']).values('pk','cantidadDinero')
				HaberSolesSTTotal= haberSTTotal.filter(moneda='soles').aggregate(Sum('cantidadDinero'))
				HaberDolaresSTTotal= haberSTTotal.filter(moneda='dolares').aggregate(Sum('cantidadDinero'))
				
				haberOtrosTotal= TCajaHaber.objects.filter(tablaRelacional__in=['Egreso','ComisionEnvio']).values('pk','cantidadDinero')
				HaberSolesOtrosTotal= haberOtrosTotal.filter(moneda='soles').aggregate(Sum('cantidadDinero'))
				HaberDolaresOtrosTotal= haberOtrosTotal.filter(moneda='dolares').aggregate(Sum('cantidadDinero'))			


				if HaberSolesSTTotal['cantidadDinero__sum'] == None:
					totalHaberSTTotalSoles=0
				else:
					totalHaberSTTotalSoles=ConvertirDecimal(HaberSolesSTTotal['cantidadDinero__sum'])

				if HaberDolaresSTTotal['cantidadDinero__sum']==None:
					totalHaberSTTotalDolares=0
				else:
					totalHaberSTTotalDolares=ConvertirDecimal(HaberDolaresSTTotal['cantidadDinero__sum'])

				if HaberSolesOtrosTotal['cantidadDinero__sum'] == None:
					totalHaberOtrosSolesTotal=0
				else:
					totalHaberOtrosSolesTotal=ConvertirDecimal(HaberSolesOtrosTotal['cantidadDinero__sum'])

				if HaberDolaresOtrosTotal['cantidadDinero__sum']==None:
					totalHaberOtrosDolaresTotal=0
				else:
					totalHaberOtrosDolaresTotal=ConvertirDecimal(HaberDolaresOtrosTotal['cantidadDinero__sum'])



				if HaberSolesST['cantidadDinero__sum'] == None:
					totalHaberSTSoles=0
				else:
					totalHaberSTSoles=ConvertirDecimal(HaberSolesST['cantidadDinero__sum'])

				if HaberDolaresST['cantidadDinero__sum']==None:
					totalHaberSTDolares=0
				else:
					totalHaberSTDolares=ConvertirDecimal(HaberDolaresST['cantidadDinero__sum'])

				if HaberSolesOtros['cantidadDinero__sum'] == None:
					totalHaberOtrosSoles=0
				else:
					totalHaberOtrosSoles=ConvertirDecimal(HaberSolesOtros['cantidadDinero__sum'])

				if HaberDolaresOtros['cantidadDinero__sum']==None:
					totalHaberOtrosDolares=0
				else:
					totalHaberOtrosDolares=ConvertirDecimal(HaberDolaresOtros['cantidadDinero__sum'])




				#transferencias por pagar
				ST1=SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__moneda='soles',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('idCajaDebe__cantidadDinero'))
				ST2=SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__moneda='dolares',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('idCajaDebe__cantidadDinero'))
				
				STC1=SolicitudTransferencia.objects.filter(idCajaDebe__moneda='soles',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('idCajaDebe__cantidadDinero'))
				STC2=SolicitudTransferencia.objects.filter(idCajaDebe__moneda='dolares',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('idCajaDebe__cantidadDinero'))

				STComisionSoles=SolicitudTransferencia.objects.filter(idCajaDebe__moneda='soles',idCajaDebe__fecha__range=(fhoramin,fhoramax)).exclude(idCajaDebe__aux1='todo').aggregate(Sum('comision'))
				STComisionDolares=SolicitudTransferencia.objects.filter(idCajaDebe__moneda='dolares',idCajaDebe__fecha__range=(fhoramin,fhoramax)).exclude(idCajaDebe__aux1='todo').aggregate(Sum('comision'))
				
				STComisionSolesTotal=SolicitudTransferencia.objects.filter(idCajaDebe__moneda='soles').exclude(idCajaDebe__aux1='todo').aggregate(Sum('comision'))
				STComisionDolaresTotal=SolicitudTransferencia.objects.filter(idCajaDebe__moneda='dolares').exclude(idCajaDebe__aux1='todo').aggregate(Sum('comision'))
			


				if ST1['idCajaDebe__cantidadDinero__sum']==None:
					totalSTXPSoles=0
				else:
					totalSTXPSoles=ST1['idCajaDebe__cantidadDinero__sum']

				if STC1['idCajaDebe__cantidadDinero__sum']==None:
					totalSTCreadasSoles=0
				else:
					totalSTCreadasSoles=STC1['idCajaDebe__cantidadDinero__sum']


				if STC2['idCajaDebe__cantidadDinero__sum']==None:
					totalSTCreadasDolares=0
				else:
					totalSTCreadasDolares=STC2['idCajaDebe__cantidadDinero__sum']

				if ST2['idCajaDebe__cantidadDinero__sum']==None:
					totalSTXPDolares=0
				else:
					totalSTXPDolares=ST2['idCajaDebe__cantidadDinero__sum']


				if STComisionSoles['comision__sum']==None:
					totalSTComisionSoles=0
				else:
					totalSTComisionSoles=STComisionSoles['comision__sum']

				if STComisionDolares['comision__sum']==None:
					totalSTComisionDolares=0
				else:
					totalSTComisionDolares=STComisionDolares['comision__sum']		


				if STComisionSolesTotal['comision__sum']==None:
					totalSTComisionSolesTotal=0
				else:
					totalSTComisionSolesTotal=STComisionSolesTotal['comision__sum']

				if STComisionDolaresTotal['comision__sum']==None:
					totalSTComisionDolaresTotal=0
				else:
					totalSTComisionDolaresTotal=STComisionDolaresTotal['comision__sum']		


				#suma de material comprado hasta la fecha
				materialComprado=TCompraMaterial.objects.filter(fecha__range=(fhoramin,fhoramax)).aggregate(Sum('Peso_gramos'))

				#suma de material vendido hasta la fecha
				materialVendido=TVentaMaterial.objects.filter(fecha__range=(fhoramin,fhoramax)).aggregate(Sum('Peso_gramos'))


				if materialComprado['Peso_gramos__sum']==None:
					totalMaterialComprado=0
				else:
					totalMaterialComprado=materialComprado['Peso_gramos__sum']

				if materialVendido['Peso_gramos__sum']==None:
					totalMaterialVendido=0
				else:
					totalMaterialVendido=materialVendido['Peso_gramos__sum']


				dineroEgresadoMaterialComprado=list(TCompraMaterial.objects.filter(fecha__range=(fhoramin,fhoramax)).values('idCajaHaber'))	
				dineroIngresadoMaterialVendido=list(TVentaMaterial.objects.filter(fecha__range=(fhoramin,fhoramax)).all().values('idCajaDebe'))	

				for objEgreso in dineroEgresadoMaterialComprado:
					OCajaHaber=TCajaHaber.objects.get(pk=objEgreso['idCajaHaber'])
					if OCajaHaber.moneda=='soles':
						totalEDMCSoles=totalEDMCSoles+ConvertirDecimal(OCajaHaber.cantidadDinero)
					else:
						totalEDMCDolares=totalEDMCDolares+ConvertirDecimal(OCajaHaber.cantidadDinero)



				for objIngreso in dineroIngresadoMaterialVendido:
					OCajaDebe=TCajaDebe.objects.get(pk=objIngreso['idCajaDebe'])
					if OCajaDebe.moneda=='soles':
						totalIDMVSoles=totalIDMVSoles+ConvertirDecimal(OCajaDebe.cantidadDinero)
					else:
						totalIDMVDolares=totalIDMVDolares+ConvertirDecimal(OCajaDebe.cantidadDinero)




				# suma de todas las habilitaciones pendientes de recepcion

				habilitacionesDolaresOficina=TCajaHaber.objects.filter(fecha__range=(fhoramin,fhoramax),moneda='dolares',estadoTransaccion='enviado',tablaRelacional__in=['EnvioOficinaOficina','EnvioCajaCaja','DepositoCaja']).aggregate(Sum('cantidadDinero'))
				habilitacionesSolesOficina=TCajaHaber.objects.filter(fecha__range=(fhoramin,fhoramax),moneda='soles',estadoTransaccion='enviado',tablaRelacional__in=['EnvioOficinaOficina','EnvioCajaCaja','DepositoCaja']).aggregate(Sum('cantidadDinero'))
				habilitacionesMaterialOficina=TCajaMaterialHaber.objects.filter(fecha__range=(fhoramin,fhoramax),estadoTransaccion='enviado',tablaRelacional__in=['EnvioMaterialOficinaOficina','EnvioMaterialCajaCaja','DepositoCajaMaterial']).aggregate(Sum('pesoGramos'))		


				if habilitacionesDolaresOficina['cantidadDinero__sum']==None:
					habilitacionesDolaresO=0
				else:
					habilitacionesDolaresO=habilitacionesDolaresOficina['cantidadDinero__sum']

				if habilitacionesSolesOficina['cantidadDinero__sum']==None:
					habilitacionesSolesO=0
				else:
					habilitacionesSolesO=habilitacionesSolesOficina['cantidadDinero__sum']

				if habilitacionesMaterialOficina['pesoGramos__sum']==None:
					habilitacionesMaterialO=0
				else:
					habilitacionesMaterialO=habilitacionesMaterialOficina['pesoGramos__sum']


				solesHabilitacionesMaterial=promedio_compra*habilitacionesMaterialO

				#suma de montos positivos de las cuentas corrientes 


				consulta=list(CtaCte.objects.exclude(Q(pk=1)|Q(pk=13)).values('idCajaDebe','saldo'))
				for obj in consulta:
					
					OCajaDebe=TCajaDebe.objects.get(pk=obj['idCajaDebe'])

					if OCajaDebe.moneda=='soles':
						if ConvertirDecimal(obj['saldo'])>0:
							saldoCtaCteDebemosSoles=saldoCtaCteDebemosSoles+ConvertirDecimal(obj['saldo'])
						else:
							saldoCtaCteNosDebenSoles=saldoCtaCteNosDebenSoles+ConvertirDecimal(obj['saldo'])

					else:
						if ConvertirDecimal(obj['saldo'])>0:
							saldoCtaCteDebemosDolares=saldoCtaCteDebemosDolares+ConvertirDecimal(obj['saldo'])
						else:
							saldoCtaCteNosDebenDolares=saldoCtaCteNosDebenDolares+ConvertirDecimal(obj['saldo'])
			 

				#suma de gramos positivos de las cuentas material
				CtaCteMaterialP=CtaCteMaterial.objects.filter(idCajaDebeMaterial__fecha__range=(fhoramin,fhoramax),saldo__gt=0).aggregate(Sum('saldo')) 

				#suma de gramos negativos de las cuentas material
				CtaCteMaterialN=CtaCteMaterial.objects.filter(idCajaDebeMaterial__fecha__range=(fhoramin,fhoramax),saldo__lt=0).aggregate(Sum('saldo')) 


				if CtaCteMaterialP['saldo__sum']==None:
					CauxCtaCteMaterial=0
				else:
					CauxCtaCteMaterial=CtaCteMaterialP['saldo__sum']

				if CtaCteMaterialN['saldo__sum']==None:
					CauxCtaCteMaterialN=0
				else:
					CauxCtaCteMaterialN=CtaCteMaterialN['saldo__sum']



				saldoSolesTotal=SaldoDisponibleCajas.objects.all().aggregate(Sum('saldo_soles'))
				saldoDolaresTotal=SaldoDisponibleCajas.objects.all().aggregate(Sum('saldo_dolares'))
				saldoMaterialTotal=SaldoDisponibleCajaMaterial.objects.all().aggregate(Sum('saldo_Material'))

				if saldoMaterialTotal['saldo_Material__sum']==None:
					saldoMaterial=0
				else:
					saldoMaterial=saldoMaterialTotal['saldo_Material__sum']

				solesMaterial=promedio_compra*saldoMaterial

				if saldoSolesTotal['saldo_soles__sum']==None:
					saldoSoles=0
				else:
					saldoSoles=saldoSolesTotal['saldo_soles__sum']

				if saldoDolaresTotal['saldo_dolares__sum']==None:
					saldoDolares=0
				else:
					saldoDolares=saldoDolaresTotal['saldo_dolares__sum']

				OCtaCteC1=CtaCte.objects.get(pk=1)
				ODebe=TCajaDebe.objects.get(pk=OCtaCteC1.idCajaDebe.pk)
				capital=str(OCtaCteC1.saldo)

				saldoSolesReal=ConvertirDecimal(totalSTComisionSolesTotal)+ConvertirDecimal(saldoCtaCteNosDebenSoles) - ConvertirDecimal(totalHaberOtrosSolesTotal)
				saldoDolaresReal=ConvertirDecimal(totalSTComisionDolaresTotal)+ConvertirDecimal(saldoCtaCteNosDebenDolares) - ConvertirDecimal(totalHaberOtrosDolaresTotal)
				
				if ODebe.moneda=='soles':
					saldoSolesReal=saldoSolesReal+ConvertirDecimal(OCtaCteC1.saldo)
				else:
					saldoDolaresReal=saldoDolaresReal+ConvertirDecimal(OCtaCteC1.saldo)

				saldoMaterialReal=ConvertirDecimal(saldoMaterial) - ConvertirDecimal(CauxCtaCteMaterial) 

			except:
				data='fail'+ str(sys.exc_info()[1])
		else:
			data='Seleccione bien las fechas'
	else:
		data='fail'+ str(sys.exc_info()[1])
	return render(request,"evolucion.html",{"F1":F1,"F2":F2,"capital":capital,"promedio":promedio_compra,"habilitacionesDolares":habilitacionesDolaresO,"habilitacionesSoles":habilitacionesSolesO,"habilitacionesMaterial":habilitacionesMaterialO,'solesHabilitacionesMaterial':solesHabilitacionesMaterial,"data":data,"debemosSolesCtaCte":saldoCtaCteDebemosSoles,"nosdebenSolesCtaCte":saldoCtaCteNosDebenSoles,"debemosDolaresCtaCte":saldoCtaCteDebemosDolares,"nosdebenDolaresCtaCte":saldoCtaCteNosDebenDolares,"debemosMaterialCtaCte":CauxCtaCteMaterial,"nosdebenMaterialCtaCte":CauxCtaCteMaterialN,"saldoSoles":saldoSoles,"saldoDolares":saldoDolares,"saldoMaterial":saldoMaterial,"solesMaterial":solesMaterial,"STXPSoles":totalSTXPSoles,"STXPDolares":totalSTXPDolares,"STCSoles":totalSTCreadasSoles,"STCDolares":totalSTCreadasDolares,"haberSTSoles":totalHaberSTSoles,"haberSTDolares":totalHaberSTDolares,"haberOtrosSoles":totalHaberOtrosSoles,"haberOtrosDolares":totalHaberOtrosDolares,"ComisionSoles":totalSTComisionSoles,"ComisionDolares":totalSTComisionDolares,"materialComprado":totalMaterialComprado,"materialVendido":totalMaterialVendido,"totalEgresoMS":totalEDMCSoles,"totalEgresoMD":totalEDMCDolares,"totalIngresoMS":totalIDMVSoles,"totalIngresoMD":totalIDMVDolares,"saldoSolesReal":saldoSolesReal,"saldoDolaresReal":saldoDolaresReal,"saldoMaterialReal":saldoMaterialReal} )




	'''if request.is_ajax:
		try:
			F1=request.GET.get('F1','')
			F2=request.GET.get('F2','')
			dato={}
			error=''
			estado=-1

			if F1!='' and F1!=None and F2!='' and F2!=None:

				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')

				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)


				totalSTXPSoles=0
				totalSTXPDolares=0

				totalSTComisionSoles=0
				totalSTComisionDolares=0
	 

				#transferencias por pagar
				ST1=SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__moneda='soles',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('idCajaDebe__cantidadDinero'))
				ST2=SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__moneda='dolares',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('idCajaDebe__cantidadDinero'))
				
				STComisionSoles=SolicitudTransferencia.objects.exclude(idCajaDebe__estadoTransaccion='extornado').filter(idCajaDebe__moneda='soles',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('comision'))
				STComisionDolares=SolicitudTransferencia.objects.exclude(idCajaDebe__estadoTransaccion='extornado').filter(idCajaDebe__moneda='dolares',idCajaDebe__fecha__range=(fhoramin,fhoramax)).aggregate(Sum('comision'))
				
				if ST1['idCajaDebe__cantidadDinero__sum']==None:
					totalSTXPSoles=0
				else:
					totalSTXPSoles=ST1['idCajaDebe__cantidadDinero__sum']


				if ST2['idCajaDebe__cantidadDinero__sum']==None:
					totalSTXPDolares=0
				else:
					totalSTXPDolares=ST2['idCajaDebe__cantidadDinero__sum']


				if STComisionSoles['comision__sum']==None:
					totalSTComisionSoles=0
				else:
					totalSTComisionSoles=STComisionSoles['comision__sum']

				if STComisionDolares['comision__sum']==None:
					totalSTComisionDolares=0
				else:
					totalSTComisionDolares=STComisionDolares['comision__sum']

				dato['totalSTXPSoles']= str(totalSTXPSoles)
				dato['totalSTXPDolares']= str(totalSTXPDolares)
				dato['totalSTComisionSoles']= str(totalSTComisionSoles)
				dato['totalSTComisionDolares']=str(totalSTComisionDolares)
				estado=1; 

			else:
				estado=-1;
				error='Seleccione bien las fechas'

		except:
			estado-1;
			error='fail'+ str(sys.exc_info()[1])
	else:
		estado=-1;
		error='fail'+ str(sys.exc_info()[1])

	data= json.dumps({'estado':str(estado),'resultado':dato,'error':error})
	mimetype="application/json"
	return HttpResponse(data,mimetype)'''

@login_required
@permission_required('Main.add_oficina')
def oficinas_asociado_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(asociado.objects.all().values('pk','fecha','nombre','id_oficina','id_caja','observaciones'))
			for obj in consulta:
				c= Cajas.objects.get(pk=obj['id_caja'])
				dato={}
				dato['pk']=obj['pk']
				dato['nombre']=obj['nombre']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['caja']=c.nombre
				dato['usu']=c.id_usuario.nombre +' '+c.id_usuario.Apellido_paterno+' '+c.id_usuario.Apellido_materno
				dato['ofi']=c.id_oficina.nombre_oficina
				dato['obs']= obj['observaciones']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def oficinas_no_asociado_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
			for obj in consulta:
				if not asociado.objects.filter(id_oficina=obj['pk']).exists():
					lista.append(obj)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def cajas_no_asociado_ajax_view(request):
	idO=request.GET.get('idOfi')
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(Cajas.objects.filter(id_oficina=idO).values('pk','nombre'))
			for obj in consulta:
				if not oficinas_por_asociado.objects.filter(id_caja=obj['pk'],estado='activo').exists():
					c= Cajas.objects.get(pk=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['nombre']=obj['nombre']
					dato['op']=c.id_usuario.nombre +' '+ c.id_usuario.Apellido_paterno
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def ver_cajas_asociado_ajax_view(request):
	pkAsoc = request.GET.get('pkAsoc','')
	pkO = request.GET.get('pkO','')
	if request.is_ajax:
		lista=[]
		try:
			consulta=list(Cajas.objects.filter(id_oficina=pkO).values('pk'))
			for obj in consulta:
				if not asociado.objects.filter(id_caja=obj['pk']).exists():
					c= Cajas.objects.get(pk=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['ca']=c.nombre
					dato['op']=c.id_usuario.nombre +' '+c.id_usuario.Apellido_paterno
					dato['aso']= ''
					if oficinas_por_asociado.objects.filter(id_asociado=pkAsoc,id_caja=obj['pk'],estado='activo').exists():
						dato['aso']= 'si'
					lista.append(dato)
			data= json.dumps(lista)	
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Deuda_Oficinas_asociado_view(request):
	try:
		usr= request.user.username
		cargo =''
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,"DeudaOficinasAsociado.html",{"cargo":cargo} )



@login_required
@permission_required('Main.add_oficina')
def CajasBases_ajax(request):
	if request.is_ajax:
		idO = request.GET.get('idOfi')
		idC = request.GET.get('idCa')
		data=''
		lista=[]
		try:
			if TConfiguracionSistema.objects.filter(id_oficina=idO,id_caja=idC).exists():
				OS = TConfiguracionSistema.objects.get(id_oficina=idO,id_caja=idC)
				consulta=list(Base_Ext.objects.filter(id_confSis=OS.pk).values('pk','nombre_base'))
				for obj in consulta:
					dato={}
					dato['b_id']=obj['pk']
					dato['b_nombre']=obj['nombre_base']
					lista.append(dato)

		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'+str(sys.exc_info()[1])
	data= json.dumps(lista)
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
@permission_required('Main.add_oficina')
def ver_oficinas_cajas_copiar(request):
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
			for obj in consulta:
				dato={}
				dato['pkO']=obj['pk']
				dato['nombre_o']=obj['nombre_oficina']
				consulta1=list(Cajas.objects.filter(id_oficina=obj['pk']).values('pk','nombre'))
				listaC=[]
				for obj1 in consulta1:
					dato1={}
					dato1['pkC']=obj1['pk']
					dato1['nombre_c']=obj1['nombre']
					'''consulta2=list(TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],id_caja=obj1['pk'],conf2='externa').values('pk','id_caja__nombre'))
					listaB=[]
					for obj2 in consulta2:
						consulta3=list(Base_Ext.objects.filter(id_confSis=obj2['pk']).values('pk','nombre_base'))
						for obj3 in consulta3:
							dato2={}
							dato2['pkB']=obj3['pk']
							dato2['nombre_b']=obj3['nombre_base']
							listaB.append(dato2)	
					dato1['listaBases']=listaB'''	
					listaC.append(dato1)

				consulta2=list(Cajas.objects.filter(id_oficina=obj['pk']).values('pk','nombre'))
				listaB=[]
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],id_caja=consulta2[0]['pk'],conf2='externa').exists():
					consulta3=list(TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],id_caja=consulta2[0]['pk'],conf2='externa').values('pk','id_caja__nombre'))
					consulta4=list(Base_Ext.objects.filter(id_confSis=consulta3[0]['pk']).values('pk','nombre_base'))
					for obj4 in consulta4:
							dato2={}
							dato2['pkB']=obj4['pk']
							dato2['nombre_b']=obj4['nombre_base']
							listaB.append(dato2)

				dato['listaCajas']=listaC
				dato['listaBases']=listaB
				lista.append(dato)


				'''consulta1=list(TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk','id_caja__nombre'))
				listaB=[]
				for obj1 in consulta1:
					dato1={}
					OBE=Base_Ext.objects.get(id_confSis=obj1['pk'])
					dato1['pkB']=OBE.pk
					dato1['nombre_b']=OBE.nombre_base
					listaB.append(dato1)
				dato['listaBases']=listaB
				lista.append(dato)'''
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def ver_comisiones_guardadas_subbase(request):
	if request.is_ajax:
		idBaseO=request.GET.get('idBaseO')
		idCaja=request.GET.get('idCaja')
		idBaseD=request.GET.get('idBaseD')
		data=''
		lista=[]
		try:
			if idBaseO!='' and idBaseO!=None and idBaseO!='null':
				conf= ConfiguracionExtra_caja.objects.get(id_caja=idCaja)
				consulta=list(Configuracion_comision.objects.filter(id_config=conf.pk,tipo='subbase',base_ori=idBaseO,base_des=idBaseD).values('pk','montomin','montomax','comision'))
				for obj in consulta:
					dato={}
					dato['pk']=obj['pk']
					dato['montomin']=str(obj['montomin'])
					dato['montomax']=str(obj['montomax'])
					dato['comision']=str(obj['comision'])
					lista.append(dato)
				data= json.dumps(lista)
			else:
				conf= ConfiguracionExtra_caja.objects.get(id_caja=idCaja)
				consulta=list(Configuracion_comision.objects.filter(id_config=conf.pk,tipo='subbase',base_des=idBaseD).exclude(base_ori__isnull=False).values('pk','montomin','montomax','comision'))
				for obj in consulta:
					dato={}
					dato['pk']=obj['pk']
					dato['montomin']=str(obj['montomin'])
					dato['montomax']=str(obj['montomax'])
					dato['comision']=str(obj['comision'])
					lista.append(dato)
				data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
@permission_required('Main.add_oficina')
def CajasBases_ajax(request):
	if request.is_ajax:
		idO = request.GET.get('idOfi')
		idC = request.GET.get('idCa')
		data=''
		lista=[]
		try:
			if TConfiguracionSistema.objects.filter(id_oficina=idO,id_caja=idC).exists():
				OS = TConfiguracionSistema.objects.get(id_oficina=idO,id_caja=idC)
				consulta=list(Base_Ext.objects.filter(id_confSis=OS.pk).values('pk','nombre_base'))
				for obj in consulta:
					dato={}
					dato['b_id']=obj['pk']
					dato['b_nombre']=obj['nombre_base']
					lista.append(dato)

		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'+str(sys.exc_info()[1])
	data= json.dumps(lista)
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def saldo_disponible_global_ajax_view(request):
	idO=request.GET.get('idO')
	idC=request.GET.get('idC','')
	if request.is_ajax:
		data=''
		try:
			C=None
			est=''
			msj=''
			ss=''
			sd=''
			mt=''
			if idC =='' or idC==None:
				if idO[0]=='b':
					bx=Base_Ext.objects.get(pk=idO[1:])
					idO= bx.id_confSis.id_oficina.pk
				o= Oficina.objects.get(pk=idO)
				C= Cajas.objects.get(id_usuario=o.id_usuario.pk)
			else:
				C= Cajas.objects.get(pk=idC)
			if oficinas_por_asociado.objects.filter(id_caja=C.pk,estado='activo').exists() or asociado.objects.filter(id_caja=C.pk).exists():
				Asoc=None
				asoc=None
				s1=None
				TM=None
				if asociado.objects.filter(id_caja=C.pk).exists():
					Asoc=asociado.objects.get(id_caja=C.pk)
					asoc= oficinas_por_asociado.objects.filter(id_asociado=Asoc.pk,estado='activo').values('pk','id_caja')
					s1= SaldoDisponibleCajas.objects.get(id_caja=Asoc.id_caja.pk)
					TM= ConfiguracionExtra_caja.objects.get(id_caja=Asoc.id_caja.pk)
				else:
					ofiAsoc=oficinas_por_asociado.objects.get(id_caja=C.pk,estado='activo')
					asoc= oficinas_por_asociado.objects.filter(id_asociado=ofiAsoc.id_asociado.pk,estado='activo').values('pk','id_caja')
					s1= SaldoDisponibleCajas.objects.get(id_caja=ofiAsoc.id_asociado.id_caja.pk)
					TM= ConfiguracionExtra_caja.objects.get(id_caja=ofiAsoc.id_asociado.id_caja.pk)
				saldos = float(s1.saldo_soles)
				saldod = float(s1.saldo_dolares)
				for obj in asoc:
					s= SaldoDisponibleCajas.objects.get(id_caja=obj['id_caja'])
					saldos= saldos +float(s.saldo_soles)
					saldod= saldod +float(s.saldo_dolares)
				
				ss=saldos
				sd=saldod
				mt=str(TM.monto_tope)
				if (saldos > float(TM.monto_tope)) or (saldod>float(TM.monto_tope)):
					est='danger'
					msj='ESTE ASOCIADO YA PASO EL MONTO TOPE  EN TRANSFERENCIAS.'
				elif (saldos >= (float(TM.monto_tope)-2000)) or (saldod >= (float(TM.monto_tope)-2000)):
					est='warning'
					msj='ESTE ASOCIADO ESTA CERCA DE ALCANZAR EL MONTO TOPE EN TRANSFERENCIAS'
				else:
					est='success'
					msj='ASOCIADO'
			else:
				TM= ConfiguracionExtra_caja.objects.get(id_caja=C.pk)
				S= SaldoDisponibleCajas.objects.get(id_caja=C.pk)
				ss=str(S.saldo_soles)
				sd=str(S.saldo_dolares)
				mt=str(TM.monto_tope)
				if (float(S.saldo_soles) > float(TM.monto_tope)) or (float(S.saldo_dolares)>float(TM.monto_tope)):
					est='danger'
					msj='ESTA CAJA YA PASO EL MONTO TOPE  EN TRANSFERENCIAS.'
				elif (float(S.saldo_soles) >= (float(TM.monto_tope)-2000)) or (float(S.saldo_dolares) >= (float(TM.monto_tope)-2000)):
					est='warning'
					msj='ESTA CAJA ESTA CERCA DE ALCANZAR EL MONTO TOPE EN TRANSFERENCIAS'
				else:
					est='success'
			dato={'e':est,'me':msj,'ss':ss,'sd':sd,'mt':mt}
			data= json.dumps(dato)
		except:
			data='error en consulta '+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def oficinas_asociados1_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		try:
			consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
			for obj in consulta:
				lista.append(obj)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def ver_cajas_asociado_completo_ajax_view(request):
	pkAsoc = request.GET.get('pkAsoc','')
	if request.is_ajax:
		lista=[]
		try:
			consulta=list(oficinas_por_asociado.objects.filter(id_asociado=pkAsoc,estado='activo').values('pk','id_caja'))
			for obj in consulta:
				c= Cajas.objects.get(pk=obj['id_caja'])
				dato={}
				dato['of']=c.id_oficina.nombre_oficina
				dato['ca']=c.nombre
				dato['op']=c.id_usuario.nombre +' '+c.id_usuario.Apellido_paterno
				lista.append(dato)
			data= json.dumps(lista)	
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def saldo_adelando_inter_ajax_view(request):
	pkI = request.GET.get('idI','')# id intercambio
	dato={}
	if request.is_ajax:
		try:
			if PagoAdelantoIntercambio.objects.filter(id_intercambio=pkI).exists():
				ui=PagoAdelantoIntercambio.objects.filter(id_intercambio=pkI).latest("pk")
				dato={'exito':'exito','saldo':float(ui.saldo)}
			else:
				it=Intercambio.objects.get(pk=pkI)
				oc=0
				if it.monto_conceptos != None and it.monto_conceptos !='':
					oc=float(it.monto_conceptos)
				monto=float(it.idCajaDebe.cantidadDinero)-float(it.comision)-oc
				dato={'exito':'exito','saldo':monto}
			
		except:
			dato={'exito':str(sys.exc_info()[1])};
		data= json.dumps(dato);
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def adelantos_intercambio_ajax_view(request):
	pkI = request.GET.get('idI','')# id intercambio
	lista=[]
	if request.is_ajax:
		try:
			pa= PagoAdelantoIntercambio.objects.filter(id_intercambio=pkI).order_by('pk').values('pk','fecha','idCajaHaber','id_intercambio','nroAdelanto','nroReciboPI','observaciones','saldo')
			inte= Intercambio.objects.get(pk=pa[0]['id_intercambio'])
			for i in range(len(pa)):
				dato={}
				haber= TCajaHaber.objects.get(pk=pa[i]['idCajaHaber'])
				dato['pk']=pa[i]['pk']
				dato['f']=str(pa[i]['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['nroR']= haber.nroRecibo
				dato['obs']=pa[i]['observaciones']
				dato['saldo']=float(pa[i]['saldo'])
				dato['monto']=float(haber.cantidadDinero)
				dato['p']=haber.id_personal.nombre+' '+haber.id_personal.Apellido_paterno+' '+haber.id_personal.Apellido_materno
				if i==0:
					dato['saldoa']=float(inte.idCajaDebe.cantidadDinero)-float(inte.comision)- float(inte.monto_conceptos)
				else:					
					dato['saldoa']=float(pa[i-1]['saldo'])
				dato['egreso']="0.00"
				if EgresoExtraIntercambioAdelanto.objects.filter(id_pago_intercambio_a=pa[i]['pk']).exists():
					egreso = EgresoExtraIntercambioAdelanto.objects.get(id_pago_intercambio_a=pa[i]['pk'])
					dato['egreso'] = str(egreso.monto)
				lista.append(dato)
		except:
			lista=[]
		data= json.dumps(lista);
	else:
		data='fail'

	mimetype="application/json"
	return HttpResponse(data,mimetype)



@login_required
def Autorizaciones_sobregiros_ctactes_view(request):
	return render(request,'autorizarSCtaCte.html' )

@login_required
def Autorizaciones_sobregiros_ctactes_admin_view(request):
	return render(request,'autorizarSCtaCteAdmin.html' )


@login_required
def autorizaciones_sobregiros_ctas_ajax_view(request):#consulta autorizaciones Retiro Transferencia
	if request.is_ajax:
		try:
			consulta=list(Solicitud_aut_sobregiros.objects.all().order_by('-pk').values('pk','fecha','id_cta','tipoCta','codigo_aut','estado','id_caja_solicitante','id_user_solicitante','usuario_autorizador','id_usuario_aut','fecha_aut','fecha_desbloqueo','fecha_creacion_cta','id_oficina_apertura','obs','aux1','aux2'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['id_cta']= obj['id_cta']
				dato['tipoCta']= obj['tipoCta']
				dato['cod']=obj['codigo_aut']
				dato['estado']=obj['estado']
				per= Personal.objects.get(pk=obj['id_user_solicitante'])
				Ca = Cajas.objects.get(pk=obj['id_caja_solicitante'])
				dato['Csoli']='['+Ca.id_oficina.nombre_oficina +'] '+Ca.nombre
				dato['soli']= per.nombre.capitalize() +' '+ per.Apellido_paterno.capitalize()+' '+per.Apellido_materno.capitalize()
				fa=""
				if obj['fecha_aut'] !=None:
					fa= str(obj['fecha_aut'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_aut']=fa
				fd=""
				if obj['fecha_desbloqueo'] !=None:
					fd= str(obj['fecha_desbloqueo'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_desb']=fd
				fcta=""
				if obj['fecha_creacion_cta'] !=None:
					fcta= str(obj['fecha_creacion_cta'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_cta']=fcta
				dato['obs']=obj['obs']
				if (obj['aux2']=='soles'):
					dato['monto']='S/. '+str(obj['aux1'])
				else:
					dato['monto']='US$. '+str(obj['aux1'])
				dato['user_aut']=''
				dato['cargo_aut']=''
				if obj['usuario_autorizador']=='Gerente':
					g= Gerente.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=g.nombre.capitalize() +' '+g.Apellido_paterno.capitalize()+' '+g.Apellido_materno.capitalize()
					dato['cargo_aut']='Gerente'
				elif obj['usuario_autorizador']=='Personal':
					p= Personal.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=p.nombre.capitalize() +' '+p.Apellido_paterno.capitalize()+' '+p.Apellido_materno.capitalize()
					dato['cargo_aut']='Personal'

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='Error en consulta'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#******************** BALANCE DOLARES ***************************
@login_required
@permission_required('Main.add_oficina')
def Balance_do_fechas_todo_oficinas_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		fre= request.GET.get('fre')
		F1= request.GET.get('F1')
		F2 = request.GET.get('F2')
		consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
		if fre == "d":
			fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
			fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
			fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
			fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			for obj in consulta:
				haber=HaberDolar.objects.filter(idCajaHaber__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto').aggregate(Sum('monto'))
				bal= BalanceDolar.objects.filter(id_caja__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','id_haberDolar','prom_TC_debe','prom_TC_haber')
				ptc_debe= bal.aggregate(Avg('prom_TC_debe'))
				ptc_haber= bal.aggregate(Avg('prom_TC_haber'))
				dato={}
				dato['oficina']=obj['nombre_oficina']
				pc_debe=0
				pc_haber=0
				monto=0
				if ptc_debe['prom_TC_debe__avg'] != None:
					pc_debe=float(ptc_debe['prom_TC_debe__avg'])
				if ptc_haber['prom_TC_haber__avg']!= None:
					pc_haber=float(ptc_haber['prom_TC_haber__avg'])
				if haber['monto__sum']!= None:
					monto=float(haber['monto__sum'])
				dato['de']=round(monto*pc_debe,2)
				dato['ha']=round(monto*pc_haber,2)
				dato['pc_de']=round(pc_debe,3)
				dato['pc_ha']=round(pc_haber,3)
				lista.append(dato)
		elif fre =="a":
			fecha1= datetime.datetime.strptime(str(F1)+"-01-01", '%Y-%m-%d')
			fecha2= datetime.datetime.strptime(str(F2)+"-12-31", '%Y-%m-%d')
			fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
			fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			for obj in consulta:
				haber=HaberDolar.objects.filter(idCajaHaber__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto').aggregate(Sum('monto'))
				bal= BalanceDolar.objects.filter(id_caja__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','id_haberDolar','prom_TC_debe','prom_TC_haber')
				ptc_debe= bal.aggregate(Avg('prom_TC_debe'))
				ptc_haber= bal.aggregate(Avg('prom_TC_haber'))
				dato={}
				dato['oficina']=obj['nombre_oficina']
				pc_debe=0
				pc_haber=0
				monto=0
				if ptc_debe['prom_TC_debe__avg'] != None:
					pc_debe=float(ptc_debe['prom_TC_debe__avg'])
				if ptc_haber['prom_TC_haber__avg']!= None:
					pc_haber=float(ptc_haber['prom_TC_haber__avg'])
				if haber['monto__sum']!= None:
					monto=float(haber['monto__sum'])
				dato['de']=round(monto*pc_debe,2)
				dato['ha']=round(monto*pc_haber,2)
				dato['pc_de']=round(pc_debe,3)
				dato['pc_ha']=round(pc_haber,3)
				lista.append(dato)
		elif fre =="m":
			aux2= str(F2).split("-")
			f2=calendar.monthrange(int(aux2[0]),int(aux2[1]))
			fecha1= datetime.datetime.strptime(str(F1)+"-01", '%Y-%m-%d')
			fecha2= datetime.datetime.strptime(str(F2)+"-"+str(f2[1]), '%Y-%m-%d')
			fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
			fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			for obj in consulta:
				haber=HaberDolar.objects.filter(idCajaHaber__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto').aggregate(Sum('monto'))
				bal= BalanceDolar.objects.filter(id_caja__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','id_haberDolar','prom_TC_debe','prom_TC_haber')
				ptc_debe= bal.aggregate(Avg('prom_TC_debe'))
				ptc_haber= bal.aggregate(Avg('prom_TC_haber'))
				dato={}
				dato['oficina']=obj['nombre_oficina']
				pc_debe=0
				pc_haber=0
				monto=0
				if ptc_debe['prom_TC_debe__avg'] != None:
					pc_debe=float(ptc_debe['prom_TC_debe__avg'])
				if ptc_haber['prom_TC_haber__avg']!= None:
					pc_haber=float(ptc_haber['prom_TC_haber__avg'])
				if haber['monto__sum']!= None:
					monto=float(haber['monto__sum'])
				dato['de']=round(monto*pc_debe,2)
				dato['ha']=round(monto*pc_haber,2)
				dato['pc_de']=round(pc_debe,3)
				dato['pc_ha']=round(pc_haber,3)
				lista.append(dato)
		data= json.dumps(lista)
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

def lista_anios(f1,f2):
	lista=[]
	i=int(f1)
	j=int(f2)
	while i<=j:
		lista.append(i)
		i=i+1
	return lista

def lista_meses(f1,f2):
	lista=[]
	f1= str(f1).split("-")#[anios,meses]
	f2= str(f2).split("-")
	anio1=int(f1[0])
	mes1= int(f1[1])
	anio2=int(f2[0])
	mes2= int(f2[1])
	while (anio1*100+mes1)<=(anio2*100+mes2):
		lista.append([anio1,mes1])
		m=calendar.monthrange(anio1,mes1)#(anio,mes)-->(mes,ud)
		f= datetime.datetime.strptime(str(anio1)+"-"+str(mes1)+"-"+str(m[1]) , '%Y-%m-%d')
		nf= f + timedelta(days=1)
		anio1=nf.year
		mes1=nf.month
	return lista

def lista_dias(f1,f2):
	lista=[]
	fecha1= datetime.datetime.strptime(f1, '%Y-%m-%d')
	fecha2= datetime.datetime.strptime(f2, '%Y-%m-%d')
	while fecha1<=fecha2:
		lista.append([fecha1.year,fecha1.month,fecha1.day])
		nf= fecha1 + timedelta(days=1)
		fecha1= nf
	return lista

@login_required
@permission_required('Main.add_oficina')
def Balance_do_fechas_oficina_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		fre= request.GET.get('fre')
		F1= request.GET.get('F1')
		F2 = request.GET.get('F2')
		of = request.GET.get('of')
		ofi=Oficina.objects.get(pk=of)
		if fre == "d":
			ld=lista_dias(F1,F2)
			for obj in ld:
				haber=HaberDolar.objects.filter(idCajaHaber__id_oficina=ofi,fecha__year=obj[0],fecha__month=obj[1],fecha__day=obj[2]).values('pk','monto').aggregate(Sum('monto'))
				bal= BalanceDolar.objects.filter(id_caja__id_oficina=ofi,fecha__year=obj[0],fecha__month=obj[1],fecha__day=obj[2]).values('pk','prom_TC_debe','prom_TC_haber')
				ptc_debe= bal.aggregate(Avg('prom_TC_debe'))
				ptc_haber= bal.aggregate(Avg('prom_TC_haber'))
				dato={}
				dato['f']=str(obj[0])+"-"+str(obj[1])+"-"+str(obj[2])
				pc_debe=0
				pc_haber=0
				monto=0
				if ptc_debe['prom_TC_debe__avg'] != None:
					pc_debe=float(ptc_debe['prom_TC_debe__avg'])
				if ptc_haber['prom_TC_haber__avg']!= None:
					pc_haber=float(ptc_haber['prom_TC_haber__avg'])
				if haber['monto__sum']!= None:
					monto=float(haber['monto__sum'])
				dato['de']=round(monto*pc_debe,2)
				dato['ha']=round(monto*pc_haber,2)
				dato['pc_de']=round(pc_debe,3)
				dato['pc_ha']=round(pc_haber,3)
				lista.append(dato)
		elif fre =="a":
			la=lista_anios(F1,F2)
			for obj in la:
				haber=HaberDolar.objects.filter(idCajaHaber__id_oficina=ofi,fecha__year=obj).values('pk','monto').aggregate(Sum('monto'))
				bal= BalanceDolar.objects.filter(id_caja__id_oficina=ofi,fecha__year=obj).values('pk','prom_TC_debe','prom_TC_haber')
				ptc_debe= bal.aggregate(Avg('prom_TC_debe'))
				ptc_haber= bal.aggregate(Avg('prom_TC_haber'))
				dato={}
				dato['f']=obj
				pc_debe=0
				pc_haber=0
				monto=0
				if ptc_debe['prom_TC_debe__avg'] != None:
					pc_debe=float(ptc_debe['prom_TC_debe__avg'])
				if ptc_haber['prom_TC_haber__avg']!= None:
					pc_haber=float(ptc_haber['prom_TC_haber__avg'])
				if haber['monto__sum']!= None:
					monto=float(haber['monto__sum'])
				dato['de']=round(monto*pc_debe,2)
				dato['ha']=round(monto*pc_haber,2)
				dato['pc_de']=round(pc_debe,3)
				dato['pc_ha']=round(pc_haber,3)
				lista.append(dato)
		elif fre =="m":
			lm=lista_meses(F1,F2)
			for obj in lm:
				haber=HaberDolar.objects.filter(idCajaHaber__id_oficina=ofi,fecha__year=obj[0],fecha__month=obj[1]).values('pk','monto').aggregate(Sum('monto'))
				bal= BalanceDolar.objects.filter(id_caja__id_oficina=ofi,fecha__year=obj[0],fecha__month=obj[1]).values('pk','prom_TC_debe','prom_TC_haber')
				ptc_debe= bal.aggregate(Avg('prom_TC_debe'))
				ptc_haber= bal.aggregate(Avg('prom_TC_haber'))
				dato={}
				dato['f']=str(obj[0])+"-"+str(obj[1])
				pc_debe=0
				pc_haber=0
				monto=0
				if ptc_debe['prom_TC_debe__avg'] != None:
					pc_debe=float(ptc_debe['prom_TC_debe__avg'])
				if ptc_haber['prom_TC_haber__avg']!= None:
					pc_haber=float(ptc_haber['prom_TC_haber__avg'])
				if haber['monto__sum']!= None:
					monto=float(haber['monto__sum'])
				dato['de']=round(monto*pc_debe,2)
				dato['ha']=round(monto*pc_haber,2)
				dato['pc_de']=round(pc_debe,3)
				dato['pc_ha']=round(pc_haber,3)
				lista.append(dato)
		data= json.dumps(lista)
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def Balance_Dolar_ofi_Admin_view(request):
	return render(request,"BalanceDolarAdmin.html" )
#****************************************************************

#balance de compra y venta de dolares
@login_required
@permission_required('Main.add_oficina')
def Balance_CV_Dolar_ofi_Admin_view(request):
	return render(request,"BalanceCompraDolarAdmin.html" )

@login_required
@permission_required('Main.add_oficina')
def Balance_cv_do_fechas_todo_oficinas_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		fre= request.GET.get('fre')
		F1= request.GET.get('F1')
		F2 = request.GET.get('F2')
		consulta=list(Oficina.objects.exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina'))
		if fre == "d":
			fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
			fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
			fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
			fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			for obj in consulta:
				compra=CompraDolar.objects.filter(idCajaDebe__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto_dolar_comprado','tipo_cambio_compra','monto_soles_pagado')
				venta= VentaDolar.objects.filter(idCajaHaber__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto_dolar_vendido','tipo_cambio_venta','monto_soles_cobrado')
				ptc_compra= compra.aggregate(Avg('tipo_cambio_compra'))
				sm_compra= compra.aggregate(Sum('monto_dolar_comprado'))
				ptc_venta= venta.aggregate(Avg('tipo_cambio_venta'))
				sm_venta= venta.aggregate(Sum('monto_dolar_vendido'))
				dato={}
				dato['oficina']=obj['nombre_oficina']
				tc_compra=0
				tc_venta=0
				m_compra=0
				m_venta=0
				if ptc_compra['tipo_cambio_compra__avg'] != None:
					tc_compra=round(float(ptc_compra['tipo_cambio_compra__avg']),2)
				if ptc_venta['tipo_cambio_venta__avg']!= None:
					tc_venta=round(float(ptc_venta['tipo_cambio_venta__avg']),2)

				if sm_compra['monto_dolar_comprado__sum']!= None:
					m_compra=round(float(sm_compra['monto_dolar_comprado__sum']),2)
				if sm_venta['monto_dolar_vendido__sum']!= None:
					m_venta=round(float(sm_venta['monto_dolar_vendido__sum']),2)

				dato['venta']=round(m_venta*tc_venta,2)
				dato['compra']=round(m_compra*tc_compra,2)
				dato['tc_compra']=round(tc_compra,2)
				dato['monto_compra']=round(m_compra,2)
				dato['tc_venta']=round(tc_venta,2)
				dato['monto_venta']=round(m_venta,2)
				dato['bene']=round((m_venta*tc_venta)-(m_venta*tc_compra),2)
				lista.append(dato)
		elif fre =="a":
			fecha1= datetime.datetime.strptime(str(F1)+"-01-01", '%Y-%m-%d')
			fecha2= datetime.datetime.strptime(str(F2)+"-12-31", '%Y-%m-%d')
			fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
			fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			for obj in consulta:
				compra=CompraDolar.objects.filter(idCajaDebe__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto_dolar_comprado','tipo_cambio_compra','monto_soles_pagado')
				venta= VentaDolar.objects.filter(idCajaHaber__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto_dolar_vendido','tipo_cambio_venta','monto_soles_cobrado')
				ptc_compra= compra.aggregate(Avg('tipo_cambio_compra'))
				sm_compra= compra.aggregate(Sum('monto_dolar_comprado'))
				ptc_venta= venta.aggregate(Avg('tipo_cambio_venta'))
				sm_venta= venta.aggregate(Sum('monto_dolar_vendido'))
				dato={}
				dato['oficina']=obj['nombre_oficina']
				tc_compra=0
				tc_venta=0
				m_compra=0
				m_venta=0
				if ptc_compra['tipo_cambio_compra__avg'] != None:
					tc_compra=round(float(ptc_compra['tipo_cambio_compra__avg']),2)
				if ptc_venta['tipo_cambio_venta__avg']!= None:
					tc_venta=round(float(ptc_venta['tipo_cambio_venta__avg']),2)

				if sm_compra['monto_dolar_comprado__sum']!= None:
					m_compra=round(float(sm_compra['monto_dolar_comprado__sum']),2)
				if sm_venta['monto_dolar_vendido__sum']!= None:
					m_venta=round(float(sm_venta['monto_dolar_vendido__sum']),2)

				dato['venta']=round(m_venta*tc_venta,2)
				dato['compra']=round(m_compra*tc_compra,2)
				dato['tc_compra']=round(tc_compra,2)
				dato['monto_compra']=round(m_compra,2)
				dato['tc_venta']=round(tc_venta,2)
				dato['monto_venta']=round(m_venta,2)
				dato['bene']=round((m_venta*tc_venta)-(m_venta*tc_compra),2)
				lista.append(dato)
		elif fre =="m":
			aux2= str(F2).split("-")
			f2=calendar.monthrange(int(aux2[0]),int(aux2[1]))
			fecha1= datetime.datetime.strptime(str(F1)+"-01", '%Y-%m-%d')
			fecha2= datetime.datetime.strptime(str(F2)+"-"+str(f2[1]), '%Y-%m-%d')
			fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
			fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			for obj in consulta:
				compra=CompraDolar.objects.filter(idCajaDebe__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto_dolar_comprado','tipo_cambio_compra','monto_soles_pagado')
				venta= VentaDolar.objects.filter(idCajaHaber__id_oficina=obj['pk'],fecha__range=(fhoramin,fhoramax)).values('pk','monto_dolar_vendido','tipo_cambio_venta','monto_soles_cobrado')
				ptc_compra= compra.aggregate(Avg('tipo_cambio_compra'))
				sm_compra= compra.aggregate(Sum('monto_dolar_comprado'))
				ptc_venta= venta.aggregate(Avg('tipo_cambio_venta'))
				sm_venta= venta.aggregate(Sum('monto_dolar_vendido'))
				dato={}
				dato['oficina']=obj['nombre_oficina']
				tc_compra=0
				tc_venta=0
				m_compra=0
				m_venta=0
				if ptc_compra['tipo_cambio_compra__avg'] != None:
					tc_compra=round(float(ptc_compra['tipo_cambio_compra__avg']),2)
				if ptc_venta['tipo_cambio_venta__avg']!= None:
					tc_venta=round(float(ptc_venta['tipo_cambio_venta__avg']),2)

				if sm_compra['monto_dolar_comprado__sum']!= None:
					m_compra=round(float(sm_compra['monto_dolar_comprado__sum']),2)
				if sm_venta['monto_dolar_vendido__sum']!= None:
					m_venta=round(float(sm_venta['monto_dolar_vendido__sum']),2)

				dato['venta']=round(m_venta*tc_venta,2)
				dato['compra']=round(m_compra*tc_compra,2)
				dato['tc_compra']=round(tc_compra,2)
				dato['monto_compra']=round(m_compra,2)
				dato['tc_venta']=round(tc_venta,2)
				dato['monto_venta']=round(m_venta,2)
				dato['bene']=round((m_venta*tc_venta)-(m_venta*tc_compra),2)
				lista.append(dato)
		data= json.dumps(lista)
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def Balance_cv_do_fechas_oficina_ajax_view(request):
	if request.is_ajax:
		data=''
		lista=[]
		fre= request.GET.get('fre')
		F1= request.GET.get('F1')
		F2 = request.GET.get('F2')
		of = request.GET.get('of')
		ofi=Oficina.objects.get(pk=of)
		if fre == "d":
			ld=lista_dias(F1,F2)
			for obj in ld:
				compra=CompraDolar.objects.filter(idCajaDebe__id_oficina=of,fecha__year=obj[0],fecha__month=obj[1],fecha__day=obj[2]).values('pk','monto_dolar_comprado','tipo_cambio_compra','monto_soles_pagado')
				venta= VentaDolar.objects.filter(idCajaHaber__id_oficina=of,fecha__year=obj[0],fecha__month=obj[1],fecha__day=obj[2]).values('pk','monto_dolar_vendido','tipo_cambio_venta','monto_soles_cobrado')
				ptc_compra= compra.aggregate(Avg('tipo_cambio_compra'))
				sm_compra= compra.aggregate(Sum('monto_dolar_comprado'))
				ptc_venta= venta.aggregate(Avg('tipo_cambio_venta'))
				sm_venta= venta.aggregate(Sum('monto_dolar_vendido'))
				dato={}
				dato['f']=str(obj[0])+"-"+str(obj[1])+"-"+str(obj[2])

				tc_compra=0
				tc_venta=0
				m_compra=0
				m_venta=0
				if ptc_compra['tipo_cambio_compra__avg'] != None:
					tc_compra=round(float(ptc_compra['tipo_cambio_compra__avg']),2)
				if ptc_venta['tipo_cambio_venta__avg']!= None:
					tc_venta=round(float(ptc_venta['tipo_cambio_venta__avg']),2)

				if sm_compra['monto_dolar_comprado__sum']!= None:
					m_compra=round(float(sm_compra['monto_dolar_comprado__sum']),2)
				if sm_venta['monto_dolar_vendido__sum']!= None:
					m_venta=round(float(sm_venta['monto_dolar_vendido__sum']),2)

				dato['venta']=round(m_venta*tc_venta,2)
				dato['compra']=round(m_compra*tc_compra,2)
				dato['tc_compra']=round(tc_compra,2)
				dato['monto_compra']=round(m_compra,2)
				dato['tc_venta']=round(tc_venta,2)
				dato['monto_venta']=round(m_venta,2)
				dato['bene']=round((m_venta*tc_venta)-(m_venta*tc_compra),2)
				lista.append(dato)
		elif fre =="a":
			la=lista_anios(F1,F2)
			for obj in la:
				compra=CompraDolar.objects.filter(idCajaDebe__id_oficina=of,fecha__year=obj).values('pk','monto_dolar_comprado','tipo_cambio_compra','monto_soles_pagado')
				venta= VentaDolar.objects.filter(idCajaHaber__id_oficina=of,fecha__year=obj).values('pk','monto_dolar_vendido','tipo_cambio_venta','monto_soles_cobrado')
				ptc_compra= compra.aggregate(Avg('tipo_cambio_compra'))
				sm_compra= compra.aggregate(Sum('monto_dolar_comprado'))
				ptc_venta= venta.aggregate(Avg('tipo_cambio_venta'))
				sm_venta= venta.aggregate(Sum('monto_dolar_vendido'))
				dato={}
				dato['f']=obj
				tc_compra=0
				tc_venta=0
				m_compra=0
				m_venta=0
				if ptc_compra['tipo_cambio_compra__avg'] != None:
					tc_compra=round(float(ptc_compra['tipo_cambio_compra__avg']),2)
				if ptc_venta['tipo_cambio_venta__avg']!= None:
					tc_venta=round(float(ptc_venta['tipo_cambio_venta__avg']),2)

				if sm_compra['monto_dolar_comprado__sum']!= None:
					m_compra=round(float(sm_compra['monto_dolar_comprado__sum']),2)
				if sm_venta['monto_dolar_vendido__sum']!= None:
					m_venta=round(float(sm_venta['monto_dolar_vendido__sum']),2)

				dato['venta']=round(m_venta*tc_venta,2)
				dato['compra']=round(m_compra*tc_compra,2)
				dato['tc_compra']=round(tc_compra,2)
				dato['monto_compra']=round(m_compra,2)
				dato['tc_venta']=round(tc_venta,2)
				dato['monto_venta']=round(m_venta,2)
				dato['bene']=round((m_venta*tc_venta)-(m_venta*tc_compra),2)
				lista.append(dato)
		elif fre =="m":
			lm=lista_meses(F1,F2)
			for obj in lm:
				compra=CompraDolar.objects.filter(idCajaDebe__id_oficina=of,fecha__year=obj[0],fecha__month=obj[1]).values('pk','monto_dolar_comprado','tipo_cambio_compra','monto_soles_pagado')
				venta= VentaDolar.objects.filter(idCajaHaber__id_oficina=of,fecha__year=obj[0],fecha__month=obj[1]).values('pk','monto_dolar_vendido','tipo_cambio_venta','monto_soles_cobrado')
				ptc_compra= compra.aggregate(Avg('tipo_cambio_compra'))
				sm_compra= compra.aggregate(Sum('monto_dolar_comprado'))
				ptc_venta= venta.aggregate(Avg('tipo_cambio_venta'))
				sm_venta= venta.aggregate(Sum('monto_dolar_vendido'))
				dato={}
				dato['f']=str(obj[0])+"-"+str(obj[1])
				tc_compra=0
				tc_venta=0
				m_compra=0
				m_venta=0
				if ptc_compra['tipo_cambio_compra__avg'] != None:
					tc_compra=round(float(ptc_compra['tipo_cambio_compra__avg']),2)
				if ptc_venta['tipo_cambio_venta__avg']!= None:
					tc_venta=round(float(ptc_venta['tipo_cambio_venta__avg']),2)

				if sm_compra['monto_dolar_comprado__sum']!= None:
					m_compra=round(float(sm_compra['monto_dolar_comprado__sum']),2)
				if sm_venta['monto_dolar_vendido__sum']!= None:
					m_venta=round(float(sm_venta['monto_dolar_vendido__sum']),2)

				dato['venta']=round(m_venta*tc_venta,2)
				dato['compra']=round(m_compra*tc_compra,2)
				dato['tc_compra']=round(tc_compra,2)
				dato['monto_compra']=round(m_compra,2)
				dato['tc_venta']=round(tc_venta,2)
				dato['monto_venta']=round(m_venta,2)
				dato['bene']=round((m_venta*tc_venta)-(m_venta*tc_compra),2)
				lista.append(dato)
		data= json.dumps(lista)
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


#****************************************************************


@login_required
def actualizarCierresAdmin_view(request):
	return render(request,'configCierres.html' )

#************************* estado de cajas ************************
@login_required
@permission_required('Main.add_oficina')
def lista_estados_cajas_ajax_view(request):
	lista=[]
	if request.is_ajax:
		try:
			liCa= Cajas.objects.filter(estado=True).exclude(id_oficina__nombre_oficina="Gerencia").order_by('id_oficina','pk').values('pk')
			for obj in liCa:
				dato={}
				cx= Cajas.objects.get(pk=obj['pk'])
				dato['pkC']=obj['pk']
				dato['b']='['+cx.id_oficina.nombre_oficina+'] '+cx.nombre
				dato['op']=cx.id_usuario.nombre +' '+cx.id_usuario.Apellido_paterno
				dato['f']=''
				dato['es']= ''
				dato['dsc']=''
				if Log_EstadoCaja.objects.filter(id_caja=obj['pk']).exists():
					ul=Log_EstadoCaja.objects.filter(id_caja=obj['pk']).latest("fecha")
					dato['f']=str(ul.fecha.strftime("%d-%m-%Y %H:%M"))
					dato['es']=ul.estado
					dato['dsc']=ul.descripcion.split(':')[0]
				dato['pkv']=''
				dato['fdv']=''
				dato['fhv']=''
				if EstadoValido_Caja.objects.filter(id_caja=obj['pk']).exists():
					uv=EstadoValido_Caja.objects.filter(id_caja=obj['pk']).latest("fecha")
					dato['pkv']=uv.pk
					dato['fdv']=str(uv.fechaDesde.strftime("%d/%m/%Y"))
					dato['fhv']=str(uv.fechaHasta.strftime("%d/%m/%Y"))
				lista.append(dato)
		except:
			lista=[]
		data= json.dumps(lista);
	else:
		data='fail'

	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def lista_reviciones_por_caja_ajax_view(request):
	lista=[]
	if request.is_ajax:
		pkC=request.GET.get('pkCaja')
		try:
			listaR= list(EstadoValido_Caja.objects.filter(id_caja=pkC).order_by('-pk').values('pk','fechaDesde','fechaHasta'))
			for obj in listaR:
				dato={}
				dato['pk']=obj['pk']
				dato['fechaDesde']=str(obj['fechaDesde'].strftime("%d/%m/%Y"))
				dato['fechaHasta']=str(obj['fechaHasta'].strftime("%d/%m/%Y"))
				lista.append(dato)
		except:
			lista=str(sys.exc_info()[1])
		data= json.dumps(lista);
	else:
		data='fail'

	mimetype="application/json"
	return HttpResponse(data,mimetype)

def comparar(a,b):
	return ((a-b <1) and (a-b >-1)),round(a-b,2)
#validacion de estado de caja
def validacion_diario_estado_caja(soldoS,saldoD,fe,pkc):
	fecha= datetime.datetime.strptime(fe, '%Y-%m-%d')
	exito=''#(pk,-1)
	error=''
	sis=0
	sid=0
	try:
		debe_ini=None
		haber_ini=None
		SI_soles=soldoS
		SI_dolares=saldoD
		ini=datetime.datetime.combine(fecha,datetime.time.min)
		fin= datetime.datetime.combine(fecha,datetime.time.max)

		#metodo
		debe= TCajaDebe.objects.filter(id_caja=pkc,fecha__range=(ini,fin)).values('pk','moneda','cantidadDinero')
		haber= TCajaHaber.objects.filter(id_caja=pkc,fecha__range=(ini,fin)).values('pk','moneda','cantidadDinero')
		
		saldo=SaldoDisponibleCajas.objects.get(id_caja=pkc)
		saldo_soles= saldo.saldo_soles
		saldo_dolares= saldo.saldo_dolares

		ins=debe.filter(moneda='soles').aggregate(Sum('cantidadDinero'))
		ind=debe.filter(moneda='dolares').aggregate(Sum('cantidadDinero'))
		es=haber.filter(moneda='soles').aggregate(Sum('cantidadDinero'))
		ed=haber.filter(moneda='dolares').aggregate(Sum('cantidadDinero'))
		ingresoS=0
		if ins['cantidadDinero__sum'] != None:
			ingresoS=float(ins['cantidadDinero__sum'])
		egresoS=0
		if es['cantidadDinero__sum'] != None:
			egresoS=float(es['cantidadDinero__sum'])
		ingresoD=0
		if ind['cantidadDinero__sum'] != None:
			ingresoD=float(ind['cantidadDinero__sum'])
		egresoD=0
		if ed['cantidadDinero__sum'] != None:
			egresoD=float(ed['cantidadDinero__sum'])
		sis= ingresoS - egresoS +SI_soles
		sid= ingresoD - egresoD + SI_dolares
		"""
		es_cos,vals=comparar(ingresoS - egresoS +SI_soles,float(saldo_soles))
		es_cod,vald=comparar(ingresoD - egresoD + SI_dolares,float(saldo_dolares))
		if not es_cos or not es_cod:
			exito='-1'
			error='Saldo disponible no valido: s-'+str(vals)+',d-'+str(vald)
		else:"""
		SCierre_soles=0
		SCierre_dolares=0
		exito='2'
		if CajaCierre.objects.filter(id_caja=pkc,fechaDesde=fecha.date(),fechaHasta=fecha.date(),estado="cerrado").exists():
			Uc= CajaCierre.objects.get(id_caja=pkc,fechaDesde=fecha.date(),fechaHasta=fecha.date(),estado="cerrado")
			SCierre_soles=Uc.saldo_soles
			SCierre_dolares=Uc.saldo_dolares
			c_cos,vacs=comparar(float(sis),float(SCierre_soles))
			c_cod,vacd=comparar(float(sid),float(SCierre_dolares))
			if not c_cos or not c_cod:
				exito='0'
				error='Saldo en cierre no valido: s-'+str(vacs)+',d-'+str(vacd)
		else:
			exito='1'
			error='no existen ningun cierre'
			#else:
			
	except:
		exito='-2'
		error='fail' + str(sys.exc_info()[1])
	return exito, error,sis,sid

@login_required
@permission_required('Main.add_oficina')
def lista_reviciones_detallada_por_caja_ajax_view(request):
	lista=[]
	if request.is_ajax:
		pkR=request.GET.get('pkR','')
		try:
			if pkR!='':
				rv= EstadoValido_Caja.objects.get(pk=pkR)
				desde=str(rv.fechaDesde.strftime("%Y-%m-%d"))
				hasta=str(rv.fechaHasta.strftime("%Y-%m-%d"))
				listaD= lista_dias(desde,hasta)
				sis=float(rv.saldoI_soles)
				sid=float(rv.saldoI_dolares)
				for obj in listaD:
					dato={}
					dato['sis']=sis
					dato['sid']=sid
					fe= str(obj[0])+'-'+('0'+str(obj[1]))[-2:]+'-'+('0'+str(obj[2]))[-2:]
					e,m,s,d=validacion_diario_estado_caja(sis,sid,fe,rv.id_caja.pk)
					sis=s
					sid=d
					dato['ss']=s
					dato['sd']=d
					if e=='2':
						exito='success'
					elif e=='1':
						exito='warning'
					elif e=='0':
						exito='warning'
					elif e=='-1':
						exito="danger"
					else:
						exito="error"
					dato['exito']=exito
					dato['m']=m
					dato['fe']=fe
					lista.append(dato)
		except:
			lista=str(sys.exc_info()[1])
		data= json.dumps(lista);
	else:
		data='fail'

	mimetype="application/json"
	return HttpResponse(data,mimetype)

#---------------------------------- revicion de cajas ---------------------------------
@login_required
@permission_required('Main.add_oficina')
def revicionCajas_Admin_view(request):
	return render(request,"admiRevisarCajas.html" )

@login_required
@permission_required('Main.add_oficina')
def estadoCajas_Admin_view(request):
	return render(request,"admiEstadoCajas.html" )


@login_required
def listar_InteresAcumulados_view(request):

	if request.is_ajax:
		usr = request.user.username
		IdCtaAhorros=request.GET.get('idCtaAhorros')
		claveAcceso=request.GET.get('clave')
		totalM=0
		data=''
		lista=[]
		try:
			consulta= list(CtaAhorrosMovimientos.objects.filter(id_ctaahorros=IdCtaAhorros).values('pk','interes','saldo'))
			for obj in consulta:
				dato={}
				if InteresesCtaAhorros.objects.filter(id_ctaahorrosmov=obj['pk'],estado='pendiente').exists():
					IA=InteresesCtaAhorros.objects.get(id_ctaahorrosmov=obj['pk'])
					dato['pk']=IA.pk
					dato['fecha']=str(IA.fecha.strftime("%d-%m-%Y"))
					dato['monto']=str(IA.monto)
					dato['estado']=IA.estado
					dato['interes']=str(obj['interes'])
					dato['saldo']=str(obj['saldo'])
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data=str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def CtaAhorrosPeticionPendiente(request):
	nroP=0
	if request.is_ajax:
		usr= request.user.username
		C= Cajas.objects.get(id_usuario__usuario=usr)
		idCta=request.GET.get('idCtaAhorros')
		try:
			if not PeticionesCtaAhorros.objects.filter(idctaahorros=idCta,id_personal=C.id_usuario,estado='RETIRADO').exists():
				sql=PeticionesCtaAhorros.objects.filter(idctaahorros=idCta,id_personal=C.id_usuario).values('pk')
				nroP=sql.count()
			else:
				nroP=0
			 
		except:
			nroP=0
	else:
		nroP=0
	mimetype="application/json"
	return HttpResponse(nroP,mimetype)


@login_required
def ListadoCtaAhorros_movimientos_ajax_view(request):

	if request.is_ajax:
		usr = request.user.username
		pk=request.GET.get('pk')
		totalM=0
		data=''
		try:
			mov= CtaAhorrosMovimientos.objects.filter(id_ctaahorros=pk).values('pk','fechaHora','montoDeposito','montoRetiro','saldo','montoSobregiro','interesSobregiro','nroDiasSobregiro','observacionesMovimientos','comision','tabla','tipoDocumento','nroRecibo','aux1')
			consulta = list(mov)
			lista=[]

			for obj in consulta:
				dato={}
				dato['pk']= obj['pk']
				if obj['comision']!=None and obj['comision']!='': 
					dato['comision']= str(obj['comision'])
				else:
					dato['comision']=0

				dato['tabla']=obj['tabla']

				if obj['tabla']!=None and obj['tabla']!='':
					if str(obj['tabla'])=='TCajaDebe':
						OCD=TCajaDebe.objects.get(pk=int(obj['aux1']))
						dato['moneda']=OCD.moneda
						dato['obs1']=OCD.observaciones
					else:
						OCH=TCajaHaber.objects.get(pk=int(obj['aux1']))
						dato['moneda']=OCH.moneda
						dato['obs1']=OCH.observaciones
				else:
					dato['moneda']=''
				
				dato['tipo']=obj['tipoDocumento']
				dato['nro']=obj['nroRecibo']
				dato['f']= str(obj['fechaHora'].strftime("%Y-%m-%d %H:%M %p"))
				if obj['montoDeposito']!=None and obj['montoDeposito']!='':
					dato['md']=str(obj['montoDeposito'])
				else:
					dato['md']=0

				if obj['montoRetiro']!=None and obj['montoRetiro']!='':
					dato['mr']=str(obj['montoRetiro'])
				else:
					dato['mr']=0

				if obj['montoSobregiro']!=None and obj['montoSobregiro']!='':
					dato['msb']=str(obj['montoSobregiro'])
				else:
					dato['msb']=0

				if obj['interesSobregiro']!=None and obj['interesSobregiro']!='':
					dato['isb']=str(obj['interesSobregiro'])
				else:
					dato['isb']=0

				if obj['nroDiasSobregiro']!=None and obj['nroDiasSobregiro']!='':
					dato['ndsb']=str(obj['nroDiasSobregiro'])
				else:
					dato['ndsb']=0

				dato['s']=str(obj['saldo'])
				dato['obs']=obj['observacionesMovimientos']

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def listar_InteresAcumuladosAdmin_view(request):

	if request.is_ajax:
		usr = request.user.username
		IdCtaAhorros=request.GET.get('idCtaAhorros') 
		totalM=0
		data=''
		lista=[]
		try:
			consulta= list(CtaAhorrosMovimientos.objects.filter(id_ctaahorros=IdCtaAhorros).values('pk','interes','saldo'))
			for obj in consulta:
				dato={}
				if InteresesCtaAhorros.objects.filter(id_ctaahorrosmov=obj['pk'],estado='pendiente').exists():
					IA=InteresesCtaAhorros.objects.get(id_ctaahorrosmov=obj['pk'])
					dato['pk']=IA.pk
					dato['fecha']=str(IA.fecha.strftime("%d-%m-%Y"))
					dato['monto']=str(IA.monto)
					dato['estado']=IA.estado
					dato['interes']=str(obj['interes'])
					dato['saldo']=str(obj['saldo'])
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data=str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)



@login_required
def ListadoCtaAhorros_movimientos_ajax_view(request):

	if request.is_ajax:
		usr = request.user.username
		pk=request.GET.get('pk')
		totalM=0
		data=''
		try:
			mov= CtaAhorrosMovimientos.objects.filter(id_ctaahorros=pk).values('pk','fechaHora','montoDeposito','montoRetiro','saldo','montoSobregiro','interesSobregiro','nroDiasSobregiro','observacionesMovimientos','comision','tabla','tipoDocumento','nroRecibo','aux1')
			consulta = list(mov)
			lista=[]

			for obj in consulta:
				dato={}
				dato['pk']= obj['pk']
				if obj['comision']!=None and obj['comision']!='': 
					dato['comision']= str(obj['comision'])
				else:
					dato['comision']=0

				dato['tabla']=obj['tabla']

				if obj['tabla']!=None and obj['tabla']!='':
					if str(obj['tabla'])=='TCajaDebe':
						OCD=TCajaDebe.objects.get(pk=int(obj['aux1']))
						dato['moneda']=OCD.moneda
						dato['obs1']=OCD.observaciones
					else:
						OCH=TCajaHaber.objects.get(pk=int(obj['aux1']))
						dato['moneda']=OCH.moneda
						dato['obs1']=OCH.observaciones
				else:
					dato['moneda']=''
				
				dato['tipo']=obj['tipoDocumento']
				dato['nro']=obj['nroRecibo']
				dato['f']= str(obj['fechaHora'].strftime("%Y-%m-%d %H:%M %p"))
				if obj['montoDeposito']!=None and obj['montoDeposito']!='':
					dato['md']=str(obj['montoDeposito'])
				else:
					dato['md']=0

				if obj['montoRetiro']!=None and obj['montoRetiro']!='':
					dato['mr']=str(obj['montoRetiro'])
				else:
					dato['mr']=0

				if obj['montoSobregiro']!=None and obj['montoSobregiro']!='':
					dato['msb']=str(obj['montoSobregiro'])
				else:
					dato['msb']=0

				if obj['interesSobregiro']!=None and obj['interesSobregiro']!='':
					dato['isb']=str(obj['interesSobregiro'])
				else:
					dato['isb']=0

				if obj['nroDiasSobregiro']!=None and obj['nroDiasSobregiro']!='':
					dato['ndsb']=str(obj['nroDiasSobregiro'])
				else:
					dato['ndsb']=0

				dato['s']=str(obj['saldo'])
				dato['obs']=obj['observacionesMovimientos']

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data=str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def clientes_autocompletado_user_dni_ajax_view(request):
	if request.is_ajax:
		html_clientes=''
		dato=''
		dni=request.GET.get('dni')
		usr = request.user.username
		try:
			if Cliente.objects.filter(dni=dni,verificado=True).exists():
				consulta=list(Cliente.objects.filter(dni=dni,verificado=True).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','telefono','direccion','fecha_nacimiento','email','drem','tipo_persona').order_by('pk'))
				dato={'nombre':consulta[0]['nombre'],'ap':consulta[0]['Apellido_paterno'],'am':consulta[0]['Apellido_materno']}
			else:
				dato='fail'
		except:
			dato='fail'
	else:
		dato='fail'
	mimetype="application/json"
	data= json.dumps(dato)

	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def Asignar_Caja_Admin_tem_view(request):
	return render(request,"ListadoIEAdmin.html" )

@login_required
@permission_required('Main.add_oficina')
def ListadoCtaCtes_admin_view(request):
	try:
		usr= request.user.username
		cargo ='administrador'
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if C.id_usuario.pk == C.id_oficina.id_usuario.pk:
			cargo='administrador'
	except:
		cargo =''
	return render(request,'ListadoCtasCtes_admi.html',{"cargo":cargo} )

#************************* Desktop *********************
def lista_bases_desktop_ajax_view(request):
	dato={}
	error=''
	exito=''
	idCaja=request.GET.get('idCaja')
	mac=request.GET.get('mac')
	lista=[]
	try:
		if (idCaja != None and idCaja != "") and (mac != None and mac != ""):
			C = Cajas.objects.get(pk=idCaja)
			if Usuario_Desktop.objects.filter(id_usuario=C.id_usuario.pk,mac=mac).count()==1:
				consl= Cajas.objects.filter(estado=True).exclude(id_oficina__nombre_oficina="Gerencia").values('pk')
				for obj in consl:
					cae= Cajas.objects.get(pk=obj['pk'])
					if Base_Ext.objects.filter(id_confSis__id_caja=cae.pk).exists():
						bases= list(Base_Ext.objects.filter(id_confSis__id_caja=cae.pk).values('pk','id_confSis','estado_base','nombre_base','ciudad','direccion','descripcion','observaciones'))
						for b in bases:
							dato={}
							conf= TConfiguracionSistema.objects.get(pk=b['id_confSis'])
							dato['conf']= conf.conf2
							dato['id_oficina']= conf.id_oficina.pk
							dato['id_caja']= conf.id_caja.pk
							dato['id_base']=b['pk']
							dato['estado_base']=None
							if b['estado_base']:
								dato['estado_base']='activo'
							dato['nombre_base']= b['nombre_base']
							dato['ciudad']= b['ciudad']
							dato['dir']= b['direccion']
							lista.append(dato)
					else:
						dato={}
						dato['conf']= None
						dato['id_oficina']= cae.id_oficina.pk
						dato['id_caja']= cae.pk
						dato['id_base']=None
						dato['estado_base']=None
						dato['nombre_base']= None
						dato['ciudad']= None
						dato['dir']= None
						lista.append(dato)

				"""
				bases= list(Base_Ext.objects.filter(estado_base=True).values('pk','id_confSis','nombre_base','ciudad','direccion','descripcion','observaciones'))
				for b in bases:
					dato={}
					conf= TConfiguracionSistema.objects.get(pk=b['id_confSis'])
					dato['id_oficina']= conf.id_oficina.pk
					dato['id_caja']= conf.id_caja.pk
					dato['id_base']=b['pk']
					dato['nombre_base']= b['nombre_base']
					dato['ciudad']= b['ciudad']
					dato['dir']= b['direccion']
					lista.append(dato)
				"""
				dato=lista
				exito='1'
			else:
				exito='-1'
				error='error en autentificacion'
		else:
			exito='-1'
			error='consulta invalida'
	except:
		exito='-1'
		error= str(sys.exc_info()[1])
	data= json.dumps({'exito':exito,'data':dato,'error':error})
	mimetype="application/json"
	return HttpResponse(data,mimetype)

def ListadoCtaCtes_op_dni_Desktop(request):
	data={}
	error=''
	exito=''
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		dni=request.GET.get('dni','')
		idCaja=request.GET.get('idCaja')
		mac=request.GET.get('mac')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		try:
			lista=[]
			#consulta1= list(Cliente.objects.all().values('pk','nombre','Apellido_paterno','Apellido_materno'))
			
			if Cliente.objects.filter(dni=dni).exists():
				consulta2=list(Cliente.objects.filter(dni=dni).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','email','telefono','direccion','drem','tipo_persona'))
				#consulta1= list(CtaCte.objects.filter(id_cliente__dni=dni,privadoOficina='NO').values('pk','id_cliente','idCajaDebe','saldo','estado','privadoOficina','fechaApertura','observaciones','tipoCuenta','claveAcceso'))
				#if CtaCte.objects.filter(id_cliente=consulta2[0]['pk']).exists():
				
				for obj in consulta2:
					if CtaCte.objects.filter(id_cliente=obj['pk']).exists():
						consulta1= list(CtaCte.objects.filter(id_cliente=obj['pk']).values('pk','id_cliente','idCajaDebe','saldo','estado','privadoOficina','fechaApertura','observaciones','tipoCuenta','claveAcceso'))
						for obj1 in consulta1:
							dato={}
							idCD= obj1['idCajaDebe']
							cajadebe=TCajaDebe.objects.get(pk=idCD)
							consulta4=Oficina.objects.filter(pk=cajadebe.id_oficina.pk).values('nombre_oficina')
							consulta5=Personal.objects.filter(pk=cajadebe.id_personal.pk).values('usuario')
							dato['idCta']= obj1['pk']
							dato['idCaja']= cajadebe.id_caja.pk
							dato['idUsuario']= cajadebe.id_personal.pk
							dato['idOficina']= cajadebe.id_oficina.pk
							dato['dni']= obj['dni']
							dato['email']= obj['email']
							dato['telefono']= obj['telefono']
							dato['direccion']= obj['direccion']
							dato['drem']= obj['drem']
							dato['tipo_cliente']= obj['tipo_persona']
							dato['nombre']= obj['nombre']
							dato['Apellido_paterno']=obj['Apellido_paterno']
							dato['Apellido_materno']=obj['Apellido_materno']
							dato['estado_cta']=obj1['estado']
							dato['observaciones']=obj1['observaciones']
							dato['tipo_cuenta']=obj1['tipoCuenta']
							dato['clave']=obj1['claveAcceso']
							dato['oficina_apertura']= consulta4[0]['nombre_oficina']
							dato['usuario_apertura']= consulta5[0]['usuario']
							dato['fecha_apertura']=str(obj1['fechaApertura'])
							dato['privado_oficina']= obj1['privadoOficina']
							dato['moneda']= cajadebe.moneda
							dato['saldo']= str(obj1['saldo']) 
							lista.append(dato)
 
				data= lista
				exito='1'
			else:
				error='este cliente no existe'
				exito='-1'
		except:
			error='fail'+str(sys.exc_info()[1])
			exito='-1'
	else:
		error='fail'
		exito='-1'
	data= json.dumps({'exito':exito,'data': data,'error':error})
	mimetype="application/json"
	return HttpResponse(data,mimetype)

def ListadoCtaAhorro_op_dni_Desktop(request):
	data={}
	error=''
	exito=''
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		dni=request.GET.get('dni','')
		idCaja=request.GET.get('idCaja')
		mac=request.GET.get('mac')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		try:
			lista=[]
			#consulta1= list(Cliente.objects.all().values('pk','nombre','Apellido_paterno','Apellido_materno'))
			
			if Cliente.objects.filter(dni=dni).exists():
				consulta2=list(Cliente.objects.filter(dni=dni).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','email','telefono','direccion','drem','tipo_persona'))
				#consulta1= list(CtaCte.objects.filter(id_cliente__dni=dni,privadoOficina='NO').values('pk','id_cliente','idCajaDebe','saldo','estado','privadoOficina','fechaApertura','observaciones','tipoCuenta','claveAcceso'))
				#if CtaCte.objects.filter(id_cliente=consulta2[0]['pk']).exists():
				
				for obj in consulta2:
					if CtaAhorros.objects.filter(id_cliente=obj['pk']).exists():
						consulta1= list(CtaAhorros.objects.filter(id_cliente=obj['pk']).values('pk','id_cliente','idCajaDebe','saldo','estado','privadoOficina','fechaApertura','observaciones','tipoCuenta','claveAcceso'))
						for obj1 in consulta1:
							dato={}
							idCD= obj1['idCajaDebe']
							cajadebe=TCajaDebe.objects.get(pk=idCD)
							consulta4=Oficina.objects.filter(pk=cajadebe.id_oficina.pk).values('nombre_oficina')
							consulta5=Personal.objects.filter(pk=cajadebe.id_personal.pk).values('usuario')
							dato['idCta']= obj1['pk']
							dato['idCaja']= cajadebe.id_caja.pk
							dato['idUsuario']= cajadebe.id_personal.pk
							dato['idOficina']= cajadebe.id_oficina.pk
							dato['dni']= obj['dni']
							dato['email']= obj['email']
							dato['telefono']= obj['telefono']
							dato['direccion']= obj['direccion']
							dato['drem']= obj['drem']
							dato['tipo_cliente']= obj['tipo_persona']
							dato['nombre']= obj['nombre']
							dato['Apellido_paterno']=obj['Apellido_paterno']
							dato['Apellido_materno']=obj['Apellido_materno']
							dato['estado_cta']=obj1['estado']
							dato['observaciones']=obj1['observaciones']
							dato['tipo_cuenta']=obj1['tipoCuenta']
							dato['clave']=obj1['claveAcceso']
							dato['oficina_apertura']= consulta4[0]['nombre_oficina']
							dato['usuario_apertura']= consulta5[0]['usuario']
							dato['fecha_apertura']=str(obj1['fechaApertura'])
							dato['privado_oficina']= obj1['privadoOficina']
							dato['moneda']= cajadebe.moneda
							dato['saldo']= str(obj1['saldo']) 
							lista.append(dato)
 
				data= lista
				exito='1'
			else:
				error='este cliente no existe'
				exito='-1'
		except:
			error='fail'+str(sys.exc_info()[1])
			exito='-1'
	else:
		error='fail'
		exito='-1'
	data= json.dumps({'exito':exito,'data': data,'error':error})
	mimetype="application/json"
	return HttpResponse(data,mimetype)
#--- END DESKTOP ---
@login_required
def oficinas_tg_cierre_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			conf = conf_permisos_Cajas.objects.get(id_caja=C.pk,Trans_global='si')
			lo=[]
			consu= conf_oficinas_para_TransGlobal.objects.filter(id_conf=conf.pk,aux1="si").values('id_oficina')
			for o1 in consu:
				lo.append(o1['id_oficina'])
			if len(lo)>0:
				consulta=list(Oficina.objects.filter(pk__in=lo).exclude(estado_oficina=False).exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina','estado_oficina'))
				for obj in consulta:
					"""
					if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').exists():
						tconf= TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk')
						bases= list(Base_Ext.objects.filter(id_confSis=tconf[0]['pk'],estado_base=True).values('pk','nombre_base'))
						for b in bases:
							dato={}
							dato['pk']= 'b'+str(b['pk'])
							dato['nombre_oficina']= b['nombre_base']
							dato['bx']='si'
							lista.append(dato)
					else:
					"""
					dato={}
					dato['pk']= obj['pk']
					dato['nombre_oficina']= obj['nombre_oficina']
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def Autorizaciones_x_tardanza_view(request):
	return render(request,'ListadoCodigoTardanza.html' )


@login_required
def Autorizaciones_x_tardanza_personal_view(request):
	return render(request,'ListadoCodigoTardanzaP.html' )


@login_required
def autorizaciones_x_tardanza_ajax_view(request):#consulta autorizaciones Retiro Transferencia
	if request.is_ajax:
		try:
			consulta=list(Codigo_desbloqueo_sistema.objects.all().order_by('-pk').values('pk','fecha','codigo_aut','estado','id_user_solicitante','id_caja_solicitante','usuario_autorizador','id_usuario_aut','fecha_desbloqueo','fecha_aut','obs'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M")) 
				dato['cod']=obj['codigo_aut']
				dato['estado']=obj['estado']
				per= Personal.objects.get(pk=obj['id_user_solicitante'])
				Ca= Cajas.objects.get(pk=obj['id_caja_solicitante'])
				dato['soli']= per.nombre.capitalize() +' '+ per.Apellido_paterno.capitalize()+' '+per.Apellido_materno.capitalize()
				dato['caja']= Ca.nombre
				fa=""
				if obj['fecha_aut'] !=None:
					fa= str(obj['fecha_aut'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_aut']=fa
				fr=""
				if obj['fecha_desbloqueo'] !=None:
					fr= str(obj['fecha_desbloqueo'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_desbloqueo']=fr
				dato['obs']=obj['obs']
				dato['user_aut']=''
				dato['cargo_aut']=''
				if obj['usuario_autorizador']=='Gerente':
					g= Gerente.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=g.nombre.capitalize() +' '+g.Apellido_paterno.capitalize()+' '+g.Apellido_materno.capitalize()
					dato['cargo_aut']='Gerente'
				elif obj['usuario_autorizador']=='Personal':
					p= Personal.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=p.nombre.capitalize() +' '+p.Apellido_paterno.capitalize()+' '+p.Apellido_materno.capitalize()
					dato['cargo_aut']='Personal'

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='Error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def ultimo_tc_dolar_caja_ajax_viwe(request):
	#tipo('debe','haber')
	tipo= request.GET.get('tipo')
	usr= request.user.username
	data=''
	try:
		tc=0
		C= Cajas.objects.get(id_usuario__usuario=usr)
		if tipo!= None and tipo!='':
			if tipo =='debe':
				udb= TCajaDebe.objects.filter(id_caja=C.pk,moneda='dolares',tablaRelacional='CompraDolar').latest("pk")
				tc=float(udb.tipo_cambio)
			elif tipo=='haber':
				uhb= TCajaHaber.objects.filter(id_caja=C.pk,moneda='dolares',tablaRelacional='VentaDolar').latest("pk")
				tc=float(uhb.tipo_cambio)
		data=round(tc,3)
	except:
		data=str(sys.exc_info()[1])
	mimetype="text"
	return HttpResponse(data,mimetype)

# transferencias activas enviadas
@login_required
def listaTrans_activos_ajax_view(request):#creados
	if request.is_ajax:
		pag=request.GET.get('pg','')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		usr= request.user.username
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta1= list(SolicitudTransferencia.objects.filter(idCajaDebe__id_oficina=C.id_oficina.pk,idCajaDebe__id_caja=C.pk,idCajaDebe__estadoTransaccion='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','banco','tipo_operacion','nroCta','cel_referencia','nro_operacion','nro_giro','clave'))
			#consulta1= list(TCajaDebe.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk,tablaRelacional='SolicitudTransferencia').order_by('-pk')[desde:hasta].values('pk','fecha','nroRecibo','estadoTransaccion','conceptoDetalle','id_personal','cantidadDinero','moneda','aux1'))
			lista=[]
			for obj in consulta1:
				debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
				#idCli= str(consulta2[0]['id_cliente'])
				#consulta3=list(Cliente.objects.filter(pk=idCli).values('nombre','Apellido_paterno','Apellido_materno','dni'))
				#consulta4= list(Oficina.objects.filter(pk=str(consulta2[0]['id_oficina'])).values('nombre_oficina'))
				ofi=Oficina.objects.get(pk=obj['id_oficina'])
				cli=Cliente.objects.get(pk=obj['id_cliente'])
				cantidaEnvio= ConvertirDecimal(debe.cantidadDinero)-ConvertirDecimal(obj['comision']) -ConvertirDecimal(obj['monto_conceptos'])
				sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'],idCajaHaber__id_caja=C.pk)
				sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'])
				dato={}
				usuGlo=''
				if debe.conceptoDetalle[2] =='-':
					usuGlo= debe.conceptoDetalle.split('-')[2]

				if obj['dniMenor']==None:
					dato['dniMenor']='no'
				else:
					if str(obj['dniMenor']).strip()=='':
						dato['dniMenor']='no'
					else:
						dato['dniMenor']=obj['dniMenor']
				delta= datetime.datetime.today() - debe.fecha
				dato['dias']= delta.days
				dato['transEx']='no'
				if delta.days >1:
					dato['transEx']= 'si'
				dato['usuGlo']= usuGlo
				dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['AutEx']=debe.aux1
				dato['nroRecibo']=debe.nroRecibo
				dato['estado']= debe.estadoTransaccion
				dato['obs_re']=''
				dato['id_personal']=debe.id_personal.pk
				dato['monto']=normalizar(cantidaEnvio)
				dato['moneda']= debe.moneda
				dato['id_trans']=str(obj['pk'])
				dato['oficina_ori']=''
				dato['oficina_des']= ofi.nombre_oficina
				if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
					stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
					if stbe.id_base_ori!= None and stbe.id_base_ori!='':
						be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
						dato['oficina_ori']= be1.nombre_base
					if stbe.id_base_des!= None and stbe.id_base_des!='':
						be2= Base_Ext.objects.get(pk=stbe.id_base_des)
						dato['oficina_des']= be2.nombre_base
				dato['comicion']= str(obj['comision'])
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
				dato['materno_bnf']= obj['Apellido_materno_beneficiado']
				dato['obs']=obj['observaciones']
				dato['nombre_rmt']=cli.nombre
				dato['paterno_rmt']=cli.Apellido_paterno
				dato['materno_rmt']=cli.Apellido_materno
				dato['dni_rmt']=cli.dni
				dato['monto_conceptos']= str(obj['monto_conceptos'])
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['banco']= obj['banco']
				dato['tipo_operacion']= obj['tipo_operacion']
				dato['nroCta']= obj['nroCta']
				dato['cel_referencia']= obj['cel_referencia']
				dato['nro_operacion']= obj['nro_operacion']
				dato['nro_giro']= obj['nro_giro']
				dato['clave']= obj['clave']
				dato['pago_forzado']=''
				dato['fp']=''
				if sq.count()>0:
					dato['pago_forzado']= 'si'
				if sq2.count()>0:
					sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=obj['pk'])
					dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaTrans_bancos_activos_ajax_view(request):#creados
	if request.is_ajax:
		pag=request.GET.get('pg','')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		usr= request.user.username
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta1= list(SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_oficina=C.id_oficina.pk,idCajaDebe__id_caja=C.pk,estado_transferencia='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','comision','monto','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','dni_beneficiado','id_beneficiario','observaciones','monto_conceptos','otros_conceptos','banco','tipo_operacion','nroCta','cel_referencia','nro_operacion','nro_giro','clave','es_privado' ,'estado_transferencia','id_banco','id_operacion'))
			#consulta1= list(TCajaDebe.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk,tablaRelacional='SolicitudTransferencia').order_by('-pk')[desde:hasta].values('pk','fecha','nroRecibo','estadoTransaccion','conceptoDetalle','id_personal','cantidadDinero','moneda','aux1'))
			lista=[]
			for obj in consulta1:
				debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
				cli=Cliente.objects.get(pk=obj['id_cliente'])
		
				sq2=TransferenciaBancoProcesado.objects.filter(id_solicitud_transferencia=obj['pk'])
				dato={}
				usuGlo=''
				if debe.conceptoDetalle[2] =='-':
					usuGlo= debe.conceptoDetalle.split('-')[2]

				delta= datetime.datetime.today() - debe.fecha
				dato['dias']= delta.days
				dato['transEx']='no'
				if delta.days >1:
					dato['transEx']= 'si'
				dato['usuGlo']= usuGlo
				dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['AutEx']=debe.aux1
				dato['nroRecibo']=debe.nroRecibo
				dato['estado']= debe.estadoTransaccion
				dato['obs_re']=''
				dato['id_personal']=debe.id_personal.nombre +' ' + debe.id_personal.Apellido_paterno
				dato['monto']=normalizar(obj['monto'])
				dato['moneda']= debe.moneda
				dato['id_trans']=str(obj['pk'])
				
				dato['comicion']= float(obj['comision'])
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				dato['paterno_bnf']=obj['paterno_beneficiado']
				dato['materno_bnf']= obj['materno_beneficiado']
				dato['obs']=obj['observaciones']
				dato['nombre_rmt']=cli.nombre
				dato['paterno_rmt']=cli.Apellido_paterno
				dato['materno_rmt']=cli.Apellido_materno
				dato['dni_rmt']=cli.dni
				dato['monto_conceptos']= float(obj['monto_conceptos'])
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['banco']= obj['banco']
				dato['id_banco']= obj['id_banco']
				dato['tipo_operacion']= obj['tipo_operacion']
				dato['nroCta']= obj['nroCta']
				dato['cel_referencia']= obj['cel_referencia']
				dato['nro_operacion']= obj['nro_operacion']
				dato['nro_giro']= obj['nro_giro']
				dato['clave']= obj['clave']
				dato['estado_trans']= obj['estado_transferencia']
				dato['fp']=''
				if sq2.count()>0:
					sqpt=TransferenciaBancoProcesado.objects.get(id_solicitud_transferencia=obj['pk'])
					dato['fp']=str(sqpt.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['operacion']=''
				if obj['id_operacion']>0:
					ope = Operacion_agente.objects.get(pk=obj['id_operacion'])
					dato['operacion'] = ope.operacion
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def listaTrans_bancos_procesar_activos_ajax_view(request):#creados
	if request.is_ajax:
		pag=request.GET.get('pg','')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		usr= request.user.username
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			procesa_st = ConfiguracionExtra_caja.objects.filter(id_caja = C.pk, procesa_agente='si').exists()
			if C.id_oficina.categoria_oficina != "central" and not procesa_st:
				consulta1= list(SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,estado_transferencia='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','comision','monto','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','dni_beneficiado','id_beneficiario','observaciones','monto_conceptos','otros_conceptos','banco','tipo_operacion','nroCta','cel_referencia','nro_operacion','nro_giro','clave','es_privado' ,'estado_transferencia','id_banco','id_operacion'))
			else:
				consulta1= list(SolicitudTransferenciaBancoa.objects.filter(estado_transferencia='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','comision','monto','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','dni_beneficiado','id_beneficiario','observaciones','monto_conceptos','otros_conceptos','banco','tipo_operacion','nroCta','cel_referencia','nro_operacion','nro_giro','clave','es_privado' ,'estado_transferencia','id_banco','id_operacion'))
			lista=[]
			for obj in consulta1:
				debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
				cli=Cliente.objects.get(pk=obj['id_cliente'])
		
				sq2=TransferenciaBancoProcesado.objects.filter(id_solicitud_transferencia=obj['pk'])
				dato={}
				usuGlo=''
				if debe.conceptoDetalle[2] =='-':
					usuGlo= debe.conceptoDetalle.split('-')[2]

				delta= datetime.datetime.today() - debe.fecha
				dato['dias']= delta.days
				dato['transEx']='no'
				if delta.days >1:
					dato['transEx']= 'si'
				dato['usuGlo']= usuGlo
				dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['AutEx']=debe.aux1
				dato['nroRecibo']=debe.nroRecibo
				dato['estado']= debe.estadoTransaccion
				dato['obs_re']=''
				dato['id_personal']=debe.id_personal.nombre+' ' + debe.id_personal.Apellido_paterno
				dato['monto']=normalizar(obj['monto'])
				dato['moneda']= debe.moneda
				dato['id_trans']=str(obj['pk'])
				
				dato['comicion']= float(obj['comision'])
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				dato['paterno_bnf']=obj['paterno_beneficiado']
				dato['materno_bnf']= obj['materno_beneficiado']
				dato['obs']=obj['observaciones']
				dato['nombre_rmt']=cli.nombre
				dato['paterno_rmt']=cli.Apellido_paterno
				dato['materno_rmt']=cli.Apellido_materno
				dato['dni_rmt']=cli.dni
				dato['monto_conceptos']= float(obj['monto_conceptos'])
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['banco']= obj['banco']
				dato['id_banco']= obj['id_banco']
				dato['tipo_operacion']= obj['tipo_operacion']
				dato['nroCta']= obj['nroCta']
				dato['cel_referencia']= obj['cel_referencia']
				dato['nro_operacion']= obj['nro_operacion']
				dato['nro_giro']= obj['nro_giro']
				dato['clave']= obj['clave']
				dato['estado_trans']= obj['estado_transferencia']
				dato['fp']=''
				if sq2.count()>0:
					sqpt=TransferenciaBancoProcesado.objects.get(id_solicitud_transferencia=obj['pk'])
					dato['fp']=str(sqpt.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['operacion']=''
				if obj['id_operacion']>0:
					ope = Operacion_agente.objects.get(pk=obj['id_operacion'])
					dato['operacion'] = ope.operacion
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Transfe_Creadas_global_view(request):
	return render(request,'TransCreadasGlobales.html')


@login_required
def listaTransfereciasCreadasGlobalesTotal_ajax_view(request):#creados
	if request.is_ajax:
		pag=request.GET.get('pg','')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			if ConfiguracionExtra_caja.objects.filter(id_caja=C.pk,aux5='si').exists():
				consulta1= list(SolicitudTransferencia.objects.all().order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','banco'))
				#consulta1= list(TCajaDebe.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk,tablaRelacional='SolicitudTransferencia').order_by('-pk')[desde:hasta].values('pk','fecha','nroRecibo','estadoTransaccion','conceptoDetalle','id_personal','cantidadDinero','moneda','aux1'))
				for obj in consulta1:
					#idCajaD= str(obj['pk'])
					#consulta2= list(SolicitudTransferencia.objects.filter(idCajaDebe=idCajaD).values('pk','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos'))#cambiar por object.get
					debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
					#idCli= str(consulta2[0]['id_cliente'])
					#consulta3=list(Cliente.objects.filter(pk=idCli).values('nombre','Apellido_paterno','Apellido_materno','dni'))
					#consulta4= list(Oficina.objects.filter(pk=str(consulta2[0]['id_oficina'])).values('nombre_oficina'))
					ofi=Oficina.objects.get(pk=obj['id_oficina'])
					cli=Cliente.objects.get(pk=obj['id_cliente'])
					cantidaEnvio= ConvertirDecimal(debe.cantidadDinero)-ConvertirDecimal(obj['comision']) -ConvertirDecimal(obj['monto_conceptos'])
					sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'],idCajaHaber__id_caja=C.pk)
					sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'])
					dato={}	
					usuGlo=''
					if debe.conceptoDetalle[2] =='-':
						usuGlo= debe.conceptoDetalle.split('-')[2]

					if obj['dniMenor']==None:
						dato['dniMenor']='no'
					else:
						if str(obj['dniMenor']).strip()=='':
							dato['dniMenor']='no'
						else:
							dato['dniMenor']=obj['dniMenor']

					dato['usuGlo']= usuGlo
					dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
					dato['AutEx']=debe.aux1
					dato['nroRecibo']=debe.nroRecibo
					dato['estado']= debe.estadoTransaccion
					dato['obs_re']=''
					dato['id_personal']=debe.id_personal.pk
					dato['monto']=normalizar(cantidaEnvio)
					dato['moneda']= debe.moneda
					dato['id_trans']=str(obj['pk'])
					dato['oficina_ori']=debe.id_oficina.nombre_oficina
					dato['oficina_des']= ofi.nombre_oficina
					if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
						stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
						if stbe.id_base_ori!= None and stbe.id_base_ori!='':
							be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
							dato['oficina_ori']= be1.nombre_base
						if stbe.id_base_des!= None and stbe.id_base_des!='':
							be2= Base_Ext.objects.get(pk=stbe.id_base_des)
							dato['oficina_des']= be2.nombre_base
					dato['comicion']= str(obj['comision'])
					dato['nombre_bnf']=obj['nombre_beneficiado']
					dato['dni_bnf']=obj['dni_beneficiado']
					dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
					dato['materno_bnf']= obj['Apellido_materno_beneficiado']
					dato['obs']=obj['observaciones']
					dato['nombre_rmt']=cli.nombre
					dato['paterno_rmt']=cli.Apellido_paterno
					dato['materno_rmt']=cli.Apellido_materno
					dato['dni_rmt']=cli.dni
					dato['monto_conceptos']= str(obj['monto_conceptos'])
					dato['otros_conceptos']= obj['otros_conceptos']
					dato['banco']= obj['banco']
					dato['pago_forzado']=''
					dato['fp']=''
					dato['usup']=''
					if sq.count()>0:
						dato['pago_forzado']= 'si'
					if sq2.count()>0:
						sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=obj['pk'])
						dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
						dato['usup']=sqpt.idCajaHaber.id_personal.nombre+' '+sqpt.idCajaHaber.id_personal.Apellido_paterno

					lista.append(dato)
				data= json.dumps(lista)
			else:
				data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def listaTransfereciasCreadasGlobalesTotal_filtro_ajax_view(request):
	if request.is_ajax:
		pag=request.GET.get('pg','')
		valor=request.GET.get('filtro')
		pg= 1
		if pag !='':
			pg= int(pag)
		desde= (pg-1)*20
		hasta= pg*20
		usr= request.user.username
		try:
			lista=[]
			if valor != None and valor != "":
				C = Cajas.objects.get(id_usuario__usuario=usr)
				if ConfiguracionExtra_caja.objects.filter(id_caja=C.pk,aux5='si').exists():
					consulta1= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=valor)| Q(Apellido_paterno_beneficiado__icontains=valor)|Q(Apellido_materno_beneficiado__icontains=valor) | Q(id_cliente__nombre__icontains=valor) | Q(id_cliente__Apellido_paterno__icontains=valor ) | Q(id_cliente__Apellido_materno__icontains=valor) | Q(id_cliente__dni__icontains=valor)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','banco','tipo_operacion','nroCta','cel_referencia','nro_operacion','nro_giro','clave' ))
					for obj in consulta1:
						dato={}
						idCajaD= str(obj['idCajaDebe'])
						CajaDebe= TCajaDebe.objects.get(pk=idCajaD)
						idCli= str(obj['id_cliente'])
						idSt= str(obj['pk'])
						#sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=idSt,idCajaHaber__id_caja=C.pk)
						sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'])
						consulta3=list(Cliente.objects.filter(pk=idCli).values('nombre','Apellido_paterno','Apellido_materno','dni'))
						cantidaEnvio= ConvertirDecimal(str(CajaDebe.cantidadDinero))-ConvertirDecimal(str(obj['comision']))-ConvertirDecimal(str(obj['monto_conceptos']))
						dato['fecha']=str(CajaDebe.fecha.strftime("%d-%m-%Y %H:%M"))
						dato['nroRecibo']=CajaDebe.nroRecibo
						dato['estado']= CajaDebe.estadoTransaccion
						dato['monto']=normalizar(cantidaEnvio)
						dato['id_trans']=obj['pk']
						od= Oficina.objects.get(pk=obj['id_oficina'])
						dato['oficina_des']= od.nombre_oficina
						dato['oficina_ori']= CajaDebe.id_oficina.nombre_oficina
						if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
							stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
							if stbe.id_base_ori!= None and stbe.id_base_ori!='':
								be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
								dato['oficina_ori']= be1.nombre_base
							if stbe.id_base_des!= None and stbe.id_base_des!='':
								be2= Base_Ext.objects.get(pk=stbe.id_base_des)
								dato['oficina_des']= be2.nombre_base
						dato['op_emisor']= CajaDebe.id_personal.nombre +' '+CajaDebe.id_personal.Apellido_paterno +' '+CajaDebe.id_personal.Apellido_materno
						dato['comicion']= str(obj['comision'])
						dato['moneda']= CajaDebe.moneda
						dato['nombre_bnf']=obj['nombre_beneficiado']
						dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
						dato['materno_bnf']= obj['Apellido_materno_beneficiado']
						dato['dni_bnf']=obj['dni_beneficiado']
						dato['obs']=obj['observaciones']
						dato['nombre_rmt']=consulta3[0]['nombre']
						dato['paterno_rmt']=consulta3[0]['Apellido_paterno']
						dato['materno_rmt']=consulta3[0]['Apellido_materno']
						dato['dni_rmt']=consulta3[0]['dni']
						if obj['dniMenor']==None:
							dato['dniMenor']='no'
						else:
							if str(obj['dniMenor']).strip()=='':
								dato['dniMenor']='no'
							else:
								dato['dniMenor']=obj['dniMenor']
						dato['monto_conceptos']= str(obj['monto_conceptos'])
						dato['Ule']=''
						leid= CajaDebe.observaciones2.split('-')
						if len(leid) ==2:
							p=Personal.objects.get(pk=leid[1])
							dato['Ule']=p.nombre +' '+p.Apellido_paterno
						dato['estGlo']=leid[0]
						dato['dtd']=CajaDebe.aux1
						dato['otros_conceptos']= obj['otros_conceptos']
						dato['banco']= obj['banco']
						dato['tipo_operacion']= obj['tipo_operacion']
						dato['nroCta']= obj['nroCta']
						dato['cel_referencia']= obj['cel_referencia']
						dato['nro_operacion']= obj['nro_operacion']
						dato['nro_giro']= obj['nro_giro']
						dato['clave']= obj['clave']
						dato['pago_forzado']= ''
						dato['fp']=''
						dato['usup']=''
						
						if sq2.count()>0:
							sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=obj['pk'])
							dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
							dato['usup']=sqpt.idCajaHaber.id_personal.nombre+' '+sqpt.idCajaHaber.id_personal.Apellido_paterno

						lista.append(dato)
				data= json.dumps(lista)
			else:
				data= json.dumps(lista)
		except:
			data='fail'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def CantiInterReciActiva_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			canti1=Intercambio.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo').count()
			canti2=Intercambios_dirigido.objects.filter(id_intercambio__id_oficina=C.id_oficina.pk,id_intercambio__idCajaDebe__estadoTransaccion='activo').count()
			canti3=Intercambios_dirigido.objects.filter(id_caja_destino=C.pk,id_intercambio__idCajaDebe__estadoTransaccion='activo').count()
			data= str(canti1-canti2+canti3)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="text"
	return HttpResponse(data,mimetype)

#autorizaciones de anulacion de dolar
@login_required
@permission_required('Main.add_oficina')
def Autorizaciones_anulacion_dolar_view(request):
	return render(request,'autorizarAnulacionAdmi.html' )

@login_required
def Autorizaciones_anulacion_dolar_personal_view(request):
	return render(request,'AutorizarAnulacionDolarPer.html' )

@login_required
def autorizaciones_anu_dolar_ajax_view(request):#consulta autorizaciones anulaciones de dolar compra o venta
	if request.is_ajax:
		try:
			consulta=list(SolicitudAnulacionDolar.objects.all().order_by('-pk').values('pk','fecha','id_CompraVenta_dolar','tablaRelacional','codigo_aut','estado','id_caja_solicitante','id_user_solicitante','usuario_autorizador','id_usuario_aut','fecha_aut','fecha_anu','observaciones','aux1'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['pkDo']= obj['id_CompraVenta_dolar']
				dato['operacion']=obj['tablaRelacional']
				dato['cod']=obj['codigo_aut']
				dato['estado']=obj['estado']
				per= Personal.objects.get(pk=obj['id_user_solicitante'])
				Ca = Cajas.objects.get(pk=obj['id_caja_solicitante'])
				dato['Csoli']='['+Ca.id_oficina.nombre_oficina +'] '+Ca.nombre
				dato['soli']= per.nombre.capitalize() +' '+ per.Apellido_paterno.capitalize()+' '+per.Apellido_materno.capitalize()
				fa=""
				if obj['fecha_aut'] !=None:
					fa= str(obj['fecha_aut'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_aut']=fa
				fn=""
				if obj['fecha_anu'] !=None:
					fn= str(obj['fecha_anu'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_anu']=fn
				fst=""
				dato['obs']=obj['observaciones']
				dato['desblo']='no'
				if obj['aux1'][:10]=='autorizado':
					dato['desblo']='si'
				dato['user_aut']=''
				dato['cargo_aut']=''
				if obj['usuario_autorizador']=='Gerente':
					g= Gerente.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=g.nombre.capitalize() +' '+g.Apellido_paterno.capitalize()+' '+g.Apellido_materno.capitalize()
					dato['cargo_aut']='Gerente'
				elif obj['usuario_autorizador']=='Personal':
					p= Personal.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=p.nombre.capitalize() +' '+p.Apellido_paterno.capitalize()+' '+p.Apellido_materno.capitalize()
					dato['cargo_aut']='Personal'
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='Error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaCliente_user_caja_autocompletado_ajax_view(request):
	if request.is_ajax:
		html_clientes=''
		dato=''
		text_parametro=request.GET.get('parametro')
		tipo=request.GET.get('tipo')
		usr = request.user.username
		C= Cajas.objects.get(id_usuario__usuario=usr)
		try:
			fil= QuitarEspacios(text_parametro).split(' ')
			no=fil[0]
			am=''
			ap=''
			if len(fil)>1:
				ap=fil[1]
				if len(fil)>2:
					am=fil[2]
			consulta=list(Cliente.objects.filter(nombre__icontains=no,Apellido_paterno__icontains=ap,Apellido_materno__icontains=am,idCaja=C.pk).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','telefono','direccion','fecha_nacimiento','email','drem','tipo_persona').order_by('pk')[:5])
			lista=[]
			if tipo==1:	
				for obj in consulta:
					html_clientes=html_clientes+'<li data-value="'+str(obj['pk'])+'" n="'+obj['nombre'].upper()+'" ap="'+obj['Apellido_paterno'].upper()+'" am="'+obj['Apellido_materno'].upper()+'" cel="'+obj['telefono']+'"><a href="javascript:void(0);">'+obj['nombre'].upper()+' '+obj['Apellido_paterno'].upper()+' '+obj['Apellido_materno'].upper()+'</a></li>'

			else:
				for obj in consulta:
					html_clientes=html_clientes+'<li data-value="'+str(obj['pk'])+'" n="'+obj['nombre'].upper()+'" ap="'+obj['Apellido_paterno'].upper()+'" am="'+obj['Apellido_materno'].upper()+'" dni="'+obj['dni'].upper()+'"><a href="javascript:void(0);">'+obj['nombre'].upper()+' '+obj['Apellido_paterno'].upper()+' '+obj['Apellido_materno'].upper()+'</a></li>'				

			lista.append(html_clientes)	
			dato={'listaClientes':lista}
		except:
			dato='fail'+str(sys.exc_info()[1])
	else:
		dato='fail'+str(sys.exc_info()[1])
	mimetype="application/json"
	data= json.dumps(dato)

	return HttpResponse(data,mimetype)

#---------------------------------- FILTRO AVANZADO ----------------------------------
@login_required
def listaTransfereciasRecibidas_filtro_avanzado_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		soloAct=request.GET.get('sa',"")#solo activos
		oficina=request.GET.get('oficina')
		nombre=request.GET.get('fNombre',"")
		ap=request.GET.get('fAp',"")
		am=request.GET.get('fAm',"")
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=20
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if soloAct!=None and soloAct=="sa":
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			else:
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			
			aut_ret=True
			if conf_permisos_Cajas.objects.filter(id_caja=C.pk).exists():
				rta= conf_permisos_Cajas.objects.get(id_caja=C.pk)
				if rta.aux2 !='si':
					aut_ret= False
			for obj in consulta:
				dato={}
				idCajaD= str(obj['idCajaDebe'])
				CajaDebe= TCajaDebe.objects.get(pk=idCajaD)
				dtd=CajaDebe.aux1
				comi=0
				if esReal(dtd)>0:
					comi=esReal(dtd)
				else:
					comi=str(obj['comision'])
				idCli= str(obj['id_cliente'])
				idSt= str(obj['pk'])
				sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=idSt,idCajaHaber__id_caja=C.pk)
				sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=idSt)
				consulta3=Cliente.objects.get(pk=idCli)
				cantidaEnvio= ConvertirDecimal(str(CajaDebe.cantidadDinero))-ConvertirDecimal(str(obj['comision']))-ConvertirDecimal(str(obj['monto_conceptos']))
				delta= datetime.datetime.today() - CajaDebe.fecha
				dato['dias']= delta.days
				dato['transEx']= 'no'
				if delta.days >=5 and aut_ret:
					dato['transEx']= 'si'
				dato['fecha']=str(CajaDebe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=CajaDebe.nroRecibo
				dato['estado']= CajaDebe.estadoTransaccion
				dato['monto']=normalizar(cantidaEnvio)
				dato['id_trans']=obj['pk']
				dato['oficina_des']=''
				dato['oficina_ori']= CajaDebe.id_oficina.nombre_oficina
				if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
					stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
					if stbe.id_base_ori!= None and stbe.id_base_ori!='':
						be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
						dato['oficina_ori']= be1.nombre_base
					if stbe.id_base_des!= None and stbe.id_base_des!='':
						be2= Base_Ext.objects.get(pk=stbe.id_base_des)
						dato['oficina_des']= be2.nombre_base
				dato['op_emisor']= CajaDebe.id_personal.nombre +' '+CajaDebe.id_personal.Apellido_paterno +' '+CajaDebe.id_personal.Apellido_materno
				dato['comicion']= comi
				dato['moneda']= CajaDebe.moneda
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
				dato['materno_bnf']= obj['Apellido_materno_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				dato['obs']=obj['observaciones']
				if obj['dniMenor']!=None and obj['dniMenor']!='':
					dato['dniMenor']=obj['dniMenor']
				else:
					dato['dniMenor']='no'

				if obj['nroCta']!=None:
					if str(obj['nroCta']).strip()!='':
						dato['nroCta']=str(obj['nroCta']).strip()
					else:
						dato['nroCta']=str(-1)
				else:
					dato['nroCta']=str(-1)
				dato['nombre_rmt']=consulta3.nombre
				dato['paterno_rmt']=consulta3.Apellido_paterno
				dato['materno_rmt']=consulta3.Apellido_materno
				dato['dni_rmt']=consulta3.dni
				dato['monto_conceptos']= str(obj['monto_conceptos'])
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['banco']= obj['banco']
				dato['estGlo']=CajaDebe.observaciones2
				dato['pago_forzado']= ''
				dato['fp']=''
				dato['UsuPagador']=''
				if sq.count() ==0:
					dato['pago_forzado']= 'si'
				if sq2.count()>0:
					sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=idSt)
					dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
					dato['UsuPagador']=sqpt.idCajaHaber.id_personal.nombre+" "+sqpt.idCajaHaber.id_personal.Apellido_paterno+" "+sqpt.idCajaHaber.id_personal.Apellido_materno
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaTransfereciasCreadas_filtro_avanzado_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		soloAct=request.GET.get('sa',"")#solo activos
		soloCaja=request.GET.get('sc',"")#solo caja
		oficina=request.GET.get('oficina')
		nombre=request.GET.get('fNombre',"")
		ap=request.GET.get('fAp',"")
		am=request.GET.get('fAm',"")
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=20
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if soloAct!=None and soloAct=="sa":
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))

			else:
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					if soloCaja=="sc":
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))

			
			for obj in consulta:
				#idCajaD= str(obj['pk'])
				#consulta2= list(SolicitudTransferencia.objects.filter(idCajaDebe=idCajaD).values('pk','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos'))#cambiar por object.get
				debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
				#idCli= str(consulta2[0]['id_cliente'])
				#consulta3=list(Cliente.objects.filter(pk=idCli).values('nombre','Apellido_paterno','Apellido_materno','dni'))
				#consulta4= list(Oficina.objects.filter(pk=str(consulta2[0]['id_oficina'])).values('nombre_oficina'))
				ofi=Oficina.objects.get(pk=obj['id_oficina'])
				cli=Cliente.objects.get(pk=obj['id_cliente'])
				cantidaEnvio= ConvertirDecimal(debe.cantidadDinero)-ConvertirDecimal(obj['comision']) -ConvertirDecimal(obj['monto_conceptos'])
				sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'],idCajaHaber__id_caja=C.pk)
				sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'])
				dato={}	
				usuGlo=''
				if debe.conceptoDetalle[2] =='-':
					usuGlo= debe.conceptoDetalle.split('-')[2]

				if obj['dniMenor']==None:
					dato['dniMenor']='no'
				else:
					if str(obj['dniMenor']).strip()=='':
						dato['dniMenor']='no'
					else:
						dato['dniMenor']=obj['dniMenor']
				delta= datetime.datetime.today() - debe.fecha
				dato['dias']= delta.days
				dato['transEx']='no'
				if delta.days >1:
					dato['transEx']= 'si'
				dato['usuGlo']= usuGlo
				dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['AutEx']=debe.aux1
				dato['nroRecibo']=debe.nroRecibo
				dato['estado']= debe.estadoTransaccion
				dato['obs_re']=''
				dato['id_personal']=debe.id_personal.nombre+" "+ debe.id_personal.Apellido_paterno+" "+debe.id_personal.Apellido_materno
				dato['monto']=normalizar(cantidaEnvio)
				dato['moneda']= debe.moneda
				dato['id_trans']=str(obj['pk'])
				dato['oficina_ori']=''
				dato['oficina_des']= ofi.nombre_oficina
				if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
					stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
					if stbe.id_base_ori!= None and stbe.id_base_ori!='':
						be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
						dato['oficina_ori']= be1.nombre_base
					if stbe.id_base_des!= None and stbe.id_base_des!='':
						be2= Base_Ext.objects.get(pk=stbe.id_base_des)
						dato['oficina_des']= be2.nombre_base
				dato['comicion']= str(obj['comision'])
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
				dato['materno_bnf']= obj['Apellido_materno_beneficiado']
				dato['obs']=obj['observaciones']
				dato['nombre_rmt']=cli.nombre
				dato['paterno_rmt']=cli.Apellido_paterno
				dato['materno_rmt']=cli.Apellido_materno
				dato['dni_rmt']=cli.dni
				dato['monto_conceptos']= str(obj['monto_conceptos'])
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['banco']= obj['banco']
				dato['pago_forzado']=''
				dato['fp']=''
				if sq.count()>0:
					dato['pago_forzado']= 'si'
				if sq2.count()>0:
					sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=obj['pk'])
					dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaTransfereciasPagadas_filtro_avanzado_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		todo=request.GET.get('tc',"")#todas las cajas
		oficina=request.GET.get('oficina')
		nombre=request.GET.get('fNombre',"")
		ap=request.GET.get('fAp',"")
		am=request.GET.get('fAm',"")
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=20
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if todo!=None and todo=="tc":
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
				else:
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
			else:
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,idCajaHaber__fecha__range=(horamin,horamax),id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
				else:
					if oficina.isdigit():
						if oficina=="0":
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							if nombre!="" or ap!="" or am!="":
								#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
							else:
								#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina,).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
					else:
						be= Base_Ext.objects.get(pk=oficina[1:])
						ox= be.id_confSis.id_oficina.pk
						if nombre!="" or ap!="" or am!="":
							#consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=C.id_oficina.pk,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=C.id_oficina.pk,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(Q(id_solicitud_transferencia__nombre_beneficiado__icontains=nombre,id_solicitud_transferencia__Apellido_paterno_beneficiado__icontains=ap,id_solicitud_transferencia__Apellido_materno_beneficiado__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox) | Q(id_solicitud_transferencia__id_cliente__nombre__icontains=nombre,id_solicitud_transferencia__id_cliente__Apellido_paterno__icontains=ap ,id_solicitud_transferencia__id_cliente__Apellido_materno__icontains=am,idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
						else:
							#consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk,idCajaHaber__id_caja=C.pk,id_solicitud_transferencia__idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaHaber','idCajaHaber','idCajaHaber'))
			
			for obj in consulta:
				dato={}
				pago = PagoTransferencia.objects.get(pk=obj['pk'])
				dtd=pago.id_solicitud_transferencia.idCajaDebe.aux1
				comi=0
				if esReal(dtd)>0:
					comi=esReal(dtd)
				else:
					comi=str(pago.id_solicitud_transferencia.comision)
				idCli= str(pago.id_solicitud_transferencia.id_cliente)
				idSt= str(pago.id_solicitud_transferencia.pk)
				consulta3=Cliente.objects.get(pk=idCli)
				cantidaEnvio= ConvertirDecimal(str(pago.id_solicitud_transferencia.idCajaDebe.cantidadDinero))-ConvertirDecimal(str(pago.id_solicitud_transferencia.comision))-ConvertirDecimal(str(pago.id_solicitud_transferencia.monto_conceptos))
				dato['fecha']=str(pago.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=pago.idCajaHaber.nroRecibo
				dato['estado']= pago.id_solicitud_transferencia.idCajaDebe.estadoTransaccion
				dato['monto']=normalizar(cantidaEnvio)
				dato['id_trans']=obj['pk']
				dato['oficina_des']=''
				dato['oficina_ori']= pago.id_solicitud_transferencia.idCajaDebe.id_oficina.nombre_oficina
				if ST_BaseExterna.objects.filter(id_transferencia=idSt).exists():
					stbe= ST_BaseExterna.objects.get(id_transferencia=idSt)
					if stbe.id_base_ori!= None and stbe.id_base_ori!='':
						be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
						dato['oficina_ori']= be1.nombre_base
					if stbe.id_base_des!= None and stbe.id_base_des!='':
						be2= Base_Ext.objects.get(pk=stbe.id_base_des)
						dato['oficina_des']= be2.nombre_base
				dato['enviador']= pago.id_solicitud_transferencia.idCajaDebe.id_personal.nombre +' '+pago.id_solicitud_transferencia.idCajaDebe.id_personal.Apellido_paterno +' '+pago.id_solicitud_transferencia.idCajaDebe.id_personal.Apellido_materno
				dato['pagador']=pago.idCajaHaber.id_personal.nombre+' '+pago.idCajaHaber.id_personal.Apellido_paterno+' '+pago.idCajaHaber.id_personal.Apellido_materno
				dato['comicion']= comi
				dato['moneda']= pago.id_solicitud_transferencia.idCajaDebe.moneda
				dato['nombre_bnf']=pago.id_solicitud_transferencia.nombre_beneficiado
				dato['paterno_bnf']=pago.id_solicitud_transferencia.Apellido_paterno_beneficiado
				dato['materno_bnf']= pago.id_solicitud_transferencia.Apellido_materno_beneficiado
				dato['dni_bnf']=pago.id_solicitud_transferencia.dni_beneficiado
				dato['obs']=pago.id_solicitud_transferencia.observaciones
				dato['obs_pa']=pago.observaciones
				dato['nombre_rmt']=consulta3.nombre
				dato['paterno_rmt']=consulta3.Apellido_paterno
				dato['materno_rmt']=consulta3.Apellido_materno
				dato['dni_rmt']=consulta3.dni
				dato['monto_conceptos']= str(pago.id_solicitud_transferencia.monto_conceptos)
				dato['otros_conceptos']= pago.id_solicitud_transferencia.otros_conceptos
				dato['banco']= pago.id_solicitud_transferencia.banco
				dato['estGlo']=pago.id_solicitud_transferencia.idCajaDebe.observaciones2
				if EgresoExtraTransferencia.objects.filter(id_pago_transferencia=pago.pk).exists():
					EgresoExtra=EgresoExtraTransferencia.objects.get(id_pago_transferencia=pago.pk)
					dato['egreso_extra']= str(EgresoExtra.monto)
				else:
					dato['egreso_extra']= str(0)
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaTransfereciasRecibidasGlobal_filtro_avanzado_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		soloAct=request.GET.get('sa',"")#solo activos
		oficina=request.GET.get('oficinaO')#origen
		oficinaD=request.GET.get('oficinaD')#destino
		nombre=request.GET.get('fNombre',"")
		ap=request.GET.get('fAp',"")
		am=request.GET.get('fAm',"")
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=20
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			conf = conf_permisos_Cajas.objects.get(id_caja=C.pk,Trans_global='si')
			lo=[]
			consu= conf_oficinas_para_TransGlobal.objects.filter(id_conf=conf.pk,aux1="si").values('id_oficina')
			for o1 in consu:
				lo.append(o1['id_oficina'])
			consulta=[]
			if len(lo)>0:
				if soloAct!=None and soloAct=="sa":
					if tipoFiltroF=="h":
						fIni= datetime.date.today()
						horamin= datetime.datetime.combine(fIni,datetime.time.min)
						horamax= datetime.datetime.combine(fIni,datetime.time.max)
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					elif tipoFiltroF=="f":
						fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					elif tipoFiltroF=="ef":
						fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
						fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha1,datetime.time.min)
						horamax= datetime.datetime.combine(fecha2,datetime.time.max)
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				else:
					if tipoFiltroF=="h":
						fIni= datetime.date.today()
						horamin= datetime.datetime.combine(fIni,datetime.time.min)
						horamax= datetime.datetime.combine(fIni,datetime.time.max)
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					elif tipoFiltroF=="f":
						fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					elif tipoFiltroF=="ef":
						fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
						fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha1,datetime.time.min)
						horamax= datetime.datetime.combine(fecha2,datetime.time.max)
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficinaD.isdigit():
							if oficinaD=="0":
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=oficina) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina__in=lo,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=ox) | Q(id_oficina__in=lo,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina__in=lo,idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if oficina.isdigit():
									if oficina=="0":
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										if nombre!="" or ap!="" or am!="":
											consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=oficina) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
										else:
											consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									be= Base_Ext.objects.get(pk=oficina[1:])
									ox= be.id_confSis.id_oficina.pk
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficinaD,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=ox) | Q(id_oficina=oficinaD,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficinaD,idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							bed= Base_Ext.objects.get(pk=oficinaD[1:])
							oxd= bed.id_confSis.id_oficina.pk
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=oficina) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=oficina)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oxd,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=ox) | Q(id_oficina=oxd,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=ox)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oxd,idCajaDebe__id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
			aut_ret=True
			if conf_permisos_Cajas.objects.filter(id_caja=C.pk).exists():
				rta= conf_permisos_Cajas.objects.get(id_caja=C.pk)
				if rta.aux2 !='si':
					aut_ret= False
			for obj in consulta:
				dato={}
				idCajaD= str(obj['idCajaDebe'])
				CajaDebe= TCajaDebe.objects.get(pk=idCajaD)
				idCli= str(obj['id_cliente'])
				idSt= str(obj['pk'])
				sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=idSt,idCajaHaber__id_caja=C.pk)
				consulta3=Cliente.objects.get(pk=idCli)
				cantidaEnvio= ConvertirDecimal(str(CajaDebe.cantidadDinero))-ConvertirDecimal(str(obj['comision']))-ConvertirDecimal(str(obj['monto_conceptos']))
				dato['fecha']=str(CajaDebe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=CajaDebe.nroRecibo
				dato['estado']= CajaDebe.estadoTransaccion
				dato['monto']=normalizar(cantidaEnvio)
				dato['id_trans']=obj['pk']
				od= Oficina.objects.get(pk=obj['id_oficina'])
				dato['oficina_des']= od.nombre_oficina
				dato['oficina_ori']= CajaDebe.id_oficina.nombre_oficina
				if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
					stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
					if stbe.id_base_ori!= None and stbe.id_base_ori!='':
						be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
						dato['oficina_ori']= be1.nombre_base
					if stbe.id_base_des!= None and stbe.id_base_des!='':
						be2= Base_Ext.objects.get(pk=stbe.id_base_des)
						dato['oficina_des']= be2.nombre_base
				dato['op_emisor']= CajaDebe.id_personal.nombre +' '+CajaDebe.id_personal.Apellido_paterno +' '+CajaDebe.id_personal.Apellido_materno
				dato['comicion']= str(obj['comision'])
				dato['moneda']= CajaDebe.moneda
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
				dato['materno_bnf']= obj['Apellido_materno_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				if obj['dniMenor']!=None and obj['dniMenor']!='':
					dato['dniMenor']=obj['dniMenor']
				else:
					dato['dniMenor']='no'

				if obj['nroCta']!=None:
					if str(obj['nroCta']).strip()!='':
						dato['nroCta']=str(obj['nroCta']).strip()
					else:
						dato['nroCta']=str(-1)
				else:
					dato['nroCta']=str(-1)	
				dato['obs']=obj['observaciones']
				dato['nombre_rmt']=consulta3.nombre
				dato['paterno_rmt']=consulta3.Apellido_paterno
				dato['materno_rmt']=consulta3.Apellido_materno
				dato['dni_rmt']=consulta3.dni
				dato['monto_conceptos']= str(obj['monto_conceptos'])
				dato['Ule']=''
				leid= CajaDebe.observaciones2.split('-')
				if len(leid) ==2:
					p=Personal.objects.get(pk=leid[1])
					dato['Ule']=p.nombre +' '+p.Apellido_paterno
				dato['estGlo']=leid[0]
				dato['dtd']=CajaDebe.aux1
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['pago_forzado']= ''
				if sq.count() ==0:
					dato['pago_forzado']= 'si'

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaTransfereciasCreadasGlobal_filtro_avanzado_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		soloAct=request.GET.get('sa',"")#solo activos
		soloCaja=request.GET.get('sc',"")#solo caja
		oficina=request.GET.get('oficina','0')#oficina destino
		cajaO=request.GET.get('cajaO','0')#Caja Origen
		oficinaO=request.GET.get('oficinaO','0')#Oficina Origen
		nombre=request.GET.get('fNombre',"")
		ap=request.GET.get('fAp',"")
		am=request.GET.get('fAm',"")
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=1000
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			
			consulta=[]
			if soloAct!=None and soloAct=="sa":
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:#--------
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				else:
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo',idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__estadoTransaccion='activo') | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__estadoTransaccion='activo')).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
			else:
				if tipoFiltroF=="h":
					fIni= datetime.date.today()
					horamin= datetime.datetime.combine(fIni,datetime.time.min)
					horamax= datetime.datetime.combine(fIni,datetime.time.max)
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				elif tipoFiltroF=="f":
					fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				elif tipoFiltroF=="ef":
					fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha1,datetime.time.min)
					horamax= datetime.datetime.combine(fecha2,datetime.time.max)
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__fecha__range=(horamin,horamax)) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__fecha__range=(horamin,horamax))).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
				else:
					if oficinaO!="0":
						C = Cajas.objects.get(pk=cajaO,id_oficina=oficinaO)
						if soloCaja=="sc":
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_caja=C.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_caja=C.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_caja=C.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_caja=C.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							if oficina.isdigit():
								if oficina=="0":
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									if nombre!="" or ap!="" or am!="":
										consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
									else:
										consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina,idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								be= Base_Ext.objects.get(pk=oficina[1:])
								ox= be.id_confSis.id_oficina.pk
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am,idCajaDebe__id_oficina=C.id_oficina.pk)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox,idCajaDebe__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
					else:
						if oficina.isdigit():
							if oficina=="0":
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.all().order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								if nombre!="" or ap!="" or am!="":
									consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=oficina,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_oficina=oficina,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
								else:
									consulta= list(SolicitudTransferencia.objects.filter(id_oficina=oficina).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
						else:
							be= Base_Ext.objects.get(pk=oficina[1:])
							ox= be.id_confSis.id_oficina.pk
							if nombre!="" or ap!="" or am!="":
								consulta= list(SolicitudTransferencia.objects.filter(Q(id_oficina=ox,nombre_beneficiado__icontains=nombre,Apellido_paterno_beneficiado__icontains=ap,Apellido_materno_beneficiado__icontains=am) | Q(id_oficina=ox,id_cliente__nombre__icontains=nombre,id_cliente__Apellido_paterno__icontains=ap ,id_cliente__Apellido_materno__icontains=am)).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
							else:
								consulta= list(SolicitudTransferencia.objects.filter(id_oficina=ox).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta'))
			
			for obj in consulta:
				#idCajaD= str(obj['pk'])
				#consulta2= list(SolicitudTransferencia.objects.filter(idCajaDebe=idCajaD).values('pk','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos'))#cambiar por object.get
				debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
				#idCli= str(consulta2[0]['id_cliente'])
				#consulta3=list(Cliente.objects.filter(pk=idCli).values('nombre','Apellido_paterno','Apellido_materno','dni'))
				#consulta4= list(Oficina.objects.filter(pk=str(consulta2[0]['id_oficina'])).values('nombre_oficina'))
				ofi=Oficina.objects.get(pk=obj['id_oficina'])
				cli=Cliente.objects.get(pk=obj['id_cliente'])
				solicitud=SolicitudTransferencia.objects.get(pk=obj['pk'])
				cantidaEnvio= ConvertirDecimal(debe.cantidadDinero)-ConvertirDecimal(obj['comision']) -ConvertirDecimal(obj['monto_conceptos'])
				#sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'],idCajaHaber__id_caja=debe.id_caja.pk)
				sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'])
				dato={}	
				usuGlo=''
				if debe.conceptoDetalle[2] =='-':
					usuGlo= debe.conceptoDetalle.split('-')[2]

				if obj['dniMenor']==None:
					dato['dniMenor']='no'
				else:
					if str(obj['dniMenor']).strip()=='':
						dato['dniMenor']='no'
					else:
						dato['dniMenor']=obj['dniMenor']

				dato['usuGlo']= usuGlo
				dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['AutEx']=debe.aux1
				dato['nroRecibo']=debe.nroRecibo
				dato['estado']= debe.estadoTransaccion
				dato['obs_re']=''
				dato['id_personal']=debe.id_personal.nombre+" "+debe.id_personal.Apellido_paterno+" "+debe.id_personal.Apellido_materno
				dato['monto']=normalizar(cantidaEnvio)
				dato['moneda']= debe.moneda
				dato['id_trans']=str(obj['pk'])
				dato['oficina_ori']=debe.id_oficina.nombre_oficina
				dato['oficina_des']= ofi.nombre_oficina
				if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
					stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
					if stbe.id_base_ori!= None and stbe.id_base_ori!='':
						be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
						dato['oficina_ori']= be1.nombre_base
					if stbe.id_base_des!= None and stbe.id_base_des!='':
						be2= Base_Ext.objects.get(pk=stbe.id_base_des)
						dato['oficina_des']= be2.nombre_base
				dato['comicion']= str(obj['comision'])
				dato['nombre_bnf']=obj['nombre_beneficiado']
				dato['dni_bnf']=obj['dni_beneficiado']
				dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
				dato['materno_bnf']= obj['Apellido_materno_beneficiado']
				dato['obs']=obj['observaciones']
				dato['nombre_rmt']=cli.nombre
				dato['paterno_rmt']=cli.Apellido_paterno
				dato['materno_rmt']=cli.Apellido_materno
				dato['dni_rmt']=cli.dni
				dato['monto_conceptos']= str(obj['monto_conceptos'])
				dato['otros_conceptos']= obj['otros_conceptos']
				dato['pago_forzado']=''
				dato['banco']= solicitud.banco
				dato['tipo_operacion']= solicitud.tipo_operacion
				dato['nroCta']= solicitud.nroCta
				dato['cel_referencia']= solicitud.cel_referencia
				dato['nro_operacion']= solicitud.nro_operacion
				dato['nro_giro']= solicitud.nro_giro
				dato['clave']= solicitud.clave

				dato['fp']=''
				dato['usup']=''

				if sq2.count()>0:
					sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=obj['pk'])
					dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
					dato['usup']=sqpt.idCajaHaber.id_personal.nombre+" "+sqpt.idCajaHaber.id_personal.Apellido_paterno+" "+sqpt.idCajaHaber.id_personal.Apellido_materno
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


#---------AUTORIZACION EXTORNO DE TRANSFRENCIAS
@login_required
@permission_required('Main.add_oficina')
def Autorizaciones_extorno_st_view(request):
	return render(request,'autorizarExtornoSTAdmi.html' )

@login_required
def Autorizaciones_extorno_st_personal_view(request):
	return render(request,'AutorizarExtornoSTPer.html' )

@login_required
def autorizaciones_ext_st_ajax_view(request):#consulta autorizaciones extorno de ST
	if request.is_ajax:
		try:
			consulta=list(SolicitudAutExtornoST.objects.all().order_by('-pk').values('pk','fecha','id_st','codigo_aut','estado','id_caja_solicitante','id_user_solicitante','usuario_autorizador','id_usuario_aut','fecha_aut','fecha_extorno','observaciones'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['pkST']= obj['id_st']
				dato['cod']=obj['codigo_aut']
				dato['estado']=obj['estado']
				per= Personal.objects.get(pk=obj['id_user_solicitante'])
				Ca = Cajas.objects.get(pk=obj['id_caja_solicitante'])
				dato['Csoli']='['+Ca.id_oficina.nombre_oficina +'] '+Ca.nombre
				dato['soli']= per.nombre.capitalize() +' '+ per.Apellido_paterno.capitalize()+' '+per.Apellido_materno.capitalize()
				fa=""
				if obj['fecha_aut'] !=None:
					fa= str(obj['fecha_aut'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_aut']=fa
				fn=""
				if obj['fecha_extorno'] !=None:
					fn= str(obj['fecha_extorno'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_extorno']=fn
				fst=""
				dato['obs']=obj['observaciones']
				dato['user_aut']=''
				dato['cargo_aut']=''
				if obj['usuario_autorizador']=='Gerente':
					g= Gerente.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=g.nombre.capitalize() +' '+g.Apellido_paterno.capitalize()+' '+g.Apellido_materno.capitalize()
					dato['cargo_aut']='Gerente'
				elif obj['usuario_autorizador']=='Personal':
					p= Personal.objects.get(pk=obj['id_usuario_aut'])
					dato['user_aut']=p.nombre.capitalize() +' '+p.Apellido_paterno.capitalize()+' '+p.Apellido_materno.capitalize()
					dato['cargo_aut']='Personal'

				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='Error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#------------------------------------- configuracion de comision de bancos reales -----------
@login_required
@permission_required('Main.add_oficina')
def configuracionComicionesBancos_tem_Admin_view(request):
	return render(request,"ConfiguracionComicionesBanco.html" )
@login_required
@permission_required('Main.add_oficina')
def listado_configuracionComicionesBancos_Admin_ajax_view(request):
	data=''
	try:
		consulta= list(Configuracion_monto_bancos.objects.all().values('montomin','montomax','banco_nacion','otros_bancos','continental','bcp'))
		lista=[]
		for obj in consulta:
			dato={}
			dato['montomin'] = float(obj['montomin'])
			dato['montomax'] = float(obj['montomax'])
			if float(obj['banco_nacion'])<1 and float(obj['banco_nacion'])!=0:
				dato['banco_nacion'] = str(round(float(obj['banco_nacion'])*100,6))+"%"
			else:
				dato['banco_nacion'] = float(obj['banco_nacion'])

			if float(obj['otros_bancos'])<1 and float(obj['otros_bancos']) !=0:
				dato['otros_bancos'] = str(round(float(obj['otros_bancos'])*100,6))+"%"
			else:
				dato['otros_bancos'] = float(obj['otros_bancos'])

			if float(obj['continental'])<1 and float(obj['continental'])!=0:
				dato['continental'] = str(round(float(obj['continental'])*100,6))+"%"
			else:
				dato['continental'] = float(obj['continental'])

			if float(obj['bcp'])<1  and float(obj['bcp']) !=0:
				dato['bcp'] = str(round(float(obj['bcp'])*100,6))+"%"
			else:
				dato['bcp'] = float(obj['bcp'])
			lista.append(dato)
		data= json.dumps(lista)
	except:
		data='Error en consulta'+ str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#-------------------------------------- configuracioones de comiciones ---------------------------------
@login_required
@permission_required('Main.add_oficina')
def configuracionComiciones_tem_Admin_view(request):
	return render(request,"ConfiguracionComiciones.html" )

@login_required
@permission_required('Main.add_oficina')
def listado_configuracionComiciones_Admin_ajax_view(request):
	ori=request.GET.get('ori')
	des=request.GET.get('des')
	data=''
	try:
		consulta=[]
		if str(ori).find("b")!=-1:
			#subbase
			if str(des).find("b")!=-1:
				base_ori=Base_Ext.objects.get(pk=ori[1:])
				base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				conf= ConfiguracionExtra_caja.objects.get(id_caja=base_ori.id_confSis.id_caja.pk)
				consulta= list(Configuracion_comision.objects.filter(id_config=conf,id_oficina=base_des.id_confSis.id_oficina,tipo='subbase',base_ori=base_ori.pk,base_des=base_des.pk,id_caja=0).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
			elif str(des).find("c")!=-1:
				base_ori=Base_Ext.objects.get(pk=ori[1:])
				#base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				caja= Cajas.objects.get(pk=des[1:])
				conf= ConfiguracionExtra_caja.objects.get(id_caja=base_ori.id_confSis.id_caja.pk)
				consulta= list(Configuracion_comision.objects.filter(id_config=conf,id_oficina=caja.id_oficina,tipo='subbase',base_ori=base_ori.pk,id_caja=caja.pk).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
			else:
				base_ori=Base_Ext.objects.get(pk=ori[1:])
				ofi= Oficina.objects.get(pk=des)
				conf= ConfiguracionExtra_caja.objects.get(id_caja=base_ori.id_confSis.id_caja.pk)
				consulta= list(Configuracion_comision.objects.filter(id_config=conf,id_oficina=ofi,tipo='subbase',base_ori=base_ori.pk,id_caja=0).values('montomin','montomax','comision','banco_nacion','otros_bancos','banco_nacion_de','continental','bcp','continental_de','bcp_de'))

		else:
			if str(des).find("b")!=-1:
				aux= ori.split(":")
				base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				conf= ConfiguracionExtra_caja.objects.get(id_oficina=aux[0],id_caja=aux[1])
				consulta= list(Configuracion_comision.objects.filter(id_config=conf,id_oficina=base_des.id_confSis.id_oficina,tipo='subbase',base_des=base_des.pk,id_caja=0).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
			elif str(des).find("c")!=-1:
				aux= ori.split(":")
				#base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				caja= Cajas.objects.get(pk=des[1:])
				conf= ConfiguracionExtra_caja.objects.get(id_oficina=aux[0],id_caja=aux[1])
				consulta= list(Configuracion_comision.objects.filter(id_config=conf,id_oficina=caja.id_oficina,id_caja=caja.pk).values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
			else:
				aux= ori.split(":")
				ofi= Oficina.objects.get(pk=des)
				conf= ConfiguracionExtra_caja.objects.get(id_oficina=aux[0],id_caja=aux[1])
				consulta= list(Configuracion_comision.objects.filter(id_config=conf,id_oficina=ofi,id_caja=0).exclude(tipo='subbase').values('montomin','montomax','comision','banco_nacion','banco_nacion_de','otros_bancos','continental','bcp','continental_de','bcp_de'))
		lista=[]
		for obj in consulta:
			dato={}
			dato['montomin'] = float(obj['montomin'])
			dato['montomax'] = float(obj['montomax'])
			if float(obj['comision'])<1 and float(obj['comision']) !=0:
				dato['comision'] = str(round(float(obj['comision'])*100,6))+"%"
			else:
				dato['comision'] = float(obj['comision'])

			if float(obj['banco_nacion'])<1 and float(obj['banco_nacion'])!=0:
				dato['banco_nacion'] = str(round(float(obj['banco_nacion'])*100,6))+"%"
			else:
				dato['banco_nacion'] = float(obj['banco_nacion'])

			if float(obj['banco_nacion_de'])<1 and float(obj['banco_nacion_de'])!=0:
				dato['banco_nacion_de'] = str(round(float(obj['banco_nacion_de'])*100,6))+"%"
			else:
				dato['banco_nacion_de'] = float(obj['banco_nacion_de'])

			if float(obj['otros_bancos'])<1 and float(obj['otros_bancos']) !=0:
				dato['otros_bancos'] = str(round(float(obj['otros_bancos'])*100,6))+"%"
			else:
				dato['otros_bancos'] = float(obj['otros_bancos'])

			if float(obj['continental'])<1 and float(obj['continental'])!=0:
				dato['continental'] = str(round(float(obj['continental'])*100,6))+"%"
			else:
				dato['continental'] = float(obj['continental'])
			if float(obj['continental_de'])<1 and float(obj['continental_de'])!=0:
				dato['continental_de'] = str(round(float(obj['continental_de'])*100,6))+"%"
			else:
				dato['continental_de'] = float(obj['continental_de'])

			if float(obj['bcp'])<1  and float(obj['bcp']) !=0:
				dato['bcp'] = str(round(float(obj['bcp'])*100,6))+"%"
			else:
				dato['bcp'] = float(obj['bcp'])
			if float(obj['bcp_de'])<1  and float(obj['bcp_de']) !=0:
				dato['bcp_de'] = str(round(float(obj['bcp_de'])*100,6))+"%"
			else:
				dato['bcp_de'] = float(obj['bcp_de'])
			lista.append(dato)
		data= json.dumps(lista)
	except:
		data='Error en consulta'+ str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#------------------------------- CONFIGURACION COMISIONES INTERCAMBIO -----------------
@login_required
@permission_required('Main.add_oficina')
def configuracionComisiones_intercambio_Admin_view(request):
	return render(request,"ConfiguracionComisionesIntercambio.html" )

@login_required
@permission_required('Main.add_oficina')
def listado_configuracionComiciones_inter_Admin_ajax_view(request):
	ori=request.GET.get('ori')
	des=request.GET.get('des')
	data=''
	try:
		consulta=[]
		if str(ori).find("b")!=-1:
			#subbase
			if str(des).find("b")!=-1:
				base_ori=Base_Ext.objects.get(pk=ori[1:])
				base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				conf= ConfiguracionExtra_caja.objects.get(id_caja=base_ori.id_confSis.id_caja.pk)
				consulta= list(Configuracion_comision_intercambio.objects.filter(id_config=conf,id_oficina=base_des.id_confSis.id_oficina,tipo='subbase',base_ori=base_ori.pk,base_des=base_des.pk,id_caja=0).values('montomin','montomax','comision'))
			elif str(des).find("c")!=-1:
				base_ori=Base_Ext.objects.get(pk=ori[1:])
				#base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				caja= Cajas.objects.get(pk=des[1:])
				conf= ConfiguracionExtra_caja.objects.get(id_caja=base_ori.id_confSis.id_caja.pk)
				consulta= list(Configuracion_comision_intercambio.objects.filter(id_config=conf,id_oficina=caja.id_oficina,tipo='subbase',base_ori=base_ori.pk,id_caja=caja.pk).values('montomin','montomax','comision'))
			else:
				base_ori=Base_Ext.objects.get(pk=ori[1:])
				ofi= Oficina.objects.get(pk=des)
				conf= ConfiguracionExtra_caja.objects.get(id_caja=base_ori.id_confSis.id_caja.pk)
				consulta= list(Configuracion_comision_intercambio.objects.filter(id_config=conf,id_oficina=ofi,tipo='subbase',base_ori=base_ori.pk,id_caja=0).values('montomin','montomax','comision'))

		else:
			if str(des).find("b")!=-1:
				aux= ori.split(":")
				base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				conf= ConfiguracionExtra_caja.objects.get(id_oficina=aux[0],id_caja=aux[1])
				consulta= list(Configuracion_comision_intercambio.objects.filter(id_config=conf,id_oficina=base_des.id_confSis.id_oficina,tipo='subbase',base_des=base_des.pk,id_caja=0).values('montomin','montomax','comision'))
			elif str(des).find("c")!=-1:
				aux= ori.split(":")
				#base_des=Base_Ext.objects.get(pk=des[1:])#id_confSis.id_oficina,id_confSis.id_caja
				caja= Cajas.objects.get(pk=des[1:])
				conf= ConfiguracionExtra_caja.objects.get(id_oficina=aux[0],id_caja=aux[1])
				consulta= list(Configuracion_comision_intercambio.objects.filter(id_config=conf,id_oficina=caja.id_oficina,id_caja=caja.pk).values('montomin','montomax','comision'))
			else:
				aux= ori.split(":")
				ofi= Oficina.objects.get(pk=des)
				conf= ConfiguracionExtra_caja.objects.get(id_oficina=aux[0],id_caja=aux[1])
				consulta= list(Configuracion_comision_intercambio.objects.filter(id_config=conf,id_oficina=ofi,id_caja=0).exclude(tipo='subbase').values('montomin','montomax','comision'))
		lista=[]
		for obj in consulta:
			dato={}
			dato['montomin'] = float(obj['montomin'])
			dato['montomax'] = float(obj['montomax'])
			if float(obj['comision'])<1 and float(obj['comision']) !=0:
				dato['comision'] = str(round(float(obj['comision'])*100,6))+"%"
			else:
				dato['comision'] = float(obj['comision'])
			lista.append(dato)
		data= json.dumps(lista)
	except:
		data='Error en consulta'+ str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def oficinas_version3_config_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			#C= Cajas.objects.get(id_usuario__usuario=usr)
			cajasI= list(caja_independiente.objects.filter(independiente='si').values('pk','id_caja'))
			for ci in cajasI:
				ca= Cajas.objects.get(pk=ci['id_caja'])
				dato={}
				dato['pk']= 'c'+str(ci['id_caja'])
				dato['nombre_oficina']= ca.nombre
				dato['bx']='no'
				lista.append(dato)
			consulta=list(Oficina.objects.exclude(estado_oficina=False).exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina','estado_oficina'))
			for obj in consulta:
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').exists():
					tconf= TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk')
					bases= list(Base_Ext.objects.filter(id_confSis=tconf[0]['pk'],estado_base=True).values('pk','nombre_base'))
					for b in bases:
						dato={}
						dato['pk']= 'b'+str(b['pk'])
						dato['nombre_oficina']= b['nombre_base']
						dato['bx']='si'
						lista.append(dato)
				else:
					dato={}
					dato['pk']= obj['pk']
					dato['nombre_oficina']= obj['nombre_oficina']
					dato['bx']='no'
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def oficinas_version2_ci_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			cajasI= list(caja_independiente.objects.filter(independiente='si').exclude(id_caja=C.pk).values('pk','id_caja'))
			for ci in cajasI:
				ca= Cajas.objects.get(pk=ci['id_caja'])
				dato={}
				dato['pk']= 'c'+str(ci['id_caja'])
				dato['nombre_oficina']= ca.nombre
				dato['bx']='no'
				lista.append(dato)
			consulta=list(Oficina.objects.exclude(pk=C.id_oficina.pk).exclude(estado_oficina=False).exclude(nombre_oficina="Gerencia").values('pk','nombre_oficina','estado_oficina'))
			for obj in consulta:
				if TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').exists():
					tconf= TConfiguracionSistema.objects.filter(id_oficina=obj['pk'],conf2='externa').values('pk')
					bases= list(Base_Ext.objects.filter(id_confSis=tconf[0]['pk'],estado_base=True).values('pk','nombre_base'))
					for b in bases:
						dato={}
						dato['pk']= 'b'+str(b['pk'])
						dato['nombre_oficina']= b['nombre_base']
						dato['bx']='si'
						lista.append(dato)
				else:
					dato={}
					dato['pk']= obj['pk']
					dato['nombre_oficina']= obj['nombre_oficina']
					dato['bx']='no'
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
@permission_required('Main.add_oficina')
def Saldo_Subgerente_view_tem(request):
	return render(request,"SaldoSubgerente.html" )

@login_required
@permission_required('Main.add_oficina')
def Autorizaciones_Egreso_subgeremte_view(request):
	return render(request,'configGeneralCajasAdmin.html' )

@login_required
@permission_required('Main.add_oficina')
def NroRecibo_cajas_reinicio_ajax_view(request):
	if request.is_ajax:
		pkC = request.GET.get('idC')
		data=''
		try:
			ONR=NroReciboCaja.objects.get(id_caja=pkC) 
			dato={}
			dato['re']=ONR.nroRE
			dato['ri']=ONR.nroRI
			dato['rem']=ONR.nroREM
			dato['rim']=ONR.nroRIM
			dato['st']=ONR.nroST
			dato['pt']=ONR.nroPT
			dato['si']=ONR.nroSI
			dato['pi']=ONR.nroPI
			data= json.dumps(dato)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'+str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def lista_liquidacion_oficina_ajax_view(request):
	if request.is_ajax:
		pkO = request.GET.get('idO')
		data=''
		lista=[]
		try:
			consulta=list(liquidacionCaja.objects.filter(id_caja__id_oficina=pkO).order_by('-pk').values('pk','fecha','id_caja','observaciones','fechaDesde','fechaHasta','estado'))
			for obj in consulta:
				c= Cajas.objects.get(pk=obj['id_caja'])
				dato={}
				dato['pk']= obj['pk']
				dato['f']= str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['base']= '<b style="color: #2e6da4;"> '+c.id_oficina.nombre_oficina+'</b>'+c.nombre
				dato['op']=c.id_usuario.nombre+' '+c.id_usuario.Apellido_paterno+' '+c.id_usuario.Apellido_materno
				dato['fd']=str(obj['fechaDesde'])
				dato['fh']=str(obj['fechaHasta'])
				dato['est']= obj['estado']
				dato['obs']= obj['observaciones']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def verificar_st_para_cambio_destino_ajax_view(request):
	if request.is_ajax:
		dato=''
		pkST=request.GET.get('pk')
		usr = request.user.username
		try:
			if SolicitudTransferencia.objects.filter(pk=pkST,idCajaDebe__estadoTransaccion="activo").exists():
				st=SolicitudTransferencia.objects.get(pk=pkST)
				monto= float(st.idCajaDebe.cantidadDinero)-float(st.monto_conceptos)-float(st.comision)
				destino=st.id_oficina.nombre_oficina
				if str(st.observaciones).find('/') >=0:
					destino= str(st.observaciones).split('/')[0]
				dato={'exito':'exito','pk':st.pk,'beneficiado':st.nombre_beneficiado +' '+ st.Apellido_paterno_beneficiado +' '+ st.Apellido_materno_beneficiado,'monto':monto,'comision':str(st.comision),'destino':destino}
			else:
				dato={'exito' :'no se encontro la ST ó ya no esta disponible para esta operacion'}
		except:
			dato={'exito':'error'}
	else:
		dato={'exito':'fail'}
	mimetype="application/json"
	data= json.dumps(dato)
	return HttpResponse(data,mimetype)
#------ filtros desde el ultimo reinicio de recibos
@login_required
def listaCierresPersonal_desde_reinicio_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		data=''
		lista=[]
		try:
			#--------
			fechaD= datetime.datetime.strptime('2016-10-20', '%Y-%m-%d')
			fechaReR= datetime.datetime.combine(fechaD,datetime.time.min)
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if ReinicioNroReciboCaja.objects.filter(id_caja=C.pk).exists():
				auxReinicio= ReinicioNroReciboCaja.objects.filter(id_caja=C.pk).latest("fecha")
				fechaReR=auxReinicio.fecha
			#-----i
			consulta = list(CajaCierre.objects.filter(id_caja=C.pk,fecha__gte=fechaReR).order_by('-pk').values('fecha','totalDebeSoles','totalDebeDolares','totalHaberSoles','totalHaberDolares','observaciones','saldo_soles','saldo_dolares','saldoInicial_soles','saldoInicial_dolares','fechaDesde','fechaHasta','estado'))
			for obj in consulta:
				dato={}
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['is']=str(round(float(obj['totalDebeSoles']),2))
				dato['ide']=str(round(float(obj['totalDebeDolares']),2))
				dato['es']=str(round(float(obj['totalHaberSoles']),2))
				dato['ed']=str(round(float(obj['totalHaberDolares']),2))
				dato['ss']=str(round(float(obj['saldo_soles']),2))
				dato['sd']=str(round(float(obj['saldo_dolares']),2))
				dato['sis']=str(round(float(obj['saldoInicial_soles']),2))
				dato['sid']=str(round(float(obj['saldoInicial_dolares']),2))
				dato['fd']=str(obj['fechaDesde'].strftime("%Y-%m-%d"))
				dato['fh']=str(obj['fechaHasta'].strftime("%Y-%m-%d"))
				dato['est']=str(obj['estado'])
				dato['obs']=obj['observaciones']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaSaldoRecibidas_total_desde_reinicio_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('f','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pag=request.GET.get('pg','')
		usr = request.user.username
		data=''
		lista=[]
		try:
			#--------
			fechaD= datetime.datetime.strptime('2016-10-20', '%Y-%m-%d')
			fechaReR= datetime.datetime.combine(fechaD,datetime.time.min)
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if ReinicioNroReciboCaja.objects.filter(id_caja=C.pk).exists():
				auxReinicio= ReinicioNroReciboCaja.objects.filter(id_caja=C.pk).latest("fecha")
				fechaReR=auxReinicio.fecha
			#-----i
			pg= 1
			if pag !='':
				pg= int(pag)
			intrv=0
			if pg>1:
				intrv= ((pg-1)*5)+1
			fhoramin=None
			fhoramax=None
			if filtro == 'f':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			else:
				hoy= datetime.datetime.today()
				aux=hoy-timedelta(days=intrv)
				aux1=aux-timedelta(days=5)
				fhoramax= datetime.datetime.combine(aux,datetime.time.max)
				fhoramin= datetime.datetime.combine(aux1,datetime.time.min)

			consulta = list(RecepcionDepositoCaja.objects.filter(idCajaDebe__id_caja= C.pk,estado='recibido',fecha__range=(fhoramin,fhoramax),fecha__gte=fechaReR).values('pk','fecha','monto','moneda','idCajaDebe','observaciones','conceptoDetalle'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['fechar']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='Gerencia'
				dato['comi']=''
				dato['moneda']= obj['moneda']
				dato['obs']=obj['observaciones']
				dato['obsRe']=obj['observaciones']
				dato['tabla']= 'deposito'
				lista.append(dato)
			consulta1 = list(EnvioOficinaOficina.objects.filter(id_oficinaDestino= C.id_oficina.pk,estado='recibido',idCajaHaber__fecha__range=(fhoramin,fhoramax),fecha__gte=fechaReR).values('pk','fecha','monto','moneda','observaciones','conceptoDetalle','idCajaHaber'))
			for obj in consulta1:
				re= RecepcionEnvioOficinaOficina.objects.get(idEnvioOficinaOficina=obj['pk'])
				auxOri= TCajaHaber.objects.get(pk=obj['idCajaHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['fechar']=str(re.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='<span style="color:blue;">'+auxOri.id_oficina.nombre_oficina+'</span> /'+auxOri.id_caja.id_usuario.nombre + ' '+auxOri.id_caja.id_usuario.Apellido_paterno
				dato['comi']=''
				if ComisionEnvio.objects.filter(tabla='EnvioOficinaOficina',id_envio=obj['pk']).exists():
					com= ComisionEnvio.objects.get(tabla='EnvioOficinaOficina',id_envio=obj['pk'])
					dato['comi']=float(com.idCajaHaber.cantidadDinero)
				dato['moneda']= obj['moneda']
				dato['obs']=obj['observaciones']
				dato['obsRe']=re.observaciones
				dato['tabla']= 'enviooficina'
				lista.append(dato)
			consulta2 = list(EnvioCajaCaja.objects.filter(id_CajaDestino= C.pk,estado='recibido',idCajaHaber__fecha__range=(fhoramin,fhoramax),fecha__gte=fechaReR).values('pk','fecha','monto','moneda','observaciones','conceptoDetalle','idCajaHaber'))
			for obj in consulta2:
				re=RecepcionEnvioCajaCaja.objects.get(idEnvioCajaCaja=obj['pk'])
				auxOri= TCajaHaber.objects.get(pk=obj['idCajaHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['fechar']=str(re.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='<span style="color:blue;">'+auxOri.id_oficina.nombre_oficina+'</span> /'+auxOri.id_caja.id_usuario.nombre + ' '+auxOri.id_caja.id_usuario.Apellido_paterno
				dato['comi']=''
				if ComisionEnvio.objects.filter(tabla='EnvioCajaCaja',id_envio=obj['pk']).exists():
					com= ComisionEnvio.objects.get(tabla='EnvioCajaCaja',id_envio=obj['pk'])
					dato['comi']=float(com.idCajaHaber.cantidadDinero)
				dato['moneda']= obj['moneda']
				dato['obs']=obj['observaciones']
				dato['obsRe']=re.observaciones
				dato['tabla']= 'enviocaja'
				lista.append(dato)
			ef={'d':str(fhoramin.strftime("%Y-%m-%d")),'h':str(fhoramax.strftime("%Y-%m-%d"))}
			lista.append(ef)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaSaldoEnviado_total_desde_reinicio_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('f','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pag=request.GET.get('pg','')
		usr = request.user.username
		data=''
		lista=[]
		try:
			#--------
			fechaD= datetime.datetime.strptime('2016-10-20', '%Y-%m-%d')
			fechaReR= datetime.datetime.combine(fechaD,datetime.time.min)
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if ReinicioNroReciboCaja.objects.filter(id_caja=C.pk).exists():
				auxReinicio= ReinicioNroReciboCaja.objects.filter(id_caja=C.pk).latest("fecha")
				fechaReR=auxReinicio.fecha
			#-----i
			pg= 1
			if pag !='':
				pg= int(pag)
			intrv=0
			if pg>1:
				intrv= ((pg-1)*5)+1
			fhoramin=None
			fhoramax=None
			if filtro == 'f':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			else:
				hoy= datetime.datetime.today()
				aux=hoy-timedelta(days=intrv)
				aux1=aux-timedelta(days=5)
				fhoramax= datetime.datetime.combine(aux,datetime.time.max)
				fhoramin= datetime.datetime.combine(aux1,datetime.time.min)
			#if C.id_usuario.pk == C.id_oficina.id_usuario.pk:#caja prinsipal	
			consulta1 = list(EnvioOficinaOficina.objects.filter(idCajaHaber__id_caja= C.pk,idCajaHaber__fecha__range=(fhoramin,fhoramax),fecha__gte=fechaReR).values('pk','fecha','monto','moneda','observaciones','conceptoDetalle','estado','id_oficinaDestino'))
			for obj in consulta1:
				od= Oficina.objects.get(pk=obj['id_oficinaDestino'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=normalizar(obj['monto'])
				dato['moneda']= obj['moneda']
				dato['des']='<span style="color:blue;">'+od.nombre_oficina+'</span>'
				dato['comi']=''
				if ComisionEnvio.objects.filter(tabla='EnvioOficinaOficina',id_envio=obj['pk']).exists():
					com= ComisionEnvio.objects.get(tabla='EnvioOficinaOficina',id_envio=obj['pk'])
					dato['comi']=float(com.idCajaHaber.cantidadDinero)
				dato['obs']=obj['observaciones']
				dato['est']=obj['estado']
				dato['tabla']= 'enviooficina'
				act="no"
				if obj['estado'] == 'enviado':
					act='si'
				dato['act'] = act
				lista.append(dato)

			consulta2 = list(EnvioCajaCaja.objects.filter(idCajaHaber__id_caja= C.pk,idCajaHaber__fecha__range=(fhoramin,fhoramax),fecha__gte=fechaReR).values('pk','fecha','monto','moneda','observaciones','conceptoDetalle','estado','id_CajaDestino'))
			for obj in consulta2:
				cd= Cajas.objects.get(pk=obj['id_CajaDestino'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=normalizar(obj['monto'])
				dato['moneda']= obj['moneda']
				dato['des']='<span style="color:blue;">'+cd.id_oficina.nombre_oficina+'</span> '+cd.id_usuario.nombre+' '+cd.id_usuario.Apellido_paterno
				dato['comi']=''
				if ComisionEnvio.objects.filter(tabla='EnvioCajaCaja',id_envio=obj['pk']).exists():
					com= ComisionEnvio.objects.get(tabla='EnvioCajaCaja',id_envio=obj['pk'])
					dato['comi']=float(com.idCajaHaber.cantidadDinero)
				dato['obs']=obj['observaciones']
				dato['est']=obj['estado']
				dato['tabla']= 'enviocaja'
				act="no"
				if obj['estado'] == 'enviado':
					act='si'
				dato['act'] = act
				lista.append(dato)
			ef={'d':str(fhoramin.strftime("%Y-%m-%d")),'h':str(fhoramax.strftime("%Y-%m-%d"))}
			lista.append(ef)
			data= json.dumps(lista)
			#else:
			#	data= json.dumps(lista)
		except:
			data='error en consulta '+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
#-------------------------------------------------------------------------
#**********************************autocompletado**********************************
@login_required
def listaCliente_autocompletado_dni_ajax_view(request):# filtro para dni
	parametro=request.GET.get('query','')
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			fil= QuitarEspacios(parametro).split(' ')
			#print fil
			no=fil[0]
			am=''
			ap=''
			if len(fil)>1:
				ap=fil[1]
				if len(fil)>2:
					am=fil[2]
			consulta=[]
			if ap=='':
				consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=no) | Q(estado=True,Apellido_paterno__icontains=no) | Q(estado=True,Apellido_materno__icontains=no) | Q(estado=True,dni__icontains=no)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			elif am=='':
				consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=no,Apellido_paterno__icontains=ap) | Q(estado=True,nombre__icontains=ap,Apellido_paterno__icontains=no) | Q(estado=True,nombre__icontains=no,Apellido_materno__icontains=ap) | Q(estado=True,nombre__icontains=ap,Apellido_materno__icontains=no) | Q(estado=True,Apellido_paterno__icontains=no,Apellido_materno__icontains=ap) | Q(estado=True,Apellido_paterno__icontains=ap,Apellido_materno__icontains=no)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			else:
				consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=no,Apellido_paterno__icontains=ap,Apellido_materno__icontains=am) | Q(estado=True,nombre__icontains=no,Apellido_paterno__icontains=am,Apellido_materno__icontains=ap) |Q(estado=True,nombre__icontains=ap,Apellido_paterno__icontains=no,Apellido_materno__icontains=am) |Q(estado=True,nombre__icontains=ap,Apellido_paterno__icontains=am,Apellido_materno__icontains=no) |Q(estado=True,nombre__icontains=am,Apellido_paterno__icontains=no,Apellido_materno__icontains=ap) |Q(estado=True,nombre__icontains=am,Apellido_paterno__icontains=ap,Apellido_materno__icontains=no) ).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			lista=[]
			for obj in consulta:
				aux_dni=''
				if obj['dni'] != None:
					aux_dni =obj['dni']
				dato={}
				dato['id']=obj['pk']
				dato['dni']=aux_dni
				dato['name']=aux_dni +' '+ obj['nombre'] +' '+ obj['Apellido_paterno'] +' '+ obj['Apellido_materno']
				dato['dire']=obj['direccion']
				dato['nombre']=obj['nombre']
				dato['ap']=obj['Apellido_paterno']
				dato['am']=obj['Apellido_materno']
				dato['telefono']=obj['telefono']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaCliente_autocompletado_nombre_ajax_view(request):#filtro para nombre
	parametro=request.GET.get('query','')
	paterno=request.GET.get('ap','')
	materno=request.GET.get('am','')
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			fil= QuitarEspacios(parametro).split(' ')
			nom = QuitarEspacios(parametro)
			pat = QuitarEspacios(paterno)
			mat = QuitarEspacios(materno)
			#print fil
			no=fil[0]
			am=''
			ap=''
			if len(fil)>1:
				ap=fil[1]
				if len(fil)>2:
					am=fil[2]
			consulta=[]
			if pat == '' and mat =='':
				if ap=='':
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=no) | Q(estado=True,Apellido_paterno__icontains=no) | Q(estado=True,Apellido_materno__icontains=no)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
				elif am=='':
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=no,Apellido_paterno__icontains=ap) | Q(estado=True,nombre__icontains=ap,Apellido_paterno__icontains=no) | Q(estado=True,nombre__icontains=no,Apellido_materno__icontains=ap) | Q(estado=True,nombre__icontains=ap,Apellido_materno__icontains=no) | Q(estado=True,Apellido_paterno__icontains=no,Apellido_materno__icontains=ap) | Q(estado=True,Apellido_paterno__icontains=ap,Apellido_materno__icontains=no)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
				else:
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=no,Apellido_paterno__icontains=ap,Apellido_materno__icontains=am) | Q(estado=True,nombre__icontains=no,Apellido_paterno__icontains=am,Apellido_materno__icontains=ap) |Q(estado=True,nombre__icontains=ap,Apellido_paterno__icontains=no,Apellido_materno__icontains=am) |Q(estado=True,nombre__icontains=ap,Apellido_paterno__icontains=am,Apellido_materno__icontains=no) |Q(estado=True,nombre__icontains=am,Apellido_paterno__icontains=no,Apellido_materno__icontains=ap) |Q(estado=True,nombre__icontains=am,Apellido_paterno__icontains=ap,Apellido_materno__icontains=no) ).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			else:
				if mat == '':
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=nom,Apellido_paterno__icontains=pat) | Q(estado=True,nombre__icontains=no,Apellido_materno__icontains=pat)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
				else:#pat == ''
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=nom,Apellido_paterno__icontains=mat) | Q(estado=True,nombre__icontains=no,Apellido_materno__icontains=mat)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			lista=[]
			for obj in consulta:
				aux_dni=''
				if obj['dni'] != None:
					aux_dni =obj['dni']
				dato={}
				dato['id']=obj['pk']
				dato['dni']=aux_dni
				dato['name']=aux_dni +' '+ obj['nombre'] +' '+ obj['Apellido_paterno'] +' '+ obj['Apellido_materno']
				dato['dire']=obj['direccion']
				dato['nombre']=obj['nombre']
				dato['ap']=obj['Apellido_paterno']
				dato['am']=obj['Apellido_materno']
				dato['telefono']=obj['telefono']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaCliente_autocompletado_paterno_ajax_view(request):#filtro para paterno
	parametro=request.GET.get('query','')
	nombre=request.GET.get('no','')
	materno=request.GET.get('am','')
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			fil= QuitarEspacios(parametro).split(' ')
			pat = QuitarEspacios(parametro)
			nom = QuitarEspacios(nombre)
			mat = QuitarEspacios(materno)
			#print fil
			ap=fil[0]
			consulta=[]
			if nom == '' and mat =='':
				consulta=list(Cliente.objects.filter(Q(estado=True,Apellido_paterno__icontains=ap) | Q(estado=True,Apellido_materno__icontains=ap)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			else:
				if mat == '':
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=nom,Apellido_paterno__icontains=pat) | Q(estado=True,nombre__icontains=nom,Apellido_materno__icontains=pat)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
				else:#nom == ''
					consulta=list(Cliente.objects.filter( Q(estado=True,Apellido_paterno__icontains=pat,Apellido_materno__icontains=mat) | Q(estado=True,Apellido_paterno__icontains=mat,Apellido_materno__icontains=pat)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			lista=[]
			for obj in consulta:
				aux_dni=''
				if obj['dni'] != None:
					aux_dni =obj['dni']
				dato={}
				dato['id']=obj['pk']
				dato['dni']=aux_dni
				dato['name']=aux_dni +' '+ obj['nombre'] +' '+ obj['Apellido_paterno'] +' '+ obj['Apellido_materno']
				dato['dire']=obj['direccion']
				dato['nombre']=obj['nombre']
				dato['ap']=obj['Apellido_paterno']
				dato['am']=obj['Apellido_materno']
				dato['telefono']=obj['telefono']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaCliente_autocompletado_materno_ajax_view(request):#filtro para materno
	parametro=request.GET.get('query','')
	nombre=request.GET.get('no','')
	paterno=request.GET.get('ap','')
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			fil= QuitarEspacios(parametro).split(' ')
			mat = QuitarEspacios(parametro)
			nom = QuitarEspacios(nombre)
			pat = QuitarEspacios(paterno)
			#print fil
			am=fil[0]
			consulta=[]
			if nom == '' and pat =='':
				consulta=list(Cliente.objects.filter(Q(estado=True,Apellido_paterno__icontains=am) | Q(estado=True,Apellido_materno__icontains=am)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			else:
				if pat == '':
					consulta=list(Cliente.objects.filter( Q(estado=True,nombre__icontains=nom,Apellido_paterno__icontains=mat) | Q(estado=True,nombre__icontains=nom,Apellido_materno__icontains=mat)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
				else:#nom == ''
					consulta=list(Cliente.objects.filter( Q(estado=True,Apellido_paterno__icontains=pat,Apellido_materno__icontains=mat) | Q(estado=True,Apellido_paterno__icontains=mat,Apellido_materno__icontains=pat)).values('pk','dni','nombre','Apellido_paterno','Apellido_materno','direccion','tipo_persona','telefono').order_by('pk')[:10])
			lista=[]
			for obj in consulta:
				aux_dni=''
				if obj['dni'] != None:
					aux_dni =obj['dni']
				dato={}
				dato['id']=obj['pk']
				dato['dni']=aux_dni
				dato['name']=aux_dni +' '+ obj['nombre'] +' '+ obj['Apellido_paterno'] +' '+ obj['Apellido_materno']
				dato['dire']=obj['direccion']
				dato['nombre']=obj['nombre']
				dato['ap']=obj['Apellido_paterno']
				dato['am']=obj['Apellido_materno']
				dato['telefono']=obj['telefono']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


#******** listado de traslados de efectivo ***************
@login_required
def lista_traslados_efectivo_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')#'todo'
		usr= request.user.username
		data=''
		lista=[]
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if filtro == None or filtro =='':
				consulta=list(TrasladoEfectivo.objects.filter(id_caja=C.pk).order_by('-pk')[0:3].values('pk','fecha','monto','moneda','origen','id_haber_origen','destino','id_debe_destino','observaciones'))
			else:
				consulta=list(TrasladoEfectivo.objects.filter(id_caja=C.pk).order_by('-pk').values('pk','fecha','monto','moneda','origen','id_haber_origen','destino','id_debe_destino','observaciones'))
			for obj in consulta:
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['monto']=str(obj['monto'])
				dato['moneda']=obj['moneda']
				dato['origen']=obj['origen']
				dato['destino']=obj['destino']
				dato['obs']=obj['observaciones']
				if obj['origen'] == 'transferencia':
					haber = TCajaHaber.objects.get(pk=obj['id_haber_origen'])
					dato['nre']=haber.nroRecibo
				elif obj['origen'] == 'dolar':
					haber = TCajaHaberCambio.objects.get(pk=obj['id_haber_origen'])
					dato['nre']=haber.nroRecibo
				if obj['origen'] == 'material':
					haber = TCajaHaberM.objects.get(pk=obj['id_haber_origen'])
					dato['nre']=haber.nroRecibo
				if obj['destino'] == 'transferencia':
					debe = TCajaDebe.objects.get(pk=obj['id_debe_destino'])
					dato['nri']=debe.nroRecibo
				elif obj['destino'] == 'dolar':
					debe = TCajaDebeCambio.objects.get(pk=obj['id_debe_destino'])
					dato['nri']=debe.nroRecibo
				if obj['destino'] == 'material':
					debe = TCajaDebeM.objects.get(pk=obj['id_debe_destino'])
					dato['nri']=debe.nroRecibo
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#*******************************************************************
#************************ cuentas **********************************
@login_required
def Cuentas_Ahorro_tem_view(request):
	return render(request,'ListaCuentasAhorro.html',{"resultado":''} )

def siguiente_mes(fecha,fechaI):
	aux=fecha
	aux=aux.replace(day=1)
	aux2= aux + timedelta(days=32)
	#calcular ultimo ia del siguiente mes
	ud = aux + timedelta(days=64)
	ud = ud.replace(day=1)
	ud = ud - timedelta(days=1)
	sig_fecha=None
	if fecha.day>ud.day:
		sig_fecha= aux2.replace(day=ud.day)
	else:
		if fechaI.day > ud.day:
			sig_fecha= aux2.replace(day=ud.day)
		else:
			sig_fecha= aux2.replace(day=fechaI.day)
	return sig_fecha


@login_required
def listacentasAhorros_activos_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*50
	hasta= pg*50
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaAhorros.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaAhorros.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['monto']= str(cta.saldo)
				dato['interes']=str(cta.interes)
				#---------------------
				fe = cta.fechaApertura
				for i in range(int(cta.plazo)):
					fe =siguiente_mes(fe,cta.fechaApertura)
				dato['fv']=str(fe.strftime("%d-%m-%Y %H:%M"))
				#---------------------
				it=0
				if cta.tipoCuenta=='PF':
					dato['tipo']='Plazo Fijo'
					dato['plazo_int']='Anual'
					if cta.tipo_plazo=='d':
						it=float(cta.saldo)*float(cta.interes)/100/365*float(cta.plazo)
						dato['plazo']= cta.plazo+" Dia(s)"
					if cta.tipo_plazo=='m':
						it=float(cta.saldo)*float(cta.interes)/100/365*(float(cta.plazo)*26)
						dato['plazo']= cta.plazo+" Mes(es)"
				if cta.tipoCuenta=='CA':
					dato['tipo']='Cuenta Ahorro'
					dato['plazo_int']='Definido en Movimientos'
					cmov = list(CtaAhorrosMovimientos.objects.filter(id_ctaahorros=cta.pk).order_by('pk')[:1].values('pk','tiempo_interes','tipo_plazo_interes'))
					if cta.tipo_plazo=='d':
						if cmov[0]['tipo_plazo_interes']=='a':
							it=float(cta.saldo)*float(cta.interes)/100/(365*float(cmov[0]['tiempo_interes']))*float(cta.plazo)
						if cmov[0]['tipo_plazo_interes']=='m':
							it=float(cta.saldo)*float(cta.interes)/100/(30*float(cmov[0]['tiempo_interes']))*float(cta.plazo)
						dato['plazo']= cta.plazo+" Dia(s)"
					if cta.tipo_plazo=='m':
						if cmov[0]['tipo_plazo_interes']=='a':
							it=float(cta.saldo)*float(cta.interes)/100/(365*float(cmov[0]['tiempo_interes']))*(float(cta.plazo)*26)
						if cmov[0]['tipo_plazo_interes']=='m':
							it=float(cta.saldo)*float(cta.interes)/100/(30*float(cmov[0]['tiempo_interes']))*(float(cta.plazo)*26)
						dato['plazo']= cta.plazo+" Mes(es)"
				dato['interes_g']= round(it,2)
				#-----------------------------
				dato['estado']=cta.estado
				if cta.estado == 'vencido':
					dato['interes_g'] = float(cta.interesGanado)
				if cta.estado == 'activo':
					if fe.date() == date.today():
						 CtaAhorros.objects.filter(pk=obj['pk']).update(estado='vencido',interesGanado=it)
						 dato['estado']='vencido'
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Listado_CuentasCtes_tem_view(request):
	return render(request,"ListaCuentasCorriente.html",{'resultado':''} )

@login_required
def listacentasAhorrosCte_activos_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaCte.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCte.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['moneda']= str(cta.moneda)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def lista_Movi_cuentasAhorrosCte_activos_ajax_view(request):
	id_cta=request.GET.get('pkCta','')
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaCteMovimientos.objects.filter(id_ctacte=id_cta).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','comision'))
			lista=[]
			for obj in consulta:
				cta = CtaCte.objects.get(pk=obj['id_ctacte'])
				movi=None
				if obj['tabla']=='TCajaDebeM':
					movi= TCajaDebeM.objects.get(pk=obj['idDebeHaber'])
				elif obj['tabla']=='TCajaHaberM':
					movi= TCajaHaberM.objects.get(pk=obj['idDebeHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
				dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
				dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
				dato['deposito']= str(obj['montoDeposito'])
				dato['retiro']= str(obj['montoRetiro'])
				dato['saldo']= str(obj['saldo'])
				dato['moneda']= movi.moneda
				dato['td']= movi.tipoDocumento
				dato['nr']= movi.nroRecibo
				dato['dni']= cta.id_cliente.dni
				dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
				dato['concepto']= movi.conceptoDetalle[:15]
				dato['obs']= movi.observaciones
				dato['oficina']= movi.id_oficina.nombre_oficina
				dato['caja']= movi.id_caja.nombre
				dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listacentasAhorrosCte_activos_filtro_cli_ajax_view(request):
	pag=request.GET.get('pg','')
	dni_cli=request.GET.get('dni','')#dni o nombre
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta = []
			if C.id_oficina.categoria_oficina=="central" and C.id_oficina.id_usuario.pk == C.id_usuario.pk:
				if dni_cli == '':
					consulta=list(CtaCte.objects.all().order_by('-pk').values('pk'))
				else:
					consulta=list(CtaCte.objects.filter(Q(id_cliente__dni__icontains=dni_cli)|Q(id_cliente__nombre__icontains=dni_cli)|Q(id_cliente__Apellido_paterno__icontains=dni_cli)|Q(id_cliente__Apellido_materno__icontains=dni_cli)).order_by('-pk').values('pk'))
			else:
				consulta=list(CtaCte.objects.filter(Q(id_cliente__dni__icontains=dni_cli,id_oficina=C.id_oficina.pk)|Q(id_cliente__nombre__icontains=dni_cli,id_oficina=C.id_oficina.pk)|Q(id_cliente__Apellido_paterno__icontains=dni_cli,id_oficina=C.id_oficina.pk)|Q(id_cliente__Apellido_materno__icontains=dni_cli,id_oficina=C.id_oficina.pk)).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCte.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['moneda']= str(cta.moneda)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#conceptos de egresoss
@login_required
def listado_conceptos_ajax_view(request):
	if request.is_ajax:
		try:
			consulta=list(ConceptoEgreso.objects.all().values('pk','concepto'))
			data= json.dumps(consulta)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#conceptos de egresos en caja material
@login_required
def listado_conceptos_m_ajax_view(request):
	if request.is_ajax:
		try:
			consulta=list(ConceptoEgresoM.objects.all().values('pk','concepto'))
			data= json.dumps(consulta)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
#listado de ingresos y egresos
@login_required
def listaIngresos_activos_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Ingreso.objects.filter(id_debe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				ingreso= Ingreso.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=ingreso.afavor
				dato['fecha']=str(ingreso.id_debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=ingreso.id_debe.nroRecibo
				dato['estado']=ingreso.estado
				dato['concepto']= ingreso.concepto
				dato['monto']= str(ingreso.id_debe.cantidadDinero)
				dato['obs']= ingreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Ingresos_tem_view(request):
	return render(request,'ListadoIngresos.html',{"resultado":''} )

@login_required
def listaEgresos_activos_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Egreso.objects.filter(id_haber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				egreso= Egreso.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=egreso.afavor
				dato['fecha']=str(egreso.id_haber.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=egreso.id_haber.nroRecibo
				dato['estado']=egreso.estado
				dato['concepto']= egreso.concepto
				dato['monto']= str(egreso.id_haber.cantidadDinero)
				dato['obs']= egreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaEgresos_activos_filtro_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta=list(Egreso.objects.filter(id_haber__id_caja=C.pk,id_haber__fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta=list(Egreso.objects.filter(id_haber__id_caja=C.pk,id_haber__fecha__range=(fhoramin,fhoramax)).order_by('-pk').values('pk'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta=list(Egreso.objects.filter(id_haber__id_caja=C.pk,id_haber__fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				egreso= Egreso.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=egreso.afavor
				dato['fecha']=str(egreso.id_haber.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=egreso.id_haber.nroRecibo
				dato['estado']=egreso.estado
				dato['concepto']= egreso.concepto
				dato['monto']= str(egreso.id_haber.cantidadDinero)
				dato['obs']= egreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Egresos_tem_view(request):
	return render(request,'ListadoEgresos.html',{"resultado":''} )
#listado de ingresos y egresos en caja material
@login_required
def listaIngresos_activos_m_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(IngresoM.objects.filter(id_debe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				ingreso= IngresoM.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=ingreso.afavor
				dato['fecha']=str(ingreso.id_debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=ingreso.id_debe.nroRecibo
				dato['estado']=ingreso.estado
				dato['concepto']= ingreso.concepto
				dato['monto']= str(ingreso.id_debe.cantidadDinero)
				dato['obs']= ingreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaIngresos_activos_m_filtro_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta=list(IngresoM.objects.filter(id_debe__id_caja=C.pk,id_debe__fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta=list(IngresoM.objects.filter(id_debe__id_caja=C.pk,id_debe__fecha__range=(fhoramin,fhoramax)).order_by('-pk').values('pk'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta=list(IngresoM.objects.filter(id_debe__id_caja=C.pk,id_debe__fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				ingreso= IngresoM.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=ingreso.afavor
				dato['fecha']=str(ingreso.id_debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=ingreso.id_debe.nroRecibo
				dato['estado']=ingreso.estado
				dato['concepto']= ingreso.concepto
				dato['monto']= str(ingreso.id_debe.cantidadDinero)
				dato['obs']= ingreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Ingresos_m_tem_view(request):
	return render(request,'ListadoIngresosM.html',{"resultado":''} )

@login_required
def listaEgresos_activos_m_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(EgresoM.objects.filter(id_haber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				egreso= EgresoM.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=egreso.afavor
				dato['fecha']=str(egreso.id_haber.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=egreso.id_haber.nroRecibo
				dato['estado']=egreso.estado
				dato['concepto']= egreso.concepto
				dato['monto']= str(egreso.id_haber.cantidadDinero)
				dato['obs']= egreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaEgresos_activos_m_filtro_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta=list(EgresoM.objects.filter(id_haber__id_caja=C.pk,id_haber__fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta=list(EgresoM.objects.filter(id_haber__id_caja=C.pk,id_haber__fecha__range=(fhoramin,fhoramax)).order_by('-pk').values('pk'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta=list(EgresoM.objects.filter(id_haber__id_caja=C.pk,id_haber__fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				egreso= EgresoM.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=egreso.afavor
				dato['fecha']=str(egreso.id_haber.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=egreso.id_haber.nroRecibo
				dato['estado']=egreso.estado
				dato['concepto']= egreso.concepto
				dato['monto']= str(egreso.id_haber.cantidadDinero)
				dato['obs']= egreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def Egresos_m_tem_view(request):
	return render(request,'ListadoEgresosM.html',{"resultado":''} )
#envios de dinero material
@login_required
def ListadoEnviosSaldo_m_view(request):
	return render(request,"ListadoSaldoEnviadoM.html",{} )

@login_required
def listaSaldoEnviado_total_m_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('f','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pag=request.GET.get('pg','')
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			pg= 1
			if pag !='':
				pg= int(pag)
			intrv=0
			if pg>1:
				intrv= ((pg-1)*5)+1
			fhoramin=None
			fhoramax=None
			if filtro == 'f':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			else:
				hoy= datetime.datetime.today()
				aux=hoy-timedelta(days=intrv)
				aux1=aux-timedelta(days=5)
				fhoramax= datetime.datetime.combine(aux,datetime.time.max)
				fhoramin= datetime.datetime.combine(aux1,datetime.time.min)
			consulta2 = list(EnvioCajaCajaM.objects.filter(idCajaHaber__id_caja= C.pk,idCajaHaber__fecha__range=(fhoramin,fhoramax)).values('pk','fecha','monto','comision','moneda','observaciones','conceptoDetalle','estado','id_CajaDestino'))
			for obj in consulta2:
				cd= Cajas.objects.get(pk=obj['id_CajaDestino'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=normalizar(obj['monto'])
				dato['moneda']= obj['moneda']
				dato['des']='<span style="color:blue;">'+cd.id_oficina.nombre_oficina+'</span> '+cd.id_usuario.nombre+' '+cd.id_usuario.Apellido_paterno
				dato['comi']= str(obj['comision'])
				dato['obs']=obj['observaciones']
				dato['est']=obj['estado']
				dato['tabla']= 'enviocaja'
				act="no"
				if obj['estado'] == 'enviado':
					act='si'
				dato['act'] = act
				lista.append(dato)
			ef={'d':str(fhoramin.strftime("%Y-%m-%d")),'h':str(fhoramax.strftime("%Y-%m-%d"))}
			lista.append(ef)
			data= json.dumps(lista)
			#else:
			#	data= json.dumps(lista)
		except:
			data='error en consulta '+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaSaldoRecibidos_m_view(request):
	return render(request,'saldoRecibidoM.html',{} )

@login_required
def listaSaldoRecibidas_m_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)	
			consulta2 = list(EnvioCajaCajaM.objects.filter(id_CajaDestino= C.pk,estado='enviado').values('pk','fecha','comision','monto','moneda','observaciones','conceptoDetalle','idCajaHaber'))
			for obj in consulta2:
				auxOri= TCajaHaberM.objects.get(pk=obj['idCajaHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='<span style="color:blue;">'+auxOri.id_oficina.nombre_oficina+'</span> /'+auxOri.id_caja.id_usuario.nombre +' '+auxOri.id_caja.id_usuario.Apellido_paterno
				dato['comi']=str(obj['comision'])
				dato['moneda']= obj['moneda']
				dato['obs']=obj['observaciones']
				dato['tabla']= 'enviocaja'
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def ListadoRecepcionSaldo_m_view(request):#este formulario sigue la misma logica
	return render(request,"ListadoSaldoRecibidoM.html",{} )

@login_required
def listaSaldoRecibidas_m_total_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('f','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pag=request.GET.get('pg','')
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			pg= 1
			if pag !='':
				pg= int(pag)
			intrv=0
			if pg>1:
				intrv= ((pg-1)*5)+1
			fhoramin=None
			fhoramax=None
			if filtro == 'f':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			else:
				hoy= datetime.datetime.today()
				aux=hoy-timedelta(days=intrv)
				aux1=aux-timedelta(days=5)
				fhoramax= datetime.datetime.combine(aux,datetime.time.max)
				fhoramin= datetime.datetime.combine(aux1,datetime.time.min)
			consulta2 = list(EnvioCajaCajaM.objects.filter(id_CajaDestino= C.pk,estado='recibido',idCajaHaber__fecha__range=(fhoramin,fhoramax)).values('pk','fecha','monto','moneda','comision','observaciones','conceptoDetalle','idCajaHaber'))
			for obj in consulta2:
				re=RecepcionEnvioCajaCajaM.objects.get(idEnvioCajaCaja=obj['pk'])
				auxOri= TCajaHaberM.objects.get(pk=obj['idCajaHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['fechar']=str(re.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='<span style="color:blue;">'+auxOri.id_oficina.nombre_oficina+'</span> /'+auxOri.id_caja.id_usuario.nombre + ' '+auxOri.id_caja.id_usuario.Apellido_paterno
				dato['comi']=str(obj['comision'])
				dato['moneda']= obj['moneda']
				dato['obs']=obj['observaciones']
				dato['obsRe']=re.observaciones
				dato['tabla']= 'enviocaja'
				lista.append(dato)
			ef={'d':str(fhoramin.strftime("%Y-%m-%d")),'h':str(fhoramax.strftime("%Y-%m-%d"))}
			lista.append(ef)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#movimientos de caja material
@login_required
def Ingresos_Egresos_m_tem_view(request):
	return render(request,'ListadoIngresoEgresoM.html',{"resultado":''} )
@login_required
def consultaIngreso_m_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta2= list(TCajaDebeM.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta2= list(TCajaDebeM.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta2= list(TCajaDebeM.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
			lista=[]
			for obj1 in consulta2:
				CD= TCajaDebeM.objects.get(pk=obj1['pk'])
				dato={}
				dato['tcd']=''
				if str(obj1['moneda'])=='soles':
					totalS= totalS+ConvertirDecimal(obj1['cantidadDinero'])
				if str(obj1['moneda'])=='dolares':
					totalD= totalD+ConvertirDecimal(obj1['cantidadDinero'])

				if(obj1['tablaRelacional']=='CtaAhorrosMovimientos'):
					cta =CtaAhorrosMovimientos.objects.get(tabla='TCajaDebeM',idDebeHaber=obj1['pk'])
					dato['concepto']= obj1['conceptoDetalle']+'<b style="color: #2e6da4;">  '+cta.id_ctaahorros.id_cliente.nombre+' '+cta.id_ctaahorros.id_cliente.Apellido_paterno+' '+cta.id_ctaahorros.id_cliente.Apellido_materno+'</b>'
				elif(obj1['tablaRelacional']=='CtaCteMovimientos'):
					if CtaCteMovimientos.objects.filter(tabla='TCajaDebeM',idDebeHaber=obj1['pk']).exists():
						cta =CtaCteMovimientos.objects.get(tabla='TCajaDebeM',idDebeHaber=obj1['pk'])
						dato['concepto']= obj1['conceptoDetalle']+'<b style="color: #2e6da4;">  '+cta.id_ctacte.id_cliente.nombre+' '+cta.id_ctacte.id_cliente.Apellido_paterno+' '+cta.id_ctacte.id_cliente.Apellido_materno+'</b>'
					else:
						dato['concepto']= obj1['conceptoDetalle']
				elif (obj1['tablaRelacional']=='RecepcionEnvioCajaCajaM'):
					recepcion = RecepcionEnvioCajaCajaM.objects.get(idCajaDebe=obj1['pk'])
					dato['concepto']= obj1['conceptoDetalle']+'<b style="color: #2e6da4;">  De Caja '+recepcion.idEnvioCajaCaja.idCajaHaber.id_caja.nombre+' ,Oficina '+recepcion.idEnvioCajaCaja.idCajaHaber.id_oficina.nombre_oficina+'</b>'
				else:
					dato['concepto']= obj1['conceptoDetalle']
				

				dato['fecha'] = str(obj1['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= obj1['tipoDocumento']
				dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
				dato['moneda']= obj1['moneda']
				dato['monto']= normalizar(float(obj1['cantidadDinero']))
				dato['nroR']= obj1['nroRecibo']
				lista.append(dato)
			total={}
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=round(float(totalD),2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consultaEgreso_m_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		aux_tc=0
		num_tc=0
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta = list(TCajaHaberM.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
					else:
						#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta = list(TCajaHaberM.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
				else:
					#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					data='fail'
			else:
				#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta = list(TCajaHaberM.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['tcd']=''
				if str(obj['moneda'])=='soles':
					totalS= totalS+float(obj['cantidadDinero'])
				elif str(obj['moneda'])=='dolares':
					totalD= totalD+float(obj['cantidadDinero'])
				dato['concepto']=''
				if obj['tablaRelacional']=='EnvioCajaCajaM':
					envio = EnvioCajaCajaM.objects.get(idCajaHaber=obj['pk'])
					dato['concepto']= obj['conceptoDetalle'] +'<b style="color: #d43f3a;"> Para Caja '+envio.id_CajaDestino.nombre+' ,Oficina '+envio.id_CajaDestino.id_oficina.nombre_oficina+'</b>'
				elif obj['tablaRelacional']=='CtaCteMovimientos':
					if CtaCteMovimientos.objects.filter(tabla='TCajaHaberM',idDebeHaber=obj['pk']).exists():
						cta =CtaCteMovimientos.objects.get(tabla='TCajaHaberM',idDebeHaber=obj['pk'])
						dato['concepto']= obj['conceptoDetalle']+'<b style="color: #d43f3a;">  '+cta.id_ctacte.id_cliente.nombre+' '+cta.id_ctacte.id_cliente.Apellido_paterno+' '+cta.id_ctacte.id_cliente.Apellido_materno+'</b>'
					else:
						dato['concepto']= obj['conceptoDetalle']
				else:
					dato['concepto']= obj['conceptoDetalle']
				dato['fecha'] = str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= str(obj['tipoDocumento'])
				dato['moneda']= str(obj['moneda'])
				dato['monto']= normalizar(float(obj['cantidadDinero']))
				dato['nroR']= str(obj['nroRecibo'])
				
				lista.append(dato)
			total={}
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=round(float(totalD),2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
#movimientos material
@login_required
def Ingresos_Egresos_material_tem_view(request):
	return render(request,'ListadoIngresoEgresoMaterial.html',{"resultado":''} )
@login_required
def consultaIngreso_material_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalM=0
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			consulta2=[]
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta2= list(TCajaMaterialDebe.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','pesoGramos','nroRecibo','tablaRelacional'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta2= list(TCajaMaterialDebe.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','pesoGramos','nroRecibo','tablaRelacional'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta2= list(TCajaMaterialDebe.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','pesoGramos','nroRecibo','tablaRelacional'))
			lista=[]
			for obj1 in consulta2:
				CD= TCajaMaterialDebe.objects.get(pk=obj1['pk'])
				dato={}
				totalM= totalM+ConvertirDecimal(obj1['pesoGramos'])
				
				dato['concepto']= obj1['conceptoDetalle']

				dato['fecha'] = str(obj1['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= obj1['tipoDocumento']
				dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
				dato['monto']= normalizar(float(obj1['pesoGramos']))
				dato['nroR']= obj1['nroRecibo']
				lista.append(dato)
			total={}
			total['total_material']=normalizar(totalM)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consultaEgreso_material_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalM=0
		aux_tc=0
		num_tc=0
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta = list(TCajaMaterialHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','pesoGramos','nroRecibo','tablaRelacional'))
					else:
						#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta = list(TCajaMaterialHaber.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','pesoGramos','nroRecibo','tablaRelacional'))
				else:
					#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					data='fail'
			else:
				#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta = list(TCajaMaterialHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','pesoGramos','nroRecibo','tablaRelacional'))
			lista=[]
			for obj in consulta:
				dato={}
				totalM= totalM+float(obj['pesoGramos'])
				dato['concepto']=''
				dato['concepto']= obj['conceptoDetalle']
				dato['fecha'] = str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= str(obj['tipoDocumento'])
				dato['monto']= normalizar(float(obj['pesoGramos']))
				dato['nroR']= str(obj['nroRecibo'])
				
				lista.append(dato)
			total={}
			total['total_material']=normalizar(totalM)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#movimientos caja dolar
@login_required
def Ingresos_Egresos_dolar_tem_view(request):
	return render(request,'ListadoIngresoEgresoD.html',{"resultado":''} )
@login_required
def consultaIngreso_dolar_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pkCaja=request.GET.get('pkC','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if pkCaja != '' and pkCaja !=None:
				C = Cajas.objects.get(pk=pkCaja)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta2= list(TCajaDebeCambio.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta2= list(TCajaDebeCambio.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta2= list(TCajaDebeCambio.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','tablaRelacional'))
			lista=[]
			for obj1 in consulta2:
				CD= TCajaDebeCambio.objects.get(pk=obj1['pk'])
				dato={}
				dato['tcd']=''
				if str(obj1['moneda'])=='soles':
					totalS= totalS+ConvertirDecimal(obj1['cantidadDinero'])
				if str(obj1['moneda'])=='dolares':
					totalD= totalD+ConvertirDecimal(obj1['cantidadDinero'])
				dato['concepto']= obj1['conceptoDetalle']
				dato['fecha'] = str(obj1['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= obj1['tipoDocumento']
				dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
				dato['moneda']= obj1['moneda']
				dato['monto']= normalizar(float(obj1['cantidadDinero']))
				dato['nroR']= obj1['nroRecibo']
				dato['tc']= str(CD.tipo_cambio)
				lista.append(dato)
			total={}
			total['total_soles']=normalizar(totalS)
			total['total_dolares']=normalizar(totalD)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consultaEgreso_dolar_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pkCaja=request.GET.get('pkC','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		aux_tc=0
		num_tc=0
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if pkCaja != '' and pkCaja !=None:
				C = Cajas.objects.get(pk=pkCaja)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta = list(TCajaHaberCambio.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','tipo_cambio','nroRecibo','tablaRelacional'))
					else:
						#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta = list(TCajaHaberCambio.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','tipo_cambio','nroRecibo','tablaRelacional'))
				else:
					#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					data='fail'
			else:
				#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta = list(TCajaHaberCambio.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','tipo_cambio','nroRecibo','tablaRelacional'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['tcd']=''
				if str(obj['moneda'])=='soles':
					totalS= totalS+float(obj['cantidadDinero'])
				elif str(obj['moneda'])=='dolares':
					totalD= totalD+float(obj['cantidadDinero'])
				dato['concepto']=''
				dato['concepto']= obj['conceptoDetalle']
				dato['fecha'] = str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= str(obj['tipoDocumento'])
				dato['moneda']= str(obj['moneda'])
				dato['monto']= normalizar(float(obj['cantidadDinero']))
				dato['nroR']= str(obj['nroRecibo'])
				dato['tc']= str(obj['tipo_cambio'])
				lista.append(dato)
			total={}
			total['total_soles']=normalizar(totalS)
			total['total_dolares']=normalizar(totalD)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#*******************************************************************
#********************* cuentas main *********************************
@login_required
def Listado_CuentasCtes_tem_main_view(request):
	return render(request,"ListaCuentasCorriente_main.html",{'resultado':''} )

@login_required
def listacentasAhorrosCte_activo_main_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaCte_main.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCte_main.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['moneda']= str(cta.moneda)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['agente']='no'
				if Entidad_Bancaria_caja.objects.filter(cta=obj['pk'],es_agente=True).exists():
					dato['agente']='si'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def lista_Movi_cuentasAhorrosCte_activos_main_ajax_view(request):
	id_cta=request.GET.get('pkCta','')
	filtro=request.GET.get('filtro','')
	F1=request.GET.get('F1','')
	F2=request.GET.get('F2','')
	if filtro=='h':
		F1= str(datetime.date.today())
		filtro= 'f'
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			if filtro =='f':
				if F1 !='':
					fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					consulta=list(CtaCteMovimientos_main.objects.filter(id_ctacte=id_cta, fecha__range=(horamin,horamax)).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','conceptoDetalle','comision','moneda'))
				else:
					data='fail'
			elif filtro=='ef':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
				consulta=list(CtaCteMovimientos_main.objects.filter(id_ctacte=id_cta, fecha__range=(fhoramin,fhoramax)).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','conceptoDetalle','comision','moneda'))
			else:
				data='fail'
			#consulta=list(CtaCteMovimientos_main.objects.filter(id_ctacte=id_cta).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','conceptoDetalle','comision','moneda'))
			lista=[]
			for obj in consulta:
				cta = CtaCte_main.objects.get(pk=obj['id_ctacte'])
				if obj['tabla']=='DepositoCtaTransferenciaProcesado':
					movi= DepositoCtaTransferenciaProcesado.objects.get(id_movimiento=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= obj['moneda']
					dato['td']= 'R/I'
					dato['nr']= ""
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= obj['conceptoDetalle']
					dato['obs']= obj['observacionesMovimientos']
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					lista.append(dato)

				elif obj['tabla']=='RetiroCtaTransferenciaProcesado':
					movi= RetiroCtaTransferenciaProcesado.objects.get(id_movimiento=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= obj['moneda']
					dato['td']= 'R/I'
					dato['nr']= ""
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= obj['conceptoDetalle']
					dato['obs']= obj['observacionesMovimientos']
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					lista.append(dato)
				elif obj['tabla']=='RetiroTransferenciaCtaComision':
					movi= RetiroTransferenciaCta.objects.get(id_comi_mov=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= obj['moneda']
					dato['td']= 'R/I'
					dato['nr']= ""
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= obj['conceptoDetalle']
					dato['obs']= obj['observacionesMovimientos']
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					lista.append(dato)
				else:
					movi=None
					if obj['tabla']=='TCajaDebe':
						movi= TCajaDebe.objects.get(pk=obj['idDebeHaber'])
					elif obj['tabla']=='TCajaHaber':
						movi= TCajaHaber.objects.get(pk=obj['idDebeHaber'])
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= movi.moneda
					dato['td']= movi.tipoDocumento
					dato['nr']= movi.nroRecibo
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= movi.conceptoDetalle[:15]
					dato['obs']= movi.observaciones
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listacentasAhorrosCte_activos_filtro_cli_main_ajax_view(request):
	pag=request.GET.get('pg','')
	dni_cli=request.GET.get('dni','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta = []
			
			if C.id_oficina.categoria_oficina=="central" and C.id_oficina.id_usuario.pk == C.id_usuario.pk:
				if dni_cli == '':
					consulta=list(CtaCte_main.objects.all().order_by('-pk').values('pk'))
				else:
					consulta=list(CtaCte_main.objects.filter(Q(id_cliente__dni__icontains=dni_cli)|Q(id_cliente__nombre__icontains=dni_cli)|Q(id_cliente__Apellido_paterno__icontains=dni_cli)|Q(id_cliente__Apellido_materno__icontains=dni_cli)).order_by('-pk').values('pk'))
			else:
				consulta=list(CtaCte_main.objects.filter(id_cliente__dni=dni_cli, ).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCte_main.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['moneda']= str(cta.moneda)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['agente']='no'
				if Entidad_Bancaria_caja.objects.filter(cta=obj['pk'],es_agente=True).exists():
					dato['agente']='si'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listacentasAhorrosCte_activos_filtro_idcli_main_ajax_view(request):
	pag=request.GET.get('pg','')
	id_cli=request.GET.get('id_cliente','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaCte_main.objects.filter(id_cliente=id_cli).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCte_main.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['moneda']= str(cta.moneda)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#************************ cierres de dolares *****************************
@login_required
def cierre_caja_dolar_view(request):
	return render(request,'cierre_dolares.html',{} )
@login_required
def listaCierres_caja_dolar_view(request):
	return render(request,'Cierres_dolares.html',{} )

@login_required
def listaCierresDolares_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		data=''
		lista=[]
		try:
			consulta = list(CajaCierreDolares.objects.filter(id_caja__id_usuario__usuario=usr).order_by('-pk').values('fecha','totalDebeSoles','totalDebeDolares','totalHaberSoles','totalHaberDolares','observaciones','saldo_soles','saldo_dolares','saldoInicial_soles','saldoInicial_dolares','soles_sistema','dolares_sistema','fechaDesde','fechaHasta','estado'))
			for obj in consulta:
				dato={}
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['is']=str(round(float(obj['totalDebeSoles']),2))
				dato['ide']=str(round(float(obj['totalDebeDolares']),2))
				dato['es']=str(round(float(obj['totalHaberSoles']),2))
				dato['ed']=str(round(float(obj['totalHaberDolares']),2))
				dato['ss']=str(round(float(obj['saldo_soles']),2))
				dato['sd']=str(round(float(obj['saldo_dolares']),2))
				dato['sis']=str(round(float(obj['saldoInicial_soles']),2))
				dato['sid']=str(round(float(obj['saldoInicial_dolares']),2))
				dato['sisS']=str(round(float(obj['soles_sistema']),2))
				dato['sisD']=str(round(float(obj['dolares_sistema']),2))
				dato['fd']=str(obj['fechaDesde'].strftime("%Y-%m-%d"))
				dato['fh']=str(obj['fechaHasta'].strftime("%Y-%m-%d"))
				dato['est']=str(obj['estado'])
				dato['obs']=obj['observaciones']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#******************** cierres material ************************
@login_required
def cierre_caja_material_view(request):
	return render(request,'cierre_material.html',{} )
@login_required
def listaCierres_caja_material_view(request):
	return render(request,'Cierres_material.html',{} )

@login_required
def listaCierresMaterial_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		data=''
		lista=[]
		try:
			consulta = list(CajaCierreMaterial.objects.filter(id_caja__id_usuario__usuario=usr).order_by('-pk').values('fecha','totalDebeSoles','totalDebeDolares','totalDebeMaterial','totalHaberSoles','totalHaberDolares','totalHaberMaterial','observaciones','saldo_soles','saldo_dolares','saldo_material','saldoInicial_soles','saldoInicial_dolares','saldoInicial_material','soles_sistema','dolares_sistema','material_sistema','fechaDesde','fechaHasta','estado'))
			for obj in consulta:
				dato={}
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['is']=str(round(float(obj['totalDebeSoles']),2))
				dato['ide']=str(round(float(obj['totalDebeDolares']),2))
				dato['im']=str(round(float(obj['totalDebeMaterial']),2))
				dato['es']=str(round(float(obj['totalHaberSoles']),2))
				dato['ed']=str(round(float(obj['totalHaberDolares']),2))
				dato['em']=str(round(float(obj['totalHaberMaterial']),2))
				dato['ss']=str(round(float(obj['saldo_soles']),2))
				dato['sd']=str(round(float(obj['saldo_dolares']),2))
				dato['sm']=str(round(float(obj['saldo_material']),2))
				dato['sis']=str(round(float(obj['saldoInicial_soles']),2))
				dato['sid']=str(round(float(obj['saldoInicial_dolares']),2))
				dato['sim']=str(round(float(obj['saldoInicial_material']),2))
				dato['sisS']=str(round(float(obj['soles_sistema']),2))
				dato['sisD']=str(round(float(obj['dolares_sistema']),2))
				dato['sisM']=str(round(float(obj['material_sistema']),2))
				dato['fd']=str(obj['fechaDesde'].strftime("%Y-%m-%d"))
				dato['fh']=str(obj['fechaHasta'].strftime("%Y-%m-%d"))
				dato['est']=str(obj['estado'])
				dato['obs']=obj['observaciones']
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#*******************************************************************
#********************* cuentas main *********************************
@login_required
@permission_required('Main.add_oficina')
def Listado_CuentasCtes_tem_admin_view(request):
	return render(request,"ListaCuentasCorriente_admin.html",{'resultado':''} )

@login_required
@permission_required('Main.add_oficina')
def listacentasAhorrosCte_activo_admin_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*50
	hasta= pg*50
	usr= request.user.username
	if request.is_ajax:
		try:
			G = Gerente.objects.get(usuario=usr)
			C= Cajas.objects.get(id_usuario=G.id_usuario.pk)
			consulta=list(CtaCte_main.objects.all().order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCte_main.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['moneda']= str(cta.moneda)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#******************************* listado de ingreso egreso admin - gerencia
@login_required
@permission_required('Main.add_oficina')
def listaIngresos_activos_admin_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			G = Gerente.objects.get(usuario=usr)
			C= Cajas.objects.get(id_usuario=G.id_usuario.pk)
			consulta=list(Ingreso.objects.filter(id_debe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				ingreso= Ingreso.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=ingreso.afavor
				dato['fecha']=str(ingreso.id_debe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=ingreso.id_debe.nroRecibo
				dato['estado']=ingreso.estado
				dato['concepto']= ingreso.concepto
				dato['monto']= str(ingreso.id_debe.cantidadDinero)
				dato['obs']= ingreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def Ingresos_admin_tem_view(request):
	return render(request,'ListadoIngresos_admin.html',{"resultado":''} )

@login_required
@permission_required('Main.add_oficina')
def listaEgresos_activos_admin_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			G = Gerente.objects.get(usuario=usr)
			C= Cajas.objects.get(id_usuario=G.id_usuario.pk)
			consulta=list(Egreso.objects.filter(id_haber__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			lista=[]
			for obj in consulta:
				egreso= Egreso.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['afavor']=egreso.afavor
				dato['fecha']=str(egreso.id_haber.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['nroRecibo']=egreso.id_haber.nroRecibo
				dato['estado']=egreso.estado
				dato['concepto']= egreso.concepto
				dato['monto']= str(egreso.id_haber.cantidadDinero)
				dato['obs']= egreso.observaciones
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def Egresos_admin_tem_view(request):
	return render(request,'ListadoEgresos_admin.html',{"resultado":''} )
#************* movimientos ************************
@login_required
@permission_required('Main.add_oficina')
def ListadoIngresoEgreso_admin_view(request):
	cargo =''
	return render(request,'ListadoIngresoEgreso_admin.html',{"cargo":cargo} )
@login_required
@permission_required('Main.add_oficina')
def consultaIngresoCierre_admin_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		UtilD = 0
		UtilS=0
		data=''
		try:
			G = Gerente.objects.get(usuario=usr)
			C= Cajas.objects.get(id_usuario=G.id_usuario.pk)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta2= list(TCajaDebe.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta2= list(TCajaDebe.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta2= list(TCajaDebe.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
			lista=[]
			tbancoD=0
			tbancoS=0
			tcapiD=0
			tcapiS=0
			aux_tc=0
			num_tc=0
			for obj1 in consulta2:
				CD= TCajaDebe.objects.get(pk=obj1['pk'])
				dato={}
				dato['tcd']=''
				if str(obj1['moneda'])=='soles':
					totalS= totalS+ConvertirDecimal(obj1['cantidadDinero'])
				if str(obj1['moneda'])=='dolares':
					totalD= totalD+ConvertirDecimal(obj1['cantidadDinero'])
				dato['usuGlo']=''
				dato['concepto']= obj1['conceptoDetalle']
				dato['fecha'] = str(obj1['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= obj1['tipoDocumento']
				dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
				dato['moneda']= obj1['moneda']
				dato['monto']= normalizar(float(obj1['cantidadDinero']))
				dato['comision']= ''
				dato['comi_banco']= ''
				dato['capi']= ''
				dato['nroR']= obj1['nroRecibo']
				lista.append(dato)
			total={}
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=round(float(totalD),2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
@permission_required('Main.add_oficina')
def consultaEgresoCierre_admin_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		aux_tc=0
		num_tc=0
		data=''
		try:
			G = Gerente.objects.get(usuario=usr)
			C= Cajas.objects.get(id_usuario=G.id_usuario.pk)
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					else:
						#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax)).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				else:
					#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					data='fail'
			else:
				#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax)).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
			lista=[]
			for obj in consulta:
				dato={}
				dato['tcd']=''
				if str(obj['moneda'])=='soles':
					totalS= totalS+obj['cantidadDinero']
				if str(obj['moneda'])=='dolares':
					totalD= totalD+obj['cantidadDinero']

				dato['concepto']= obj['conceptoDetalle']
				dato['fecha'] = str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= str(obj['tipoDocumento'])
				dato['moneda']= str(obj['moneda'])
				dato['monto']= normalizar(float(obj['cantidadDinero']))
				dato['nroR']= str(obj['nroRecibo'])
				lista.append(dato)
			total={}
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=round(float(totalD),2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#listado de solicitudes spbregiro
@login_required
def lista_sobregiros_cta_main_ajax_view(request):
	pk_cuenta=request.GET.get('pkCta','')
	usr= request.user.username
	if request.is_ajax:
		try:
			consulta=list(Solicitud_sobregiros_ctacte_main.objects.filter(id_ctacte=pk_cuenta,estado__in=['pendiente','autorizado']).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				so= Solicitud_sobregiros_ctacte_main.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['cta']=so.id_ctacte.pk
				dato['fecha_solicitud']=str(so.fecha.strftime("%d-%m-%Y %H:%M %p"))
				dato['solicitador']='<span style="color:blue;">'+so.id_caja_solicitante.id_oficina.nombre_oficina+'</span> <span style="color:green;">'+so.id_caja_solicitante.nombre+'</span> ' +so.id_user_solicitante.nombre + ' '+so.id_user_solicitante.Apellido_paterno
				dato['estado']=so.estado
				dato['autorizador']= ''
				fecha_auto=''
				if so.fecha_aut !=None:
					fecha_auto==str(so.fecha_aut.strftime("%d-%m-%Y %H:%M %p"))
				dato['fecha_auto']= fecha_auto
				dato['obs']= so.obs
				dato['obs_aut'] = so.obs_autorizado
				dato['retiro'] =  str(so.monto_retiro)
				dato['sobregiro'] =  str(so.monto_sobregiro)
				dato['indefinido'] = so.indefinido
				dato['dias'] = so.nro_dias
				fecha_pago=''
				if so.fecha_pago != None:
					fecha_pago=str(so.fecha_pago.strftime("%Y-%m-%d"))
				dato['fecha_pago'] = fecha_pago
				dato['interes_dia'] =str(so.interes_dia)
				dato['interes_total'] = str(so.interes_total)
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#gerente
@login_required
def ListadoAutorizarCtaCtes_view(request):
	return render(request,'ListadoPeticionesCtasCtes.html',{} )

@login_required
def lista_sobregiros_cta_main_gerente_ajax_view(request):
	usr= request.user.username
	filtro=request.GET.get('filtro','')
	F1=request.GET.get('F1','')
	F2=request.GET.get('F2','')
	activo=request.GET.get('activo','')
	if filtro=='h':
		F1= str(datetime.date.today())
		filtro= 'f'
	if request.is_ajax:
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			if activo == 'si':
				consulta=list(Solicitud_sobregiros_ctacte_main.objects.filter(estado='pendiente').order_by('-pk').values('pk'))
			else:
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta=list(Solicitud_sobregiros_ctacte_main.objects.filter(fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta=list(Solicitud_sobregiros_ctacte_main.objects.filter(fecha__range=(fhoramin,fhoramax)).order_by('-pk').values('pk'))
				else:
					data='fail'
			#consulta=list(Solicitud_sobregiros_ctacte_main.objects.all().order_by('-pk').values('pk'))
			lista=[]
			if C.id_oficina.categoria_oficina=="central":
				for obj in consulta:
					so= Solicitud_sobregiros_ctacte_main.objects.get(pk=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['cta']=so.id_ctacte.pk
					dato['moneda']=so.id_ctacte.moneda
					dato['saldo']=str(so.id_ctacte.saldo)
					dato['cli_no']=so.id_ctacte.id_cliente.nombre
					dato['cli_ap']=so.id_ctacte.id_cliente.Apellido_paterno
					dato['cli_am']=so.id_ctacte.id_cliente.Apellido_materno
					dato['cli_dni']=so.id_ctacte.id_cliente.dni
					dato['fecha_solicitud']=str(so.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['solicitador']='<span style="color:blue;">'+so.id_caja_solicitante.id_oficina.nombre_oficina+'</span> <span style="color:green;">'+so.id_caja_solicitante.nombre+'</span> ' +so.id_user_solicitante.nombre + ' '+so.id_user_solicitante.Apellido_paterno
					dato['estado']=so.estado
					dato['autorizador']= ''
					fecha_auto=''
					if so.fecha_aut !=None:
						fecha_auto==str(so.fecha_aut.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_auto']= fecha_auto
					dato['obs']= so.obs
					dato['obs_aut'] = so.obs_autorizado
					dato['retiro'] =  str(so.monto_retiro)
					dato['sobregiro'] =  str(so.monto_sobregiro)
					dato['indefinido'] = so.indefinido
					dato['dias'] = so.nro_dias
					fecha_pago=''
					if so.fecha_pago != None:
						fecha_pago=str(so.fecha_pago.strftime("%d-%m-%Y"))
					dato['fecha_pago'] = fecha_pago
					dato['interes_dia'] =str(so.interes_dia)
					dato['interes_total'] = str(so.interes_total)
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#envios de dinero dolar
@login_required
def ListadoEnviosSaldo_do_view(request):
	return render(request,"ListadoSaldoEnviadoD.html",{} )

@login_required
def listaSaldoEnviado_total_do_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('f','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pag=request.GET.get('pg','')
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			pg= 1
			if pag !='':
				pg= int(pag)
			intrv=0
			if pg>1:
				intrv= ((pg-1)*5)+1
			fhoramin=None
			fhoramax=None
			if filtro == 'f':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			else:
				hoy= datetime.datetime.today()
				aux=hoy-timedelta(days=intrv)
				aux1=aux-timedelta(days=5)
				fhoramax= datetime.datetime.combine(aux,datetime.time.max)
				fhoramin= datetime.datetime.combine(aux1,datetime.time.min)
			consulta2 = list(EnvioCajaCajaD.objects.filter(idCajaHaber__id_caja= C.pk,idCajaHaber__fecha__range=(fhoramin,fhoramax)).values('pk','fecha','monto','comision','moneda','observaciones','conceptoDetalle','estado','id_CajaDestino'))
			for obj in consulta2:
				cd= Cajas.objects.get(pk=obj['id_CajaDestino'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=normalizar(obj['monto'])
				dato['moneda']= obj['moneda']
				dato['des']='<span style="color:blue;">'+cd.id_oficina.nombre_oficina+'</span> '+cd.id_usuario.nombre+' '+cd.id_usuario.Apellido_paterno
				dato['comi']= str(obj['comision'])
				dato['obs']=obj['observaciones']
				dato['est']=obj['estado']
				dato['tabla']= 'enviocaja'
				act="no"
				if obj['estado'] == 'enviado':
					act='si'
				dato['act'] = act
				lista.append(dato)
			ef={'d':str(fhoramin.strftime("%Y-%m-%d")),'h':str(fhoramax.strftime("%Y-%m-%d"))}
			lista.append(ef)
			data= json.dumps(lista)
			#else:
			#	data= json.dumps(lista)
		except:
			data='error en consulta '+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaSaldoRecibidos_do_view(request):
	return render(request,'saldoRecibidoD.html',{} )

@login_required
def listaSaldoRecibidas_do_ajax_view(request):
	if request.is_ajax:
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)	
			consulta2 = list(EnvioCajaCajaD.objects.filter(id_CajaDestino= C.pk,estado='enviado').values('pk','fecha','comision','monto','moneda','observaciones','conceptoDetalle','idCajaHaber'))
			for obj in consulta2:
				auxOri= TCajaHaberCambio.objects.get(pk=obj['idCajaHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='<span style="color:blue;">'+auxOri.id_oficina.nombre_oficina+'</span> /'+auxOri.id_caja.id_usuario.nombre +' '+auxOri.id_caja.id_usuario.Apellido_paterno
				dato['comi']=str(obj['comision'])
				dato['moneda']= obj['moneda']
				dato['obs']=obj['observaciones']
				dato['tabla']= 'enviocaja'
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def ListadoRecepcionSaldo_do_view(request):#este formulario sigue la misma logica
	return render(request,"ListadoSaldoRecibidoD.html",{} )

@login_required
def listaSaldoRecibidas_do_total_ajax_view(request):
	if request.is_ajax:
		filtro=request.GET.get('f','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		pag=request.GET.get('pg','')
		usr = request.user.username
		data=''
		lista=[]
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			pg= 1
			if pag !='':
				pg= int(pag)
			intrv=0
			if pg>1:
				intrv= ((pg-1)*5)+1
			fhoramin=None
			fhoramax=None
			if filtro == 'f':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
			else:
				hoy= datetime.datetime.today()
				aux=hoy-timedelta(days=intrv)
				aux1=aux-timedelta(days=5)
				fhoramax= datetime.datetime.combine(aux,datetime.time.max)
				fhoramin= datetime.datetime.combine(aux1,datetime.time.min)
			consulta2 = list(RecepcionEnvioCajaCajaD.objects.filter(idCajaDebe__id_caja= C.pk,idCajaDebe__fecha__range=(fhoramin,fhoramax)).values('pk','fecha','monto','moneda','observaciones','conceptoDetalle','idCajaDebe','idEnvioCajaCaja'))
			for obj in consulta2:
				envio=EnvioCajaCajaD.objects.get(pk=obj['idEnvioCajaCaja'])
				aux= TCajaDebeCambio.objects.get(pk=obj['idCajaDebe'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(envio.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['fechar']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['concepto']=obj['conceptoDetalle']
				dato['monto']=str(obj['monto'])
				dato['ori']='<span style="color:blue;">'+envio.idCajaHaber.id_oficina.nombre_oficina+'</span> /'+envio.idCajaHaber.id_caja.id_usuario.nombre + ' '+envio.idCajaHaber.id_caja.id_usuario.Apellido_paterno
				dato['comi']=str(envio.comision)
				dato['moneda']= obj['moneda']
				dato['obs']=envio.observaciones
				dato['obsRe']=obj['observaciones']
				#dato['tabla']= 'enviocaja'
				lista.append(dato)
			ef={'d':str(fhoramin.strftime("%Y-%m-%d")),'h':str(fhoramax.strftime("%Y-%m-%d"))}
			lista.append(ef)
			data= json.dumps(lista)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
#consultar detalle de bancos
@login_required
def detalle_banco_st_ajax(request):
	if request.is_ajax:
		idST=request.GET.get('id_st')
		usr = request.user.username
		data=''
		try:
			C= Cajas.objects.get(id_usuario__usuario=usr)
			dato={'exito':''}
			if st_banco_detalle.objects.filter(id_transferencia=idST,id_transferencia__banco='si').exists():
				stbanco=st_banco_detalle.objects.get(id_transferencia=idST,id_transferencia__banco='si')
				dato={'exito':'exito','banco':stbanco.banco,'celref':stbanco.cel_referencia,'cta_dni':stbanco.cta_dni,'nro_ope':stbanco.nro_operacion,'nro_giro':stbanco.nro_giro,'clave':stbanco.clave,'leido':str(stbanco.leido_banco)[:2],'verificado':str(stbanco.verificado)[:2]}
			data= json.dumps(dato)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)
@login_required
@transaction.atomic
def numeracionSTleida_ajax_view(request):
	data=''
	nr=''
	if request.is_ajax:
		idTr=request.GET.get('idT')
		usr= request.user.username
		try:
			with transaction.atomic():
				gst= SolicitudTransferencia.objects.get(pk=idTr)
				nroleido = str(gst.nroLeido)
				data= nroleido
		except IntegrityError:
			data='fail'
		except:
			data='fail'+ str(sys.exc_info()[0])
	else:
		data="fail"
	mimetype="text"
	return HttpResponse(data,mimetype)
#adelantos
@login_required
def lista_adelantos_activos_ajax_view(request):
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=AdelantoCompraM.objects.filter(idCajaHaber__id_caja=C.pk,estado='activo',estado_ade=True).order_by('-pk').values('pk')
			lista=[]
			for obj in consulta:
				adelanto= AdelantoCompraM.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']=str(adelanto.fecha.strftime("%d-%m-%Y %I:%M %p"))
				dato['fecha_f']=str(adelanto.fecha.strftime("%d-%m-%Y"))
				dato['fecha_h']=str(adelanto.fecha.strftime("%I:%M %p"))
				dato['nroRecibo']=adelanto.idCajaHaber.nroRecibo
				dato['cliente_sobre']= adelanto.cliente_sobre
				dato['monto']= str(adelanto.monto)
				dato['monto_haber']= str(adelanto.idCajaHaber.cantidadDinero)
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#--------------- CUENTAS MATERIAL --------------
@login_required
def Listado_CuentasCtesMaterial_tem_view(request):
	return render(request,"ListaCuentasCorrienteMaterial.html",{'resultado':''} )

@login_required
def listaCuentasCteMaterial_activos_ajax_view(request):
	pag=request.GET.get('pg','')
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaCteMaterial.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCteMaterial.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def lista_Movi_CuentasCteMaterial_activos_ajax_view(request):
	id_cta=request.GET.get('pkCta','')
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(CtaCteMovimientosMaterial.objects.filter(id_ctacte=id_cta).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','comision'))
			lista=[]
			for obj in consulta:
				cta = CtaCteMaterial.objects.get(pk=obj['id_ctacte'])
				movi=None
				if obj['tabla']=='TCajaMaterialDebe':
					movi= TCajaMaterialDebe.objects.get(pk=obj['idDebeHaber'])
				elif obj['tabla']=='TCajaMaterialHaber':
					movi= TCajaMaterialHaber.objects.get(pk=obj['idDebeHaber'])
				dato={}
				dato['pk']=obj['pk']
				dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
				dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
				dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
				dato['deposito']= str(obj['montoDeposito'])
				dato['retiro']= str(obj['montoRetiro'])
				dato['saldo']= str(obj['saldo'])
				dato['td']= movi.tipoDocumento
				dato['nr']= movi.nroRecibo
				dato['dni']= cta.id_cliente.dni
				dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
				dato['concepto']= movi.conceptoDetalle[:15]
				dato['obs']= movi.observaciones
				dato['oficina']= movi.id_oficina.nombre_oficina
				dato['caja']= movi.id_caja.nombre
				dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaCuentasCteMaterial_activos_filtro_cli_ajax_view(request):
	pag=request.GET.get('pg','')
	dni_cli=request.GET.get('dni','')#dni o nombre
	pg= 1
	if pag !='':
		pg= int(pag)
	desde= (pg-1)*20
	hasta= pg*20
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta = []
			if C.id_oficina.categoria_oficina=="central" and C.id_oficina.id_usuario.pk == C.id_usuario.pk:
				if dni_cli == '':
					consulta=list(CtaCteMaterial.objects.all().order_by('-pk').values('pk'))
				else:
					consulta=list(CtaCteMaterial.objects.filter(Q(id_cliente__dni__icontains=dni_cli)|Q(id_cliente__nombre__icontains=dni_cli)|Q(id_cliente__Apellido_paterno__icontains=dni_cli)|Q(id_cliente__Apellido_materno__icontains=dni_cli)).order_by('-pk').values('pk'))
			else:
				consulta=list(CtaCteMaterial.objects.filter(Q(id_cliente__dni__icontains=dni_cli,id_oficina=C.id_oficina.pk)|Q(id_cliente__nombre__icontains=dni_cli,id_oficina=C.id_oficina.pk)|Q(id_cliente__Apellido_paterno__icontains=dni_cli,id_oficina=C.id_oficina.pk)|Q(id_cliente__Apellido_materno__icontains=dni_cli,id_oficina=C.id_oficina.pk)).order_by('-pk').values('pk'))
			lista=[]
			for obj in consulta:
				cta = CtaCteMaterial.objects.get(pk=obj['pk'])
				dato={}
				dato['pk']=obj['pk']
				dato['dni']=cta.id_cliente.dni
				dato['nom']=cta.id_cliente.nombre
				dato['ap']=cta.id_cliente.Apellido_paterno
				dato['am']=cta.id_cliente.Apellido_materno
				dato['tp']=cta.id_cliente.tipo_persona
				dato['fa']=str(cta.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= cta.id_oficina.nombre_oficina
				dato['saldo']= str(cta.saldo)
				dato['tipo']=''
				if cta.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['estado']=cta.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#********** rectificacion de sms ************
@login_required
def rectificar_enviados_sms_ajax_view(request):
	usr= request.user.username
	if request.is_ajax:
		try:
			con= Mensajeria_sms.objects.filter(estado='espera').update(estado='enviado')
			data ='exito'
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="text"
	return HttpResponse(data,mimetype)
#*******************************************
@login_required
def lista_cta_bancos_view(request):
	pk_cliente=request.GET.get('pk','')
	dni=request.GET.get('dni','')
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if pk_cliente=='0':
				consulta = list(cta_bancos.objects.filter(id_cliente__dni=dni).values('pk'))
			else:
				consulta = list(cta_bancos.objects.filter(id_cliente=pk_cliente).values('pk'))
			lista=[]
			for obj  in consulta:
				cta = cta_bancos.objects.get(pk=obj['pk'])
				dato={}
				dato['cliente'] = cta.id_cliente.nombre +' '+ cta.id_cliente.Apellido_paterno +' '+cta.id_cliente.Apellido_materno
				dato['banco'] = cta.banco
				dato['tipo_operacion'] = cta.tipo_operacion
				dato['cel_referencia'] = cta.cel_referencia
				dato['cta_dni'] = cta.cta_dni
				dato['banco_text'] = cta.banco
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data ='fail'+ str(sys.exc_info()[1])
	else:
		data ='fail'
	mimetype ="application/json"
	return HttpResponse(data,mimetype)

@login_required
def lista_bene_bancos_view(request):
	dni=request.GET.get('cta','')
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta = list(cta_bancos.objects.filter(cta_dni__icontains=dni).values('pk'))
			lista=[]
			for obj  in consulta:
				cta = cta_bancos.objects.get(pk=obj['pk'])
				dato={}
				dato['cliente'] = cta.id_cliente.nombre +' '+ cta.id_cliente.Apellido_paterno +' '+cta.id_cliente.Apellido_materno
				dato['banco'] = cta.banco
				dato['tipo_operacion'] = cta.tipo_operacion
				dato['cel_referencia'] = cta.cel_referencia
				dato['cta_dni'] = cta.cta_dni
				dato['banco_text'] = cta.banco
				#--- id
				dato['id_bene'] = cta.id_cliente.pk
				dato['dni'] = cta.id_cliente.dni
				dato['nombre'] = cta.id_cliente.nombre
				dato['ap'] = cta.id_cliente.Apellido_paterno
				dato['am'] = cta.id_cliente.Apellido_materno
				dato['telefono'] = cta.id_cliente.telefono
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data ='fail'+ str(sys.exc_info()[1])
	else:
		data ='fail'
	mimetype ="application/json"
	return HttpResponse(data,mimetype)

@login_required
def lista_cta_bancos_dni_view(request):
	dni=request.GET.get('dni','')
	usr= request.user.username
	if request.is_ajax:
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta = list(cta_bancos.objects.filter(id_cliente__dni=dni).values('pk'))
			lista=[]
			for obj  in consulta:
				cta = cta_bancos.objects.get(pk=obj['pk'])
				dato={}
				dato['cliente'] = cta.id_cliente.nombre +' '+ cta.id_cliente.Apellido_paterno +' '+cta.id_cliente.Apellido_materno
				dato['banco'] = cta.banco
				dato['tipo_operacion'] = cta.tipo_operacion
				dato['cel_referencia'] = cta.cel_referencia
				dato['cta_dni'] = cta.cta_dni
				dato['banco_text'] = ''
				if cta.banco == 'bn':
					dato['banco_text'] = 'Banco de la Nacion'
				elif cta.banco =='cn':
					dato['banco_text'] = 'Continental'
				elif cta.banco == 'bcp':
					dato['banco_text'] = 'BCP'
				elif cta.banco == 'otro':
					dato['banco_text'] = 'Otros Bancos'
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data ='fail'+ str(sys.exc_info()[1])
	else:
		data ='fail'
	mimetype ="application/json"
	return HttpResponse(data,mimetype)

#----- filtro bancos
@login_required
def listaTransfereciasPagadas_bancos_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		fbanco = request.GET.get('banco')
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=100
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if tipoFiltroF=="h":
				fIni= datetime.date.today()
				horamin= datetime.datetime.combine(fIni,datetime.time.min)
				horamax= datetime.datetime.combine(fIni,datetime.time.max)
				consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk').values('pk','idCajaHaber'))
			elif tipoFiltroF=="f":
				fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk').values('pk','idCajaHaber'))
			elif tipoFiltroF=="ef":
				fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha1,datetime.time.min)
				horamax= datetime.datetime.combine(fecha2,datetime.time.max)
				consulta= list(PagoTransferencia.objects.filter(idCajaHaber__fecha__range=(horamin,horamax),idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk').values('pk','idCajaHaber'))
			else:
				consulta= list(PagoTransferencia.objects.filter(idCajaHaber__id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaHaber'))
					
			for obj in consulta:
				dato={}
				pago = PagoTransferencia.objects.get(pk=obj['pk'])
				if st_banco_detalle.objects.filter(id_transferencia=pago.id_solicitud_transferencia.pk,banco=fbanco).exists():
					dtd=pago.id_solicitud_transferencia.idCajaDebe.aux1
					comi=0
					if esReal(dtd)>0:
						comi=esReal(dtd)
					else:
						comi=str(pago.id_solicitud_transferencia.comision)
					idCli= str(pago.id_solicitud_transferencia.id_cliente)
					idSt= str(pago.id_solicitud_transferencia.pk)
					consulta3=Cliente.objects.get(pk=idCli)
					cantidaEnvio= ConvertirDecimal(str(pago.id_solicitud_transferencia.idCajaDebe.cantidadDinero))-ConvertirDecimal(str(pago.id_solicitud_transferencia.comision))-ConvertirDecimal(str(pago.id_solicitud_transferencia.monto_conceptos))
					dato['fecha']=str(pago.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
					dato['nroRecibo']=pago.idCajaHaber.nroRecibo
					dato['estado']= pago.id_solicitud_transferencia.idCajaDebe.estadoTransaccion
					dato['monto']=normalizar(cantidaEnvio)
					dato['id_trans']=obj['pk']
					dato['oficina_des']=''
					dato['oficina_ori']= pago.id_solicitud_transferencia.idCajaDebe.id_oficina.nombre_oficina
					if ST_BaseExterna.objects.filter(id_transferencia=idSt).exists():
						stbe= ST_BaseExterna.objects.get(id_transferencia=idSt)
						if stbe.id_base_ori!= None and stbe.id_base_ori!='':
							be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
							dato['oficina_ori']= be1.nombre_base
						if stbe.id_base_des!= None and stbe.id_base_des!='':
							be2= Base_Ext.objects.get(pk=stbe.id_base_des)
							dato['oficina_des']= be2.nombre_base
					dato['enviador']= pago.id_solicitud_transferencia.idCajaDebe.id_personal.nombre +' '+pago.id_solicitud_transferencia.idCajaDebe.id_personal.Apellido_paterno +' '+pago.id_solicitud_transferencia.idCajaDebe.id_personal.Apellido_materno
					dato['pagador']=pago.idCajaHaber.id_personal.nombre+' '+pago.idCajaHaber.id_personal.Apellido_paterno+' '+pago.idCajaHaber.id_personal.Apellido_materno
					dato['comicion']= comi
					dato['moneda']= pago.id_solicitud_transferencia.idCajaDebe.moneda
					dato['nombre_bnf']=pago.id_solicitud_transferencia.nombre_beneficiado
					dato['paterno_bnf']=pago.id_solicitud_transferencia.Apellido_paterno_beneficiado
					dato['materno_bnf']= pago.id_solicitud_transferencia.Apellido_materno_beneficiado
					dato['dni_bnf']=pago.id_solicitud_transferencia.dni_beneficiado
					dato['obs']=pago.id_solicitud_transferencia.observaciones
					dato['obs_pa']=pago.observaciones
					dato['nombre_rmt']=consulta3.nombre
					dato['paterno_rmt']=consulta3.Apellido_paterno
					dato['materno_rmt']=consulta3.Apellido_materno
					dato['dni_rmt']=consulta3.dni
					dato['monto_conceptos']= str(pago.id_solicitud_transferencia.monto_conceptos)
					dato['otros_conceptos']= pago.id_solicitud_transferencia.otros_conceptos
					dato['banco']= pago.id_solicitud_transferencia.banco
					dato['estGlo']=pago.id_solicitud_transferencia.idCajaDebe.observaciones2
					if EgresoExtraTransferencia.objects.filter(id_pago_transferencia=pago.pk).exists():
						EgresoExtra=EgresoExtraTransferencia.objects.get(id_pago_transferencia=pago.pk)
						dato['egreso_extra']= str(EgresoExtra.monto)
					else:
						dato['egreso_extra']= str(0)
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#11-06-2020
@login_required
def listaTransfereciasRecibidas_bancos_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		fbanco = request.GET.get('banco')
		nroPorPag=request.GET.get('nroXpag')
		fEstado=request.GET.get('fEstado')
		pg= 1
		nroP=100
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP
		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if tipoFiltroF=="h":
				fIni= datetime.date.today()
				horamin= datetime.datetime.combine(fIni,datetime.time.min)
				horamax= datetime.datetime.combine(fIni,datetime.time.max)
				if fEstado=='0':
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__estadoTransaccion='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			elif tipoFiltroF=="f":
				fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				if fEstado=='0':
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__estadoTransaccion='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			elif tipoFiltroF=="ef":
				fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha1,datetime.time.min)
				horamax= datetime.datetime.combine(fecha2,datetime.time.max)
				if fEstado=='0':
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax)).order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__estadoTransaccion='activo').order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			else:
				if fEstado=='0':
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
				else:
					consulta= list(SolicitudTransferencia.objects.filter(id_oficina=C.id_oficina.pk,idCajaDebe__estadoTransaccion='activo').order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			for obj in consulta:
				if st_banco_detalle.objects.filter(id_transferencia=obj['pk'],banco=fbanco).exists():
					st_det=st_banco_detalle.objects.get(id_transferencia=obj['pk'])
					b_est=False
					if fEstado=="0":
						b_est= True
					else:
						if fEstado=="v":
							if str(st_det.verificado)[:2]=='si'and str(st_det.leido_banco)[:2]!='si':
								b_est = True
						if fEstado=="nv":
							if str(st_det.verificado)[:2]!='si' and str(st_det.leido_banco)[:2]!='si':
								b_est = True
						if fEstado=="l":
							if str(st_det.leido_banco)[:2]=='si':
								b_est = True
						if fEstado=="nl":
							if str(st_det.leido_banco)[:2]!='si':
								b_est = True
					if b_est:
						dato={}
						idCajaD= str(obj['idCajaDebe'])
						CajaDebe= TCajaDebe.objects.get(pk=idCajaD)
						dtd=CajaDebe.aux1
						comi=0
						if esReal(dtd)>0:
							comi=esReal(dtd)
						else:
							comi=str(obj['comision'])
						idCli= str(obj['id_cliente'])
						idSt= str(obj['pk'])
						sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=idSt,idCajaHaber__id_caja=C.pk)
						sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=idSt)
						consulta3=Cliente.objects.get(pk=idCli)
						cantidaEnvio= ConvertirDecimal(str(CajaDebe.cantidadDinero))-ConvertirDecimal(str(obj['comision']))-ConvertirDecimal(str(obj['monto_conceptos']))
						delta= datetime.datetime.today() - CajaDebe.fecha
						dato['dias']= delta.days
						dato['transEx']= 'no'
						if delta.days >=5:
							dato['transEx']= 'si'
						dato['fecha']=str(CajaDebe.fecha.strftime("%d-%m-%Y %H:%M"))
						dato['nroRecibo']=CajaDebe.nroRecibo
						dato['estado']= CajaDebe.estadoTransaccion
						dato['monto']=normalizar(cantidaEnvio)
						dato['id_trans']=obj['pk']
						dato['oficina_des']=''
						dato['oficina_ori']= CajaDebe.id_oficina.nombre_oficina
						if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
							stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
							if stbe.id_base_ori!= None and stbe.id_base_ori!='':
								be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
								dato['oficina_ori']= be1.nombre_base
							if stbe.id_base_des!= None and stbe.id_base_des!='':
								be2= Base_Ext.objects.get(pk=stbe.id_base_des)
								dato['oficina_des']= be2.nombre_base
						dato['op_emisor']= CajaDebe.id_personal.nombre +' '+CajaDebe.id_personal.Apellido_paterno +' '+CajaDebe.id_personal.Apellido_materno
						dato['comicion']= comi
						dato['moneda']= CajaDebe.moneda
						dato['nombre_bnf']=obj['nombre_beneficiado']
						dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
						dato['materno_bnf']= obj['Apellido_materno_beneficiado']
						dato['dni_bnf']=obj['dni_beneficiado']
						dato['obs']=obj['observaciones']
						if obj['dniMenor']!=None and obj['dniMenor']!='':
							dato['dniMenor']=obj['dniMenor']
						else:
							dato['dniMenor']='no'

						if obj['nroCta']!=None:
							if str(obj['nroCta']).strip()!='':
								dato['nroCta']=str(obj['nroCta']).strip()
							else:
								dato['nroCta']=str(-1)
						else:
							dato['nroCta']=str(-1)
						dato['nombre_rmt']=consulta3.nombre
						dato['paterno_rmt']=consulta3.Apellido_paterno
						dato['materno_rmt']=consulta3.Apellido_materno
						dato['dni_rmt']=consulta3.dni
						dato['monto_conceptos']= str(obj['monto_conceptos'])
						dato['otros_conceptos']= obj['otros_conceptos']
						dato['banco']= obj['banco']
						dato['estGlo']=CajaDebe.observaciones2
						dato['pago_forzado']= ''
						dato['fp']=''
						dato['UsuPagador']=''
						if sq.count() ==0:
							dato['pago_forzado']= 'si'
						if sq2.count()>0:
							sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=idSt)
							dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
							dato['UsuPagador']=sqpt.idCajaHaber.id_personal.nombre+" "+sqpt.idCajaHaber.id_personal.Apellido_paterno+" "+sqpt.idCajaHaber.id_personal.Apellido_materno
						estado_banco =""
						if str(st_det.leido_banco)[:2]=='si':
							estado_banco="leido"
						else:
							if str(st_det.verificado)[:2]=='si':
								estado_banco="verificado"
						dato['estado_banco'] = estado_banco
						lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaTransfereciasCreadas_bancos_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		pag=request.GET.get('pg','')
		tipoFiltroF=request.GET.get('filtroF')#tipo filtro fechas
		fIni=request.GET.get('fDesde')
		fFin=request.GET.get('fHasta')
		fbanco = request.GET.get('banco')
		nroPorPag=request.GET.get('nroXpag')
		pg= 1
		nroP=100
		if pag !='':
			pg= int(pag)
		if nroPorPag.isdigit():
			nroP=int(nroPorPag)
		desde= (pg-1)*nroP
		hasta= pg*nroP

		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if tipoFiltroF=="h":
				fIni= datetime.date.today()
				horamin= datetime.datetime.combine(fIni,datetime.time.min)
				horamax= datetime.datetime.combine(fIni,datetime.time.max)
				consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			elif tipoFiltroF=="f":
				fecha= datetime.datetime.strptime(fIni, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			elif tipoFiltroF=="ef":
				fecha1= datetime.datetime.strptime(fIni, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(fFin, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha1,datetime.time.min)
				horamax= datetime.datetime.combine(fecha2,datetime.time.max)
				consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__id_caja=C.pk).order_by('-pk').values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			else:
				consulta= list(SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk','idCajaDebe','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos','dniMenor','nroCta','banco'))
			for obj in consulta:
				#idCajaD= str(obj['pk'])
				#consulta2= list(SolicitudTransferencia.objects.filter(idCajaDebe=idCajaD).values('pk','id_cliente','id_oficina','comision','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado','dni_beneficiado','observaciones','monto_conceptos','otros_conceptos'))#cambiar por object.get
				if st_banco_detalle.objects.filter(id_transferencia=obj['pk'],banco=fbanco).exists():
					debe= TCajaDebe.objects.get(pk=obj['idCajaDebe'])
					#idCli= str(consulta2[0]['id_cliente'])
					#consulta3=list(Cliente.objects.filter(pk=idCli).values('nombre','Apellido_paterno','Apellido_materno','dni'))
					#consulta4= list(Oficina.objects.filter(pk=str(consulta2[0]['id_oficina'])).values('nombre_oficina'))
					ofi=Oficina.objects.get(pk=obj['id_oficina'])
					cli=Cliente.objects.get(pk=obj['id_cliente'])
					cantidaEnvio= ConvertirDecimal(debe.cantidadDinero)-ConvertirDecimal(obj['comision']) -ConvertirDecimal(obj['monto_conceptos'])
					sq= PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'],idCajaHaber__id_caja=C.pk)
					sq2=PagoTransferencia.objects.filter(id_solicitud_transferencia=obj['pk'])
					dato={}	
					usuGlo=''
					if debe.conceptoDetalle[2] =='-':
						usuGlo= debe.conceptoDetalle.split('-')[2]

					if obj['dniMenor']==None:
						dato['dniMenor']='no'
					else:
						if str(obj['dniMenor']).strip()=='':
							dato['dniMenor']='no'
						else:
							dato['dniMenor']=obj['dniMenor']
					delta= datetime.datetime.today() - debe.fecha
					dato['dias']= delta.days
					dato['transEx']='no'
					if delta.days >1:
						dato['transEx']= 'si'
					dato['usuGlo']= usuGlo
					dato['fecha']=str(debe.fecha.strftime("%d-%m-%Y %H:%M"))
					dato['AutEx']=debe.aux1
					dato['nroRecibo']=debe.nroRecibo
					dato['estado']= debe.estadoTransaccion
					dato['obs_re']=''
					dato['id_personal']=debe.id_personal.nombre+" "+ debe.id_personal.Apellido_paterno+" "+debe.id_personal.Apellido_materno
					dato['monto']=normalizar(cantidaEnvio)
					dato['moneda']= debe.moneda
					dato['id_trans']=str(obj['pk'])
					dato['oficina_ori']=''
					dato['oficina_des']= ofi.nombre_oficina
					if ST_BaseExterna.objects.filter(id_transferencia=obj['pk']).exists():
						stbe= ST_BaseExterna.objects.get(id_transferencia=obj['pk'])
						if stbe.id_base_ori!= None and stbe.id_base_ori!='':
							be1= Base_Ext.objects.get(pk=stbe.id_base_ori)
							dato['oficina_ori']= be1.nombre_base
						if stbe.id_base_des!= None and stbe.id_base_des!='':
							be2= Base_Ext.objects.get(pk=stbe.id_base_des)
							dato['oficina_des']= be2.nombre_base
					dato['comicion']= str(obj['comision'])
					dato['nombre_bnf']=obj['nombre_beneficiado']
					dato['dni_bnf']=obj['dni_beneficiado']
					dato['paterno_bnf']=obj['Apellido_paterno_beneficiado']
					dato['materno_bnf']= obj['Apellido_materno_beneficiado']
					dato['obs']=obj['observaciones']
					dato['nombre_rmt']=cli.nombre
					dato['paterno_rmt']=cli.Apellido_paterno
					dato['materno_rmt']=cli.Apellido_materno
					dato['dni_rmt']=cli.dni
					dato['monto_conceptos']= str(obj['monto_conceptos'])
					dato['otros_conceptos']= obj['otros_conceptos']
					dato['banco']= obj['banco']
					dato['pago_forzado']=''
					dato['fp']=''
					if sq.count()>0:
						dato['pago_forzado']= 'si'
					if sq2.count()>0:
						sqpt=PagoTransferencia.objects.get(id_solicitud_transferencia=obj['pk'])
						dato['fp']=str(sqpt.idCajaHaber.fecha.strftime("%d-%m-%Y %H:%M"))
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#liquidacion
@login_required
def consulta_tras_creadas_caja_liquid_fetch_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')
		pkc=request.GET.get('pkC')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		UtilD = 0
		UtilS=0
		data=''
		try:
			C= Cajas.objects.get(pk=pkc)
			usr=C.id_usuario.usuario
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						st= SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax)).exclude(idCajaDebe__aux2__startswith='bal').values('pk','id_oficina','idCajaDebe','comision','id_cliente','monto_comi_giro','monto_conceptos','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado')
						UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
						UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
						consulta = list(st)
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					st=SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(fhoramin,fhoramax)).exclude(idCajaDebe__aux2__startswith='bal').values('pk','id_oficina','idCajaDebe','comision','id_cliente','monto_comi_giro','monto_conceptos','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado')
					UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
					UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
					consulta = list(st)
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				st= SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax)).exclude(idCajaDebe__aux2__startswith='bal').values('pk','id_oficina','idCajaDebe','comision','id_cliente','monto_comi_giro','monto_conceptos','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado')
				UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
				UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
				consulta = list(st)
			lista=[]
			tComis=0
			tComid=0
			tbancoD=0
			tbancoS=0
			tgiroD=0
			tgiroS=0
			tcapiD=0
			tcapiS=0
			os=0#comision para la oficina  soles
			cs=0#comision para central   soles
			es=0#comision para la otra oficina soles
			od=0
			cd=0
			ed=0
			conf= conf_liquid_Cajas.objects.get(id_caja=C.pk)
			for obj in consulta:
				dato={}
				CD= TCajaDebe.objects.get(pk=str(obj['idCajaDebe']))
				Cl= Cliente.objects.get(pk=str(obj['id_cliente']))
				O_aux = Oficina.objects.get(pk= obj['id_oficina'])
				oori=''
				odest=O_aux.nombre_oficina
				
				#C_aux= Cajas.objects.get(id_usuario=O_aux.id_usuario.pk)
				#dato['concepto']= CD.conceptoDetalle +' departe de '+Cl.nombre+' '+Cl.Apellido_paterno
				if CD.estadoTransaccion !='extornado':
					dato['concepto']= 'Para: '+ obj['nombre_beneficiado'] +' '+ obj['Apellido_paterno_beneficiado']+'<b style="color: #2e6da4;"> / '+odest+'</b>'+oori
					dato['fecha'] = str(CD.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['tipodoc']= str(CD.tipoDocumento)
					#dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
					dato['ope']= CD.id_personal.nombre
					#print('pk debe' + str(CD.pk))
					dato['moneda']= str(CD.moneda)
					dato['monto']= normalizar(float(CD.cantidadDinero))
					dato['comision']= str(obj['comision'])
					dato['comi_banco']= str(obj['monto_conceptos'])
					dato['comi_giro']= str(obj['monto_comi_giro'])
					dato['nroR']= str(CD.nroRecibo)
					dato['estado'] = CD.estadoTransaccion
					dato['capi']= 0
					if obj['monto_conceptos'] != None and obj['monto_conceptos']!='':
						cap= float(CD.cantidadDinero) -float(obj['comision']) -float(obj['monto_conceptos'])
						dato['capi'] = cap
					else:
						cap= float(CD.cantidadDinero) -float(obj['comision'])
						dato['capi'] = cap

					dato['st_ca']= 0
					dato['st_ce']= 0
					dato['st_ot']= 0
					dato['ex_to']= 'n'
					dato['x']= 'n'

					if str(CD.moneda)=='soles':
						
						if CD.estadoTransaccion=='extornado':
							dato['x']= 's'
							if CD.aux1=='todo':
								dato['ex_to']= 's'
							else:
								tComis=tComis+float(obj['comision'])
								#arq_con= porcentaje_liquidacion.objects.all().values('pk')
								#arq = porcentaje_liquidacion.objects.get(pk=arq_con[0]['pk'])
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								if arq.tipo_caja=='p':
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
								else: # destino es compartido
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
									dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
						else:
							arq=None
							if CD.estadoTransaccion=='pagado':
								pt= PagoTransferencia.objects.get(id_solicitud_transferencia=str(obj['pk']))
								if conf_prj_arqueo.objects.filter(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk).exists():
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk)
									if arq.prj_caja == None or arq.prj_caja== 0 or arq.prj_caja== '':
										arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								else:
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							else:
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							
							if arq.tipo_caja=='p':
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							else: # destino es compartido
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
								dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							totalS= totalS+ConvertirDecimal(CD.cantidadDinero)
							tcapiS = tcapiS + float(dato['capi'])
							tComis= tComis+ float(obj['comision'])
							tbancoS = tbancoS + float(obj['monto_conceptos'])
							tgiroS = tgiroS + float(obj['monto_comi_giro'])

						os=os+dato['st_ca']
						cs=cs+dato['st_ce']
						es=es+dato['st_ot']
					if str(CD.moneda)=='dolares':
						if CD.estadoTransaccion=='extornado':
							if CD.aux1=='todo':
								dato['ex_to']= 'si'
							else:
								tComid=tComid+float(obj['comision'])
								#arq_con= porcentaje_liquidacion.objects.all().values('pk')
								#arq = porcentaje_liquidacion.objects.get(pk=arq_con[0]['pk'])
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								if arq.tipo_caja=='p':
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
								else: # destino es compartido
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
									dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
						else:
							arq=None
							if CD.estadoTransaccion=='pagado':
								pt= PagoTransferencia.objects.get(id_solicitud_transferencia=str(obj['pk']))
								if conf_prj_arqueo.objects.filter(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk).exists():
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk)
									if arq.prj_caja == None or arq.prj_caja== 0 or arq.prj_caja== '':
										arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								else:
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							else:
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							
							if arq.tipo_caja=='p':
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							else: # destino es compartido
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
								dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							totalD= totalD+ConvertirDecimal(CD.cantidadDinero)
							tcapiD = tcapiD + float(dato['capi'])
							tComid=tComid+float(obj['comision'])
							tbancoD=tbancoD + float(obj['monto_conceptos'])
							tgiroD=tgiroD + float(obj['monto_comi_giro'])
						od=od+dato['st_ca']
						cd=cd+dato['st_ce']
						ed=ed+dato['st_ot']
					lista.append(dato)
			total={}
			total['util_soles']= tComis
			#total['util_soles']= 0
			#if UtilS['comision__sum'] != None:
			#	total['util_soles']= round(float(UtilS['comision__sum']),2)
			#total['util_dolares']=str(UtilD['comision__sum'])
			total['util_dolares']=tComid
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=float(totalD)
			total['tcapid']=float(tcapiD)
			total['tbancod']=float(tbancoD)
			total['tcapis']=round(float(tcapiS),2)
			total['tbancos']=round(float(tbancoS),2)
			total['tgiroS']=round(tgiroS,2)
			total['tgiroD']=round(tgiroD,2)
			total['tcof']=round(os,2)
			total['tcce']=round(cs,2)
			total['tcot']=round(es,2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consulta_tras_pagadas_caja_liquid_fetch_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')
		pkc=request.GET.get('pkC')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		data=''
		try:
			C= Cajas.objects.get(pk=pkc)
			usr=C.id_usuario.usuario
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax),tablaRelacional='PagoTransferencia').exclude(aux2__startswith='bal').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','id_personal'))
					else:
						#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax),tablaRelacional='PagoTransferencia').exclude(aux2__startswith='bal').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','id_personal'))
				else:
					#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					data='fail'
			else:
				#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax),tablaRelacional='PagoTransferencia').exclude(aux2__startswith='bal').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','id_personal'))
			lista=[]
			conf= conf_liquid_Cajas.objects.get(id_caja=C.pk)
			os=0#comision para la oficina  soles
			cs=0#comision para central   soles
			es=0#comision para la otra oficina soles
			od=0
			cd=0
			ed=0
			comis=0
			comid=0
			egresos=0
			egresod=0
			capis =0
			capid =0
			for obj in consulta:
				dato={}
				if str(obj['moneda'])=='soles':
					totalS= totalS+obj['cantidadDinero']
				if str(obj['moneda'])=='dolares':
					totalD= totalD+obj['cantidadDinero']
				pt = PagoTransferencia.objects.get(idCajaHaber=obj['pk'])
				oori=pt.id_solicitud_transferencia.idCajaDebe.id_oficina.nombre_oficina
				odest=''
				
				C_aux= Cajas.objects.get(pk=pt.id_solicitud_transferencia.idCajaDebe.id_caja.pk)
				O_aux = Oficina.objects.get(pk= pt.id_solicitud_transferencia.idCajaDebe.id_oficina.pk)
				dato['concepto']= 'A: '+pt.id_solicitud_transferencia.nombre_beneficiado +' '+pt.id_solicitud_transferencia.Apellido_paterno_beneficiado+' '+pt.id_solicitud_transferencia.Apellido_materno_beneficiado+odest+'<b style="color: #4cae4c;"> De: '+oori+ '</b> /<b  style="color: #d58512;">'+pt.id_solicitud_transferencia.idCajaDebe.id_personal.nombre +' '+pt.id_solicitud_transferencia.idCajaDebe.id_personal.Apellido_paterno+'<b>'
				dato['st'] = pt.id_solicitud_transferencia.idCajaDebe.nroRecibo
				dtd=pt.id_solicitud_transferencia.idCajaDebe.aux1
				comi=0
				if esReal(dtd)>0:
					comi=esReal(dtd)
				else:
					comi=pt.id_solicitud_transferencia.comision
				dato['comision']=str(comi)
				dato['capi'] =0
				if pt.id_solicitud_transferencia.monto_conceptos != None and pt.id_solicitud_transferencia.monto_conceptos!='':
					cap= float(pt.id_solicitud_transferencia.idCajaDebe.cantidadDinero) -float(pt.id_solicitud_transferencia.comision) -float(pt.id_solicitud_transferencia.monto_conceptos)
					dato['capi'] = cap
				else:
					cap= float(pt.id_solicitud_transferencia.idCajaDebe.cantidadDinero) -float(pt.id_solicitud_transferencia.comision)
					dato['capi'] = cap
				#dato['comision']=pt.id_solicitud_transferencia.comision
				dato['fecha'] = str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= str(obj['tipoDocumento'])
				dato['moneda']= str(obj['moneda'])
				p= Personal.objects.get(pk=obj['id_personal'])
				dato['ope']= p.nombre
				#dato['ope']= p.nombre + ' ' +p.Apellido_paterno +' '+p.Apellido_materno
				dato['monto']= normalizar(float(obj['cantidadDinero']))
				dato['nroR']= str(obj['nroRecibo'])
				dato['st_ca']= 0
				dato['st_ce']= 0
				dato['st_ot']= 0
				dato['egreso']= 0
				if EgresoExtraTransferencia.objects.filter(id_pago_transferencia=pt.pk).exists():
					egreso = EgresoExtraTransferencia.objects.get(id_pago_transferencia=pt.pk)
					dato['egreso'] = str(egreso.monto)
				#comi=pt.id_solicitud_transferencia.comision
				arq=None
				if conf_prj_arqueo.objects.filter(id_conf=conf.pk,id_caja=C_aux.pk).exists():
					arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja=C_aux.pk)
					if arq.prj_caja == None or arq.prj_caja== 0 or arq.prj_caja== '':
						arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
				else:
					arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
				
				if arq.tipo_caja=='p':
					dato['st_ca']= float(comi)*float(arq.prj_caja)/100
					dato['st_ce']= float(comi)*float(arq.prj_otra_oficina)/100
				else: # destino es compartido
					dato['st_ca']= float(comi)*float(arq.prj_caja)/100
					dato['st_ce']= float(comi)*float(arq.prj_oficina_central)/100
					dato['st_ot']= float(comi)*float(arq.prj_otra_oficina)/100
				if str(obj['moneda'])=='soles':
					os=os+dato['st_ca']
					cs=cs+dato['st_ce']
					es=es+dato['st_ot']
					comis=comis+float(dato['comision'])
					capis = capis+float(dato['capi'])
					egresos = egresos +float(dato['egreso'])
				if str(obj['moneda'])=='dolares':
					od=od+dato['st_ca']
					cd=cd+dato['st_ce']
					ed=ed+dato['st_ot']
					comid=comid+float(dato['comision'])
					capid = capid+float(dato['capi'])
					egresod = egresod +float(dato['egreso'])
				lista.append(dato)
			total={}
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=float(totalD)
			total['util_soles']= round(comis,2)
			total['util_dolares']=str(comid)
			total['capis'] = round(capis,2)
			total['capid'] = round(capid,2)
			total['egresos'] = round(egresos,2)
			total['egresod'] = round(egresod,2)
			total['tcof']=round(os,2)
			total['tcce']=round(cs,2)
			total['tcot']=round(es,2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listadoLiquidaciones_view(request):
	return render(request,"listadoLiquidaciones.html")

@login_required
def consulta_tras_creadas_caja_liquidado_fetch_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')
		pkc=request.GET.get('pkC')
		pkl=request.GET.get('pkL')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		UtilD = 0
		UtilS=0
		data=''
		try:
			C= Cajas.objects.get(pk=pkc)
			usr=C.id_usuario.usuario
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						st= SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__aux2='bal'+str(pkl)).values('pk','id_oficina','idCajaDebe','comision','id_cliente','monto_comi_giro','monto_conceptos','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado')
						UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
						UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
						consulta = list(st)
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					st=SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(fhoramin,fhoramax),idCajaDebe__aux2='bal'+str(pkl)).values('pk','id_oficina','idCajaDebe','comision','id_cliente','monto_comi_giro','monto_conceptos','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado')
					UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
					UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
					consulta = list(st)
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				st= SolicitudTransferencia.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__aux2='bal'+str(pkl)).values('pk','id_oficina','idCajaDebe','comision','id_cliente','monto_comi_giro','monto_conceptos','nombre_beneficiado','Apellido_paterno_beneficiado','Apellido_materno_beneficiado')
				UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
				UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
				consulta = list(st)
			lista=[]
			tComis=0
			tComid=0
			tbancoD=0
			tbancoS=0
			tgiroD=0
			tgiroS=0
			tcapiD=0
			tcapiS=0
			os=0#comision para la oficina  soles
			cs=0#comision para central   soles
			es=0#comision para la otra oficina soles
			od=0
			cd=0
			ed=0
			conf= conf_liquid_Cajas.objects.get(id_caja=C.pk)
			#arq = liquidacionCaja.objects.get(pk=pkl)
			for obj in consulta:
				dato={}
				CD= TCajaDebe.objects.get(pk=str(obj['idCajaDebe']))
				Cl= Cliente.objects.get(pk=str(obj['id_cliente']))
				O_aux = Oficina.objects.get(pk= obj['id_oficina'])
				oori=''
				odest=O_aux.nombre_oficina
				
				#C_aux= Cajas.objects.get(id_usuario=O_aux.id_usuario.pk)
				#dato['concepto']= CD.conceptoDetalle +' departe de '+Cl.nombre+' '+Cl.Apellido_paterno
				if CD.estadoTransaccion !='extornado':
					dato['concepto']= 'Para: '+ obj['nombre_beneficiado'] +' '+ obj['Apellido_paterno_beneficiado']+'<b style="color: #2e6da4;"> / '+odest+'</b>'+oori
					dato['fecha'] = str(CD.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['tipodoc']= str(CD.tipoDocumento)
					#dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
					dato['ope']= CD.id_personal.nombre
					print('pk debe' + str(CD.pk))
					dato['moneda']= str(CD.moneda)
					dato['monto']= normalizar(float(CD.cantidadDinero))
					dato['comision']= str(obj['comision'])
					dato['comi_banco']= str(obj['monto_conceptos'])
					dato['comi_giro']= str(obj['monto_comi_giro'])
					dato['nroR']= str(CD.nroRecibo)
					dato['estado'] = CD.estadoTransaccion
					dato['capi']= 0
					if obj['monto_conceptos'] != None and obj['monto_conceptos']!='':
						cap= float(CD.cantidadDinero) -float(obj['comision']) -float(obj['monto_conceptos'])
						dato['capi'] = cap
					else:
						cap= float(CD.cantidadDinero) -float(obj['comision'])
						dato['capi'] = cap
					dato['st_ca']= 0
					dato['st_ce']= 0
					dato['st_ot']= 0
					dato['ex_to']= 'n'
					dato['x']= 'n'

					if str(CD.moneda)=='soles':
						
						if CD.estadoTransaccion=='extornado':
							dato['x']= 's'
							if CD.aux1=='todo':
								dato['ex_to']= 's'
							else:
								tComis=tComis+float(obj['comision'])
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)

								if arq.tipo_caja=='p':
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
								else: # destino es compartido
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
									dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
						else:
							arq=None
							if CD.estadoTransaccion=='pagado':
								pt= PagoTransferencia.objects.get(id_solicitud_transferencia=str(obj['pk']))
								if conf_prj_arqueo.objects.filter(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk).exists():
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk)
									if arq.prj_caja == None or arq.prj_caja== 0 or arq.prj_caja== '':
										arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								else:
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							else:
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							
							if arq.tipo_caja=='p':
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							else: # destino es compartido
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
								dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							totalS= totalS+ConvertirDecimal(CD.cantidadDinero)
							tcapiS = tcapiS + float(dato['capi'])
							tComis= tComis+ float(obj['comision'])
							tbancoS = tbancoS + float(obj['monto_conceptos'])
							tgiroS = tgiroS + float(obj['monto_comi_giro'])

						os=os+dato['st_ca']
						cs=cs+dato['st_ce']
						es=es+dato['st_ot']
					if str(CD.moneda)=='dolares':
						if CD.estadoTransaccion=='extornado':
							if CD.aux1=='todo':
								dato['ex_to']= 'si'
							else:
								tComid=tComid+float(obj['comision'])
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								if arq.tipo_caja=='p':
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
								else: # destino es compartido
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
									dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
						else:
							arq=None
							if CD.estadoTransaccion=='pagado':
								pt= PagoTransferencia.objects.get(id_solicitud_transferencia=str(obj['pk']))
								if conf_prj_arqueo.objects.filter(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk).exists():
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja=pt.idCajaHaber.id_caja.pk)
									if arq.prj_caja == None or arq.prj_caja== 0 or arq.prj_caja== '':
										arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
								else:
									arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							else:
								arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
							
							if arq.tipo_caja=='p':
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							else: # destino es compartido
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
								dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							totalD= totalD+ConvertirDecimal(CD.cantidadDinero)
							tcapiD = tcapiD + float(dato['capi'])
							tComid=tComid+float(obj['comision'])
							tbancoD=tbancoD + float(obj['monto_conceptos'])
							tgiroD=tgiroD + float(obj['monto_comi_giro'])
						od=od+dato['st_ca']
						cd=cd+dato['st_ce']
						ed=ed+dato['st_ot']
					lista.append(dato)
			total={}
			total['util_soles']= tComis
			#total['util_soles']= 0
			#if UtilS['comision__sum'] != None:
			#	total['util_soles']= round(float(UtilS['comision__sum']),2)
			#total['util_dolares']=str(UtilD['comision__sum'])
			total['util_dolares']=tComid
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=float(totalD)
			total['tcapid']=float(tcapiD)
			total['tbancod']=float(tbancoD)
			total['tcapis']=round(float(tcapiS),2)
			total['tbancos']=round(float(tbancoS),2)
			total['tgiroS']=round(tgiroS,2)
			total['tgiroD']=round(tgiroD,2)
			total['tcof']=round(os,2)
			total['tcce']=round(cs,2)
			total['tcot']=round(es,2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consulta_tras_pagadas_caja_liquidado_fetch_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')
		pkc=request.GET.get('pkC')
		pkl=request.GET.get('pkL')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		data=''

		try:
			C= Cajas.objects.get(pk=pkc)
			conf= conf_liquid_Cajas.objects.get(id_caja=C.pk)
			usr=C.id_usuario.usuario
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax),tablaRelacional='PagoTransferencia',aux2='bal'+str(pkl)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','id_personal'))
					else:
						#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(fhoramin,fhoramax),tablaRelacional='PagoTransferencia',aux2='bal'+str(pkl)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','id_personal'))
				else:
					#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
					data='fail'
			else:
				#consulta = list(TCajaHaber.objects.filter(id_personal__usuario=usr).exclude(tablaRelacional='CajaCierre').values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo'))
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				consulta = list(TCajaHaber.objects.filter(id_caja=C.pk,fecha__range=(horamin,horamax),tablaRelacional='PagoTransferencia',aux2='bal'+str(pkl)).values('pk','fecha','conceptoDetalle','tipoDocumento','cantidadDinero','moneda','nroRecibo','id_personal'))
			lista=[]
			#arq = liquidacionCaja.objects.get(pk=pkl)
			os=0#comision para la oficina  soles
			cs=0#comision para central   soles
			es=0#comision para la otra oficina soles
			od=0
			cd=0
			ed=0
			comis=0
			comid=0
			egresos=0
			egresod=0
			capis =0
			capid =0
			for obj in consulta:
				dato={}
				if str(obj['moneda'])=='soles':
					totalS= totalS+obj['cantidadDinero']
				if str(obj['moneda'])=='dolares':
					totalD= totalD+obj['cantidadDinero']
				pt = PagoTransferencia.objects.get(idCajaHaber=obj['pk'])
				oori=pt.id_solicitud_transferencia.idCajaDebe.id_oficina.nombre_oficina
				odest=''
				
				C_aux= Cajas.objects.get(pk=pt.id_solicitud_transferencia.idCajaDebe.id_caja.pk)
				O_aux = Oficina.objects.get(pk= pt.id_solicitud_transferencia.idCajaDebe.id_oficina.pk)
				dato['concepto']= 'A: '+pt.id_solicitud_transferencia.nombre_beneficiado +' '+pt.id_solicitud_transferencia.Apellido_paterno_beneficiado+' '+pt.id_solicitud_transferencia.Apellido_materno_beneficiado+odest+'<b style="color: #4cae4c;"> De: '+oori+ '</b> /<b  style="color: #d58512;">'+pt.id_solicitud_transferencia.idCajaDebe.id_personal.nombre +' '+pt.id_solicitud_transferencia.idCajaDebe.id_personal.Apellido_paterno+'<b>'
				dato['st'] = pt.id_solicitud_transferencia.idCajaDebe.nroRecibo
				dtd=pt.id_solicitud_transferencia.idCajaDebe.aux1
				comi=0
				if esReal(dtd)>0:
					comi=esReal(dtd)
				else:
					comi=pt.id_solicitud_transferencia.comision
				dato['comision']=str(comi)
				dato['capi'] = 0
				if pt.id_solicitud_transferencia.monto_conceptos != None and pt.id_solicitud_transferencia.monto_conceptos!='':
					cap= float(pt.id_solicitud_transferencia.idCajaDebe.cantidadDinero) -float(pt.id_solicitud_transferencia.comision) -float(pt.id_solicitud_transferencia.monto_conceptos)
					dato['capi'] = cap
				else:
					cap= float(pt.id_solicitud_transferencia.idCajaDebe.cantidadDinero) -float(pt.id_solicitud_transferencia.comision)
					dato['capi'] = cap
				#dato['comision']=pt.id_solicitud_transferencia.comision
				dato['fecha'] = str(obj['fecha'].strftime("%d-%m-%Y %H:%M %p"))
				dato['tipodoc']= str(obj['tipoDocumento'])
				dato['moneda']= str(obj['moneda'])
				p= Personal.objects.get(pk=obj['id_personal'])
				dato['ope']= p.nombre
				#dato['ope']= p.nombre + ' ' +p.Apellido_paterno +' '+p.Apellido_materno
				dato['monto']= normalizar(float(obj['cantidadDinero']))
				dato['nroR']= str(obj['nroRecibo'])
				dato['st_ca']= 0
				dato['st_ce']= 0
				dato['st_ot']= 0
				dato['egreso']= 0
				if EgresoExtraTransferencia.objects.filter(id_pago_transferencia=pt.pk).exists():
					egreso = EgresoExtraTransferencia.objects.get(id_pago_transferencia=pt.pk)
					dato['egreso'] = str(egreso.monto)
				#comi=pt.id_solicitud_transferencia.comision
				arq=None
				if conf_prj_arqueo.objects.filter(id_conf=conf.pk,id_caja=C_aux.pk).exists():
					arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja=C_aux.pk)
					if arq.prj_caja == None or arq.prj_caja== 0 or arq.prj_caja== '':
						arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
				else:
					arq= conf_prj_arqueo.objects.get(id_conf=conf.pk,id_caja__id_usuario=O_aux.id_usuario.pk)
				
				if arq.tipo_caja=='p':
					dato['st_ca']= float(comi)*float(arq.prj_caja)/100
					dato['st_ce']= float(comi)*float(arq.prj_otra_oficina)/100
				else: # destino es compartido
					dato['st_ca']= float(comi)*float(arq.prj_caja)/100
					dato['st_ce']= float(comi)*float(arq.prj_oficina_central)/100
					dato['st_ot']= float(comi)*float(arq.prj_otra_oficina)/100
				if str(obj['moneda'])=='soles':
					os=os+dato['st_ca']
					cs=cs+dato['st_ce']
					es=es+dato['st_ot']
					comis=comis+float(dato['comision'])
					capis = capis+float(dato['capi'])
					egresos = egresos +float(dato['egreso'])
				if str(obj['moneda'])=='dolares':
					od=od+dato['st_ca']
					cd=cd+dato['st_ce']
					ed=ed+dato['st_ot']
					comid=comid+float(dato['comision'])
					capid = capid+float(dato['capi'])
					egresod = egresod +float(dato['egreso'])
				lista.append(dato)
			total={}
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=float(totalD)
			total['util_soles']= round(comis,2)
			total['util_dolares']=str(comid)
			total['capis'] = round(capis,2)
			total['capid'] = round(capid,2)
			total['egresos'] = round(egresos,2)
			total['egresod'] = round(egresod,2)
			total['tcof']=round(os,2)
			total['tcce']=round(cs,2)
			total['tcot']=round(es,2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consulta_porcentajes_fetch_view(request):
	usr= request.user.username
	try:
		#---
		arq_con= porcentaje_liquidacion.objects.all().values('pk')
		arq = porcentaje_liquidacion.objects.get(pk=arq_con[0]['pk'])

		data= json.dumps({'tc':arq.tipo_caja,'po':str(arq.prj_caja),'pc':str(arq.prj_oficina_central),'pe':str(arq.prj_otra_oficina)})
	except:
		data='fail'+ str(sys.exc_info()[1])
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#transferncias de bancos
@login_required
def consulta_tras_bancos_creadas_caja_liquid_fetch_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')
		pkc=request.GET.get('pkC')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		UtilD = 0
		UtilS=0
		data=''
		try:
			C= Cajas.objects.get(pk=pkc)
			usr=C.id_usuario.usuario
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						st= SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax)).exclude(idCajaDebe__aux2__startswith='bal').values('pk','idCajaDebe','comision','monto','id_cliente','monto_conceptos','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','estado_transferencia','nroCta','banco')
						UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
						UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
						consulta = list(st)
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					st=SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(fhoramin,fhoramax)).exclude(idCajaDebe__aux2__startswith='bal').values('pk','idCajaDebe','comision','monto','id_cliente','monto_conceptos','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','estado_transferencia','nroCta','banco')
					UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
					UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
					consulta = list(st)
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				st= SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax)).exclude(idCajaDebe__aux2__startswith='bal').values('pk','idCajaDebe','comision','monto','id_cliente','monto_conceptos','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','estado_transferencia','nroCta','banco')
				UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
				UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
				consulta = list(st)
			lista=[]
			tComis=0
			tComid=0
			tbancoD=0
			tbancoS=0
			tgiroD=0
			tgiroS=0
			tcapiD=0
			tcapiS=0
			os=0#comision para la oficina  soles
			cs=0#comision para central   soles
			es=0#comision para la otra oficina soles
			od=0
			cd=0
			ed=0
			#conf= conf_liquid_Cajas.objects.get(id_caja=C.pk)
			for obj in consulta:
				dato={}
				CD= TCajaDebe.objects.get(pk=str(obj['idCajaDebe']))
				Cl= Cliente.objects.get(pk=str(obj['id_cliente']))
				
				oori=''
				#C_aux= Cajas.objects.get(id_usuario=O_aux.id_usuario.pk)
				#dato['concepto']= CD.conceptoDetalle +' departe de '+Cl.nombre+' '+Cl.Apellido_paterno
				if obj['estado_transferencia'] !='extornado':
					dato['concepto']= 'Para: '+ obj['nombre_beneficiado'] +' '+ obj['paterno_beneficiado']+'<b style="color: #2e6da4;"> / '+obj['banco']+'</b> CTA/DNI '+obj['nroCta']
					dato['fecha'] = str(CD.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['tipodoc']= str(CD.tipoDocumento)
					#dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
					dato['ope']= CD.id_personal.nombre
					#print('pk debe' + str(CD.pk))
					dato['moneda']= str(CD.moneda)
					dato['monto']= normalizar(float(CD.cantidadDinero))
					dato['comision']= str(obj['comision'])
					dato['comi_banco']= str(obj['monto_conceptos'])
					dato['nroR']= str(CD.nroRecibo)
					dato['estado'] = CD.estadoTransaccion
					dato['capi']= float(obj['monto'])
					dato['st_ca']= 0
					dato['st_ce']= 0
					dato['st_ot']= 0
					dato['ex_to']= 'n'
					dato['x']= 'n'

					if str(CD.moneda)=='soles':
						
						if obj['estado_transferencia']=='extornado':
							dato['x']= 's'
							if CD.aux1=='todo':
								dato['ex_to']= 's'
							else:
								tComis=tComis+float(obj['comision'])
								arq_con= porcentaje_liquidacion.objects.all().values('pk')
								arq = porcentaje_liquidacion.objects.get(pk=arq_con[0]['pk'])
								if arq.tipo_caja=='p':
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
								else: # destino es compartido
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
									dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
						else:
							arq_con= porcentaje_liquidacion.objects.all().values('pk')
							arq = porcentaje_liquidacion.objects.get(pk=arq_con[0]['pk'])
							if arq.tipo_caja=='p':
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							else: # destino es compartido
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
								dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							totalS= totalS+ConvertirDecimal(CD.cantidadDinero)
							tcapiS = tcapiS + float(dato['capi'])
							tComis= tComis+ float(obj['comision'])
							tbancoS = tbancoS + float(obj['monto_conceptos'])

						os=os+dato['st_ca']
						cs=cs+dato['st_ce']
						es=es+dato['st_ot']
					lista.append(dato)
			total={}
			total['util_soles']= tComis
			#total['util_soles']= 0
			#if UtilS['comision__sum'] != None:
			#	total['util_soles']= round(float(UtilS['comision__sum']),2)
			#total['util_dolares']=str(UtilD['comision__sum'])
			total['util_dolares']=tComid
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=float(totalD)
			total['tcapid']=float(tcapiD)
			total['tbancod']=float(tbancoD)
			total['tcapis']=round(float(tcapiS),2)
			total['tbancos']=round(float(tbancoS),2)
			total['tcof']=round(os,2)
			total['tcce']=round(cs,2)
			total['tcot']=round(es,2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def consulta_tras_bancos_creadas_caja_liquidado_fetch_view(request):
	if request.is_ajax:
		filtro=request.GET.get('filtro','')
		pkc=request.GET.get('pkC')
		pkl=request.GET.get('pkL')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		totalD=0
		totalS=0
		UtilD = 0
		UtilS=0
		data=''
		try:
			C= Cajas.objects.get(pk=pkc)
			usr=C.id_usuario.usuario
			if F1 != '':
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						st= SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__aux2='bal'+str(pkl)).values('pk','idCajaDebe','comision','monto','id_cliente','monto_conceptos','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','estado_transferencia','nroCta','banco')
						UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
						UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
						consulta = list(st)
					else:
						data='fail'
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					st=SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(fhoramin,fhoramax),idCajaDebe__aux2='bal'+str(pkl)).values('pk','idCajaDebe','comision','monto','id_cliente','monto_conceptos','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','estado_transferencia','nroCta','banco')
					UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
					UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
					consulta = list(st)
				else:
					data='fail'
			else:
				F1= str(datetime.date.today())
				fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
				horamin= datetime.datetime.combine(fecha,datetime.time.min)
				horamax= datetime.datetime.combine(fecha,datetime.time.max)
				st= SolicitudTransferenciaBancoa.objects.filter(idCajaDebe__id_caja=C.pk,idCajaDebe__fecha__range=(horamin,horamax),idCajaDebe__aux2='bal'+str(pkl)).values('pk','idCajaDebe','comision','monto','id_cliente','monto_conceptos','nombre_beneficiado','paterno_beneficiado','materno_beneficiado','estado_transferencia','nroCta','banco')
				UtilD= st.filter(idCajaDebe__moneda='dolares').aggregate(Sum('comision'))
				UtilS= st.filter(idCajaDebe__moneda='soles').aggregate(Sum('comision'))
				consulta = list(st)
			lista=[]
			tComis=0
			tComid=0
			tbancoD=0
			tbancoS=0
			tgiroD=0
			tgiroS=0
			tcapiD=0
			tcapiS=0
			os=0#comision para la oficina  soles
			cs=0#comision para central   soles
			es=0#comision para la otra oficina soles
			od=0
			cd=0
			ed=0
			#conf= conf_liquid_Cajas.objects.get(id_caja=C.pk)
			arq = liquidacionCaja.objects.get(pk=pkl)
			for obj in consulta:
				dato={}
				CD= TCajaDebe.objects.get(pk=str(obj['idCajaDebe']))
				Cl= Cliente.objects.get(pk=str(obj['id_cliente']))
				
				#C_aux= Cajas.objects.get(id_usuario=O_aux.id_usuario.pk)
				#dato['concepto']= CD.conceptoDetalle +' departe de '+Cl.nombre+' '+Cl.Apellido_paterno
				if obj['estado_transferencia'] !='extornado':
					dato['concepto']= 'Para: '+ obj['nombre_beneficiado'] +' '+ obj['paterno_beneficiado']+'<b style="color: #2e6da4;"> / '+obj['banco']+'</b> CTA/DNI '+obj['nroCta']
					dato['fecha'] = str(CD.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['tipodoc']= str(CD.tipoDocumento)
					#dato['ope']= CD.id_personal.nombre + ' ' +CD.id_personal.Apellido_paterno +' '+CD.id_personal.Apellido_materno
					dato['ope']= CD.id_personal.nombre
					print('pk debe' + str(CD.pk))
					dato['moneda']= str(CD.moneda)
					dato['monto']= normalizar(float(CD.cantidadDinero))
					dato['comision']= str(obj['comision'])
					dato['comi_banco']= str(obj['monto_conceptos'])
					dato['nroR']= str(CD.nroRecibo)
					dato['estado'] = CD.estadoTransaccion
					dato['capi']= float(obj['monto'])
					
					dato['st_ca']= 0
					dato['st_ce']= 0
					dato['st_ot']= 0
					dato['ex_to']= 'n'
					dato['x']= 'n'

					if str(CD.moneda)=='soles':
						
						if obj['estado_transferencia']=='extornado':
							dato['x']= 's'
							if CD.aux1=='todo':
								dato['ex_to']= 's'
							else:
								tComis=tComis+float(obj['comision'])
								if arq.tipo_caja=='p':
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
								else: # destino es compartido
									dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
									dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
									dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
						else:
							if arq.tipo_caja=='p':
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							else: # destino es compartido
								dato['st_ca']= float(obj['comision'])*float(arq.prj_caja)/100
								dato['st_ce']= float(obj['comision'])*float(arq.prj_oficina_central)/100
								dato['st_ot']= float(obj['comision'])*float(arq.prj_otra_oficina)/100
							totalS= totalS+ConvertirDecimal(CD.cantidadDinero)
							tcapiS = tcapiS + float(dato['capi'])
							tComis= tComis+ float(obj['comision'])
							tbancoS = tbancoS + float(obj['monto_conceptos'])
							

						os=os+dato['st_ca']
						cs=cs+dato['st_ce']
						es=es+dato['st_ot']
					
					lista.append(dato)
			total={}
			total['util_soles']= tComis
			#total['util_soles']= 0
			#if UtilS['comision__sum'] != None:
			#	total['util_soles']= round(float(UtilS['comision__sum']),2)
			#total['util_dolares']=str(UtilD['comision__sum'])
			total['util_dolares']=tComid
			total['total_soles']=round(float(totalS),2)
			total['total_dolares']=float(totalD)
			total['tcapid']=float(tcapiD)
			total['tbancod']=float(tbancoD)
			total['tcapis']=round(float(tcapiS),2)
			total['tbancos']=round(float(tbancoS),2)
			total['tcof']=round(os,2)
			total['tcce']=round(cs,2)
			total['tcot']=round(es,2)
			lista.append(total)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

#facturacion
# filtro
@login_required
def lista_operaciones_sunat_fetch_view(request):
	if request.is_ajax:
		usr= request.user.username
		tipo=request.GET.get('tipo','a')
		dni_razon=request.GET.get('razon','')
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=[]
			if tipo=="a":
				consulta= FacturacionOperacionV1.objects.filter(estado=True,estado_sunat="activo").order_by('-pk').values('pk','tipo','serie','correlativo','fecha','fecha_emision','fecha_envio','fecha_error','nro_doc','razon','m_neto','m_igv','m_total','estado_sunat','id_caja','id_empresa')
			elif tipo=="f":
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta= FacturacionOperacionV1.objects.filter(estado=True,fecha__range=(horamin,horamax)).values('pk','tipo','serie','correlativo','fecha','fecha_emision','fecha_envio','fecha_error','nro_doc','razon','m_neto','m_igv','m_total','estado_sunat','id_caja','id_empresa')
				elif filtro=='ef':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta= FacturacionOperacionV1.objects.filter(estado=True,fecha__range=(fhoramin,fhoramax)).values('pk','tipo','serie','correlativo','fecha','fecha_emision','fecha_envio','fecha_error','nro_doc','razon','m_neto','m_igv','m_total','estado_sunat','id_caja','id_empresa')
				else:
					consulta=[]
			elif tipo=="n":
				consulta= FacturacionOperacionV1.objects.filter(Q(estado=True,nro_doc__icontains=dni_razon) |Q(estado=True,razon__icontains=dni_razon)).order_by('-pk').values('pk','tipo','serie','correlativo','fecha','fecha_emision','fecha_envio','fecha_error','nro_doc','razon','m_neto','m_igv','m_total','estado_sunat','id_caja','id_empresa')
			if consulta:
				if C.id_usuario.pk != C.id_oficina.id_usuario.pk or  C.id_oficina.categoria_oficina != 'central':
					consulta = consulta.filter(id_caja = C.pk)
			total_de=0
			for obj in consulta:
				dato={}
				dato['pk']= obj['pk']
				dato['fecha']=str(obj['fecha'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_emision']=''
				if obj['fecha_emision']!=None:
					dato['fecha_emision']=str(obj['fecha_emision'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_envio']=''
				if obj['fecha_envio']!=None:
					dato['fecha_envio']=str(obj['fecha_envio'].strftime("%d-%m-%Y %H:%M"))
				dato['fecha_error']=''
				if obj['fecha_error']!=None:
					dato['fecha_error']=str(obj['fecha_error'].strftime("%d-%m-%Y %H:%M"))

				dato['serie']=obj['serie']
				dato['correlativo']=obj['correlativo']
				dato['nro_doc']=obj['nro_doc']
				dato['razon']=obj['razon']
				dato['m_neto']=str(round(obj['m_neto'],2))
				dato['m_igv']=str(round(obj['m_igv'],2))
				dato['m_total']=str(round(obj['m_total'],2))
				total_de += float(obj['m_total'])
				dato['caja']=''
				if obj['id_caja'] !=0:
					caja = Cajas.objects.get(pk=obj['id_caja'])
					dato['caja'] = caja.id_oficina.nombre_oficina +"/ "+ caja.nombre
				dato['ruc']=''
				if obj['id_empresa'] !=0:
					empresa = EmpresaSunat.objects.get(pk=obj['id_empresa'])
					dato['ruc'] = empresa.ruc
				dato['estado']=obj['estado_sunat']
				if obj['tipo'] =='B':
					dato['tipo']='Boleta'
				elif obj['tipo'] =='F':
					dato['tipo']='Factura'
				else:
					dato['tipo']='Error'
				lista.append(dato)
			data= json.dumps({'lista':lista, 'total_de':round(total_de,2)})
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)


@login_required
def detalle_operacione_sunat_fetch_view(request):
	if request.is_ajax:
		usr= request.user.username
		pk_f=request.GET.get('pk','0')
		try:
			lista=[]
			fact = FacturacionOperacionV1.objects.get(pk=pk_f)
			dato={}
			if fact.tabla == 'SolicitudTransferencia':
				soli = SolicitudTransferencia.objects.get(pk=fact.idOperacion)
				empresa = EmpresaSunat.objects.get(pk=fact.id_empresa)
				monto = ConvertirDecimal(soli.idCajaDebe.cantidadDinero)-ConvertirDecimal(soli.comision) -ConvertirDecimal(soli.monto_conceptos)
				dato['re_e_razon'] = empresa.razon
				dato['re_e_ruc'] = empresa.ruc
				dato['re_e_dir'] = empresa.direccion
				dato['re_e_dis'] = empresa.distrito
				dato['re_e_pro'] = empresa.provincia
				dato['re_e_depa'] = empresa.departamento
				dato['re_tipo'] = 'BOLETA' if fact.tipo == 'B' else 'FACTURA'
				dato['re_serie'] = fact.serie
				dato['re_correlativo'] = getSerie8Digits(fact.correlativo)

				dato['nrorecibo'] = soli.idCajaDebe.nroRecibo
				dato['fechaRecibo'] = str(soli.idCajaDebe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['origen'] = soli.idCajaDebe.id_oficina.nombre_oficina
				dato['oficinadestino'] = soli.id_oficina.nombre_oficina
				dato['destino_dir'] = soli.id_oficina.direccion
				dato['destino_tel'] = soli.id_oficina.descripcion
				dato['soli'] = soli.id_cliente.nombre +' '+ soli.id_cliente.Apellido_paterno
				dato['bene'] = soli.nombre_beneficiado +' '+ soli.Apellido_paterno_beneficiado
				dato['dni_ruc'] = fact.nro_doc
				dato['banco'] = soli.banco
				dato['nro_cta'] = soli.nroCta
				dato['obs'] = soli.observaciones
				dato['capital'] = str(monto)
				dato['comision'] = str(soli.comision)
				dato['mnoto_con'] = str(soli.monto_conceptos)
				dato['total'] = float(soli.idCajaDebe.cantidadDinero)
				dato['moneda'] = 'PEN'
				dato['neto'] = str(fact.m_neto)
				dato['igv'] = str(fact.m_igv)
				dato['total_sunat'] = str(fact.m_total)
				dato['n_letras'] = fact.monto_letras
				dato['usuario_op'] = soli.idCajaDebe.id_personal.nombre + ' ' + soli.idCajaDebe.id_personal.Apellido_paterno
				dato['tabla'] = 'SolicitudTransferencia'
				# obtener qr
				PARAMS = {'token':"Fe1245dock.Dex"}
				todo = {}
				if fact.tipo == 'B':
					todo = {"ruc": empresa.ruc,
							"tipo": "03",
							"serie": fact.serie,
							"numero": fact.correlativo,
							"emision": fact.fecha_tz_letras,
							"igv": round(float(fact.m_igv),2),
							"total": round(float(fact.m_total),2),
							"clienteTipo": "1",
							"clienteNumero": fact.nro_doc}#dni

				if fact.tipo == 'F':
					todo = {"ruc": empresa.ruc,
							"tipo": "01",
							"serie": fact.serie,
							"numero": fact.correlativo,
							"emision": fact.fecha_tz_letras,
							"igv": round(float(fact.m_igv),2),
							"total": round(float(fact.m_total),2),
							"clienteTipo": "6",
							"clienteNumero": fact.nro_doc}#ruc
				api_url = "http://localhost:8000/api/v1/sale/qr"
				r = requests.post(url = api_url,params =PARAMS, data = json.dumps(todo))
				uri = ("data:" + r.headers['Content-Type'] + ";" +"base64," + base64.b64encode(r.content).decode("utf-8"))
				dato['uri_qr'] = uri
				exito='exito'
			elif fact.tabla == 'SolicitudTransferenciaBancoa':
				soli = SolicitudTransferenciaBancoa.objects.get(pk=fact.idOperacion)
				empresa = EmpresaSunat.objects.get(pk=fact.id_empresa)
				
				dato['re_e_razon'] = empresa.razon
				dato['re_e_ruc'] = empresa.ruc
				dato['re_e_dir'] = empresa.direccion
				dato['re_e_dis'] = empresa.distrito
				dato['re_e_pro'] = empresa.provincia
				dato['re_e_depa'] = empresa.departamento
				dato['re_tipo'] = 'BOLETA' if fact.tipo == 'B' else 'FACTURA'
				dato['re_serie'] = fact.serie
				dato['re_correlativo'] = getSerie8Digits(fact.correlativo)

				dato['nrorecibo'] = soli.idCajaDebe.nroRecibo
				dato['fechaRecibo'] = str(soli.idCajaDebe.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['origen'] = soli.idCajaDebe.id_oficina.nombre_oficina
				dato['soli'] = soli.id_cliente.nombre +' '+ soli.id_cliente.Apellido_paterno
				dato['soli_dni'] = soli.id_cliente.dni
				dato['bene'] = soli.nombre_beneficiado +' '+ soli.paterno_beneficiado
				dato['dni_ruc'] = fact.nro_doc
				dato['banco'] = soli.banco
				dato['nro_cta'] = soli.nroCta
				dato['obs'] = soli.observaciones
				dato['capital'] = str(soli.monto)
				dato['comision'] = str(soli.comision)
				dato['total'] = float(soli.monto) + float(soli.comision)
				dato['moneda'] = 'PEN'
				dato['neto'] = str(fact.m_neto)
				dato['igv'] = str(fact.m_igv)
				dato['total_sunat'] = str(fact.m_total)
				dato['n_letras'] = fact.monto_letras
				dato['usuario_op'] = soli.idCajaDebe.id_personal.nombre + ' ' + soli.idCajaDebe.id_personal.Apellido_paterno
				dato['tabla'] = 'SolicitudTransferenciaBancoa'
				# obtener qr
				PARAMS = {'token':"Fe1245dock.Dex"}
				todo = {}
				if fact.tipo == 'B':
					todo = {"ruc": empresa.ruc,
							"tipo": "03",
							"serie": fact.serie,
							"numero": fact.correlativo,
							"emision": fact.fecha_tz_letras,
							"igv": round(float(fact.m_igv),2),
							"total": round(float(fact.m_total),2),
							"clienteTipo": "1",
							"clienteNumero": fact.nro_doc}#dni

				if fact.tipo == 'F':
					todo = {"ruc": empresa.ruc,
							"tipo": "01",
							"serie": fact.serie,
							"numero": fact.correlativo,
							"emision": fact.fecha_tz_letras,
							"igv": round(float(fact.m_igv),2),
							"total": round(float(fact.m_total),2),
							"clienteTipo": "6",
							"clienteNumero": fact.nro_doc}#ruc
				api_url = "http://localhost:8000/api/v1/sale/qr"
				r = requests.post(url = api_url,params =PARAMS, data = json.dumps(todo))
				uri = ("data:" + r.headers['Content-Type'] + ";" +"base64," + base64.b64encode(r.content).decode("utf-8"))
				dato['uri_qr'] = uri
				exito='exito'
			data= json.dumps({'exito': exito,'data':dato})
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listado_operaciones_sunat_view(request):
	return render(request,'listado-operaciones-sunat.html',{'es_sunat':'si'})

@login_required
def operaciones_agente_ajax_view(request):
	if request.is_ajax:
		es_retiro=request.GET.get('retiro','')
		usr= request.user.username
		data=''
		lista=[]
		try:
			es_depo = es_retiro=='si' #se depositara a la cuenta
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Operacion_agente.objects.filter(estado=True, es_deposito=es_depo).values('pk','operacion'))
			data= json.dumps(consulta)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def entidad_st_bancos_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		es_agente=request.GET.get('agente','')
		data=''
		lista=[]
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			es_age = es_agente=='si'
			consulta=list(Entidad_Bancaria_caja.objects.filter(estado=True,es_agente=es_age).values('pk','entidad'))
			data= json.dumps(consulta)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def entidad_retiros_bancos_ajax_view(request):
	if request.is_ajax:
		usr= request.user.username
		data=''
		lista=[]
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			consulta=list(Entidad_Bancaria_caja.objects.filter(Q(estado=True,es_global=True, retiro=True)| Q(estado=True,retiro=True,id_caja=C.pk)).values('pk','entidad'))
			data= json.dumps(consulta)
		except:
			data='error en consulta'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaRetirostransferencia_fetch_view(request):
	if request.is_ajax:
		tipo=request.GET.get('tipo','f')
		dni_razon=request.GET.get('razon','')
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		usr= request.user.username
		try:
			lista=[]
			C = Cajas.objects.get(id_usuario__usuario=usr)
			if filtro =='f':
				if F1 !='':
					fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					consulta= list(RetiroTransferenciaCta.objects.filter(id_caja=C.pk, fecha__range=(horamin,horamax)).order_by('-pk').values('pk'))
			elif filtro=='ef':
				if F1 !='' and F2 !='':
					fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
					fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
					fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
					fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
					consulta= list(RetiroTransferenciaCta.objects.filter(id_caja=C.pk, fecha__range=(fhoramin,fhoramax)).order_by('-pk').values('pk'))
					
			for obj in consulta:
				retiro = RetiroTransferenciaCta.objects.get(pk=obj['pk'])
				dato={}	

				dato['fecha']=str(retiro.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['personal']=retiro.id_personal.nombre+" "+ retiro.id_personal.Apellido_paterno+" "+retiro.id_personal.Apellido_materno
				dato['cliente']=retiro.id_cliente.nombre+" "+ retiro.id_cliente.Apellido_paterno+" "+retiro.id_cliente.Apellido_materno
				dato['cliente_dni']=retiro.id_cliente.dni
				dato['monto']=str(retiro.monto)
				dato['comision']=str(retiro.comision)
				dato['banco']= retiro.banco
				dato['operacion']=''
				if retiro.id_operacion>0:
					ope = Operacion_agente.objects.get(pk=retiro.id_operacion)
					dato['operacion'] = ope.operacion
				dato['nro_re']= retiro.nro_re
				dato['concepto']= retiro.conceptoDetalle
				dato['tipo_doc']= retiro.tipo_doc
				dato['obs']= retiro.observaciones
				
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def listaRetirostransferencia_view(request):
	return render(request,'RetirosBancosCreados.html')

@login_required
def listaSolicitudesCtaAhorrosCte_main_ajax_view(request):
	usr= request.user.username
	if request.is_ajax:
		tipo=request.GET.get('tipo','f')
		dni_razon=request.GET.get('razon','')
		filtro=request.GET.get('filtro','')
		F1=request.GET.get('F1','')
		F2=request.GET.get('F2','')
		if filtro=='h':
			F1= str(datetime.date.today())
			filtro= 'f'
		try:
			C = Cajas.objects.get(id_usuario__usuario=usr)
			#consulta=list(CtaCte_main.objects.filter(id_oficina=C.id_oficina.pk,id_caja=C.pk).order_by('-pk')[desde:hasta].values('pk'))
			
			horamin = None
			horamax = None
			if tipo=="f":
				if filtro =='f':
					if F1 !='':
						fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha,datetime.time.min)
						horamax= datetime.datetime.combine(fecha,datetime.time.max)
						consulta= SolicitudDesbloqueoCtaCteMovimientos_main.objects.filter(fecha__range=(horamin,horamax)).order_by('-pk').values('pk')
				elif filtro=='ef':
					if F1 !='' and F2 !='':
						fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
						fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
						horamin= datetime.datetime.combine(fecha1,datetime.time.min)
						horamax= datetime.datetime.combine(fecha2,datetime.time.max)
						consulta = SolicitudDesbloqueoCtaCteMovimientos_main.objects.filter(fecha__range=(horamin,horamax)).order_by('-pk').values('pk')
				else:
					consulta=[]
			elif tipo=="n":
				consulta= SolicitudDesbloqueoCtaCteMovimientos_main.objects.filter(Q(id_ctacte__id_cliente__nombre__icontains=dni_razon)|Q(id_ctacte__id_cliente__Apellido_paterno__icontains=dni_razon)|Q(id_ctacte__id_cliente__Apellido_materno__icontains=dni_razon)|Q(id_ctacte__id_cliente__dni_beneficiado__icontains=dni_razon)).order_by('-pk').values('pk')
				
			elif tipo=="a":
				consulta= SolicitudDesbloqueoCtaCteMovimientos_main.objects.filter(estadoAutorizacion="pendiente").order_by('-pk').values('pk')
			else:
				consulta = []
			lista=[]
			for obj in consulta:
				soli_d = SolicitudDesbloqueoCtaCteMovimientos_main.objects.get(pk=obj['pk'])
				#cta = CtaCte_main.objects.get(pk=obj['pk'])
				dato={}
				#---------
				dato['so_fecha']=str(soli_d.fecha.strftime("%d-%m-%Y %H:%M"))
				dato['so_pk']= obj['pk']
				dato['so_oficina'] = soli_d.id_oficina.nombre_oficina
				dato['so_caja']=soli_d.id_caja.nombre
				dato['so_personal'] = soli_d.id_personal.nombre +' ' +soli_d.id_personal.Apellido_paterno
				dato['so_tabla'] = soli_d.tabla
				dato['so_autorizador'] = soli_d.autorizado_por
				dato['so_estado_au'] = soli_d.estadoAutorizacion
				dato['so_monto'] = str(soli_d.monto_operacion)
				dato['so_moneda'] = soli_d.moneda

				#---------
				dato['pk']=soli_d.id_ctacte.pk
				dato['dni']=soli_d.id_ctacte.id_cliente.dni
				dato['nom']=soli_d.id_ctacte.id_cliente.nombre
				dato['ap']=soli_d.id_ctacte.id_cliente.Apellido_paterno
				dato['am']=soli_d.id_ctacte.id_cliente.Apellido_materno
				dato['tp']=soli_d.id_ctacte.id_cliente.tipo_persona
				dato['fa']=str(soli_d.id_ctacte.fechaApertura.strftime("%d-%m-%Y %H:%M %p"))
				dato['oa']= soli_d.id_ctacte.id_oficina.nombre_oficina
				dato['saldo']= str(soli_d.id_ctacte.saldo)
				dato['moneda']= str(soli_d.id_ctacte.moneda)
				dato['tipo']=''
				if soli_d.id_ctacte.tipoCuenta=='CTE':
					dato['tipo']='Cuenta Corriente'
				dato['agente']='no'
				if Entidad_Bancaria_caja.objects.filter(cta=soli_d.id_ctacte.pk,es_agente=True).exists():
					dato['agente']='si'
				dato['estado']=soli_d.id_ctacte.estado
				lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)

@login_required
def reporte_movimientos_cuentasAhorrosCte_activos_main_ajax_view(request):
	id_cta=request.GET.get('pkCta','')
	filtro=request.GET.get('filtro','')
	F1=request.GET.get('F1','')
	F2=request.GET.get('F2','')
	if filtro=='h':
		F1= str(datetime.date.today())
		filtro= 'f'
	usr= request.user.username
	if request.is_ajax:
		try:
			#C = Cajas.objects.get(id_usuario__usuario=usr)
			if filtro =='f':
				if F1 !='':
					fecha= datetime.datetime.strptime(F1, '%Y-%m-%d')
					horamin= datetime.datetime.combine(fecha,datetime.time.min)
					horamax= datetime.datetime.combine(fecha,datetime.time.max)
					consulta=list(CtaCteMovimientos_main.objects.filter(id_ctacte=id_cta, fecha__range=(horamin,horamax)).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','conceptoDetalle','comision','moneda'))
				else:
					data='fail'
			elif filtro=='ef':
				fecha1= datetime.datetime.strptime(F1, '%Y-%m-%d')
				fecha2= datetime.datetime.strptime(F2, '%Y-%m-%d')
				fhoramin= datetime.datetime.combine(fecha1,datetime.time.min)
				fhoramax= datetime.datetime.combine(fecha2,datetime.time.max)
				consulta=list(CtaCteMovimientos_main.objects.filter(id_ctacte=id_cta, fecha__range=(fhoramin,fhoramax)).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','conceptoDetalle','comision','moneda'))
			else:
				data='fail'
			#consulta=list(CtaCteMovimientos_main.objects.filter(id_ctacte=id_cta).order_by('pk').values('pk','idDebeHaber','id_ctacte','tabla','fecha','montoDeposito','montoRetiro','saldo','observacionesMovimientos','conceptoDetalle','comision','moneda'))
			lista=[]
			for obj in consulta:
				cta = CtaCte_main.objects.get(pk=obj['id_ctacte'])
				if obj['tabla']=='DepositoCtaTransferenciaProcesado':
					movi= DepositoCtaTransferenciaProcesado.objects.get(id_movimiento=obj['pk'])
					soli = SolicitudTransferenciaBancoa.objects.get(pk=movi.id_procesado.id_solicitud_transferencia.pk)
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= obj['moneda']
					dato['td']= 'R/I'
					dato['nr']= ""
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= obj['conceptoDetalle']
					dato['obs']= obj['observacionesMovimientos']
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					dato['benefiario']= soli.nombre_beneficiado + ' ' + soli.paterno_beneficiado + ' ' + soli.materno_beneficiado
					dato['benefiario_dni']= soli.dni_beneficiado
					dato['banco']= soli.banco
					dato['monto']= str(soli.monto)
					dato['comision']= str(soli.comision)
					dato['nro_cta']= soli.nroCta
					dato['nro_operacion']= soli.nro_operacion
					dato['nro_giro']= soli.nro_giro
					lista.append(dato)

				elif obj['tabla']=='RetiroCtaTransferenciaProcesado':
					movi= RetiroCtaTransferenciaProcesado.objects.get(id_movimiento=obj['pk'])
					soli = SolicitudTransferenciaBancoa.objects.get(pk=movi.id_procesado.id_solicitud_transferencia.pk)
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= obj['moneda']
					dato['td']= 'R/I'
					dato['nr']= ""
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= obj['conceptoDetalle']
					dato['obs']= obj['observacionesMovimientos']
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					dato['benefiario']= soli.nombre_beneficiado + ' ' + soli.paterno_beneficiado + ' ' + soli.materno_beneficiado
					dato['benefiario_dni']= soli.dni_beneficiado
					dato['banco']= soli.banco
					dato['monto']= str(soli.monto)
					dato['comision']= str(soli.comision)
					dato['nro_cta']= soli.nroCta
					dato['nro_operacion']= soli.nro_operacion
					dato['nro_giro']= soli.nro_giro
					lista.append(dato)
				elif obj['tabla']=='RetiroTransferenciaCtaComision':
					movi= RetiroTransferenciaCta.objects.get(id_comi_mov=obj['pk'])
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= obj['moneda']
					dato['td']= 'R/I'
					dato['nr']= ""
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= obj['conceptoDetalle']
					dato['obs']= obj['observacionesMovimientos']
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					dato['benefiario']= movi.id_cliente.nombre + ' ' + movi.d_cliente.Apellido_paterno + ' ' + movi.id_cliente.Apellido_materno
					dato['benefiario_dni']= movi.id_cliente.dni
					dato['banco']= movi.banco
					dato['monto']= str(movi.monto)
					dato['comision']= str(movi.comision)
					dato['nro_cta']= ''
					dato['nro_operacion']= ''
					dato['nro_giro']= ''
					lista.append(dato)
				else:
					movi=None
					if obj['tabla']=='TCajaDebe':
						movi= TCajaDebe.objects.get(pk=obj['idDebeHaber'])
					elif obj['tabla']=='TCajaHaber':
						movi= TCajaHaber.objects.get(pk=obj['idDebeHaber'])
					dato={}
					dato['pk']=obj['pk']
					dato['fecha']= str(movi.fecha.strftime("%d-%m-%Y %H:%M %p"))
					dato['fecha_ope']= str(movi.fecha.strftime("%d-%m-%Y"))
					dato['hora_ope']= str(movi.fecha.strftime("%H:%M %p"))
					dato['deposito']= str(obj['montoDeposito'])
					dato['retiro']= str(obj['montoRetiro'])
					dato['saldo']= str(obj['saldo'])
					dato['moneda']= movi.moneda
					dato['td']= movi.tipoDocumento
					dato['nr']= movi.nroRecibo
					dato['dni']= cta.id_cliente.dni
					dato['nombre']= cta.id_cliente.nombre+' '+cta.id_cliente.Apellido_paterno+' '+cta.id_cliente.Apellido_materno
					dato['concepto']= movi.conceptoDetalle[:15]
					dato['obs']= movi.observaciones
					dato['oficina']= movi.id_oficina.nombre_oficina
					dato['caja']= movi.id_caja.nombre
					dato['ope']= movi.id_personal.nombre+' '+movi.id_personal.Apellido_paterno
					dato['benefiario']= ''
					dato['benefiario_dni']= ''
					dato['banco']= ''
					dato['monto']= ''
					dato['comision']= ''
					dato['nro_cta']= ''
					dato['nro_operacion']= ''
					dato['nro_giro']= ''
					lista.append(dato)
			data= json.dumps(lista)
		except:
			data='fail'+ str(sys.exc_info()[1])
	else:
		data='fail'
	mimetype="application/json"
	return HttpResponse(data,mimetype)