private void dtgOrdenRetiro_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            try
            {
                Session["OrdenRetiroID"] = e.Item.Cells[0].Text.ToString();
                IOrdenRetiro orden = OrdenRetiroFactory.GetOrdenRetiroFactory();
                orden.OrdenRetiroID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text.ToString());
                orden.Consultar();

                //controlar que la solicitud de retiro ya haya sido controlada
                ISolicitudRetiro solicitud = SolicitudRetiroFactory.GetSolicitudRetiroFactory();
                solicitud.SolicitudRetiroID = orden.SolicitudRetiroID;
                solicitud.Consultar();
                if (solicitud.EstadoSolicitudID == (int)NegociosSisPackInterface.SisPack.EstadoSolicitud.Controlada || solicitud.EstadoSolicitudID == (int)NegociosSisPackInterface.SisPack.EstadoSolicitud.ControladaWeb)               //esta en estado controlada
                {
                    //controlar que no haya  sido ya emitida
                    if (orden.Estado == "Generada")
                    {
                        Response.Redirect("OrdenRetiro.aspx?Llamador=OrdenRetiroConsul&index=0");
                    }
                    else
                    {
                        throw new Exception("La Orden de Retiro ya ha sido emitida.");
                    }
                }
                else
                {
                    throw new Exception("La solicitud de retiro no ha sido controlada aún.");
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
Ejemplo n.º 2
0
        /**Realiza los controles correspondientes sobre el codigo de barra de la orden de retiro y si
         * pasa los controles abre la pantalla de la orden de retiro
         * para saber si es una orden de retiro el codigo debe comenzar con 7
         * modelo de codigo de barra = 70010915000010
         * 7-(orden retiro) 001-(cant bultos) 0915- (codigo cliente corporativo) 000010- (numero orden)
         * */
        private bool verificarControles()
        {
            try
            {
                if ((txtCodBarraOrden.Text.Length != 0) && (txtCodBarraOrden.Text.Length == 14))
                //tiene que tener 14 caracteres el codigo
                {
                    if (verificarOrdenRetiro())
                    //es orden de retiro, comienza con 7
                    {
                        //nroOrdenRetiro=Utiles.Validaciones.obtieneEntero(txtCodBarraOrden.Text.Substring(8,6));
                        //extraigo el nro de orden y consulto los datos de la orden
                        nroOrdenR  = txtCodBarraOrden.Text;
                        nroCliente = Utiles.Validaciones.obtieneEntero(txtCodBarraOrden.Text.Substring(4, 4));
                        IOrdenRetiro orden = OrdenRetiroFactory.GetOrdenRetiroFactory();
                        orden.NumeroOrden = nroOrdenR;                      // nroOrdenRetiro.ToString();
                        orden.Consultar(nroCliente);
                        if (orden.OrdenRetiroID != 0)
                        {                        //es una orden de retiro correcta
                            if (orden.Estado == "Generada")
                            {
                                Session["SolicitudRetiroID"] = orden.SolicitudRetiroID;
                                Session["OrdenRetiroID"]     = orden.OrdenRetiroID;
                                //consulto los datos de la solicitud de retiro
                                ISolicitudRetiro solicitud = SolicitudRetiroFactory.GetSolicitudRetiroFactory();
                                solicitud.SolicitudRetiroID = orden.SolicitudRetiroID;
                                solicitud.Consultar();
                                Session ["NumeroSolicitud"] = solicitud.NumeroSolicitud;
                                lblNroSolicitud.Text        = solicitud.NumeroSolicitud.ToString();
                                cantBultosTotal             = orden.Bultos;
                                if (verificarCantidadBultosEnCodigo(orden.Bultos))
                                {                                //el codigo de barra tiene bien puesto la cantidad de bultos
                                    if (solicitud.EstadoSolicitudID == 4)
                                    {                            //la solicitud de retiro esta en estado controlada
                                        if (verificarCantidadBultos(orden.Bultos))
                                        {                        //ha ingresado tantos codigos de barra como la cantidad de bultos
                                            if (verificarCliente(nroCliente))
                                            {                    //la nueva orden es del mismo cliente
                                                cantBultosIngresado = 0;
                                                //le dejo seguir para que abra la orden de retiro
                                                return(true);
                                            }

                                            else
                                            {
                                                cantBultosIngresado = 0;
                                                throw new Exception("La orden de retiro ingresada no corresponde al mismo cliente.");
                                            }
                                        }
                                        else
                                        {
                                            throw new Exception("La cantidad de bultos ingresada no es correcta. Ingrese tantos códigos de barra como bultos tiene la orden de retiro.");
                                        }
                                    }
                                    else
                                    {
                                        cantBultosIngresado           = 0;
                                        lblNroSolicitudRetiro.Visible = true;
                                        lblNroSolicitud.Visible       = true;
                                        throw new Exception("La solicitud de retiro " + solicitud.NumeroSolicitud + " no ha sido controlada aún.");
                                    }
                                }
                                else
                                {
                                    cantBultosIngresado = 0;
                                    throw new Exception("La cantidad de bultos indicada en el código no coincide con la cantidad de bultos de la orden de retiro.");
                                }
                            }
                            else if (orden.Estado == "Emitida")
                            {
                                cantBultosIngresado = 0;
                                throw new Exception("La Orden de Retiro ya ha sido emitida.");
                            }
                            else
                            {
                                cantBultosIngresado = 0;
                                throw new Exception("La Orden de Retiro no tiene el estado correcto para emitir la guía.");
                            }
                        }
                        else
                        {
                            cantBultosIngresado = 0;
                            throw new Exception("El código de barra ingresado no es correcto, verifique número de orden, cliente y cantidad de bultos.");
                        }
                    }
                    else
                    {
                        cantBultosIngresado = 0;
                        throw new Exception("El código ingresado no corresponde con una órden de retiro.");
                    }
                }
                else
                {
                    cantBultosIngresado = 0;
                    throw new Exception("Debe ingresar un código de barras correcto.");
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                return(false);
            }
        }