示例#1
0
        /// //////////////////////////////
        ///
        public CResultAErreur Init(
            CListeObjetsDonnees liste,
            string strProprieteAffiche,
            string strChampFiltre,
            Type typeFormEditionStandard
            )
        {
            m_filtrePrincipal = liste.Filtre;
            m_listeObjets     = liste;
            m_listeObjets.AssureLectureFaite();
            m_listeObjets.InterditLectureInDB = true;
            m_strProprieteAffichee            = strProprieteAffiche;
            m_strChampFiltre  = strChampFiltre;
            m_typeFormEdition = typeFormEditionStandard;

            return(m_combo.Init(liste, strProprieteAffiche, typeFormEditionStandard, true));
        }
示例#2
0
        /// ////////////////////////////////////////////////////////////////////
        private void InitMenuFiltres()
        {
            CListeObjetsDonnees lstFiltres = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CFiltreDynamiqueInDb));

            lstFiltres.Filtre = new CFiltreData(CFiltreDynamiqueInDb.c_champTypeElements + "=@1", m_type.ToString());
            m_menuFiltres.MenuItems.Clear();
            MenuItem menu = new MenuItem(I.T("Temporary filter|1313"));

            m_menuFiltres.MenuItems.Add(menu);
            m_menuFiltres.MenuItems.Add(new MenuItem("----------------"));
            foreach (CFiltreDynamiqueInDb filtre in lstFiltres)
            {
                CMenuItemAFiltre item = new CMenuItemAFiltre(filtre);
                item.Click += new EventHandler(OnSelectFiltre);
                m_menuFiltres.MenuItems.Add(item);
            }
        }
示例#3
0
        //----------------------------------------------------------------
        /// <summary>
        /// Retourne la liste des Sites du Contrat, qu'ils soient définis par Profil ou par une liste de relations "manuelle"
        /// </summary>
        /// <returns></returns>
        public IList <CSite> GetTousLesSitesDuContrat()
        {
            IList <CSite> listeSites = new List <CSite>();
            StringBuilder bl         = new StringBuilder();

            if (this.TypeContrat != null && this.TypeContrat.GestionSitesManuel)
            {
                // Ajout des Sites par relation
                RelationsSites.ReadDependances("Site");
                foreach (CContrat_Site rel in RelationsSites)
                {
                    listeSites.Add(rel.Site);
                    bl.Append(rel.Site.Id);
                    bl.Append(",");
                }
                if (bl.Length > 0)
                {
                    bl.Remove(bl.Length - 1, 1);
                }
                CFiltreData filtre;
                if (bl.Length > 0)
                {
                    filtre = new CFiltreData(CSite.c_champId + " in (" + bl.ToString() + ")");
                    CListeObjetDonneeGenerique <CSite> lst = new CListeObjetDonneeGenerique <CSite>(ContexteDonnee, filtre);
                    return(lst);
                }
                else
                {
                    return(new List <CSite>());
                }
            }
            else
            {
                CProfilElement profil = ProfilSite;
                if (profil != null)
                {
                    CListeObjetsDonnees liste = profil.GetElementListForSource(this);
                    foreach (CSite site in liste)
                    {
                        listeSites.Add(site);
                    }
                }
                return(listeSites);
            }
        }
        /// ////////////////////////////////////////////
        private void RefreshListe()
        {
            CFiltreData filtre = null;

            if (m_txtRecherche.Text != null)
            {
                filtre = m_filtreRechercheRapide;
                if (filtre != null)
                {
                    if (filtre.Parametres.Count == 0)
                    {
                        filtre.Parametres.Add(m_txtRecherche.Text);
                    }
                    else
                    {
                        filtre.Parametres[0] = "%" + m_txtRecherche.Text + "%";
                    }
                }
            }
            filtre = CFiltreData.GetAndFiltre(filtre, m_filtre);

            if (m_listeObjets == null)
            {
                m_listeObjets        = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, m_typeObjets);
                m_listeObjets.Filtre = filtre;
                m_listeObjets.RemplissageProgressif = true;
            }
            else
            {
                m_listeObjets.Filtre = filtre;
            }
            if (!typeof(IObjetHierarchiqueACodeHierarchique).IsAssignableFrom(m_typeObjets))
            {
                m_wndListeElements.ListeSource = m_listeObjets;
                m_wndListeElements.Refresh();
            }
            else
            {
                m_arbre.Init(m_typeObjets, m_strProprieteListeFils, m_strChampParent, m_strProprieteAffichee, filtre, null);
            }
            if (m_listeObjets.Count == 1)
            {
                m_objetSelectionne = (CObjetDonnee)m_listeObjets[0];
            }
        }
示例#5
0
        //------------------------------------------------------------
        public CResultAErreur GetValue(object objet, string strPropriete)
        {
            CResultAErreur result      = CResultAErreur.True;
            CObjetDonnee   objetDonnee = objet as CObjetDonnee;

            if (objetDonnee == null)
            {
                return(result);
            }

            int nIdListe = -1;

            try
            {
                nIdListe = Int32.Parse(strPropriete);
            }
            catch
            {
                result.EmpileErreur(I.T("Bad entity list property format (@1)|20028", strPropriete));
                return(result);
            }
            CListeEntites liste = new CListeEntites(objetDonnee.ContexteDonnee);

            try
            {
                if (liste.ReadIfExists(nIdListe))
                {
                    CListeObjetsDonnees resultListe = liste.GetElementsLiesFor(objetDonnee);
                    if (resultListe != null)
                    {
                        result.Data = resultListe.ToArray(liste.TypeElements);
                    }
                }
                else
                {
                    result.EmpileErreur(I.T("Entity list @1 doesn't exists|20029", strPropriete));
                    return(result);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
        /// ////////////////////////////////////////////////////////////////////////
        public void InitPanel
        (
            IDefinisseurChampCustomRelationObjetDonnee definisseur,
            Type typeFormGererChamps,
            Type typeFormGererFormulaires
        )
        {
            m_definisseur              = definisseur;
            m_typeFormGererChamps      = typeFormGererChamps;
            m_typeFormGererFormulaires = typeFormGererFormulaires;

            if (m_bAvecAffectationDirecteDesChamps)
            {
                CListeObjetsDonnees listeChamps = new CListeObjetsDonnees(definisseur.ContexteDonnee, typeof(CChampCustom));
                listeChamps.Filtre = CChampCustom.GetFiltreChampsForRole(definisseur.RoleChampCustomDesElementsAChamp.CodeRole);

                m_panelListeChampsCustom.Init(
                    listeChamps,
                    m_definisseur.RelationsChampsCustomListe,
                    (CObjetDonneeAIdNumeriqueAuto)definisseur,
                    "Definisseur",
                    "ChampCustom"
                    );
            }

            CListeObjetsDonnees listeFormulaires = new CListeObjetsDonnees(definisseur.ContexteDonnee, typeof(CFormulaire));

            listeFormulaires.Filtre = CFormulaire.GetFiltreFormulairesForRole(definisseur.RoleChampCustomDesElementsAChamp.CodeRole);
            //listeFormulaires.Filtre = new CFiltreData(CFormulaire.c_champCodeRole + "=@1", definisseur.RoleChampCustomDesElementsAChamp.CodeRole);
            m_panelListeFormulaires.Init(
                listeFormulaires,
                m_definisseur.RelationsFormulairesListe,
                (IObjetAContexteDonnee)definisseur,
                "Definisseur",
                "Formulaire"
                );

            m_panelListeChampsCustom.RemplirGrille();
            m_panelListeFormulaires.RemplirGrille();

            if (!m_bAvecAffectationDirecteDesChamps)
            {
                m_panelConteneurGererChamps.Visible = false;
            }
        }
示例#7
0
        /// ///////////////////////////////////////////
        public object GetValeur(IElementAVariablesDynamiquesAvecContexteDonnee elementInterroge)
        {
            if (m_filtreDynamique == null)
            {
                return(null);
            }
            m_filtreDynamique.ElementAVariablesExterne = elementInterroge;
            CResultAErreur result = m_filtreDynamique.GetFiltreData();

            if (!result)
            {
                return(null);
            }
            CListeObjetsDonnees liste = new CListeObjetsDonnees(elementInterroge.ContexteDonnee, m_filtreDynamique.TypeElements);

            liste.Filtre = (CFiltreData)result.Data;
            return(liste.ToArray(m_filtreDynamique.TypeElements));
        }
示例#8
0
        public void SetElementsLies(IEnumerable elements, string strCode)
        {
            if (elements == null)
            {
                return;
            }
            ArrayList           lst   = new ArrayList();
            CListeObjetsDonnees liste = TypeEntree.RelationsTypeElementsAAgenda;

            liste.Filtre = new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champCode + "=@1", strCode);
            if (liste.Count == 0)
            {
                return;
            }
            CRelationTypeEntreeAgenda_TypeElementAAgenda relType = (CRelationTypeEntreeAgenda_TypeElementAAgenda)liste[0];

            SetElementsLies(elements, relType);
        }
示例#9
0
        ////////////////////////////////////////////////////////////////////////
        public static CListeObjetsDonnees GetListeDocumentsForElement(IObjetDonneeAIdNumerique objet)
        {
            if (objet == null)
            {
                return(null);
            }
            CFiltreData filtre = new CFiltreDataAvance(
                CDocumentGED.c_nomTable,
                CRelationElementToDocument.c_nomTable + "." + CRelationElementToDocument.c_champIdElement + "=@1 and " +
                CRelationElementToDocument.c_nomTable + "." + CRelationElementToDocument.c_champTypeElement + "=@2",
                objet.Id,
                objet.GetType().ToString());
            CListeObjetsDonnees liste = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CDocumentGED));

            liste.RemplissageProgressif = true;
            liste.Filtre = filtre;
            return(liste);
        }
示例#10
0
        private void InitComboTypeEquipement()
        {
            CListeObjetsDonnees liste = new CListeObjetsDonnees(ContexteDonnee, typeof(CSpvTypeq));

            m_cmbTypeEquipement.Fill(liste, "Libelle", false);

            if (TableSnmp.TypeEquipementAttache != null)
            {
                m_cmbTypeEquipement.SelectedValue = TableSnmp.TypeEquipementAttache;
            }

            /*
             * m_SelectTypeEquipement.Init(
             *  typeof(CFormListeTypesEquipements),
             *  "Libelle",
             *  CFournisseurFiltreRapide.GetFiltreRapideForType(typeof(CTypeEquipement)));
             * m_SelectTypeEquipement.ElementSelectionne = TableSnmpEdite.TypeEquipementAttache;*/
        }
示例#11
0
 //---------------------------------------------
 public void AddSelectedEntity(CObjetDonneeAIdNumerique objet)
 {
     if (objet != null && (objet.GetType() == TypeEntiteAssocie || TypeEntiteAssocie == null))
     {
         TypeEntiteAssocie = objet.GetType();
         //Vérifie que l'entité n'est pas déjà associée
         CListeObjetsDonnees lst = RelationsElementsSelectionnes;
         lst.Filtre = new CFiltreData(CRelationBesoinQuantite_Element.c_champIdElement + "=@1",
                                      objet.Id);
         if (lst.Count == 0)
         {
             CRelationBesoinQuantite_Element rel = new CRelationBesoinQuantite_Element(ContexteDonnee);
             rel.CreateNewInCurrentContexte();
             rel.BesoinQuantite = this;
             rel.Element        = objet;
         }
     }
 }
示例#12
0
        public bool AddElementLie(CObjetDonneeAIdNumerique element, string strCode)
        {
            if (element == null)
            {
                return(false);
            }
            ArrayList           lst   = new ArrayList();
            CListeObjetsDonnees liste = TypeEntree.RelationsTypeElementsAAgenda;

            liste.Filtre = new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champCode + "=@1", strCode);
            if (liste.Count == 0)
            {
                return(false);
            }
            CRelationTypeEntreeAgenda_TypeElementAAgenda relType = (CRelationTypeEntreeAgenda_TypeElementAAgenda)liste[0];

            return(AddElementLieSurType(element, relType));
        }
示例#13
0
        /// /////////////////////////////////////////////////////////////
        private void UpdateLiensChampsCustom(C2iWnd fenetre)
        {
            CListeObjetsDonnees listeRelations = RelationsChamps;
            Hashtable           tableRelations = new Hashtable();
            Hashtable           tableToDelete  = new Hashtable();

            foreach (CRelationFormulaireChampCustom rel in listeRelations)
            {
                tableRelations[rel.Champ.Id] = rel;
                tableToDelete[rel.Champ.Id]  = rel;
            }

            if (fenetre != null)
            {
                ArrayList lst = fenetre.AllChilds();
                foreach (object obj in lst)
                {
                    if (obj is C2iWndChampCustom)
                    {
                        C2iWndChampCustom fenChamp = (C2iWndChampCustom)obj;
                        CChampCustom      champ    = fenChamp.ChampCustom;
                        if (champ != null)
                        {
                            CRelationFormulaireChampCustom rel = (CRelationFormulaireChampCustom)tableRelations[champ.Id];
                            if (rel == null)
                            {
                                rel = new CRelationFormulaireChampCustom(ContexteDonnee);
                                rel.CreateNewInCurrentContexte();
                                rel.Champ                = champ;
                                rel.Formulaire           = this;
                                tableRelations[champ.Id] = rel;
                            }
                            tableToDelete.Remove(champ.Id);
                            rel.NumWeb     = fenChamp.WebNumOrder;
                            rel.LibelleWeb = fenChamp.WebLabel;
                        }
                    }
                }
            }
            foreach (CRelationFormulaireChampCustom rel in tableToDelete.Values)
            {
                rel.Delete();
            }
        }
示例#14
0
        public static void AddToMenuParent(ToolStripMenuItem menu, string strContexte, object objet)
        {
            if (objet == null)
            {
                return;
            }

            CModeleTexte modeleSel = CTimosAppRegistre.GetModeleTexteForType(strContexte, objet.GetType());

            CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CModeleTexte));

            liste.Filtre = new CFiltreData(CModeleTexte.c_champTypeAssocie + "=@1",
                                           objet.GetType().ToString());
            foreach (CModeleTexte modele in liste)
            {
                CMenuModeleTexte menuModele = new CMenuModeleTexte(modele, strContexte, objet);
                if (modeleSel != null && modele.Id == modeleSel.Id)
                {
                    menuModele.Checked = true;
                }
                menuModele.MouseUp += new MouseEventHandler(menuModele.menuModele_MouseUp);
                menu.DropDownItems.Add(menuModele);
            }

            CSessionClient session = CSessionClient.GetSessionForIdSession(CSc2iWin32DataClient.ContexteCourant.IdSession);

            if (session != null)
            {
                IInfoUtilisateur info = session.GetInfoUtilisateur();
                if (info != null && info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministration) != null)
                {
                    menu.DropDownItems.Add(new ToolStripSeparator());
                    CMenuModeleTexte menuModeleAdd = new CMenuModeleTexte(null, strContexte, objet);
                    menuModeleAdd.Text   = I.T("Add|124");
                    menuModeleAdd.Click += new EventHandler(menuModeleAdd.itemAddMenu_Click);
                    menu.DropDownItems.Add(menuModeleAdd);
                }
            }

            if (menu.DropDownItems.Count == 0)
            {
                menu.Visible = false;
            }
        }
示例#15
0
 private void CArbreConsultationHierarchique_BeforeExpand(object sender, TreeViewCancelEventArgs e)
 {
     using (sc2i.win32.common.CWaitCursor waiter = new sc2i.win32.common.CWaitCursor())
     {
         TreeNode node = e.Node;
         if (node.Nodes.Count == 1 && node.Nodes[0].Tag == null)
         {
             node.Nodes.Clear();
             CNodeConsultationHierarchique data         = node.Tag as CNodeConsultationHierarchique;
             IObjetDonneeAutoReference     objetAutoRef = data.ObjetLie as IObjetDonneeAutoReference;
             CFolderConsultationFolder     folderParent = null;
             folderParent = ((CNodeConsultationHierarchique)node.Tag).Folder as CFolderConsultationFolder;
             if (objetAutoRef != null && (folderParent == null))
             {
                 string       strProp = objetAutoRef.ProprieteListeFils;
                 PropertyInfo prop    = objetAutoRef.GetType().GetProperty(strProp);
                 if (prop != null)
                 {
                     MethodInfo methode = prop.GetGetMethod();
                     if (methode != null)
                     {
                         CListeObjetsDonnees listeFils = methode.Invoke(objetAutoRef, new object[0]) as CListeObjetsDonnees;
                         if (listeFils != null)
                         {
                             foreach (CObjetDonnee objet in listeFils)
                             {
                                 CNodeConsultationHierarchique dataFils = new CNodeConsultationHierarchique(
                                     objet,
                                     data.Folder,
                                     node.Tag as CNodeConsultationHierarchique);
                                 TreeNode newNode = CreateNode(dataFils);
                                 node.Nodes.Add(newNode);
                             }
                         }
                     }
                 }
             }
             foreach (CFolderConsultationHierarchique folderFils in data.Folder.SousFolders)
             {
                 CreateNodes(data.ObjetLie, folderFils, node);
             }
         }
     }
 }
示例#16
0
        //-------------------------------------------------------------------------
        private void CFormNommageEntite_Load(object sender, EventArgs e)
        {
            sc2i.win32.common.CWin32Traducteur.Translate(this);
            if (m_objet != null)
            {
                m_lblEntite.Text = m_objet.DescriptionElement;
            }
            else
            {
                m_lblEntite.Text = I.T("None|915");
            }

            // Recherche la liste des CNommageEntite existants sur cet élément
            CListeObjetsDonnees lstNommages = new CListeObjetsDonnees(m_contexteLocal, typeof(CNommageEntite));

            //TESTDBKEYOK
            lstNommages.Filtre = new CFiltreData(
                CNommageEntite.c_champTypeEntite + " = @1 and " +
                CNommageEntite.c_champCleEntite + " = @2",
                m_objet.TypeString,
                m_objet.DbKey.StringValue);

            // Vide la liste des Controles
            foreach (Control ctrl in m_panelControlsSaisie.Controls)
            {
                if (ctrl is CControlSaisieNomEntite)
                {
                    ctrl.Visible = false;
                    ctrl.Parent  = null;
                    m_panelControlsSaisie.Controls.Remove(ctrl);
                    ctrl.Dispose();
                }
            }

            // Remplie le liste des controles
            m_nIndex = 0;
            foreach (CNommageEntite nom in lstNommages)
            {
                if (nom.NomFort != String.Empty)
                {
                    AjouterControlSaisieNommage(nom, m_nIndex++);
                }
            }
        }
示例#17
0
        //---------------------------------------------
        /// <summary>
        /// Génère un mouvement qui annule celui-ci
        /// </summary>
        /// <returns></returns>
        public CResultAErreur AnnuleDeplacement()
        {
            CResultAErreur       result    = CResultAErreur.True;
            CMouvementEquipement mouvement = this;

            mouvement.BeginEdit();
            try
            {
                CListeObjetsDonnees mvts = EquipementDeplace.Mouvements;
                mvts.Tri = c_champDateMouvement;
                if (!mvts[mvts.Count - 1].Equals(mouvement))
                {
                    result.EmpileErreur(I.T("Impossible to cancel the movement of the equipment '@1' because it is not the last movement of this equipment|30036", EquipementDeplace.Libelle));
                    return(result);
                }


                result = EquipementDeplace.DeplaceEquipement(
                    "Annulation du mouvement précédent",
                    EmplacementOrigine,
                    EquipementOrigine,
                    CoordonneeOrigine,
                    OccupationOrigine,
                    null,
                    DateTime.Now,
                    "");
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
                if (result)
                {
                    result = mouvement.CommitEdit();
                }
                else
                {
                    mouvement.CancelEdit();
                }
            }
            return(result);
        }
        public CResultAErreur Execute(int nIdSession, Hashtable valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            using (CContexteDonnee contexte = new CContexteDonnee(nIdSession, true, false))
            {
                try
                {
                    CHandlerEvenementServeur.SuspendGestionnaire(true);

                    // Supprimer les interventions SANS DEPLACEMENT
                    CListeObjetsDonnees listeIntersASupprimer = new CListeObjetsDonnees(contexte, typeof(CIntervention));
                    listeIntersASupprimer.Filtre = new CFiltreDataAvance(
                        CIntervention.c_nomTable,
                        //CIntervention.c_champId + " > @1 AND " + // DEBUG
                        CFractionIntervention.c_nomTable + "." +
                        COperation.c_nomTable + "." +
                        CTypeOperation.c_champId + " = @1",
                        //8900, // DEBUG
                        30); // 30 = Id du type d'opération SANS DEPLACEMENT

                    //int nbASupprimer = listeIntersASupprimer.CountNoLoad;
                    CObjetDonneeAIdNumerique.DeleteAvecCascadeSansControleDoncIlFautEtreSurDeSoi(listeIntersASupprimer);

                    result = contexte.SaveAll(true);
                    if (!result)
                    {
                        result.EmpileErreur("Erreur de sauvegarde des données");
                        return(result);
                    }
                }
                catch (Exception e)
                {
                    result.EmpileErreur(new CErreurException(e));
                }
                finally
                {
                    CHandlerEvenementServeur.SuspendGestionnaire(false);
                }
            }

            return(result);
        }
示例#19
0
        /// <summary>
        /// Retourne tous les comportements génériques induits par un définisseur
        /// </summary>
        /// <param name="definisseur"></param>
        /// <returns></returns>
        public static CComportementGenerique[] GetComportementsInduits(IDefinisseurEvenements definisseur)
        {
            CListeObjetsDonnees liste = new CListeObjetsDonnees(((CObjetDonnee)definisseur).ContexteDonnee, typeof(CRelationDefinisseurComportementInduit));

            liste.Filtre = new CFiltreData(
                CRelationDefinisseurComportementInduit.c_champTypeDefinisseur + "=@1 and " +
                CRelationDefinisseurComportementInduit.c_champIdDefinisseur + "=@2",
                definisseur.GetType().ToString(),
                definisseur.Id);
            CComportementGenerique[] lst = new CComportementGenerique[liste.Count];
            int nIndex = 0;

            foreach (CRelationDefinisseurComportementInduit rel in liste)
            {
                lst[nIndex++] = rel.Comportement;
            }

            return(lst);
        }
示例#20
0
        /// /////////////////////////////////////////////
        public DataTable GetNewDataTable(string strNomTable)
        {
            DataTable dt = new DataTable(strNomTable);

            dt.Columns.Add("ID");
            dt.Columns[0].AutoIncrement = true;

            CListeObjetsDonnees lstcol = Colonnes;

            for (int i = 0; i < lstcol.Count; i++)
            {
                foreach (CColonneTableParametrable col in lstcol)
                {
                    if (col.Position == i)
                    {
                        dt.Columns.Add(col.GetDataColumn());
                        break;
                    }
                }
            }

            lstcol = ColonnesClePrimaires;
            if (lstcol.Count > 0)
            {
                List <DataColumn> colPks = new List <DataColumn>();
                foreach (CColonneTableParametrable col in lstcol)
                {
                    foreach (DataColumn c in dt.Columns)
                    {
                        if (c.ColumnName == col.Libelle)
                        {
                            colPks.Add(c);
                            break;
                        }
                    }
                }
                dt.PrimaryKey = colPks.ToArray();
            }

            CTableParametrable.PrepareToForUse(dt, null);

            return(dt);
        }
示例#21
0
        public static string[] GetSrongNames(this CObjetDonneeAIdNumerique objet)
        {
            List <string>       strNames    = new List <string>();
            CListeObjetsDonnees lstNommages = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CNommageEntite));

            //TESTDBKEYOK
            lstNommages.Filtre = new CFiltreData(
                CNommageEntite.c_champTypeEntite + " = @1 and " +
                CNommageEntite.c_champCleEntite + " = @2",
                objet.TypeString,
                objet.DbKey.StringValue);

            foreach (CNommageEntite nom in lstNommages)
            {
                strNames.Add(nom.NomFort);
            }

            return(strNames.ToArray());
        }
示例#22
0
        //-----------------------------------------------------------------------------------------------
        public IEnumerable <CDefinitionProprieteDynamique> GetDefinitionsFonctionsSupplementaires(CObjetPourSousProprietes objet)
        {
            List <CDefinitionProprieteDynamique> lstProps = new List <CDefinitionProprieteDynamique>();

            if (objet == null)
            {
                return(lstProps.ToArray());
            }
            Type tp = objet.TypeAnalyse;

            if (tp == null)
            {
                return(lstProps.ToArray());
            }

            if (!C2iFactory.IsInit())
            {
                return(lstProps.ToArray());
            }

            CContexteDonnee     contexte = CContexteDonneeSysteme.GetInstance();
            CListeObjetsDonnees liste    = new CListeObjetsDonnees(contexte, typeof(CFonctionDynamiqueInDb));

            liste.Filtre = new CFiltreData(CFonctionDynamiqueInDb.c_champTypeObjets + "=@1", tp.ToString());
            foreach (CFonctionDynamiqueInDb fonctionInDb in liste)
            {
                CFonctionDynamique fonction = fonctionInDb.Fonction;
                if (fonction != null)
                {
                    CDefinitionFonctionDynamique def = new CDefinitionFonctionDynamique(fonction);
                    if (fonctionInDb.Categorie.Length == 0)
                    {
                        def.Rubrique = I.T("Methods|58");
                    }
                    else
                    {
                        def.Rubrique = fonctionInDb.Categorie;
                    }
                    lstProps.Add(def);
                }
            }
            return(lstProps.ToArray());
        }
示例#23
0
        /// ////////////////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CRelationTypeEquipement_TypeRemplacement relation = (CRelationTypeEquipement_TypeRemplacement)objet;
                if (relation.TypeRemplacable == null)
                {
                    result.EmpileErreur(I.T("The Replaceable Type must be defined|131"));
                }
                if (relation.TypeRemplacant == null)
                {
                    result.EmpileErreur(I.T("The Substitute Type must be defined|132"));
                }

                // La relation entre deux types d'équipements doit être unique
                CListeObjetsDonnees listeRel = new CListeObjetsDonnees(relation.ContexteDonnee,
                                                                       typeof(CRelationTypeEquipement_TypeRemplacement));

                listeRel.Filtre = new CFiltreData("(" +
                                                  "(" +
                                                  CRelationTypeEquipement_TypeRemplacement.c_champIdTypeRemplacable + " = @1 AND " +
                                                  CRelationTypeEquipement_TypeRemplacement.c_champIdTypeRemplacant + " = @2) OR (" +
                                                  CRelationTypeEquipement_TypeRemplacement.c_champIdTypeRemplacable + " = @2 AND " +
                                                  CRelationTypeEquipement_TypeRemplacement.c_champIdTypeRemplacant + " = @1)) and " +
                                                  CRelationTypeEquipement_TypeRemplacement.c_champId + "<>@3",
                                                  relation.TypeRemplacable.Id,
                                                  relation.TypeRemplacant.Id,
                                                  relation.Id);

                listeRel.InterditLectureInDB = true;
                if (listeRel.Count != 0)
                {
                    result.EmpileErreur(I.T("This relation already exists in the Relation List|133"));
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
示例#24
0
        /// <summary>
        /// Vérifie qu'une dataRow vérifie ses règles d'unicité
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        private static CResultAErreur VerifieUnicite(DataRow row, List <CInfoFiltreUnique> listeFiltres, Type typeObjet)
        {
            CResultAErreur result = CResultAErreur.True;

            if (row.RowState == DataRowState.Detached ||
                row.RowState == DataRowState.Deleted)
            {
                return(result);
            }

            foreach (CInfoFiltreUnique info in listeFiltres)
            {
                CFiltreData filtre = new CFiltreData(info.Filtre.Filtre);
                filtre.Parametres.Add(row[row.Table.PrimaryKey[0]]);
                int           nIndex     = 2;
                List <string> lstValeurs = new List <String>();
                foreach (string strChamp in info.Attribute.Champs)
                {
                    if (!row.Table.Columns.Contains(strChamp))
                    {
                        return(result);
                    }
                    if (row[strChamp] == DBNull.Value)
                    {
                        filtre.Filtre.Replace("=@" + nIndex, " is null");
                        filtre.Parametres.Add("");
                    }
                    else
                    {
                        filtre.Parametres.Add(row[strChamp]);
                    }
                    lstValeurs.Add(row[strChamp].ToString());
                }
                CListeObjetsDonnees liste = new CListeObjetsDonnees((CContexteDonnee)row.Table.DataSet, typeObjet);
                liste.Filtre = filtre;
                if (liste.Count > 0)
                {
                    result.EmpileErreur(I.TT(typeObjet, info.Attribute.Message, lstValeurs.ToArray()));
                    return(result);
                }
            }
            return(result);
        }
示例#25
0
        /// <summary>
        /// Force l'appartenance des groupes comme définit dans la base AD
        /// </summary>
        /// <returns></returns>
        public CResultAErreur SynchroniseGroupesAD( )
        {
            CResultAErreur result = CResultAErreur.True;

            CAdGroup[] adGroups = CAdGroup.GetGroups(IdSession);
            using (CContexteDonnee contexte = new CContexteDonnee(IdSession, true, false))
            {
                contexte.BeginModeDeconnecte();
                CListeObjetsDonnees liste  = new CListeObjetsDonnees(contexte, typeof(CGroupeActeur));
                CFiltreData         filtre = new CFiltreData(CGroupeActeur.c_champGroupeWindowsCorrespondant + "<>@1", "");
                liste.Filtre = filtre;

                if (result)
                {
                    contexte.CommitModifsDeconnecte();
                }
            }
            return(result);
        }
示例#26
0
        //-------------------------------------------------------------
        private void CFormTestSpvGraph_Load(object sender, EventArgs e)
        {
            m_arbre.Nodes.Clear();
            CListeObjetsDonnees lst = m_spvSchema.ElementsDeGraphe;
            CSpvElementDeGraphe elt = new CSpvElementDeGraphe(m_spvSchema.ContexteDonnee);

            if (!elt.ReadIfExists(new CFiltreData(CSpvElementDeGraphe.c_champSensReseau + "=@1 and " +
                                                  CSpvElementDeGraphe.c_champParentId + " is null",
                                                  (int)ESensAllerRetourLienReseau.Forward)))
            {
                return;
            }
            elt = elt.GetElementDuBonType();
            if (elt != null)
            {
                TreeNode node = CreateNode(elt);
                m_arbre.Nodes.Add(node);
            }
        }
示例#27
0
        //-------------------------------------------------------------------------
        private void InitTypesEos()
        {
            m_arbreEO.Nodes.Clear();
            Hashtable tableCorrespondances = new Hashtable();

            foreach (COptionCorrespondanceEO option in Profil.OptionsPropres)
            {
                tableCorrespondances[option.TypeEO] = option.ModeComparaison;
            }
            CListeObjetsDonnees listeTypesEo = new CListeObjetsDonnees(Profil.ContexteDonnee, typeof(CTypeEntiteOrganisationnelle));

            listeTypesEo.Filtre = new CFiltreData(CTypeEntiteOrganisationnelle.c_champIdParent + " is null");
            foreach (CTypeEntiteOrganisationnelle tp in listeTypesEo)
            {
                TreeNode node = new TreeNode();
                FillItemTypeEO(node, tp, tableCorrespondances);
                m_arbreEO.Nodes.Add(node);
            }
        }
示例#28
0
        //--------------------------------------------------------------------
        public void Init(CBesoin besoin)
        {
            CurrentItemIndex = null;
            Items            = new CCustomizableListItem[0];
            m_besoin         = besoin;

            if (m_besoin != null)
            {
                List <CCustomizableListItem> items        = new List <CCustomizableListItem>();
                CListeObjetsDonnees          lstQuantites = m_besoin.Quantites;
                lstQuantites.Filtre = new CFiltreData(CBesoinQuantite.c_champIdQteParente + " is null");
                foreach (CBesoinQuantite q in lstQuantites)
                {
                    AddItemQuantiteEtFils(null, q, items);
                }
                Items = items.ToArray();
            }
            Refresh();
        }
示例#29
0
        //-------------------------------------------------------------------
        private static void AlloueCode(CObjetHierarchique objet, ref int nLastCodeAlloue)
        {
            CFiltreData filtre = null;

            if (objet.ObjetParent != null)
            {
                filtre = new CFiltreData(objet.ChampIdParent + "=@1",
                                         objet.ObjetParent.Id);
            }
            else
            {
                filtre = new CFiltreData(objet.ChampIdParent + " is null and " +
                                         objet.ChampCodeSystemePartiel + ">@1", GetCle(nLastCodeAlloue, objet.NbCarsParNiveau));
            }

            CListeObjetsDonnees listeSoeurs = new CListeObjetsDonnees(objet.ContexteDonnee, objet.GetType(), filtre);

            listeSoeurs.AssureLectureFaite();

            listeSoeurs.InterditLectureInDB = true;

            Hashtable tableCodesUtilises = new Hashtable();

            foreach (CObjetHierarchique obj in listeSoeurs)
            {
                tableCodesUtilises[obj.CodeSystemePartiel] = true;
            }

            //Cherche le prochain numéro libre
            int    nCpt   = nLastCodeAlloue;
            string strCle = "";

            do
            {
                nCpt++;
                strCle = GetCle(nCpt, objet.NbCarsParNiveau);

                /*listeSoeurs.Filtre = new CFiltreData(objet.ChampCodeSystemePartiel + "=@1",
                 *      strCle);*/
            }while (tableCodesUtilises.ContainsKey(strCle));
            nLastCodeAlloue = nCpt;
            objet.ChangeCodePartiel(strCle);
        }
        /////////////////////////////////////////////////////////////////
        public override sealed CResultAErreur Delete(bool bDansContexteCourant)
        {
            CResultAErreur result = CResultAErreur.True;

            if (Row.RowState == DataRowState.Deleted)
            {
                return(CResultAErreur.True);
            }
            if (Row.RowState == DataRowState.Detached)
            {
                result.EmpileErreur(I.T("Cannot delete a detached object|191"));
                return(result);
            }
            CListeObjetsDonnees liste = new CListeObjetsDonnees(ContexteDonnee, GetType(), false);

            liste.Filtre = new CFiltreData(GetChampId() + "=@1", Id);
            liste.Filtre.IgnorerVersionDeContexte = true;
            return(Delete(liste, bDansContexteCourant));
        }