Exemple #1
0
        private void BindGridSolicitud(bool configurarExportarExcel)
        {
            try
            {
                DateTime fechaDesde = this.txtFechaDesde.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaDesde.Text) : Utiles.Fechas.FormatFechaDDMMYYYY("01/01/1900"),
                         fechaHasta = this.txtFechaHasta.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaHasta.Text) : DateTime.Today;
                if (fechaDesde > fechaHasta)
                {
                    throw new Exception("La fecha hasta debe ser mayor a la fecha desde");
                }

                if (configurarExportarExcel == true)
                {
                    // Tengo qu econfigurar para exportar a excel
                    dtgDatosHR.AllowPaging = false;
                    dtgDatosHR.BorderWidth = Unit.Pixel(0);
                    dtgDatosHR.BorderColor = System.Drawing.Color.White;
                    dtgDatosHR.BorderStyle = BorderStyle.None;
                }

                IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>();


                if (txtFechaDesde.Text == "")
                {
                    fechaInicio = Convert.ToDateTime("1990/01/01");
                }
                else
                {
                    fechaInicio = Convert.ToDateTime(txtFechaDesde.Text);
                }

                if (txtFechaHasta.Text == "")
                {
                    fechaFin = DateTime.Now;
                }
                else
                {
                    fechaFin = Convert.ToDateTime(txtFechaHasta.Text);
                }

                if (Session["guiasSolicitud"] == null)
                {
                    _guiasReporteConfirma = _guiasDominio.GetDatosReporteRetenida(fechaInicio, fechaFin);
                    dtgDatosHR.DataSource = _guiasReporteConfirma;
                    dtgDatosHR.DataBind();
                    //  dtgConfirmacion.Visible = false;
                    dtgDatosHR.Visible = true;
                    if (_guiasReporteConfirma.Count > 0)
                    { //quiere decir que tiene datos se habilita el boton de exportar
                        btnExportar.Enabled = true;
                    }
                }
            }
            catch (Exception ex) {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        private void BindGrid(bool configurarExportarExcel)
        {
            IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>();

            if (configurarExportarExcel == true)
            {
                // Tengo qu econfigurar para exportar a excel
                dtgDatosHR.AllowPaging = false;

                dtgDatosHR.BorderWidth = Unit.Pixel(0);
                dtgDatosHR.BorderColor = System.Drawing.Color.White;
                dtgDatosHR.BorderStyle = BorderStyle.None;
            }

            if (Session["DsReporteDisponibilidad"] == null)
            {
                string nrohojaruta = txtNroHojaRuta.Text;

                try
                {
                    nroCompleto = nrohojaruta.Split('-');
                }
                catch
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Nro de hoja de ruta repartidor mal ingresado");
                    return;
                }
                _guiasReporte         = _guiasDominio.GetGuiasByHojaRutaRepartidor(Convert.ToInt32(nroCompleto[1]), Convert.ToInt32(nroCompleto[0]));
                dtgDatosHR.DataSource = _guiasReporte;
                dtgDatosHR.DataBind();
                Session["DsReporteDisponibilidad"] = _guiasReporte;

                if (_guiasReporte.Count > 0)
                { //quiere decir que tiene datos se habilita el boton de exportar
                    btnExporta.Enabled = true;
                }
            }
        }
        public void MandarMailClientesFechaEntrega(DataTable datos, string MailAgencia, string pass)
        {
            string[] MailCadena = { "" };
            string[] separadas  = { "" };
            try
            {
                try
                {
                    MailCadena = pass.Split('@');
                }
                catch
                {
                    throw new Exception("Mail mal ingresado.");
                }

                Guia Guias = new Guia();
                IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>();

                List <Dominio.Entidades.DatosGuiasTurno> lstDatosGuia = new List <Dominio.Entidades.DatosGuiasTurno>();

                string DatosMail = "";
                for (int i = 0; i < datos.Rows.Count; i++)
                {
                    string nroguias = "";
                    string guias    = datos.Rows[i].ItemArray[0].ToString();

                    string mails = datos.Rows[i].ItemArray[1].ToString();
                    if (mails != "")//para que no de error por si no cargan mails
                    {
                        separadas = guias.Split(',');

                        for (int g = 0; g < separadas.Length; g++)
                        {
                            Guias.GuiaID = Convert.ToInt32(separadas[g].ToString());
                            Guias.Consultar();
                            //para que recupere los datos de la guia
                            lstDatosGuia = _guiasDominio.getDatosGuiasTurnos(Convert.ToInt32(Guias.GuiaID));
                            string obser = lstDatosGuia[0].ObservacionSolicitud;

                            string NroCaso = lstDatosGuia[0].NroPedido;  // datos.Rows[i].ItemArray[3].ToString();


                            lstClietnes = _guiasDominio.GetDatosClientesByGuiaID(Convert.ToInt32(separadas[g].ToString()));


                            nroguias = Guias.TipoGuia + "-" + Guias.NroSucursalGuia + "-" + Guias.NroGuia;

                            if (DatosMail == "")
                            {
                                DatosMail = "<table><tr><td>Estimado " + lstClietnes[0].Destinatario + "</td></tr><tr><td>Solicitamos Turno para las siguientes entregas : <br/>" + lstClietnes[0].Remitente + " con la guia de andesmar numero " + nroguias + " con las siguientes caracteristicas:</td></tr><tr><td>" + obser + "</td></tr></table>";
                            }
                            else
                            {
                                DatosMail = DatosMail + "<table><tr><td><br/> " + lstClietnes[0].Remitente + " con la guia de andesmar numero " + nroguias + " con las siguientes caracteristicas:</td></tr><tr><td>" + obser + "</td></tr></table>";
                            }
                        }

                        string smtpAddress    = "mail.andesmar.com.ar"; // "mail.andesmar.com.ar";
                        Int32  portNumber     = int.Parse("25");        //25;
                        string fromaddress    = MailAgencia;            //"*****@*****.**";
                        string fromName       = "Solicitud de Turno";   // "Mail Automatico - Interface Sitt Micronauta";
                        bool   useCredentials = true;
                        string userName       = MailAgencia;            //"*****@*****.**"; // "*****@*****.**";
                        string password       = pass;                   // "ntexpress1"; // "ntexpress1";

                        SmtpClient  insSmtpClient  = new SmtpClient(smtpAddress, portNumber);
                        MailMessage insMailMessage = new MailMessage();
                        insMailMessage.From = new MailAddress(fromaddress, fromName);

                        insMailMessage.To.Add(mails);

                        insMailMessage.Body = "" + DatosMail + "<br/><tr><td>Por favor responder el mail con las posibles fechas de entrega" + "</td></tr><br/><tr><td>Gracias por su tiempo.</td></tr><br/><tr><td>Saludos.</td></tr>";

                        insMailMessage.Subject    = "Solicitud de Turno para Entrega"; // "Subject";
                        insMailMessage.IsBodyHtml = true;

                        if (useCredentials)
                        {
                            NetworkCredential insNetworkCredential = new NetworkCredential(userName, password);
                            insSmtpClient.Credentials = insNetworkCredential;
                        }

                        insMailMessage.Priority = MailPriority.High;

                        insSmtpClient.Send(insMailMessage);

                        DatosMail = "";
                    }
                }
            }
            catch (SmtpException ex)
            {
                throw;
            }
        }
        protected void btnFinRetencion_Click(object sender, EventArgs e)
        {
            int cant = 0;

            lblMensajeConfirma.Text         = "";
            lblMensajeConfirma.Visible      = false;
            this.lblMensajeConfirma.Visible = false;
            this.trError.Visible            = false;

            IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>();

            usuario = (IUsuarios)Session["usuario"];                                     //cargo el usuario
            cant    = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndexConfirma.Text); //la cantidad de guias cargadas
            string     Errores = "", ObDetalle = "";
            List <int> GuiasBien = new List <int>();
            string     txtFecha  = "";

            for (int i = 0; i < cant; i++)
            {
                string txt = "txtConfirma" + i;                                                //cargo el numero de la guia
                string ddl = "ddl" + i.ToString();
                string txtFechaConfirma          = "txtFechaConfirma" + i.ToString();          //cargo la fecha
                string txtDetalleUsuarioConfirma = "txtDetalleUsuarioConfirma" + i.ToString(); //cargo el detalle ingresado

                txtFecha = Request.Form[txtFechaConfirma].ToString();

                string nroGuia = Request.Form[txt].ToString();
                ObDetalle = Request.Form[txtDetalleUsuarioConfirma].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
                {
                    //valido que lo ingresado sea una fecha.
                    Convert.ToDateTime(txtFecha);
                    //valida que la fecha no sea menor a la fecha actual

                    //if (Convert.ToDateTime(txtFecha) < hoy)
                    //    if (Errores == "")
                    //    {
                    //        Errores = "Fecha mal ingresada " + txtFecha + "para la guia " + tGuia + "-" + nroSucursal + nGuia;
                    //    }
                    //    else
                    //    {
                    //        Errores = Errores + "Fecha mal ingresada " + txtFecha + "para la guia " + tGuia + "-" + nroSucursal + nGuia;
                    //    }
                }
                catch
                {
                    if (Errores == "")
                    {
                        Errores = "Debe ingresar una Fecha para la guia " + tGuia + "-" + nroSucursal + nGuia;
                    }
                    else
                    {
                        Errores = Errores + "Debe ingresar una Fecha para la guia " + tGuia + "-" + nroSucursal + nGuia;
                    }
                }
                //si tiene error que no entre que directamente muestre el error

                if (Errores == "")
                {
                    if (_guiasDominio.ValidaGuiaRetenidas(guiaidST) != 0)//quiere decir que se envio el mail esta cargado en la tabla verificar si esta en estado 1
                    {
                        if (Errores == "")
                        {
                            Errores = tGuia + "-" + nroSucursal + "-" + nGuia;
                        }
                        else
                        {
                            Errores = Errores + tGuia + "-" + nroSucursal + "-" + nGuia;
                        }
                    }
                }
                if (Errores == "")
                {
                    //guarda las guias que no traen ningun error
                    GuiasBien.Add(guiaidST);
                }
            }
            //recorre para actualizar las guias que estan bien
            try
            {
                for (int i2 = 0; i2 < GuiasBien.Count; i2++)
                {
                    _guiasDominio.ActualizaEstadoFechaRetenida(guiaidST, Convert.ToDateTime(txtFecha), usuario.UsuarioID, ObDetalle);//actualiza el estado y carga la fecha
                }
            }
            catch
            {
                string scriptString = "<script language=JavaScript>\n";
                scriptString += "alert('Error al intentar finalizar la retencion');\n";
                scriptString += "</script>";
                Page.RegisterStartupScript("scrip", scriptString);
            }
            if (Errores == "")
            {
                this.txtGuiaIndexConfirma.Text = "0";
                string scriptString = "<script language=JavaScript>\n";
                scriptString += "alert('Retención finalizada.');\n";
                scriptString += "</script>";
                Page.RegisterStartupScript("scrip", scriptString);
            }

            else
            {
                this.txtGuiaIndexConfirma.Text  = "0";
                lblMensajeConfirma.Text         = "Las siguientes guias tienen problemas para ser retenidas: " + Errores;
                lblMensajeConfirma.Visible      = true;
                this.lblMensajeConfirma.Visible = true;
                this.trError.Visible            = true;
            }
        }
        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));
            }
        }
Exemple #6
0
        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));
            }
        }
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];
            int       UV;
            bool      ok       = true;
            Hashtable hGuias   = new Hashtable(); // Guías que no se pueden Observar, porque son de ag. no automatizadas o no existen
            Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser Observadas

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS

                string txt           = "txt" + i;
                string obs           = "Obs" + i.ToString() + "$txtObservacionID";
                string obsCodigo     = "Obs" + i.ToString() + "$txtCodigo";
                string obsDescrip    = "Obs" + i.ToString() + "$txtObsDescrip";
                string txtODetallada = "txtODetallada" + i.ToString();//cargo la observacion
                string ddl           = "ddl" + i.ToString();

                string nroGuia       = Request.Form[txt].ToString();
                string observacionID = Request.Form[obs].ToString();
                string sObsCodigo    = Request.Form[obsCodigo].ToString();
                string sObsDescrip   = Request.Form[obsDescrip].ToString();
                string sobDetallada  = Request.Form[txtODetallada].ToString();


                // Lógica para observar guías
                string tGuia = "";

                tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));
                string nroSucursal = nroGuia.Substring(1, 4);
                string nGuia       = nroGuia.Substring(5);

                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                oGuia.NroSucursalGuia = nroSucursal;
                oGuia.TipoGuia        = tGuia;
                oGuia.Consultar();
                oGuia.EsRecepcion     = 1;
                oGuia.UnidadNegocioID = this.UnidadNegocioID;
                //oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                oGuia.UsuarioID = usuario.UsuarioID;


                if (sobDetallada == "")//quiere decir que no tiene una observacion detallada. Entonces no la guardo en la tabla ObservacionGuiaPersonalizada.FQuiroga
                {
                    // si la guía existe en el sistema, la observa
                    if (oGuia.GuiaID > 0)
                    {
                        // Reviso si la guía es observable
                        if (oGuia.EsObservable(oGuia.GuiaID, AgenciaConectadaID) && Utiles.Validaciones.obtieneEntero(observacionID) != 0)
                        {
                            //   Observar(oGuia.GuiaID, usuario.UsuarioID, Utiles.Validaciones.obtieneEntero(observacionID));
                            IGuia oGuiaObs = GuiaFactory.GetGuia();
                            oGuiaObs.GuiaID        = oGuia.GuiaID;
                            oGuiaObs.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            oGuiaObs.UsuarioID     = usuario.UsuarioID;
                            oGuiaObs.Observar();

                            UV = oGuiaObs.GetGuiaUnidadVenta();
                            if (oGuiaObs.ObservacionID == 95 && (UV == 6 || UV == 25))
                            {
                                oGuiaObs.GuiaID = oGuia.GuiaID;
                                ConfirmarGuia(oGuia.GuiaID);
                            }
                        }
                        else
                        {
                            hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                        }
                    }
                    else
                    {
                        // si la guía no existe en el sistema, ya sea porque fue emitida por una agencia no
                        // automatizada o bien porque se emitió en forma manual por una automatizada
                        // hay que visualizarla nuevamente para que se ingresen los datos correspondientes
                        ok = false;

                        string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip;
                        if (hGuias.ContainsKey(nroGuia) == false)
                        {
                            hGuias.Add(nroGuia, obsTemp);
                        }
                    }
                    // fin for

                    Session["GuiasNR"] = hGuiasNR;

                    if (ok)
                    {
                        Session["GuiasDefectuosas"] = null;
                        string scriptString = "<script language=JavaScript>\n";
                        scriptString += "alert('Observacion cargada correctamente');\n";
                        scriptString += "</script>";
                        Page.RegisterStartupScript("scrip", scriptString);

                        Response.Redirect("ObservacionTransito.aspx");
                    }
                    else
                    {
                        this.txtGuiasDefectuosas.Text = "1";
                        Session["GuiasDefectuosas"]   = hGuias;
                        Response.Redirect("ObservacionTransito.aspx?d=1");
                    }
                }


                else//en caso que tenga una observacion detallada
                {
                    IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>();
                    // si la guía existe en el sistema, la observa
                    if (oGuia.GuiaID > 0)
                    {
                        // Reviso si la guía es observable
                        if (oGuia.EsObservable(oGuia.GuiaID, AgenciaConectadaID) && Utiles.Validaciones.obtieneEntero(observacionID) != 0)
                        {
                            IGuia oGuiaObs = GuiaFactory.GetGuia();
                            oGuiaObs.GuiaID        = oGuia.GuiaID;
                            oGuiaObs.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            oGuiaObs.UsuarioID     = usuario.UsuarioID;
                            oGuiaObs.Observar();


                            UV = oGuiaObs.GetGuiaUnidadVenta();
                            if (oGuiaObs.ObservacionID == 95 && (UV == 6 || UV == 25))
                            {
                                oGuiaObs.GuiaID = oGuia.GuiaID;
                                ConfirmarGuia(oGuia.GuiaID);
                            }
                            _guiasDominio.ObservacionPersonalInsert(oGuia.GuiaID, Utiles.Validaciones.obtieneEntero(observacionID), sobDetallada);
                        }
                        else
                        {
                            hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                        }
                    }
                    else
                    {
                        // si la guía no existe en el sistema, ya sea porque fue emitida por una agencia no
                        // automatizada o bien porque se emitió en forma manual por una automatizada
                        // hay que visualizarla nuevamente para que se ingresen los datos correspondientes
                        ok = false;

                        string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip;
                        if (hGuias.ContainsKey(nroGuia) == false)
                        {
                            hGuias.Add(nroGuia, obsTemp);
                        }
                    }
                } // fin for

                Session["GuiasNR"] = hGuiasNR;

                if (ok)
                {
                    Session["GuiasDefectuosas"] = null;
                    Response.Redirect("ObservacionTransito.aspx");
                }
                else
                {
                    this.txtGuiasDefectuosas.Text = "1";
                    Session["GuiasDefectuosas"]   = hGuias;
                    Response.Redirect("ObservacionTransito.aspx?d=1");
                }
            }
        }