/// <summary> /// Agrega validacion de integridad a una entidad: Reparacion /// (Código Fijo) /// </summary> /// <param name="p_dbcAccess">Conexion a la base de datos</param> /// <param name="p_entReparacion">Entidad con los datos a validar</param> /// <param name="p_smResult">Estado final de la operacion</param> internal static void RepTInt_f(DBConn p_dbcAccess, EReparacion p_entReparacion, ref StatMsg p_smResult) { // ********* // Agregar acá las validaciones adicionales // ********* }
/// <summary> /// Agrega o modifica un registro de la tabla: Reparaciones /// (Código Fijo) /// </summary> /// <param name="p_dbcAccess">Conexion a la base de datos</param> /// <param name="p_entReparacion">Entidad con los datos a procesar</param> /// <param name="p_smResult">Estado final de la operacion</param> internal static void RepSave_f(DBConn p_dbcAccess, ref EReparacion p_entReparacion, ref StatMsg p_smResult) { // ********* // Agregar acá los procesos adicionales // ********* }
// 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; } }
// Este metodo no solo devuelve el booleando, tiene efecto colateral en la lista miembro de talleres con todas las categorias necesarias. private bool hayTallerQueResuelvaTodo(EReparacion p_eRepaSelec) { // Filtramos los talleres que cumplan con la categoria del item a agregar. Hacemos interseccion con los que actualmente cumplen. List <ETallerCategoria> tallerCategorias = m_leTalleresCategoriasFull.Where(categoria => categoria.Codigocategoria == p_eRepaSelec.Codcat).ToList(); List <ETallerCategoria> talleresInterseccion = m_leTalleresConTodasLasCategoriasNecesarias.Where(tallerConTodas => tallerCategorias.Any(tallerCategoria => tallerCategoria.Codigotaller == tallerConTodas.Codigotaller)).ToList(); // Si no hay ningun taller que pueda resolver la orden actual if (talleresInterseccion.Count == 0) { MsgRuts.ShowMsg(this, "No es posible agregar ese item ya que ningun Taller puede resolver todos los Controles/Reparaciones elegidos"); return(false); } else { m_leTalleresConTodasLasCategoriasNecesarias = talleresInterseccion; actualizaComboTalleresFiltrados(); return(true); } }