//----------------------------------------------------------------------
        public CResultAErreur SetParametres(Dictionary <string, object> dicParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            object obj = null;

            if (dicParametres.TryGetValue(m_cParametreReportId, out obj))
            {
                if (obj is int)
                {
                    m_rapport = new C2iRapportCrystal(CSc2iWin32DataClient.ContexteCourant);
                    if (!m_rapport.ReadIfExists((int)obj))
                    {
                        result.EmpileErreur(I.T("There is no Crystal Report Model corresponding to the Id: @1|10006", ((int)obj).ToString()));
                    }
                }
                else if (obj is string)
                {
                    m_rapport = new C2iRapportCrystal(CSc2iWin32DataClient.ContexteCourant);
                    if (!m_rapport.ReadIfExists(CDbKey.CreateFromStringValue((string)obj)))
                    {
                        result.EmpileErreur(I.T("There is no Crystal Report Model corresponding to the Universal : @1", (string)obj));
                    }
                }
                else
                {
                    result.EmpileErreur(I.T("The Report ID parameter must be an integer value|10007"));
                }
            }

            return(result);
        }
        public void AddProprietesAccedees(
            CArbreDefinitionsDynamiques arbre,
            Type typeSource,
            string strPropriete)
        {
            //TESTDBKEYOK
            CDbKey key = CDbKey.CreateFromStringValue(strPropriete);

            /*int nIdChamp = -1;
             *          try
             *          {
             *                  nIdChamp = Int32.Parse ( strPropriete );
             *          }
             *          catch
             *          {
             *          }*/
            CChampCalcule champCalcule = new CChampCalcule(CContexteDonneeSysteme.GetInstance());
            C2iExpression formule      = null;

            if (champCalcule.ReadIfExists(key))
            {
                formule = champCalcule.Formule;
                formule.GetArbreProprietesAccedees(arbre);
                CDefinitionProprieteDynamiqueChampCalcule.DetailleSousArbres(arbre, CContexteDonneeSysteme.GetInstance());
            }
        }
Example #3
0
        //---------------------------------------------------------------------------------
        public static object GetValeurChamp(IObjetDonneeAChamps objet, string strIdChamp)
        {
            CChampCustom champ = new CChampCustom(objet.ContexteDonnee);

            if (champ.ReadIfExists(CDbKey.CreateFromStringValue(strIdChamp)))
            {
                return(GetValeurChamp(objet, champ.Id, DataRowVersion.Default));
            }
            return(null);
        }
        //------------------------------------------------------------
        public override CResultAErreur GetValue(object objet, string strPropriete)
        {
            CResultAErreur result = CResultAErreur.True;

            result.Data = null;
            string strIdChamp     = null;
            bool   bEntiteToChamp = false;

            if (

                /*Pour compatibilité, avant modifs de décembre 2015, le nom du champ était en fait le même qu'une propriété champ custom.
                 * En décembre 2015, ajout de la possiblité de retourner les valeurs display de champ custom dans les requêtes,
                 * ce qui a changé le nom de la propriétés
                 * */
                CInfoRelationEntiteToValeurChampCustom.DecomposeNomPropriete(strPropriete, ref strIdChamp) ||
                /*fin pour compatiblité*/
                CInfoRelationComposantFiltreEntiteToChampEntite.DecomposeNomPropriete(strPropriete, ref strIdChamp, ref bEntiteToChamp))
            {
                IElementAChamps eltAChamps = objet as IElementAChamps;
                if (eltAChamps == null)
                {
                    return(result);
                }
                result.Data = eltAChamps.GetValeurChamp(strIdChamp);
                CChampCustom champ = new CChampCustom(CContexteDonneeSysteme.GetInstance());
                if (result.Data != null && champ.ReadIfExists(CDbKey.CreateFromStringValue(strIdChamp)))
                {
                    if (!champ.IsChoixParmis())
                    {
                        result.Data = result.Data.ToString();
                    }
                    else
                    {
                        foreach (CValeurChampCustom valeur in champ.ListeValeurs)
                        {
                            if (valeur.Value.Equals(result.Data))
                            {
                                result.Data = valeur.Display;
                                return(result);
                            }
                        }
                    }
                }
            }
            else if (CInfoRelationEValeurChampCustomToDisplay.DecomposeNomPropriete(strPropriete, ref strIdChamp))
            {
                //Rien de spécial, il s'agit de la navigation vers la valeur du champ qui a déjà été reprise par le composant filtre to champ entité
                //car la propriété complète d'un definitionDisplayValue est donnée par GetKeyChamp qui ajoute un composant Element->ValeurChamp + ValeurChamp->Display value
                result.Data = objet;
            }

            return(result);
        }
        public static bool EditeNomVariable(ref string strNom, ref CTypeResultatExpression typeDonnee, ref CDbKey dbKeyInitial, bool bAvecIdInitial)
        {
            CFormEditNomVariable form = new CFormEditNomVariable();

            form.m_txtNomVariable.Text = strNom;
            form.InitComboBoxType(typeDonnee != null ? typeDonnee.TypeDotNetNatif : null);
            if (typeDonnee != null)
            {
                form.m_panelType.LockEdition         = true;
                form.m_chkTableau.Checked            = typeDonnee.IsArrayOfTypeNatif;
                form.m_cmbTypeElements.SelectedValue = typeDonnee.TypeDotNetNatif;
                form.m_txtKeyInitiale.Text           = dbKeyInitial != null?dbKeyInitial.StringValue:"";
            }
            form.m_panelIdInitial.Visible = bAvecIdInitial;
            bool bResult = form.ShowDialog() == DialogResult.OK;

            if (bResult)
            {
                strNom = form.m_txtNomVariable.Text;
                if (!form.m_panelType.LockEdition)
                {
                    Type tp = (Type)form.m_cmbTypeElements.SelectedValue;
                    if (tp == null || tp == typeof(DBNull))
                    {
                        tp = null;
                    }
                    typeDonnee = new CTypeResultatExpression(
                        (Type)form.m_cmbTypeElements.SelectedValue,
                        form.m_chkTableau.Checked);
                }
                if (form.m_txtKeyInitiale != null)
                {
                    int nId = -1;
                    if (int.TryParse(form.m_txtKeyInitiale.Text, out nId))
                    {
                        dbKeyInitial = CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId);
                    }
                    else
                    {
                        dbKeyInitial = CDbKey.CreateFromStringValue(form.m_txtKeyInitiale.Text);
                    }
                }
                else
                {
                    bResult = false;
                }
            }
            form.Dispose();
            return(bResult);
        }
Example #6
0
        //---------------------------------------------------------------------------------
        public static CResultAErreur SetValeurChamp(IObjetDonneeAChamps objet, string strIdChamp, object valeur)
        {
            CResultAErreur result = CResultAErreur.True;

            CChampCustom champ = new CChampCustom(objet.ContexteDonnee);

            if (champ.ReadIfExists(CDbKey.CreateFromStringValue(strIdChamp)))
            {
                return(SetValeurChamp(objet, champ.Id, valeur));
            }

            result.EmpileErreur("Invalid Custom Field Id in SetValeurChamps (Line 179)");
            return(result);
        }
Example #7
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process);

            result = ExpressionUtilisateur.Eval(contexteEval);

            if (!result)
            {
                return(result);
            }
            else
            {
                CDbKey keyUtilisateur = null;
                try
                {
                    //TESTDBKEYOK
                    int nId = Convert.ToInt32(result.Data);
                    keyUtilisateur = CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId);
                }
                catch
                {
                    //TESTDBKEYTODO
                    if (result.Data != null)
                    {
                        keyUtilisateur = CDbKey.CreateFromStringValue(result.Data.ToString());
                    }
                    else
                    {
                        result.EmpileErreur(I.T("The user expression doesn't return an integer number|381"));
                        return(result);
                    }
                }
                CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(contexte.ContexteDonnee);
                if (!user.ReadIfExists(keyUtilisateur))
                {
                    result.EmpileErreur(I.T("The user @1 doesn't exist|382", keyUtilisateur.StringValue));
                    return(result);
                }
                contexte.Branche.KeyUtilisateur = keyUtilisateur;
                CSessionClient session = CSessionClient.GetSessionForIdSession(contexte.ContexteDonnee.IdSession);
                if (session != null)
                {
                    session.ChangeUtilisateur(keyUtilisateur);
                }
            }
            return(result);
        }
Example #8
0
        /// //////////////////////////////////////////////////
        public override CResultAErreur SaveAll(CContexteSauvegardeObjetsDonnees contexteSauvegarde, System.Data.DataRowState etatsAPrendreEnCompte)
        {
            DataTable      table     = contexteSauvegarde.ContexteDonnee.Tables[GetNomTable()];
            List <DataRow> rowsAdded = new List <DataRow>();

            if (table != null)
            {
                foreach (DataRow row in new ArrayList(table.Rows))
                {
                    if (row.RowState == DataRowState.Added || (row.RowState == DataRowState.Modified && !row[CSc2iDataConst.c_champIsDeleted].Equals(true)))
                    {
                        rowsAdded.Add(row);
                    }
                    if (row.RowState == DataRowState.Deleted || (row.RowState == DataRowState.Modified && row[CSc2iDataConst.c_champIsDeleted].Equals(true)))
                    {
                        //TESTDBKEYTODO
                        CDonneeNotificationBesoinIntervention notif = new CDonneeNotificationBesoinIntervention(
                            IdSession,
                            CDbKey.CreateFromStringValue((string)row[CBesoinInterventionProcess.c_champKeyUtilisateur,
                                                                     DataRowVersion.Original]),
                            (int)row[CBesoinInterventionProcess.c_champId,
                                     DataRowVersion.Original],
                            (string)row[CBesoinInterventionProcess.c_champLibelle,
                                        DataRowVersion.Original],
                            true);
                        CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notif });
                    }
                }
            }
            CResultAErreur result = base.SaveAll(contexteSauvegarde, etatsAPrendreEnCompte);

            if (result)
            {
                foreach (DataRow row in rowsAdded)
                {
                    //TESTDBKEYTODO
                    CDonneeNotificationBesoinIntervention notif = new CDonneeNotificationBesoinIntervention(
                        IdSession,
                        CDbKey.CreateFromStringValue((string)row[CBesoinInterventionProcess.c_champKeyUtilisateur]),
                        (int)row[CBesoinInterventionProcess.c_champId],
                        (string)row[CBesoinInterventionProcess.c_champLibelle],
                        false);
                    CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notif });
                }
            }
            return(result);
        }
        /// ////////////////////////////////////////////////////////////////
        public static void FindRelation(string strTable, Type type, ref CInfoRelationComposantFiltre relationTrouvee)
        {
            //TESTDBKEYTODO
            if (relationTrouvee != null)
            {
                return;
            }
            string strKeyChamp = "";

            if (DecomposeNomPropriete(strTable, ref strKeyChamp))
            {
                string strTableEntite = CContexteDonnee.GetNomTableForType(type);
                //Si strKeyChamp est un int, il s'agit d'un id de champ custom
                //ce cas peut se présenter lors de la relecture d'un filtre sous forme de
                //test par exemple dans une fonction ObjectList
                relationTrouvee = new CInfoRelationEValeurChampCustomToDisplay(CDbKey.CreateFromStringValue(strKeyChamp), strTableEntite);
            }
            //relationTrouvee = new CInfoRelationEValeurChampCustomToDisplay(relToChamp.DbKeyChamp, relToChamp.TableFille);
        }
        public IOptimiseurGetValueDynamic GetOptimiseur(Type tp, string strPropriete)
        {
            //TESTDBKEYOK
            CDbKey key = CDbKey.CreateFromStringValue(strPropriete);

            /*int nIdChamp = -1;
             * try
             * {
             *      nIdChamp = Int32.Parse ( strPropriete );
             * }
             * catch
             * {
             * }*/
            CChampCalcule champCalcule = new CChampCalcule(CContexteDonneeSysteme.GetInstance());
            C2iExpression formule      = null;

            if (champCalcule.ReadIfExists(key))
            {
                formule = champCalcule.Formule;
            }
            return(new CInterpreteurProprieteDynamiqueFormule.COptimiseurProprieteDynamiqueFormule(formule));
        }
        //------------------------------------------------------------
        public CResultAErreur GetValue(object objet, string strPropriete)
        {
            CResultAErreur result      = CResultAErreur.True;
            CObjetDonnee   objetDonnee = objet as CObjetDonnee;

            if (objetDonnee == null)
            {
                result.Data = null;
                return(result);
            }
            //TESTDBKEYOK
            CDbKey          key          = CDbKey.CreateFromStringValue(strPropriete);
            CContexteDonnee contexte     = objetDonnee.ContexteDonnee;
            CChampCalcule   champCalcule = new CChampCalcule(contexte);

            if (!champCalcule.ReadIfExists(key))
            {
                result.EmpileErreur(I.T("Calculated field @1 doesn't exists|200023", strPropriete));
                return(result);
            }
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objet);

            return(champCalcule.Formule.Eval(ctx));
        }
Example #12
0
        //------------------------------------------------------------------------------------------
        public void ReadArbre(CListeObjetsDonnees listeSource, CListeObjetsDonnees.CArbreProps arbre, List <string> lstPaquetsALire)
        {
            string strIdChamp   = "";
            string strPropriete = "";
            string strCle       = "";

            if (listeSource.Count == 0)
            {
                return;
            }
            bool bFromEntiteToChamp = false;

            if (!CDefinitionProprieteDynamique.DecomposeNomProprieteUnique(arbre.ProprietePrincipale, ref strCle, ref strPropriete))
            {
                return;
            }
            if (!CInfoRelationComposantFiltreEntiteToChampEntite.DecomposeNomPropriete(strPropriete, ref strIdChamp, ref bFromEntiteToChamp))
            {
                //c'est une relation vers des valeurs de champ qui pointent sur cette valeur.
                //Ignore, et traite tout dans le composant suivant qui est un Entité to champ à l'envers
                listeSource.ReadDependances(arbre);
                return;
            }
            //On a affaire à une liste source qui contient des valeurs qui sont pointées
            //par des valeurs de champs, et on veut les éléments qui pointent sur ces valeurs de champs

            CChampCustom champ      = new CChampCustom(listeSource.ContexteDonnee);
            CDbKey       dbKeyChamp = CDbKey.CreateFromStringValue(strIdChamp);

            if (!champ.ReadIfExists(dbKeyChamp))
            {
                return;
            }
            //Vérifie que la liste source est bien du type de données du champ custom
            if (champ.TypeDonnee.TypeDotNetNatif != listeSource.TypeObjets)
            {
                return;
            }
            IObjetDonneeAIdNumerique obj = listeSource[0] as IObjetDonneeAIdNumerique;

            if (obj == null)
            {
                return;
            }
            string strChampId = obj.GetChampId();

            if (lstPaquetsALire == null)
            {
                lstPaquetsALire = listeSource.GetPaquetsPourLectureFils(strChampId, null);
            }

            //Trouve le type des éléments à champs
            Type typeElementsFinaux = champ.Role.TypeAssocie;
            //Trouve le type des relations aux elementAchamp_ChampCustom
            IObjetDonneeAChamps elt = Activator.CreateInstance(typeElementsFinaux, new object[] { listeSource.ContexteDonnee }) as IObjetDonneeAChamps;

            if (elt == null)
            {
                return;
            }
            string strNomTableRelToChamp = elt.GetNomTableRelationToChamps();
            Type   tpRelToChamp          = CContexteDonnee.GetTypeForTable(strNomTableRelToChamp);

            if (tpRelToChamp == null)
            {
                return;
            }
            foreach (string strPaquet in lstPaquetsALire)
            {
                CListeObjetsDonnees lst = new CListeObjetsDonnees(listeSource.ContexteDonnee, typeElementsFinaux);

                //TESTDBKEYTODO
                string strChampCustomId = dbKeyChamp.IsNumericalId() ? CChampCustom.c_champId : CObjetDonnee.c_champIdUniversel;

                lst.Filtre = new CFiltreDataAvance(
                    CContexteDonnee.GetNomTableForType(typeElementsFinaux),
                    strNomTableRelToChamp + "." + strChampCustomId + "=@1 and " +
                    strNomTableRelToChamp + "." + CRelationElementAChamp_ChampCustom.c_champValeurInt + " in " +
                    strPaquet,
                    dbKeyChamp.GetValeurInDb());
                lst.AssureLectureFaite();
                lst.ReadDependances(arbre);
            }
        }
Example #13
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CDbKey dbKeyIdChamp    = null;
                object valeurRetournee = null;
                //TESTDBKEYOK : le premier paramètre peut être un Id ou un UniversalId de champ
                if (listeParametres.Length == 2)
                {
                    if (listeParametres[0] is int)
                    {
                        int nIdChamp = (int)listeParametres[0];
                        dbKeyIdChamp = CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nIdChamp);
                    }
                    else
                    {
                        dbKeyIdChamp = CDbKey.CreateFromStringValue((string)listeParametres[0]);
                    }

                    valeurRetournee = listeParametres[1];
                }

                if (listeParametres.Length == 1)
                {
                    //1 seul paramètre, ce doit être une expression variable avec une variable champ
                    C2iExpressionChamp exChamp = Parametres2i[0] as C2iExpressionChamp;
                    if (exChamp != null)
                    {
                        CDefinitionProprieteDynamiqueChampCustom def = exChamp.DefinitionPropriete as CDefinitionProprieteDynamiqueChampCustom;
                        if (def != null)
                        {
                            dbKeyIdChamp = def.DbKeyChamp;
                        }
                    }
                    valeurRetournee = listeParametres[0];
                }
                if (valeurRetournee == null || dbKeyIdChamp == null)
                {
                    result.Data = "";
                    return(result);
                }

                CContexteDonnee contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));
                if (contexteDonnee == null)
                {
                    contexteDonnee = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false);
                    ctx.AttacheObjet(typeof(CContexteDonnee), contexteDonnee);
                }
                CChampCustom champ = new CChampCustom(contexteDonnee);
                if (champ.ReadIfExists(dbKeyIdChamp))
                {
                    if (!champ.IsChoixParmis())
                    {
                        result.Data = valeurRetournee.ToString();
                    }
                    else
                    {
                        foreach (CValeurChampCustom valeur in champ.ListeValeurs)
                        {
                            if (valeur.Value.Equals(valeurRetournee))
                            {
                                result.Data = valeur.Display;
                                return(result);
                            }
                        }
                    }
                }
                result.Data = "";
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
Example #14
0
        /// ///////////////////////////////////////////////////////////
        public object GetValue(object objetInterroge, string strPropriete)
        {
            CFournisseurPropDynStd fournisseur = new CFournisseurPropDynStd(false);

            if (objetInterroge == null)
            {
                return(null);
            }
            //Est-ce une propriété simple ?(majorité des cas )
            object     objetAInterroger = null;
            MemberInfo membre           = null;

            if (CInterpreteurTextePropriete.GetObjetFinalEtMemberInfo(objetInterroge, strPropriete, ref objetAInterroger, ref membre) && membre != null)
            {
                return(CInterpreteurTextePropriete.GetValue(objetAInterroger, membre));
            }

            //Bon pas de bol, c'est autre chose, il faut donc chercher ce que c'est
            Type   tp           = objetInterroge.GetType();
            string strPropDebut = strPropriete.Split('.')[0];
            object objetPremier = CInterpreteurTextePropriete.GetValue(objetInterroge, strPropDebut);

            if (objetPremier == null)
            {
                string strIdChamp = CDefinitionProprieteDynamiqueChampCustom.GetIdPropriete(strPropDebut);
                foreach (CDefinitionProprieteDynamique def in fournisseur.GetDefinitionsChamps(tp, 0))
                {
                    if (def.NomPropriete == strPropDebut ||
                        (strIdChamp != "" && def is CDefinitionProprieteDynamiqueChampCustom) &&
                        ((CDefinitionProprieteDynamiqueChampCustom)def).DbKeyChamp == CDbKey.CreateFromStringValue(strIdChamp))
                    {
                        objetPremier = GetValue(objetInterroge, def);
                        //Si la suite est une relation de la valeur champ vers l'objet, il ne faut pas
                        //traier la suite
                        if (strPropDebut != strPropriete)
                        {
                            string strSuiteTmp = strPropriete.Substring(strPropDebut.Length + 1);
                            if (CInfoRelationComposantFiltreChampToEntite.IsRelationFromChampToEntite(strSuiteTmp))
                            {
                                //On a déjà traité ce lien par GetValeurPropriété (qui retourne la valeur
                                //et nom pas le lien vers la valeur)
                                strPropDebut += "." + strPropriete.Split('.')[1];
                            }
                        }

                        break;
                    }
                }
            }
            if (objetPremier == null)
            {
                return(null);
            }
            if (strPropDebut == strPropriete)
            {
                return(objetPremier);
            }
            string strSuite = strPropriete.Substring(strPropDebut.Length + 1);

            return(GetValue(objetPremier, strSuite));
        }
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;


            //Calcule le message
            string strMessage = "";
            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process);

            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
            result = FormuleMessage.Eval(contexteEval);
            if (!result)
            {
                result     = CResultAErreur.True;
                strMessage = FormuleMessage.GetString();
            }
            else
            {
                strMessage = result.Data == null?"":result.Data.ToString();
            }

            string strCodeAttente = "";

            if (FormuleCodeAttente != null)
            {
                result = FormuleCodeAttente.Eval(contexteEval);
                if (!result || result.Data == null)
                {
                    strCodeAttente = "";
                }
                else
                {
                    strCodeAttente = result.Data.ToString();
                }
            }

            //TESTDBKEYOK (SC)
            CDbKey keyUtilisateur = contexte.Branche.KeyUtilisateur;

            if (m_formuleIdUtilisateur != null)
            {
                //TESTDBKEYOK

                result = m_formuleIdUtilisateur.Eval(contexteEval);
                if (result)
                {
                    if (result.Data is int)
                    {
                        keyUtilisateur = CUtilInfosUtilisateur.GetKeyUtilisateurFromId((int)result.Data);
                    }
                    if (result.Data is string)
                    {
                        keyUtilisateur = CDbKey.CreateFromStringValue((string)result.Data);
                    }
                    if (result.Data is CDbKey)
                    {
                        keyUtilisateur = (CDbKey)result.Data;
                    }
                    if (keyUtilisateur != null)
                    {
                        contexte.Branche.KeyUtilisateur = keyUtilisateur;
                    }
                }
            }

            //Si le code d'attente n'est pas null et qu'il y a déjà une attente,
            //il faut la supprimer
            if (strCodeAttente != null && strCodeAttente.Trim() != "")
            {
                CFiltreData filtre = new CFiltreData(
                    CBesoinInterventionProcess.c_champCodeAttente + "=@1",
                    strCodeAttente);
                CListeObjetsDonnees listeToDelete = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CBesoinInterventionProcess));
                listeToDelete.Filtre = filtre;
                if (listeToDelete.Count != 0)
                {
                    CObjetDonneeAIdNumerique.Delete(listeToDelete);
                }
            }

            CBesoinInterventionProcess intervention = new CBesoinInterventionProcess(contexte.ContexteDonnee);

            intervention.CreateNewInCurrentContexte();
            intervention.ProcessEnExecution = contexte.ProcessEnExecution;
            //TESTDBKEYOK
            intervention.KeyUtilisateur = keyUtilisateur;
            intervention.DateDemande    = DateTime.Now;
            intervention.CodeAttente    = strCodeAttente;
            intervention.Libelle        = strMessage;
            CLienAction[] liens = GetLiensSortantHorsErreur();
            if (liens.Length == 1)
            {
                intervention.IdAction = liens[0].ActionArrivee.IdObjetProcess;
            }
            else
            {
                intervention.IdAction = -1;
            }

            //Mise du process en pause !
            result.Data = new CMetteurDeProcessEnPause(  );
            return(result);
        }
Example #16
0
        //-------------------------------------------------------------------
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee ds)
        {
            CResultAErreur result = base.TraitementAvantSauvegarde(ds);

            CDonneesActeurUtilisateur userConnecte = CDonneesActeurUtilisateur.GetUserForSession(ds.IdSession, ds);

            CSessionClient session = CSessionClient.GetSessionForIdSession(IdSession);

            // Un utilisateur ne peut pas affecter un Profil de Licence à un autre utilisateur,
            // si ce profil est plus fort que le sien
            CInfoLicenceUserProfil profil = (CInfoLicenceUserProfil)session.GetPropriete(CInfoLicenceUserProfil.c_nomIdentification);

            //envoie les notifications sur modification de données utilisateur
            DataTable table = ds.Tables[GetNomTable()];

            foreach (DataRow row in table.Rows)
            {
                if (row.RowState != DataRowState.Unchanged)
                {
                    if (userConnecte != null)
                    {
                        // Vérifie premièrement que l'utilisateur connecté à le droit de gestion de utilisateurs
                        if (userConnecte.GetDonneeDroit(CDroitDeBase.c_droitBaseGestionUtilisateurs) == null)
                        {
                            result.EmpileErreur(I.T("You don't have System Right to Manage Application Users|10012"));
                            return(result);
                        }
                    }
                }

                if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
                {
                    if (userConnecte != null)
                    {
                        // Verifie ensuite que l'utilisteur connecté tente de donner un droit qu'il n'a pas !
                        CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(row);
                        foreach (CRelationActeurUtilisateur_Droit relDroit in user.RelationsDroits)
                        {
                            if (userConnecte.GetDonneeDroit(relDroit.Droit.Code) == null)
                            {
                                result.EmpileErreur(I.T("You don't have right to affect this system Right : @1|10019", relDroit.Droit.Libelle));
                                return(result);
                            }
                        }
                        // Vérifie que l'utilisateur connecté ne tente pas d'affecter un profil de licence supérieur au sien
                        string strIdProfil = user.IdProfilLicence;
                        CInfoLicenceUserProfil profilModifie = CGestionnaireProfilLicenceSurClient.GetProfil(strIdProfil);
                        if (profil == null || profilModifie != null && profilModifie.Priorite > profil.Priorite)
                        {
                            result.EmpileErreur(I.T("You can not affect a Licence Profile greater than your Profile : @1|20140", profilModifie.Nom));
                        }
                    }


                    //TESTDBKEYOK
                    CDonneeNotificationChangementDroitUtilisateur notDroit = new CDonneeNotificationChangementDroitUtilisateur(IdSession, CDbKey.CreateFromStringValue((string)row[CDonneesActeurUtilisateur.c_champIdUniversel]));
                    CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notDroit });
                }
            }
            return(result);
        }
Example #17
0
 public CResultAErreur UnfreezeStep(DateTime endDate, string strComment, string strKeyMember)
 {
     return(Degeler(endDate, strComment, CDbKey.CreateFromStringValue(strKeyMember)));
 }
Example #18
0
 public CResultAErreur FreezeStep(DateTime startDate, CCauseGel freezeCause, string strComment, string strKeyMember)
 {
     return(Geler(startDate, freezeCause, strComment, CDbKey.CreateFromStringValue(strKeyMember)));
 }
Example #19
0
        public CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            serializer.TraiteType(ref m_typeCible);

            int nTmp = (int)m_typeEvenement;

            serializer.TraiteInt(ref nTmp);
            m_typeEvenement = (TypeEvenement)nTmp;

            I2iSerializable objet = m_proprieteASurveiller;

            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_proprieteASurveiller = (CDefinitionProprieteDynamique)objet;

            objet  = m_formuleValeurAvant;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleValeurAvant = (C2iExpression)objet;

            objet  = m_formuleValeurApres;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleValeurApres = (C2iExpression)objet;


            objet  = m_formuleConditionDeclenchement;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleConditionDeclenchement = (C2iExpression)objet;

            objet  = m_formuleDateProgramme;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleDateProgramme = (C2iExpression)objet;

            serializer.TraiteString(ref m_strCodeHandler);

            if (nVersion >= 1)
            {
                serializer.TraiteString(ref m_strMenuManuel);
                if (nVersion < 6 && serializer.Mode == ModeSerialisation.Lecture)
                {
                    //TESTDBKEYOK les groupes pour exécution manuelle ne sont plus exploités (Avril 2014)
                    IList lst = new ArrayList();
                    serializer.TraiteListeObjetsSimples(ref lst);
                    List <CDbKey> lstIdsTemp = new List <CDbKey>();
                    foreach (int nId in lst)
                    {
                        lstIdsTemp.Add(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId));
                    }
                    m_lstKeysGroupesManuels = lstIdsTemp.ToArray();
                }
                else
                {
                    //TESTDBKEYTODO
                    IList lstKeysString = new ArrayList();
                    foreach (CDbKey key in m_lstKeysGroupesManuels)
                    {
                        if (key != null)
                        {
                            lstKeysString.Add(key.StringValue);
                        }
                    }
                    serializer.TraiteListeObjetsSimples(ref lstKeysString);
                    if (serializer.Mode == ModeSerialisation.Lecture)
                    {
                        List <CDbKey> lstKeys = new List <CDbKey>();
                        foreach (string strKey in lstKeysString)
                        {
                            int nId;
                            if (int.TryParse(strKey, out nId))
                            {
                                lstKeys.Add(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId));
                            }
                            else
                            {
                                lstKeys.Add(CDbKey.CreateFromStringValue(strKey));
                            }
                            m_lstKeysGroupesManuels = lstKeys.ToArray();
                        }
                    }
                }
            }
            if (nVersion >= 2)
            {
                serializer.TraiteInt(ref m_nOrdreExecution);
            }
            if (nVersion >= 3)
            {
                serializer.TraiteString(ref m_strIdEvenementSpecifique);
            }
            if (nVersion >= 4)
            {
                serializer.TraiteBool(ref m_bHideProgress);
            }
            else
            {
                m_bHideProgress = false;
            }
            if (nVersion >= 5)
            {
                int nNbContextes = m_contextesException.Count;
                serializer.TraiteInt(ref nNbContextes);
                switch (serializer.Mode)
                {
                case ModeSerialisation.Ecriture:
                    foreach (string strContexte in m_contextesException)
                    {
                        string strCtx = strContexte;
                        serializer.TraiteString(ref strCtx);
                    }
                    break;

                case ModeSerialisation.Lecture:
                    m_contextesException = new HashSet <string>();
                    for (int i = 0; i < nNbContextes; i++)
                    {
                        string strCtx = "";
                        serializer.TraiteString(ref strCtx);
                        m_contextesException.Add(strCtx);
                    }
                    break;
                }
            }

            return(result);
        }