//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CMouvementEquipement mouvement = (CMouvementEquipement)objet; if (mouvement.EquipementDeplace == null) { result.EmpileErreur(I.T("The moved Equipment cannot be empty|122")); } if (mouvement.EmplacementOrigine == null) { result.EmpileErreur(I.T("The movement must be linked to an original location|123")); } if (mouvement.EquipementDestination != null && !mouvement.EquipementDestination.Emplacement.Equals(mouvement.EquipementDeplace.Emplacement)) { result.EmpileErreur(I.T("Container equipment is not at the same place that Contained equipment|20011")); return(result); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//--------------------------------------------- /// <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 DoRemplacementInCurrentContexte(DateTime dateRemplacement) { CResultAErreur result = CResultAErreur.True; bool bIsDotation = EquipementDeRemplacement != null && EquipementDeRemplacement.IsDotationApplique; if (EmplacementDestination == null && !bIsDotation) { result.EmpileErreur(I.T("The destination place must be specified|268")); return(result); } if (EquipementRemplace == null && !bIsDotation) { result.EmpileErreur(I.T("The replaced equipment must be specified|269")); return(result); } CRemplacementEquipement remplacementEdite = this; //remplacementEdite.BeginEdit(); try { #region annulation des mouvements generés précédements (annulation) result = AnnuleRemplacement(); if (!result) { return(result); } #endregion IsDotation = false; string strInfo = ""; if (remplacementEdite.EquipementDeRemplacement != null) { strInfo = I.T("Replacement by @1|235", remplacementEdite.EquipementDeRemplacement.Libelle); } else if (remplacementEdite.Operation != null) { strInfo = I.T("Equipment removed during the operation @1|236", remplacementEdite.Operation.TypeOperation.Libelle); } else { strInfo = I.T("Replaced|237"); } CEquipementLogique equipementLogiqueDuRemplace = remplacementEdite.EquipementRemplace.EquipementLogique; // Detache l'équipement logique associé au remplacé remplacementEdite.EquipementRemplace.EquipementLogique = null; //Déplacement de l'équipement remplacé result.Data = null; if (!bIsDotation) { result = remplacementEdite.EquipementRemplace.DeplaceEquipementOptionPassage( strInfo, EmplacementDestination, null, "", null, null, dateRemplacement, "", false, true); } if (!result) { result.EmpileErreur(I.T("Movement of equipment @1 impossible|270", remplacementEdite.EquipementRemplace.Libelle)); return(result); } remplacementEdite.MouvementDuRemplace = (CMouvementEquipement)result.Data; //Déplacement de l'équipement de remplacement if (remplacementEdite.EquipementDeRemplacement != null) { IEmplacementEquipement emplacementOuALieuLeRemplacement = null; if (remplacementEdite.EquipementDeRemplacement.EquipementLogique == null) { remplacementEdite.EquipementDeRemplacement.EquipementLogique = equipementLogiqueDuRemplace; } string strLibelleRemplace = ""; if (bIsDotation) { strLibelleRemplace = remplacementEdite.NumSerieRemplace; } else { strLibelleRemplace = remplacementEdite.EquipementRemplace.Libelle; } if (!bIsDotation) { result = remplacementEdite.EquipementDeRemplacement.DeplaceEquipementOptionPassage( I.T("Replacement of @1 |271", remplacementEdite.EquipementRemplace.Libelle), remplacementEdite.MouvementDuRemplace.EmplacementOrigine, remplacementEdite.MouvementDuRemplace.EquipementOrigine, remplacementEdite.MouvementDuRemplace.CoordonneeOrigine, remplacementEdite.MouvementDuRemplace.OccupationOrigine, null, dateRemplacement, "", false, true); if (result) { remplacementEdite.MouvementDuRemplacant = (CMouvementEquipement)result.Data; } } else { if (remplacementEdite.Operation != null && remplacementEdite.Operation.FractionIntervention != null) { emplacementOuALieuLeRemplacement = remplacementEdite.Operation.FractionIntervention.Intervention.Site; } IsDotation = true; NumSerieAvantRemplacement = remplacementEdite.EquipementDeRemplacement.NumSerie; //Déplace l'équipement de remplacement sur le site, result = remplacementEdite.EquipementDeRemplacement.DeplaceEquipementOptionPassage( I.T("Replacement of @1 by @2|271", NumSerieRemplace, EquipementDeRemplacement.NumSerie), emplacementOuALieuLeRemplacement, null, null, null, null, dateRemplacement, "", false, true); if (result) { MouvementDuRemplacant = (CMouvementEquipement)result.Data; } //et le place sur le lieu de destination if (result) { result = remplacementEdite.EquipementDeRemplacement.DeplaceEquipementOptionPassage( I.T("Replacement of @1 by @2|271", NumSerieRemplace, EquipementDeRemplacement.NumSerie), EmplacementDestination, null, null, null, null, dateRemplacement, "", false, true); //Change le numéro de série de l'équipement remplacementEdite.EquipementDeRemplacement.NumSerie = NumSerieRemplace; if (result) { MouvementDuRemplace = (CMouvementEquipement)result.Data; } } } if (!result) { result.EmpileErreur(I.T("Movement of equipment @1 impossible|270", remplacementEdite.EquipementDeRemplacement.Libelle)); return(result); } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } finally { //if ( result ) // result = remplacementEdite.CommitEdit(); //else // remplacementEdite.CancelEdit(); } return(result); }
//------------------------------------------------------------------- public CResultAErreur AnnuleRemplacement() { CResultAErreur result = CResultAErreur.True; CRemplacementEquipement remplacementEdite = this; remplacementEdite.BeginEdit(); try { if (remplacementEdite.MouvementDuRemplace != null) { if (IsDotation) { CMouvementEquipement mvt = remplacementEdite.MouvementDuRemplace; remplacementEdite.MouvementDuRemplace = null; //Pour éviter la suppression en casade result = mvt.Delete(); } else { result = remplacementEdite.MouvementDuRemplace.AnnuleDeplacement(); } if (!result) { result.EmpileErreur(I.T("Impossible to cancel the replacement|267")); return(result); } else { remplacementEdite.MouvementDuRemplace = null; } } if (remplacementEdite.MouvementDuRemplacant != null) { if (IsDotation) { CMouvementEquipement mvt = remplacementEdite.MouvementDuRemplacant; remplacementEdite.MouvementDuRemplacant = null; //pour éviter la suppr en cascade result = mvt.Delete(); } else { result = remplacementEdite.MouvementDuRemplacant.AnnuleDeplacement(); } if (!result) { result.EmpileErreur(I.T("Impossible to cancel the replacement|267")); return(result); } else { remplacementEdite.MouvementDuRemplacant = null; if (IsDotation) { remplacementEdite.EquipementDeRemplacement.NumSerie = NumSerieAvantRemplacement; } } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } finally { if (result) { result = remplacementEdite.CommitEdit(); } else { remplacementEdite.CancelEdit(); } } return(result); }