示例#1
0
        public void AltaHoraExtra(EmpleadoHorasExtra hemp, Empleado empLog)
        {
            SqlConnection conexion = null;

            try
            {
                conexion = new SqlConnection(Conexion.ObtenerCadenaConexion(empLog.Documento, empLog.Contrasenia));

                SqlCommand cmdAltaSolicitante = new SqlCommand("AltaHoraExtra", conexion);
                cmdAltaSolicitante.CommandType = CommandType.StoredProcedure;

                cmdAltaSolicitante.Parameters.AddWithValue("@documentoEmpleado", hemp.Empleado.Documento);
                cmdAltaSolicitante.Parameters.AddWithValue("@fecha", hemp.Fecha);
                cmdAltaSolicitante.Parameters.AddWithValue("@minutosExtra", hemp.MinutosExtra);

                SqlParameter valorRetorno = new SqlParameter("@valorRetorno", SqlDbType.Int);
                valorRetorno.Direction = ParameterDirection.ReturnValue;
                cmdAltaSolicitante.Parameters.Add(valorRetorno);

                conexion.Open();
                cmdAltaSolicitante.ExecuteNonQuery();

                switch ((int)valorRetorno.Value)
                {
                case -1:
                    throw new Exception("No existe empleado en sistema.");
                    break;

                case -2:
                    throw new Exception("Ocurrió un error al agregar las horas extra del empleado.");
                    break;

                case -3:
                    throw new Exception("Ocurrió un error al agregar las horas extra del empleado.");
                    break;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
示例#2
0
文件: Service.cs 项目: Gerosomma/Bios
 void IService.AltaHoraExtra(EmpleadoHorasExtra hemp, Empleado empLog)
 {
     FabricaLogica.GetLogicaHorasExtra().AltaHoraExtra(hemp, empLog);
 }
示例#3
0
 public void AltaHoraExtra(EmpleadoHorasExtra hemp, Empleado empLog)
 {
     FabricaPersistencia.GetPersistenciaHorasExtra().AltaHoraExtra(hemp, empLog);
 }
示例#4
0
        public void OnTimer(object sender, ElapsedEventArgs args)
        {
            try
            {
                string ruta = ConfigurationManager.AppSettings["xmlPath"];
                eventLog.WriteEntry("Monitoriando xml, " + ruta, EventLogEntryType.Information, evento++);
                if (File.Exists(ruta))
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(ruta);
                    string      documento = "", inicio = "", fin = "", nombre = "", contrasenia = "";
                    XmlNodeList empleado = doc.GetElementsByTagName("EmpleadoLogueado");
                    eventLog.WriteEntry("Existe empleado logueado, leemos xml.");
                    foreach (XmlElement nodo in empleado)
                    {
                        XmlNodeList nDoc        = nodo.GetElementsByTagName("Documento");
                        XmlNodeList nContrasena = nodo.GetElementsByTagName("Contrasenia");
                        XmlNodeList nNombre     = nodo.GetElementsByTagName("Nombre");
                        XmlNodeList nInicio     = nodo.GetElementsByTagName("Inicio");
                        XmlNodeList nFin        = nodo.GetElementsByTagName("Fin");
                        documento   = nDoc[0].InnerText;
                        contrasenia = nContrasena[0].InnerText;
                        nombre      = nNombre[0].InnerText;
                        inicio      = nInicio[0].InnerText;
                        fin         = nFin[0].InnerText;
                    }
                    Empleado emp = new Empleado();
                    emp.Documento      = Convert.ToInt32(documento);
                    emp.Contrasenia    = contrasenia;
                    emp.NombreCompleto = nombre;
                    emp.HoraInicio     = inicio;
                    emp.HoraFin        = fin;
                    DateTime ahora = DateTime.Now;
                    eventLog.WriteEntry("hora " + fin.Substring(0, 2));
                    eventLog.WriteEntry("minutos " + fin.Substring(2, 2));
                    DateTime finTrabajo = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, Convert.ToInt32(fin.Substring(0, 2)), Convert.ToInt32(fin.Substring(3, 2)), 0);

                    //calcular minutos extra.
                    int minutosExtra = Convert.ToInt32((ahora - finTrabajo).TotalMinutes);
                    eventLog.WriteEntry("Verifica si hay minutos extra.");
                    if (minutosExtra >= 1)
                    {
                        ServiceClient      wcf        = new ServiceClient();
                        EmpleadoHorasExtra horasExtra = new EmpleadoHorasExtra();
                        eventLog.WriteEntry("Ingreso minutos extra emp: " + emp.NombreCompleto + ", cant: " + minutosExtra.ToString());
                        horasExtra.Empleado     = emp;
                        horasExtra.Fecha        = ahora;
                        horasExtra.MinutosExtra = minutosExtra;
                        wcf.AltaHoraExtra(horasExtra, emp);
                        eventLog.WriteEntry("Se inserto horas extra", EventLogEntryType.SuccessAudit);
                    }
                }
                else
                {
                    eventLog.WriteEntry("No existe empleado logueado.");
                }
            }
            catch (Exception ex)
            {
                eventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
            }
        }