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)); } }
protected void btnSolicitud_Click(object sender, EventArgs e) { lblMensaje.Text = ""; lblMensaje.Visible = false; this.trMensajeError.Visible = false; string GuiasError = ""; int cant = 0; DataTable dt = new DataTable();//data table para que vaya cargando todas las guias con todos los mails repetidos dt.Columns.Add("GuiaID"); dt.Columns.Add("Email"); dt.Columns.Add("Observa"); dt.Columns.Add("NroCaso"); dt.Clear();//limpia los datos por las dudas que haya salido un error. para que los vuelva a cargar string EmailEnvia = txtMailGenerico.Text; string pass = txtPass.Text; if (EmailEnvia == "") {//mail que va a responder el cliente ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Falta ingresa el mail al cual el cliente va a responder la solicitud del turno. "); return; } if (pass == "") {//mail que va a responder el cliente ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Falta ingresa la contraseña del mail ingresado."); return; } 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 List <string> lstemail = new List <string>(); try { if (cant == 0) { throw new Exception("Debe ingresar al menos una guia, para solicitar turnos"); } 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 txtMailCliente = "txtMailCliente" + i.ToString(); //cargo el mail ingresado string txtDetalleUsuario = "txtDetalleUsuario" + i.ToString(); //cargo el detalle ingresado string Nrocaso = Request.Form[txtNroCaso].ToString(); string nroGuia = Request.Form[txt].ToString(); string Email = Request.Form[txtMailCliente].ToString(); string ObDetalle = Request.Form[txtDetalleUsuario].ToString(); string[] separadas; separadas = Email.Split(';'); 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; //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 { 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 == "") { //si no tiene error lo que cargan que se agregue en la tabla e inserte los datos //carga las guias y los mails for (int im = 0; im < separadas.Count(); im++) { dst.Datos.AddDatosRow(Convert.ToString(guiaidST), separadas[im].ToString(), Nrocaso, ObDetalle); try { _guiasDominio.DatosTurnosINS(guiaidST, separadas[im].ToString(), usuario.UsuarioID); } catch { } DataRow row2 = dt.NewRow(); if (!lstemail.Contains(separadas[im].ToString())) { lstemail.Add(separadas[im].ToString()); } } try { //guarda en la tabla de pedido de turno //el clienteid va en 0, porque se penso guardar por cliente por las dudas, pero dp se cambio Fquiroga Int32?datos = _guiasDominio.InsertarSolictudDeTurno(guiaidST, 0, Nrocaso, usuario.UsuarioID, ObDetalle); lstDatosIngresados.Add(datos); } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje((ex.Message)); } } }//termina de ver las guias que estan cargando if (lstDatosIngresados.Count() > 0)//es para que no envie mail si no se inserto ningun dato { for (int em = 0; em < lstemail.Count(); em++) {//recorre los mails cargados string GuiaID = ""; string observaciones = ""; string NroCaso = ""; for (int da = 0; da < dst.Datos.Count; da++)//recore el ds que tiene todos los mails con las guias { if (dst.Datos[da].Email == lstemail[em].ToString()) { //compara si es el mismo mail //si es guarda las guias que tiene ese mail if (GuiaID == "") { GuiaID = dst.Datos[da].GuiaID; } else { GuiaID = GuiaID + "," + dst.Datos[da].GuiaID; } observaciones = dst.Datos[da].Observacion; NroCaso = dst.Datos[da].NroCaso; } } DataRow row2 = dt.NewRow(); row2["GuiaID"] = Convert.ToString(GuiaID); row2["Email"] = lstemail[em].ToString(); row2["Observa"] = observaciones; row2["NroCaso"] = NroCaso; dt.Rows.Add(row2); } //para realizar el envio de mail //envia la tabla con todos los datos separados por mail. Para que no se envie mas de un mail por mail. Fquiroga try { IUsuarios usu = UsuariosFactory.GetUsuario(); usu.MandarMailClientesFechaEntrega(dt, EmailEnvia, pass); } catch { throw new Exception("Contraseña o Mail mal ingresado."); } } if (GuiasError == "")//si alguna guia tiene algun error { this.txtGuiaIndex.Text = "0"; string scriptString = "<script language=JavaScript>\n"; scriptString += "alert('Solicitud de Turno Exitosamente');\n"; scriptString += "</script>"; Page.RegisterStartupScript("scrip", scriptString); } else { this.txtGuiaIndex.Text = "0"; lblMensaje.Text = "Las siguientes guias tienen problemas para solicitar turnos: " + GuiasError; lblMensaje.Visible = true; this.trMensajeError.Visible = true; } } } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje((ex.Message)); } }