Advertisement
Guest User

Untitled

a guest
May 25th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.88 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.  
  323. info de extraccion de prueba. ARCHIVO 1.
  324. ======================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement