예제 #1
0
        public string VerificarGuiaHojaRuta(string nroGuia)
        {
            IGuia guia = GuiaFactory.GetGuia();

            string tGuia = "";

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

            guia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
            guia.NroSucursalGuia = nroSucursal;
            guia.TipoGuia        = tGuia;
            guia.ConsultarByNroGuia();
            bool sePuedeDesasignar = true;
            int  hojaRutaID        = 0;
            int  agenciaParadaID   = 0;

            string nuevoDato = "";

            if (guia.GuiaID > 0)
            {
                DsHojaRuta ds = (DsHojaRuta)Session["HojaRutaVerificar"];
                DsHojaRuta.DatosAsociadosRow dr = (DsHojaRuta.DatosAsociadosRow)ds.DatosAsociados.Select("GuiaID = " + guia.GuiaID).FirstOrDefault();
                // Si la guia está en el DataSet de Datos asociados, quiere decir que la guia se esta verificando correctamente, y estaba incluida en la HR original que se esta verificando.
                if (dr != null && dr.GuiaID > 0)
                {
                    dr.VerificadaPorColectora = true;
                    ds.DatosAsociados.AcceptChanges();
                    Session["HojaRutaVerificar"] = ds;
                    nuevoDato = string.Concat(nroGuia, "@", "Verificada", "@", "", "@", "", "@", "", "@", dr.IsGuiaIDNull() ? 0 : dr.GuiaID, "@", 1, "@", "", "@", sePuedeDesasignar, "@", hojaRutaID, "@", "Bultos: ", dr.IsCantidadBultosTotalNull() ? 0 : dr.CantidadBultosTotal);
                }
                // Si la guia NO está en el DataSet de Datos asociados, quiere decir que la guia que se está buscando no estaba incluida en la HR original que se esta verificando.
                // Voy a verificar el estado actual para saber si se puede desasignar o no.
                else
                {
                    // Voy a buscar si la guia esta en dataset de guias no asociadas, si es asi, seteo la agencia en el caso de que tenga una parada asignada, de esta forma el usuario no debe seleccionar
                    DsHojaRuta.DatosNoAsociadosRow drN = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.Select("GuiaID = " + guia.GuiaID).FirstOrDefault();
                    if (drN != null && drN.GuiaID > 0)
                    {
                        agenciaParadaID = drN.IsAgenciaIDNull() ? 0 : drN.AgenciaID;
                    }

                    // Buscar Nro de HR y de servicio si es que actualmente esta en otra Hoja de Ruta, tambien buscar estado de Ubicacion y de Movimiento.
                    // Buscar tambien si la guia se puede incluir en esta HR
                    DsGuiaColectora ds1 = guia.VerificarDatosColectoraGuiaHojaRuta();
                    foreach (DsGuiaColectora.DatosRow dr1 in ds1.Datos.Rows)
                    {
                        nuevoDato = string.Concat(nroGuia, "@", "No pertenece a la HR", "@", dr1.IsEstadoEstaticoDescripNull() ? "" : dr1.EstadoEstaticoDescrip, "@", dr1.IsEstadoMovimientoDescripNull() ? "" : dr1.EstadoMovimientoDescrip, "@", dr1.IsNroSucursalHojaRutaNull() ? "" : dr1.NroSucursalHojaRuta, "@", dr1.GuiaID, "@", 0, "@", dr1.IsServicioTransporteDescripNull() ? "" : dr1.ServicioTransporteDescrip, "@", dr1.IsSePuedeDesasignarDeHRNull() ? false : dr1.SePuedeDesasignarDeHR, "@", dr1.IsHojaRutaIDNull() ? 0 : dr1.HojaRutaID, "@", "Bultos: ", dr1.IsCantidadBultosTotalNull() ? 0 : dr1.CantidadBultosTotal, "@", dr1.IsSePuedeIncluirEnHRNull() ? false : dr1.SePuedeIncluirEnHR, "@", agenciaParadaID);
                    }
                }
            }
            return(nuevoDato);
        }
예제 #2
0
        public string VerificarGuiaHojaRuta(string nroGuia)
        {
            IGuia guia = GuiaFactory.GetGuia();

            string tGuia = "";

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

            guia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
            guia.NroSucursalGuia = nroSucursal;
            guia.TipoGuia        = tGuia;
            guia.ConsultarByNroGuia();

            string nuevoDato = "";

            if (guia.GuiaID > 0)
            {
                DsHojaRuta ds = (DsHojaRuta)Session["HojaRuta"];
                DsHojaRuta.DatosNoAsociadosRow dr = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosAsociados.Select("GuiaID = " + guia.GuiaID).FirstOrDefault();
                if (dr != null && dr.GuiaID > 0)
                {
                    ds.DatosAsociados.AcceptChanges();
                    Session["HojaRuta"] = ds;
                }
                else
                {
                    // Buscar Nro de HR y de servicio si es que actualmente esta en otra Hoja de Ruta, tambien buscar estado de Ubicacion y de Movimiento.
                    DsGuiaColectora ds1 = guia.VerificarDatosColectoraGuiaHojaRuta();
                    foreach (DsGuiaColectora.DatosRow dr1 in ds1.Datos.Rows)
                    {
                        nuevoDato = string.Concat(nroGuia, "&", "No pertenece a la HR", "&", dr1.IsEstadoEstaticoDescripNull() ? "" : dr1.EstadoEstaticoDescrip, "&", dr1.IsEstadoMovimientoDescripNull() ? "" : dr1.EstadoMovimientoDescrip, "&", dr1.IsNroSucursalHojaRutaNull() ? "" : dr1.NroSucursalHojaRuta, "&", dr1.GuiaID, "&", 0, ";");
                    }
                }
            }

            return(nuevoDato);
        }
        private void butAsignarParada_Click(object sender, System.EventArgs e)
        {
            //Asignar una guia a una parada determinada
            ds = (DsHojaRuta)Session["HojaRutaColectora"];
            int idAgencia;
            int guiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);

            if (this.ddlParada.SelectedValue != "")
            {
                idAgencia = Convert.ToInt32(this.ddlParada.SelectedValue);
                DsHojaRuta.DatosNoAsociadosRow dr1 = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.NewRow();

                DsHojaRuta.DatosNoAsociadosRow[] dr = (DsHojaRuta.DatosNoAsociadosRow[])ds.DatosNoAsociados.Select("GuiaID = " + guiaID);
                if (dr.Length > 0)
                {
                    dr1           = dr[0];
                    dr1.AgenciaID = idAgencia;
                    ds.DatosAsociados.ImportRow(dr1);

                    // Debo buscar si la guia fue incluida en el listado de guias erroneas, si fue asi debo sacarla para no mostrarla como error, porque ya fue incluida.

                    if (dsGuiasNR == null)
                    {
                        dsGuiasNR = new DsGuiaColectora();
                    }

                    // Debo buscar si la guia fue incluida en el listado de guias erroneas, si fue asi debo sacarla para no mostrarla como error, porque ya fue incluida.
                    if (dsGuiasNR.Datos.FindByGuiaID(dr1.GuiaID) != null)
                    {
                        dsGuiasNR.Datos.RemoveDatosRow(dsGuiasNR.Datos.FindByGuiaID(dr1.GuiaID));
                    }

                    ds.DatosNoAsociados.RemoveDatosNoAsociadosRow(dr1);
                    this.lblMensajError.Text = "INFO: La guia se asocio a la Hoja de Ruta.";
                }
                else
                {
                    // Guías que no están en condiciones de ser incluidas en la Hoja de Ruta. Porque no esta en el dataset de Hojas de Ruta
                    IGuia oGuia = GuiaFactory.GetGuia();
                    oGuia.GuiaID = guiaID;
                    oGuia.ConsultarGuiaColectoraHojaRuta();

                    string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                    this.lblMensajError.Text = "La guia no esta en condiciones de ser incluida en la hoja de ruta. Motivo: " + oGuia.MotivoNoRecepcionable;


                    if (dsGuiasNR == null)
                    {
                        dsGuiasNR = new DsGuiaColectora();
                    }

                    if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                    {
                        dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                    }
                }
            }
            else
            {
                // No se le asigno una parada valida. La guia esta en el dataset pero no se asigno una parada valida
                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.GuiaID = guiaID;
                oGuia.ConsultarGuiaColectoraHojaRuta();

                string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                this.lblMensajError.Text = "";

                oGuia.MotivoNoRecepcionable = "No hay parada para el Destino de la Guía.";

                if (dsGuiasNR == null)
                {
                    dsGuiasNR = new DsGuiaColectora();
                }

                if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                {
                    dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                }
            }
            //uppnlDatosParadas.Update();
            BindData(true);
            this.tblGuias.Attributes.Add("style", "display:none");
            //this.txtSeleccion.Text = "";
            datosGuias = this.txtGuia.Text + "@" + this.txtDestino.Text + "@" + this.txtBultos.Text + "@" + this.lblMensajError.Text;
        }
        private void butAsignar_Click(object sender, System.EventArgs e)
        {
            //Asignar automaticamente todas las guias que tengan como agencia destino
            //una agencia parada en el recorrido seleccionado

            DsHojaRuta.DatosNoAsociadosRow dr1 = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.NewRow();

            int guiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);

            DsHojaRuta.DatosNoAsociadosRow[] dr = (DsHojaRuta.DatosNoAsociadosRow[])ds.DatosNoAsociados.Select("GuiaID = " + guiaID);
            if (dr.Length > 0)
            {
                dr1 = dr[0];
                if (dr1.AgenciaID > 0)
                {
                    ds.DatosAsociados.ImportRow(dr1);
                    ds.DatosNoAsociados.RemoveDatosNoAsociadosRow(dr1);
                    this.lblMensajError.Text = "INFO: La guia se asocio a la Hoja de Ruta.";
                }
                else // No se le asigno una parada valida. La guia esta en el dataset pero no se asigno una parada valida
                {
                    IGuia oGuia = GuiaFactory.GetGuia();
                    oGuia.GuiaID = guiaID;
                    oGuia.ConsultarGuiaColectoraHojaRuta();

                    string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                    if (dsGuiasNR == null)
                    {
                        dsGuiasNR = new DsGuiaColectora();
                    }

                    oGuia.MotivoNoRecepcionable = "No hay parada para el Destino de la Guía.";
                    if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                    {
                        dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                    }

                    this.lblMensajError.Text      = "ERROR: No hay parada para el Destino de la Guía. Seleccione una por favor, y vuelva a leer la guia.";
                    this.lblMensajError.ForeColor = Color.Red;
                }
            }
            else
            {
                // Guías que no están en condiciones de ser incluidas en la Hoja de Ruta. Porque no esta en el dataset de Hojas de Ruta.
                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.GuiaID = guiaID;
                oGuia.ConsultarGuiaColectoraHojaRuta();

                string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                if (dsGuiasNR == null)
                {
                    dsGuiasNR = new DsGuiaColectora();
                }

                if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                {
                    dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                }

                this.lblMensajError.Text = "La guia no esta en condiciones de ser incluida en la hoja de ruta. Motivo: " + oGuia.MotivoNoRecepcionable;
            }
            //uppnlDatosParadas.Update();
            Session["HojaRutaColectora"] = ds;
            BindData(true);
            //this.txtSeleccion.Text = "";
            this.tblGuias.Attributes.Add("style", "display:none");

            datosGuias = this.txtGuia.Text + "@" + this.txtDestino.Text + "@" + this.txtBultos.Text + "@" + this.lblMensajError.Text;
        }
        private void butAsignarParada_Click(object sender, System.EventArgs e)
        {
            //Asignar una guia a una parada determinada
            ds = (DsHojaRuta)Session["HojaRutaVerificar"];
            int idAgencia;
            int guiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);

            if (this.ddlParada.SelectedValue != "")
            {
                idAgencia = Convert.ToInt32(this.ddlParada.SelectedValue);
                DsHojaRuta.DatosNoAsociadosRow dr1 = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.NewRow();

                DsHojaRuta.DatosNoAsociadosRow[] dr = (DsHojaRuta.DatosNoAsociadosRow[])ds.DatosNoAsociados.Select("GuiaID = " + guiaID);
                // Si se encontro en el DataSet
                if (dr.Length > 0)
                {
                    dr1           = dr[0];
                    dr1.AgenciaID = idAgencia;
                    ds.DatosAsociados.ImportRow(dr1);
                }
                else
                {
                    dr1.GuiaID    = Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text);
                    dr1.AgenciaID = idAgencia;

                    string tGuia = "";
                    tGuia = NegociosSisPackInterface.SisPack.TipoGuia(txtNroCompletoGuia.Text.Substring(0, 1));
                    string nroSucursal = txtNroCompletoGuia.Text.Substring(1, 4);
                    string nGuia       = txtNroCompletoGuia.Text.Substring(5);
                    dr1.NroSucursalGuia     = Utiles.Validaciones.obtieneEntero(nroSucursal);
                    dr1.NroGuia             = Utiles.Validaciones.obtieneEntero(nGuia);
                    dr1.TipoGuia            = tGuia;
                    dr1.NroCompletoGuia     = dr1.NroSucursalGuia + "-" + dr1.NroGuia + "-" + dr1.TipoGuia;
                    dr1.CantidadBultosTotal = Utiles.Validaciones.obtieneEntero(txtCantidadBultosTotal.Text);
                    ds.DatosAsociados.AddDatosAsociadosRow(null, dr1.TipoGuia, dr1.GuiaID, 0, 0, dr1.AgenciaID, DateTime.Now, "", "", "", dr1.CantidadBultosTotal, 0, dr1.NroSucursalGuia, dr1.NroGuia, dr1.NroCompletoGuia, 0, 0, "", "", "", "", 0, true, 0, "", "", dr1.flete);
                }


                //if (dr.Length > 0)
                //{
                //    dr1 = dr[0];
                //dr1.AgenciaID = idAgencia;
                //ds.DatosAsociados.ImportRow(dr1);
                ds.DatosAsociados.AcceptChanges();

                // La guia debe incorporarse a la HR, pero ademas debe quedar verificada por colectora, por eso seteo el valor en true.
                DsHojaRuta.DatosAsociadosRow dr2 = (DsHojaRuta.DatosAsociadosRow)ds.DatosAsociados.Select("GuiaID = " + dr1.GuiaID).FirstOrDefault();
                if (dr2 != null && dr2.GuiaID > 0)
                {
                    dr2.VerificadaPorColectora = true;
                    ds.DatosAsociados.AcceptChanges();

                    // En las siguiente IF voy a comprobar si existe un ID de Hoja de Ruta seteado, si es asi, quiere decir que la guia estaba en esta HR sin confirmar y se debe sacar de la misma.
                    if (this.txtHojaRutaIDABorrar.Text.ToString() != string.Empty)
                    {
                        Utiles.Validaciones.obtieneEntero(this.txtHojaRutaIDABorrar.Text);
                        // Quiere decir que la guia estaba en otra HR sin confirmar y debo sacarla de la misma. Marco el ID en la fila para procesarla al momento de guardarla.
                        if (dr2 != null && dr2.GuiaID > 0)
                        {
                            dr2.HojaRutaIDABorrar = Utiles.Validaciones.obtieneEntero(this.txtHojaRutaIDABorrar.Text);
                            ds.DatosAsociados.AcceptChanges();
                        }
                        this.txtHojaRutaIDABorrar.Text = "";
                    }
                }
                this.lblMensajError.Text = "";

                // Debo buscar si la guia fue incluida en el listado de guias erroneas, si fue asi debo sacarla para no mostrarla como error, porque ya fue incluida.
                string guia = dr1.NroSucursalGuia + "-" + dr1.NroGuia + "-" + dr1.TipoGuia;
                if (hGuiasNR == null)
                {
                    hGuiasNR = new Hashtable();
                }
                if (hGuiasNR.ContainsKey(guia) == true)
                {
                    hGuiasNR.Remove(guia);
                }

                if (dr.Length > 0)
                {
                    ds.DatosNoAsociados.RemoveDatosNoAsociadosRow(dr1);
                }
                //}
                //else
                //{
                //    // Guías que no están en condiciones de ser incluidas en la Hoja de Ruta. Porque no esta en el dataset de Hojas de Ruta
                //    IGuia oGuia = GuiaFactory.GetGuia();
                //    oGuia.GuiaID = guiaID;
                //    oGuia.ConsultarGuiaColectoraHojaRuta();

                //    string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;
                //    if (hGuiasNR == null)
                //        hGuiasNR = new Hashtable();
                //    if (hGuiasNR.ContainsKey(guia) == false)
                //    {
                //        hGuiasNR.Add(guia, oGuia.MotivoNoRecepcionable);
                //    }
                //    this.lblMensajError.Text = "";

                //}
            }
            else
            {
                // No se le asigno una parada valida. La guia esta en el dataset pero no se asigno una parada valida
                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.GuiaID = guiaID;
                oGuia.ConsultarGuiaColectoraHojaRuta();

                string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;
                if (hGuiasNR == null)
                {
                    hGuiasNR = new Hashtable();
                }
                if (hGuiasNR.ContainsKey(guia) == false)
                {
                    hGuiasNR.Add(guia, "No hay parada para el Destino de la Guía.");
                }
                this.lblMensajError.Text = "";
            }
            //uppnlDatosParadas.Update();
            BindData(true);
            this.tblGuias.Style.Add(HtmlTextWriterStyle.Display, "none");
            this.tblAsignacion.Style.Add(HtmlTextWriterStyle.Display, "none");
            uppnlDatosGuias.Update();

            //this.txtSeleccion.Text = "";
            this.ddlParada.SelectedValue = "";
            this.ddlParada.Enabled       = true;
        }