Пример #1
0
        // Crea la nueva entidad OrdenTrabajo que tendra asociados a todos los items
        private Bel.EOrdenTrabajo CrearOrdenDeTrabajo(Bel.LEOTItems p_leOTItems, StatMsg p_smResult)
        {
            Bel.EOrdenTrabajo l_eOrdenNueva = Bel.EOrdenTrabajo.NewEmpty();
            l_eOrdenNueva.Nro         = neOrdenTrabajo.Numero;
            l_eOrdenNueva.Patente     = cdcPatente.Text;
            l_eOrdenNueva.Codtaller   = cdcTalleres.SelectedStrCode;
            l_eOrdenNueva.Fecapertura = DateTime.Today;
            // en la fecha cierre ponemos nuestra fecha null para que indique no esta abierta
            l_eOrdenNueva.Feccierre = new DateTime(1900, 1, 1);
            // Le asignamos el operador que realizo la orden
            l_eOrdenNueva.Operador = App.Usuario.Usuario;

            l_eOrdenNueva.Kmsactuales = Bll.Moviles.fGetKilometrajeActual(l_eOrdenNueva.Patente, p_smResult);
            if (MsgRuts.AnalizeError(this, p_smResult))
            {
                return(null);
            }

            // Le asignamos los items que nos vienen por parametro
            l_eOrdenNueva.OTItems = p_leOTItems;

            l_eOrdenNueva.Pendiente();

            return(l_eOrdenNueva);
        }
Пример #2
0
        // Constructor Edit
        public AltaOrdenes(int p_iNumeroOrdenTrabajo)
        {
            InitializeComponent();

            // Estado Mofidicar es Verdadero
            m_estadoMofidicar = true;

            // desabilitamos los controles necesarios para que el usuario no pueda interactuar con ellos
            cdcPatente.Enabled = false;

            // Seteamos la el numero de orden trabajo en el TV
            neOrdenTrabajo.Numero = p_iNumeroOrdenTrabajo;

            // Traemos la orden con su lista de items asociada
            m_eOrdenAModificar = Bll.OrdenesTrabajo.Get(p_iNumeroOrdenTrabajo, true, m_smResult);
            if (MsgRuts.AnalizeError(this, m_smResult))
            {
                return;
            }

            // Asignamos los items actuales que tiene la orden a nuestra lista
            m_leOTItems = m_eOrdenAModificar.OTItems;
            // Configuramos los captions de la lista entidad OTItems
            ConfigurarCaptionsLEOitems(m_leOTItems);
            // LLenamos la Grilla con el metodo especial
            FillFromLEOTItemsConAnchoDeColumna(fgControlRepaSeleccionados, m_leOTItems);

            // Configuramos los captions de la lista entidad OTItems
            ConfigurarCaptionsLEOitems(m_leOTItems);

            // LLenamos Las patentes que hay en la tabla y Seteamos la patente seleccionada del movil a la asociada en la OT
            cdcPatente.AddStrCD("patente", m_eOrdenAModificar.Patente, 1);
            cdcPatente.SelectedStrCode = "patente";

            CargarListasEntidadesMiembros();

            // por ultimo obtenemos el numero maximo de agrupador y le sumamos uno.
            m_intNumeroAgrupador = 1;
            foreach (Bel.EOTItem item in m_eOrdenAModificar.OTItems)
            {
                if (m_intNumeroAgrupador < item.Nroagrupador)
                {
                    m_intNumeroAgrupador = item.Nroagrupador;
                }

                // Tenemos que llamar a este metodo para cada item de la orden para que actualice la lista de talleres posibles.
                EReparacion reparacionItem = EReparacion.NewEmpty();
                reparacionItem.Codcat = item.Codcategoria;
                hayTallerQueResuelvaTodo(reparacionItem);
            }

            m_intNumeroAgrupador += 1;

            if (m_eOrdenAModificar.Codtaller.Trim() != "")
            {
                cdcTalleres.SelectedStrCode = m_eOrdenAModificar.Codtaller;
            }
        }
Пример #3
0
        public static void fOrdenRealizandose(int numeroOrden, StatMsg p_smResult)
        {
            DBConn l_dbcAccess = null;

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

                Bel.EOrdenTrabajo orden = Bll.OrdenesTrabajo.Get(numeroOrden, true, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                orden.Estado = Bel.EOrdenTrabajo.Estados.EnProgreso.ToString();

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

                EMovilEstado estadoActual = fGetMovilEstadoActual(l_dbcAccess, orden.Patente, p_smResult);

                // Si el estado actual no es en mantenimiento debemos pasarlo a dicho estado.
                if (!estadoActual.EstaEnEstadoMantenimiento)
                {
                    fGrabarEstadoMovil(l_dbcAccess, orden.Patente, EMovilEstado.EstadoEnMantenimiento, 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();
                }
            }
        }
Пример #4
0
        // Graba la ListaEntidad de Items en la Base
        private void gbAccept_Click(object sender, EventArgs e)
        {
            // si la lista esta vacia no grabamos
            if (m_leOTItems.Count == 0)
            {
                MsgRuts.ShowMsg(this, "No se puede grabar en la base por que no hay nada en la lista para grabar");
                return;
            }
            // Procedemos al grabado
            if (!m_estadoMofidicar)
            {
                // Graba OrdenNueva con sus items
                m_eOrdenNuevaCreada = CrearOrdenDeTrabajo(m_leOTItems, m_smResult);
                if (MsgRuts.AnalizeError(this, m_smResult))
                {
                    return;
                }

                Bll.OrdenesTrabajo.Save(m_eOrdenNuevaCreada, m_smResult);
                if (MsgRuts.AnalizeError(this, m_smResult))
                {
                    return;
                }
                MsgRuts.ShowMsg(this, "La nueva orden fue agregada exitosamente");
            }
            else
            {
                // Graba Orden a Actualizar
                // primero asigna los nuevos items a la orden de trabajo y actualiza el taller si corresponde
                m_eOrdenAModificar.OTItems = m_leOTItems;

                if (cdcTalleres.SelectedStrCode.Trim() != "")
                {
                    m_eOrdenAModificar.Codtaller = cdcTalleres.SelectedStrCode;
                    m_eOrdenAModificar.Ot_taller = cdcTalleres.SelectedItem.ToString();
                }
                Bll.OrdenesTrabajo.Save(m_eOrdenAModificar, m_smResult);
                if (MsgRuts.AnalizeError(this, m_smResult))
                {
                    return;
                }
                MsgRuts.ShowMsg(this, "La orden fue modificada exitosamente");
            }

            // Despueste grabado se cierra el formulario para poder seguir con el programa principal
            this.DialogResult = DialogResult.OK;
            this.Close();
        }