//-------------------------------------------------------------------
        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);
        }
示例#2
0
        //---------------------------------------------
        /// <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);
        }
示例#3
0
        //-------------------------------------------------------------------
        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);
        }
示例#4
0
        //-------------------------------------------------------------------
        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);
        }