Ejemplo n.º 1
0
        private void Guardar(bool pFgCerrarVentana)
        {
            XElement vXmlRespuesta = vPlantilla.GuardarFormulario();

            if (UtilXML.ValorAtributo <bool>(vXmlRespuesta.Attribute("FG_VALIDO")))
            {
                List <UDTT_ARCHIVO> vLstArchivos = new List <UDTT_ARCHIVO>();
                foreach (E_DOCUMENTO d in vLstDocumentos)
                {
                    string vFilePath = Server.MapPath(Path.Combine(ContextoApp.ClRutaArchivosTemporales, d.GetDocumentFileName()));
                    if (File.Exists(vFilePath))
                    {
                        vLstArchivos.Add(new UDTT_ARCHIVO()
                        {
                            ID_ITEM    = d.ID_ITEM,
                            ID_ARCHIVO = d.ID_ARCHIVO,
                            NB_ARCHIVO = d.NB_DOCUMENTO,
                            FI_ARCHIVO = File.ReadAllBytes(vFilePath)
                        });
                    }
                }
                if (vIdEmpleadoVS != null && vIdEmpleadoVS != 0)
                {
                    vTipoTransaccion = "A";
                }
                else
                {
                    vTipoTransaccion = "I";
                }


                if (vTipoTransaccion == "I")
                {
                    LicenciaNegocio oNegocio   = new LicenciaNegocio();
                    var             vEmpleados = oNegocio.ObtenerLicenciaVolumen(pFG_ACTIVO: true).FirstOrDefault();
                    if (vEmpleados != null)
                    {
                        if (vEmpleados.NO_TOTAL_ALTA >= ContextoApp.InfoEmpresa.Volumen)
                        {
                            UtilMensajes.MensajeResultadoDB(rwmAlertas, "Se ha alcanzado el máximo número de empleados para la licencia y no es posible agregar más.", E_TIPO_RESPUESTA_DB.ERROR, 400, 150, "");
                            return;
                        }
                    }
                }



                vXmlEmpleadoPlantilla = vXmlRespuesta.Element("PLANTILLA").ToString();
                EmpleadoNegocio nEmpleado  = new EmpleadoNegocio();
                E_RESULTADO     vResultado = nEmpleado.InsertaActualizaEmpleado(vXmlRespuesta.Element("PLANTILLA"), vIdEmpleadoVS, vLstArchivos, vLstDocumentos, vClUsuario, vNbPrograma, vTipoTransaccion);
                string          vMensaje   = vResultado.MENSAJE.Where(w => w.CL_IDIOMA.Equals(vClIdioma.ToString())).FirstOrDefault().DS_MENSAJE;

                //resultado obtener el idEmpleado
                if (vResultado.CL_TIPO_ERROR == E_TIPO_RESPUESTA_DB.SUCCESSFUL)
                {
                    var idEmpleado = 0;
                    var esNumero   = int.TryParse(vResultado.MENSAJE.Where(x => x.CL_IDIOMA == "ID_EMPLEADO").FirstOrDefault().DS_MENSAJE, out idEmpleado);
                    vIdEmpleadoVS = idEmpleado;
                    vIdEmpleado   = idEmpleado;
                }

                if (pFgCerrarVentana)
                {
                    UtilMensajes.MensajeResultadoDB(rwmAlertas, vMensaje, vResultado.CL_TIPO_ERROR, pCallBackFunction: "OnCloseUpdate");
                }
                else
                {
                    UtilMensajes.MensajeResultadoDB(rwmAlertas, vMensaje, vResultado.CL_TIPO_ERROR, pCallBackFunction: "");
                    grdCompensacion.Rebind();
                    Response.Redirect(Request.RawUrl);
                }
            }
            else
            {
                string vMensajes   = String.Empty;
                int    vNoMensajes = 0;
                foreach (XElement vXmlMensaje in vXmlRespuesta.Element("MENSAJES").Elements("MENSAJE"))
                {
                    vMensajes += vXmlMensaje.Value;
                    vNoMensajes++;
                }
                UtilMensajes.MensajeResultadoDB(rwmAlertas, vMensajes, E_TIPO_RESPUESTA_DB.WARNING, pAlto: (120 + (vNoMensajes * 16)));
            }
        }