private void m_chkActionValidee_CheckedChanged(object sender, EventArgs e) { if (!m_bIsInitializing) { CItemInventaire iv = CurrentItem as CItemInventaire; if (iv != null && iv.TraitementReleve != null) { EEtatValidationReleveEquipement oldEtat = iv.TraitementReleve.EtatValidation; iv.TraitementReleve.EtatValidation = m_chkActionValidee.Checked ? EEtatValidationReleveEquipement.Validé:EEtatValidationReleveEquipement.None; m_bIsInitializing = true; m_chkActionValidee.Checked = iv.TraitementReleve.EtatValidation != EEtatValidationReleveEquipement.None; m_bIsInitializing = false; if (iv.TraitementReleve.EtatValidation != oldEtat) { CCustomizableListItemANiveau item = iv.ItemParent; while (item != null) { AssociatedListControl.RefreshItem(item); item = item.ItemParent; } AssociatedListControl.Refresh(); } } HasChange = true; } }
//------------------------------------------------------------------ public CResultAErreur Execute(CContexteDonnee ctxExecution, CEquipement equipementParent) { CResultAErreur result = CResultAErreur.True; CEquipement eqpt = ReleveEquipement.Equipement; if (Action != null && EtatValidation == EEtatValidationReleveEquipement.Validé) { result = Action.ExecuteAction(this, equipementParent, ctxExecution); eqpt = Action.EquipementParentPourTraitementsFils; } if (!result) { return(result); } foreach (CTraitementReleveEquipement traitement in TraitementsFils) { result = traitement.Execute(ctxExecution, eqpt); if (!result) { return(result); } } if (result && EtatValidation == EEtatValidationReleveEquipement.Validé) { EtatValidation = EEtatValidationReleveEquipement.Appliquée; CReleveEquipement releve = ReleveEquipement.GetObjetInContexte(ctxExecution) as CReleveEquipement; releve.CodeEtatValidationAction = (int)EEtatValidationReleveEquipement.Appliquée; } return(result); }
//-------------------------------------------------------------------------- public void CalculeEtatExecutionInCurrentContext() { if (EtatExecution.Code == EEtatExecutionReleve.Execute || EtatExecution.Code == EEtatExecutionReleve.Annule) { return; } if (EtatExecution.Code == EEtatExecutionReleve.NonEvalué) { IEnumerable <CTraitementReleveEquipement> lst = GetTraitements(); foreach (CTraitementReleveEquipement traitement in lst) { traitement.StoreInContexte(ContexteDonnee); } } //balaie tous les éléments pour voir s'ils ont été évalués EEtatValidationReleveEquipement etat = EEtatValidationReleveEquipement.Appliquée; foreach (CReleveEquipement releve in EquipementsReleves) { if (releve.Action != null && releve.CodeEtatValidationAction < (int)etat) { etat = (EEtatValidationReleveEquipement)releve.CodeEtatValidationAction; } if (etat == EEtatValidationReleveEquipement.None) { break; } } switch (etat) { case EEtatValidationReleveEquipement.None: CodeEtatExecution = (int)EEtatExecutionReleve.AValider; break; case EEtatValidationReleveEquipement.Validé: CodeEtatExecution = (int)EEtatExecutionReleve.AExecuter; break; case EEtatValidationReleveEquipement.Appliquée: CodeEtatExecution = (int)EEtatExecutionReleve.Execute; break; default: break; } }