protected void btnRetencion_Click(object sender, EventArgs e) { lblMensaje.Text = ""; lblMensaje.Visible = false; this.trMensajeError.Visible = false; string GuiasError = ""; int cant = 0; IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>(); List <Int32?> lstDatosIngresados = new List <Int32?>();//datos ya cargados List <Dominio.Entidades.ClienteSolicitaTurno> _datosCliente = new List <Dominio.Entidades.ClienteSolicitaTurno>(); DsDatosMailTurnos dst = new DsDatosMailTurnos(); usuario = (IUsuarios)Session["usuario"]; //cargo el usuario cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text); //la cantidad de guias cargadas try { if (cant == 0) { throw new Exception("Debe ingresar al menos una guia, para realizar una retención"); } else { for (int i = 0; i < cant; i++) { string txt = "txt" + i; //cargo el numero de la guia string ddl = "ddl" + i.ToString(); string txtNroCaso = "txtnroCaso2" + i.ToString(); //cargo el numero de caso string txtDetalleUsuario = "txtDetalleUsuario" + i.ToString(); //cargo el detalle ingresado string observacionManual = "txtDetalleUsuarioManual" + i.ToString(); string Nrocaso = Request.Form[txtNroCaso].ToString(); string nroGuia = Request.Form[txt].ToString(); string ObDetalle = Request.Form[txtDetalleUsuario].ToString(); string ObservacionManualUsuario = Request.Form[observacionManual].ToString(); string tGuia = ""; //separo el numero de la guia tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1)); string nroSucursal = nroGuia.Substring(1, 4); string nGuia = nroGuia.Substring(5); //traigo el guiaid IGuia oGuia = GuiaFactory.GetGuia(); oGuia.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); oGuia.NroSucursalGuia = nroSucursal; oGuia.TipoGuia = tGuia; oGuia.Consultar(); //cargo el guiaid para guardar en una tabla para que ya se sepa que guia se pidio turno guiaidST = oGuia.GuiaID; try{ Convert.ToInt32(ObDetalle); } catch { ObDetalle = "0"; }//Esto es para el caso que no ingresen numero //valida la observacion //ValidaaObservacionTRF int EsObservacion = Convert.ToInt32(_guiasDominio.ValidaObservacionTRF(Convert.ToInt32(ObDetalle))); if (EsObservacion == 1) //quiere decir que si existe la observacion ingresada { //valida que este en estado en destino para que se pueda solicitar turno y que sea de la agencia if (_guiasDominio.ValidaGuia(guiaidST) == "PendienteDeEntrega" || _guiasDominio.ValidaGuia(guiaidST) == "EnDestino")//trae los estados en destino o pedneinte de entrega { if (_guiasDominio.GuiaRetenidaEstados(guiaidST) == 1) {//se puede retener IAgencia ag = AgenciaFactory.GetAgencia(); ag.AgenciaID = this.AgenciaConectadaID; ag.Consultar(); if (oGuia.AgenciaDestinoID != ag.AgenciaID) {//por si se intenta solicitar turno de una agencia la cual //no es el destino real. if (GuiasError == "") { GuiasError = tGuia + "-" + nroSucursal + "-" + nGuia; } else { GuiasError = GuiasError + tGuia + "-" + nroSucursal + "-" + nGuia; } } } else {//la guia ya tiene un turno, o no se encuentra en el estado correspondiente //para solicitar turno. if (GuiasError == "") { GuiasError = tGuia + "-" + nroSucursal + "-" + nGuia; } else { GuiasError = GuiasError + tGuia + "-" + nroSucursal + "-" + nGuia; } } if (GuiasError == "") { try { //guarda en la tabla de guias retenidas retencion //el clienteid va en 0, porque se penso guardar por cliente por las dudas, pero dp se cambio Fquiroga Int32?datos = _guiasDominio.InsertarGuiaEnRetencion(guiaidST, 0, Nrocaso, usuario.UsuarioID, ObDetalle, ObservacionManualUsuario); lstDatosIngresados.Add(datos); } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje((ex.Message)); } } } else { GuiasError = GuiasError + tGuia + "-" + nroSucursal + "-" + nGuia; } } else { GuiasError = GuiasError + tGuia + "-" + nroSucursal + "-" + nGuia + "Código de Observación Incorrecto";//no existe la observacion ingresada } }//termina de ver las guias que estan cargando if (GuiasError == "")//si alguna guia tiene algun error { this.txtGuiaIndex.Text = "0"; string scriptString = "<script language=JavaScript>\n"; scriptString += "alert('Retención Exitosa');\n"; scriptString += "</script>"; Page.RegisterStartupScript("scrip", scriptString); } else { this.txtGuiaIndex.Text = "0"; lblMensaje.Text = "Las siguientes guias tienen problemas para ser retenidas: " + GuiasError; lblMensaje.Visible = true; this.trMensajeError.Visible = true; } } } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje((ex.Message)); } }