123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953 |
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Windows.Forms;
- using System.Reflection;
- using FastReport.Barcode.QRCode;
- using FastReport.Data;
- using FastReport.Code;
- using FastReport.Controls;
- using FastReport.Utils;
- using FastReport.Barcode;
- using System.Text.RegularExpressions;
- using System.Globalization;
- namespace FastReport.Forms
- {
- /// <summary>
- /// Form for barcode editor
- /// </summary>
- public partial class BarcodeEditorForm : BaseDialogForm
- {
- /// <summary>
- /// Generated text for barcode object
- /// </summary>
- public string result;
- private Report report;
- private static List<string> expandedNodes;
- private string brackets;
- private TextBox prevFocus;
- /// <summary>
- /// Initializes a new instance of the <see cref="BarcodeEditorForm"/> class.
- /// </summary>
- /// <param name="data">Text data for parsing</param>
- /// <param name="report">Report object for nodes</param>
- /// <param name="Brackets">Brackets symbols</param>
- /// <param name="isRichBarcode">Editor for rich barcode?</param>
- public BarcodeEditorForm(string data, Report report, string Brackets, bool isRichBarcode)
- {
- this.report = report;
- InitializeComponent();
- Localize();
- qrWifiEncryption.SelectedIndex = 0;
- qrSwissIbanType.SelectedIndex = 0;
- qrSwissRefType.SelectedIndex = 2;
- tvData.CreateNodes(report.Dictionary);
- brackets = Brackets;
- if (expandedNodes != null)
- tvData.ExpandedNodes = expandedNodes;
- foreach (Control control in GetAllControls(Controls))
- {
- if (control is TextBox tb)
- {
- tb.AllowDrop = true;
- tb.GotFocus += prevFocus_GotFocus;
- tb.DragOver += prevFocus_DragOver;
- tb.DragDrop += prevFocus_DragDrop;
- }
- }
- if (isRichBarcode)
- {
- parse(data);
- if (qrTabs.ActivePage != qrTypeSberbank && Res.Get("Forms,BarcodeEditor,SberbankQr,Enable") != "True")
- qrTypeSberbank.Dispose();
- }
- else
- {
- qrText.Text = data;
- qrTabs.ActivePage = qrTypeText;
- while (qrTabs.Pages.Count > 1)
- qrTabs.Pages[1].Dispose();
- }
- UIUtils.CheckRTL(this);
- UpdateDpiDependencies();
- }
- /// <inheritdoc/>
- public override void Localize()
- {
- base.Localize();
- MyRes res = new MyRes("Forms,BarcodeEditor");
- Text = res.Get("");
- qrTypeText.Text = res.Get("Text");
- qrTypeVcard.Text = res.Get("vCard");
- qrTypeURI.Text = res.Get("URI");
- qrTypeEmailAddress.Text = res.Get("EmailAddress");
- qrTypeEmailMessage.Text = res.Get("EmailMessage");
- qrTypeGeo.Text = res.Get("Geolocation");
- qrTypeSMS.Text = res.Get("SMS");
- qrTypeCall.Text = res.Get("Call");
- qrTypeEvent.Text = res.Get("Event");
- qrTypeWifi.Text = res.Get("Wifi");
- qrTypeSwiss.Text = res.Get("Swiss");
- qrTypeSberbank.Text = res.Get("SberbankQr");
- label16.Text = res.Get("FirstName");
- label17.Text = res.Get("LastName");
- label18.Text = res.Get("Title");
- label20.Text = res.Get("Company");
- label21.Text = res.Get("Website");
- label25.Text = res.Get("EmailPersonal");
- label26.Text = res.Get("EmailBusiness");
- label19.Text = res.Get("PhoneMobile");
- label27.Text = res.Get("PhonePersonal");
- label28.Text = res.Get("PhoneBusiness");
- label31.Text = res.Get("Street");
- label22.Text = res.Get("ZipCode");
- label23.Text = res.Get("City");
- label24.Text = res.Get("Country");
- label30.Text = res.Get("URI");
- label29.Text = res.Get("Email");
- label1.Text = res.Get("Email");
- label2.Text = res.Get("Subject");
- label3.Text = res.Get("Text");
- label5.Text = res.Get("Latitude");
- label4.Text = res.Get("Longitude");
- label6.Text = res.Get("Height");
- label7.Text = res.Get("PhoneNumber");
- label8.Text = res.Get("Text");
- label9.Text = res.Get("PhoneNumber");
- label10.Text = res.Get("Description");
- label11.Text = res.Get("From");
- label12.Text = res.Get("To");
- label13.Text = res.Get("Encryption");
- label14.Text = res.Get("NetworkName");
- label15.Text = res.Get("Password");
- qrWifiHidden.Text = res.Get("WifiHidden");
- res = new MyRes("Forms,BarcodeEditor,Swiss");
- lblSwissIban.Text = res.Get("Iban");
- lblSwissIbanType.Text = res.Get("IbanType");
- lblSwissAmount.Text = res.Get("Amount");
- lblSwissCurrency.Text = res.Get("Currency");
- gbSwissCreditor.Text = res.Get("Creditor");
- gbSwissDebitor.Text = res.Get("Debitor");
- lblSwissName1.Text = lblSwissName2.Text = res.Get("Name");
- lblSwissStreet1.Text = lblSwissStreet2.Text = res.Get("StreetNr");
- lblSwissZip1.Text = lblSwissZip2.Text = res.Get("ZipCityCountry");
- gbSwissAddInformation.Text = res.Get("AdditionalInformation");
- lblSwissRefText.Text = res.Get("Reference");
- lblSwissRefType.Text = res.Get("Type");
- lblSwissRefTextType.Text = res.Get("TextType");
- lblSwissAddMessage.Text = res.Get("Message");
- lblSwissAddBillInfo.Text = res.Get("BillInformation");
- lblSwissAddProcedure1.Text = res.Get("AlternativeProcedure") + " 1";
- lblSwissAddProcedure2.Text = res.Get("AlternativeProcedure") + " 2";
- res = new MyRes("Forms,BarcodeEditor,SberbankQr");
- sberQrName.Text = res.Get("Name");
- label41.Text = res.Get("PersonalAcc");
- label59.Text = res.Get("CorrespAcc");
- label52.Text = res.Get("BIC");
- label45.Text = res.Get("BankName");
- label66.Text = res.Get("KPP");
- label64.Text = res.Get("PayerINN");
- label69.Text = res.Get("TaxPeriod");
- label72.Text = res.Get("DocNo");
- label65.Text = res.Get("Purpose");
- label68.Text = res.Get("OKTMO");
- label63.Text = res.Get("PayeeINN");
- label62.Text = res.Get("Sum");
- label74.Text = res.Get("DocDate");
- label70.Text = res.Get("PayReason");
- label73.Text = res.Get("TaxPaytKind");
- label67.Text = res.Get("CBC");
- label71.Text = res.Get("DrawerStatus");
- label104.Text = res.Get("TechCode");
- label103.Text = res.Get("UIN");
- label102.Text = res.Get("RegType");
- label101.Text = res.Get("ExecId");
- label100.Text = res.Get("RuleId");
- label99.Text = res.Get("AddAmount");
- label98.Text = res.Get("SpecFio");
- label97.Text = res.Get("ClassNum");
- label96.Text = res.Get("InstNum");
- label95.Text = res.Get("QuittDate");
- label94.Text = res.Get("QuittId");
- label91.Text = res.Get("CounterVal");
- label92.Text = res.Get("ServiceName");
- label93.Text = res.Get("CounterId");
- label90.Text = res.Get("Category");
- label89.Text = res.Get("PaymTerm");
- label88.Text = res.Get("BirthDate");
- label87.Text = res.Get("ChildFio");
- label86.Text = res.Get("PayerIdType");
- label85.Text = res.Get("PayerIdNum");
- label83.Text = res.Get("Flat");
- label84.Text = res.Get("Phone");
- label81.Text = res.Get("PersAcc");
- label80.Text = res.Get("PensAcc");
- label79.Text = res.Get("DocIdx");
- label78.Text = res.Get("Contract");
- label77.Text = res.Get("PersonalAccount");
- label76.Text = res.Get("PayerAdress");
- label75.Text = res.Get("MiddleName");
- label61.Text = res.Get("FirstName");
- label60.Text = res.Get("LastName");
- tabPage2.Text = res.Get("ObligatoryProps");
- tabPage3.Text = res.Get("AdditionalProps");
- tabPage4.Text = res.Get("AnotherProps");
- QuittDateCheckBox.Text = res.Get("NotEnterDate");
- BirthDateCheckBox.Text = res.Get("NotEnterDate");
- PaymTermCheckBox.Text = res.Get("NotEnterDate");
- DocDateCheckBox.Text = res.Get("NotEnterDate");
- }
- /// <inheritdoc/>
- public override void UpdateDpiDependencies()
- {
- base.UpdateDpiDependencies();
- tvData.ImageList = GetImages();
- }
- private void QREdit_FormClosed(object sender, FormClosedEventArgs e)
- {
- expandedNodes = tvData.ExpandedNodes;
- }
- private void tvData_ItemDrag(object sender, ItemDragEventArgs e)
- {
- tvData.SelectedNode = e.Item as TreeNode;
- if (tvData.SelectedItem != "")
- tvData.DoDragDrop(e.Item, DragDropEffects.Move);
- else
- tvData.DoDragDrop(e.Item, DragDropEffects.None);
- }
- private void prevFocus_DragOver(object sender, DragEventArgs e)
- {
- TextBox tb = sender as TextBox;
- int index = tb.GetCharIndexFromPosition(tb.PointToClient(new Point(e.X, e.Y)));
- if (index == tb.Text.Length - 1)
- index++;
- tb.Focus();
- tb.Select(index, 0);
- e.Effect = e.AllowedEffect;
- }
- private void prevFocus_DragDrop(object sender, DragEventArgs e)
- {
- TextBox tb = sender as TextBox;
- tb.SelectedText = GetTextWithBrackets();
- tb.Focus();
- }
- List<Control> GetAllControls(Control.ControlCollection collection)
- {
- List<Control> result = new List<Control>();
- foreach (Control control in collection)
- {
- result.Add(control);
- result.AddRange(GetAllControls(control.Controls));
- }
- return result;
- }
- private void prevFocus_GotFocus(object sender, EventArgs e)
- {
- prevFocus = sender as TextBox;
- }
- private void tvData_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
- {
- if (tvData.SelectedItem != "" && prevFocus != null)
- {
- prevFocus.SelectedText = GetTextWithBrackets();
- prevFocus.Focus();
- }
- }
- private string GetTextWithBrackets()
- {
- string text = tvData.SelectedItem;
- string[] _brackets = brackets.Split(',');
- // this check is needed if Brackets property is not "[,]"
- if (InsideBrackets(prevFocus.SelectionStart))
- {
- if (tvData.SelectedItemType == DataTreeSelectedItemType.Function ||
- tvData.SelectedItemType == DataTreeSelectedItemType.CustomItem)
- return text;
- return "[" + text + "]";
- }
- return _brackets[0] + text + _brackets[1];
- }
- private bool InsideBrackets(int pos)
- {
- string[] _brackets = brackets.Split(',');
- FindTextArgs args = new FindTextArgs();
- args.Text = new FastString(prevFocus.Text);
- args.OpenBracket = _brackets[0];
- args.CloseBracket = _brackets[1];
- args.StartIndex = pos;
- return CodeUtils.IndexInsideBrackets(args);
- }
- private void parse(string data)
- {
- QRData qr = null;
- try
- {
- qr = QRData.Parse(data);
- }
- catch
- {
- try
- {
- qr = new QRText(data);
- }
- catch
- {
- MessageBox.Show("Can't parse", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- Close();
- return;
- }
- }
- if (qr is QRText)
- {
- qrText.Text = qr.data;
- qrTabs.ActivePage = qrTypeText;
- }
- else if (qr is QRvCard)
- {
- QRvCard _qr = qr as QRvCard;
- qrVcFN.Text = _qr.firstName;
- qrVcLN.Text = _qr.lastName;
- qrVcTitle.Text = _qr.title;
- qrVcCompany.Text = _qr.org;
- qrVcWebsite.Text = _qr.url;
- qrVcEmailHome.Text = _qr.email_home_internet;
- qrVcEmailWork.Text = _qr.email_work_internet;
- qrVcPhone.Text = _qr.tel_cell;
- qrVcPhoneHome.Text = _qr.tel_home_voice;
- qrVcPhoneWork.Text = _qr.tel_work_voice;
- qrVcStreet.Text = _qr.street;
- qrVcZip.Text = _qr.zipCode;
- qrVcCity.Text = _qr.city;
- qrVcCountry.Text = _qr.country;
- qrTabs.ActivePage = qrTypeVcard;
- }
- else if (qr is QRURI)
- {
- qrURI.Text = qr.data;
- qrTabs.ActivePage = qrTypeURI;
- }
- else if (qr is QREmailAddress)
- {
- qrEmail.Text = qr.data;
- qrTabs.ActivePage = qrTypeEmailAddress;
- }
- else if (qr is QREmailMessage)
- {
- QREmailMessage _qr = qr as QREmailMessage;
- qrEmailTo.Text = _qr.msg_to;
- qrEmailSub.Text = _qr.msg_sub;
- qrEmailText.Text = _qr.msg_body;
- qrTabs.ActivePage = qrTypeEmailMessage;
- }
- else if (qr is QRGeo)
- {
- QRGeo _qr = qr as QRGeo;
- qrGeoLatitude.Text = _qr.latitude;
- qrGeoLongitude.Text = _qr.longitude;
- qrGeoMeters.Text = _qr.meters;
- qrTabs.ActivePage = qrTypeGeo;
- }
- else if (qr is QRSMS)
- {
- QRSMS _qr = qr as QRSMS;
- qrSMSTo.Text = _qr.sms_to;
- qrSMSText.Text = _qr.sms_text;
- qrTabs.ActivePage = qrTypeSMS;
- }
- else if (qr is QRCall)
- {
- QRCall _qr = qr as QRCall;
- qrCall.Text = _qr.tel;
- qrTabs.ActivePage = qrTypeCall;
- }
- else if (qr is QREvent)
- {
- QREvent _qr = qr as QREvent;
- qrEventDesc.Text = _qr.summary;
- qrEventFrom.Value = _qr.dtStart;
- qrEventTo.Value = _qr.dtEnd;
- qrTabs.ActivePage = qrTypeEvent;
- }
- else if (qr is QRWifi)
- {
- QRWifi _qr = qr as QRWifi;
- qrWifiEncryption.Text = _qr.encryption;
- qrWifiName.Text = _qr.networkName;
- qrWifiPass.Text = _qr.password;
- qrWifiHidden.Checked = _qr.hidden;
- qrTabs.ActivePage = qrTypeWifi;
- }
- else if (qr is QRSberBank)
- {
- QRSberBank _qr = qr as QRSberBank;
- NameTextBox.Text = _qr.Name;
- PersonalAccTextBox.Text = _qr.PersonalAcc;
- BankNameTextBox.Text = _qr.BankName;
- BICTextBox.Text = _qr.BIC;
- CorrespAccTextBox.Text = _qr.CorrespAcc;
- sumTextBox.Text = _qr.Sum;
- PaymentPurpose.Text = _qr.Purpose;
- PayerInnTextBox.Text = _qr.PayerINN;
- ReceiverIINTextBox.Text = _qr.PayeeINNB;
- DrawerStatusTextBox.Text = _qr.DrawerStatus;
- ReceiverKPPTextBox.Text = _qr.KPP;
- OKTMOTextBox.Text = _qr.OKTMO;
- PayReasonTextBox.Text = _qr.PaytReason;
- TaxPeriodTextBox.Text = _qr.TaxPeriod;
- DocumentNumberTextBox.Text = _qr.DocNo;
- CBCTextBox.Text = _qr.CBC;
- if (_qr.DocDate != DateTime.MinValue)
- {
- DocumentDatePicker.Value = _qr.DocDate;
- DocDateCheckBox.Checked = false;
- }
- else
- {
- DocumentDatePicker.Enabled = false;
- DocDateCheckBox.Checked = true;
- }
- TaxPayKindTextBox.Text = _qr.TaxPaytKind;
- LastNameTextBox.Text = _qr.LastName;
- FirstNameTextBox.Text = _qr.FirstName;
- MiddleNameTextBox.Text = _qr.MiddleName;
- PayerAdressTextBox.Text = _qr.PayerAddress;
- PersonalAccoutTextBox.Text = _qr.PersonalAccount;
- DocIdxTextBox.Text = _qr.DocIdx;
- PensAccTextBox.Text = _qr.PensAcc;
- ContractTextBox.Text = _qr.Contract;
- PersAccTextBox.Text = _qr.PersAccp;
- FlatTextBox.Text = _qr.Flat;
- PhoneTextBox.Text = _qr.Phone;
- PayerIdTypeTextBox.Text = _qr.PayerIdType;
- PayerIdNumTextBox.Text = _qr.PayerIdNum;
- ChildFioTextBox.Text = _qr.ChildFio;
- if (_qr.BirthDate != DateTime.MinValue)
- {
- BirthDatePicker.Value = _qr.BirthDate;
- BirthDateCheckBox.Checked = false;
- }
- else
- {
- BirthDateCheckBox.Checked = true;
- BirthDatePicker.Enabled = false;
- }
- if (_qr.PaymTerm != DateTime.MinValue)
- {
- PaymTermPicker.Value = _qr.PaymTerm;
- PaymTermCheckBox.Checked = false;
- }
- else
- {
- PaymTermPicker.Enabled = false;
- PaymTermCheckBox.Checked = true;
- }
- CategoryTextBox.Text = _qr.Category;
- ServiceNameTextBox.Text = _qr.ServiceName;
- CounterIdValTextBox.Text = _qr.CounterId;
- CounterValTextBox.Text = _qr.CounterVal;
- QuittIdTextBox.Text = _qr.QuittId;
- if (_qr.QuittDate != DateTime.MinValue)
- {
- QuittDateDatePicker.Value = _qr.QuittDate;
- QuittDateCheckBox.Checked = false;
- }
- else
- {
- QuittDateDatePicker.Enabled = false;
- QuittDateCheckBox.Checked = true;
- }
- InstNumTextBox.Text = _qr.InstNum;
- ClassNumTextBox.Text = _qr.ClassNum;
- SpecFioTextBox.Text = _qr.SpecFio;
- AddAmountTextBox.Text = _qr.AddAmount;
- RuleIdTextBox.Text = _qr.RuleId;
- ExecId.Text = _qr.ExecId;
- RegType.Text = _qr.RegType;
- UINTextBox.Text = _qr.UIN;
- TechCodeTextBox.Text = _qr.TechCode;
- qrTabs.ActivePage = qrTypeSberbank;
- }
- else if (qr is QRSwiss)
- {
- QRSwiss _qr = qr as QRSwiss;
- qrSwissIban.Text = _qr._Iban._Iban;
- if (_qr._Iban.TypeIban == Iban.IbanType.Iban)
- qrSwissIbanType.SelectedIndex = 0;
- else
- qrSwissIbanType.SelectedIndex = 1;
- qrSwissCreditorName.Text = _qr.Creditor.Name;
- qrSwissCreditorCity.Text = _qr.Creditor.City;
- qrSwissCreditorCountry.Text = _qr.Creditor.Country;
- qrSwissCreditorHNumber.Text = _qr.Creditor.HouseNumberOrAddressline;
- qrSwissCreditorStreet.Text = _qr.Creditor.StreetOrAddressline;
- qrSwissCreditorZipCode.Text = _qr.Creditor.ZipCode;
- qrSwissRefText.Text = _qr._Reference.ReferenceText;
- switch (_qr._Reference.RefType)
- {
- case Reference.ReferenceType.QRR:
- qrSwissRefType.SelectedIndex = 0;
- break;
- case Reference.ReferenceType.SCOR:
- qrSwissRefType.SelectedIndex = 1;
- break;
- case Reference.ReferenceType.NON:
- qrSwissRefType.SelectedIndex = 2;
- break;
- }
- switch (_qr._Reference._ReferenceTextType)
- {
- case Reference.ReferenceTextType.QrReference:
- qrSwissRefTextType.SelectedIndex = 0;
- break;
- case Reference.ReferenceTextType.CreditorReferenceIso11649:
- qrSwissRefTextType.SelectedIndex = 1;
- break;
- }
- if (_qr.Debitor != null)
- {
- qrSwissDebitorName.Text = _qr.Debitor.Name.ToString();
- qrSwissDebitorCity.Text = _qr.Debitor.City.ToString();
- qrSwissDebitorCountry.Text = _qr.Debitor.Country.ToString();
- qrSwissDebitorHNumber.Text = _qr.Debitor.HouseNumberOrAddressline.ToString();
- qrSwissDebitorStreet.Text = _qr.Debitor.StreetOrAddressline.ToString();
- qrSwissDebitorZipCode.Text = _qr.Debitor.ZipCode.ToString();
- }
- qrSwissUnstructMessage.Text = _qr._AdditionalInformation.UnstructureMessage != null ? _qr._AdditionalInformation.UnstructureMessage : "";
- qrSwissBillInfo.Text = _qr._AdditionalInformation.BillInformation != null ? _qr._AdditionalInformation.BillInformation : "";
- qrSwissAlt1.Text = _qr.AlternativeProcedure1 != null ? _qr.AlternativeProcedure1 : "";
- qrSwissAlt2.Text = _qr.AlternativeProcedure2 != null ? _qr.AlternativeProcedure2 : "";
- switch (_qr._Currency)
- {
- case nameof(Currency.EUR):
- tbQrSwissCurrency.Text = _qr._Currency.ToString();
- break;
- case nameof(Currency.CHF):
- tbQrSwissCurrency.Text = _qr._Currency.ToString();
- break;
- default:
- if (_qr._Currency.StartsWith("[") && _qr._Currency.EndsWith("]"))
- tbQrSwissCurrency.Text = _qr._Currency.ToString();
- else
- tbQrSwissCurrency.Text = Currency.EUR.ToString();
- break;
- }
- qrSwissAmount.Text = _qr.Amount?.ToString();
- qrTabs.ActivePage = qrTypeSwiss;
- }
- }
- private void btnOk_Click(object sender, EventArgs e)
- {
- try
- {
- if (qrTabs.ActivePage == qrTypeText)
- {
- QRText qr = new QRText();
- qr.data = qrText.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeVcard)
- {
- QRvCard qr = new QRvCard();
- qr.firstName = qrVcFN.Text;
- qr.lastName = qrVcLN.Text;
- qr.title = qrVcTitle.Text;
- qr.org = qrVcCompany.Text;
- qr.url = qrVcWebsite.Text;
- qr.email_home_internet = qrVcEmailHome.Text;
- qr.email_work_internet = qrVcEmailWork.Text;
- qr.tel_cell = qrVcPhone.Text;
- qr.tel_home_voice = qrVcPhoneHome.Text;
- qr.tel_work_voice = qrVcPhoneWork.Text;
- qr.street = qrVcStreet.Text;
- qr.zipCode = qrVcZip.Text;
- qr.city = qrVcCity.Text;
- qr.country = qrVcCountry.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeURI)
- {
- QRURI qr = new QRURI();
- qr.data = qrURI.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeEmailAddress)
- {
- QREmailAddress qr = new QREmailAddress();
- qr.data = qrEmail.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeEmailMessage)
- {
- QREmailMessage qr = new QREmailMessage();
- qr.msg_to = qrEmailTo.Text;
- qr.msg_sub = qrEmailSub.Text;
- qr.msg_body = qrEmailText.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeGeo)
- {
- QRGeo qr = new QRGeo();
- qr.latitude = qrGeoLatitude.Text;
- qr.longitude = qrGeoLongitude.Text;
- qr.meters = qrGeoMeters.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeSMS)
- {
- QRSMS qr = new QRSMS();
- qr.sms_to = qrSMSTo.Text;
- qr.sms_text = qrSMSText.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeCall)
- {
- QRCall qr = new QRCall();
- qr.tel = qrCall.Text;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeEvent)
- {
- QREvent qr = new QREvent();
- qr.summary = qrEventDesc.Text;
- qr.dtStart = qrEventFrom.Value;
- qr.dtEnd = qrEventTo.Value;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeSberbank)
- {
- if (String.IsNullOrWhiteSpace(PersonalAccTextBox.Text) || String.IsNullOrWhiteSpace(BankNameTextBox.Text)
- || String.IsNullOrWhiteSpace(NameTextBox.Text) || String.IsNullOrWhiteSpace(BICTextBox.Text)
- || String.IsNullOrWhiteSpace(CorrespAccTextBox.Text))
- {
- throw new Exception(Res.Get("Forms,BarcodeEditor,SberbankQr,Error"));
- }
- else
- {
- string[] brackets = this.brackets.Split(',');
- string messege = Res.Get("Forms,BarcodeEditor,SberbankQr,Warning");
- bool error = true;
- if ((Regex.IsMatch(PersonalAccTextBox.Text, "[A-z ]") || PersonalAccTextBox.Text.Length != 20)
- && !(PersonalAccTextBox.Text.StartsWith(brackets[0]) && PersonalAccTextBox.Text.EndsWith(brackets[1])))
- {
- messege += " " + Res.Get("Forms,BarcodeEditor,SberbankQr,PersonalAcc");
- error = false;
- }
- if ((Regex.IsMatch(BICTextBox.Text, "[A-z ]") || BICTextBox.Text.Length != 9)
- && !(BICTextBox.Text.StartsWith(brackets[0]) && BICTextBox.Text.EndsWith(brackets[1])))
- {
- messege += " " + Res.Get("Forms,BarcodeEditor,SberbankQr,BIC");
- error = false;
- }
- if ((Regex.IsMatch(CorrespAccTextBox.Text, "[A-z ]"))
- && !(CorrespAccTextBox.Text.StartsWith(brackets[0]) && CorrespAccTextBox.Text.EndsWith(brackets[1])))
- {
- messege += " " + Res.Get("Forms,BarcodeEditor,SberbankQr,CorrespAcc");
- error = false;
- }
- if (!error)
- throw new Exception(messege + ".");
- }
- QRSberBank qe = new QRSberBank();
- qe.PersonalAcc = PersonalAccTextBox.Text;
- qe.BankName = BankNameTextBox.Text;
- qe.Name = NameTextBox.Text;
- qe.BIC = BICTextBox.Text;
- qe.CorrespAcc = CorrespAccTextBox.Text;
- qe.Sum = sumTextBox.Text;
- qe.PayeeINNB = ReceiverIINTextBox.Text;
- qe.PayerINN = PayerInnTextBox.Text;
- qe.CBC = CBCTextBox.Text;
- qe.Purpose = PaymentPurpose.Text;
- qe.DrawerStatus = DrawerStatusTextBox.Text;
- qe.KPP = ReceiverKPPTextBox.Text;
- qe.OKTMO = OKTMOTextBox.Text;
- qe.PaytReason = PayReasonTextBox.Text;
- qe.DocNo = DocumentNumberTextBox.Text;
- qe.TaxPaytKind = TaxPayKindTextBox.Text;
- qe.TaxPeriod = TaxPeriodTextBox.Text;
- qe.DocDate = DocDateCheckBox.Checked ? DateTime.MinValue : DocumentDatePicker.Value;
- qe.LastName = LastNameTextBox.Text;
- qe.FirstName = FirstNameTextBox.Text;
- qe.MiddleName = MiddleNameTextBox.Text;
- qe.PayerAddress = PayerAdressTextBox.Text;
- qe.PersonalAccount = PersonalAccoutTextBox.Text;
- qe.DocIdx = DocIdxTextBox.Text;
- qe.PensAcc = PensAccTextBox.Text;
- qe.Contract = ContractTextBox.Text;
- qe.PersAccp = PersAccTextBox.Text;
- qe.Flat = FlatTextBox.Text;
- qe.Phone = PhoneTextBox.Text;
- qe.PayerIdType = PayerIdTypeTextBox.Text;
- qe.PayerIdNum = PayerIdNumTextBox.Text;
- qe.ChildFio = ChildFioTextBox.Text;
- qe.BirthDate = BirthDateCheckBox.Checked ? DateTime.MinValue : BirthDatePicker.Value;
- qe.PaymTerm = PaymTermCheckBox.Checked ? DateTime.MinValue : PaymTermPicker.Value;
- /*
- * payment period
- */
- qe.Category = CategoryTextBox.Text;
- qe.ServiceName = ServiceNameTextBox.Text;
- qe.CounterId = CounterIdValTextBox.Text;
- qe.CounterVal = CounterValTextBox.Text;
- qe.QuittId = QuittIdTextBox.Text;
- qe.QuittDate = QuittDateCheckBox.Checked ? DateTime.MinValue : QuittDateDatePicker.Value;
- qe.InstNum = InstNumTextBox.Text;
- qe.ClassNum = ClassNumTextBox.Text;
- qe.SpecFio = SpecFioTextBox.Text;
- qe.AddAmount = AddAmountTextBox.Text;
- qe.RuleId = RuleIdTextBox.Text;
- qe.ExecId = ExecId.Text;
- qe.RegType = RegType.Text;
- qe.UIN = UINTextBox.Text;
- qe.TechCode = TechCodeTextBox.Text;
- result = qe.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeWifi)
- {
- QRWifi qr = new QRWifi();
- qr.encryption = qrWifiEncryption.Text;
- qr.networkName = qrWifiName.Text;
- qr.password = qrWifiPass.Text;
- qr.hidden = qrWifiHidden.Checked;
- result = qr.Pack();
- }
- else if (qrTabs.ActivePage == qrTypeSwiss)
- {
- MyRes res = new MyRes("Messages,Swiss");
- string[] brackets = this.brackets.Split(',');
- string ibanText = qrSwissIban.Text;
- Iban.IbanType? ibanType = null;
- switch (qrSwissIbanType.SelectedIndex)
- {
- case 0:
- ibanType = Iban.IbanType.Iban;
- break;
- case 1:
- ibanType = Iban.IbanType.QrIban;
- break;
- }
- if (ibanType == null || ibanText == "")
- throw new SwissQrCodeException(res.Get("SwissNullIban"));
- Iban iban = null;
- // if the ibanText text is a field from the database, then we simply assign a value without checking it
- if (ibanText.StartsWith(brackets[0].ToString()) && ibanText.EndsWith(brackets[1]))
- {
- iban = new Iban(ibanText);
- iban.TypeIban = (Iban.IbanType)ibanType;
- }
- else
- iban = new Iban(ibanText, ibanType.Value);
- string creditorName = qrSwissCreditorName.Text;
- string creditorZipCode = qrSwissCreditorZipCode.Text;
- string creditorCity = qrSwissCreditorCity.Text;
- string creditorCountry = qrSwissCreditorCountry.Text;
- string creditorHouseNumberOrAddressline = qrSwissCreditorHNumber.Text;
- string creditorStreetOrAddressline = qrSwissCreditorStreet.Text;
- Contact creditor = new Contact(creditorName, creditorZipCode, creditorCity, creditorCountry, creditorStreetOrAddressline, creditorHouseNumberOrAddressline);
- string referenceText = qrSwissRefText.Text;
- Reference.ReferenceType? referenceType = null;
- Reference.ReferenceTextType? referenceTextType = null;
- switch (qrSwissRefTextType.SelectedIndex)
- {
- case 0:
- referenceTextType = Reference.ReferenceTextType.QrReference;
- break;
- case 1:
- referenceTextType = Reference.ReferenceTextType.CreditorReferenceIso11649;
- break;
- }
- switch (qrSwissRefType.SelectedIndex)
- {
- case 0:
- referenceType = Reference.ReferenceType.QRR;
- break;
- case 1:
- referenceType = Reference.ReferenceType.SCOR;
- break;
- case 2:
- referenceType = Reference.ReferenceType.NON;
- break;
- }
- Reference reference = null;
- if (!String.IsNullOrWhiteSpace(referenceText))
- reference = new Reference(referenceType.Value, referenceText, referenceTextType);
- else
- reference = new Reference(referenceType.Value, null, null);
- string debitorName = qrSwissDebitorName.Text;
- string debitorZipCode = qrSwissDebitorZipCode.Text;
- string debitorCity = qrSwissDebitorCity.Text;
- string debitorCountry = qrSwissDebitorCountry.Text;
- string debitorHouseNumberOrAddressline = qrSwissDebitorHNumber.Text;
- string debitorStreetOrAddressline = qrSwissDebitorStreet.Text;
- Contact debitor = null;
- if (debitorName + debitorCity + debitorZipCode + debitorCountry + debitorStreetOrAddressline + debitorHouseNumberOrAddressline != "")
- debitor = new Contact(debitorName, debitorZipCode, debitorCity, debitorCountry, debitorStreetOrAddressline, debitorHouseNumberOrAddressline);
- string addInfoBillInformation = qrSwissBillInfo.Text;
- string addInfoUnstructureMessage = qrSwissUnstructMessage.Text;
- AdditionalInformation additionalInformation = new AdditionalInformation(addInfoUnstructureMessage, addInfoBillInformation);
- string currency = null;
- switch (tbQrSwissCurrency.Text)
- {
- case nameof(Currency.EUR):
- currency = Currency.EUR.ToString();
- break;
- case nameof(Currency.CHF):
- currency = Currency.CHF.ToString();
- break;
- default:
- if (tbQrSwissCurrency.Text.StartsWith("[") && tbQrSwissCurrency.Text.EndsWith("]"))
- currency = tbQrSwissCurrency.Text;
- else
- currency = Currency.EUR.ToString();
- break;
- }
- string amountValue = null;
- if (!qrSwissAmount.Text.StartsWith(brackets[0]) || !qrSwissAmount.Text.EndsWith(brackets[1]))
- {
- //Amount has to use . as decimal separator in any case. See https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-en.pdf page 27.
- string invariantSeparator = CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator;
- string clearQRSwissAmount = qrSwissAmount.Text.Replace(",", invariantSeparator).Replace("/", invariantSeparator);
- if (!string.IsNullOrWhiteSpace(clearQRSwissAmount))
- {
- if (decimal.TryParse(clearQRSwissAmount, NumberStyles.Number, CultureInfo.InvariantCulture, out decimal amount))
- amountValue = amount.ToString(CultureInfo.InvariantCulture);
- }
- }
- else
- amountValue = qrSwissAmount.Text;
- QRSwissParameters parameters = new QRSwissParameters();
- parameters.Iban = iban;
- parameters.Creditor = creditor;
- parameters.Reference = reference;
- parameters.AlternativeProcedure1 = qrSwissAlt1.Text;
- parameters.AlternativeProcedure2 = qrSwissAlt2.Text;
- parameters.AdditionalInformation = additionalInformation;
- parameters.Amount = amountValue;
- parameters.Currency = currency;
- parameters.Debitor = debitor;
- QRSwiss qr = new QRSwiss(parameters);
- result = qr.Pack();
- }
- DialogResult = DialogResult.OK;
- Close();
- }
- catch (Exception ex)
- {
- FRMessageBox.Error(ex.Message);
- }
- }
- private void tvData_AfterSelect(object sender, TreeViewEventArgs e)
- {
- bool descrVisible = tvData.SelectedNode != null &&
- (tvData.SelectedNode.Tag is MethodInfo || tvData.SelectedNode.Tag is SystemVariable);
- expandableSplitter1.Visible = descrVisible;
- lblDescription.Visible = descrVisible;
- if (descrVisible)
- lblDescription.ShowDescription(report, tvData.SelectedNode.Tag);
- }
- private void PaymTermCheckBox_CheckedChanged(object sender, EventArgs e)
- {
- if (PaymTermCheckBox.Checked)
- {
- PaymTermPicker.Enabled = false;
- }
- else
- {
- PaymTermPicker.Enabled = true;
- }
- }
- private void BirthDateCheckBox_CheckedChanged(object sender, EventArgs e)
- {
- if (BirthDateCheckBox.Checked)
- {
- BirthDatePicker.Enabled = false;
- }
- else
- {
- BirthDatePicker.Enabled = true;
- }
- }
- private void DocDateCheckBox_CheckedChanged(object sender, EventArgs e)
- {
- if (DocDateCheckBox.Checked)
- {
- DocumentDatePicker.Enabled = false;
- }
- else
- {
- DocumentDatePicker.Enabled = true;
- }
- }
- private void QuittDateCheckBox_CheckedChanged(object sender, EventArgs e)
- {
- if (QuittDateCheckBox.Checked)
- {
- QuittDateDatePicker.Enabled = false;
- }
- else
- {
- QuittDateDatePicker.Enabled = true;
- }
- }
- }
- }
|