Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ======================================================================================
- comienza archivo concilia_db.py
- ======================================================================================
- #!/usr/bin/env python
- #Test de conexion
- from objetosICC import *
- from timePlay import *
- import ConfigParser
- import string
- import time
- import pdb
- class creaObjConcilia(object):
- def __init__(self):
- global start
- global stop
- global QY_PATHS
- global CONCILIAR
- file = '../config/config.ini'
- QY_PATHS = {}
- CONCILIAR = {}
- try:
- config = ConfigParser.ConfigParser()
- try:
- config.read(file)
- except:
- print "No se pudo leer el archivo de configuracion ..."
- pathss = config.items('SYSTEM_PATHS')
- concil = config.items('OPTIONS')
- except:
- print "El archivo no cumple con las caracteristicas de configuracion necesarias"
- print "Las secciones [QUERYS] y [SYSTEM_PATHS] son requisito..."
- for pat in pathss:
- QY_PATHS[pat[0]]=pat[1]
- for concilia in concil:
- CONCILIAR[concilia[0]]=concilia[1]
- def validaConciliador(self):
- #Validamos las tablas que se van a conciliar
- queConciliar = CONCILIAR.get('conciliar',None)
- if (queConciliar == None):
- return None,None
- elif (queConciliar == 'ATS|BSCS'):
- que = queConciliar.split('|')
- path1 = QY_PATHS.get('output_home',None)
- return queConciliar,path1
- elif (queConciliar == 'ATS|ICC'):
- que = queConciliar.split('|')
- path1 = QY_PATHS.get('output_home',None)
- return queConciliar,path1
- elif (queConciliar == 'ICC|BSCS'):
- que = queConciliar.split('|')
- path1 = QY_PATHS.get('output_home',None)
- return queConciliar, path1
- else:
- return None,None
- def ejecutaConciliacionGlobal(self,camino,file1,file2):
- #Abrimos los archivos de los querys respectivos a utilizar
- start = time.time()
- fullpath = os.path.join(camino,file1)
- fullpath2 = os.path.join(camino,file2)
- arch1 = open(fullpath)
- arch2 = open(fullpath2)
- #=========================================================
- tupla_bscs= []
- tupla_prepago = []
- print "Iniciando el proceso de comparacion de datos ...%s segundos " % (start)
- #pdb.set_trace()
- tm = conciliatorTime()
- print tm.getCompleteDate()
- fl = creaArchivos('pruebas.dat',QY_PATHS.get('output_home',None))
- escribe = fl.creaFile('w')
- #print "identify|a_prv_id|card_nbr|clt_stat|cofref1"
- i = 1
- maneja1 = arch1.readline()
- while maneja1:
- row = maneja1.split(',')
- iniciaBSCS = bscsClient(str(row[0]),int(row[2]),str(row[1]),str(row[5]),str(row[3]),str(4))
- tupla_bscs.append(iniciaBSCS)
- maneja1 = arch1.readline()
- tupla_bscs.sort()
- maneja2 = arch2.readline()
- while maneja2:
- row2 = maneja2.split(',')
- iniciaPREPAGO = atsClient(str(row2[1]),int(row2[0]),str(row2[4]),str(row2[2]),str(row2[3]),str(row2[5]))
- tupla_prepago.append(iniciaPREPAGO)
- maneja2 = arch2.readline()
- tupla_prepago.sort()
- #pdb.set_trace()
- long_bscs = len(tupla_bscs)
- long_prepago = len(tupla_prepago)
- print long_bscs
- print long_prepago
- for y in tupla_bscs:
- for x in tupla_prepago:
- if (str(y.DN_BSCS) == str(x.DN_ATS)):
- print "DN_ATS: "+ str(x.DN_ATS)
- break
- elif(str(y.DN_BSCS) <> str(x.DN_ATS)):
- continue
- else:
- print "el DN "+str(y.DN_BSCS)+" No se encuentra en ATS "
- #x_dict = dict((str(x.DN_ATS), x) for x in tupla_prepago)
- #for y in tupla_bscs:
- #if x_dict.has_key(str(y.DN_BSCS)):
- #print "DN_ATS: ", y.DN_ATS
- stop = time.time()
- print "terminando proceso de conciliacion directamente en base de datos..."
- print "Tiempo de ejecucion: %s segundos " % ((stop - start)/60)
- print "inicio: %s segundos" % (start/60)
- print "Fin: "+str(stop/60)
- print tm.getCompleteDate()
- #pdb.set_trace()
- #for x in tupla_conciliacion:
- #print x.DN_ICC+'|'+x.Contrato_ICC
- if __name__ == "__main__":
- creaObjs = creaObjConcilia()
- quecosa,cam = creaObjs.validaConciliador()
- archivo1 = "extract_ats_20100514.txt"
- archivo2 = "extract_bscs_20100514.txt"
- creaObjs.ejecutaConciliacionGlobal(cam,archivo2,archivo1)
- ======================================================================================
- termina archivo concilia_db.py
- ======================================================================================
- ======================================================================================
- inicia archivo objetosICC.py
- ======================================================================================
- #!/usr/bin/env python
- #Modulo que realizara las conexiones a las bases de datos Oracle.
- # Nombre : objetosConcilia
- # Desarrollo: Mauricio Martinez Garcia
- # Variables :
- # Ejemplo :
- #Descripcion: Realizara la interfaz de conexion
- class atsClient(object):
- __slots__ = ('DN_ATS','Contrato_ATS','Plan_ATS','Ciclo_ATS','Status_ATS','ESTADO')
- def __init__(self,dn,co_id,plan,ciclo,status,estado):
- #Datos para conciliar de ATS
- self.DN_ATS = dn
- self.Contrato_ATS = co_id
- self.Plan_ATS = plan
- self.Ciclo_ATS = ciclo
- self.Status_ATS = status
- self.ESTADO = estado
- def setDN_ATS(self,dn):
- self.DN_ATS = dn
- def getDN_ATS(self):
- return self.DN_ATS
- def setContrato_ATS(self,co_id):
- self.Contrato_ATS = co_id
- def getContrato_ATS(self):
- return self.Contrato_ATS
- def setPlanATS(self,Plan):
- self.Plan_ATS = Plan
- def getPlanATS(self):
- return self.Plan_ATS
- def setCiclo_ATS(self,ciclo):
- self.Ciclo_ATS = ciclo
- def getCicloATS(self):
- return self.Ciclo_ATS
- def setStatus(self, status):
- self.Status_ATS = status
- def getStatus(self):
- return self.Status_ATS
- def setESTADO(self,estado):
- self.ESTADO = estado
- def getESTADO(self):
- return self.ESTADO
- class iccClient(object):
- __slots__ = ('DN_ICC','Contrato_ICC','Plan_ICC','Ciclo_ICC','Status_ICC')
- def __init__(self,tm_code,dn,co_id,plan,ciclo,status):
- #Datos para conciliar de ICC
- self.DN_ICC = dn
- self.Contrato_ICC = co_id
- self.Plan_ICC = plan
- self.Ciclo_ICC = ciclo
- self.Status_ICC = status
- def setDN_ICC(self,dn):
- self.DN_ICC = dn
- def getDN_ICC(self):
- return self.DN_ICC
- def setContrato_ICC(self,co_id):
- self.Contrato_ICC = co_id
- def getContrato_ICC(self):
- return self.Contrato_ICC
- def setPlanICC(self,Plan):
- self.Plan_ICC = Plan
- def getPlanICC(self):
- return self.Plan_ICC
- def setCiclo_ICC(self,ciclo):
- self.Ciclo_ICC = ciclo
- def getCicloICC(self):
- return self.Ciclo_ICC
- def setStatus(self, status):
- self.Status_ICC = status
- def getStatus(self):
- return self.Status_ICC
- class bscsClient:
- __slots__ = ('TM_CODE','DN_BSCS','Contrato_BSCS','Plan_BSCS','Ciclo_BSCS','Status_BSCS')
- def __init__(self,tm_code,dn,co_id,plan,ciclo,status):
- #Datos para conciliar de BSCS iX.
- self.TM_CODE = tm_code
- self.DN_BSCS = dn
- self.Contrato_BSCS = co_id
- self.Plan_BSCS = plan
- self.Ciclo_BSCS = ciclo
- self.Status_BSCS = status
- def setTM_CODE(self,tm_code):
- self.TN_CODE = tm_code
- def getTM_CODE(self):
- return self.TM_CODE
- def setDN(self,dn):
- self.DN_BSCS = dn
- def getDN(self):
- return self.DN_BSCS
- def setContrato_BSCS(self,co_id):
- self.Contrato_BSCS = co_id
- def getContrato_BSCS(self):
- return self.Contrato_BSCS
- def setPlanBSCS(self,Plan):
- self.Plan_BSCS = Plan
- def getPlanBSCS(self):
- return self.Plan_BSCS
- def setCiclo_BSCS(self,ciclo):
- self.Ciclo_BSCS = ciclo
- def getCicloBSCS(self):
- return self.Ciclo_BSCS
- def setStatus(self, status):
- self.Status_BSCS = status
- def getStatus(self):
- return self.Status_BSCS
- ======================================================================================
- termina archivo objetosICC.py
- ======================================================================================
- ======================================================================================
- Info resultado de prueba.
- ======================================================================================
- DN_ATS: 526681780723
- DN_ATS: 523316150062
- DN_ATS: 525545963472
- DN_ATS: 525519919301
- DN_ATS: 525546028869
- DN_ATS: 524424101997
- DN_ATS: 524432792820
- DN_ATS: 527442167458
- DN_ATS: 527442167453
- DN_ATS: 527442167451
- DN_ATS: 525545963485
- DN_ATS: 528211230736
- DN_ATS: 527772748343
- ======================================================================================
- info de extraccion de prueba. ARCHIVO 1.
- ======================================================================================
- bash-3.1$ head extract_ats_20100514.txt
- 3188530,527223055354,01,a,CELITE15,AC
- 2393066,525510419451,01,a,CELITE15,AC
- 4319021,524421253262,01,a,CELITE15,AC
- 5654566,525510887035,01,a,CELITE15,AC
- 6047740,525527353371,01,a,CELITE15,AC
- 5313883,525510889299,01,a,CELITE15,AC
- 4322055,525510890351,01,a,CELITE15,AC
- 2231446,525531874232,04,a,CELITE15,AC
- 4973290,525527353389,01,a,CELITE15,AC
- 2232434,525531874523,01,a,CELITE15,AC
- ======================================================================================
- info de extraccion de prueba. ARCHIVO 2
- ======================================================================================
- bash-3.1$ head extract_bscs_20100514.txt
- 3315,6418462,527224925942,10,a,CPLUS015
- 3315,6498330,526673911952,10,a,CPLUS015
- 3315,7206590,524442655775,10,a,CPLUS015
- 3328,6418519,524442577375,10,a,CPLUS715
- 3315,6418588,524773067380,08,a,CPLUS015
- 3315,6418567,525531867934,08,a,CPLUS015
- 3315,6418574,523411301168,10,a,CPLUS015
- 3315,6419489,523316094029,10,a,CPLUS015
- 3319,6418626,524951083938,10,a,CPLUS215
- 3319,6418872,525545967139,05,a,CPLUS215
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement