private void btnGenerar_Click(object sender, EventArgs e) { List <Colaborador> cajeros = new List <Colaborador>(); foreach (Colaborador cajero in clbCajeros.CheckedItems) { cajeros.Add(cajero); } numero_cajas = _grupo.Numero_cajas; _mantenimiento.reiniciarAsignacionManifiestoCajero(_grupo); _cajas_cajeros = _coordinacion.getRandomCajerosCEF(cajeros, numero_cajas); foreach (Colaborador cajero in _cajas_cajeros) { ManifiestoColaborador manifiestocolaborador = new ManifiestoColaborador(posicion: cajero.Caja, grupo: _grupo, manifiesto: null, cajero_receptor: cajero); _mantenimiento.agregarAsignacionManifiestoCajero(ref manifiestocolaborador); } //Guarda los datos de los cajeros a la base de datos frmOpcionesRegistro _padre = new frmOpcionesRegistro(_usuario); _padre.Close(); this.Close(); }
/// <summary> /// Listar todas las relaciones colaborador - manifiesto registradas del dia. /// </summary> /// <returns>Listar todas las relaciones colaborador - manifiesto registradas en el sistema</returns> public BindingList <ManifiestoColaborador> listarRegistrosCajerosAsignados(Grupo g) { BindingList <ManifiestoColaborador> registros = new BindingList <ManifiestoColaborador>(); SqlCommand comando = _manejador.obtenerProcedimiento("SelectManifiestoColaborador2"); SqlDataReader datareader = null; _manejador.agregarParametro(comando, "@grupo", g.Id, SqlDbType.TinyInt); try { datareader = _manejador.ejecutarConsultaDatos(comando); while (datareader.Read()) { int id = (int)datareader["ID_Colaborador"]; string nombre = (string)datareader["Nombre_Colaborador"]; string primer_apellido = (string)datareader["Primer_Apellido_Colaborador"]; string segundo_apellido = (string)datareader["Segundo_Apellido_Colaborador"]; Colaborador colaborador = new Colaborador(id: id, nombre: nombre, primer_apellido: primer_apellido, segundo_apellido: segundo_apellido); Grupo grupo = null; if (datareader["ID_Grupo"] != DBNull.Value) { byte idgrup = (byte)datareader["ID_Grupo"]; string nombregrup = (string)datareader["Nombre_Grupo"]; grupo = new Grupo(id: idgrup, nombre: nombregrup); } Manifiesto manifiesto = null; if (datareader["ID_Manifiesto"] != DBNull.Value) { int idmanif = (int)datareader["ID_Manifiesto"]; byte cajamanif = (byte)datareader["Caja_Manifiesto"]; string codigomanif = (string)datareader["Codigo_Manifiesto"]; manifiesto = new Manifiesto(id: idmanif, caja: cajamanif, codigo: codigomanif); } int posicion = (int)datareader["Posicion"]; ManifiestoColaborador registro = new ManifiestoColaborador(posicion: posicion, grupo: grupo, manifiesto: manifiesto, cajero_receptor: colaborador); registros.Add(registro); } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorDatosConexion"); } return(registros); }
/// <summary> /// Verificar si existe un cartucho. /// </summary> /// <param name="m">Objeto ManifiestoColaborador con los datos del cartucho a verificar</param> /// <returns>Valor que indica si el cartucho existe</returns> public bool verificarAsignacionManifiestoCajero(ref ManifiestoColaborador m) { bool existe = false; SqlCommand comando = _manejador.obtenerProcedimiento("SelectExisteManifiestoColaborador2"); SqlDataReader datareader = null; _manejador.agregarParametro(comando, "@colaborador", m.Cajero_Receptor.ID, SqlDbType.Int); _manejador.agregarParametro(comando, "@grupo", m.Grupo.Id, SqlDbType.TinyInt); try { datareader = _manejador.ejecutarConsultaDatos(comando); if (datareader.Read()) { int id = (int)datareader["pk_ID"]; existe = id != m.ID; m.ID = id; } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorManifiestoActualizacion"); } return(existe); }
/// <summary> /// Actualizar los datos de los colaboradores y la sucursal de un manifiesto del CEF. /// </summary> /// <param name="m">Objeto Manifiesto con los datos del manifiesto a actualizar</param> public void actualizarAsignacionManifiestoCajero(ref ManifiestoColaborador m) { SqlCommand comando = _manejador.obtenerProcedimiento("UpdateManifiestoColaboradorAsignacion2"); _manejador.agregarParametro(comando, "@colaborador", m.Cajero_Receptor, SqlDbType.Int); _manejador.agregarParametro(comando, "@grupo", m.Grupo.Id, SqlDbType.TinyInt); try { _manejador.ejecutarConsultaActualizacion(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorManifiestoActualizacion"); } }
/// <summary> /// Registrar un nuevo grupo de cajas. /// </summary> /// <param name="g">Objeto Grupo con los datos del nuevo grupo</param> public void agregarAsignacionManifiestoCajero(ref ManifiestoColaborador m) { SqlCommand comando = _manejador.obtenerProcedimiento("InsertRegistroManifiestoColaborador"); _manejador.agregarParametro(comando, "@manifiesto", m.Manifiesto, SqlDbType.VarChar); _manejador.agregarParametro(comando, "@colaborador", m.Cajero_Receptor, SqlDbType.Int); _manejador.agregarParametro(comando, "@grupo", m.Grupo.Id, SqlDbType.Int); _manejador.agregarParametro(comando, "@posicion", m.Posicion, SqlDbType.TinyInt); try { m.ID = (int)_manejador.ejecutarEscalar(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorGrupoRegistro"); } }
/// <summary> /// Agregar la tula a la lista de tulas. /// </summary> private void agregarTula() { try { int grupo = _posicion - 1; Grupo grupo_actual = _grupos[grupo]; seleccionarGrupo(grupo); byte caja = grupo_actual.Caja_actual; byte cajanueva = caja; bool nuevo = false; _relaciones_nuevas = grupo_actual.Relaciones; _nuevos_colaboradores = grupo_actual.Grupo_Colaboradores; if (grupo_actual.Numero_cajas == grupo_actual.Caja_actual) { _nuevos_colaboradores = grupo_actual.Grupo_Colaboradores; caja = 0; cajanueva = 0; nuevo = true; } Colaborador cajero = new Colaborador(); _relaciones = _relaciones_nuevas; if (_eliminada == false) { Colaborador cajero_nuevo = new Colaborador(); if (nuevo == true) { cajanueva = Convert.ToByte(caja + 1); } else { cajanueva = Convert.ToByte(grupo_actual.Caja_actual); } foreach (ManifiestoColaborador relacion in _relaciones) { if (nuevo == true) { if (relacion.Posicion == (cajanueva)) { cajero_nuevo = relacion.Cajero_Receptor; grupo_actual.Colaborador = cajero_nuevo.ToString(); cajero_nuevo.Caja = cajanueva; cajero = cajero_nuevo; } } else { if (relacion.Posicion == (cajanueva + 1)) { cajero_nuevo = relacion.Cajero_Receptor; grupo_actual.Colaborador = cajero_nuevo.ToString(); cajero_nuevo.Caja = cajanueva + 1; cajero = cajero_nuevo; } } } _eliminada = false; } else { if (caja == 0) { foreach (ManifiestoColaborador relacion in _relaciones) { if (relacion.Posicion == 1) { cajero = relacion.Cajero_Receptor; cajero.Caja = 1; } else { if ((cajanueva) == relacion.Posicion) { cajero = relacion.Cajero_Receptor; cajero.Caja = relacion.Posicion; } } } } else { foreach (ManifiestoColaborador relacion in _relaciones) { if ((cajanueva + 1) == relacion.Posicion) { cajero = relacion.Cajero_Receptor; cajero.Caja = relacion.Posicion; } } } } _total_cajas = Convert.ToInt16(cajero.Caja); if (_total_cajas == 0) { cajero.Caja = 1; _total_cajas = 1; } caja = Convert.ToByte(cajero.Caja); bool nuevo_manifiesto = false; Manifiesto manifiesto = new Manifiesto(codigo_manifiesto, grupo: grupo_actual, caja: caja, empresa: _empresa, receptor: _receptor, cajero_receptor: cajero, area: grupo_actual.Area); Tula tula = new Tula(_codigo_tula, manifiesto: manifiesto); tula.Manifiesto = manifiesto; this.verificarTula(tula); tula.Niquel = (BindingList <TulaNiquel>)dgvTulasNiquel.DataSource; nuevo_manifiesto = _atencion.agregarTula(ref tula); // Actualizar la pila de tulas del CEF Stack <Tula> tulas_grupo = _tulas[grupo]; tulas_grupo.Push(tula); //Carga informacion de nueva relacion manifiesto colaborador ManifiestoColaborador manifcolaborador = new ManifiestoColaborador(posicion: caja, manifiesto: manifiesto, cajero_receptor: cajero); manifcolaborador.Cajero_Receptor = cajero; manifcolaborador.Manifiesto = manifiesto; manifcolaborador.Posicion = caja; manifcolaborador.Grupo = grupo_actual; _mantenimiento.actualizarManfiestoCajero(ref manifcolaborador); // Verificar si el manifiesto es nuevo if (nuevo_manifiesto) { short numero_manifiestos = (short)(grupo_actual.Total_manifiestos + 1); byte numero_cajas = grupo_actual.Numero_cajas; dgvDistribucion[grupo + 1, CAJA_ACTUAL].Value = caja; dgvDistribucion[grupo + 1, TOTAL_MANIFIESTOS].Value = numero_manifiestos; dgvDistribucion[grupo + 1, MANIFIESTOS_CAJA].Value = numero_manifiestos / numero_cajas; dgvDistribucion[grupo + 1, CAJERO_ASIGNADO].Value = cajero; // Actualizar la información del grupo grupo_actual.Caja_actual = caja; grupo_actual.Total_manifiestos = numero_manifiestos; grupo_actual.Colaborador = Convert.ToString(cajero); _atencion.actualizarGrupoTotales(grupo_actual); // Actualizar el indicador del total de manifiestos _total_manifiestos++; lblTotalManifiestos.Text = string.Format("Total de Manifiestos: {0}", _total_manifiestos); } if (grupo_actual.Caja_unica) { this.reproducirSonido(SONIDO_TULA_REGISTRADA); } else { this.reproducirSonido(String.Format(SONIDO_CAJA, grupo_actual.Caja_actual)); } // Mostrar un mensaje indicando que la tula fue agregada txtUltimaTula.Text = tula.Codigo; txtMensaje.Text = TULA_AGREGADA; txtMensaje.BackColor = Color.LightGreen; } catch (Excepcion ex) { txtMensaje.Text = ex.Message; txtMensaje.BackColor = Color.Tomato; this.Refresh(); } }