def _make_PGServer(self, data_path): """initialize a database instance, and start the database service ..note: before start the service, some parameters in configuration should be added or changed, they are mainly used to turn on enough logs """ logger.info('TestMode:check,try to start a PG server......') DBServer.initDB(data_path) DBServer.set_dbconf( data_path, port=_PORT, log_autovacuum_min_duration='0', log_checkpoints='on', #log_line_prefix="'%m [%p] %q%a '", log_lock_waits='on', log_temp_files='128kB', max_prepared_transactions='2') logger.info('TestMode:check,DONE to config file......') self.server = DBServer.start(data_path, self.checker._logs_dir) while not self.server.is_ready(): logger.debug("keep trying to start the PostgreSQL service") time.sleep(1) logger.info('PG server is ready,start to run test......')
def _clear_PGServer(self, data_path): #DBServer.stopDB(self.server,data_path) logger.info('TestMode:check,try to stop PG server......') DBServer.stopDB(data_path, self.checker._logs_dir) DBServer.removeDB(data_path) if DBServer.check_database_data_exist(data_path): raise Exception("fail to remove the DB data") logger.info('PG server is cleared')
def devolverCuentas(): db = DBServer() ejercicio = request.json['ejercicio'] orden = "Select cuenta,nro_cuenta,num_sucursal from cta_cuentas where ejercicio = {} and cod_banco = 'BP' " datos = db.contestarQuery(orden.format(ejercicio)) datosFinales = [] for cuenta in datos: datosFinales.append({ 'nro_cuenta': cuenta[0], 'cuenta': cuenta[1], 'sucursal': cuenta[2], }) return dumps(datosFinales)
def _actualizarCabecera(nroresumen,saldoanterior,salida): db = DBServer() orden = 'update tes_resumenes_bancarios set saldo_ant = {} where numero = {}'.format(saldoanterior,nroresumen) salida.write(orden + '\n') db.contestarQuery(orden,None,False) db.aceptarCambios() db.desconectar()
#coding:utf8 import os if os.name != 'nt' and os.name != 'posix': from twisted.internet import epollreactor epollreactor.install() import json from dbserver import DBServer if __name__ == "__main__": servername = "dbfront" config = json.load(open("config.json", 'r')) dbconf = config.get('db') memconf = config.get('memcached') sersconf = config.get('servers', {}) masterconf = config.get('master', {}) serconfig = sersconf.get(servername) ser = DBServer() ser.config(serconfig, dbconfig=dbconf, memconfig=memconf, masterconf=masterconf) ser.start()
# coding:utf8 import os if os.name != "nt" and os.name != "posix": from twisted.internet import epollreactor epollreactor.install() import json from dbserver import DBServer if __name__ == "__main__": servername = "dbfront" config = json.load(open("config.json", "r")) dbconf = config.get("db") memconf = config.get("memcached") sersconf = config.get("servers", {}) masterconf = config.get("master", {}) serconfig = sersconf.get(servername) ser = DBServer() ser.config(serconfig, dbconfig=dbconf, memconfig=memconf, masterconf=masterconf) ser.start()
def _leerArchivo(entrada, resumen, hasta, salida): db = DBServer() lista = [] ordenTipos = "SELECT COMPROB_TIPO,ABREV_BANCARIA FROM TES_TIPO_MOVIMIENTOS_CONC WHERE CODIGO = '{}'" orden = 'INSERT INTO TES_RESUMENES_BANCARIOS_MOV(NUMERO,FECHA,ORDEN,COMPROB_TIPO,COMPROB_NRO,COD_MOV,DEBITO,CREDITO,SALDO,ESTADO,ORIGEN_TIPO,ORIGEN_NRO,FECHA_CONCILIA)\ VALUES({resumen},TO_DATE(\'{fecha}\',\'DD/MM/YYYY\'),{indice},\'{tipo}\',{comprobantenro},\'{tipomov}\',{debito},{credito},0,\'N\',\'{codbanco}\',{valorextra},NULL)' saldoanterior = 0 indice = 0 for linearaw in entrada: indice += 1 if (indice < 11): continue dic = {} linea = linearaw.split(',') if (len(linea) <= 1): continue if (linea[POSTIPO] == 'SALDO ANTERIOR'): saldoanterior = float(linea[ESTADOCAJA]) continue fecha = linea[POSFECHA] fechaObj = datetime.datetime.strptime(fecha, '%d/%m/%Y') if (fechaObj > datetime.datetime.strptime(hasta, '%d/%m/%Y')): continue signo = linea[MONTO][0] monto = linea[MONTO].replace('-', '') tipo = linea[POSTIPO] #comparo los tipos exclusivos for clave in EQUIVALENCIAS.keys(): if (clave in tipo): if (EQUIVALENCIAS[clave] == 'CM'): valorExtra = tipo[len(clave):len(clave) + 9].replace( '\n', '').replace(' ', '') comprobantenro = valorExtra elif (clave == 'BIP DB.TR.'): valorExtra = tipo[len(clave) + 8:len(clave) + 15].replace( ' ', '') comprobantenro = valorExtra else: valorExtra = tipo[len(clave) + 8:len(clave) + 20].replace( '\n', '') comprobantenro = valorExtra equivalencia = EQUIVALENCIAS[clave] break else: if (signo == '-'): equivalencia = 'DEB' else: equivalencia = 'CRED' comprobantenro = indice valorExtra = indice tipo, codbanco = db.contestarQuery(ordenTipos.format(equivalencia))[0] dic['fecha'] = fecha debito, credito = (monto, 0) if signo == '-' else (0, monto) dic['debito'] = float(debito) dic['credito'] = float(credito) dic['indice'] = indice dic['resumen'] = resumen dic['tipo'] = tipo dic['codbanco'] = codbanco dic['valorextra'] = valorExtra dic['tipomov'] = equivalencia dic['comprobantenro'] = comprobantenro salida.write(orden.format(**dic) + '\n') db.contestarQuery(orden.format(**dic), None, False) db.aceptarCambios() lista.append(orden.format(**dic)) db.desconectar() return lista, saldoanterior
def _generarCabecera(desde, hasta, cuentabanco, cuentacontable, sucursal, salida): db = DBServer() ordenConsulta = "select numero from tes_resumenes_bancarios where numero like '{}{}%' order by numero DESC".format( desde[8:], desde[3:5]) nroresumen = db.contestarQuery(ordenConsulta) print nroresumen nroBase = int('{}{}000'.format(desde[8:], desde[3:5])) if (len(nroresumen) < 1): nroresumen = int('{}{}001'.format(desde[8:], desde[3:5])) else: if (nroresumen[0][0] > 1000000): nroresumen = nroresumen[0][0] + 1 else: nroresumen = int('{}{}001'.format(desde[8:], desde[3:5])) ordenCabecera = "INSERT INTO TES_RESUMENES_BANCARIOS( NUMERO, FECHA, PERIODO1, PERIODO2, BANCO, SUCURSAL, CUENTA, CUENTA_BAN, SALDO_ANT)\ values({},{},TO_DATE('{}',\'DD/MM/YYYY\'),TO_DATE('{}',\'DD/MM/YYYY\'),'{}','{}','{}','{}',{})".format( nroresumen, 'SYSDATE', desde, hasta, 'BP', sucursal, cuentacontable, cuentabanco, 0) print db.contestarQuery('select sysdate from dual') salida.write(ordenCabecera + '\n') print ordenCabecera db.contestarQuery(ordenCabecera, None, False) db.aceptarCambios() db.desconectar() return nroresumen