//------------------------------------------------------------------- public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable table = contexte.Tables[CValorisationElement.c_nomTable]; if (table == null) { return(result); } ArrayList lst = new ArrayList(table.Rows); foreach (DataRow row in lst) { if (row.RowState != DataRowState.Unchanged) { ///Cherche les impacts sur les couts CValorisationElement valorisation = new CValorisationElement(row); if (row.RowState == DataRowState.Deleted) { valorisation.VersionToReturn = DataRowVersion.Original; } CLotValorisation lot = valorisation.LotValorisation; if (lot.Row.RowState == DataRowState.Deleted) { lot.VersionToReturn = DataRowVersion.Original; } foreach (CLivraisonLotValorisation livs in lot.RelationsLivraisons) { CLivraisonEquipement livraison = livs.Livraison; if (livraison == null) { continue; } if (livraison.Row.RowState == DataRowState.Deleted) { livraison.VersionToReturn = DataRowVersion.Original; } CCommande commande = livraison.Commande; if (commande == null || commande.Row.RowState == DataRowState.Deleted) { continue;//la commande a été supprimée } CListeObjetsDonnees lignes = commande.Lignes; foreach (CLigneCommande ligne in lignes) { if (ligne.Row.RowState != DataRowState.Deleted) { CUtilElementACout.OnChangeCout(ligne, true, false);//changement du cout réel } } } } } return(result); }
//------------------------------------------------ public void SetCoutAvecCalculDesParents(double fValeur, bool bCoutReel) { SetCoutSansCalculDesParents(fValeur, bCoutReel); if (bCoutReel) { CUtilElementACout.OnChangeCout(this, true, false); } }
//--------------------------------------------- public double CalcImputationAFaireSur(IElementACout elementACout, bool bCoutReel) { if (elementACout == null || elementACout.Row.RowState == DataRowState.Deleted) { return(0); } CBesoin besoin = elementACout as CBesoin; if (besoin != null) { return(CUtilElementACout.CalcImputationAFaireSur(this, besoin, bCoutReel)); } return(0); }
public void AfterTotalChanged(CBesoin besoin) { if (m_bIsDispatchingCout || besoin == null) { return; } m_bIsDispatchingCout = true; bool bHasDeps = false; foreach (CBesoin b in besoin.GetTousLesBesoinsDontLeCoutEstDépendantDeMonCout()) { CUtilElementACout.OnChangeCout(b, false, false); CUtilElementACout.OnChangeCout(b, true, false); RefreshBesoin(b, false); bHasDeps = true; } m_panelResumeElementACout.Init(m_phaseSpecifications); if (bHasDeps) { m_panelDessin.Invalidate(); } m_bIsDispatchingCout = false; }
public static CResultAErreur CalculeCoutEnTraitementAvantSauvegarde(CContexteDonnee ctxDonnee, Hashtable tableDatas) { return(CUtilElementACout.RecalculeCoutsARecalculer(ctxDonnee)); }
//-------------------------------------------------------------------- protected override void m_panelDessin_DragDrop(object sender, DragEventArgs e) { HideHighlight(); DragDropEffects eff = GetDragDropEffect(e); if (eff == DragDropEffects.Move && !LockEdition) { base.m_panelDessin_DragDrop(sender, e); } if (eff == DragDropEffects.Link && m_nIdBesoinLinkingSatisfaction != null && m_satisfactionEnCoursDragDrop != null) { CItemBesoin item = Items[m_nIdBesoinLinkingSatisfaction.Value] as CItemBesoin; if (item != null && item.Besoin != null && m_satisfactionEnCoursDragDrop.CanSatisfaire(item.Besoin)) { if (CUtilElementACout.IsSourceDe(item.Besoin, m_satisfactionEnCoursDragDrop)) { CFormAlerte.Afficher(I.T("Can not perform requested operation. @1 is a solution of @2|20675", item.Besoin.Libelle, m_satisfactionEnCoursDragDrop.LibelleSatisfactionComplet), EFormAlerteType.Exclamation); return; } if (CFormAlerte.Afficher(I.T("@1 will be considered as a solution of @2. Continue ?|20631", m_satisfactionEnCoursDragDrop.LibelleSatisfactionComplet, item.Besoin.Libelle), EFormAlerteBoutons.OuiNon, EFormAlerteType.Question) == DialogResult.Yes) { CBesoin besoin = item.Besoin; if (LockEdition) { besoin = item.Besoin; besoin.BeginEdit(); } besoin.AddSatisfaction(m_satisfactionEnCoursDragDrop, null); if (LockEdition) { CResultAErreur result = besoin.CommitEdit(); if (!result) { CFormAlerte.Afficher(result.Erreur); besoin.CancelEdit(); } } RefreshItem(item); m_panelDessin.Invalidate(); } else { e.Effect = DragDropEffects.None; } } } else if (eff == DragDropEffects.Copy && m_phaseSpecifications != null && !LockEdition) { CBesoin besoinDrag = m_satisfactionEnCoursDragDrop as CBesoin; if (besoinDrag != null && besoinDrag.PhaseSpecifications != m_phaseSpecifications) { CItemBesoin newItem = CreateSoluce(besoinDrag); RenumerotteItems(); Refresh(); } } }