//------------------------------------------------------------------- public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable dt = contexte.Tables[CStock.c_nomTable]; ArrayList rows = new ArrayList(dt.Rows); foreach (DataRow dr in rows) { if (dr.RowState == DataRowState.Modified || dr.RowState == DataRowState.Added) { CStock stock = new CStock(dr); result = SObjetAFilsACoordonneeServeur.TraitementAvantSauvegarde(stock); if (!result) { return(result); } } } return(result); }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CStock stock = (CStock)objet; if (stock.Libelle == "") { result.EmpileErreur(I.T("Stock label cannot be empty|111")); } if (!CObjetDonneeAIdNumerique.IsUnique(stock, CStock.c_champLibelle, stock.Libelle)) { result.EmpileErreur(I.T("Another Stock with the same label already exists|112")); } if (stock.TypeStock == null) { result.EmpileErreur(I.T("Stock Type cannot be empty|116")); } if (stock.Site == null) { result.EmpileErreur(I.T("The Stock related Site cannot be empty|117")); } if (result) { result = SObjetAFilsACoordonneeServeur.VerifieDonnees(stock); } if (result) { result = stock.VerifieCoordonnee(); } } 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); }