Example #1
0
        public Boolean Actualizar(Decimal ID_EMPRESA, String ACTIVO, System.DateTime FCH_INGRESO, String NIT_EMPRESA, String ACT_ECO,
            String RAZ_SOCIAL, String DIR_EMP, String CIU_EMP, String TEL_EMP, String CUB_CIUDADES, String NOM_REP_LEGAL, String CC_REP_LEGAL,
            String TIPO_EMPRESA, String CIU_ORG_NEG, Int32 NUM_EMPLEADOS, String USU_MOD, String FAC_NAL,
            Decimal ID_ALIANZA, Int32 DIG_VER, String EMP_ESTADO, String EMP_EXC_IVA, String TEL_EMP1, String NUM_CELULAR, String ID_ACTIVIDAD, Decimal ID_GRUPO_EMPRESARIAL,
            List<cobertura> coberturas, String ID_CIUDAD_CC_REP_LEGAL, historialActivacion activacion, String ID_SERVICIO, String TIP_DOC_REP_LEGAL, List<empresasRiesgos> listaRiesgos, String RAZ_SOCIAL_ANTERIOR)
        {
            Decimal ID_VERSIONAMIENTO = 0;
            Boolean realizarVersionamientoManual = true;
            Boolean continuarNormalmente = true;
            Conexion conexion = new Conexion(Empresa);
            ManualServicio _manual = new ManualServicio(Empresa, Usuario);
            conexion.IniciarTransaccion();

            Boolean verificador = true;
            try
            {
                realizarVersionamientoManual = _manual.EmpresaConManualDeServicioCreado(ID_EMPRESA, conexion);

                DataTable tablaDatosAnteriores = _manual.ObtenerInfoRegistroTabla(diccionarioCamposVenEmpresas, "VEN_EMPRESAS", "ID_EMPRESA", ID_EMPRESA.ToString(), conexion);

                if (ActualizarRegistroVEN_EMPRESAS(ID_EMPRESA, ACTIVO, FCH_INGRESO, NIT_EMPRESA, ACT_ECO, RAZ_SOCIAL, DIR_EMP, CIU_EMP, TEL_EMP, CUB_CIUDADES, NOM_REP_LEGAL, CC_REP_LEGAL, TIPO_EMPRESA, CIU_ORG_NEG, NUM_EMPLEADOS, USU_MOD, FAC_NAL, ID_ALIANZA, DIG_VER, EMP_ESTADO, EMP_EXC_IVA, TEL_EMP1, NUM_CELULAR, ID_ACTIVIDAD, ID_GRUPO_EMPRESARIAL, ID_CIUDAD_CC_REP_LEGAL, ID_SERVICIO, TIP_DOC_REP_LEGAL, conexion) == false)
                {
                    conexion.DeshacerTransaccion();
                    verificador = false;
                }
                else
                {
                    DataTable tablaDatosNuevos = _manual.ObtenerInfoRegistroTabla(diccionarioCamposVenEmpresas, "VEN_EMPRESAS", "ID_EMPRESA", ID_EMPRESA.ToString(), conexion);

                    if (realizarVersionamientoManual == true)
                    {
                        ID_VERSIONAMIENTO = _manual.DeterminarYRegistrarModificacionesEnCampos(diccionarioCamposVenEmpresas, tablaDatosAnteriores, tablaDatosNuevos, ID_VERSIONAMIENTO, ID_EMPRESA, ManualServicio.ListaSecciones.Comercial, ManualServicio.AccionesManual.Actualizar, conexion);
                        if (ID_VERSIONAMIENTO == -1)
                        {
                            conexion.DeshacerTransaccion();
                            verificador = false;
                            continuarNormalmente = false;
                            ID_VERSIONAMIENTO = 0;
                        }
                    }

                    if (continuarNormalmente == true)
                    {
                        cobertura _cobertura = new cobertura(Empresa);
                        Boolean eliminarCobertura = true;
                        Boolean insertarCobertura = true;

                        DataTable tablaCoberturaActual = _cobertura.obtenerCoberturaDeUnCliente(ID_EMPRESA, conexion);

                        for (int i = 0; i < tablaCoberturaActual.Rows.Count; i++)
                        {
                            DataRow filaCoberturaActual = tablaCoberturaActual.Rows[i];
                            String ID_CIUDAD_COBERTURA_ACTUAL = filaCoberturaActual["Código Ciudad"].ToString().Trim();

                            eliminarCobertura = true;

                            foreach (cobertura c in coberturas)
                            {
                                if (c.IDCIUDAD == ID_CIUDAD_COBERTURA_ACTUAL)
                                {
                                    eliminarCobertura = false;
                                    break;
                                }
                            }

                            if (eliminarCobertura == true)
                            {
                                if (realizarVersionamientoManual == true)
                                {
                                    ID_VERSIONAMIENTO = _manual.RegistrarDesactivacionRegistroTabla(ID_EMPRESA, ManualServicio.ListaSecciones.Comercial, ManualServicio.AccionesManual.Eliminar, "COBERTURA", "Cobertura", ID_CIUDAD_COBERTURA_ACTUAL, ID_VERSIONAMIENTO, conexion);
                                    if (ID_VERSIONAMIENTO == -1)
                                    {
                                        conexion.DeshacerTransaccion();
                                        verificador = false;
                                        continuarNormalmente = false;
                                        ID_VERSIONAMIENTO = 0;
                                        break;
                                    }
                                }

                                if (continuarNormalmente == true)
                                {
                                    if (_cobertura.EliminarUnaCiudadDeLaCoberturaDeCliente(ID_EMPRESA, ID_CIUDAD_COBERTURA_ACTUAL, Usuario, conexion) == false)
                                    {
                                        MensajeError = _cobertura.MensajeError;
                                        conexion.DeshacerTransaccion();
                                        verificador = false;
                                        break;
                                    }
                                }
                            }
                        }

                        foreach (cobertura c in coberturas)
                        {
                            insertarCobertura = true;

                            for (int i = 0; i < tablaCoberturaActual.Rows.Count; i++)
                            {
                                DataRow filaCoberturaActual = tablaCoberturaActual.Rows[i];
                                String ID_CIUDAD_COBERTURA_ACTUAL = filaCoberturaActual["Código Ciudad"].ToString().Trim();

                                if (c.IDCIUDAD == ID_CIUDAD_COBERTURA_ACTUAL)
                                {
                                    insertarCobertura = false;
                                    break;
                                }
                            }

                            if (insertarCobertura == true)
                            {
                                if (realizarVersionamientoManual == true)
                                {
                                    ID_VERSIONAMIENTO = _manual.RegistrarInsersionRegistroTabla(ID_VERSIONAMIENTO, ManualServicio.ListaSecciones.Comercial, "COBERTURA", "Cobertura", c.IDCIUDAD, ManualServicio.AccionesManual.Insertar, ID_EMPRESA, conexion);
                                    if (ID_VERSIONAMIENTO == -1)
                                    {
                                        conexion.DeshacerTransaccion();
                                        verificador = false;
                                        continuarNormalmente = false;
                                        ID_VERSIONAMIENTO = 0;
                                        break;
                                    }
                                }

                                if (continuarNormalmente == true)
                                {
                                    if (_cobertura.Adicionar(ID_EMPRESA, c.IDCIUDAD, Usuario, conexion) == false)
                                    {
                                        verificador = false;
                                        conexion.DeshacerTransaccion();
                                        MensajeError = _cobertura.MensajeError;
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                if (_cobertura.ActualizarPermisosParaCiudaYEmpresaEnGeneral(ID_EMPRESA, c.IDCIUDAD, Usuario, conexion) == false)
                                {
                                    verificador = false;
                                    conexion.DeshacerTransaccion();
                                    MensajeError = _cobertura.MensajeError;
                                    break;
                                }
                            }
                        }

                        if (verificador == true)
                        {
                            empresasRiesgos _empresasRiesgos = new empresasRiesgos(Empresa, Usuario);
                            DataTable tablaRiesgosActuales = _empresasRiesgos.ObtenerRoesgosPorEmpresa(ID_EMPRESA, conexion);

                            Boolean riesgoEncontrado = false;

                            foreach (DataRow filaRiegosActuales in tablaRiesgosActuales.Rows)
                            {
                                riesgoEncontrado = false;
                                foreach (empresasRiesgos filaRiesgosNuevos in listaRiesgos)
                                {
                                    if (filaRiesgosNuevos.DESCRIPCION_RIESGO == filaRiegosActuales["DESCRIPCION_RIESGO"].ToString())
                                    {
                                        riesgoEncontrado = true;
                                        break;
                                    }
                                }

                                if (riesgoEncontrado == false)
                                {
                                    if (_empresasRiesgos.desactivarRiesgoParaEmpresa(ID_EMPRESA, filaRiegosActuales["DESCRIPCION_RIESGO"].ToString(), conexion) == false)
                                    {
                                        conexion.DeshacerTransaccion();
                                        verificador = false;
                                        break;
                                    }
                                }
                            }

                            if (verificador == true)
                            {
                                foreach (empresasRiesgos filaRiesgosNuevos in listaRiesgos)
                                {
                                    if (_empresasRiesgos.Adicionar(ID_EMPRESA, filaRiesgosNuevos.DESCRIPCION_RIESGO, conexion) == 0)
                                    {
                                        verificador = false;
                                        MensajeError = _empresasRiesgos.MensajeError;
                                        conexion.DeshacerTransaccion();
                                        break;
                                    }
                                }

                                if (verificador == true)
                                {
                                    historialActivacion _historialActivacion = new historialActivacion(Empresa);
                                    if (_historialActivacion.Adicionar(ID_EMPRESA, activacion.CLASE_REGISTRO, activacion.COMENTARIO, USU_MOD, conexion) == false)
                                    {
                                        conexion.DeshacerTransaccion();
                                        verificador = false;
                                        MensajeError = _historialActivacion.MensajeError;
                                    }
                                    else
                                    {
                                        if (RAZ_SOCIAL != RAZ_SOCIAL_ANTERIOR)
                                        {
                                            if (AdicionarCambiorazonSocial(ID_EMPRESA, RAZ_SOCIAL_ANTERIOR, RAZ_SOCIAL, Usuario, conexion) <= 0)
                                            {
                                                conexion.DeshacerTransaccion();
                                                verificador = false;
                                            }
                                        }
                                        else
                                        {
                                            verificador = true;
                                        }

                                        if (verificador == true)
                                        {
                                            conexion.AceptarTransaccion();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                verificador = false;
                MensajeError = ex.Message;
            }
            finally
            {
                conexion.Desconectar();
            }

            return verificador;
        }