Esempio n. 1
0
        public static EModeGestionErreurEtapeWorkflow OnError(
            CResultAErreur result,
            EModeGestionErreurEtapeWorkflow modeGestion)
        {
            CModeGestionErreurEtapeWorkflow mode = new CModeGestionErreurEtapeWorkflow(modeGestion);

            if (mode.IsSingleChoice())
            {
                return(modeGestion);
            }

            CFormErreurOnWorkflowStep form = new CFormErreurOnWorkflowStep();

            form.m_lblMessage.Text = result.Erreur.ToString();

            form.m_btnDoNothing.Visible = (modeGestion & EModeGestionErreurEtapeWorkflow.DoNothing) != 0;
            form.m_btnCancel.Visible    = (modeGestion & EModeGestionErreurEtapeWorkflow.CancelStep) != 0;
            form.m_btnError.Visible     = (modeGestion & EModeGestionErreurEtapeWorkflow.SetError) != 0;
            form.m_btnTerminer.Visible  = (modeGestion & EModeGestionErreurEtapeWorkflow.EndStep) != 0;
            form.ShowDialog();
            form.Dispose();
            return(form.m_modeGestion);
        }
Esempio n. 2
0
        //---------------------------------------------------
        public override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }

            serializer.TraiteBool(ref m_bIsFormulaireStandard);

            result = serializer.TraiteObject <C2iExpression>(ref m_formuleElementEditePrincipal);
            if (!result)
            {
                return(result);
            }

            if (nVersion >= 1)
            {
                result = serializer.TraiteListe <CFormuleNommee>(m_listeFormulesDeConditionDeFin);
                // m_nIdFormulairePrincipal est obsolète, l'Id du Formulaire proncipal ne doit plus être utilisé
                //int nIdFormulaire = m_nIdFormulairePrincipal != null ? m_nIdFormulairePrincipal.Value : -1;
                int nIdFormulaire = -1;
                serializer.TraiteInt(ref nIdFormulaire);
                //if (serializer.Mode == ModeSerialisation.Lecture)
                //    m_nIdFormulairePrincipal = nIdFormulaire >= 0 ? (int?)nIdFormulaire : null;
            }

            if (nVersion >= 2)
            {
                if (nVersion < 6)
                {
                    string strInstructionsTemp = "";
                    serializer.TraiteString(ref strInstructionsTemp);
                    if (strInstructionsTemp != "")
                    {
                        m_formuleInstructions = new C2iExpressionConstante(strInstructionsTemp);
                    }
                }
                result = serializer.TraiteObject <CListeRestrictionsUtilisateurSurType>(ref m_listeRestrictions);
                if (!result)
                {
                    return(result);
                }
            }

            if (nVersion >= 3)
            {
                serializer.TraiteBool(ref m_bMasquerSurChangementDeFormulaire);
                result = serializer.TraiteObject <C2iExpression>(ref m_formuleElementEditeSecondaire);
                if (nVersion <= 13)
                {
                    // TESTDBKEYOK
                    serializer.ReadDbKeyFromOldId(ref m_dbKeyFormulaireSecondaire, typeof(CFormulaire));
                }
                else
                {
                    serializer.TraiteDbKey(ref m_dbKeyFormulaireSecondaire);
                }
            }
            else
            {
                m_bMasquerSurChangementDeFormulaire = true;
            }

            if (nVersion >= 4)
            {
                serializer.TraiteBool(ref m_bSecondaireEnEdition);
            }

            if (nVersion >= 5)
            {
                int nNombreFormulaires = m_listeDbKeysFormulaires.Count;
                serializer.TraiteInt(ref nNombreFormulaires);
                switch (serializer.Mode)
                {
                case ModeSerialisation.Lecture:
                    m_listeDbKeysFormulaires.Clear();
                    for (int i = 0; i < nNombreFormulaires; i++)
                    {
                        CDbKey nKeyTemp = null;
                        if (nVersion < 14)
                        {
                            // TESTDBKEYOK
                            serializer.ReadDbKeyFromOldId(ref nKeyTemp, typeof(CFormulaire));
                        }
                        else
                        {
                            serializer.TraiteDbKey(ref nKeyTemp);
                        }
                        m_listeDbKeysFormulaires.Add(nKeyTemp);
                    }
                    break;

                case ModeSerialisation.Ecriture:
                    foreach (CDbKey nKey in m_listeDbKeysFormulaires)
                    {
                        // TESTDBKEYOK
                        CDbKey nKeyTemp = nKey;
                        serializer.TraiteDbKey(ref nKeyTemp);
                    }
                    break;
                }
            }

            if (nVersion >= 6)
            {
                result = serializer.TraiteObject <C2iExpression>(ref m_formuleInstructions);
                if (!result)
                {
                    return(result);
                }
            }
            if (nVersion >= 7)
            {
                serializer.TraiteBool(ref m_bProposerSortieSiToutesConditionsRemplies);
            }
            if (nVersion >= 8)
            {
                serializer.TraiteBool(ref m_bLockElementEditeEnFinDEtape);
            }

            if (nVersion >= 9)
            {
                serializer.TraiteBool(ref m_bMasquerApresValidation);
            }

            if (nVersion >= 10)
            {
                int nVal = (int)m_modeGestionErreurs;
                serializer.TraiteInt(ref nVal);
                m_modeGestionErreurs = (EModeGestionErreurEtapeWorkflow)nVal;
            }
            else
            {
                m_modeGestionErreurs = EModeGestionErreurEtapeWorkflow.DoNothing;
            }

            if (nVersion >= 11)
            {
                serializer.TraiteBool(ref m_bNePasExecuterSiToutesConditionsRemplies);
            }
            else
            {
                m_bNePasExecuterSiToutesConditionsRemplies = false;
            }
            if (nVersion >= 12)
            {
                serializer.TraiteObject <CParametreDeclencheurEvenement>(ref m_parametreDeclencheurStop);
            }
            else
            {
                m_parametreDeclencheurStop = null;
            }
            if (nVersion >= 13)
            {
                serializer.TraiteString(ref m_strRestrictionExceptionContext);
            }

            return(result);
        }
Esempio n. 3
0
 //-----------------------------------------------------
 public void SetModeGestionErreur(EModeGestionErreurEtapeWorkflow mode)
 {
     m_modeGestionErreurs = mode;
 }
Esempio n. 4
0
 //-------------------------------------------------------------------
 private void m_btnError_Click(object sender, EventArgs e)
 {
     m_modeGestion = EModeGestionErreurEtapeWorkflow.SetError;
     Close();
 }
Esempio n. 5
0
 //-------------------------------------------------------------------
 private void m_btnTerminer_Click(object sender, EventArgs e)
 {
     m_modeGestion = EModeGestionErreurEtapeWorkflow.EndStep;
     Close();
 }
Esempio n. 6
0
 //-------------------------------------------------------------------
 private void m_btnCancel_Click(object sender, EventArgs e)
 {
     m_modeGestion = EModeGestionErreurEtapeWorkflow.CancelStep;
     Close();
 }
Esempio n. 7
0
 //-------------------------------------------------------------------
 private void m_btnDoNothing_Click(object sender, EventArgs e)
 {
     m_modeGestion = EModeGestionErreurEtapeWorkflow.DoNothing;
     Close();
 }
        //-----------------------------------------------------------------------------
        public CResultAErreur AfficheEtape(CEtapeWorkflow etape, bool bDansNouvelOnglet)
        {
            CResultAErreur result = CResultAErreur.True;


            if (etape == null || etape.TypeEtape == null)
            {
                return(result);
            }
            //Vérifie que l'étape est bien affectée à l'utilisateur
            string[] strCodes = CUtilSession.GetCodesAffectationsEtapeConcernant(etape.ContexteDonnee.ContexteDonnee);
            CAffectationsEtapeWorkflow affs = etape.Affectations;
            bool bIsAffectée = false;

            foreach (string strCode in strCodes)
            {
                if (affs.Contains(strCode))
                {
                    bIsAffectée = true;
                    break;
                }
            }
            if (bIsAffectée)
            {
                CBlocWorkflow bloc = etape.TypeEtape.Bloc;
                if (bloc is CBlocWorkflowFormulaire)
                {
                    result = AfficheEtapeFormulaire(etape, bDansNouvelOnglet);
                }
                else if (bloc is CBlocWorkflowProcess)
                {
                    using (CContexteDonnee ctxt = new CContexteDonnee(etape.ContexteDonnee.IdSession, true, false))
                    {
                        etape  = etape.GetObjetInContexte(ctxt) as CEtapeWorkflow;
                        result = ((CBlocWorkflowProcess)bloc).StartProcess(etape);
                    }
                }
                if (!result)
                {
                    EModeGestionErreurEtapeWorkflow mode = CFormErreurOnWorkflowStep.OnError(result,
                                                                                             bloc.ModeGestionErreur);
                    if (mode != EModeGestionErreurEtapeWorkflow.DoNothing)
                    {
                        using (CContexteDonnee ctx = new CContexteDonnee(etape.ContexteDonnee.IdSession, true, false))
                        {
                            CEtapeWorkflow etapeInContexte = etape.GetObjetInContexte(ctx) as CEtapeWorkflow;
                            switch (mode)
                            {
                            case EModeGestionErreurEtapeWorkflow.CancelStep:
                                etapeInContexte.CancelStep();
                                break;

                            case EModeGestionErreurEtapeWorkflow.EndStep:
                                result = etapeInContexte.EndEtapeNoSave();
                                if (!result)
                                {
                                    result.EmpileErreur(I.T("Can not end step|20766"));
                                    CFormAlerte.Afficher(result.Erreur);
                                    return(result);
                                }
                                break;

                            case EModeGestionErreurEtapeWorkflow.SetError:
                                etapeInContexte.EtatCode  = (int)EEtatEtapeWorkflow.Erreur;
                                etapeInContexte.LastError = result.Erreur.ToString();
                                etapeInContexte.DateFin   = null;
                                break;
                            }
                            result = ctx.SaveAll(true);
                        }
                    }
                }
            }
            else
            {
                CFormAlerte.Afficher(I.T("You are not allowed to display this step|20620"));
            }
            return(result);
        }
        //-------------------------------------------------------
        private CResultAErreur MajChamps()
        {
            CResultAErreur result = CResultAErreur.True;

            C2iExpression formule = GetFormuleValideElementEdite(m_txtFormuleElementEdite);

            if (formule == null)
            {
                result.EmpileErreur(I.T("Edited elements formula is not valid|20052"));
            }
            else
            {
                m_blocFormulaire.FormuleElementEditePrincipal = formule;
            }

            formule = GetFormuleValideElementEdite(m_txtFormuleElementSecondaire);
            m_blocFormulaire.FormuleElementEditeSecondaire = formule;

            m_blocFormulaire.FormuleInstructions = m_txtFormuleInstructions.Formule;

            if (m_rbtnFormulaireSpecifique.Checked)
            {
                if (m_listeDbKeysFormulaires.Count == 0)
                {
                    result.EmpileErreur(I.T("Select the form to use|20053"));
                }
                else
                {
                    m_blocFormulaire.ListeDbKeysFormulaires = m_listeDbKeysFormulaires.ToArray();
                    m_blocFormulaire.IsStandardForm         = false;
                }
            }
            else
            {
                m_blocFormulaire.IsStandardForm = true;
            }

            CFormulaire formulaire = m_txtSelectFormulaireSecondaire.ElementSelectionne as CFormulaire;

            if (m_blocFormulaire.FormuleElementEditeSecondaire != null &&
                formulaire == null)
            {
                result.EmpileErreur(I.T("Select the secondary form to use|20086"));
            }
            m_blocFormulaire.DbKeyFormulaireSecondaire        = formulaire != null ? formulaire.DbKey : null;
            m_blocFormulaire.MasquerSurChangementDeFormulaire = m_chkHideOnChangeForm.Checked;
            m_blocFormulaire.LockerElementEditeEnFinDEtape    = m_chkLockItemWhenComplete.Checked;
            m_blocFormulaire.HideAfterValidation = m_chkMasquerApresValidation.Checked;
            if (result)
            {
                m_blocFormulaire.FormulesConditionFin = m_wndListeFormules.GetFormules();
            }
            if (result)
            {
                m_blocFormulaire.Restrictions = m_panelRestrictions.GetListeRestrictions();
            }
            CResultAErreurType <CParametresInitialisationEtape> resParam = m_panelAffectations.MajChamps();

            if (resParam)
            {
                if (m_blocFormulaire.TypeEtape != null)
                {
                    m_blocFormulaire.TypeEtape.ParametresInitialisation = resParam.DataType;
                }
            }
            else
            {
                result.EmpileErreur(resParam.Erreur);
                return(result);
            }
            m_blocFormulaire.SecondaireEnEdition = m_chkSecondaireEnEdition.Checked;

            m_blocFormulaire.PromptForEndWhenAllConditionsAreOk      = m_chkPromptToEnd.Checked;
            m_blocFormulaire.NePasExecuterSiToutesConditionsRemplies = m_chkPasserSiPasErreur.Checked;

            EModeGestionErreurEtapeWorkflow modeGestionErreur = EModeGestionErreurEtapeWorkflow.DoNothing;

            foreach (Control ctrl in m_panelGestionErreur.Controls)
            {
                CheckBox chk = ctrl as CheckBox;
                if (chk != null && chk.Checked)
                {
                    EModeGestionErreurEtapeWorkflow?modeChk = chk.Tag as EModeGestionErreurEtapeWorkflow?;
                    if (modeChk != null)
                    {
                        modeGestionErreur |= modeChk.Value;
                    }
                }
            }
            m_blocFormulaire.SetModeGestionErreur(modeGestionErreur);

            if (m_chkUseStopHandler.Checked)
            {
                result = m_panelParametreDeclenchement.MAJ_Champs();
                CParametreDeclencheurEvenement parametre = null;
                if (result)
                {
                    parametre = m_panelParametreDeclenchement.ParametreDeclencheur;
                    result    = parametre.VerifieDonnees();
                }
                if (!result)
                {
                    return(result);
                }
                m_blocFormulaire.ParametreDeclencheurStop = parametre;
            }
            else
            {
                m_blocFormulaire.ParametreDeclencheurStop = null;
            }

            m_blocFormulaire.RestrictionExceptionContext = m_txtExceptionRestriction.Text.Trim();

            result = m_panelChamps.MAJ_Champs();

            return(result);
        }