Esempio n. 1
0
        //---------------------------------------------------------------
        // Metodos públicos de la clase
        //---------------------------------------------------------------

        #region Metodos publicos de la clase


        /// <summary>
        /// Devuelve la lista entidades de ordenes de trabajo de un movil (buscando por patente)
        /// </summary>
        /// <param name="p_strPatente"></param>
        /// <param name="p_smResult"></param>
        /// <returns>ListaEOrdenes De Trabajo</returns>
        public static LEOrdenesTrabajo ObtenerOTsPorPatente(string p_strPatente, StatMsg p_smResult)
        {
            DBConn           l_dbcAccess        = null;
            LEOrdenesTrabajo l_LEOrdenesTrabajo = LEOrdenesTrabajo.NewEmpty();

            try
            {
                // Obtenemos una conexion y abrimos una transaccion
                l_dbcAccess = DBRuts.GetConection(Connections.Dat);
                l_dbcAccess.BeginTransaction();

                // Por cada equipamiento de la lista lo grabamos, con la misma coneccion todos
                l_LEOrdenesTrabajo = Bll.OrdenesTrabajo.getPendByPatente(l_dbcAccess, p_strPatente, p_smResult);
            }
            catch (Exception l_expData)
            {
                // Error
                p_smResult.BllError(l_expData.ToString());
            }
            finally
            {
                // Si pude abrir la conexion
                if (l_dbcAccess != null)
                {
                    // Finalizo la transacción y la cierro
                    l_dbcAccess.EndTransaction(p_smResult);
                    l_dbcAccess.Close();
                }
            }
            return(l_LEOrdenesTrabajo);
        }
Esempio n. 2
0
        private void CargarOrdenes(LEOrdenesTrabajo ordenesACargar)
        {
            xpPanelOrdenes.Controls.Clear();

            if (ordenesACargar.Count == 0)
            {
                return;
            }

            // Separamos el primer caso por cuestion de la location.
            EOrdenTrabajo primeraOrden = ordenesACargar.First();
            itemBarra     primerItem   = newItemFromOrden(primeraOrden);

            primerItem.FuiSeleccionado += unItem_FueSeleccionado;

            primerItem.Seleccionado = true;
            m_ibItemSeleccionado    = primerItem;
            primerItem.Location     = new Point(0, 0);
            xpPanelOrdenes.Controls.Add(primerItem);
            ordenesACargar.RemoveEntity(primerItem.Numero);

            // Recorremos el resto de la lista.
            foreach (EOrdenTrabajo orden in ordenesACargar)
            {
                agregarOrdenPendiente(orden);
            }
        }
Esempio n. 3
0
        private void actualizarOrdenesEnPantalla()
        {
            LEOrdenesTrabajo ordenesPendientes = Bll.OrdenesTrabajo.getPendientes(m_smResult);

            if (MsgRuts.AnalizeError(this, m_smResult))
            {
                return;
            }
            CargarOrdenes(ordenesPendientes);
        }
Esempio n. 4
0
        private void gbFiltrar_Click(object sender, EventArgs e)
        {
            if (!gbFiltrar.Checked)
            {
                if (cdcMoviles.SelectedStrCode == "")
                {
                    MsgRuts.ShowMsg(this, "No se puede filtrar por todas las ordenes. Elija un móvil antes de clickear filtrar.");
                    return;
                }

                LEOrdenesTrabajo ordenesPorMovil = Bll.OrdenesTrabajo.ObtenerOTsPorPatente(cdcMoviles.SelectedStrCode, m_smResult);
                if (MsgRuts.AnalizeError(this, m_smResult))
                {
                    return;
                }

                if (ordenesPorMovil.Count == 0)
                {
                    MsgRuts.ShowMsg(this, "El Movil elegido no tiene ordenes de trabajo asociadas");
                    return;
                }

                CargarOrdenes(ordenesPorMovil);
                gbFiltrar.Checked  = true;
                gbFiltrar.Text     = "Quitar Filtro";
                cdcMoviles.Enabled = false;
            }
            else
            {
                actualizarOrdenesEnPantalla();

                cdcMoviles.SelectedStrCode = "";
                gbFiltrar.Checked          = false;
                gbFiltrar.Text             = "Filtrar";
                cdcMoviles.Enabled         = true;
            }
        }
Esempio n. 5
0
        public static void fCerrarOrden(EOrdenTrabajo p_eOrdenACerrar, StatMsg p_smResult)
        {
            DBConn l_dbcAccess = null;

            try
            {
                // Obtenemos una conexion
                l_dbcAccess = DBRuts.GetConection(Connections.Dat);
                l_dbcAccess.BeginTransaction();

                int kilometrajeActualMovil = Bll.Moviles.fGetKilometrajeActualWithConn(l_dbcAccess, p_eOrdenACerrar.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Conseguimos la fecha de hoy
                DateTime l_dtToday = BllRuts.GetDBNow(l_dbcAccess, false, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                p_eOrdenACerrar.Kmsactuales = kilometrajeActualMovil;
                p_eOrdenACerrar.Feccierre   = l_dtToday;
                p_eOrdenACerrar.Finalizada();

                Bll.OrdenesTrabajo.SSav(l_dbcAccess, p_eOrdenACerrar, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }


                // Pedimos los registros de la tabla
                EMovilEstado estadoActual = Bll.Moviles.fGetMovilEstadoActual(l_dbcAccess, p_eOrdenACerrar.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                LEOrdenesTrabajo ordenesPendientes = OrdenesTrabajo.getPendByPatente(l_dbcAccess, p_eOrdenACerrar.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }


                // Si el movil esta en mantenimiento y acabamos de cerrar la ultima orden en progreso, pasamos el movil a disponible.
                if (estadoActual.EstaEnEstadoMantenimiento && !ordenesPendientes.ToList().Exists(ordenPend => ordenPend.EstaEnProgreso))
                {
                    fGrabarEstadoMovil(l_dbcAccess, p_eOrdenACerrar.Patente, EMovilEstado.EstadoDisponible, p_smResult);
                    if (p_smResult.NOk)
                    {
                        return;
                    }
                }
            }
            catch (Exception l_expData)
            {
                // Error en la operacion
                p_smResult.BllError(l_expData.ToString());
            }
            finally
            {
                // Si pude abrir la conexion -> la cierro
                if (l_dbcAccess != null)
                {
                    l_dbcAccess.EndTransaction(p_smResult);
                    l_dbcAccess.Close();
                }
            }
        }