public CRelationTypeEquipement_Stock GetRelationTypeEquipemetStock(CTypeEquipement typeEquipement) { if (typeEquipement == null) { return(null); } CRelationTypeEquipement_Stock rel = new CRelationTypeEquipement_Stock(this.ContexteDonnee); if (rel.ReadIfExists( new CFiltreData( CStock.c_champId + " = @1 and " + CTypeEquipement.c_champId + " = @2 ", this.Id, typeEquipement.Id))) { return(rel); } else { rel.CreateNewInCurrentContexte(); rel.Stock = this; rel.TypeEquipement = typeEquipement; return(rel); } }
//------------------------------------------------------------------------------------ public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable dt = contexte.Tables[CRelationTypeEquipement_Stock.c_nomTable]; ArrayList rows = new ArrayList(dt.Rows); CResultAErreur resultloc = CResultAErreur.True; foreach (DataRow row in rows) { if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added) { CRelationTypeEquipement_Stock rel = new CRelationTypeEquipement_Stock(row); int nbApres = rel.NombreEnStock; if (row.HasVersion(DataRowVersion.Original)) { DataRowVersion currentVersion = rel.VersionToReturn; rel.VersionToReturn = DataRowVersion.Original; int nbAvant = rel.NombreEnStock; rel.VersionToReturn = currentVersion; // Si seuil Alerte atteint if (nbAvant > rel.StockAlerteApplique && nbApres <= rel.StockAlerteApplique) { rel.EnregistreEvenement(CRelationTypeEquipement_Stock.c_champEventStockAlerte, false); } // Si seuil Critique atteint if (nbAvant > rel.StockCritiqueApplique && nbApres <= rel.StockCritiqueApplique) { rel.EnregistreEvenement(CRelationTypeEquipement_Stock.c_champEventStockCritique, false); } } } } return(result); }
/// //////////////////////////////////////////////////////////// public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CRelationTypeEquipement_Stock relation = (CRelationTypeEquipement_Stock)objet; if (relation.TypeEquipement == null) { result.EmpileErreur(I.T("The Equipment type cannot be null|109")); } if (relation.Stock == null) { result.EmpileErreur(I.T("The Stock cannot be null|205")); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//---------------------------------------------------------------------------------- public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable dt = contexte.Tables[CEquipement.c_nomTable]; ArrayList rows = new ArrayList(dt.Rows); CResultAErreur resultloc = CResultAErreur.True; foreach (DataRow row in rows) { if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added || row.RowState == DataRowState.Deleted) { CEquipement eqpt = new CEquipement(row); /*if (eqpt.ParametrageCoordonneesApplique == null) * eqpt.Coordonnee = "";*/ CStock stockApres = null; if (row.RowState != DataRowState.Deleted) { stockApres = eqpt.EmplacementStock; } if (row.HasVersion(DataRowVersion.Original)) { DataRowVersion currentVersion = eqpt.VersionToReturn; eqpt.VersionToReturn = DataRowVersion.Original; CTypeEquipement typeAvant = eqpt.TypeEquipement; CStock stockAvant = eqpt.EmplacementStock; eqpt.VersionToReturn = currentVersion; if (stockAvant == stockApres) { return(result); } if (stockAvant != null && stockAvant.IsValide()) { // Descrémente le nombre en stock CRelationTypeEquipement_Stock rel = stockAvant.GetRelationTypeEquipemetStock(typeAvant); if (rel != null && rel.NombreEnStock > 0) { int nbAvant = rel.NombreEnStock; rel.Row[CRelationTypeEquipement_Stock.c_champNombreEnStock] = rel.NombreEnStock - 1; } } } if (stockApres != null && stockApres.IsValide()) { // Incrémente le nombre en stock CRelationTypeEquipement_Stock rel = stockApres.GetRelationTypeEquipemetStock(eqpt.TypeEquipement); if (rel != null) { rel.Row[CRelationTypeEquipement_Stock.c_champNombreEnStock] = rel.NombreEnStock + 1; } } result = SObjetAFilsACoordonneeServeur.TraitementAvantSauvegarde(eqpt); if (!result) { return(result); } } } return(result); }