public CResultAErreur MajChamps(CStatutEquipement status, IEmplacementEquipement emplacement) { CResultAErreur result = CResultAErreur.True; if (IsChecked) { AssureEquipement(status, emplacement); } else { if (LigneLivraison != null) { CEquipement eqpt = LigneLivraison.Equipement; if (eqpt == null || eqpt.IsNew()) { result = LigneLivraison.Delete(true); if (result && eqpt != null) { result = eqpt.Delete(true); } } } } return(result); }
//----------------------------------------------------------------- public bool AssureEquipement(CStatutEquipement status, IEmplacementEquipement emplacement) { AssureLigneLivraison(); if (LigneLivraison.Equipement == null) { if (TypeEquipement != null) { LigneLivraison.Equipement = new CEquipement(LigneLivraison.ContexteDonnee); LigneLivraison.Equipement.CreateNewInCurrentContexte(); } else { return(false); } } if (LigneLivraison.Equipement != null) { LigneLivraison.Equipement.TypeEquipement = TypeEquipement; LigneLivraison.Equipement.RelationConstructeur = RefConstructeur; LigneLivraison.Equipement.NumSerie = NumeroSerie; if (status != null && LigneLivraison.Equipement.Statut == null) { LigneLivraison.Equipement.Statut = status; } if (emplacement != null && LigneLivraison.Equipement.Emplacement == null) { LigneLivraison.Equipement.SetEmplacementSansHistorique( emplacement, EquipementConteneur); } } return(LigneLivraison.Equipement != null); }
//------------------------------------------------- private void InitComboEquipementParent() { IEmplacementEquipement emplacement = m_selectEmplacement.ElementSelectionne as IEmplacementEquipement; if (emplacement == null) { m_cmbEquipement.Visible = false; } else { CFiltreData filtre = null; if (emplacement is CSite) filtre = new CFiltreData(CSite.c_champId + "=@1", emplacement.Id); if (emplacement is CStock) filtre = new CFiltreData(CStock.c_champId + "=@1", emplacement.Id); if (emplacement is CActeur) filtre = new CFiltreData(CActeur.c_champId + "=@1", emplacement.Id); m_cmbEquipement.Init(typeof(CEquipement), "EquipementsContenus", CEquipement.c_champIdEquipementContenant, "Libelle", null, filtre); m_cmbEquipement.Visible = true; } }
//-------------------------------------------------------------------------- public CActionDeplacerEquipement(CReleveEquipement releveEquipement, CEquipement equipement, IEmplacementEquipement emplacement) : base(releveEquipement) { m_equipement = equipement; m_emplacement = emplacement; }
//-------------------------------------------------------------------------------- private void m_cmbTypeEmplacement_SelectionChangeCommitted(object sender, EventArgs e) { IEmplacementEquipement place = m_selectEmplacement.ElementSelectionne as IEmplacementEquipement; InitSelectEmplacement(); Type tp = m_cmbTypeEmplacement.TypeSelectionne; if (place != null && tp != null && tp == place.GetType()) m_selectEmplacement.ElementSelectionne = place as CObjetDonnee; }
//--------------------------------------------------------------- protected override CResultAErreur MySerialize(C2iSerializer serializer) { int nVersion = GetNumVersion(); CResultAErreur result = serializer.TraiteVersion(ref nVersion); if (!result) { return(result); } int?nIdEquipement = m_equipement != null?(int?)m_equipement.Id:null; int?nIdEmplacement = m_emplacement != null ? (int?)m_emplacement.Id : null; serializer.TraiteIntNullable(ref nIdEquipement); serializer.TraiteIntNullable(ref nIdEmplacement); switch (serializer.Mode) { case ModeSerialisation.Ecriture: if (nIdEmplacement != null) { Type tp = m_emplacement.GetType(); serializer.TraiteType(ref tp); } break; case ModeSerialisation.Lecture: CContexteDonnee ctx = ReleveEquipement.ContexteDonnee; if (nIdEquipement != null) { m_equipement = new CEquipement(ctx); if (!m_equipement.ReadIfExists(nIdEquipement.Value)) { m_equipement = null; } } if (nIdEmplacement != null) { Type tp = null; serializer.TraiteType(ref tp); m_emplacement = Activator.CreateInstance(tp, new object[] { ReleveEquipement.ContexteDonnee }) as IEmplacementEquipement; if (m_emplacement != null) { if (!m_emplacement.ReadIfExists(nIdEmplacement.Value)) { m_emplacement = null; } } } break; } return(result); }
private void InitSelectEmplacement() { IEmplacementEquipement place = m_selectStock.ElementSelectionne as IEmplacementEquipement; Type tp = m_cmbTypeDestination.TypeSelectionne; if (tp != null) { m_selectStock.Init( tp, "Libelle", true); } if (place != null && place.GetType() == tp) { m_selectStock.ElementSelectionne = place as CObjetDonnee; } }
//---------------------------------------------------------------------------------- public override CResultAErreur ExecuteAction( CTraitementReleveEquipement traitementExecutant, CEquipement equipementParent, CContexteDonnee ctxDonnee) { CResultAErreur result = CResultAErreur.True; CEquipement eqpt = (CEquipement)m_equipement.GetObjetInContexte(ctxDonnee); IEmplacementEquipement emplacement = m_emplacement; if (emplacement == null) { emplacement = CEmplacementEquipementsTrouves.StockPerduTrouve; } if (emplacement == null) { result.EmpileErreur(I.T("'lost & found' stock is not defined. Contact Timos Administrator|20216")); return(result); } string strSiteLabel = ""; string strDate = ""; try { strSiteLabel = ReleveEquipement.ReleveSite.Site.Libelle; strDate = ReleveEquipement.ReleveSite.DateReleve.ToShortDateString(); } catch { } result = eqpt.DeplaceEquipementOptionPassage( I.T("Inventory on @1 (@2)|20245", strSiteLabel, strDate), emplacement, equipementParent != null && equipementParent.Emplacement.Equals(emplacement) ? equipementParent : null, traitementExecutant.ReleveEquipement.Coordonnee, null, CUtilSession.GetUserForSession(ctxDonnee), DateTime.Now, "", false, true); if (result && emplacement.Equals(ReleveEquipement.ReleveSite.Site)) { result = CActionModifierEquipement.MajEquipement(eqpt, traitementExecutant.ReleveEquipement); } return(result); }
//------------------------------------------------------------------ public void Init(CLivraisonEquipement LivraisonEquipement) { m_wndListeLignes.CancelEdit(); m_LivraisonEquipement = LivraisonEquipement; m_cmbStatut.Init( typeof(CStatutEquipement), "Libelle", null, false); m_cmbTypeDestination.Init(DynamicClassAttribute.GetAllDynamicClassHeritant(typeof(IEmplacementEquipement))); if (m_lastPlace == null && LivraisonEquipement.Lignes.Count > 0) { foreach (CLigneLivraisonEquipement ligne in LivraisonEquipement.Lignes) { if (ligne.Equipement != null) { m_lastPlace = ligne.Equipement.Emplacement; m_cmbStatut.ElementSelectionne = ligne.Equipement.Statut; break; } } } if (m_lastPlace != null) { m_cmbTypeDestination.TypeSelectionne = m_lastPlace.GetType(); m_selectStock.ElementSelectionne = m_lastPlace as CObjetDonnee; } if (m_extModeEdition.ModeEdition && m_cmbTypeDestination.TypeSelectionne == null) { m_cmbTypeDestination.TypeSelectionne = typeof(CStock); } InitSelectEmplacement(); List <CItemLigneLivraison> lstItems = new List <CItemLigneLivraison>(); foreach (CLigneLivraisonEquipement ligne in m_LivraisonEquipement.Lignes) { CItemLigneLivraison item = new CItemLigneLivraison(ligne, ligne.LigneDeCommandeAssociee, ligne.LivraisonEquipement); lstItems.Add(item); } if (m_extModeEdition.ModeEdition) { //Création des éléments complémentaires if (m_LivraisonEquipement.Commande != null) { foreach (CLigneCommande ligne in m_LivraisonEquipement.Commande.Lignes) { int nRestant = (int)ligne.Quantite - ligne.LignesLivraison.Count; for (int n = 0; n < nRestant; n++) { CItemLigneLivraison item = new CItemLigneLivraison(null, ligne, m_LivraisonEquipement); lstItems.Add(item); } } } } m_wndListeLignes.Items = lstItems.ToArray(); m_wndListeLignes.Refresh(); }
//------------------------------------------------------------------- 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); }
//---------------------------------------------------------------- private void m_btnOk_Click(object sender, EventArgs e) { CResultAErreur result = CResultAErreur.True; IEmplacementEquipement emplacement = null; if (m_radioSite.Checked) { emplacement = (CSite)m_selectSite.ElementSelectionne; } if (m_radioStock.Checked) { emplacement = (CStock)m_selectStock.ElementSelectionne; } if (m_radioActeur.Checked) { emplacement = (CActeur)m_selectActeur.ElementSelectionne; } CTypeEquipement typeEquipementRemplace = (CTypeEquipement)m_selectTypeEquipementRemplace.ElementSelectionne; CEquipement equipementRemplace = (CEquipement)m_selectEquipementRemplace.ElementSelectionne; CEquipement equipementRemplacant = (CEquipement)m_selectEquipementRemplacant.ElementSelectionne; CRemplacementEquipement remplacement = m_operation.RemplacementAssocie; bool bNewRemplacement = remplacement == null; if (remplacement == null) { remplacement = new CRemplacementEquipement(m_operation.ContexteDonnee); remplacement.CreateNewInCurrentContexte(); } //Indique une gestion par dotation, donc pas d'équipement remplacé bool bIsDotation = equipementRemplacant != null && equipementRemplacant.IsDotationApplique; if (!bIsDotation) { if (typeEquipementRemplace == null && equipementRemplace == null) { CFormAlerte.Afficher(I.T("Select a replaced equipement or equipement type|30186"), EFormAlerteType.Exclamation); return; } } remplacement.TypeEquipementRemplace = typeEquipementRemplace; remplacement.EquipementRemplace = equipementRemplace; if (remplacement.EquipementRemplace != null) { remplacement.NumSerieRemplace = remplacement.EquipementRemplace.NumSerie; } else { if (bIsDotation) { remplacement.NumSerieRemplace = m_txtSerialNumber.Text; } else { remplacement.NumSerieRemplace = equipementRemplace != null ? equipementRemplace.NumSerie : ""; } } remplacement.EquipementDeRemplacement = equipementRemplacant; remplacement.EmplacementDestination = emplacement; remplacement.Info = m_txtInfo.Text; remplacement.Operation = m_operation; if (equipementRemplace != null || bIsDotation) { result = remplacement.DoRemplacementInCurrentContexte(m_dtRemplacement.Value); } if (result.Result) { DialogResult = DialogResult.OK; Close(); } else if (!result) { remplacement.CancelCreate(); CFormAlerte.Afficher(result.Erreur); } }
//------------------------------------------------------------------------- private void CFormRemplacerEquipement_Load(object sender, EventArgs e) { m_initialise = false; m_dtRemplacement.Value = DateTime.Now; CWin32Traducteur.Translate(this); m_selectSite.Init <CSite>( "Libelle", false); m_selectStock.Init <CStock>( "Libelle", false); m_selectActeur.Init <CActeur>( "IdentiteComplete", false); InitSelectTypeEquipementRemplace(); InitSelectEquipementRemplace(); InitSelectEquipementRemplacant(); InitProfilPreFiltreEquipementRemplacant(); m_ctrlFindCoordonnee.Visible = false; m_panelSearchReplaced.Visible = true; m_panelSerialReplaced.Visible = false; CListeObjetsDonnees listeInter = m_operation.FractionIntervention.Intervention.RelationsIntervenants; if (listeInter.Count > 0) { m_selectActeur.ElementSelectionne = ((CIntervention_Intervenant)listeInter[0]).Intervenant; } m_radioActeur.Checked = true; CRemplacementEquipement remplacement = m_operation.RemplacementAssocie; if (remplacement != null) { m_selectTypeEquipementRemplace.ElementSelectionne = remplacement.TypeEquipementRemplace; m_selectEquipementRemplace.ElementSelectionne = remplacement.EquipementRemplace; m_selectEquipementRemplacant.ElementSelectionne = remplacement.EquipementDeRemplacement; m_selectActeur.ElementSelectionne = remplacement.EmplacementActeur; m_selectStock.ElementSelectionne = remplacement.EmplacementStock; m_selectSite.ElementSelectionne = remplacement.EmplacementSite; if (remplacement.MouvementDuRemplace != null) { m_dtRemplacement.Value = remplacement.MouvementDuRemplace.DateMouvement; } else if (remplacement.Operation != null && remplacement.Operation.FractionIntervention.DateDebut != null) { m_dtRemplacement.Value = (DateTime)remplacement.Operation.FractionIntervention.DateDebut; } IEmplacementEquipement emplacement = remplacement.EmplacementDestination; m_radioActeur.Checked = emplacement is CActeur; m_radioSite.Checked = emplacement is CSite; m_radioStock.Checked = emplacement is CStock; m_txtInfo.Text = remplacement.Info; m_txtSerialNumber.Text = remplacement.NumSerieRemplace; LockEditionMouvement(true); } m_initialise = true; }
//---------------------------------------------------------------- private void m_btnOk_Click(object sender, EventArgs e) { IEmplacementEquipement emplacement = null; CEquipement equipementParent = null; if (m_radioSite.Checked) { emplacement = (CSite)m_selectSite.ElementSelectionne; equipementParent = (CEquipement)m_cmbEquipement.ElementSelectionne; } if (m_radioStock.Checked) { emplacement = (CStock)m_selectStock.ElementSelectionne; equipementParent = (CEquipement)m_cmbEquipementStock.ElementSelectionne; } if (m_radioActeur.Checked) { emplacement = (CActeur)m_selectActeur.ElementSelectionne; } CActeur acteur = (CActeur)m_selectUser.ElementSelectionne; //S'il existe un mouvement en édition, modifie ce mouvement CMouvementEquipement mouvement = null; foreach (CMouvementEquipement mouvext in m_equipement.Mouvements) { if (mouvext.IsNew() && mouvext.EmplacementDestination.Equals(emplacement)) { mouvement = mouvext; break; } } if (mouvement != null) { mouvement.Info = m_txtInfo.Text; mouvement.DateMouvement = m_dtMouvement.Value; DialogResult = DialogResult.OK; Close(); } CResultAErreur result = m_equipement.DeplaceEquipementOptionPassage( m_txtInfo.Text, emplacement, equipementParent, m_panelCoordonnee.Visible?m_editCoordonnee.Coordonnee:null, null, acteur == null?null:acteur.Utilisateur, m_dtMouvement.Value, "", false, false); if (result.Result) { DialogResult = DialogResult.OK; Close(); } else { if (!result) { CFormAlerte.Afficher(result.Erreur); } } }