private static void CreateContacts(XmlNode ANode, Int64 APartnerKey, ref PartnerImportExportTDS AMainDS, string Suffix) { string ContactCode = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTCODE + Suffix); if (ContactCode.Length > 0) { PartnerImportExportTDSPContactLogRow ContactLogRow = AMainDS.PContactLog.NewRowTyped(); ContactLogRow.ContactCode = ContactCode; ContactLogRow.ContactDate = DateTime.Parse(TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTDATE + Suffix)); //DateTime ContactTime = DateTime.Parse(TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTTIME + Suffix)); //ContactLogRow.ContactTime = ((ContactTime.Hour * 60) + ContactTime.Minute * 60) + ContactTime.Second; ContactLogRow.Contactor = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTOR + Suffix); ContactLogRow.ContactComment = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTNOTES + Suffix); ContactLogRow.ContactAttr = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTATTR + Suffix); ContactLogRow.ContactDetail = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_CONTACTDETAIL + Suffix); AMainDS.PContactLog.Rows.Add(ContactLogRow); AddVerificationResult("Contact Log Record Created.", TResultSeverity.Resv_Status); var PartnerContactRow = AMainDS.PPartnerContact.NewRowTyped(); PartnerContactRow.PartnerKey = APartnerKey; PartnerContactRow.ContactLogId = ContactLogRow.ContactLogId; AMainDS.PPartnerContact.Rows.Add(PartnerContactRow); AddVerificationResult("Contact Associated with Partner", TResultSeverity.Resv_Status); } }
/// <summary> /// create the radio buttons and the controls that depend on them /// </summary> /// <param name="writer"></param> /// <param name="curNode"></param> /// <returns></returns> public override StringCollection FindContainedControls(TFormWriter writer, XmlNode curNode) { StringCollection Controls = TYml2Xml.GetElements(TXMLParser.GetChild(curNode, "Controls")); string DefaultValue = Controls[0]; if (TXMLParser.HasAttribute(curNode, "DefaultValue")) { DefaultValue = TXMLParser.GetAttribute(curNode, "DefaultValue"); } foreach (string controlName in Controls) { TControlDef radioButton = writer.CodeStorage.GetControl(controlName); if (radioButton == null) { throw new Exception("cannot find control " + controlName + " used in RadioGroup " + curNode.Name); } if (StringHelper.IsSame(DefaultValue, controlName)) { radioButton.SetAttribute("RadioChecked", "true"); } } return(Controls); }
/// <summary> /// todoComment /// </summary> /// <param name="AFolderNode"></param> /// <param name="ADashboard"></param> /// <param name="AExpandedWidth"></param> /// <param name="AMultiLedgerSite"></param> /// <param name="AConferenceSelected"></param> public TPnlModuleNavigation(XmlNode AFolderNode, TDashboard ADashboard, int AExpandedWidth, bool AMultiLedgerSite, bool AConferenceSelected) { this.FDashboard = ADashboard; this.Dock = DockStyle.Top; // AutoSize causes trouble on Mono // FCollapsibleNavigation.AutoSize = true; // FCollapsibleNavigation.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; FCollapsibleNavigation.CollapseDirection = Ict.Common.Controls.TCollapseDirection.cdHorizontal; FCollapsibleNavigation.Dock = System.Windows.Forms.DockStyle.Left; FCollapsibleNavigation.ExpandedSize = AExpandedWidth; FCollapsibleNavigation.Location = new System.Drawing.Point(0, 0); FCollapsibleNavigation.Margin = new System.Windows.Forms.Padding(0); FCollapsibleNavigation.TabIndex = 0; FCollapsibleNavigation.VisualStyleEnum = Ict.Common.Controls.TVisualStylesEnum.vsHorizontalCollapse; FCollapsibleNavigation.Collapsed += delegate(object sender, EventArgs e) { OnCollapsed(); }; FCollapsibleNavigation.Expanded += delegate(object sender, EventArgs e) { OnExpanded(); }; FCollapsibleNavigation.ItemActivation += delegate(TTaskList ATaskList, XmlNode ATaskListNode, LinkLabel AItemClicked, object AOtherData) { OnItemActivation(ATaskList, ATaskListNode, AItemClicked, AOtherData); }; if (AMultiLedgerSite && (TXMLParser.GetAttribute(AFolderNode, "DependsOnLedger").ToLower() == "true")) { FIsLedgerBasedModule = true; } else if (AConferenceSelected && (TXMLParser.GetAttribute(AFolderNode, "DependsOnConference").ToLower() == "true")) { FIsConferenceBasedModule = true; } if (FIsLedgerBasedModule || FIsConferenceBasedModule || (TXMLParser.GetAttribute(AFolderNode, "ShowAsCollapsiblePanels").ToLower() == "true")) { FCollapsibleNavigation.HostedControlKind = Ict.Common.Controls.THostedControlKind.hckCollapsiblePanelHoster; } else { FCollapsibleNavigation.HostedControlKind = THostedControlKind.hckTaskList; } FCollapsibleNavigation.TaskListNode = AFolderNode; FCollapsibleNavigation.InitUserControl(); if (FIsLedgerBasedModule) { // We want Ledgers to be Selected (if there are multiple Ledgers in the Site) *AND* at the same time Sub-Modules // in the top Collapsible Panel FCollapsibleNavigation.CollapsiblePanelHosterInstance.OnlyOneActiveTaskOnAllCollapsiblePanelsTaskLists = false; } this.Controls.Add(FCollapsibleNavigation); }
private static string GetMaritalStatusCode(XmlNode ACurrentPartnerNode) { if (TXMLParser.HasAttribute(ACurrentPartnerNode, MPartnerConstants.PARTNERIMPORT_MARITALSTATUS)) { string maritalStatus = TXMLParser.GetAttribute(ACurrentPartnerNode, MPartnerConstants.PARTNERIMPORT_MARITALSTATUS); if (maritalStatus.ToLower() == Catalog.GetString("married").ToLower()) { return(MPartnerConstants.MARITALSTATUS_MARRIED); } else if (maritalStatus.ToLower() == Catalog.GetString("engaged").ToLower()) { return(MPartnerConstants.MARITALSTATUS_ENGAGED); } else if (maritalStatus.ToLower() == Catalog.GetString("single").ToLower()) { return(MPartnerConstants.MARITALSTATUS_SINGLE); } else if (maritalStatus.ToLower() == Catalog.GetString("divorced").ToLower()) { return(MPartnerConstants.MARITALSTATUS_DIVORCED); } } return(MPartnerConstants.MARITALSTATUS_UNDEFINED); }
/// <summary> /// /// </summary> /// <param name="sText"></param> /// <param name="Params"></param> /// <param name="bModify"></param> public void readFromXML(string sText, ref TParameterSet Params, bool bModify) { TXMLParser Parser; Parser = new TXMLParser(sText); readParamNode(Parser, Parser.rootNode(), ref Params, bModify); }
/// <summary> /// process a tab page /// </summary> /// <param name="curNode"></param> /// <returns></returns> public Boolean AddTabPage(XmlNode curNode) { // name of tabpage TControlDef tabPage = FCodeStorage.AddControl(curNode); tabPage.parentName = FCodeStorage.GetRootControl("tab").controlName; curNode = TXMLParser.NextNotBlank(curNode.FirstChild); if (curNode != null) { if (curNode.Name == "Controls") { // one control per row, align labels StringCollection controls = TYml2Xml.GetElements(curNode); foreach (string ctrlName in controls) { TControlDef ctrl = FCodeStorage.GetControl(ctrlName); if (ctrl != null) { ctrl.parentName = tabPage.controlName; } } } } return(true); }
/// <summary> /// checks if the user has access to the navigation node /// </summary> public static bool HasAccessPermission(XmlNode ANode, string AUserId, bool ACheckLedgerPermissions) { // TODO: if this is an action node, eg. opens a screen, check the static function that tells RequiredPermissions of the screen string PermissionsRequired = TXMLParser.GetAttributeRecursive(ANode, "PermissionsRequired", true); while (PermissionsRequired.Length > 0) { string PermissionRequired = StringHelper.GetNextCSV(ref PermissionsRequired); if (!UserInfo.GUserInfo.IsInModule(PermissionRequired)) { return(false); } } if (ACheckLedgerPermissions) { if (TXMLParser.GetAttributeRecursive(ANode, "DependsOnLedger", true).ToLower() == "true") { // check if the user has permissions for this ledger Int32 LedgerNumber = TXMLParser.GetIntAttribute(ANode, "LedgerNumber"); if (LedgerNumber != -1) { if (!UserInfo.GUserInfo.IsInModule(FormatLedgerNumberForModuleAccess(LedgerNumber))) { return(false); } } } } return(true); }
/// <summary> /// create PPartnerBankingDetail records for the FAMILY partner /// </summary> public static void GenerateBankDetails(XmlNode ACurrentNode, PFamilyRow AFamilyRow, PartnerEditTDS AMainDS, DataTable ABankKeys) { if (TXMLParser.HasAttribute(ACurrentNode, "bankaccount_bank")) { Int32 BankID = Convert.ToInt32(TXMLParser.GetAttribute(ACurrentNode, "bankaccount_bank")) % ABankKeys.Rows.Count; long BankPartnerKey = Convert.ToInt64(ABankKeys.Rows[BankID].ItemArray[0]); PBankingDetailsRow bankingDetailsRow = AMainDS.PBankingDetails.NewRowTyped(); bankingDetailsRow.BankingDetailsKey = (AMainDS.PBankingDetails.Rows.Count + 1) * -1; bankingDetailsRow.BankKey = BankPartnerKey; bankingDetailsRow.BankAccountNumber = TXMLParser.GetAttribute(ACurrentNode, "bankaccount_account"); bankingDetailsRow.BankingType = MPartnerConstants.BANKINGTYPE_BANKACCOUNT; bankingDetailsRow.AccountName = AFamilyRow.FirstName + " " + AFamilyRow.FamilyName; AMainDS.PBankingDetails.Rows.Add(bankingDetailsRow); PPartnerBankingDetailsRow partnerBankingRow = AMainDS.PPartnerBankingDetails.NewRowTyped(); partnerBankingRow.PartnerKey = AFamilyRow.PartnerKey; partnerBankingRow.BankingDetailsKey = bankingDetailsRow.BankingDetailsKey; AMainDS.PPartnerBankingDetails.Rows.Add(partnerBankingRow); PBankingDetailsUsageRow bankingUsageRow = AMainDS.PBankingDetailsUsage.NewRowTyped(); bankingUsageRow.BankingDetailsKey = bankingDetailsRow.BankingDetailsKey; bankingUsageRow.PartnerKey = AFamilyRow.PartnerKey; bankingUsageRow.Type = MPartnerConstants.BANKINGUSAGETYPE_MAIN; AMainDS.PBankingDetailsUsage.Rows.Add(bankingUsageRow); } }
private static string GetMaritalStatusCode(XmlNode ACurrentPartnerNode, TDBTransaction ATransaction) { if (TXMLParser.HasAttribute(ACurrentPartnerNode, MPartnerConstants.PARTNERIMPORT_MARITALSTATUS)) { string maritalStatus = TXMLParser.GetAttribute(ACurrentPartnerNode, MPartnerConstants.PARTNERIMPORT_MARITALSTATUS); // first look for special cases if (maritalStatus.ToLower() == Catalog.GetString("married").ToLower()) { return(MPartnerConstants.MARITALSTATUS_MARRIED); } else if (maritalStatus.ToLower() == Catalog.GetString("engaged").ToLower()) { return(MPartnerConstants.MARITALSTATUS_ENGAGED); } else if (maritalStatus.ToLower() == Catalog.GetString("single").ToLower()) { return(MPartnerConstants.MARITALSTATUS_SINGLE); } else if (maritalStatus.ToLower() == Catalog.GetString("divorced").ToLower()) { return(MPartnerConstants.MARITALSTATUS_DIVORCED); } // now check for value of marital status in setup table if (PtMaritalStatusAccess.Exists(maritalStatus, ATransaction)) { return(maritalStatus); } } return(""); }
/// <summary>add GeneratedReadSetControls</summary> public override void ApplyDerivedFunctionality(TFormWriter writer, TControlDef control) { string paramName = ReportControls.GetParameterName(control.xmlNode); if (paramName == null) { return; } StringCollection optionalValues = TYml2Xml.GetElements(TXMLParser.GetChild(control.xmlNode, "OptionalValues")); foreach (string rbtValueText in optionalValues) { string rbtValue = StringHelper.UpperCamelCase(rbtValueText.Replace("'", "").Replace(" ", "_"), false, false); string rbtName = "rbt" + rbtValue; writer.Template.AddToCodelet("READCONTROLS", "if (" + rbtName + ".Checked) " + Environment.NewLine + "{" + Environment.NewLine + " ACalc.AddParameter(\"" + paramName + "\", \"" + rbtValue + "\");" + Environment.NewLine + "}" + Environment.NewLine); writer.Template.AddToCodelet("SETCONTROLS", rbtName + ".Checked = " + "AParameters.Get(\"" + paramName + "\").ToString() == \"" + rbtValue + "\";" + Environment.NewLine); } }
/// <summary> /// Create a Partner and a Person having this FamilyKey, living at this address. /// </summary> /// <param name="AFamilyKey"></param> /// <param name="ALocationKey"></param> /// <param name="ANode"></param> /// <param name="AMainDS"></param> /// <param name="ATransaction"></param> private static Int64 CreateNewPerson(Int64 AFamilyKey, int ALocationKey, XmlNode ANode, ref PartnerImportExportTDS AMainDS, TDBTransaction ATransaction) { AMainDS.PFamily.DefaultView.RowFilter = String.Format("{0}={1}", PFamilyTable.GetPartnerKeyDBName(), AFamilyKey); PFamilyRow FamilyRow = (PFamilyRow)AMainDS.PFamily.DefaultView[0].Row; AMainDS.PPartner.DefaultView.RowFilter = String.Format("{0}={1}", PPartnerTable.GetPartnerKeyDBName(), AFamilyKey); PPartnerRow PartnerRow = (PPartnerRow)AMainDS.PPartner.DefaultView[0].Row; PPartnerRow newPartner = AMainDS.PPartner.NewRowTyped(); AMainDS.PPartner.Rows.Add(newPartner); newPartner.PartnerKey = (AMainDS.PPartner.Rows.Count + 1) * -1; newPartner.PartnerClass = MPartnerConstants.PARTNERCLASS_PERSON; newPartner.AddresseeTypeCode = PartnerRow.AddresseeTypeCode; newPartner.PartnerShortName = PartnerRow.PartnerShortName; newPartner.LanguageCode = PartnerRow.LanguageCode; newPartner.Comment = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_NOTES); newPartner.AcquisitionCode = PartnerRow.AcquisitionCode; newPartner.StatusCode = MPartnerConstants.PARTNERSTATUS_ACTIVE; PPersonRow newPerson = AMainDS.PPerson.NewRowTyped(); AMainDS.PPerson.Rows.Add(newPerson); newPerson.PartnerKey = newPartner.PartnerKey; newPerson.FamilyKey = AFamilyKey; // When this record is imported, newPerson.FamilyId must be unique for this family! newPerson.FirstName = FamilyRow.FirstName; newPerson.FamilyName = FamilyRow.FamilyName; newPerson.Title = FamilyRow.Title; newPerson.Gender = GetGenderCode(ANode); newPerson.MaritalStatus = FamilyRow.MaritalStatus; PPartnerLocationRow newPartnerLocation = AMainDS.PPartnerLocation.NewRowTyped(); AMainDS.PPartnerLocation.Rows.Add(newPartnerLocation); newPartnerLocation.LocationKey = ALocationKey; // This person lives at the same address as the family. newPartnerLocation.SiteKey = 0; newPartnerLocation.PartnerKey = newPartner.PartnerKey; newPartnerLocation.DateEffective = DateTime.Now.Date; newPartnerLocation.LocationType = MPartnerConstants.LOCATIONTYPE_HOME; newPartnerLocation.SendMail = true; newPartnerLocation["p_email_address_c"] = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_EMAIL); // Important: Do not use 'newPartnerLocation.EmailAddress' as this Column will get removed once Contact Details conversion is finished! newPartnerLocation["p_telephone_number_c"] = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_PHONE); // Important: Do not use 'newPartnerLocation.TelephoneNumber' as this Column will get removed once Contact Details conversion is finished! newPartnerLocation["p_mobile_number_c"] = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_MOBILEPHONE); // Important: Do not use 'newPartnerLocation.MobileNumber' as this Column will get removed once Contact Details conversion is finished! AddVerificationResult("Person Record Created.", TResultSeverity.Resv_Status); return(newPerson.PartnerKey); }
/// <summary>check if the generator fits the given control by checking the prefix and perhaps some of the attributes</summary> public override bool ControlFitsNode(XmlNode curNode) { if (base.ControlFitsNode(curNode)) { return(TXMLParser.GetChild(curNode, "Controls") != null); } return(false); }
/// <summary> /// get the definition of the control, if it has not been loaded yet from yaml then do it now /// </summary> /// <param name="AControlName"></param> /// <param name="AParentName"></param> /// <returns></returns> public TControlDef FindOrCreateControl(string AControlName, string AParentName) { TControlDef result = GetControl(AControlName); if (result != null) { // or should we throw an exception? return(result); } if (AControlName == "pnlEmpty") { int countEmpty = 1; foreach (string name in FControlList.Keys) { if (name.StartsWith("pnlEmpty")) { countEmpty++; } } AControlName += countEmpty.ToString(); } XmlNode collectionNode = GetCorrectCollection(AControlName, AParentName); XmlElement newNode = FXmlDocument.CreateElement(AControlName); collectionNode.AppendChild(newNode); FXmlNodes.Add(AControlName, newNode); result = new TControlDef(newNode, this); result.parentName = AParentName; FControlList.Add(AControlName, result); FSortedControlList.Add(FSortedControlList.Count, result); TControlDef parentCtrl = GetControl(AParentName); if ((parentCtrl != null) && !AControlName.StartsWith("pnlEmpty")) { XmlNode parentNode = parentCtrl.xmlNode; XmlNode controls = TXMLParser.GetChild(parentNode, "Controls"); if (controls == null) { controls = FXmlDocument.CreateElement("Controls"); parentNode.AppendChild(controls); } XmlNode element = FXmlDocument.CreateElement(TYml2Xml.XMLLIST); XmlAttribute attr = FXmlDocument.CreateAttribute("name"); attr.Value = AControlName; element.Attributes.Append(attr); controls.AppendChild(element); } return(result); }
/// <summary> /// Read the parameters from a text file (xml format); /// used for loading settings /// </summary> /// <param name="filename">relative or absolute filename /// </param> /// <returns>void</returns> public void Load(String filename) { XmlNode startNode; XmlNode node; TXMLParser myDoc; String level; String column; int levelNr; int columnNr; int subreport; myDoc = new TXMLParser(filename, false); try { startNode = myDoc.GetDocument().DocumentElement; if (startNode.Name.ToLower() == "parameters") { node = startNode.FirstChild; while (node != null) { if (node.Name == "Parameter") { column = TXMLParser.GetAttribute(node, "column"); level = TXMLParser.GetAttribute(node, "level"); subreport = TXMLParser.GetIntAttribute(node, "subreport"); columnNr = -1; levelNr = -1; if (column.Length != 0) { columnNr = (int)StringHelper.StrToInt(column); } if (level.Length != 0) { levelNr = (int)StringHelper.StrToInt(level); } Add(TXMLParser.GetAttribute(node, "id"), TVariant.DecodeFromString(TXMLParser.GetAttribute(node, "value")), columnNr, levelNr, subreport); } node = node.NextSibling; } } } catch (Exception E) { throw new Exception(E.Message); } }
/// <summary>check if the generator fits the given control by checking the prefix and perhaps some of the attributes</summary> public override bool ControlFitsNode(XmlNode curNode) { if (base.ControlFitsNode(curNode)) { if (TXMLParser.GetChild(curNode, "OptionalValues") != null) { return(true); } } return(false); }
/// <summary> /// Knows how to parse all the entities in the document. /// Reads one or more entities of the same type. /// </summary> /// <param name="cur">The current node</param> /// <param name="groupId">The id of the current group that the elements will belong to</param> /// <param name="entity">The name of the entity that should be read</param> /// <returns>the last of the read entities</returns> public Object Parse(XmlNode cur, ref int groupId, string entity) { cur = NextNotBlank(cur); if ((cur == null) || (cur.Name.ToLower() != entity.ToLower())) { return(null); } groupId++; if ((cur != null) && (cur.Name.ToLower() == entity.ToLower())) { if (entity == "table") { return(ParseTable(cur)); } else { if (entity == "tablefield") { return(ParseTableField(cur)); } else if (entity == "primarykey") { return(ParseConstraint(cur, TXMLParser.GetAttribute(cur.ParentNode, "name"))); } else if (entity == "foreignkey") { return(ParseConstraint(cur, TXMLParser.GetAttribute(cur.ParentNode, "name"))); } else if (entity == "uniquekey") { return(ParseConstraint(cur, TXMLParser.GetAttribute(cur.ParentNode, "name"))); } else if (entity == "index") { return(ParseIndex(cur)); } else if (entity == "indexfield") { return(ParseIndexField(cur)); } else if (entity == "sequence") { return(ParseSequence(cur)); } } } return(null); }
public THTMLFormReport(string AFilename) : base(AFilename) { Dictionary <string, string> styles = GetStyles(TXMLParser.FindNodeRecursive(TemplateDoc.DocumentElement, "div", "detail")); detailHeight = GetFloat(styles, "height", unit); detailLeft = GetFloat(styles, "left", unit); styles = GetStyles(TXMLParser.FindNodeRecursive(TemplateDoc.DocumentElement, "div", "groupTop")); groupTopHeight = GetFloat(styles, "height", unit); groupTopLeft = GetFloat(styles, "left", unit); styles = GetStyles(TXMLParser.FindNodeRecursive(TemplateDoc.DocumentElement, "div", "groupBottom")); groupBottomHeight = GetFloat(styles, "height", unit); groupBottomLeft = GetFloat(styles, "left", unit); }
/// <summary>check if the generator fits the given control by checking the prefix and perhaps some of the attributes</summary> public override bool ControlFitsNode(XmlNode curNode) { if (base.ControlFitsNode(curNode)) { if (TXMLParser.GetChild(curNode, "OptionalValues") != null) { return(!TYml2Xml.HasAttribute(curNode, "BorderVisible") || TYml2Xml.GetAttribute(curNode, "BorderVisible").ToLower() != "false"); } } return(false); }
/// <summary> /// Import data from a CSV file /// </summary> /// <param name="ANode"></param> /// <param name="AReferenceResults"></param> /// <returns></returns> public static PartnerImportExportTDS ImportData(XmlNode ANode, ref TVerificationResultCollection AReferenceResults) { PartnerImportExportTDS ResultDS = new PartnerImportExportTDS(); TPartnerImportCSV.FLocationKey = -1; ResultsCol = AReferenceResults; TDBTransaction ReadTransaction = null; DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.Serializable, ref ReadTransaction, delegate { while (ANode != null) { ResultsContext = "CSV Import"; String PartnerClass = TXMLParser.GetAttribute(ANode, MPartnerConstants.PARTNERIMPORT_PARTNERCLASS).ToUpper(); Int64 PartnerKey = 0; int LocationKey = 0; if (PartnerClass.Length == 0) { PartnerClass = MPartnerConstants.PARTNERCLASS_FAMILY; } if ((PartnerClass == MPartnerConstants.PARTNERCLASS_FAMILY) || (PartnerClass == MPartnerConstants.PARTNERCLASS_PERSON)) { ResultsContext = "CSV Import Family"; PartnerKey = CreateNewFamily(ANode, out LocationKey, ref ResultDS, ReadTransaction); CreateSpecialTypes(ANode, PartnerKey, "SpecialTypeFamily_", ref ResultDS); } if (PartnerClass == MPartnerConstants.PARTNERCLASS_PERSON) { ResultsContext = "CSV Import person"; Int64 PersonKey = CreateNewPerson(PartnerKey, LocationKey, ANode, ref ResultDS, ReadTransaction); CreateShortTermApplication(ANode, PersonKey, ref ResultDS, ReadTransaction); CreateSpecialTypes(ANode, PersonKey, ref ResultDS); CreateSubscriptions(ANode, PersonKey, ref ResultDS); CreateContacts(ANode, PersonKey, ref ResultDS, "_1"); CreateContacts(ANode, PersonKey, ref ResultDS, "_2"); CreatePassport(ANode, PersonKey, ref ResultDS); CreateSpecialNeeds(ANode, PersonKey, ref ResultDS); } ANode = ANode.NextSibling; } CreatePartnerAttributes(ref ResultDS, ReadTransaction); }); return(ResultDS); }
public void TestXmlWriter() { XmlDocument doc = CreateTestDoc(); // first see if the xml file is still the same string filename = PathToTestData + "test.xml"; StreamWriter sw = new StreamWriter(filename + ".new"); sw.Write(TXMLParser.XmlToString(doc)); sw.Close(); Assert.AreEqual(true, TTextFile.SameContent(filename, filename + ".new"), "the files should be the same: " + filename); System.IO.File.Delete(filename + ".new"); }
/// <summary> /// link the fields in the current ledger /// </summary> /// <param name="AFieldCSVFile"></param> public static void GenerateFieldsFinanceOnly(string AFieldCSVFile) { XmlDocument doc = TCsv2Xml.ParseCSV2Xml(AFieldCSVFile, ","); XmlNode RecordNode = doc.FirstChild.NextSibling.FirstChild; GLSetupTDS GLSetupDS = new GLSetupTDS(); PCountryTable CountryTable = null; TDBTransaction Transaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref Transaction, delegate { CountryTable = PCountryAccess.LoadAll(Transaction); }); while (RecordNode != null) { long id = 100 + Convert.ToInt64(TXMLParser.GetAttribute(RecordNode, "id")); string CountryCode = TXMLParser.GetAttribute(RecordNode, "Name"); string UnitName = ((PCountryRow)CountryTable.Rows.Find(CountryCode)).CountryName; Int64 PartnerKey = id * 1000000; // create cost centre ACostCentreRow CostCentreRow = GLSetupDS.ACostCentre.NewRowTyped(); CostCentreRow.LedgerNumber = FLedgerNumber; CostCentreRow.CostCentreCode = (id * 100).ToString("0000"); CostCentreRow.CostCentreName = UnitName; CostCentreRow.CostCentreToReportTo = MFinanceConstants.INTER_LEDGER_HEADING; CostCentreRow.CostCentreType = MFinanceConstants.FOREIGN_CC_TYPE; GLSetupDS.ACostCentre.Rows.Add(CostCentreRow); // create foreign ledger, cost centre link validledgernumber AValidLedgerNumberRow ValidLedgerNumber = GLSetupDS.AValidLedgerNumber.NewRowTyped(); ValidLedgerNumber.LedgerNumber = FLedgerNumber; ValidLedgerNumber.PartnerKey = PartnerKey; ValidLedgerNumber.CostCentreCode = CostCentreRow.CostCentreCode; ValidLedgerNumber.IltProcessingCentre = Convert.ToInt64(MFinanceConstants.ICH_COST_CENTRE) * 10000; GLSetupDS.AValidLedgerNumber.Rows.Add(ValidLedgerNumber); RecordNode = RecordNode.NextSibling; } GLSetupTDSAccess.SubmitChanges(GLSetupDS); }
private static SortedList <DateTime, List <XmlNode> > SortGiftsByDate(string AInputBeneratorFile) { XmlDocument doc = TCsv2Xml.ParseCSVFile2Xml(AInputBeneratorFile, ","); XmlNode RecordNode = doc.FirstChild.NextSibling.FirstChild; SortedList <DateTime, List <XmlNode> > GiftsPerDate = new SortedList <DateTime, List <XmlNode> >(); while (RecordNode != null) { // depending on frequency, and start date, add the gift to the batch list string frequency = TXMLParser.GetAttribute(RecordNode, "frequency"); int monthStep = 0; DateTime startdate = Convert.ToDateTime(TXMLParser.GetAttribute(RecordNode, "startdate")); DateTime dateForGift = startdate; if (frequency == "once") { // no further gift, leave at 0 } else if (frequency == "monthly") { monthStep = 1; } else if (frequency == "quarterly") { monthStep = 3; } do { if (!GiftsPerDate.ContainsKey(dateForGift)) { GiftsPerDate.Add(dateForGift, new List <XmlNode>()); } GiftsPerDate[dateForGift].Add(RecordNode); dateForGift = dateForGift.AddMonths(monthStep); } while (monthStep > 0 && dateForGift.Year <= DateTime.Now.Year); RecordNode = RecordNode.NextSibling; } return(GiftsPerDate); }
/// <summary>write the code for the designer file where the properties of the control are written</summary> public override ProcessTemplate SetControlProperties(TFormWriter writer, TControlDef ctrl) { ProcessTemplate ctrlSnippet = base.SetControlProperties(writer, ctrl); if (TXMLParser.HasAttribute(ctrl.xmlNode, "RadioChecked")) { ctrlSnippet.SetCodelet("CHECKED", "true"); } ctrlSnippet.SetCodelet("BOXLABEL", ctrlSnippet.FCodelets["LABEL"].ToString()); ctrlSnippet.SetCodelet("LABEL", "strEmpty"); ctrlSnippet.SetCodelet("INPUTVALUE", ctrl.controlName.Substring(3)); return(ctrlSnippet); }
/// <summary> /// Checks if a screen should be a Singleton screen (=screens for which only one instance is to be opened) and record the fact. /// </summary> /// <param name="childNode">Node to inspect.</param> static void CheckForAndRecordSingletonScreen(XmlNode childNode) { string ChildNodeActionOpenScreen = TXMLParser.GetAttribute(childNode, "ActionOpenScreen"); if (ChildNodeActionOpenScreen.Length > 0) { if (TXMLParser.GetAttribute(childNode, "Singleton").ToLower() == "true") { if (!TFormsList.GSingletonForms.Contains(ChildNodeActionOpenScreen)) { TFormsList.GSingletonForms.Add(ChildNodeActionOpenScreen); } } } }
/// <summary> /// Returns the gender of the currently selected partner /// </summary> /// <returns></returns> private static string GetGenderCode(XmlNode ACurrentPartnerNode) { string gender = TXMLParser.GetAttribute(ACurrentPartnerNode, MPartnerConstants.PARTNERIMPORT_GENDER); if ((gender.ToLower() == Catalog.GetString("Female").ToLower()) || (gender.ToLower() == "female")) { return(MPartnerConstants.GENDER_FEMALE); } else if ((gender.ToLower() == Catalog.GetString("Male").ToLower()) || (gender.ToLower() == "male")) { return(MPartnerConstants.GENDER_MALE); } return(MPartnerConstants.GENDER_UNKNOWN); }
private static void CreateSpecialTypes(XmlNode ANode, Int64 APartnerKey, String ACSVKey, ref PartnerImportExportTDS AMainDS) { for (int Idx = 1; Idx < 6; Idx++) { String SpecialType = TXMLParser.GetAttribute(ANode, ACSVKey + Idx.ToString()); if (SpecialType.Length > 0) { PPartnerTypeRow partnerType = AMainDS.PPartnerType.NewRowTyped(true); partnerType.PartnerKey = APartnerKey; partnerType.TypeCode = SpecialType; AMainDS.PPartnerType.Rows.Add(partnerType); } } }
public static bool ValidateIBAN(string AIban, out string ABic, out string ABankName, out TVerificationResultCollection AVerificationResult) { AVerificationResult = new TVerificationResultCollection(); ABic = String.Empty; ABankName = String.Empty; if ((AIban == null) || (AIban.Trim() == String.Empty)) { AVerificationResult.Add(new TVerificationResult("error", "The IBAN is invalid", "", "MaintainPartners.ErrInvalidIBAN", TResultSeverity.Resv_Critical)); return(false); } string IBANCheckURL = TAppSettingsManager.GetValue("IBANCheck.Url", "https://kontocheck.solidcharity.com/?iban="); string url = IBANCheckURL + AIban.Replace(" ", ""); string result = THTTPUtils.ReadWebsite(url); XmlDocument doc = new XmlDocument(); try { doc.LoadXml(result); XmlNode IbanCheck = TXMLParser.GetChild(doc.DocumentElement, "iban"); if (IbanCheck.InnerText == "0") { AVerificationResult.Add(new TVerificationResult("error", "The IBAN is invalid", "", "MaintainPartners.ErrInvalidIBAN", TResultSeverity.Resv_Critical)); return(false); } XmlNode BankName = TXMLParser.GetChild(doc.DocumentElement, "bankname"); XmlNode City = TXMLParser.GetChild(doc.DocumentElement, "city"); ABankName = BankName.InnerText + ", " + City.InnerText; XmlNode BIC = TXMLParser.GetChild(doc.DocumentElement, "bic"); ABic = BIC.InnerText; } catch (Exception) { TLogging.Log("Error validating IBAN: " + AIban.Replace(" ", "")); AVerificationResult.Add(new TVerificationResult("error", "The IBAN is invalid", "", "MaintainPartners.ErrInvalidIBAN", TResultSeverity.Resv_Critical)); return(false); } return(true); }
public THTMLFormLabels(string AFilename) : base(AFilename) { // we need padding-left and padding-bottom for the space between labels Dictionary <string, string> styles = GetStyles(TXMLParser.FindNodeRecursive(TemplateDoc.DocumentElement, "div", "label")); paddingLeft = GetFloat(styles, "padding-left", unit); paddingBottom = GetFloat(styles, "padding-bottom", unit); labelWidth = GetFloat(styles, "width", unit); labelHeight = GetFloat(styles, "height", unit); maxLabelsHorizontal = (int)Math.Floor((pageWidth - marginLeft) / (labelWidth + paddingLeft)); maxLabelsVertical = (int)Math.Floor((pageHeight - footerHeight - marginTop - marginBottom) / (labelHeight + paddingBottom)); currentLabelX = 0; currentLabelY = 0; }
public void TestYMLParser() { CreateTestDoc(); // load from yml, is it the same xml code? string filename = PathToTestData + "test.yml"; TYml2Xml converterYml = new TYml2Xml(filename); XmlDocument docFromYML = converterYml.ParseYML2XML(); filename = PathToTestData + "testWithInheritedAttributes.xml"; StreamWriter sw = new StreamWriter(filename + ".new"); sw.Write(TXMLParser.XmlToString2(docFromYML)); sw.Close(); Assert.AreEqual(true, TTextFile.SameContent(filename, filename + ".new"), "after importing from yml: the files should be the same: " + filename); System.IO.File.Delete(filename + ".new"); }
public void TestCSVParser() { CreateTestDoc(); // load from csv, is it the same xml code? string filename = PathToTestData + "test.csv"; XmlDocument docFromCSV = TCsv2Xml.ParseCSV2Xml(filename); filename = PathToTestData + "test.xml"; StreamWriter sw = new StreamWriter(filename + ".new"); sw.Write(TXMLParser.XmlToString2(docFromCSV)); sw.Close(); Assert.AreEqual(true, TTextFile.SameContent(filename, filename + ".new"), "after importing from csv: the files should be the same: " + filename); System.IO.File.Delete(filename + ".new"); }