//private static LinkedList<TextBox> docRequeridosTxtBxs = new LinkedList<TextBox>(); //Used for doc validations when guardar is pressed //private static LinkedList<DropDownList> docAsociadosStatuses = new LinkedList<DropDownList>(); // Used to save doc status on doc object //private static LinkedList<RequiredFieldValidator> docAsociadosValidators = new LinkedList<RequiredFieldValidator>(); // Used when I need to disable status RFVs //private static LinkedList<DocumentoRequerido> docsRequeridos = new LinkedList<DocumentoRequerido>(); // Just in case I lose data on postbacks protected void Page_Load(object sender, EventArgs e) { User user = Session["UserObj"] == null ? new User() : (User)Session["UserObj"]; if (!user.Rol.VerExtensiones) { Response.Redirect("~/Default.aspx"); } var title = (HtmlGenericControl)Master.FindControl("pageTitleSpan"); title.InnerText = Title; #region Populate horario ddl horarioDDL.Items.Add("Seleccionar"); horarioDDL2.Items.Add("Seleccionar"); for (int i = 0; i < 2; i++) { string dayTime = "AM"; if (i == 1) { dayTime = "PM"; } for (int h = 1; h < 13; h++) { for (int m = 0; m < 4; m += 3) { horarioDDL.Items.Add(h.ToString() + ":" + m.ToString() + "0" + dayTime); horarioDDL2.Items.Add(h.ToString() + ":" + m.ToString() + "0" + dayTime); } } } #endregion if (!IsPostBack) { Session.Remove("docAsociadosStatusesExt2"); Session.Remove("docsRequeridos"); NumeroControl numeroControl = new NumeroControl() { NumControlText = Request.QueryString["NumeroControl"] //NumControlText = "2015-0016" // only for testing }; try { #region Municipios LinkedList<String> municipios = new SolicitudesInicialesServicio().GetMunicipios(); municipioDDL.Items.Add("Seleccionar"); municipioSubDDL.Items.Add("Seleccionar"); municipioTrabajoDDL.Items.Add("Seleccionar"); foreach (var m in municipios) { municipioDDL.Items.Add(m); municipioSubDDL.Items.Add(m); municipioTrabajoDDL.Items.Add(m); } municipioDDL.SelectedIndex = 0; municipioSubDDL.SelectedIndex = 0; municipioTrabajoDDL.SelectedIndex = 0; #endregion //CreateDefaultAveriasGrdVwRow(); SolicitudAviso segundaExtExistente = new SegundasExtensionesServicio().GetSegundaExtension(numeroControl); extensionInicialLink.NavigateUrl = extensionInicialLink.NavigateUrl + "?NumeroControl=" + numeroControl.NumControlText + (string.IsNullOrEmpty(Request.QueryString["CorreoElectronico"]) ? string.Empty : "&CorreoElectronico=" + Request.QueryString["CorreoElectronico"]); primeraExtensionLink.NavigateUrl = primeraExtensionLink.NavigateUrl + "?NumeroControl=" + numeroControl.NumControlText + (string.IsNullOrEmpty(Request.QueryString["CorreoElectronico"]) ? string.Empty : "&CorreoElectronico=" + Request.QueryString["CorreoElectronico"]); var fechaProp = new SolicitudesInicialesServicio().GetSolicitud(numeroControl).FechaPropuesta; if (String.IsNullOrEmpty(segundaExtExistente.NumeroControl.NumControlText)) { #region Create #region Poblar tabla averias LinkedList<Averia> averias = new AveriasServicio().GetAverias(numeroControl, (int)SolicitudAviso.TiposExtensiones.Primera); Session["averias"] = averias; averiasTxtBx.Text = averias.ElementAt(0).Titulo; //CreateDefaultAveriasGrdVwRow(); // DataTable dtCurrentTable = null; // DataRow drCurrentRow = null; // /*En la primera entrada, asigna los valores al row hecho por default. Verifica si hay que crear otro. // * // * En la segunda corrida, asigna los valores al row nuevo. // * // * Para evitar usar una linea que no existe o hacer una linea de mas esta el i + 1 // * // * i + 1 si es mayor a la cantidad de filas pues me pase del total y no tengo que hacer una fila nueva // */ // for (int i = 0; i < averias.Count; i++) // { // TextBox averiaTituloTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[0].FindControl("averiaTituloTxtBx"), // averiaFechaTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[1].FindControl("averiaFechaTxtBx"), // averiaHoraTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[2].FindControl("averiaHoraTxtBx"), // averiaInfraAfectadaTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[3].FindControl("averiaInfraAfectadaTxtBx"), // averiaLugarTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[4].FindControl("averiaLugarTxtBx"); // averiaTituloTxtBx.Text = averias.ElementAt(i).Titulo; // averiaFechaTxtBx.Text = averias.ElementAt(i).Fecha.Year == 1900 // || averias.ElementAt(i).Fecha.Year == 9999 ? string.Empty // : averias.ElementAt(i).Fecha.ToShortDateString(); // averiaHoraTxtBx.Text = averias.ElementAt(i).Hora; // averiaInfraAfectadaTxtBx.Text = averias.ElementAt(i).InfraAfectada; // averiaLugarTxtBx.Text = averias.ElementAt(i).Lugar; // //Si hay que crear otro row // if ((i + 1) != averias.Count) // { // if (ViewState["averiaTbl"] != null) // { // dtCurrentTable = (DataTable)ViewState["averiaTbl"]; // drCurrentRow = dtCurrentTable.NewRow(); // dtCurrentTable.Rows[i]["titulo"] = averiaTituloTxtBx.Text; // dtCurrentTable.Rows[i]["fecha"] = averiaFechaTxtBx.Text; // dtCurrentTable.Rows[i]["hora"] = averiaHoraTxtBx.Text; // dtCurrentTable.Rows[i]["afectada"] = averiaInfraAfectadaTxtBx.Text; // dtCurrentTable.Rows[i]["lugar"] = averiaLugarTxtBx.Text; // dtCurrentTable.Rows.Add(drCurrentRow); // averiasGrdVw.DataSource = dtCurrentTable; // averiasGrdVw.DataBind(); // SetPreviousData(); // } // } // else // { // break; // } // } #endregion #region Set txtbxs con info de aviso inicial SolicitudAviso solicitud = new PrimerasExtensionesServicio().GetPrimeraExtension(numeroControl); #region Poblar campos solicitud #region Info general numeroControlTxtBx.Text = numeroControl.NumControlText; emergenciaChkBx.Checked = solicitud.Emergencia; if (!user.Rol.EditarAvisoEmergerncia) { emergenciaChkBx.Enabled = false; } tipoAvisoRBtnLst.SelectedIndex = Convert.ToInt32(solicitud.TipoAviso); areaDepartamentoSubTxtBx.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; areaDepartamentoTxtBx.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; deptRFV.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; if (!areaDepartamentoTxtBx.Enabled) { deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); } //representanteDiv.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteDiv2.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteSubDiv.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteSubDiv2.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; SetDocsVisibilities(); //if (!string.IsNullOrWhiteSpace(solicitud.EstatusId)) //{ // statusLbl.Text = solicitud.StatusMsgs.Keys.ElementAt(Convert.ToInt32(solicitud.EstatusId)); // statusLbl.ForeColor = solicitud.StatusMsgs.Values.ElementAt(Convert.ToInt32(solicitud.EstatusId)); // statusHF.Value = solicitud.EstatusId; //} nombreContactoTxtBx.Text = solicitud.NombreContacto; celularContactoTxtBx.Text = solicitud.CelularContacto; direccionPostalContactoTxtBx.Text = solicitud.DireccionPostalContacto; #endregion #region Contratista companyDDL.Items.Add(solicitud.NombreEmpresa); representanteTxtBx.Text = solicitud.RepresentanteAutorizado; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoTxtBx.Text = solicitud.AreaDept; //deptRFV.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; //deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); } else { deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); areaDepartamentoTxtBx.Enabled = false; deptRFV.Enabled = false; } //representanteTxtBx.Text = solicitud.RepresentanteAutorizado; telOficinaTxtBx.Text = solicitud.TelOficina; telTrabajoTxtBx.Text = solicitud.TelCampoTrabajo; celularTxtBx.Text = solicitud.TelCelular; emailTxtBx.Text = solicitud.CorreoElectronico; direccionTxtBx.Text = solicitud.DireccionPostal; municipioDDL.SelectedIndex = solicitud.MunicipioId; codigoPostalTxtBx.Text = solicitud.CodigoPostal; #endregion #region Sub companySubTxtBx.Text = solicitud.Subcontratista; representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoSubTxtBx.Text = solicitud.AreaDeptSub; } else { areaDepartamentoSubTxtBx.Enabled = false; } //representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; telOficinaSubTxtBx.Text = solicitud.TelOficinaSub; telTrabajoSubTxtBx.Text = solicitud.TelCampoTrabajoSub; celularSubTxtBx.Text = solicitud.TelCelularSub; emailSubTxtBx.Text = solicitud.CorreoElectronicoSub; direccionSubTxtBx.Text = solicitud.DireccionPostalSub; municipioSubDDL.SelectedIndex = solicitud.MunicipioIdSub; codigoPostalSubTxtBx.Text = solicitud.CodigoPostalSub; #endregion #region Info trabajo //Urbana? if (solicitud.Zona) { zonaRBtnLst.SelectedIndex = 1; } else { zonaRBtnLst.SelectedIndex = 0; } boUrbTxtBx.Text = solicitud.BoUrb; sectorCalleTxtBx.Text = solicitud.SectorCalle; carreteraTxtBx.Text = solicitud.Carretera; kmTxtBx.Text = solicitud.KM.ToString(); hmTxtBx.Text = solicitud.HM.ToString(); municipioTrabajoDDL.SelectedIndex = solicitud.MunicipioIdTrab; referenciasTxtBx.Text = solicitud.Referencias; fechaComienzoPropuestoTxtBx.Text = fechaProp.ToShortDateString(); fechaComienzoTxtBx.Text = solicitud.FechaComienzo.ToShortDateString(); fechaExpiracionTxtBx.Text = solicitud.FechaExpiracion.ToShortDateString(); string[] duracionSplit = solicitud.TiempoDuracion.Split('-'); duracionDiaTxtBx.Text = duracionSplit[0]; duracionMesTxtBx.Text = duracionSplit[1]; duracionYearTxtBx.Text = duracionSplit[2]; string[] horSplit = solicitud.Horario.Split('-'); horarioDDL.SelectedValue = horSplit[0]; horarioDDL2.SelectedValue = horSplit[1]; maquinariaChkBx.Checked = solicitud.Maquinaria; tipoMaquinariaTxtBx.Enabled = solicitud.Maquinaria; if (maquinariaChkBx.Checked) { tipoMaquinariaTxtBx.Enabled = true; tipoMaquinariaTxtBx.Text = solicitud.TipoMaquinaria; maquinariaUtilizarLbl.Text += "*"; } else { tipoMaquinariaTxtBx.Enabled = false; } explosivoChkBx.Checked = solicitud.Explosivos; licExplosivoTxtBx.Enabled = solicitud.Explosivos; licExplosivoTxtBx.Text = solicitud.LicenciaExplosivo; fechaExpiracionExplosivoTxtBx.Enabled = solicitud.Explosivos; //fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); if (explosivoChkBx.Checked) { //tipoExplosivoTxtBx.Enabled = true; //tipoExplosivoTxtBx.Text = solicitud.TipoExplosivo; licExplosivoLbl.Text += "*"; fechaExpiracionExplosivoLbl.Text += "*"; fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); } areaMarcadaChkBx.Checked = solicitud.AreaMarcada; //Continua? if (solicitud.TipoExcavacion) { tipoExcavacionRBtnLst.SelectedIndex = 0; } else { tipoExcavacionRBtnLst.SelectedIndex = 1; } razonTxtBx.Text = solicitud.RazonTrabajos; profundidadPiesTxtBx.Text = solicitud.ProfundidadPies.ToString(); profundidadPulgadasDLL.SelectedIndex = solicitud.ProfundidadPulgadas; longitudPiesTxtBx.Text = solicitud.LongitudPies.ToString(); longitudPulgadasDDL.SelectedIndex = solicitud.LongitudPulgadas; coordenadasXTxtBx.Text = solicitud.CoordenadaX.ToString(); coordenadasYTxtBx.Text = solicitud.CoordenadaY.ToString(); enCasoEmergenciaTxtBx.Text = solicitud.EnCasoEmergencia; #endregion #endregion #region Poblar campos docs requeridos LinkedList<DocumentoRequerido> documentosRequeridos = new DocumentosRequeridosServicio().GetDocumentosAsociados(numeroControl, (int)SolicitudAviso.TiposExtensiones.Primera); CreateDocReqCtrls(documentosRequeridos); Session["docsRequeridos"] = documentosRequeridos; //CreateDocAsociadosCtrl(documentosRequeridos); //LinkedList<DropDownList> docAsociadosStatuses = (LinkedList<DropDownList>)Session["docAsociadosStatuses"]; //foreach (var d in docAsociadosStatuses) //{ // d.Enabled = solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()); //} //for (int i = 0; i < docRequeridosTxtBxs.Count; i++) //{ // docRequeridosTxtBxs.ElementAt(i).Text = documentosRequeridos.ElementAt(i).Path; //} //Dictionary<TextBox, DropDownList> docControls = new Dictionary<TextBox, DropDownList>(); //docControls = GetDocCtrls(); //SetDocsRequeridos(docControls, documentosRequeridos, primeraExtExistente); //if (tipoAvisoRBtnLst.Items[0].Selected) //{ // #region Company docs // docControls = GetDocCtrls(); // SetDocsRequeridos(docControls, documentosRequeridos, primeraExtExistente); // #endregion //} //else //{ // #region Docs Individuo // docControls = GetDocCtrls(); // SetDocsRequeridos(docControls, documentosRequeridos, primeraExtExistente); // #endregion //} solicitud.Documentos = documentosRequeridos; #endregion #endregion #region Set visibilities fechaComienzoDiv.Visible = false; fechaExpiracionDiv.Visible = false; docsRequeridosHeader.Visible = true; docRequeridosMainDiv.Visible = true; docsAsociadosHeader.Visible = false; docsAsociadosTableTag.Visible = false; //individuoDocDiv.Visible = false; #endregion //tipoMaquinariaTxtBx.Enabled = false; //licExplosivoTxtBx.Enabled = false; //fechaExpiracionExplosivoTxtBx.Enabled = false; fechaComienzoPropuestoTxtBx.Enabled = false; tipoAvisoRBtnLst.Enabled = false; fechaComienzoImgBtn.Visible = false; #endregion } else { #region Edit numeroControl.Year = Convert.ToInt32(numeroControl.NumControlText.Substring(0, 4)); numeroControl.NumControl = Convert.ToInt32(numeroControl.NumControlText.Substring(4)); #region Poblar campos solicitud SolicitudAviso solicitud = new SegundasExtensionesServicio().GetSegundaExtension(numeroControl); #region Info general numeroControlTxtBx.Text = numeroControl.NumControlText; emergenciaChkBx.Checked = solicitud.Emergencia; if (!user.Rol.EditarAvisoEmergerncia) { emergenciaChkBx.Enabled = false; } tipoAvisoRBtnLst.SelectedIndex = Convert.ToInt32(solicitud.TipoAviso); //representanteSubTxtBx.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteTxtBx.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteDiv.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteDiv2.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteSubDiv.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteSubDiv2.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; SetDocsVisibilities(); if (!string.IsNullOrWhiteSpace(solicitud.EstatusId)) { solicitud.EstatusId = solicitud.EstatusId.Replace(solicitud.LetraStatus, string.Empty).Replace(new Inspeccion().LetraStatus, string.Empty); #region Fill status msgs var statusMsgs = new SolicitudesInicialesServicio().GetStatusMsgs(); Dictionary<string, System.Drawing.Color> newStatusMsgs = new Dictionary<string, System.Drawing.Color>(); newStatusMsgs.Add("filler", System.Drawing.Color.Violet); for (int i = 0; i < solicitud.StatusMsgs.Count; i++) { newStatusMsgs.Add(statusMsgs.ElementAt(i), solicitud.StatusMsgs.ElementAt(i).Value); //solicitud.StatusMsgs.ElementAt(i).Key = statusMsgs.ElementAt(i); } solicitud.StatusMsgs = newStatusMsgs; #endregion statusLbl.Text = string.Format("EXTENSIÓN {0}", solicitud.StatusMsgs.Keys.ElementAt(Convert.ToInt32(solicitud.EstatusId))); statusLbl.ForeColor = solicitud.StatusMsgs.Values.ElementAt(Convert.ToInt32(solicitud.EstatusId)); statusHF.Value = solicitud.EstatusId; //if coordinador if (solicitud.EstatusId.Equals((((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()))) { if (user.Rol.ID != (int)Role.TipoRoles.Excavador) { coordinadorPopup.Show(); //Response.Redirect("~/Default.aspx"); } } else if (solicitud.EstatusId.Equals((((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()))) { if (user.Rol.ID != (int)Role.TipoRoles.Coordinador && user.Rol.ID != (int)Role.TipoRoles.Admin && user.Rol.ID != (int)Role.TipoRoles.SuperInspector && user.Rol.ID != (int)Role.TipoRoles.Director) { coordinadorPoPupHeader.InnerText = "Excavador / Demoledor"; coordinadorPopupBodyLbl.Text = "Esperar por revisión de coordinador"; coordinadorPopup.Show(); } } //Do not allow update if any of these conditions else if (!solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()) || !solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString())) { if (user.Rol.ID != (int)Role.TipoRoles.Director && user.Rol.ID != (int)Role.TipoRoles.SuperInspector) { guardarBtn.Enabled = false; } } else { //Esto es un else if preguntado si es empresa o individuo, no se puede guardar } } nombreContactoTxtBx.Text = solicitud.NombreContacto; celularContactoTxtBx.Text = solicitud.CelularContacto; direccionPostalContactoTxtBx.Text = solicitud.DireccionPostalContacto; #endregion #region Contratista companyDDL.Items.Add(solicitud.NombreEmpresa); representanteTxtBx.Text = solicitud.RepresentanteAutorizado; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoTxtBx.Text = solicitud.AreaDept; } else { deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); areaDepartamentoTxtBx.Enabled = false; deptRFV.Enabled = false; } //representanteTxtBx.Text = solicitud.RepresentanteAutorizado; telOficinaTxtBx.Text = solicitud.TelOficina; telTrabajoTxtBx.Text = solicitud.TelCampoTrabajo; celularTxtBx.Text = solicitud.TelCelular; emailTxtBx.Text = solicitud.CorreoElectronico; direccionTxtBx.Text = solicitud.DireccionPostal; municipioDDL.SelectedIndex = solicitud.MunicipioId; codigoPostalTxtBx.Text = solicitud.CodigoPostal; #endregion #region Sub companySubTxtBx.Text = solicitud.Subcontratista; representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoSubTxtBx.Text = solicitud.AreaDeptSub; } else { areaDepartamentoSubTxtBx.Enabled = false; } //representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; telOficinaSubTxtBx.Text = solicitud.TelOficinaSub; telTrabajoSubTxtBx.Text = solicitud.TelCampoTrabajoSub; celularSubTxtBx.Text = solicitud.TelCelularSub; emailSubTxtBx.Text = solicitud.CorreoElectronicoSub; direccionSubTxtBx.Text = solicitud.DireccionPostalSub; municipioSubDDL.SelectedIndex = solicitud.MunicipioIdSub; codigoPostalSubTxtBx.Text = solicitud.CodigoPostalSub; #endregion #region Info trabajo //Urbana? if (solicitud.Zona) { zonaRBtnLst.SelectedIndex = 1; } else { zonaRBtnLst.SelectedIndex = 0; } boUrbTxtBx.Text = solicitud.BoUrb; sectorCalleTxtBx.Text = solicitud.SectorCalle; carreteraTxtBx.Text = solicitud.Carretera; kmTxtBx.Text = solicitud.KM.ToString(); hmTxtBx.Text = solicitud.HM.ToString(); municipioTrabajoDDL.SelectedIndex = solicitud.MunicipioIdTrab; referenciasTxtBx.Text = solicitud.Referencias; fechaComienzoPropuestoTxtBx.Text = fechaProp.ToShortDateString(); fechaComienzoTxtBx.Text = solicitud.FechaComienzo.ToShortDateString(); fechaExpiracionTxtBx.Text = solicitud.FechaExpiracion.ToShortDateString(); string[] duracionSplit = solicitud.TiempoDuracion.Split('-'); duracionDiaTxtBx.Text = duracionSplit[0]; duracionMesTxtBx.Text = duracionSplit[1]; duracionYearTxtBx.Text = duracionSplit[2]; string[] horSplit = solicitud.Horario.Split('-'); horarioDDL.SelectedValue = horSplit[0]; horarioDDL2.SelectedValue = horSplit[1]; maquinariaChkBx.Checked = solicitud.Maquinaria; tipoMaquinariaTxtBx.Enabled = solicitud.Maquinaria; if (maquinariaChkBx.Checked) { tipoMaquinariaTxtBx.Enabled = true; tipoMaquinariaTxtBx.Text = solicitud.TipoMaquinaria; maquinariaUtilizarLbl.Text += "*"; } else { tipoMaquinariaTxtBx.Enabled = false; } explosivoChkBx.Checked = solicitud.Explosivos; licExplosivoTxtBx.Enabled = solicitud.Explosivos; licExplosivoTxtBx.Text = solicitud.LicenciaExplosivo; fechaExpiracionExplosivoTxtBx.Enabled = solicitud.Explosivos; //fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); if (explosivoChkBx.Checked) { //tipoExplosivoTxtBx.Enabled = true; //tipoExplosivoTxtBx.Text = solicitud.TipoExplosivo; licExplosivoLbl.Text += "*"; fechaExpiracionExplosivoLbl.Text += "*"; fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); } areaMarcadaChkBx.Checked = solicitud.AreaMarcada; //Continua? if (solicitud.TipoExcavacion) { tipoExcavacionRBtnLst.SelectedIndex = 0; } else { tipoExcavacionRBtnLst.SelectedIndex = 1; } razonTxtBx.Text = solicitud.RazonTrabajos; profundidadPiesTxtBx.Text = solicitud.ProfundidadPies.ToString(); profundidadPulgadasDLL.SelectedIndex = solicitud.ProfundidadPulgadas; longitudPiesTxtBx.Text = solicitud.LongitudPies.ToString(); longitudPulgadasDDL.SelectedIndex = solicitud.LongitudPulgadas; coordenadasXTxtBx.Text = solicitud.CoordenadaX.ToString(); coordenadasYTxtBx.Text = solicitud.CoordenadaY.ToString(); enCasoEmergenciaTxtBx.Text = solicitud.EnCasoEmergencia; #endregion #endregion #region Poblar campos docs requeridos LinkedList<DocumentoRequerido> documentosRequeridos = new DocumentosRequeridosServicio().GetDocumentosAsociados(numeroControl, (int)SolicitudAviso.TiposExtensiones.Segunda); Session["docsRequeridos"] = documentosRequeridos; CreateDocReqCtrls(documentosRequeridos); //for (int i = 0; i < docRequeridosTxtBxs.Count; i++) //{ // docRequeridosTxtBxs.ElementAt(i).Text = documentosRequeridos.ElementAt(i).Path; //} CreateDocAsociadosCtrl(documentosRequeridos); LinkedList<DropDownList> docAsociadosStatuses = (LinkedList<DropDownList>)Session["docAsociadosStatusesExt2"]; foreach (var d in docAsociadosStatuses) { d.Enabled = solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()); } //Dictionary<TextBox, DropDownList> docControls = new Dictionary<TextBox, DropDownList>(); //docControls = GetDocCtrls(); //SetDocsRequeridos(docControls, documentosRequeridos, primeraExtExistente); #region Disable doc status validators if docs incomplete //Asi si el user cambia de tipo de aviso, no dan problemas esos validators LinkedList<RequiredFieldValidator> docAsociadosValidators = (LinkedList<RequiredFieldValidator>)Session["docAsociadosValidatorsExt2"]; foreach (var v in docAsociadosValidators) { v.Enabled = solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()); } #endregion solicitud.Documentos = documentosRequeridos; //foreach (var d in docAsociadosStatuses) //{ // d.Enabled = solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()); //} #endregion #region Poblar tabla averias CreateDefaultAveriasGrdVwRow(); LinkedList<Averia> averias = new AveriasServicio().GetAverias(numeroControl, (int)SolicitudAviso.TiposExtensiones.Segunda); Session["averias"] = averias; averiasTxtBx.Text = averias.ElementAt(0).Titulo; //DataTable dtCurrentTable = null; //DataRow drCurrentRow = null; ///*En la primera entrada, asigna los valores al row hecho por default. Verifica si hay que crear otro. // * // * En la segunda corrida, asigna los valores al row nuevo. // * // * Para evitar usar una linea que no existe o hacer una linea de mas esta el i + 1 // * // * i + 1 si es mayor a la cantidad de filas pues me pase del total y no tengo que hacer una fila nueva // */ //for (int i = 0; i < averias.Count; i++) //{ // TextBox averiaTituloTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[0].FindControl("averiaTituloTxtBx"), // averiaFechaTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[1].FindControl("averiaFechaTxtBx"), // averiaHoraTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[2].FindControl("averiaHoraTxtBx"), // averiaInfraAfectadaTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[3].FindControl("averiaInfraAfectadaTxtBx"), // averiaLugarTxtBx = (TextBox)averiasGrdVw.Rows[i].Cells[4].FindControl("averiaLugarTxtBx"); // averiaTituloTxtBx.Text = averias.ElementAt(i).Titulo; // averiaFechaTxtBx.Text = averias.ElementAt(i).Fecha.Year == 1900 // || averias.ElementAt(i).Fecha.Year == 9999 ? string.Empty // : averias.ElementAt(i).Fecha.ToShortDateString(); // averiaHoraTxtBx.Text = averias.ElementAt(i).Hora; // averiaInfraAfectadaTxtBx.Text = averias.ElementAt(i).InfraAfectada; // averiaLugarTxtBx.Text = averias.ElementAt(i).Lugar; // //Si hay que crear otro row // if ((i + 1) != averias.Count) // { // if (ViewState["averiaTbl"] != null) // { // dtCurrentTable = (DataTable)ViewState["averiaTbl"]; // drCurrentRow = dtCurrentTable.NewRow(); // dtCurrentTable.Rows[i]["titulo"] = averiaTituloTxtBx.Text; // dtCurrentTable.Rows[i]["fecha"] = averiaFechaTxtBx.Text; // dtCurrentTable.Rows[i]["hora"] = averiaHoraTxtBx.Text; // dtCurrentTable.Rows[i]["afectada"] = averiaInfraAfectadaTxtBx.Text; // dtCurrentTable.Rows[i]["lugar"] = averiaLugarTxtBx.Text; // dtCurrentTable.Rows.Add(drCurrentRow); // averiasGrdVw.DataSource = dtCurrentTable; // averiasGrdVw.DataBind(); // SetPreviousData(); // } // } // else // { // break; // } //} solicitud.Averias = averias; #endregion #region Set visibilities(role) //fechaComienzoDiv.Visible = true; //fechaExpiracionDiv.Visible = true; //docsRequeridosHeader.Visible = false; //docRequeridosTableTag.Visible = false; //docsAsociadosHeader.Visible = true; //docsAsociadosTableTag.Visible = true; #region Display responsables de la solicitud //User currentUser = new SolicitudesInicialesServicio().GetUser(solicitud.Usuario.Id); //User currentUser = user; //new SolicitudesInicialesServicio().GetUser(solicitud.Usuario.Email); tramitadoLbl.Visible = true; tramitadoLbl.Text += string.Format(" {0}", solicitud.TramitadoPor); //solicitud.Coordinador.Id = 1; // only test if (!string.IsNullOrWhiteSpace(solicitud.Coordinador.Nombre)) { //Coordinador coordinador = new SolicitudesInicialesServicio().GetCoordinador(solicitud.Coordinador.Nombre); procesadoLbl.Visible = true; procesadoLbl.Text += string.Format(" {0}", solicitud.Coordinador.Nombre); //solicitud.Inspector.NumeroPlacaID = "001"; if (!string.IsNullOrWhiteSpace(solicitud.Inspector.Nombre)) { //Inspector inspector = new SolicitudesInicialesServicio().GetInspector(solicitud.Inspector.NumeroPlacaID); inspeccionLbl.Visible = true; inspeccionLbl.Text += string.Format(" {0}", solicitud.Inspector.Nombre); } } #endregion if (solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.InspeccionCompletada).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteAsignarInspector).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.EnProcesoInspeccion).ToString())) { fechaComienzoDiv.Visible = true; fechaComienzoDiv2.Visible = true; fechaExpiracionDiv.Visible = true; fechaExpiracionDiv2.Visible = true; } #endregion fechaComienzoPropuestoTxtBx.Enabled = false; fechaComienzoImgBtn.Visible = false; //Si la solicitud es inactiva o denegada, no dejas guardar if (solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Denegada).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteAsignarInspector).ToString())) { guardarBtn.Enabled = false; } #endregion } } catch (Exception ex) { errorLbl2.InnerText = ex.Message; errorPopup.Show(); } } else { if (maquinariaChkBx.Checked) { tipoMaquinariaTxtBx.Enabled = true; if (!maquinariaUtilizarLbl.Text.Contains("*")) { maquinariaUtilizarLbl.Text += "*"; } } else { tipoMaquinariaTxtBx.Enabled = false; maquinariaUtilizarLbl.Text = maquinariaUtilizarLbl.Text.Replace("*", string.Empty); } if (explosivoChkBx.Checked) { licExplosivoTxtBx.Enabled = true; fechaExpiracionExplosivoTxtBx.Enabled = true; //tipoExplosivoTxtBx.Text = solicitud.TipoExplosivo; if (!licExplosivoLbl.Text.Contains("*")) { licExplosivoLbl.Text += "*"; fechaExpiracionExplosivoLbl.Text += "*"; } } else { licExplosivoTxtBx.Enabled = false; fechaExpiracionExplosivoTxtBx.Enabled = false; licExplosivoLbl.Text = licExplosivoLbl.Text.Replace("*", string.Empty); fechaExpiracionExplosivoLbl.Text = fechaExpiracionExplosivoLbl.Text.Replace("*", string.Empty); } #region Set doc controls on postback LinkedList<DocumentoRequerido> docsRequeridos = (LinkedList<DocumentoRequerido>)Session["docsRequeridos"]; if (docsRequeridos != null) { CreateDocAsociadosCtrl(docsRequeridos); CreateDocReqCtrls(docsRequeridos); } #endregion } }
protected void Page_Load(object sender, EventArgs e) { User user = Session["UserObj"] == null ? new User() : (User)Session["UserObj"]; if (!user.Rol.VerExtensiones) { Response.Redirect("~/Default.aspx"); } var title = (HtmlGenericControl)Master.FindControl("pageTitleSpan"); title.InnerText = Title; if (!IsPostBack) { #region Populate horario ddl horarioDDL.Items.Add("Seleccionar"); horarioDDL2.Items.Add("Seleccionar"); for (int i = 0; i < 2; i++) { string dayTime = "AM"; if (i == 1) { dayTime = "PM"; } for (int h = 1; h < 13; h++) { for (int m = 0; m < 4; m += 3) { horarioDDL.Items.Add(h.ToString() + ":" + m.ToString() + "0" + dayTime); horarioDDL2.Items.Add(h.ToString() + ":" + m.ToString() + "0" + dayTime); } } } #endregion Session.Remove("docAsociadosStatusesExt2"); Session.Remove("docsRequeridos"); NumeroControl numeroControl = new NumeroControl() { NumControlText = Request.QueryString["NumeroControl"] }; try { #region Set multi line txtbx maxlength cause clieent side max length doesn't work direccionPostalContactoTxtBx.Attributes["maxlength"] = Convert.ToString(400); direccionTxtBx.Attributes["maxlength"] = Convert.ToString(400); direccionSubTxtBx.Attributes["maxlength"] = Convert.ToString(400); referenciasTxtBx.Attributes["maxlength"] = Convert.ToString(600); razonTxtBx.Attributes["maxlength"] = Convert.ToString(600); tipoMaquinariaTxtBx.Attributes["maxlength"] = Convert.ToString(400); enCasoEmergenciaTxtBx.Attributes["maxlength"] = Convert.ToString(100); observacionesTxtBx.Attributes["maxlength"] = Convert.ToString(400); #endregion #region Municipios LinkedList<String> municipios = new SolicitudesInicialesServicio().GetMunicipios(); municipioDDL.Items.Add("Seleccionar"); municipioSubDDL.Items.Add("Seleccionar"); municipioTrabajoDDL.Items.Add("Seleccionar"); foreach (var m in municipios) { municipioDDL.Items.Add(m); municipioSubDDL.Items.Add(m); municipioTrabajoDDL.Items.Add(m); } municipioDDL.SelectedIndex = 0; municipioSubDDL.SelectedIndex = 0; municipioTrabajoDDL.SelectedIndex = 0; #endregion SolicitudAviso segundaExtExistente = new SegundasExtensionesServicio().GetSegundaExtension(numeroControl); extensionInicialLink.NavigateUrl = extensionInicialLink.NavigateUrl + "?NumeroControl=" + numeroControl.NumControlText; primeraExtensionLink.NavigateUrl = primeraExtensionLink.NavigateUrl + "?NumeroControl=" + numeroControl.NumControlText; var fechaProp = new SolicitudesInicialesServicio().GetSolicitud(numeroControl).FechaPropuesta; if (String.IsNullOrEmpty(segundaExtExistente.NumeroControl.NumControlText)) { #region Create if (user.Rol.ID != ((int)Role.TipoRoles.Excavador)) Response.Redirect("~/Default.aspx", true); #region Poblar tabla averias //LinkedList<Averia> averias = new AveriasServicio().GetAverias(numeroControl, (int)SolicitudAviso.TiposExtensiones.Primera); //Session["averias"] = averias; //averiasTxtBx.Text = averias.ElementAt(0).Titulo; #endregion #region Set txtbxs con info de aviso inicial SolicitudAviso solicitud = new PrimerasExtensionesServicio().GetPrimeraExtension(numeroControl); #region Poblar campos solicitud #region Info general numeroControlTxtBx.Text = numeroControl.NumControlText; emergenciaChkBx.Checked = solicitud.Emergencia; if (!user.Rol.EditarAvisoEmergerncia) { emergenciaChkBx.Enabled = false; } tipoAvisoRBtnLst.SelectedIndex = Convert.ToInt32(solicitud.TipoAviso); areaDepartamentoSubTxtBx.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; areaDepartamentoTxtBx.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; deptRFV.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; if (!areaDepartamentoTxtBx.Enabled) { deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); } //representanteDiv.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteDiv2.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteSubDiv.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; //representanteSubDiv2.Visible = tipoAvisoRBtnLst.SelectedIndex != 2; SetDocsVisibilities(); //if (!string.IsNullOrWhiteSpace(solicitud.EstatusId)) //{ // statusLbl.Text = solicitud.StatusMsgs.Keys.ElementAt(Convert.ToInt32(solicitud.EstatusId)); // statusLbl.ForeColor = solicitud.StatusMsgs.Values.ElementAt(Convert.ToInt32(solicitud.EstatusId)); // statusHF.Value = solicitud.EstatusId; //} nombreContactoTxtBx.Text = solicitud.NombreContacto; celularContactoTxtBx.Text = solicitud.CelularContacto; direccionPostalContactoTxtBx.Text = solicitud.DireccionPostalContacto; #endregion #region Contratista companyDDL.Items.Add(solicitud.NombreEmpresa); representanteTxtBx.Text = solicitud.RepresentanteAutorizado; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoTxtBx.Text = solicitud.AreaDept; //deptRFV.Enabled = tipoAvisoRBtnLst.SelectedIndex != 2; //deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); } else { deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); areaDepartamentoTxtBx.Enabled = false; deptRFV.Enabled = false; } //representanteTxtBx.Text = solicitud.RepresentanteAutorizado; telOficinaTxtBx.Text = solicitud.TelOficina; telTrabajoTxtBx.Text = solicitud.TelCampoTrabajo; celularTxtBx.Text = solicitud.TelCelular; emailTxtBx.Text = solicitud.CorreoElectronico; direccionTxtBx.Text = solicitud.DireccionPostal; municipioDDL.SelectedIndex = solicitud.MunicipioId; codigoPostalTxtBx.Text = solicitud.CodigoPostal; #endregion #region Sub companySubTxtBx.Text = solicitud.Subcontratista; representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoSubTxtBx.Text = solicitud.AreaDeptSub; } else { areaDepartamentoSubTxtBx.Enabled = false; } //representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; telOficinaSubTxtBx.Text = solicitud.TelOficinaSub; telTrabajoSubTxtBx.Text = solicitud.TelCampoTrabajoSub; celularSubTxtBx.Text = solicitud.TelCelularSub; emailSubTxtBx.Text = solicitud.CorreoElectronicoSub; direccionSubTxtBx.Text = solicitud.DireccionPostalSub; municipioSubDDL.SelectedIndex = solicitud.MunicipioIdSub; codigoPostalSubTxtBx.Text = solicitud.CodigoPostalSub; #endregion #region Info trabajo //Urbana? if (solicitud.Zona) { zonaRBtnLst.SelectedIndex = 1; } else { zonaRBtnLst.SelectedIndex = 0; } boUrbTxtBx.Text = solicitud.BoUrb; sectorCalleTxtBx.Text = solicitud.SectorCalle; carreteraTxtBx.Text = solicitud.Carretera; kmTxtBx.Text = solicitud.KM.ToString(); hmTxtBx.Text = solicitud.HM.ToString(); municipioTrabajoDDL.SelectedIndex = solicitud.MunicipioIdTrab; referenciasTxtBx.Text = solicitud.Referencias; fechaComienzoPropuestoTxtBx.Text = fechaProp.ToShortDateString(); fechaComienzoTxtBx.Text = solicitud.FechaComienzo.ToShortDateString(); fechaExpiracionTxtBx.Text = solicitud.FechaExpiracion.ToShortDateString(); string[] duracionSplit = solicitud.TiempoDuracion.Split('-'); duracionDiaTxtBx.Text = duracionSplit[0]; duracionMesTxtBx.Text = duracionSplit[1]; duracionYearTxtBx.Text = duracionSplit[2]; string[] horSplit = solicitud.Horario.Split('-'); horarioDDL.SelectedValue = horSplit[0]; horarioDDL2.SelectedValue = horSplit[1]; maquinariaChkBx.Checked = solicitud.Maquinaria; tipoMaquinariaTxtBx.Enabled = solicitud.Maquinaria; if (maquinariaChkBx.Checked) { tipoMaquinariaTxtBx.Enabled = true; tipoMaquinariaTxtBx.Text = solicitud.TipoMaquinaria; maquinariaUtilizarLbl.Text += "*"; } else { tipoMaquinariaTxtBx.Enabled = false; } explosivoChkBx.Checked = solicitud.Explosivos; licExplosivoTxtBx.Enabled = solicitud.Explosivos; licExplosivoTxtBx.Text = solicitud.LicenciaExplosivo; fechaExpiracionExplosivoTxtBx.Enabled = solicitud.Explosivos; //fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); if (explosivoChkBx.Checked) { //tipoExplosivoTxtBx.Enabled = true; //tipoExplosivoTxtBx.Text = solicitud.TipoExplosivo; licExplosivoLbl.Text += "*"; fechaExpiracionExplosivoLbl.Text += "*"; fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); } areaMarcadaChkBx.Checked = solicitud.AreaMarcada; //Continua? if (solicitud.TipoExcavacion) { tipoExcavacionRBtnLst.SelectedIndex = 0; } else { tipoExcavacionRBtnLst.SelectedIndex = 1; } razonTxtBx.Text = solicitud.RazonTrabajos; profundidadPiesTxtBx.Text = solicitud.ProfundidadPies.ToString(); profundidadPulgadasDLL.SelectedIndex = solicitud.ProfundidadPulgadas; longitudPiesTxtBx.Text = solicitud.LongitudPies.ToString(); longitudPulgadasDDL.SelectedIndex = solicitud.LongitudPulgadas; coordenadasXTxtBx.Text = solicitud.CoordenadaX.ToString(); coordenadasYTxtBx.Text = solicitud.CoordenadaY.ToString(); enCasoEmergenciaTxtBx.Text = solicitud.EnCasoEmergencia; #endregion #endregion #region Poblar campos docs requeridos LinkedList<DocumentoRequerido> documentosRequeridos = new DocumentosRequeridosServicio().GetDocumentosAsociados(numeroControl, (int)SolicitudAviso.TiposExtensiones.Primera); CreateDocReqCtrls(documentosRequeridos); Session["docsRequeridos"] = documentosRequeridos; solicitud.Documentos = documentosRequeridos; #endregion #endregion #region Set visibilities SolicitudStatusLbl.Visible = false; solicitudStatusLblCol.Visible = false; solicitudStatusCol.Visible = false; solicitudStatusDDL.Visible = false; fechaComienzoDiv.Visible = false; fechaExpiracionDiv.Visible = false; docsRequeridosHeader.Visible = true; docRequeridosMainDiv.Visible = true; docsAsociadosHeader.Visible = false; docsAsociadosTableTag.Visible = false; //individuoDocDiv.Visible = false; #endregion fechaComienzoPropuestoTxtBx.Enabled = false; tipoAvisoRBtnLst.Enabled = false; fechaComienzoImgBtn.Visible = false; #endregion } else { #region Edit numeroControl.Year = Convert.ToInt32(numeroControl.NumControlText.Substring(0, 4)); numeroControl.NumControl = Convert.ToInt32(numeroControl.NumControlText.Substring(4)); #region Poblar campos solicitud SolicitudAviso solicitud = new SegundasExtensionesServicio().GetSegundaExtension(numeroControl); #region Info general numeroControlTxtBx.Text = numeroControl.NumControlText; emergenciaChkBx.Checked = solicitud.Emergencia; if (!user.Rol.EditarAvisoEmergerncia) { emergenciaChkBx.Enabled = false; } tipoAvisoRBtnLst.SelectedIndex = Convert.ToInt32(solicitud.TipoAviso); SetDocsVisibilities(); if (!string.IsNullOrWhiteSpace(solicitud.EstatusId)) { solicitud.EstatusId = solicitud.EstatusId.Replace(solicitud.LetraStatus, string.Empty).Replace(new Inspeccion().LetraStatus, string.Empty); #region Fill status msgs var statusMsgs = new SolicitudesInicialesServicio().GetStatusMsgs(); Dictionary<string, System.Drawing.Color> newStatusMsgs = new Dictionary<string, System.Drawing.Color>(); if (Convert.ToInt32(solicitud.EstatusId) < 8) { newStatusMsgs.Add("filler", System.Drawing.Color.Violet); for (int i = 0; i < solicitud.StatusMsgs.Count; i++) { newStatusMsgs.Add(statusMsgs.ElementAt(i), solicitud.StatusMsgs.ElementAt(i).Value); } solicitud.StatusMsgs = newStatusMsgs; statusLbl.Text = string.Format("EXTENSIÓN {0}", solicitud.StatusMsgs.Keys.ElementAt(Convert.ToInt32(solicitud.EstatusId))); statusLbl.ForeColor = solicitud.StatusMsgs.Values.ElementAt(Convert.ToInt32(solicitud.EstatusId)); } //Eliminada else { newStatusMsgs.Add("Eliminada", System.Drawing.Color.White); solicitud.StatusMsgs = newStatusMsgs; statusLbl.Text = solicitud.StatusMsgs.Keys.ElementAt(0); statusLbl.ForeColor = solicitud.StatusMsgs.Values.ElementAt(0); } statusHF.Value = solicitud.EstatusId; #endregion //if coordinador if (solicitud.EstatusId.Equals((((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()))) { if (user.Rol.ID != (int)Role.TipoRoles.Excavador) { coordinadorPopup.Show(); } else { solicitudStatusDDL.Enabled = false; observacionesTxtBx.ReadOnly = true; } } else if (solicitud.EstatusId.Equals((((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()))) { if (user.Rol.ID != (int)Role.TipoRoles.Coordinador && user.Rol.ID != (int)Role.TipoRoles.Admin && user.Rol.ID != (int)Role.TipoRoles.SuperInspector && user.Rol.ID != (int)Role.TipoRoles.Director) { coordinadorPoPupHeader.InnerText = "Excavador / Demoledor"; coordinadorPopupBodyLbl.Text = "Esperar por revisión de coordinador"; coordinadorPopup.Show(); } } //Do not allow update if any of these conditions else if (!solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()) || !solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString())) { if (user.Rol.ID != (int)Role.TipoRoles.Director && user.Rol.ID != (int)Role.TipoRoles.SuperInspector) { guardarBtn.Enabled = false; } } else { //Esto es un else if preguntado si es empresa o individuo, no se puede guardar } } #region Set solicitud status solicitudStatusDDL.SelectedIndex = solicitud.SolicitudStatusID; solicitudStatusDDL_SelectedIndexChanged(sender, EventArgs.Empty); observacionesTxtBx.Text = solicitud.Observaciones; #endregion nombreContactoTxtBx.Text = solicitud.NombreContacto; celularContactoTxtBx.Text = solicitud.CelularContacto; direccionPostalContactoTxtBx.Text = solicitud.DireccionPostalContacto; #endregion #region Contratista companyDDL.Items.Add(solicitud.NombreEmpresa); representanteTxtBx.Text = solicitud.RepresentanteAutorizado; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoTxtBx.Text = solicitud.AreaDept; } else { deptLbl.Text = deptLbl.Text.Replace("*", string.Empty); areaDepartamentoTxtBx.Enabled = false; deptRFV.Enabled = false; } //representanteTxtBx.Text = solicitud.RepresentanteAutorizado; telOficinaTxtBx.Text = solicitud.TelOficina; telTrabajoTxtBx.Text = solicitud.TelCampoTrabajo; celularTxtBx.Text = solicitud.TelCelular; emailTxtBx.Text = solicitud.CorreoElectronico; direccionTxtBx.Text = solicitud.DireccionPostal; municipioDDL.SelectedIndex = solicitud.MunicipioId; codigoPostalTxtBx.Text = solicitud.CodigoPostal; #endregion #region Sub companySubTxtBx.Text = solicitud.Subcontratista; representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; if (!solicitud.TipoAviso.Equals(((int)SolicitudAviso.TiposAvisos.Residencial).ToString())) { areaDepartamentoSubTxtBx.Text = solicitud.AreaDeptSub; } else { areaDepartamentoSubTxtBx.Enabled = false; } //representanteSubTxtBx.Text = solicitud.RepresentanteAutorizadoSub; telOficinaSubTxtBx.Text = solicitud.TelOficinaSub; telTrabajoSubTxtBx.Text = solicitud.TelCampoTrabajoSub; celularSubTxtBx.Text = solicitud.TelCelularSub; emailSubTxtBx.Text = solicitud.CorreoElectronicoSub; direccionSubTxtBx.Text = solicitud.DireccionPostalSub; municipioSubDDL.SelectedIndex = solicitud.MunicipioIdSub; codigoPostalSubTxtBx.Text = solicitud.CodigoPostalSub; #endregion #region Info trabajo //Urbana? if (solicitud.Zona) { zonaRBtnLst.SelectedIndex = 1; } else { zonaRBtnLst.SelectedIndex = 0; } boUrbTxtBx.Text = solicitud.BoUrb; sectorCalleTxtBx.Text = solicitud.SectorCalle; carreteraTxtBx.Text = solicitud.Carretera; kmTxtBx.Text = solicitud.KM.ToString(); hmTxtBx.Text = solicitud.HM.ToString(); municipioTrabajoDDL.SelectedIndex = solicitud.MunicipioIdTrab; referenciasTxtBx.Text = solicitud.Referencias; fechaComienzoPropuestoTxtBx.Text = fechaProp.ToShortDateString(); fechaComienzoTxtBx.Text = solicitud.FechaComienzo.ToShortDateString(); fechaExpiracionTxtBx.Text = solicitud.FechaExpiracion.ToShortDateString(); string[] duracionSplit = solicitud.TiempoDuracion.Split('-'); duracionDiaTxtBx.Text = duracionSplit[0]; duracionMesTxtBx.Text = duracionSplit[1]; duracionYearTxtBx.Text = duracionSplit[2]; string[] horSplit = solicitud.Horario.Split('-'); horarioDDL.SelectedValue = horSplit[0]; horarioDDL2.SelectedValue = horSplit[1]; maquinariaChkBx.Checked = solicitud.Maquinaria; tipoMaquinariaTxtBx.Enabled = solicitud.Maquinaria; if (maquinariaChkBx.Checked) { tipoMaquinariaTxtBx.Enabled = true; tipoMaquinariaTxtBx.Text = solicitud.TipoMaquinaria; maquinariaUtilizarLbl.Text += "*"; } else { tipoMaquinariaTxtBx.Enabled = false; } explosivoChkBx.Checked = solicitud.Explosivos; licExplosivoTxtBx.Enabled = solicitud.Explosivos; licExplosivoTxtBx.Text = solicitud.LicenciaExplosivo; fechaExpiracionExplosivoTxtBx.Enabled = solicitud.Explosivos; //fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); if (explosivoChkBx.Checked) { //tipoExplosivoTxtBx.Enabled = true; //tipoExplosivoTxtBx.Text = solicitud.TipoExplosivo; licExplosivoLbl.Text += "*"; fechaExpiracionExplosivoLbl.Text += "*"; fechaExpiracionExplosivoTxtBx.Text = solicitud.FechaExpiracionExplosivo.ToShortDateString(); } areaMarcadaChkBx.Checked = solicitud.AreaMarcada; //Continua? if (solicitud.TipoExcavacion) { tipoExcavacionRBtnLst.SelectedIndex = 0; } else { tipoExcavacionRBtnLst.SelectedIndex = 1; } razonTxtBx.Text = solicitud.RazonTrabajos; profundidadPiesTxtBx.Text = solicitud.ProfundidadPies.ToString(); profundidadPulgadasDLL.SelectedIndex = solicitud.ProfundidadPulgadas; longitudPiesTxtBx.Text = solicitud.LongitudPies.ToString(); longitudPulgadasDDL.SelectedIndex = solicitud.LongitudPulgadas; coordenadasXTxtBx.Text = solicitud.CoordenadaX.ToString(); coordenadasYTxtBx.Text = solicitud.CoordenadaY.ToString(); enCasoEmergenciaTxtBx.Text = solicitud.EnCasoEmergencia; #endregion #endregion #region Poblar campos docs requeridos LinkedList<DocumentoRequerido> documentosRequeridos = new DocumentosRequeridosServicio().GetDocumentosAsociados(numeroControl, (int)SolicitudAviso.TiposExtensiones.Segunda); Session["docsRequeridos"] = documentosRequeridos; CreateDocReqCtrls(documentosRequeridos); CreateDocAsociadosCtrl(documentosRequeridos); #region Build devolucion popUp if (solicitud.EstatusId.Equals((((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()))) { if (user.Rol.ID == (int)Role.TipoRoles.Excavador) { coordinadorPoPupHeader.InnerText = "Razón por devolución"; coordinadorPopupBodyLbl.Text = string.Empty; if (solicitud.SolicitudStatusID == (int)SolicitudAviso.SolicitudStatuses.INCOMPLETO) coordinadorPopupBodyLbl.Text = string.Format("<b>Observaciones:</b> {0} <br />", solicitud.Observaciones); for (int i = 0; i < documentosRequeridos.Count; i++) { if (!string.IsNullOrEmpty(documentosRequeridos.ElementAt(i).Comentario)) coordinadorPopupBodyLbl.Text += string.Format("<b>{0}:</b> {1} <br />", documentosRequeridos.ElementAt(i).Nombre.Replace("_", " "), documentosRequeridos.ElementAt(i).Comentario); } ViewState["Redirect"] = true; coordinadorPopup.Show(); } } #endregion LinkedList<DropDownList> docAsociadosStatuses = (LinkedList<DropDownList>)Session["docAsociadosStatusesExt2"]; #region Enable/ disable image controls foreach (var d in docAsociadosStatuses) { d.Enabled = solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()); TextBox txtBx = (TextBox)docsAsociadosTableTag.FindControl(d.ID.Replace("DDL", "TxtBx")); if ((d.SelectedIndex != (int)DocumentoRequerido.Estatus.Completo && d.SelectedIndex != 0) && txtBx != null && (user.Rol.ID == (int)Role.TipoRoles.Excavador)) { txtBx.ReadOnly = true; } } #endregion #region Disable doc status validators if docs incomplete //Asi si el user cambia de tipo de aviso, no dan problemas esos validators LinkedList<RequiredFieldValidator> docAsociadosValidators = (LinkedList<RequiredFieldValidator>)Session["docAsociadosValidatorsExt2"]; foreach (var v in docAsociadosValidators) { v.Enabled = solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteRevisarCoordinador).ToString()); } #endregion solicitud.Documentos = documentosRequeridos; #endregion #region Poblar tabla averias //CreateDefaultAveriasGrdVwRow(); //LinkedList<Averia> averias = new AveriasServicio().GetAverias(numeroControl, (int)SolicitudAviso.TiposExtensiones.Segunda); //Session["averias"] = averias; //averiasTxtBx.Text = averias.ElementAt(0).Titulo; //solicitud.Averias = averias; #endregion #region Set visibilities(role) #region Display responsables de la solicitud //User currentUser = new SolicitudesInicialesServicio().GetUser(solicitud.Usuario.Id); //User currentUser = user; //new SolicitudesInicialesServicio().GetUser(solicitud.Usuario.Email); tramitadoLbl.Visible = true; tramitadoLbl.Text += string.Format(" {0}", solicitud.TramitadoPor); //solicitud.Coordinador.Id = 1; // only test if (!string.IsNullOrWhiteSpace(solicitud.Coordinador.Nombre)) { //Coordinador coordinador = new SolicitudesInicialesServicio().GetCoordinador(solicitud.Coordinador.Nombre); procesadoLbl.Visible = true; procesadoLbl.Text += string.Format(" {0}", solicitud.Coordinador.Nombre); //solicitud.Inspector.NumeroPlacaID = "001"; if (!string.IsNullOrWhiteSpace(solicitud.Inspector.Nombre)) { //Inspector inspector = new SolicitudesInicialesServicio().GetInspector(solicitud.Inspector.NumeroPlacaID); inspeccionLbl.Visible = true; inspeccionLbl.Text += string.Format(" {0}", solicitud.Inspector.Nombre); } } #endregion if (solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.InspeccionCompletada).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteAsignarInspector).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.EnProcesoInspeccion).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Eliminada).ToString())) { fechaComienzoDiv.Visible = true; fechaComienzoDiv2.Visible = true; fechaExpiracionDiv.Visible = true; fechaExpiracionDiv2.Visible = true; #region Setup certificacion btn if (!string.IsNullOrEmpty(solicitud.Coordinador.Nombre)) { certificacionBtn.Visible = true; certificacionBtn.OnClientClick = string.Format("window.open('/EXC/Certificaciones/Cert_{0}_EXT2.pdf','_blank')", solicitud.NumeroControl.NumControlText); } #endregion } #endregion fechaComienzoPropuestoTxtBx.Enabled = false; fechaComienzoImgBtn.Visible = false; //tipoAvisoRBtnLst.Enabled = false; /* * Para que no puedan cambiar de residente a excavacion si ya se guardo. * Esto evita error al update docs */ if (tipoAvisoRBtnLst.Items[2].Selected) { tipoAvisoRBtnLst.Items[0].Enabled = false; tipoAvisoRBtnLst.Items[1].Enabled = false; } else tipoAvisoRBtnLst.Items[2].Enabled = false; //Si la solicitud es inactiva o denegada, no dejas guardar if (solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.Denegada).ToString()) || solicitud.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteAsignarInspector).ToString())) { guardarBtn.Enabled = false; } #endregion } } catch (Exception ex) { errorLbl2.InnerText = ex.Message; errorPopup.Show(); } } else { if (maquinariaChkBx.Checked) { tipoMaquinariaTxtBx.Enabled = true; if (!maquinariaUtilizarLbl.Text.Contains("*")) { maquinariaUtilizarLbl.Text += "*"; } } else { tipoMaquinariaTxtBx.Enabled = false; maquinariaUtilizarLbl.Text = maquinariaUtilizarLbl.Text.Replace("*", string.Empty); } if (explosivoChkBx.Checked) { licExplosivoTxtBx.Enabled = true; fechaExpiracionExplosivoTxtBx.Enabled = true; //tipoExplosivoTxtBx.Text = solicitud.TipoExplosivo; if (!licExplosivoLbl.Text.Contains("*")) { licExplosivoLbl.Text += "*"; fechaExpiracionExplosivoLbl.Text += "*"; } } else { licExplosivoTxtBx.Enabled = false; fechaExpiracionExplosivoTxtBx.Enabled = false; licExplosivoLbl.Text = licExplosivoLbl.Text.Replace("*", string.Empty); fechaExpiracionExplosivoLbl.Text = fechaExpiracionExplosivoLbl.Text.Replace("*", string.Empty); } #region Set doc controls on postback LinkedList<DocumentoRequerido> docsRequeridos = (LinkedList<DocumentoRequerido>)Session["docsRequeridos"]; if (docsRequeridos != null) { CreateDocAsociadosCtrl(docsRequeridos); CreateDocReqCtrls(docsRequeridos); } #endregion } }