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); } }
/**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); } }