Ejemplo n.º 1
0
def insertarCampanaEjecutivos(campanasEjecutivos: dict, fechaProceso):
    try:
        db = conectorDB()
        camapanasPeriodoEjecutivos = periodoCampanasProactiva(fechaProceso)
        campanasPorPeriodo = []
        cursor = db.cursor()

        for valores in campanasEjecutivos.values():
            for polizas in valores.values():
                idEjecutivo = polizas['ID_EMPLEADO']
                if camapanasPeriodoEjecutivos.get(idEjecutivo):
                    campanasPorPeriodo += setearCampanasProactiva(polizas, camapanasPeriodoEjecutivos[idEjecutivo]['ID'])

        LOG_PROCESO_PROACTIVA.setdefault(len(LOG_PROCESO_PROACTIVA)+1, {'INSERTAR_CAMPANAS_EJECUTIVOS': '-----------------------------------------------------' })
        campanasExistentes = CampanasPorPeriodoProactiva(fechaProceso)
        if limpiarTablaCamapanasEjecutivos(fechaProceso) and limpiarPolizasReliquidasAnterior(fechaProceso):
            LOG_PROCESO_PROACTIVA.setdefault(len(LOG_PROCESO_PROACTIVA)+1, {'LIMPIAR_CAMAPAÑAS_EJECUTIVOS': 'EliminarCampanaEjecutivos;Se eliminaron {0} Camapaña(s) existentes'.format(campanasExistentes)})

        if len(campanasPorPeriodo) > 0:
            sql = """INSERT INTO proactiva_campanas_ejecutivos (id_periodo_ejecutivo, numero_poliza, campana_id, nombre_campana, estado_retencion, cobranza_pro, pacpat_pro, cobranza_rel_pro, pacpat_rel_pro, estado_pro, estado_ut_pro, fecha_cierre, reliquidacion, numero_poliza_certificado, fecha_reliquidacion) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL);"""
            cursor.executemany(sql, campanasPorPeriodo)
            db.commit()
        return True
    except Exception as e:
        db.rollback()
        raise Exception('Error al insertar Campañas de Ejecutivos del Periodo: %s' % (e))
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 2
0
def CampanasPorPeriodoReactiva(fechaPeriodo):
    try:
        db = conectorDB()
        cursor = db.cursor()
        sql = """SELECT count(*) FROM reactiva_campanas_ejecutivos LEFT JOIN reactiva_campanas_periodo_ejecutivos pcpe ON reactiva_campanas_ejecutivos.id_periodo_ejecutivo = pcpe.id
        WHERE pcpe.periodo = ?"""
        cantidadCampanas = cursor.execute(sql, (fechaPeriodo)).fetchone()
        return cantidadCampanas[0]
    except Exception as e:
        raise Exception('Error buscar Camapañas CamapanasPorPeriodo: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 3
0
def ReliquidacionesPorPeriodo(fechaPeriodo):
    try:
        db = conectorDB()
        cursor = db.cursor()

        sql = """SELECT count(*) FROM retenciones_por_reliquidar WHERE fecha_proceso = ?"""
        cantidadCampanas = cursor.execute(sql, (fechaPeriodo)).fetchone()
        return cantidadCampanas[0]
    except Exception as e:
        raise Exception('Error buscar Polizas ReliquidacionesPorPeriodo(): %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 4
0
def insertarCamphnaCro(nombresCampahnasNuevas):
    try:
        db = conectorDB()
        cursor = db.cursor()
        sql = """INSERT INTO codigos_cro (nombre) VALUES (?);"""
        cursor.executemany(sql, nombresCampahnasNuevas)
        db.commit()
        return True
    except Exception as e:
        raise Exception(
            'Error al insertar nombresCampahnasNuevas: {0}'.format(e))
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 5
0
def updateEjecutivoFechaDesv(periodo):
    try:
        db = conectorDB()
        cursor = db.cursor()
        ultimoDia = ultimoDiaMes(periodo)
        sql = """UPDATE ejecutivos SET fecha_desvinculacion= ? WHERE fecha_desvinculacion is NULL"""
        cursor.execute(sql, (ultimoDia, ))
        db.commit()
        return True
    except Exception as e:
        raise Exception('Error al actualizar tabla de ejecutivos | %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 6
0
def listaEstadoUtDesc():
    try:
        db = conectorDB()
        cursor = db.cursor()
        listaEstadoUt = dict()
        sql = """SELECT id, descripcion FROM estadout_pro_reac order by id"""
        cursor.execute(sql)
        for (id, descripcion) in cursor:
            listaEstadoUt.setdefault(id, descripcion)
        return listaEstadoUt
    except Exception as e:
        raise Exception('Error def listaEstadoUtDesc(): %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 7
0
def buscarCamphnasDb():
    try:
        db = conectorDB()
        cursor = db.cursor()
        campanhas = dict()
        sql = """SELECT nombre FROM codigos_cro"""
        cursor.execute(sql)
        for (nombre,) in cursor:
            campanhas[nombre] = {'NOMBRE': nombre}
        return campanhas
    except Exception as e:
        raise Exception('Error buscarCamphnasDb: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 8
0
def listaEstadoUtNoContacto():
    try:
        db = conectorDB()
        cursor = db.cursor()
        listaEstadoUt = dict()
        sql = """SELECT descripcion FROM estadout_pro_reac WHERE estado_contacto = 0"""
        cursor.execute(sql)
        for (descripcion,) in cursor:
            listaEstadoUt.setdefault(descripcion, 1)
        return listaEstadoUt
    except Exception as e:
        raise Exception('Error listaEstadoUtNoContacto: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 9
0
def listaEstadoRetencionProactiva():
    try:
        db = conectorDB()
        cursor = db.cursor()
        listaSalida = dict()
        sql = """SELECT estado_retencion, id FROM proactiva_estados_retencion order by id"""
        cursor.execute(sql)
        for (estado_retencion, id) in cursor:
            listaSalida.setdefault(estado_retencion, id)
        return listaSalida
    except Exception as e:
        raise Exception('Error def listaEstadoRetencionProactiva(): %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 10
0
def limpiarTablaCamapanasEjecutivos(fechaProceso):
    try:
        db = conectorDB()
        cursor = db.cursor()

        sql = """DELETE FROM proactiva_campanas_ejecutivos WHERE id_periodo_ejecutivo IN (SELECT id FROM proactiva_campanas_periodo_ejecutivos WHERE periodo = ?);"""
        cursor.execute(sql, fechaProceso)
        db.commit()
        return True
    except Exception as e:
        db.rollback()
        raise Exception('Error al eliminar Campañas de Ejecutivos existentes: %s' % (e))
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 11
0
def periodoCampanasProactiva(fechaPeriodo):
    try:
        db = conectorDB()
        cursor = db.cursor()
        campanasEjecutivos = dict()
        sql = """SELECT id, id_ejecutivo, periodo FROM proactiva_campanas_periodo_ejecutivos WHERE periodo = ?"""
        cursor.execute(sql, (fechaPeriodo))
        for (id, id_ejecutivo, periodo) in cursor:
            campanasEjecutivos[id_ejecutivo] = {'ID': id, 'ID_EMPLEADO': id_ejecutivo, 'PERIODO': periodo}
        return campanasEjecutivos
    except Exception as e:
        raise Exception('Error buscar Polizas para periodoCampanasEjecutivos: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 12
0
def buscarEjecutivosDb():
    try:
        db = conectorDB()
        cursor = db.cursor()
        ejecutivos = dict()
        sql = """SELECT id, id_empleado, plataforma FROM ejecutivos"""
        cursor.execute(sql)
        for (id, id_empleado, plataforma) in cursor:
            ejecutivos[id_empleado] = {'ID': id, 'ID_EMEPLEADO': id_empleado, 'PLATAFORMA': plataforma}
        return ejecutivos
    except Exception as e:
        raise Exception('Error buscarEjecutivosDb: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 13
0
def estadoRetencionReacDesc():
    try:
        db = conectorDB()
        cursor = db.cursor()
        listaSalida = dict()
        sql = """SELECT id, estado_retencion FROM reactiva_estados_retencion order by id"""
        cursor.execute(sql)
        for (id, estado_retencion) in cursor:
            listaSalida.setdefault(id, estado_retencion)
        return listaSalida
    except Exception as e:
        raise Exception('Error def estadoRetencionReacDesc(): %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 14
0
def buscarPolizasReliquidar(mesAnterior):
    try:
        db = conectorDB()
        cursor = db.cursor()
        polizasParaRequilidar = dict()
        sql = """SELECT id_ejecutivo, numero_poliza, campana_id, nombre_campana, cobranza_pro, pacpat_pro, cobranza_rel_pro, pacpat_rel_pro, estado_pro, estado_ut_pro, periodo, fecha_reliquidacion, fecha_cierre, numero_poliza_certificado FROM proactiva_campanas_ejecutivos LEFT JOIN proactiva_campanas_periodo_ejecutivos pcpe ON proactiva_campanas_ejecutivos.id_periodo_ejecutivo = pcpe.id WHERE pcpe.periodo = ? AND reliquidacion = 1 AND fecha_reliquidacion is NULL"""
        cursor.execute(sql, (mesAnterior))
        for (id_ejecutivo, numero_poliza, campana_id, nombre_campana, cobranza_pro, pacpat_pro, cobranza_rel_pro, pacpat_rel_pro, estado_pro, estado_ut_pro, periodo, fecha_reliquidacion, fecha_cierre, numero_poliza_certificado) in cursor:
            pk = '{0}_{1}_{2}'.format(campana_id, campana_id, numero_poliza)
            polizasParaRequilidar[pk] = {'COBRANZA_RL_PRO': cobranza_rel_pro, 'PACPAT_RL_PRO': pacpat_rel_pro, 'ESTADO_PRO': estado_pro, 'ESTADO_UT_PRO': estado_ut_pro, 'CODIGO_EMPLEADO': id_ejecutivo, 'NOMBRE_CAMPANA': nombre_campana, 'CAMPAÑA_ID': campana_id, 'POLIZA': numero_poliza, 'FECHA_CIERRE': fecha_cierre, 'NUMERO_POLIZA_CERTIFICADO': numero_poliza_certificado}
        return polizasParaRequilidar
    except Exception as e:
        raise Exception('Error buscarPolizasReliquidar: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 15
0
def limpiarPolizasReliquidasAnterior(fechaProceso):
    try:
        db = conectorDB()
        cursor = db.cursor()
        mesAnterior = fechaMesAnterior(fechaProceso)

        sql = """UPDATE proactiva_campanas_ejecutivos SET fecha_reliquidacion = NULL FROM proactiva_campanas_ejecutivos WHERE  id_periodo_ejecutivo IN (SELECT id FROM proactiva_campanas_periodo_ejecutivos WHERE periodo = ?) AND reliquidacion = 1 AND fecha_reliquidacion = ?;"""
        cursor.execute(sql, (mesAnterior, fechaProceso))
        db.commit()
        return True
    except Exception as e:
        db.rollback()
        raise Exception('Error al actualizar Campañas por Reliquidar del mes anterior: %s' % (e))
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 16
0
def insertarPeriodoCampanaEjecutivos(campanasEjecutivos: dict, fechaProceso):
    try:
        db = conectorDB()
        cursor = db.cursor()
        ejecutivosExistentes = periodoCampanasProactiva(fechaProceso)
        periodoEjecutivos = convertirListaProactiva(campanasEjecutivos, ejecutivosExistentes, fechaProceso)
        if len(periodoEjecutivos) > 0:
            sql = """INSERT INTO proactiva_campanas_periodo_ejecutivos (id_ejecutivo, periodo) VALUES (?, ?);"""
            cursor.executemany(sql, periodoEjecutivos)
            db.commit()
        return True
    except Exception as e:
        db.rollback()
        raise Exception('Error al insertar Periodo de Ejecutivos: %s' % (e))
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 17
0
def buscarRutEjecutivosDb(ultimoDiaMes, primerDiaMes):
    try:
        db = conectorDB()
        cursor = db.cursor()
        ejecutivos = dict()
        sql = """SELECT id_empleado, plataforma, fecha_ingreso, fecha_desvinculacion FROM ejecutivos WHERE isnull(fecha_desvinculacion, ?) >= ?"""
        cursor.execute(sql, (ultimoDiaMes, primerDiaMes))
        for (id_empleado, plataforma, fecha_ingreso, fecha_desvinculacion) in cursor:
            if fecha_desvinculacion is not None:
                fecha_desvinculacion = fecha_desvinculacion.strftime("%d-%m-%Y")
            ejecutivos[id_empleado] = {'ID_EMPLEADO': id_empleado, 'PLATAFORMA': plataforma, 'FECHA_INGRESO': fecha_ingreso.strftime("%d-%m-%Y"), 'FECHA_DESVINCULACION': fecha_desvinculacion}
        return ejecutivos
    except Exception as e:
        raise Exception('Error buscarRutEjecutivosDb: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 18
0
def buscarEjecutivosVinculados(ultimoDiaMes, primerDiaMes):
    try:
        db = conectorDB()
        cursor = db.cursor()
        ejecutivos = dict()
        sql = """SELECT rut, nombre_rrh, plataforma, fecha_ingreso, fecha_desvinculacion FROM ejecutivos WHERE isnull(fecha_desvinculacion, ?) >= ?"""
        cursor.execute(sql, (ultimoDiaMes, primerDiaMes))
        for (rut, nombre_rrh, plataforma, fecha_ingreso, fecha_desvinculacion) in cursor:
            if fecha_desvinculacion is not None:
                fecha_desvinculacion = fecha_desvinculacion.strftime("%d-%m-%Y")
            apellidoPaterno, apellidoMaterno, nombres = separarNombreApellido(nombre_rrh)
            ejecutivos[rut] = {'RUT': rut, 'APELLIDO_PATERNO': apellidoPaterno, 'APELLIDO_MATERNO': apellidoMaterno, 'NOMBRES': nombres, 'PLATAFORMA': plataforma, 'FECHA_INGRESO': fecha_ingreso.strftime("%d-%m-%Y"), 'FECHA_DESVINCULACION': fecha_desvinculacion}
        return ejecutivos
    except Exception as e:
        raise Exception('Error buscarEjecutivosAllDb: %s' % e)
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 19
0
def actualizarPolizasReliquidadas(polizasReliquidadas, fechaProceso, mesAnterior):
    try:
        db = conectorDB()
        cursor = db.cursor()
        polizasParaActualizar = []

        for valores in polizasReliquidadas.values():
            polizasParaActualizar.append([fechaProceso, valores['POLIZA'], valores['CAMPAÑA_ID'], valores['CODIGO_EMPLEADO'], mesAnterior])

        sql = """UPDATE proactiva_campanas_ejecutivos SET fecha_reliquidacion = ? WHERE numero_poliza = ? AND campana_id = ? AND id_periodo_ejecutivo = (SELECT id FROM proactiva_campanas_periodo_ejecutivos WHERE id_ejecutivo = ? AND periodo = ?) AND reliquidacion = 1 AND fecha_reliquidacion IS NULL;"""
        cursor.executemany(sql,polizasParaActualizar)
        db.commit()
        return True
    except Exception as e:
        db.rollback()
        raise Exception('Error al actualizar polizas reliquidadas: %s' % (e))
    finally:
        cursor.close()
        db.close()
Ejemplo n.º 20
0
def listaEstadoUtCro():
    try:
        db = conectorDB()
        cursor = db.cursor()
        listaEstadoUt = dict()
        sql = """SELECT descripcion, id FROM estadout_cro order by id"""
        cursor.execute(sql)
        for (descripcion, id) in cursor:
            listaEstadoUt.setdefault(str(descripcion).upper(), id)
        return listaEstadoUt
    except Exception as e:
        raise Exception('Error def listaEstadoUtCro(): %s' % e)
    finally:
        cursor.close()
        db.close()

# x = ReliquidacionesPorPeriodo('01/12/2020')
# x = buscarPolizasReliquidar('01/12/2020')
# print(CampanasPorPeriodoReactiva('01/01/2021'))
Ejemplo n.º 21
0
def insertarEjecutivo(empleadosLista):
    try:
        db = conectorDB()
        cursor = db.cursor()
        sql = """MERGE ejecutivos AS target
                USING (VALUES (?)) AS source (id_empleado)
                ON (source.id_empleado = target.id_empleado)
                WHEN MATCHED
                THEN UPDATE
                    SET target.plataforma = ?,
                        target.fecha_desvinculacion = NULL
                WHEN NOT MATCHED
                THEN INSERT (id_empleado, plataforma, fecha_ingreso, fecha_desvinculacion)
                    VALUES (?, ?, ?, NULL);"""
        cursor.executemany(sql, empleadosLista)
        db.commit()
        return True
    except Exception as e:
        raise Exception('Error al insertarEjecutivo: {0}'.format(e))
    finally:
        cursor.close()
        db.close()