void buttonPrintInvoiceExchangeRate_Clicked(object sender, EventArgs e) { Guid documentTypeGuid = SettingsApp.XpoOidDocumentFinanceTypeInvoice; Guid customerGuid = new Guid("6223881a-4d2d-4de4-b254-f8529193da33"); Guid currencyGuid = new Guid("28d692ad-0083-11e4-96ce-00ff2353398c"); cfg_configurationcurrency currency = (cfg_configurationcurrency)GlobalFramework.SessionXpo.GetObjectByKey(typeof(cfg_configurationcurrency), currencyGuid); //Article:Line1 Guid article1Guid = new Guid("72e8bde8-d03b-4637-90f1-fcb265658af0"); fin_article article1 = (fin_article)GlobalFramework.SessionXpo.GetObjectByKey(typeof(fin_article), article1Guid); //Article:Line2 Guid article2Guid = new Guid("78638720-e728-4e96-8643-6d6267ff817b"); fin_article article2 = (fin_article)GlobalFramework.SessionXpo.GetObjectByKey(typeof(fin_article), article2Guid); //Place Guid placeGuid = new Guid("dd5a3869-db52-42d4-bbed-dec4adfaf62b"); //Table Guid tableGuid = new Guid("64d417f6-ff97-4f4b-bded-4bc9bf9f18d9"); //Get ArticleBag ArticleBag articleBag = new ArticleBag(); articleBag.Add(article1, placeGuid, tableGuid, PriceType.Price1, 100.0m); articleBag.Add(article2, placeGuid, tableGuid, PriceType.Price1, 1.0m); //Prepare ProcessFinanceDocumentParameter ProcessFinanceDocumentParameter processFinanceDocumentParameter = new ProcessFinanceDocumentParameter( documentTypeGuid, articleBag) { Customer = customerGuid, SourceMode = PersistFinanceDocumentSourceMode.CustomArticleBag, Currency = currencyGuid, ExchangeRate = currency.ExchangeRate }; fin_documentfinancemaster resultDocument = FrameworkCalls.PersistFinanceDocument(SourceWindow, processFinanceDocumentParameter); }
//XpoMode public TreeViewConfigurationCurrency(Window pSourceWindow, XPGuidObject pDefaultValue, CriteriaOperator pXpoCriteria, Type pDialogType, GenericTreeViewMode pGenericTreeViewMode = GenericTreeViewMode.Default, GenericTreeViewNavigatorMode pGenericTreeViewNavigatorMode = GenericTreeViewNavigatorMode.Default) { //Init Vars Type xpoGuidObjectType = typeof(cfg_configurationcurrency); //Override Default Value with Parameter Default Value, this way we can have diferent Default Values for GenericTreeView cfg_configurationcurrency defaultValue = (pDefaultValue != null) ? pDefaultValue as cfg_configurationcurrency : null; //Override Default DialogType with Parameter Dialog Type, this way we can have diferent DialogTypes for GenericTreeView Type typeDialogClass = (pDialogType != null) ? pDialogType : typeof(DialogConfigurationCurrency); //Config int fontGenericTreeViewColumn = Convert.ToInt16(GlobalFramework.Settings["fontGenericTreeViewColumn"]); //Configure columnProperties List <GenericTreeViewColumnProperty> columnProperties = new List <GenericTreeViewColumnProperty>(); columnProperties.Add(new GenericTreeViewColumnProperty("Code") { Title = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_record_code"), MinWidth = 100 }); columnProperties.Add(new GenericTreeViewColumnProperty("Designation") { Title = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_designation"), Expand = true }); columnProperties.Add(new GenericTreeViewColumnProperty("Acronym") { Title = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_ConfigurationCurrency_Acronym") }); //columnProperties.Add(new GenericTreeViewColumnProperty("ExchangeRate") { // Title = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_exchangerate, // Type = typeof(Decimal), // Alignment = 1.0F // //WIP // //FontDesc = new Pango.FontDescription() { Size = 11 }, // Removed, this will make Trees that use it has diferent row Sizes // //,CellRenderer = new CellRendererText() { Alignment = Pango.Alignment.Right, Xalign = 1.0F } //}); columnProperties.Add(new GenericTreeViewColumnProperty("UpdatedAt") { Title = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_record_date_updated"), MinWidth = 150, MaxWidth = 150 }); //Configure Criteria/XPCollection/Model //CriteriaOperator.Parse("Code >= 100 and Code <= 9999"); CriteriaOperator criteria = pXpoCriteria; XPCollection xpoCollection = new XPCollection(GlobalFramework.SessionXpo, xpoGuidObjectType, criteria); //Call Base Initializer base.InitObject( pSourceWindow, //Pass parameter defaultValue, //Pass parameter pGenericTreeViewMode, //Pass parameter pGenericTreeViewNavigatorMode, //Pass parameter columnProperties, //Created Here xpoCollection, //Created Here typeDialogClass //Created Here ); }
private void UpdateTouchButtonSplitPaymentLabels(TouchButtonSplitPayment touchButtonSplitPayment) { bool debug = false; try { string labelPaymentDetails = string.Empty; ProcessFinanceDocumentParameter processFinanceDocumentParameter = touchButtonSplitPayment.ProcessFinanceDocumentParameter; if (processFinanceDocumentParameter != null) { if (debug) { _log.Debug(Environment.NewLine); } foreach (var item in touchButtonSplitPayment.ArticleBag) { if (debug) { _log.Debug(string.Format("\t[{0}],[{1}],[{2}]", item.Key.Designation, item.Value.Quantity, item.Value.TotalFinal)); } } erp_customer customer = (erp_customer)FrameworkUtils.GetXPGuidObject(typeof(erp_customer), processFinanceDocumentParameter.Customer); fin_configurationpaymentmethod paymentMethod = (fin_configurationpaymentmethod)FrameworkUtils.GetXPGuidObject(typeof(fin_configurationpaymentmethod), processFinanceDocumentParameter.PaymentMethod); cfg_configurationcurrency currency = (cfg_configurationcurrency)FrameworkUtils.GetXPGuidObject(typeof(cfg_configurationcurrency), processFinanceDocumentParameter.Currency); // Compose labelPaymentDetails string totalFinal = FrameworkUtils.DecimalToStringCurrency(processFinanceDocumentParameter.ArticleBag.TotalFinal, currency.Acronym); string totalDelivery = FrameworkUtils.DecimalToStringCurrency(processFinanceDocumentParameter.TotalDelivery, currency.Acronym); string totalChange = FrameworkUtils.DecimalToStringCurrency(processFinanceDocumentParameter.TotalChange, currency.Acronym); string moneyExtra = (paymentMethod.Token.Equals("MONEY")) ? $" : ({totalDelivery}/{totalChange})" : string.Empty; // Override default labelPaymentDetails labelPaymentDetails = $"{customer.Name} : {paymentMethod.Designation} : {totalFinal}{moneyExtra}"; } // Assign to button Reference touchButtonSplitPayment.LabelPaymentDetails.Text = labelPaymentDetails; } catch (Exception ex) { _log.Error(ex.Message, ex); } }
public DocumentFinanceDialogPreview(Window pSourceWindow, DialogFlags pDialogFlags, DocumentFinanceDialogPreviewMode pMode, ArticleBag pArticleBag, cfg_configurationcurrency pConfigurationCurrency) : base(pSourceWindow, pDialogFlags) { //Init Local Vars String windowTitle = string.Empty; Size windowSize = new Size(700, 360); String fileDefaultWindowIcon = FrameworkUtils.OSSlash(GlobalFramework.Path["images"] + @"Icons\Windows\icon_window_preview.png"); //Parameters _articleBag = pArticleBag; _configurationCurrency = pConfigurationCurrency; //ActionArea ActionAreaButtons actionAreaButtons = new ActionAreaButtons(); if (pMode == DocumentFinanceDialogPreviewMode.Preview) { windowTitle = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_documentfinance_preview_totals_mode_preview"); //ActionArea Buttons TouchButtonIconWithText buttonOk = new TouchButtonIconWithText("touchButtonOk_DialogActionArea", _colorBaseDialogActionAreaButtonBackground, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_button_label_ok"), _fontBaseDialogActionAreaButton, _colorBaseDialogActionAreaButtonFont, _fileActionOK, _sizeBaseDialogActionAreaButtonIcon, _sizeBaseDialogActionAreaButton.Width, _sizeBaseDialogActionAreaButton.Height); //ActionArea actionAreaButtons.Add(new ActionAreaButton(buttonOk, ResponseType.Ok)); } else { windowTitle = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_documentfinance_preview_totals_mode_confirm"); //ActionArea Buttons TouchButtonIconWithText buttonNo = ActionAreaButton.FactoryGetDialogButtonType(PosBaseDialogButtonType.No); TouchButtonIconWithText buttonYes = ActionAreaButton.FactoryGetDialogButtonType(PosBaseDialogButtonType.Yes); //ActionArea actionAreaButtons.Add(new ActionAreaButton(buttonYes, ResponseType.Yes)); actionAreaButtons.Add(new ActionAreaButton(buttonNo, ResponseType.No)); } windowTitle = string.Format("{0} [{1}]", windowTitle, _configurationCurrency.Acronym); InitUI(); //Init Object this.InitObject(this, pDialogFlags, fileDefaultWindowIcon, windowTitle, windowSize, _alignmentWindow, actionAreaButtons); }
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Methods public string GetPageTitle(int pPageIndex) { string result = string.Empty; result = string.Format("{0} :: {1}", resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_new_finance_document"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], string.Format("window_title_dialog_document_finance_page{0}", pPageIndex + 1)) ); //Enable/Disable ClearCustomer if (_buttonClearCustomer != null) { _buttonClearCustomer.Visible = (_pagePad2 != null && pPageIndex == 1); } //Enable/Disable Preview if (_pagePad3 != null && _pagePad3.ArticleBag != null) { //Reference cfg_configurationcurrency configurationCurrency = _pagePad1.EntryBoxSelectConfigurationCurrency.Value; //Always Update Totals before Show Title _pagePad3.ArticleBag.DiscountGlobal = FrameworkUtils.StringToDecimal(_pagePad2.EntryBoxCustomerDiscount.EntryValidation.Text); _pagePad3.ArticleBag.UpdateTotals(); if (_pagePad3.ArticleBag.TotalFinal > 0) { result += string.Format(" : {0}", FrameworkUtils.DecimalToStringCurrency(_pagePad3.ArticleBag.TotalFinal * configurationCurrency.ExchangeRate, configurationCurrency.Acronym)); //Enable or Disabled Preview Button _buttonPreview.Visible = true; } else { //Enable or Disabled Preview Button _buttonPreview.Visible = false; } } return(result); }
private void InitUI(bool useDataDemo) { //Get Values from Config Guid systemCountry; Guid systemCurrency; //bool debug = false; bool useDatabaseDataDemo = Convert.ToBoolean(GlobalFramework.Settings["useDatabaseDataDemo"]); if (GlobalFramework.Settings["xpoOidConfigurationCountrySystemCountry"] != string.Empty) { systemCountry = new Guid(GlobalFramework.Settings["xpoOidConfigurationCountrySystemCountry"]); } else { systemCountry = SettingsApp.XpoOidConfigurationCountryPortugal; } if (GlobalFramework.Settings["xpoOidConfigurationCurrencySystemCurrency"] != string.Empty) { systemCurrency = new Guid(GlobalFramework.Settings["xpoOidConfigurationCurrencySystemCurrency"]); } else { systemCurrency = SettingsApp.XpoOidConfigurationCurrencyEuro; } //Init Inital Values cfg_configurationcountry intialValueConfigurationCountry = (cfg_configurationcountry)FrameworkUtils.GetXPGuidObject(typeof(cfg_configurationcountry), systemCountry); cfg_configurationcurrency intialValueConfigurationCurrency = (cfg_configurationcurrency)FrameworkUtils.GetXPGuidObject(typeof(cfg_configurationcurrency), systemCurrency); try { //Init dictionary for Parameters + Widgets _dictionaryObjectBag = new Dictionary <cfg_configurationpreferenceparameter, EntryBoxValidation>(); //Pack VBOX VBox vbox = new VBox(true, 2) { WidthRequest = 300 }; //Country CriteriaOperator criteriaOperatorSystemCountry = CriteriaOperator.Parse("(Disabled IS NULL OR Disabled <> 1) AND (RegExFiscalNumber IS NOT NULL)"); _entryBoxSelectSystemCountry = new XPOEntryBoxSelectRecordValidation <cfg_configurationcountry, TreeViewConfigurationCountry>(this, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_country"), "Designation", "Oid", intialValueConfigurationCountry, criteriaOperatorSystemCountry, SettingsApp.RegexGuid, true); _entryBoxSelectSystemCountry.EntryValidation.IsEditable = false; _entryBoxSelectSystemCountry.EntryValidation.Validate(_entryBoxSelectSystemCountry.Value.Oid.ToString()); //Disabled, Now Country and Currency are disabled _entryBoxSelectSystemCountry.ButtonSelectValue.Sensitive = true; _entryBoxSelectSystemCountry.EntryValidation.Sensitive = true; _entryBoxSelectSystemCountry.ClosePopup += delegate { ////Require to Update RegEx _entryBoxZipCode.EntryValidation.Rule = _entryBoxSelectSystemCountry.Value.RegExZipCode; _entryBoxZipCode.EntryValidation.Validate(); //Require to Update RegEx and Criteria to filter Country Clients Only _entryBoxFiscalNumber.EntryValidation.Rule = _entryBoxSelectSystemCountry.Value.RegExFiscalNumber; _entryBoxFiscalNumber.EntryValidation.Validate(); if (_entryBoxFiscalNumber.EntryValidation.Validated) { bool isValidFiscalNumber = FiscalNumber.IsValidFiscalNumber(_entryBoxFiscalNumber.EntryValidation.Text, _entryBoxSelectSystemCountry.Value.Code2); _entryBoxFiscalNumber.EntryValidation.Validated = isValidFiscalNumber; } //Call Main Validate Validate(); }; //Currency CriteriaOperator criteriaOperatorSystemCurrency = CriteriaOperator.Parse("(Disabled IS NULL OR Disabled <> 1)"); _entryBoxSelectSystemCurrency = new XPOEntryBoxSelectRecordValidation <cfg_configurationcurrency, TreeViewConfigurationCurrency>(this, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_currency"), "Designation", "Oid", intialValueConfigurationCurrency, criteriaOperatorSystemCurrency, SettingsApp.RegexGuid, true); _entryBoxSelectSystemCurrency.EntryValidation.IsEditable = false; _entryBoxSelectSystemCurrency.EntryValidation.Validate(_entryBoxSelectSystemCurrency.Value.Oid.ToString()); //Disabled, Now Country and Currency are disabled //_entryBoxSelectSystemCurrency.ButtonSelectValue.Sensitive = false; //_entryBoxSelectSystemCurrency.EntryValidation.Sensitive = false; _entryBoxSelectSystemCurrency.ClosePopup += delegate { //Call Main Validate Validate(); }; //Add to Vbox vbox.PackStart(_entryBoxSelectSystemCountry, true, true, 0); vbox.PackStart(_entryBoxSelectSystemCurrency, true, true, 0); //Start Render Dynamic Inputs CriteriaOperator criteriaOperator = CriteriaOperator.Parse("(Disabled = 0 OR Disabled is NULL) AND (FormType = 1 AND FormPageNo = 1)"); SortProperty[] sortProperty = new SortProperty[2]; sortProperty[0] = new SortProperty("Ord", SortingDirection.Ascending); XPCollection xpCollection = new XPCollection(GlobalFramework.SessionXpo, typeof(cfg_configurationpreferenceparameter), criteriaOperator, sortProperty); if (xpCollection.Count > 0) { string label = string.Empty; string regEx = string.Empty; object regExObj = null; bool required = false; foreach (cfg_configurationpreferenceparameter item in xpCollection) { label = (item.ResourceString != null && resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], item.ResourceString) != null) ? resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], item.ResourceString) : string.Empty; regExObj = FrameworkUtils.GetFieldValueFromType(typeof(SettingsApp), item.RegEx); regEx = (regExObj != null) ? regExObj.ToString() : string.Empty; required = Convert.ToBoolean(item.Required); //Override Db Regex if (item.Token == "COMPANY_POSTALCODE") { regEx = _entryBoxSelectSystemCountry.Value.RegExZipCode; } if (item.Token == "COMPANY_FISCALNUMBER") { regEx = _entryBoxSelectSystemCountry.Value.RegExFiscalNumber; } //IN009295 Start POS - Capital Social com valor por defeito if (item.Token == "COMPANY_STOCK_CAPITAL") { item.Value = "1"; } //Debug //_log.Debug(string.Format("Label: [{0}], RegEx: [{1}], Required: [{2}]", label, regEx, required)); EntryBoxValidation entryBoxValidation = new EntryBoxValidation( this, label, KeyboardMode.AlfaNumeric, regEx, required ) { Name = item.Token }; //Use demo data to fill values if (useDataDemo) { if (item.Token == "COMPANY_NAME") { entryBoxValidation.EntryValidation.Text = "LogicPulse"; } if (item.Token == "COMPANY_BUSINESS_NAME") { entryBoxValidation.EntryValidation.Text = "Technologies, Ltda"; } if (item.Token == "COMPANY_ADDRESS") { entryBoxValidation.EntryValidation.Text = "Rua Capitão Salgueiro Maia, 7"; } if (item.Token == "COMPANY_CITY") { entryBoxValidation.EntryValidation.Text = "Figueira da Foz"; } if (item.Token == "COMPANY_POSTALCODE") { entryBoxValidation.EntryValidation.Text = "3080-000"; } if (item.Token == "COMPANY_COUNTRY") { entryBoxValidation.EntryValidation.Text = "Portugal"; } if (item.Token == "COMPANY_FISCALNUMBER") { entryBoxValidation.EntryValidation.Text = "999999990"; } if (item.Token == "COMPANY_STOCK_CAPITAL") { entryBoxValidation.EntryValidation.Text = "1000"; } if (item.Token == "COMPANY_EMAIL") { entryBoxValidation.EntryValidation.Text = "*****@*****.**"; } if (item.Token == "COMPANY_WEBSITE") { entryBoxValidation.EntryValidation.Text = "www.logicpulse.com"; } } //Only Assign Value if Debugger Attached: Now the value for normal user is cleaned in Init Database, we keep this code here, may be usefull //if (Debugger.IsAttached == true || useDatabaseDataDemo && !useDataDemo) { entryBoxValidation.EntryValidation.Text = item.Value; } //if (Debugger.IsAttached == true) //{ // if (debug) _log.Debug(String.Format("[{0}:{1}]:item.Value: [{2}], entryBoxValidation.EntryValidation.Text: [{3}]", Debugger.IsAttached == true, useDatabaseDataDemo, item.Value, entryBoxValidation.EntryValidation.Text)); //} //Assign shared Event entryBoxValidation.EntryValidation.Changed += EntryValidation_Changed; //If is ZipCode Assign it to _entryBoxZipCode Reference if (item.Token == "COMPANY_POSTALCODE") { _entryBoxZipCode = entryBoxValidation; _entryBoxZipCode.EntryValidation.Rule = _entryBoxSelectSystemCountry.Value.RegExZipCode; } //If is FiscalNumber Assign it to entryBoxSelectCustomerFiscalNumber Reference else if (item.Token == "COMPANY_FISCALNUMBER") { _entryBoxFiscalNumber = entryBoxValidation; _entryBoxFiscalNumber.EntryValidation.Rule = _entryBoxSelectSystemCountry.Value.RegExFiscalNumber; } if (item.Token == "COMPANY_TAX_ENTITY") { entryBoxValidation.EntryValidation.Text = "Global"; } //Call Validate entryBoxValidation.EntryValidation.Validate(); //Pack and Add to ObjectBag vbox.PackStart(entryBoxValidation, true, true, 0); _dictionaryObjectBag.Add(item, entryBoxValidation); } } Viewport viewport = new Viewport() { ShadowType = ShadowType.None }; viewport.Add(vbox); _scrolledWindow = new ScrolledWindow(); _scrolledWindow.ShadowType = ShadowType.EtchedIn; _scrolledWindow.SetPolicy(PolicyType.Automatic, PolicyType.Automatic); _scrolledWindow.Add(viewport); viewport.ResizeMode = ResizeMode.Parent; _scrolledWindow.ResizeMode = ResizeMode.Parent; } catch (Exception ex) { _log.Error(ex.Message, ex); } }
//Totals, with TotalDelivery and TotalChange private void PrintMasterTotals() { try { //Init DataTable DataRow dataRow = null; DataTable dataTable = new DataTable(); dataTable.Columns.Add(new DataColumn("Label", typeof(string))); dataTable.Columns.Add(new DataColumn("Value", typeof(string))); //Add Row : Discount if (_documentFinanceMasterList[0].Discount > 0.0m) { dataRow = dataTable.NewRow(); dataRow[0] = string.Format("{0} (%)", resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_documentfinance_discount_customer")); /* IN009211 */ dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].Discount); dataTable.Rows.Add(dataRow); } //Add Row : TotalDiscount if (_documentFinanceMasterList[0].TotalDiscount > 0.0m) { dataRow = dataTable.NewRow(); dataRow[0] = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_documentfinance_total_discount"); /* IN009211 */ dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalDiscount * _documentFinanceMasterList[0].ExchangeRate); dataTable.Rows.Add(dataRow); } /* #TODO IN009214 */ //Add Row : Discount PaymentCondition //WIP Always 0 //Add Row : TotalNet dataRow = dataTable.NewRow(); dataRow[0] = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_totalnet"); /* IN009211 */ //dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalGross * _documentFinanceMasterList[0].ExchangeRate); dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalNet * _documentFinanceMasterList[0].ExchangeRate); dataTable.Rows.Add(dataRow); //Add Row : TotalTax dataRow = dataTable.NewRow(); dataRow[0] = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_documentfinance_totaltax"); /* IN009211 */ dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalTax * _documentFinanceMasterList[0].ExchangeRate); dataTable.Rows.Add(dataRow); //Add Row : TotalFinal dataRow = dataTable.NewRow(); dataRow[0] = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_documentfinance_totalfinal"); dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalFinal * _documentFinanceMasterList[0].ExchangeRate); dataTable.Rows.Add(dataRow); //If Simplified Invoice, Payment Method MONEY and has Total Change, add it if (new Guid(_documentFinanceMasterList[0].DocumentType) == SettingsApp.XpoOidDocumentFinanceTypeSimplifiedInvoice && _documentFinanceMasterList[0].PaymentMethodToken == "MONEY" && _documentFinanceMasterList[0].TotalChange > 0 ) { //Blank Row, to separate from Main Totals dataRow = dataTable.NewRow(); dataRow[0] = string.Empty; dataRow[1] = string.Empty; dataTable.Rows.Add(dataRow); //TotalDelivery dataRow = dataTable.NewRow(); dataRow[0] = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_total_deliver"); dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalDelivery * _documentFinanceMasterList[0].ExchangeRate); dataTable.Rows.Add(dataRow); //TotalChange dataRow = dataTable.NewRow(); dataRow[0] = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_total_change"); dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalChange * _documentFinanceMasterList[0].ExchangeRate); dataTable.Rows.Add(dataRow); } /* IN009055 - related to IN005976 for Mozambique deployment */ if (SettingsApp.XpoOidConfigurationCountryMozambique.Equals(SettingsApp.ConfigurationSystemCountry.Oid)) { cfg_configurationcurrency defaultCurrencyForExchangeRate = (cfg_configurationcurrency)FrameworkUtils.GetXPGuidObject( GlobalFramework.SessionXpo, typeof(cfg_configurationcurrency), SettingsApp.XpoOidConfigurationCurrencyUSDollar); dataRow = dataTable.NewRow(); dataRow[0] = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_printer_thermal_total_default_currency"), defaultCurrencyForExchangeRate.Acronym); dataRow[1] = FrameworkUtils.DecimalToString(_documentFinanceMasterList[0].TotalFinal * defaultCurrencyForExchangeRate.ExchangeRate);/* TO DO : IN009055 - this causes total equals 0,00 when low product price */ dataTable.Rows.Add(dataRow); } //Configure Ticket Column Properties List <TicketColumn> columns = new List <TicketColumn>(); columns.Add(new TicketColumn("Label", "", Convert.ToInt16(_maxCharsPerLineNormal / 2) - 2, TicketColumnsAlign.Left)); columns.Add(new TicketColumn("Value", "", Convert.ToInt16(_maxCharsPerLineNormal / 2) - 2, TicketColumnsAlign.Right)); //TicketTable(DataTable pDataTable, List<TicketColumn> pColumnsProperties, int pTableWidth) TicketTable ticketTable = new TicketTable(dataTable, columns, _thermalPrinterGeneric.MaxCharsPerLineNormalBold); //Custom Print Loop, to Print all Table Rows, and Detect Rows to Print in DoubleHeight (TotalChange(4) and Total(7)) List <string> table = ticketTable.GetTable(); WriteLineTextMode rowTextMode; //Dynamic Print All, some Rows ommited/bold(Table Header, TotalDocument,TotalChange) for (int i = 1; i < table.Count; i++) { //Prepare TextMode Based on Row rowTextMode = (i == 5 || i == 8) ? WriteLineTextMode.DoubleHeightBold : WriteLineTextMode.Bold; //Print Row _thermalPrinterGeneric.WriteLine(table[i], rowTextMode); } //Line Feed _thermalPrinterGeneric.LineFeed(); } catch (Exception ex) { _log.Debug("void PrintMasterTotals() :: Thermal Printer: " + ex.Message, ex); throw ex; } }
private void InitUI() { //Initial Values fin_configurationpaymentmethod initialValueConfigurationPaymentMethod = (fin_configurationpaymentmethod)FrameworkUtils.GetXPGuidObject(typeof(fin_configurationpaymentmethod), SettingsApp.XpoOidConfigurationPaymentMethodDefaultInvoicePaymentMethod); cfg_configurationcurrency intialValueConfigurationCurrency = SettingsApp.ConfigurationSystemCurrency; string initialPaymentDate = FrameworkUtils.CurrentDateTimeAtomic().ToString(SettingsApp.DateTimeFormat); /* IN009142 * * Valid Payment Methods for "Liquidar Faturas": * * - CREDIT_CARD * - DEBIT_CARD * - BANK_CHECK * - CASH_MACHINE * - MONEY * - BANK_TRANSFER */ string filterValidPaymentMethod = @" ( Token = 'CREDIT_CARD' OR Token = 'DEBIT_CARD' OR Token = 'BANK_CHECK' OR Token = 'CASH_MACHINE' OR Token = 'MONEY' OR Token = 'BANK_TRANSFER' )"; CriteriaOperator criteriaOperatorConfigurationPaymentMethod = CriteriaOperator.Parse(string.Format("(Disabled IS NULL OR Disabled <> 1) AND Oid <> '{0}' AND {1}", SettingsApp.XpoOidConfigurationPaymentMethodCurrentAccount.ToString(), filterValidPaymentMethod)); _entryBoxSelectConfigurationPaymentMethod = new XPOEntryBoxSelectRecordValidation <fin_configurationpaymentmethod, TreeViewConfigurationPaymentMethod>(_sourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_payment_method"), "Designation", "Oid", initialValueConfigurationPaymentMethod, criteriaOperatorConfigurationPaymentMethod, SettingsApp.RegexGuid, true); _entryBoxSelectConfigurationPaymentMethod.EntryValidation.Changed += delegate { Validate(); }; _entryBoxSelectConfigurationPaymentMethod.EntryValidation.IsEditable = false; //ConfigurationCurrency CriteriaOperator criteriaOperatorConfigurationCurrency = CriteriaOperator.Parse(string.Format("(Disabled IS NULL OR Disabled <> 1) AND (ExchangeRate IS NOT NULL OR Oid = '{0}')", SettingsApp.ConfigurationSystemCurrency.Oid.ToString())); _entryBoxSelectConfigurationCurrency = new XPOEntryBoxSelectRecordValidation <cfg_configurationcurrency, TreeViewConfigurationCurrency>(_sourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_currency"), "Designation", "Oid", intialValueConfigurationCurrency, criteriaOperatorConfigurationCurrency, SettingsApp.RegexGuid, false); _entryBoxSelectConfigurationCurrency.EntryValidation.Changed += _entryBoxSelectConfigurationCurrency_Changed; _entryBoxSelectConfigurationCurrency.EntryValidation.IsEditable = false; //PaymentAmount /* IN009183 */ _entryPaymentAmount = new EntryBoxValidation(_sourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_total_deliver"), KeyboardMode.Numeric, SettingsApp.RegexDecimalGreaterEqualThanZeroFinancial, true); _entryPaymentAmount.EntryValidation.Text = FrameworkUtils.DecimalToString(_paymentAmountTotal); _entryPaymentAmount.EntryValidation.Validate(); _entryPaymentAmount.EntryValidation.Changed += delegate { Validate(); UpdateTitleBar(); }; //PaymentDate _entryBoxPaymentDate = new EntryBoxValidation(_sourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_date"), KeyboardMode.Alfa, SettingsApp.RegexDateTime, true); _entryBoxPaymentDate.EntryValidation.Text = initialPaymentDate; _entryBoxPaymentDate.EntryValidation.Validate(); _entryBoxPaymentDate.EntryValidation.Changed += delegate { Validate(); }; //PaymentNotes _entryBoxDocumentPaymentNotes = new EntryBoxValidation(_sourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_notes"), KeyboardMode.Alfa, SettingsApp.RegexAlfaNumericExtended, false); _entryBoxDocumentPaymentNotes.EntryValidation.Changed += delegate { Validate(); }; //Pack VBOX VBox vbox = new VBox(false, 0); vbox.PackStart(_entryBoxSelectConfigurationPaymentMethod, true, true, 0); vbox.PackStart(_entryBoxSelectConfigurationCurrency, false, false, 0); vbox.PackStart(_entryPaymentAmount, false, false, 0); vbox.PackStart(_entryBoxPaymentDate, false, false, 0); vbox.PackStart(_entryBoxDocumentPaymentNotes, false, false, 0); vbox.PackStart(_entryBoxDocumentPaymentNotes, false, false, 0); vbox.WidthRequest = _windowSize.Width - 14; //Put in FinishContent _fixedContent = new Fixed(); _fixedContent.Put(vbox, 0, 0); }
public PosDocumentFinanceArticleDialog(Window pSourceWindow, GenericTreeViewDataTable pTreeView, DialogFlags pDialogFlags, DialogMode pDialogMode, DataRow pDataSourceRow) : base(pSourceWindow, pDialogFlags, pDialogMode, pDataSourceRow) { //Parameters _sourceWindow = pSourceWindow; _dialogMode = pDialogMode; _dataSourceRow = pDataSourceRow; //References _posDocumentFinanceDialog = (_sourceWindow as PosDocumentFinanceDialog); _currencyDisplay = (_posDocumentFinanceDialog.PagePad.Pages[0] as DocumentFinanceDialogPage1).EntryBoxSelectConfigurationCurrency.Value; //Require to Update ExchangeRate after create Database _currencyDisplay.Reload(); //Get Reference for documentFinanceType _documentFinanceType = ((_sourceWindow as PosDocumentFinanceDialog).PagePad.Pages[0] as DocumentFinanceDialogPage1).EntryBoxSelectDocumentFinanceType.Value; //Init Local Vars String windowTitle = resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_insert_articles"); //Get Default System Currency _currencyDefaultSystem = SettingsApp.ConfigurationSystemCurrency; //Consignation Invoice default values _vatRateConsignationInvoice = (fin_configurationvatrate)GlobalFramework.SessionXpo.GetObjectByKey(typeof(fin_configurationvatrate), SettingsApp.XpoOidConfigurationVatRateDutyFree); _vatRateConsignationInvoiceExemptionReason = (fin_configurationvatexemptionreason)GlobalFramework.SessionXpo.GetObjectByKey(typeof(fin_configurationvatexemptionreason), SettingsApp.XpoOidConfigurationVatExemptionReasonM99); //TODO:THEME _windowSize = new Size(760, 360); String fileDefaultWindowIcon = FrameworkUtils.OSSlash(GlobalFramework.Path["images"] + @"Icons\Windows\icon_window_finance_article.png"); //Get Discount from Select Customer _discountGlobal = FrameworkUtils.StringToDecimal(((pSourceWindow as PosDocumentFinanceDialog).PagePad.Pages[1] as DocumentFinanceDialogPage2).EntryBoxCustomerDiscount.EntryValidation.Text); //Get PriceType from Customer var customerObject = ((pSourceWindow as PosDocumentFinanceDialog).PagePad.Pages[1] as DocumentFinanceDialogPage2).EntryBoxSelectCustomerName; if (customerObject.Value != null) { Guid customerOid = customerObject.Value.Oid; _customer = (erp_customer)GlobalFramework.SessionXpo.GetObjectByKey(typeof(erp_customer), customerOid); } //ActionArea Buttons _buttonOk = ActionAreaButton.FactoryGetDialogButtonType(PosBaseDialogButtonType.Ok); _buttonCancel = ActionAreaButton.FactoryGetDialogButtonType(PosBaseDialogButtonType.Cancel); //ActionArea ActionAreaButtons actionAreaButtons = new ActionAreaButtons(); actionAreaButtons.Add(new ActionAreaButton(_buttonOk, ResponseType.Ok)); actionAreaButtons.Add(new ActionAreaButton(_buttonCancel, ResponseType.Cancel)); //Init Content Fixed fixedContent = new Fixed(); //Init Transport Documents Lists _listSaftDocumentType.Add(SettingsApp.XpoOidDocumentFinanceTypeDeliveryNote.ToString()); _listSaftDocumentType.Add(SettingsApp.XpoOidDocumentFinanceTypeTransportationGuide.ToString()); _listSaftDocumentType.Add(SettingsApp.XpoOidDocumentFinanceTypeOwnAssetsDriveGuide.ToString()); _listSaftDocumentType.Add(SettingsApp.XpoOidDocumentFinanceTypeConsignmentGuide.ToString()); _listSaftDocumentType.Add(SettingsApp.XpoOidDocumentFinanceTypeReturnGuide.ToString()); //Init Components InitUI(); //Put fixedContent.Put(_vboxEntrys, 0, 0); //Init Object this.InitObject(this, pDialogFlags, fileDefaultWindowIcon, windowTitle, _windowSize, fixedContent, actionAreaButtons); }