protected override void BeforeChange(DataColumn dc, DataRow ddr) { string ObjectName = this.myAddressDT.TableName; atriumDB.AddressRow dr = (atriumDB.AddressRow)ddr; WhereClause whereCl = new WhereClause(); switch (dc.ColumnName) { case "City": if (!dr.IsNull("CountryCode") && dr.CountryCode == "CDN") { if (dr.IsCityNull()) { throw new RequiredException(Resources.AddressCity); } if (myA.AtMng.GetSetting(AppBoolSetting.ValidateCity)) { if (!dr.IsProvinceCodeNull()) { DataTable dt = myA.Codes("vCity"); whereCl.Add("ProvinceCode", "=", dr.ProvinceCode); if (dt.Select(whereCl.Filter()).Length != 0) { whereCl.Add("City", "=", dr.City); //dt = myA.AtMng.GetGeneralRec("City", whereCl); if (dt.Select(whereCl.Filter()).Length == 0) { throw new AtriumException(Resources.AddressCityNotInProv, Resources.AddressCity, Resources.AddressProvince); } } } } } break; case "ProvinceCode": if (dr.IsProvinceCodeNull()) { if (!dr.IsNull("CountryCode")) { if (dr.CountryCode == "CDN" || dr.CountryCode == "USA") { throw new RequiredException(Resources.AddressProvinceCode); } } } else { if (!dr.IsNull("CountryCode")) { if (dr.CountryCode == "CDN" || dr.CountryCode == "USA") { DataTable dtP = myA.Codes("Province"); atLogic.WhereClause wc = new atLogic.WhereClause(); wc.Add("CountryCode", "=", dr.CountryCode); //if (!myA.Codes("Province").Rows.Contains(dr.ProvinceCode)) if (!dtP.Rows.Contains(dr.ProvinceCode)) { throw new AtriumException(Resources.IsNotValid, Resources.AddressProvinceCode); } } } } break; case "CountryCode": if (dr.IsNull(dc)) { throw new RequiredException(Resources.AddressCountryCode); } else if (!myA.Codes("Country").Rows.Contains(dr.CountryCode)) { throw new AtriumException(Resources.IsNotValid, Resources.AddressCountryCode); } break; case "AddressSourceCode": if (dr.IsAddressSourceCodeNull()) { throw new RequiredException(Resources.AddressAddressSourceCode); } else if (!myA.Codes("AddressSource").Rows.Contains(dr.AddressSourceCode)) { throw new AtriumException(Resources.IsNotValid, Resources.AddressAddressSourceCode); } break; case "AddressType": if (dr.IsAddressTypeNull()) { throw new RequiredException(Resources.AddressAddressType); } else if (!myA.Codes("AddressType").Rows.Contains(dr.AddressType)) { throw new AtriumException(Resources.IsNotValid, Resources.AddressAddressType); } break; case "Address1": if (dr.IsNull(dc)) { throw new RequiredException(Resources.AddressAddress1); } break; case "EffectiveTo": if (dr.IsEffectiveToNull()) { throw new RequiredException(Resources.AddressEffectiveTo); } myA.IsValidDate(Resources.AddressEffectiveTo, dr.EffectiveTo, false, DebtorBE.CSLBegin, DateTime.Today, Resources.ValidationCSLBegin, Resources.ValidationToday); break; default: break; } }
public DataTable Codes(string name, FileManager fm) { if (myddLookupDT.Count == 0) { Load(); } appDB.ddLookupRow[] dlrs = (appDB.ddLookupRow[])myddLookupDT.Select("LookupName='" + name + "'"); if (dlrs.Length == 1) { DataTable dtList; appDB.ddLookupRow dlr = dlrs[0]; string sListname = name + myA.AppMan.Language; if (dlr.Cache && myA.myColCodes.ContainsKey(sListname)) { return((DataTable)myA.myColCodes[sListname]); } WhereClause wc = new WhereClause(); if (dlr.UseFileContext && fm != null && !fm.IsVirtualFM) { wc.Add("Fileid", "=", fm.CurrentFileId); } if (!dlr.IncludeObsolete) { wc.Add("Obsolete", "=", 0); } if (!dlr.IsWhereClauseNull()) { wc.And(dlr.WhereClause); } switch (dlr.LookupType) { case "SP": if (dlr.UseFileContext && fm != null && !fm.IsVirtualFM) { dtList = myA.AppMan.ExecuteDataset(dlr.Source, fm.CurrentFileId).Tables[0]; } else { dtList = myA.AppMan.ExecuteDataset(dlr.Source, System.DBNull.Value).Tables[0]; } break; case "SQL": dtList = myA.GetGeneralRec(dlr.Source); break; case "VIEW": case "TABLE": dtList = myA.GetGeneralRec(dlr.Source, wc); break; case "GEN": default: wc.Add("LookupId", "=", dlr.LookupId); DataView dv = new DataView(myA.DB.ddGeneric, wc.Filter(), "", DataViewRowState.CurrentRows); dtList = dv.ToTable(); dtList.Columns.Remove("LookupId"); dtList.Columns.Remove("ParentId"); dtList.PrimaryKey = new DataColumn[] { dtList.Columns["GenericId"] }; //dtList = myA.GetGeneralRec("vddGenericList",wc); break; } string sort = ""; if (!dlr.IsSortcolumnsNull()) { sort = dlr.Sortcolumns; } else { sort = dtList.Columns[0].ColumnName; } DataView dv1 = new DataView(dtList, "", sort, DataViewRowState.CurrentRows); dtList = dv1.ToTable(); if (dtList.PrimaryKey.Length == 0) { if (!dlr.IsPKNameNull()) { dtList.PrimaryKey = new DataColumn[] { dtList.Columns[dlr.PKName] }; } else { dtList.PrimaryKey = new DataColumn[] { dtList.Columns[0] }; } } if (dlr.Cache) { myA.myColCodes.Add(sListname, dtList); } return(dtList); } else { throw new AtriumException(name + " is not a valid lookup table"); } }