Beispiel #1
0
		/// <summary>
		/// Liga los datos y ejecuta las operaciones iniciales
		/// necesarias
		/// </summary>
		public override void BindData()
		{
			Entities.Sesiones sesion_aux = Entities.Sesiones.GetUltimaSesionPorUsuarioCaja(Sesion.Usuario_ID, Sesion.Caja_ID);
			reporteTicketsCuentaConductorBindingSource.DataSource = Entities.Vista_TicketsDeSesion.GetDataTable(sesion_aux.Sesion_ID, null);
			this.reportViewer1.RefreshReport();
			base.BindData();
		}
        } // end Imprimir

        /// <summary>
        /// Imprime el corte, cierra la sesión y sale del sistema
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CerrarSesionButton_Click(object sender, EventArgs e)
        {
            AppHelper.DoMethod(delegate
            {
                //  Solicitamos confirmación del cierre de sesión
                if (AppHelper.Confirm("¿Realmente desea cerrar la sesión?") == System.Windows.Forms.DialogResult.Yes)
                {
                    //  Mandamos imprimir el corte
                    Imprimir();


                    // Cerrar la sesión

                    //  Obtenemos el registro de la sesión actual
                    Entities.Sesiones sesion = Entities.Sesiones.Read(Sesion.Sesion_ID);

                    //  Desactivamos
                    sesion.Activo = false;

                    //  Configuramos fecha final
                    sesion.FechaFinal = DB.GetDate();

                    //  Actualizamos la base de datos
                    sesion.Update();

                    //  Cerramos el sistema
                    Padre.Close();
                } // end if
            }, this);
        }         // end Click
Beispiel #3
0
 public CanjeVale_Model(Entities.Sesiones sesion)
 {
     this.Sesion     = sesion;
     this.Caja_ID    = this.Sesion.Caja_ID.Value;
     this.Sesion_ID  = this.Sesion.Sesion_ID;
     this.Ticket_ID  = null;
     this.Usuario_ID = this.Sesion.Usuario_ID;
 }
Beispiel #4
0
        public void GuardaCorte()
        {
            //if (cortecaja.Declaraciones.Count == 0)
            //{
            //    GeneraDeclaraciones();
            //}
            bool ok = false;

            AppHelper.DoTransactions(
                delegate
            {
                foreach (classes.Entities.caja.DeclaracionValores dv in cortecaja.Declaraciones)
                {
                    ok = false;
                    SICASv20.classes.Interfaces.DeclaracionValores.GuardaDeclaracion(dv);
                    SICASv20.classes.Interfaces.DeclaracionValores.GuardaDetalleEfectivo(dv);
                    SICASv20.classes.Interfaces.DeclaracionValores.GuardaDetalleVales(dv);
                    SICASv20.classes.Interfaces.DeclaracionValores.GuardaDetalleVouchers(dv);
                    ok = true;
                }
            }
                , this);

            if (ok)
            {
                int idx = 1;
                foreach (classes.Entities.caja.DeclaracionValores dv in cortecaja.Declaraciones)
                {
                    ok = false;
                    SICASv20.classes.Interfaces.DeclaracionValores.Imprimir(dv, idx);
                    SICASv20.classes.Interfaces.DeclaracionValores.Imprimir(dv, idx);
                    ok = true;
                    idx++;
                }
                // Cerrar la sesión
                Entities.Sesiones sesion = Entities.Sesiones.Read(Sesion.Sesion_ID);
                sesion.Activo     = false;
                sesion.FechaFinal = DB.GetDate();
                sesion.Update();
                Sesion.Activo = false;
                SICASv20.forms.SICASForm fp = (SICASv20.forms.SICASForm) this.ParentForm;
                fp.SwitchForma("ReporteTicketsDeSesion");
                Application.Exit();
            }
        }
Beispiel #5
0
        }         // end ImprimirTicketDeCorte

        /// <summary>
        /// Realiza el corte de caja, lo imprime y sale del sistema
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CorteButton_Click(object sender, EventArgs e)
        {
            //  Solicitamos confirmación
            if (AppHelper.Confirm("¿Realmente desea efectuar el corte de caja?") == System.Windows.Forms.DialogResult.Yes)
            {
                AppHelper.DoMethod(delegate
                {
                    // Imprimir el ticket las veces
                    //  que este configurado

                    //  Obtenemos el registro de la caja actual
                    Entities.Cajas caja = Entities.Cajas.Read(Sesion.Caja_ID.Value);

                    //  Si tiene impresión doble
                    if (caja.ImpresionDoble.Value)
                    {
                        //  Imprimimos dos veces
                        ImprimirTicketDeCorte();
                        ImprimirTicketDeCorte();
                    }
                    else                     // Si no
                    {
                        //  Imprimimos solo una vez
                        ImprimirTicketDeCorte();
                    }

                    // Cerrar la sesión
                    //  Obtenemos el registro de la sesión actual
                    Entities.Sesiones sesion = Entities.Sesiones.Read(Sesion.Sesion_ID);

                    //  Desactivamos
                    sesion.Activo = false;

                    //  Configuramos fecha final
                    sesion.FechaFinal = DB.GetDate();

                    //  Actualizamos en la base de datos
                    sesion.Update();

                    //  Salimos del sistema
                    Application.Exit();
                }, this);
            } // end if
        }     // end Click
Beispiel #6
0
		/// <summary>
		/// Realiza el procedimiento de validación
		/// registro y carga de la pantalla principal del sistema
		/// </summary>
		private void LogIn()
		{
			try
			{
				//  Obtenemos las variables a partir de los controles
				string usuario_id = Usuario_IDTextBox.Text;
				string pwd = PasswordTextBox.Text;

				//  Verificamos que no esten vacias
				if (usuario_id != "" &&
				PasswordTextBox.Text != "")
				{
					//  Instanciamos un objeto Functions
					SICASCentralQuerysDataSetTableAdapters.Functions fns = new SICASCentralQuerysDataSetTableAdapters.Functions();

					//  Validamos la relación usuario y contraseña contra la base de datos
					//  mediante el Método AuthUser del objeto Functios fns
					if ((int)fns.AuthUser(usuario_id, pwd) > 0)
					{
						//usuario_id = "gestor.decobranza3";
						//  Si los datos de usuario y contraseña son válidos
						Sesion.Usuario_ID = usuario_id;

						//  Cargamos sus datos de Emprea y Estacion
						Sesion.Set_Empresa_Estacion();

						//  Verificar si el usuario tiene permisos a una caja,                        
						List<Entities.Usuarios_Cajas> UsuariosCajas = Entities.Usuarios_Cajas.Read(usuario_id);

						//  Obtenemos un objeto Usuario a partir del dato usuario_ir
						Entities.Usuarios usuario = Entities.Usuarios.Read(usuario_id);

						//  Verificamos los permisos de caja
						//  Si el usuario tiene permisos de caja y además no tiene estación fija
						if (UsuariosCajas.Count > 0 && Sesion.Estacion_ID != null)
						{
							//  Si el usuario no tiene estacion fija
							//  lanzamos una excepción
							if (Sesion.Estacion_ID == null) throw new Exception("El usuario debe tener configurada una estacion");

							//  Obtenemos las sesiones del usuario que esten activas
							//  y las colocamos la variable sesiones
							List<Entities.Sesiones> sesiones =
							    Entities.Sesiones.Read("Usuario_ID = @Usuario_ID AND Activo = 1 AND FechaFinal IS NULL", null, DB.Param("@Usuario_ID", usuario_id));

							//  Verificamos si tiene sesiones activas
							if (sesiones.Count == 0)
							{
								// No tiene sesiones activas
								// Crear sesion
								int? caja = null;
								//  Selecccionar una caja
								//  Verificar que estacion tenga cajas activas
								if (!DB.Exists(
								    "Cajas",
								    DB.Param("Estacion_ID", Sesion.Estacion_ID),
								    DB.Param("Activa", true)
								    )
								)
								{
									throw new Exception("No existen cajas activas para la estación");
								}

								//  Verificar el número de cajas por usuario
								if (UsuariosCajas.Count == 1)
								{
									//  Aqui solo tiene una caja, se obtiene la default
									caja = UsuariosCajas[0].Caja_ID;
								}
								else
								{
									//  Aquí tiene más de una caja el usuario
									//  En caso de haber más de una caja
									//  El usuario debe seleccionar su caja
									if (this.ShowSeleccionarCaja(usuario_id) == System.Windows.Forms.DialogResult.OK)
									{
										//  Obtener la caja seleccionada
										caja = this.SeleccionarCajaForm.Caja_ID;
									}
									else
									{
										AppHelper.ThrowException("Debe seleccionar una caja");
									} // end else
								} // end else

								//  Verificar que la caja seleccionada no tenga sesión activa
								//  Obtener las sessiones activas de la caja
								List<Entities.Sesiones> sesionesCaja = Entities.Sesiones.Read(
								    "Caja_ID = @Caja_ID AND Activo = 1 AND FechaFinal IS NULL",
								    null, DB.Param("@Caja_ID", caja)
								);

								//  Verificar el numero de registros
								if (sesionesCaja.Count > 0)
								{
									//  Si tiene sesiones activas
									//  Enviar mensaje de error
									AppHelper.ThrowException(
									    @"El usuario {0} ya ha iniciado sesión en la caja seleccionada o predeterminada
No puedes iniciar sesión hasta que el usuario {0} la termine realizando el corte correspondiente.",
									    sesionesCaja[0].Usuario_ID
									);
								} // end if

								//  Crear una nueva sesión y registrarla
								Entities.Sesiones sesion = new Entities.Sesiones();
								sesion.Activo = true;
								sesion.Caja_ID = caja; // falta poner la caja
								sesion.Estacion_ID = Sesion.Estacion_ID.Value; // Espera no nulo
								sesion.FechaFinal = null;
								sesion.FechaInicial = DB.GetDate();
								sesion.HostName = null;
								sesion.IPAddress = null;
								sesion.MACAddress = null;
								sesion.Usuario_ID = usuario_id;
								sesion.Create();

								//  Pasar los datos a la sesión global
								Sesion.Sesion_ID = sesion.Sesion_ID;
								Sesion.Caja_ID = sesion.Caja_ID;
								Sesion.Estacion_ID = sesion.Estacion_ID;
								Sesion.FechaInicial = sesion.FechaInicial;
							}
							else
							{
								//  Ya tiene sesión activa
								//  Pasar los datos a la sesión global
								Sesion.Sesion_ID = sesiones[0].Sesion_ID;
								Sesion.Caja_ID = sesiones[0].Caja_ID;
								Sesion.Estacion_ID = sesiones[0].Estacion_ID;
								Sesion.FechaInicial = sesiones[0].FechaInicial;
							}
						}
						else if (UsuariosCajas.Count > 0 & Sesion.Estacion_ID == null)
						{
							throw new Exception("Los usuarios de caja solo deben tener acceso a una estación");
						}
						Sesion.Activo = true;
						//  Mostrar el formulario principal del sistema
						forms.SICASForm sicasForm = new forms.SICASForm();
						this.Hide();
						sicasForm.Show();
						RegistrarEntrada();
						this.Hide();

						//  Registramos que se ha actualizado el sistema
						//  llamando al procedimiento AutoUpdater de la clase estática AutoUpdate
						AutoUpdate.AutoUpdater();
					}
					else
					{
						//  Enviar error de autenticación
						throw new Exception("Usuario o contraseña erroneas!");
					}
				}
			}
			catch (Exception ex)
			{
				//  Mostramos el mensaje de error
				AppHelper.Error(ex.Message);
			}
		}