This commit is contained in:
2021-07-10 14:23:14 +01:00
parent 03ea1058be
commit 10907d3aff
97 changed files with 2048 additions and 521 deletions
@@ -150,7 +150,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
Organisation_Db dbOrganisation = new Organisation_Db(CoreDbInfo);
dbOrganisation.PopulateFrom(dbCommand, aliasOrganisation, "Id=" + SysId.ToString(organisation.Id));
// ToDo SaxUpdateLogItemMonitor_Organisation updateLogMonitor = new SaxUpdateLogItemMonitor_Organisation(SessionContext, CreateOrganisation(dbOrganisation), dbUpdateInfo);
// Update properties.
// Update item.
PopulateTo(dbOrganisation, organisation, dbUpdateInfo);
dbOrganisation.ExecuteUpdateCommand(dbCommand);
organisation.Changed = false;
@@ -177,16 +177,23 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
String fn = GetType().Name + ".DeleteOrganisation";
ClearErrorState();
if (!OrganisationCanBeDeleted(organisation)) return false;
// Organisations are logically deleted by changing the status.
organisation.Status = SaStatus.Deleted;
return UpdateOrganisation(organisation, dbUpdateInfo);
/*
* Physical deletion.
using (var dbConnection = CoreDatabase.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve organisation.
// Retrieve item.
dbConnection.Open();
Organisation_Db dbOrganisation = new Organisation_Db(CoreDbInfo);
dbOrganisation.PopulateFrom(dbCommand, aliasOrganisation, "Id=" + organisation.Id.ToString());
// Delete organisation.
// Delete item.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.Organisation) + " WHERE Id=" + SysId.ToString(organisation.Id) + ";";
dbCommand.ExecuteNonQuery();
@@ -196,6 +203,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
*/
}
//-------------------------------------------------------------------
@@ -204,15 +212,13 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
{
dbOrganisation._Id = SysId.ToInt(organisation.Id);
dbOrganisation._Name = organisation.Name;
dbOrganisation._PhoneMain = organisation.PhoneMain;
dbOrganisation._PhoneAlt = organisation.PhoneAlt;
dbOrganisation._OrganisationType = OrganisationTypeCodes.GetCodeForType(organisation.OrganisationType);
dbOrganisation._OrganisationCategory = OrganisationCategoryCodes.GetCodeForType(organisation.OrganisationCategory);
dbOrganisation._PhoneMain = organisation.PhoneMain;
dbOrganisation._PhoneAlt = organisation.PhoneAlt;
dbOrganisation._SportIdPrimary = SysId.ToInt(organisation.SportIdPrimary);
dbOrganisation._RegionIdPrimary = SysId.ToInt(organisation.RegionIdPrimary);
dbOrganisation._Notes = organisation.Notes;
dbOrganisation._PhoneMain = StringUtil.EmptyOnNull(organisation.PhoneMain);
dbOrganisation._PhoneAlt = StringUtil.EmptyOnNull(organisation.PhoneAlt);
dbOrganisation._Notes = StringUtil.EmptyOnNull(organisation.Notes);
dbOrganisation._Status = SacsSystem.GetStatusCode(organisation.Status);
dbOrganisation._Flags = (short)organisation.Flags;
if (!SysId.IsValid(organisation.Id))
@@ -390,6 +396,14 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
if (!StringUtil.IsEmpty(prm.NamePartial))
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Name, aliasOrganisation) + " Like '%" + DbQuery.FormatForLike(prm.NamePartial, true) + "%'");
// Organisation Type.
if (prm.OrganisationType > 0)
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_OrganisationType, aliasOrganisation) + "='" + OrganisationTypeCodes.GetCodeForType(prm.OrganisationType) + "'");
// Organisation Category.
if (prm.OrganisationCategory > 0)
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_OrganisationCategory, aliasOrganisation) + "='" + OrganisationCategoryCodes.GetCodeForType(prm.OrganisationCategory) + "'");
// Organisation filter.
if (!StringUtil.IsEmpty(prm.OrganisationFilter))
{
@@ -420,14 +434,26 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Notes, aliasOrganisation) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
// Status.
if (prm.StatusCat == SaxOrganisation.StatusCat.ActiveOnly)
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Status, aliasOrganisation) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
else if (prm.StatusCat == SaxOrganisation.StatusCat.NotDeleted)
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Status, aliasOrganisation) + "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'");
if (prm.StatusCat != SaxOrganisation.StatusCat.Any)
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Status, aliasOrganisation) + GetOrganisationStatusCatFilterCondition(prm.StatusCat));
if (filter.Count < 1) filter.Add("1=1");
return filter;
}
internal static String GetOrganisationStatusCatFilterCondition(SaxOrganisation.StatusCat statusCat)
{
if (statusCat == SaxOrganisation.StatusCat.AwaitingOnly)
return "='" + SacsSystem.GetStatusCode(SaStatus.Awaiting) + "'";
if (statusCat == SaxOrganisation.StatusCat.ActiveOnly)
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
if (statusCat == SaxOrganisation.StatusCat.InactiveOnly)
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
if (statusCat == SaxOrganisation.StatusCat.NotDeleted)
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
if (statusCat == SaxOrganisation.StatusCat.DeletedOnly)
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
return "";
}
// Item sort columns.
public List<String> GetOrganisationSortColumns(SaxOrganisation.Params prm)
{