Advertisement
Guest User

Untitled

a guest
May 25th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.95 KB | None | 0 0
  1. ======================================================================================
  2. comienza archivo concilia_db.py
  3. ======================================================================================
  4. #!/usr/bin/env python
  5.  
  6. #Test de conexion
  7. from objetosICC import *
  8. from timePlay import *
  9. import ConfigParser
  10. import string
  11. import time
  12. import pdb
  13.  
  14. class creaObjConcilia(object):
  15.     def __init__(self):
  16.         global start
  17.         global stop
  18.  
  19.         global QY_PATHS
  20.         global CONCILIAR
  21.  
  22.         file = '../config/config.ini'
  23.  
  24.         QY_PATHS = {}
  25.         CONCILIAR = {}
  26.  
  27.         try:
  28.             config = ConfigParser.ConfigParser()
  29.             try:
  30.                 config.read(file)
  31.             except:
  32.                 print "No se pudo leer el archivo de configuracion ..."
  33.             pathss = config.items('SYSTEM_PATHS')
  34.             concil = config.items('OPTIONS')
  35.         except:
  36.             print "El archivo no cumple con las caracteristicas de configuracion necesarias"
  37.             print "Las secciones [QUERYS] y [SYSTEM_PATHS] son requisito..."
  38.        
  39.         for pat in pathss:
  40.             QY_PATHS[pat[0]]=pat[1]            
  41.         for concilia in concil:
  42.             CONCILIAR[concilia[0]]=concilia[1]
  43.  
  44.  
  45.     def validaConciliador(self):
  46.        
  47.         #Validamos las tablas que se van a conciliar
  48.         queConciliar = CONCILIAR.get('conciliar',None)
  49.         if (queConciliar == None):
  50.             return None,None
  51.         elif (queConciliar == 'ATS|BSCS'):
  52.             que = queConciliar.split('|')            
  53.             path1 = QY_PATHS.get('output_home',None)
  54.             return queConciliar,path1
  55.                        
  56.         elif (queConciliar == 'ATS|ICC'):
  57.             que = queConciliar.split('|')
  58.             path1 = QY_PATHS.get('output_home',None)
  59.             return queConciliar,path1
  60.            
  61.         elif (queConciliar == 'ICC|BSCS'):
  62.             que = queConciliar.split('|')          
  63.             path1 = QY_PATHS.get('output_home',None)
  64.             return queConciliar, path1
  65.         else:
  66.             return None,None
  67.        
  68.        
  69.     def ejecutaConciliacionGlobal(self,camino,file1,file2):
  70.         #Abrimos los archivos de los querys respectivos a utilizar
  71.         start = time.time()
  72.         fullpath = os.path.join(camino,file1)
  73.         fullpath2 = os.path.join(camino,file2)
  74.         arch1 = open(fullpath)
  75.         arch2 = open(fullpath2)
  76.  
  77.         #=========================================================
  78.         tupla_bscs= []
  79.         tupla_prepago = []        
  80.  
  81.         print "Iniciando el proceso de comparacion de datos ...%s segundos " % (start)
  82.         #pdb.set_trace()                
  83.         tm = conciliatorTime()
  84.         print tm.getCompleteDate()
  85.         fl = creaArchivos('pruebas.dat',QY_PATHS.get('output_home',None))
  86.         escribe = fl.creaFile('w')
  87.         #print "identify|a_prv_id|card_nbr|clt_stat|cofref1"
  88.         i = 1
  89.         maneja1 = arch1.readline()
  90.        
  91.         while maneja1:
  92.             row = maneja1.split(',')
  93.             iniciaBSCS = bscsClient(str(row[0]),int(row[2]),str(row[1]),str(row[5]),str(row[3]),str(4))
  94.             tupla_bscs.append(iniciaBSCS)
  95.             maneja1 = arch1.readline()        
  96.         tupla_bscs.sort()
  97.        
  98.  
  99.         maneja2 = arch2.readline()
  100.         while maneja2:
  101.             row2 = maneja2.split(',')
  102.             iniciaPREPAGO = atsClient(str(row2[1]),int(row2[0]),str(row2[4]),str(row2[2]),str(row2[3]),str(row2[5]))
  103.             tupla_prepago.append(iniciaPREPAGO)
  104.             maneja2 = arch2.readline()
  105.         tupla_prepago.sort()        
  106.         #pdb.set_trace()
  107.         long_bscs = len(tupla_bscs)
  108.         long_prepago = len(tupla_prepago)
  109.  
  110.         print long_bscs
  111.         print long_prepago
  112.         for y in tupla_bscs:
  113.             for x in tupla_prepago:
  114.    
  115.                 if (str(y.DN_BSCS) == str(x.DN_ATS)):
  116.                     print "DN_ATS: "+ str(x.DN_ATS)
  117.                     break
  118.                 elif(str(y.DN_BSCS) <> str(x.DN_ATS)):
  119.                     continue
  120.                 else:
  121.                     print "el DN "+str(y.DN_BSCS)+" No se encuentra en ATS "
  122.         #x_dict = dict((str(x.DN_ATS), x) for x in tupla_prepago)
  123.         #for y in tupla_bscs:
  124.             #if x_dict.has_key(str(y.DN_BSCS)):
  125.                 #print "DN_ATS: ", y.DN_ATS                          
  126.            
  127.  
  128.         stop = time.time()
  129.         print "terminando proceso de conciliacion directamente en base de datos..."
  130.         print "Tiempo de ejecucion: %s segundos " % ((stop - start)/60)
  131.         print "inicio: %s segundos" % (start/60)
  132.         print "Fin: "+str(stop/60)
  133.         print tm.getCompleteDate()
  134. #pdb.set_trace()
  135.         #for x in tupla_conciliacion:
  136.             #print x.DN_ICC+'|'+x.Contrato_ICC
  137.  
  138. if __name__ == "__main__":
  139.    
  140.     creaObjs = creaObjConcilia()
  141.     quecosa,cam = creaObjs.validaConciliador()
  142.     archivo1 = "extract_ats_20100514.txt"
  143.     archivo2 = "extract_bscs_20100514.txt"
  144.     creaObjs.ejecutaConciliacionGlobal(cam,archivo2,archivo1)
  145. ======================================================================================
  146. termina archivo concilia_db.py
  147. ======================================================================================
  148.  
  149. ======================================================================================
  150. inicia archivo objetosICC.py
  151. ======================================================================================
  152.  
  153. #!/usr/bin/env python
  154. #Modulo que realizara las conexiones a las bases de datos Oracle.
  155. # Nombre    : objetosConcilia
  156. # Desarrollo: Mauricio Martinez Garcia
  157. # Variables :
  158. # Ejemplo   :
  159. #Descripcion: Realizara la interfaz de conexion
  160.  
  161. class atsClient(object):
  162.     __slots__ = ('DN_ATS','Contrato_ATS','Plan_ATS','Ciclo_ATS','Status_ATS','ESTADO')
  163.     def __init__(self,dn,co_id,plan,ciclo,status,estado):
  164.         #Datos para conciliar de ATS
  165.         self.DN_ATS = dn
  166.         self.Contrato_ATS = co_id
  167.         self.Plan_ATS = plan
  168.         self.Ciclo_ATS = ciclo
  169.         self.Status_ATS = status
  170.         self.ESTADO = estado
  171.  
  172.     def setDN_ATS(self,dn):
  173.         self.DN_ATS = dn
  174.        
  175.     def getDN_ATS(self):
  176.         return self.DN_ATS
  177.  
  178.     def setContrato_ATS(self,co_id):
  179.         self.Contrato_ATS = co_id
  180.  
  181.     def getContrato_ATS(self):
  182.         return self.Contrato_ATS
  183.  
  184.     def setPlanATS(self,Plan):
  185.         self.Plan_ATS = Plan
  186.  
  187.     def getPlanATS(self):
  188.         return self.Plan_ATS
  189.  
  190.     def setCiclo_ATS(self,ciclo):
  191.         self.Ciclo_ATS = ciclo
  192.  
  193.     def getCicloATS(self):
  194.         return self.Ciclo_ATS
  195.  
  196.     def setStatus(self, status):
  197.     self.Status_ATS = status
  198.    
  199.     def getStatus(self):
  200.         return self.Status_ATS
  201.  
  202.     def setESTADO(self,estado):
  203.         self.ESTADO = estado
  204.  
  205.     def getESTADO(self):
  206.         return self.ESTADO
  207.  
  208.  
  209.  
  210. class iccClient(object):
  211.     __slots__ = ('DN_ICC','Contrato_ICC','Plan_ICC','Ciclo_ICC','Status_ICC')
  212.     def __init__(self,tm_code,dn,co_id,plan,ciclo,status):
  213.         #Datos para conciliar de ICC        
  214.         self.DN_ICC = dn
  215.         self.Contrato_ICC = co_id
  216.         self.Plan_ICC = plan
  217.         self.Ciclo_ICC = ciclo
  218.         self.Status_ICC = status
  219.  
  220.     def setDN_ICC(self,dn):
  221.         self.DN_ICC = dn
  222.        
  223.     def getDN_ICC(self):
  224.         return self.DN_ICC
  225.  
  226.     def setContrato_ICC(self,co_id):
  227.         self.Contrato_ICC = co_id
  228.  
  229.     def getContrato_ICC(self):
  230.         return self.Contrato_ICC
  231.  
  232.     def setPlanICC(self,Plan):
  233.         self.Plan_ICC = Plan
  234.  
  235.     def getPlanICC(self):
  236.         return self.Plan_ICC
  237.  
  238.     def setCiclo_ICC(self,ciclo):
  239.         self.Ciclo_ICC = ciclo
  240.  
  241.     def getCicloICC(self):
  242.         return self.Ciclo_ICC
  243.  
  244.     def setStatus(self, status):
  245.     self.Status_ICC = status
  246.    
  247.     def getStatus(self):
  248.         return self.Status_ICC
  249.  
  250.  
  251.  
  252.  
  253. class bscsClient:
  254.     __slots__ = ('TM_CODE','DN_BSCS','Contrato_BSCS','Plan_BSCS','Ciclo_BSCS','Status_BSCS')
  255.     def __init__(self,tm_code,dn,co_id,plan,ciclo,status):
  256.         #Datos para conciliar de BSCS iX.
  257.         self.TM_CODE = tm_code
  258.         self.DN_BSCS = dn
  259.         self.Contrato_BSCS = co_id
  260.         self.Plan_BSCS = plan
  261.         self.Ciclo_BSCS = ciclo        
  262.         self.Status_BSCS = status
  263.  
  264.     def setTM_CODE(self,tm_code):
  265.         self.TN_CODE = tm_code
  266.  
  267.     def getTM_CODE(self):
  268.         return self.TM_CODE
  269.  
  270.     def setDN(self,dn):
  271.         self.DN_BSCS = dn
  272.  
  273.     def getDN(self):
  274.         return self.DN_BSCS
  275.    
  276.     def setContrato_BSCS(self,co_id):
  277.         self.Contrato_BSCS = co_id
  278.  
  279.     def getContrato_BSCS(self):
  280.         return self.Contrato_BSCS
  281.  
  282.     def setPlanBSCS(self,Plan):
  283.         self.Plan_BSCS = Plan
  284.  
  285.     def getPlanBSCS(self):
  286.         return self.Plan_BSCS
  287.  
  288.     def setCiclo_BSCS(self,ciclo):
  289.         self.Ciclo_BSCS = ciclo
  290.  
  291.     def getCicloBSCS(self):
  292.         return self.Ciclo_BSCS
  293.  
  294.     def setStatus(self, status):
  295.     self.Status_BSCS = status
  296.    
  297.     def getStatus(self):
  298.         return self.Status_BSCS    
  299. ======================================================================================
  300. termina archivo objetosICC.py
  301. ======================================================================================
  302.  
  303.  
  304. ======================================================================================
  305. Info resultado de prueba.
  306. ======================================================================================
  307. DN_ATS: 526681780723
  308. DN_ATS: 523316150062
  309. DN_ATS: 525545963472
  310. DN_ATS: 525519919301
  311. DN_ATS: 525546028869
  312. DN_ATS: 524424101997
  313. DN_ATS: 524432792820
  314. DN_ATS: 527442167458
  315. DN_ATS: 527442167453
  316. DN_ATS: 527442167451
  317. DN_ATS: 525545963485
  318. DN_ATS: 528211230736
  319. DN_ATS: 527772748343
  320.  
  321. ======================================================================================
  322. info de extraccion de prueba. ARCHIVO 1.
  323. ======================================================================================
  324. bash-3.1$ head extract_ats_20100514.txt
  325. 3188530,527223055354,01,a,CELITE15,AC
  326. 2393066,525510419451,01,a,CELITE15,AC
  327. 4319021,524421253262,01,a,CELITE15,AC
  328. 5654566,525510887035,01,a,CELITE15,AC
  329. 6047740,525527353371,01,a,CELITE15,AC
  330. 5313883,525510889299,01,a,CELITE15,AC
  331. 4322055,525510890351,01,a,CELITE15,AC
  332. 2231446,525531874232,04,a,CELITE15,AC
  333. 4973290,525527353389,01,a,CELITE15,AC
  334. 2232434,525531874523,01,a,CELITE15,AC
  335.  
  336. ======================================================================================
  337. info de extraccion de prueba. ARCHIVO 2
  338. ======================================================================================
  339. bash-3.1$ head extract_bscs_20100514.txt
  340. 3315,6418462,527224925942,10,a,CPLUS015
  341. 3315,6498330,526673911952,10,a,CPLUS015
  342. 3315,7206590,524442655775,10,a,CPLUS015
  343. 3328,6418519,524442577375,10,a,CPLUS715
  344. 3315,6418588,524773067380,08,a,CPLUS015
  345. 3315,6418567,525531867934,08,a,CPLUS015
  346. 3315,6418574,523411301168,10,a,CPLUS015
  347. 3315,6419489,523316094029,10,a,CPLUS015
  348. 3319,6418626,524951083938,10,a,CPLUS215
  349. 3319,6418872,525545967139,05,a,CPLUS215
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement