// 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); }
// 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; } }
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(); } } }
// 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(); }