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); //ConfigurationPaymentMethod string filterValidPaymentMethod = "(Token = 'CREDIT_CARD' OR Token = 'BANK_CHECK' OR Token = 'MONEY' OR Token = 'BANK_TRANSFER' OR Token = 'CASH_MACHINE' OR Token = 'VISA' OR Token = 'OTHER')"; 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, Resx.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, Resx.global_currency, "Designation", "Oid", intialValueConfigurationCurrency, criteriaOperatorConfigurationCurrency, SettingsApp.RegexGuid, false); _entryBoxSelectConfigurationCurrency.EntryValidation.Changed += _entryBoxSelectConfigurationCurrency_Changed; _entryBoxSelectConfigurationCurrency.EntryValidation.IsEditable = false; //PaymentAmount _entryPaymentAmount = new EntryBoxValidation(_sourceWindow, Resx.global_total_deliver, KeyboardMode.Numeric, SettingsApp.RegexDecimalGreaterEqualThanZero, true); _entryPaymentAmount.EntryValidation.Text = FrameworkUtils.DecimalToString(_paymentAmountTotal); _entryPaymentAmount.EntryValidation.Validate(); _entryPaymentAmount.EntryValidation.Changed += delegate { Validate(); UpdateTitleBar(); }; //PaymentDate _entryBoxPaymentDate = new EntryBoxValidation(_sourceWindow, Resx.global_date, KeyboardMode.Alfa, SettingsApp.RegexDateTime, true); _entryBoxPaymentDate.EntryValidation.Text = initialPaymentDate; _entryBoxPaymentDate.EntryValidation.Validate(); _entryBoxPaymentDate.EntryValidation.Changed += delegate { Validate(); }; //PaymentNotes _entryBoxDocumentPaymentNotes = new EntryBoxValidation(_sourceWindow, Resx.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); }
//XpoMode public TreeViewConfigurationPaymentMethod(Window pSourceWindow, XPGuidObject pDefaultValue, CriteriaOperator pXpoCriteria, Type pDialogType, GenericTreeViewMode pGenericTreeViewMode = GenericTreeViewMode.Default, GenericTreeViewNavigatorMode pGenericTreeViewNavigatorMode = GenericTreeViewNavigatorMode.Default) { //Init Vars Type xpoGuidObjectType = typeof(FIN_ConfigurationPaymentMethod); //Override Default Value with Parameter Default Value, this way we can have diferent Default Values for GenericTreeView FIN_ConfigurationPaymentMethod defaultValue = (pDefaultValue != null) ? pDefaultValue as FIN_ConfigurationPaymentMethod : null; //Override Default DialogType with Parameter Dialog Type, this way we can have diferent DialogTypes for GenericTreeView Type typeDialogClass = (pDialogType != null) ? pDialogType : typeof(DialogConfigurationPaymentMethod); //Configure columnProperties List <GenericTreeViewColumnProperty> columnProperties = new List <GenericTreeViewColumnProperty>(); columnProperties.Add(new GenericTreeViewColumnProperty("Code") { Title = Resx.global_record_code, MinWidth = 100 }); columnProperties.Add(new GenericTreeViewColumnProperty("Designation") { Title = Resx.global_designation, Expand = true }); //columnProperties.Add(new GenericTreeViewColumnProperty("Token") { Title = Resx.global_ConfigurationPaymentMethod_Token, MinWidth = 180 }); columnProperties.Add(new GenericTreeViewColumnProperty("Acronym") { Title = Resx.global_ConfigurationPaymentMethod_Acronym }); //columnProperties.Add(new GenericTreeViewColumnProperty("Symbol") { Title = Resx.global_ConfigurationPaymentMethod_Symbol }); columnProperties.Add(new GenericTreeViewColumnProperty("UpdatedAt") { Title = Resx.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 ); //Protected Records ProtectedRecords.Add(SettingsApp.XpoOidConfigurationPaymentMethodInstantPayment); }
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); } }
private ProcessFinanceDocumentParameter GetFinanceDocumentParameter() { //Always Recreate ArticleBag before contruct ProcessFinanceDocumentParameter _pagePad3.ArticleBag = GetArticleBag(); ERP_Customer customer = null; bool wayBillMode = _pagePad1.EntryBoxSelectDocumentFinanceType.Value.WayBill; object resultObject; resultObject = Utils.SaveOrUpdateCustomer( this, _pagePad2.EntryBoxSelectCustomerName.Value, _pagePad2.EntryBoxSelectCustomerName.EntryValidation.Text, _pagePad2.EntryBoxCustomerAddress.EntryValidation.Text, _pagePad2.EntryBoxCustomerLocality.EntryValidation.Text, _pagePad2.EntryBoxCustomerZipCode.EntryValidation.Text, _pagePad2.EntryBoxCustomerCity.EntryValidation.Text, _pagePad2.EntryBoxCustomerPhone.EntryValidation.Text, _pagePad2.EntryBoxCustomerEmail.EntryValidation.Text, _pagePad2.EntryBoxSelectCustomerCountry.Value, _pagePad2.EntryBoxSelectCustomerFiscalNumber.EntryValidation.Text, _pagePad2.EntryBoxSelectCustomerCardNumber.EntryValidation.Text, FrameworkUtils.StringToDecimal(_pagePad2.EntryBoxCustomerDiscount.EntryValidation.Text), _pagePad2.EntryBoxCustomerNotes.EntryValidation.Text ); if (resultObject.GetType() == typeof(ERP_Customer)) { customer = (ERP_Customer)resultObject; } else { //If error in Save or Update Customer if (resultObject.GetType() == typeof(ConstraintViolationException)) { Exception ex = (Exception)resultObject; ResponseType response = Utils.ShowMessageTouch(_sourceWindow, DialogFlags.DestroyWithParent | DialogFlags.Modal, MessageType.Warning, ButtonsType.Close, Resx.window_title_dialog_exception_error, ex.InnerException.Message); } customer = null; } //Construct ProcessFinanceDocumentParameter ProcessFinanceDocumentParameter result = new ProcessFinanceDocumentParameter( _pagePad1.EntryBoxSelectDocumentFinanceType.Value.Oid, _pagePad3.ArticleBag ) { Customer = (customer != null) ? customer.Oid : Guid.Empty, }; //PaymentConditions if (_pagePad1.EntryBoxSelectConfigurationPaymentCondition.Value != null && _pagePad1.EntryBoxSelectConfigurationPaymentCondition.Value.Oid != new Guid()) { result.PaymentCondition = _pagePad1.EntryBoxSelectConfigurationPaymentCondition.Value.Oid; } //PaymentMethod if (_pagePad1.EntryBoxSelectConfigurationPaymentMethod.Value != null && _pagePad1.EntryBoxSelectConfigurationPaymentMethod.Value.Oid != new Guid()) { result.PaymentMethod = _pagePad1.EntryBoxSelectConfigurationPaymentMethod.Value.Oid; } //TotalDelivery: If Money force TotalDelivery to be equal to TotalFinal if (result.PaymentMethod != null && result.PaymentMethod != new Guid()) { FIN_ConfigurationPaymentMethod paymentMethod = (FIN_ConfigurationPaymentMethod)GlobalFramework.SessionXpo.GetObjectByKey(typeof(FIN_ConfigurationPaymentMethod), result.PaymentMethod); if (paymentMethod.Token == "MONEY") { result.TotalDelivery = _pagePad3.ArticleBag.TotalFinal; } } //Currency if (_pagePad1.EntryBoxSelectConfigurationCurrency.Value.Oid != new Guid()) { result.Currency = _pagePad1.EntryBoxSelectConfigurationCurrency.Value.Oid; result.ExchangeRate = (_pagePad1.EntryBoxSelectConfigurationCurrency.Value.ExchangeRate == 0) ? 1 : _pagePad1.EntryBoxSelectConfigurationCurrency.Value.ExchangeRate; } //DocumentParent if (_pagePad1.EntryBoxSelectSourceDocumentFinance.Value != null && _pagePad1.EntryBoxSelectSourceDocumentFinance.Value.Oid != new Guid()) { result.DocumentParent = _pagePad1.EntryBoxSelectSourceDocumentFinance.Value.Oid; } //SourceMode result.SourceMode = PersistFinanceDocumentSourceMode.CustomArticleBag; //Not Used //SourceOrderMain : Dont have a OrderMain Source //FinanceDocuments //TotalChange //OrderReferences if (_pagePad1.EntryBoxSelectSourceDocumentFinance.Value != null) { List <FIN_DocumentFinanceMaster> orderReferences = new List <FIN_DocumentFinanceMaster>(); orderReferences.Add(_pagePad1.EntryBoxSelectSourceDocumentFinance.Value); result.OrderReferences = orderReferences; } //If in WayBillMode Assign ShipTo and ShipFrom if (wayBillMode) { //ShipTo: Not Used : Address, BuildingNumber, StreetName result.ShipTo = new MovementOfGoodsProperties(); if (_pagePad4.EntryBoxShipToDeliveryID.EntryValidation.Text != string.Empty) { result.ShipTo.DeliveryID = _pagePad4.EntryBoxShipToDeliveryID.EntryValidation.Text; } if (_pagePad4.EntryBoxShipToDeliveryDate.EntryValidation.Text != string.Empty) { result.ShipTo.DeliveryDate = Convert.ToDateTime(_pagePad4.EntryBoxShipToDeliveryDate.EntryValidation.Text); } if (_pagePad4.EntryBoxShipToWarehouseID.EntryValidation.Text != string.Empty) { result.ShipTo.WarehouseID = _pagePad4.EntryBoxShipToWarehouseID.EntryValidation.Text; } if (_pagePad4.EntryBoxShipToLocationID.EntryValidation.Text != string.Empty) { result.ShipTo.LocationID = _pagePad4.EntryBoxShipToLocationID.EntryValidation.Text; } if (_pagePad4.EntryBoxShipToAddressDetail.EntryValidation.Text != string.Empty) { result.ShipTo.AddressDetail = _pagePad4.EntryBoxShipToAddressDetail.EntryValidation.Text; } if (_pagePad4.EntryBoxShipToCity.EntryValidation.Text != string.Empty) { result.ShipTo.City = _pagePad4.EntryBoxShipToCity.EntryValidation.Text; } if (_pagePad4.EntryBoxShipToPostalCode.EntryValidation.Text != string.Empty) { result.ShipTo.PostalCode = _pagePad4.EntryBoxShipToPostalCode.EntryValidation.Text; } if (_pagePad4.EntryBoxShipToRegion.EntryValidation.Text != string.Empty) { result.ShipTo.Region = _pagePad4.EntryBoxShipToRegion.EntryValidation.Text; } if (_pagePad4.EntryBoxSelectShipToCountry.Value.Oid != new Guid()) { result.ShipTo.Country = _pagePad4.EntryBoxSelectShipToCountry.Value.Code2; result.ShipTo.CountryGuid = _pagePad4.EntryBoxSelectShipToCountry.Value.Oid; } //ShipFrom: Not Used : Address, BuildingNumber, StreetName result.ShipFrom = new MovementOfGoodsProperties(); if (_pagePad5.EntryBoxShipFromDeliveryID.EntryValidation.Text != string.Empty) { result.ShipFrom.DeliveryID = _pagePad5.EntryBoxShipFromDeliveryID.EntryValidation.Text; } if (_pagePad5.EntryBoxShipFromDeliveryDate.EntryValidation.Text != string.Empty) { result.ShipFrom.DeliveryDate = Convert.ToDateTime(_pagePad5.EntryBoxShipFromDeliveryDate.EntryValidation.Text); } if (_pagePad5.EntryBoxShipFromWarehouseID.EntryValidation.Text != string.Empty) { result.ShipFrom.WarehouseID = _pagePad5.EntryBoxShipFromWarehouseID.EntryValidation.Text; } if (_pagePad5.EntryBoxShipFromLocationID.EntryValidation.Text != string.Empty) { result.ShipFrom.LocationID = _pagePad5.EntryBoxShipFromLocationID.EntryValidation.Text; } if (_pagePad5.EntryBoxShipFromAddressDetail.EntryValidation.Text != string.Empty) { result.ShipFrom.AddressDetail = _pagePad5.EntryBoxShipFromAddressDetail.EntryValidation.Text; } if (_pagePad5.EntryBoxShipFromCity.EntryValidation.Text != string.Empty) { result.ShipFrom.City = _pagePad5.EntryBoxShipFromCity.EntryValidation.Text; } if (_pagePad5.EntryBoxShipFromPostalCode.EntryValidation.Text != string.Empty) { result.ShipFrom.PostalCode = _pagePad5.EntryBoxShipFromPostalCode.EntryValidation.Text; } if (_pagePad5.EntryBoxShipFromRegion.EntryValidation.Text != string.Empty) { result.ShipFrom.Region = _pagePad5.EntryBoxShipFromRegion.EntryValidation.Text; } if (_pagePad5.EntryBoxSelectShipFromCountry.Value.Oid != new Guid()) { result.ShipFrom.Country = _pagePad5.EntryBoxSelectShipFromCountry.Value.Code2; result.ShipFrom.CountryGuid = _pagePad5.EntryBoxSelectShipFromCountry.Value.Oid; } } //Notes if (_pagePad1.EntryBoxDocumentMasterNotes.EntryValidation.Text != string.Empty) { result.Notes = _pagePad1.EntryBoxDocumentMasterNotes.EntryValidation.Text; } return(result); }
private bool PersistFinanceDocuments() { bool debug = false; int padLeftChars = 10; try { int i = 0; foreach (TouchButtonSplitPayment item in _splitPaymentButtons) { i++; // If have if (item.ProcessFinanceDocumentParameter != null) { if (debug) { _log.Debug(string.Format("TotalFinal: [#{0}]:[{1}]", i, FrameworkUtils.DecimalToStringCurrency(item.ProcessFinanceDocumentParameter.ArticleBag.TotalFinal).PadLeft(padLeftChars, ' ') )); } // PersistFinanceDocument item.DocumentFinanceMaster = FrameworkCalls.PersistFinanceDocument(this, item.ProcessFinanceDocumentParameter); //Update Display if (item.DocumentFinanceMaster != null) { FIN_ConfigurationPaymentMethod paymentMethod = (FIN_ConfigurationPaymentMethod)FrameworkUtils.GetXPGuidObject(typeof(FIN_ConfigurationPaymentMethod), item.ProcessFinanceDocumentParameter.PaymentMethod); if (GlobalApp.UsbDisplay != null) { GlobalApp.UsbDisplay.ShowPayment(paymentMethod.Designation, item.ProcessFinanceDocumentParameter.TotalDelivery, item.ProcessFinanceDocumentParameter.TotalChange); } } } } //If has Working Order if ( GlobalFramework.SessionApp.OrdersMain != null && GlobalFramework.SessionApp.CurrentOrderMainOid != null && GlobalFramework.SessionApp.OrdersMain.ContainsKey(GlobalFramework.SessionApp.CurrentOrderMainOid) ) { // Get Current working orderMain OrderMain currentOrderMain = GlobalFramework.SessionApp.OrdersMain[GlobalFramework.SessionApp.CurrentOrderMainOid]; if (debug) { _log.Debug(string.Format("Working on currentOrderMain.PersistentOid: [{0}]", currentOrderMain.PersistentOid)); } //Get OrderDetail OrderDetail currentOrderDetails = currentOrderMain.OrderTickets[currentOrderMain.CurrentTicketId].OrderDetails; // Get configurationPlace to get Tax POS_ConfigurationPlace configurationPlace = (POS_ConfigurationPlace)GlobalFramework.SessionXpo.GetObjectByKey(typeof(POS_ConfigurationPlace), currentOrderMain.Table.PlaceId); } return(true); } catch (Exception ex) { _log.Error(ex.Message, ex); return(false); } }
private void CalculateTotalPerSplit(ArticleBag articleBag, int numberOfSplits) { bool debug = false; // Calculate final Total Pay per Split _totalPerSplit = articleBag.TotalFinal / numberOfSplits; try { // Always Init ArticleBags foreach (TouchButtonSplitPayment item in _splitPaymentButtons) { item.ArticleBag = new ArticleBag(); } // Init Object to Use priceTax on above Loop //Get Place Objects to extract TaxSellType Normal|TakeWay, Place, Tables etc OrderMain currentOrderMain = GlobalFramework.SessionApp.OrdersMain[GlobalFramework.SessionApp.CurrentOrderMainOid]; POS_ConfigurationPlace configurationPlace = (POS_ConfigurationPlace)GlobalFramework.SessionXpo.GetObjectByKey(typeof(POS_ConfigurationPlace), currentOrderMain.Table.PlaceId); // Loop articleBag, and Add the quantity for Each Split (Total Article Quantity / numberOfSplits) foreach (var article in articleBag) { // Default quantity to add to all Splitters, last one gets the extra Remains ex 0,0000000000001 decimal articleQuantity = (article.Value.Quantity / numberOfSplits); // Store Remain Quantity decimal articleQuantityRemain = article.Value.Quantity; // Check if Total is equal to Origin decimal articleQuantityCheck = 0.0m; decimal articleQuantityCheckModulo = 0.0m; // Reset t int t = 0; foreach (TouchButtonSplitPayment touchButtonSplitPayment in _splitPaymentButtons) { t++; // Discount articleQuantityRemain articleQuantityRemain = articleQuantityRemain - articleQuantity; if (t.Equals(_splitPaymentButtons.Count)) { // Override Default split Quantity, adding extra Remain articleQuantity += articleQuantityRemain; } // Add to articleQuantityCheck articleQuantityCheck += articleQuantity; // Modulo articleQuantityCheckModulo = article.Value.Quantity % articleQuantityCheck; if (debug) { _log.Debug(string.Format("#{0} Designation: [{1}], PriceFinal: [{2}], Quantity: [{3}]:[{4}]:[{5}]:[{6}]:[{7}]", t, article.Key.Designation, article.Value.PriceFinal, article.Value.Quantity, articleQuantity, articleQuantityRemain, articleQuantityCheck, articleQuantityCheckModulo) ); } // ArticleBagKey ArticleBagKey articleBagKey = new ArticleBagKey( article.Key.ArticleOid, article.Key.Designation, article.Key.Price, article.Key.Discount, article.Key.Vat ); //Detect and Assign VatExemptionReason to ArticleBak Key if (article.Key.VatExemptionReasonOid != null && article.Key.VatExemptionReasonOid != Guid.Empty) { articleBagKey.VatExemptionReasonOid = article.Key.VatExemptionReasonOid; } // ArticleBagProperties ArticleBagProperties articleBagProps = articleBagProps = new ArticleBagProperties( configurationPlace.Oid, currentOrderMain.Table.Oid, (PriceType)configurationPlace.PriceType.EnumValue, article.Value.Code, articleQuantity, article.Value.UnitMeasure ); // Add to ArticleBag touchButtonSplitPayment.ArticleBag.Add(articleBagKey, articleBagProps); } } // After have all splitPaymentButtons ArticleBags (End of arraySplit.Count Loop) foreach (TouchButtonSplitPayment item in _splitPaymentButtons) { // Require to Update ProcessFinanceDocumentParameter, like when we Close Payment Window, BEFORE UpdateTouchButtonSplitPaymentLabels // This is to Update UI when we Add/Remove Splits, else Already filled Payments dont Update // Only change ArticleBag if (item.ProcessFinanceDocumentParameter != null) { FIN_ConfigurationPaymentMethod paymentMethod = (FIN_ConfigurationPaymentMethod)FrameworkUtils.GetXPGuidObject(typeof(FIN_ConfigurationPaymentMethod), item.ProcessFinanceDocumentParameter.PaymentMethod); decimal totalDelivery = (paymentMethod.Token.Equals("MONEY")) ? item.ProcessFinanceDocumentParameter.TotalDelivery : item.ArticleBag.TotalFinal; item.ProcessFinanceDocumentParameter = new ProcessFinanceDocumentParameter( item.ProcessFinanceDocumentParameter.DocumentType, item.ArticleBag ) { PaymentMethod = item.ProcessFinanceDocumentParameter.PaymentMethod, PaymentCondition = item.ProcessFinanceDocumentParameter.PaymentCondition, Customer = item.ProcessFinanceDocumentParameter.Customer, TotalDelivery = totalDelivery, // Require to Recalculate TotalChange TotalChange = totalDelivery - item.ArticleBag.TotalFinal }; } // Always Update all Buttons, with and without ProcessFinanceDocumentParameter UpdateTouchButtonSplitPaymentLabels(item); // Update Window Title //if (WindowTitle != null) WindowTitle = string.Format(Resx.window_title_dialog_split_payment, numberOfSplits, FrameworkUtils.DecimalToStringCurrency(totalFinal)); if (WindowTitle != null) { WindowTitle = string.Format(Resx.window_title_dialog_split_payment, numberOfSplits, FrameworkUtils.DecimalToStringCurrency(_totalPerSplit)); } } } catch (Exception ex) { _log.Error(ex.Message, ex); } }
public PosPaymentsDialog(Window pSourceWindow, DialogFlags pDialogFlags, ArticleBag pArticleBag, bool pEnablePartialPaymentButtons, bool pEnableCurrentAccountButton, bool pSkipPersistFinanceDocument, ProcessFinanceDocumentParameter pProcessFinanceDocumentParameter, string pSelectedPaymentMethodButtonName) : base(pSourceWindow, pDialogFlags, false) { try { //Init Local Vars _sourceWindow = pSourceWindow; string windowTitle = Resx.window_title_dialog_payments; //TODO:THEME Size windowSize = new Size(598, 620); string fileDefaultWindowIcon = FrameworkUtils.OSSlash(GlobalFramework.Path["images"] + @"Icons\Windows\icon_window_payments.png"); //Parameters _articleBagFullPayment = pArticleBag; _skipPersistFinanceDocument = pSkipPersistFinanceDocument; _processFinanceDocumentParameter = pProcessFinanceDocumentParameter; bool enablePartialPaymentButtons = pEnablePartialPaymentButtons; bool enableCurrentAccountButton = pEnableCurrentAccountButton; if (enablePartialPaymentButtons) { enablePartialPaymentButtons = (_articleBagFullPayment.TotalQuantity > 1) ? true : false; } //Files string fileIconClearCustomer = FrameworkUtils.OSSlash(GlobalFramework.Path["images"] + @"Icons\icon_pos_nav_delete.png"); string fileIconFullPayment = FrameworkUtils.OSSlash(GlobalFramework.Path["images"] + @"Icons\icon_pos_payment_full.png"); string fileIconPartialPayment = FrameworkUtils.OSSlash(GlobalFramework.Path["images"] + @"Icons\icon_pos_payment_partial.png"); //Colors Color colorPosPaymentsDialogTotalPannelBackground = FrameworkUtils.StringToColor(GlobalFramework.Settings["colorPosPaymentsDialogTotalPannelBackground"]); //Objects _intialValueConfigurationCountry = SettingsApp.ConfigurationSystemCountry; //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Payment Buttons //Get Custom Select Data string executeSql = @"SELECT Oid, Token, ResourceString FROM fin_configurationpaymentmethod ORDER BY Ord;"; XPSelectData xPSelectData = FrameworkUtils.GetSelectedDataFromQuery(executeSql); //Get Required XpObjects from Selected Data FIN_ConfigurationPaymentMethod xpoMoney = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "MONEY"); FIN_ConfigurationPaymentMethod xpoCheck = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "BANK_CHECK"); FIN_ConfigurationPaymentMethod xpoMB = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "CASH_MACHINE"); FIN_ConfigurationPaymentMethod xpoCreditCard = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "CREDIT_CARD"); FIN_ConfigurationPaymentMethod xpoVisa = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "VISA"); FIN_ConfigurationPaymentMethod xpoCurrentAccount = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "CURRENT_ACCOUNT"); FIN_ConfigurationPaymentMethod xpoCustomerCard = (FIN_ConfigurationPaymentMethod)xPSelectData.GetXPGuidObjectFromField(typeof(FIN_ConfigurationPaymentMethod), "Token", "CUSTOMER_CARD"); //Instantiate Buttons TouchButtonIconWithText buttonMoney = new TouchButtonIconWithText("touchButtonMoney_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoMoney.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoMoney.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoMoney.Oid, Sensitive = (xpoMoney.Disabled) ? false : true }; TouchButtonIconWithText buttonCheck = new TouchButtonIconWithText("touchButtonCheck_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoCheck.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoCheck.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoCheck.Oid, Sensitive = (xpoCheck.Disabled) ? false : true }; TouchButtonIconWithText buttonMB = new TouchButtonIconWithText("touchButtonMB_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoMB.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoMB.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoMB.Oid, Sensitive = (xpoMB.Disabled) ? false : true }; TouchButtonIconWithText buttonCreditCard = new TouchButtonIconWithText("touchButtonCreditCard_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoCreditCard.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoCreditCard.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoCreditCard.Oid, Sensitive = (xpoCreditCard.Disabled) ? false : true }; TouchButtonIconWithText buttonVisa = new TouchButtonIconWithText("touchButtonVisa_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoVisa.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoVisa.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoVisa.Oid, Sensitive = (xpoVisa.Disabled) ? false : true }; TouchButtonIconWithText buttonCurrentAccount = new TouchButtonIconWithText("touchButtonCurrentAccount_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoCurrentAccount.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoCurrentAccount.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoCurrentAccount.Oid, Sensitive = (xpoCurrentAccount.Disabled) ? false : true }; TouchButtonIconWithText buttonCustomerCard = new TouchButtonIconWithText("touchButtonCustomerCard_Green", _colorBaseDialogDefaultButtonBackground, Resx.ResourceManager.GetString(xpoCustomerCard.ResourceString), _fontBaseDialogButton, _colorBaseDialogDefaultButtonFont, FrameworkUtils.OSSlash(string.Format("{0}{1}", GlobalFramework.Path["images"], xpoCustomerCard.ButtonIcon)), _sizeBaseDialogDefaultButtonIcon, _sizeBaseDialogDefaultButton.Width, _sizeBaseDialogDefaultButton.Height) { CurrentButtonOid = xpoCustomerCard.Oid, Sensitive = (xpoCustomerCard.Disabled) ? false : true }; //Secondary Buttons //Events buttonMoney.Clicked += buttonMoney_Clicked; buttonCheck.Clicked += buttonCheck_Clicked; buttonMB.Clicked += buttonMB_Clicked; buttonCreditCard.Clicked += buttonCredit_Clicked; buttonVisa.Clicked += buttonVisa_Clicked; buttonCurrentAccount.Clicked += buttonCurrentAccount_Clicked; buttonCustomerCard.Clicked += buttonCustomerCard_Clicked; //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Table uint tablePaymentsPadding = 0; Table tablePayments = new Table(2, 3, true) { BorderWidth = 2 }; //Row 1 tablePayments.Attach(buttonMoney, 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, tablePaymentsPadding, tablePaymentsPadding); tablePayments.Attach(buttonMB, 1, 2, 0, 1, AttachOptions.Fill, AttachOptions.Fill, tablePaymentsPadding, tablePaymentsPadding); tablePayments.Attach(buttonVisa, 2, 3, 0, 1, AttachOptions.Fill, AttachOptions.Fill, tablePaymentsPadding, tablePaymentsPadding); //Row 2 tablePayments.Attach(buttonCheck, 0, 1, 1, 2, AttachOptions.Fill, AttachOptions.Fill, tablePaymentsPadding, tablePaymentsPadding); tablePayments.Attach(buttonCreditCard, 1, 2, 1, 2, AttachOptions.Fill, AttachOptions.Fill, tablePaymentsPadding, tablePaymentsPadding); if (enableCurrentAccountButton) { tablePayments.Attach( (SettingsApp.PosPaymentsDialogUseCurrentAccount) ? buttonCurrentAccount : buttonCustomerCard , 2, 3, 1, 2, AttachOptions.Fill, AttachOptions.Fill, tablePaymentsPadding, tablePaymentsPadding ); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Labels Label labelTotal = new Label(Resx.global_total_price_to_pay + ":"); Label labelDelivery = new Label(Resx.global_total_deliver + ":"); Label labelChange = new Label(Resx.global_total_change + ":"); _labelTotalValue = new Label(FrameworkUtils.DecimalToStringCurrency(_articleBagFullPayment.TotalFinal)) { //Total Width WidthRequest = 120 }; _labelDeliveryValue = new Label(FrameworkUtils.DecimalToStringCurrency(0)); _labelChangeValue = new Label(FrameworkUtils.DecimalToStringCurrency(0)); //Colors labelTotal.ModifyFg(StateType.Normal, Utils.ColorToGdkColor(Color.FromArgb(101, 137, 171))); labelDelivery.ModifyFg(StateType.Normal, Utils.ColorToGdkColor(Color.FromArgb(101, 137, 171))); labelChange.ModifyFg(StateType.Normal, Utils.ColorToGdkColor(Color.FromArgb(101, 137, 171))); _labelTotalValue.ModifyFg(StateType.Normal, Utils.ColorToGdkColor(Color.White)); _labelDeliveryValue.ModifyFg(StateType.Normal, Utils.ColorToGdkColor(Color.White)); _labelChangeValue.ModifyFg(StateType.Normal, Utils.ColorToGdkColor(Color.White)); //Alignments labelTotal.SetAlignment(0, 0.5F); labelDelivery.SetAlignment(0, 0.5F); labelChange.SetAlignment(0, 0.5F); _labelTotalValue.SetAlignment(1, 0.5F); _labelDeliveryValue.SetAlignment(1, 0.5F); _labelChangeValue.SetAlignment(1, 0.5F); //labels Font Pango.FontDescription fontDescription = Pango.FontDescription.FromString("Bold 10"); labelTotal.ModifyFont(fontDescription); labelDelivery.ModifyFont(fontDescription); labelChange.ModifyFont(fontDescription); Pango.FontDescription fontDescriptionValue = Pango.FontDescription.FromString("Bold 12"); _labelTotalValue.ModifyFont(fontDescriptionValue); _labelDeliveryValue.ModifyFont(fontDescriptionValue); _labelChangeValue.ModifyFont(fontDescriptionValue); //Table TotalPannel uint totalPannelPadding = 9; Table tableTotalPannel = new Table(3, 2, false); tableTotalPannel.HeightRequest = 132; //Row 1 tableTotalPannel.Attach(labelTotal, 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, totalPannelPadding, totalPannelPadding); tableTotalPannel.Attach(_labelTotalValue, 1, 2, 0, 1, AttachOptions.Fill, AttachOptions.Fill, totalPannelPadding, totalPannelPadding); //Row 2 tableTotalPannel.Attach(labelDelivery, 0, 1, 1, 2, AttachOptions.Fill, AttachOptions.Fill, totalPannelPadding, totalPannelPadding); tableTotalPannel.Attach(_labelDeliveryValue, 1, 2, 1, 2, AttachOptions.Fill, AttachOptions.Fill, totalPannelPadding, totalPannelPadding); //Row 3 tableTotalPannel.Attach(labelChange, 0, 1, 2, 3, AttachOptions.Fill, AttachOptions.Fill, totalPannelPadding, totalPannelPadding); tableTotalPannel.Attach(_labelChangeValue, 1, 2, 2, 3, AttachOptions.Fill, AttachOptions.Fill, totalPannelPadding, totalPannelPadding); //TotalPannel EventBox eventboxTotalPannel = new EventBox(); eventboxTotalPannel.BorderWidth = 3; eventboxTotalPannel.ModifyBg(StateType.Normal, Utils.ColorToGdkColor(colorPosPaymentsDialogTotalPannelBackground)); eventboxTotalPannel.Add(tableTotalPannel); //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Customer Name CriteriaOperator criteriaOperatorCustomerName = null; _entryBoxSelectCustomerName = new XPOEntryBoxSelectRecordValidation <ERP_Customer, TreeViewCustomer>(_sourceWindow, Resx.global_customer, "Name", "Name", null, criteriaOperatorCustomerName, KeyboardMode.Alfa, SettingsApp.RegexAlfaNumeric, false); _entryBoxSelectCustomerName.ClosePopup += delegate { GetCustomerDetails("Oid", _entryBoxSelectCustomerName.Value.Oid.ToString()); Validate(); }; _entryBoxSelectCustomerName.EntryValidation.Changed += _entryBoxSelectCustomerName_Changed; //Customer Discount _entryBoxCustomerDiscount = new EntryBoxValidation(_sourceWindow, Resx.global_discount, KeyboardMode.Alfa, SettingsApp.RegexPercentage, true); _entryBoxCustomerDiscount.EntryValidation.Text = FrameworkUtils.DecimalToString(0.0m); _entryBoxCustomerDiscount.EntryValidation.Sensitive = false; _entryBoxCustomerDiscount.EntryValidation.Changed += _entryBoxCustomerDiscount_Changed; _entryBoxCustomerDiscount.EntryValidation.FocusOutEvent += delegate { _entryBoxCustomerDiscount.EntryValidation.Text = FrameworkUtils.StringToDecimalAndToStringAgain(_entryBoxCustomerDiscount.EntryValidation.Text); }; //Address _entryBoxCustomerAddress = new EntryBoxValidation(this, Resx.global_address, KeyboardMode.Alfa, SettingsApp.RegexAlfaNumericExtended, false); _entryBoxCustomerAddress.EntryValidation.Changed += delegate { Validate(); }; //Locality _entryBoxCustomerLocality = new EntryBoxValidation(this, Resx.global_locality, KeyboardMode.Alfa, SettingsApp.RegexAlfa, false); _entryBoxCustomerLocality.EntryValidation.Changed += delegate { Validate(); }; //ZipCode _entryBoxCustomerZipCode = new EntryBoxValidation(this, Resx.global_zipcode, KeyboardMode.Alfa, SettingsApp.ConfigurationSystemCountry.RegExZipCode, false); _entryBoxCustomerZipCode.WidthRequest = 150; _entryBoxCustomerZipCode.EntryValidation.Changed += delegate { Validate(); }; //City _entryBoxCustomerCity = new EntryBoxValidation(this, Resx.global_city, KeyboardMode.Alfa, SettingsApp.RegexAlfa, false); _entryBoxCustomerCity.WidthRequest = 200; _entryBoxCustomerCity.EntryValidation.Changed += delegate { Validate(); }; //Country CriteriaOperator criteriaOperatorCustomerCountry = CriteriaOperator.Parse("(Disabled IS NULL OR Disabled <> 1) AND (RegExFiscalNumber IS NOT NULL AND RegExZipCode IS NOT NULL)"); _entryBoxSelectCustomerCountry = new XPOEntryBoxSelectRecordValidation <CFG_ConfigurationCountry, TreeViewConfigurationCountry>(pSourceWindow, Resx.global_country, "Designation", "Oid", _intialValueConfigurationCountry, criteriaOperatorCustomerCountry, SettingsApp.RegexGuid, true); _entryBoxSelectCustomerCountry.WidthRequest = 235; //Extra Protection to prevent Customer without Country if (_entryBoxSelectCustomerCountry.Value != null) { _entryBoxSelectCustomerCountry.EntryValidation.Validate(_entryBoxSelectCustomerCountry.Value.Oid.ToString()); } _entryBoxSelectCustomerCountry.EntryValidation.IsEditable = false; _entryBoxSelectCustomerCountry.ButtonSelectValue.Sensitive = false; _entryBoxSelectCustomerCountry.ClosePopup += delegate { _selectedCountry = _entryBoxSelectCustomerCountry.Value; //Require to Update RegEx and Criteria to filter Country Clients Only _entryBoxSelectCustomerFiscalNumber.EntryValidation.Rule = _entryBoxSelectCustomerCountry.Value.RegExFiscalNumber; _entryBoxCustomerZipCode.EntryValidation.Rule = _entryBoxSelectCustomerCountry.Value.RegExZipCode; //Clear Customer Fields, Except Country ClearCustomer(false); //Apply Criteria Operators ApplyCriteriaToCustomerInputs(); //Call Main Validate Validate(); }; //FiscalNumber CriteriaOperator criteriaOperatorFiscalNumber = null; _entryBoxSelectCustomerFiscalNumber = new XPOEntryBoxSelectRecordValidation <ERP_Customer, TreeViewCustomer>(_sourceWindow, Resx.global_fiscal_number, "FiscalNumber", "FiscalNumber", null, criteriaOperatorFiscalNumber, KeyboardMode.AlfaNumeric, _intialValueConfigurationCountry.RegExFiscalNumber, false); _entryBoxSelectCustomerFiscalNumber.EntryValidation.Changed += _entryBoxSelectCustomerFiscalNumber_Changed; //CardNumber CriteriaOperator criteriaOperatorCardNumber = null;//Now Criteria is assigned in ApplyCriteriaToCustomerInputs(); _entryBoxSelectCustomerCardNumber = new XPOEntryBoxSelectRecordValidation <ERP_Customer, TreeViewCustomer>(_sourceWindow, Resx.global_card_number, "CardNumber", "CardNumber", null, criteriaOperatorCardNumber, KeyboardMode.AlfaNumeric, SettingsApp.RegexAlfaNumericExtended, false); _entryBoxSelectCustomerCardNumber.ClosePopup += delegate { if (_entryBoxSelectCustomerCardNumber.EntryValidation.Validated) { GetCustomerDetails("CardNumber", _entryBoxSelectCustomerCardNumber.EntryValidation.Text); } Validate(); }; //Notes _entryBoxCustomerNotes = new EntryBoxValidation(this, Resx.global_notes, KeyboardMode.Alfa, SettingsApp.RegexAlfaNumericExtended, false); _entryBoxCustomerNotes.EntryValidation.Changed += delegate { Validate(); }; //Fill Dialog Inputs with Defaults FinalConsumerEntity Values if (_processFinanceDocumentParameter == null) { //If ProcessFinanceDocumentParameter is not null fill Dialog with value from ProcessFinanceDocumentParameter, implemented for SplitPayments GetCustomerDetails("Oid", SettingsApp.XpoOidDocumentFinanceMasterFinalConsumerEntity.ToString()); } //Fill Dialog Inputs with Stored Values, ex when we Work with SplitPayments else { //Apply Default Customer Entity GetCustomerDetails("Oid", _processFinanceDocumentParameter.Customer.ToString()); //Assign Totasl and Discounts Values _totalDelivery = _processFinanceDocumentParameter.TotalDelivery; _totalChange = _processFinanceDocumentParameter.TotalChange; _discountGlobal = _processFinanceDocumentParameter.ArticleBag.DiscountGlobal; // Update Visual Components _labelDeliveryValue.Text = FrameworkUtils.DecimalToStringCurrency(_totalDelivery); _labelChangeValue.Text = FrameworkUtils.DecimalToStringCurrency(_totalChange); // Selects _selectedCustomer = (ERP_Customer)FrameworkUtils.GetXPGuidObject(typeof(ERP_Customer), _processFinanceDocumentParameter.Customer); _selectedCountry = _selectedCustomer.Country; // PaymentMethod _selectedPaymentMethod = (FIN_ConfigurationPaymentMethod)FrameworkUtils.GetXPGuidObject(typeof(FIN_ConfigurationPaymentMethod), _processFinanceDocumentParameter.PaymentMethod); // Restore Selected Payment Method, require to associate button reference to selectedPaymentMethodButton if (!string.IsNullOrEmpty(pSelectedPaymentMethodButtonName)) { switch (pSelectedPaymentMethodButtonName) { case "touchButtonMoney_Green": _selectedPaymentMethodButton = buttonMoney; break; case "touchButtonCheck_Green": _selectedPaymentMethodButton = buttonCheck; break; case "touchButtonMB_Green": _selectedPaymentMethodButton = buttonMB; break; case "touchButtonCreditCard_Green": _selectedPaymentMethodButton = buttonCreditCard; break; case "touchButtonVisa_Green": _selectedPaymentMethodButton = buttonVisa; break; case "touchButtonCurrentAccount_Green": _selectedPaymentMethodButton = buttonCurrentAccount; break; case "touchButtonCustomerCard_Green": _selectedPaymentMethodButton = buttonCustomerCard; break; } //Assign Payment Method after have Reference AssignPaymentMethod(_selectedPaymentMethodButton); } //UpdateChangeValue, if we add/remove Splits we must recalculate ChangeValue UpdateChangeValue(); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Pack Content HBox hboxPaymenstAndTotals = new HBox(false, 0); hboxPaymenstAndTotals.PackStart(tablePayments, true, true, 0); hboxPaymenstAndTotals.PackStart(eventboxTotalPannel, true, true, 0); HBox hboxCustomerNameAndCustomerDiscount = new HBox(true, 0); hboxCustomerNameAndCustomerDiscount.PackStart(_entryBoxSelectCustomerName, true, true, 0); hboxCustomerNameAndCustomerDiscount.PackStart(_entryBoxCustomerDiscount, true, true, 0); HBox hboxFiscalNumberAndCardNumber = new HBox(true, 0); hboxFiscalNumberAndCardNumber.PackStart(_entryBoxSelectCustomerFiscalNumber, true, true, 0); hboxFiscalNumberAndCardNumber.PackStart(_entryBoxSelectCustomerCardNumber, true, true, 0); HBox hboxZipCodeCityAndCountry = new HBox(false, 0); hboxZipCodeCityAndCountry.PackStart(_entryBoxCustomerZipCode, false, false, 0); hboxZipCodeCityAndCountry.PackStart(_entryBoxCustomerCity, false, false, 0); hboxZipCodeCityAndCountry.PackStart(_entryBoxSelectCustomerCountry, true, true, 0); VBox vboxContent = new VBox(false, 0); vboxContent.PackStart(hboxPaymenstAndTotals, true, true, 0); vboxContent.PackStart(hboxFiscalNumberAndCardNumber, true, true, 0); vboxContent.PackStart(hboxCustomerNameAndCustomerDiscount, true, true, 0); vboxContent.PackStart(_entryBoxCustomerAddress, true, true, 0); vboxContent.PackStart(_entryBoxCustomerLocality, true, true, 0); vboxContent.PackStart(hboxZipCodeCityAndCountry, true, true, 0); vboxContent.PackStart(_entryBoxCustomerNotes, true, true, 0); //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //ActionArea Buttons _buttonOk = ActionAreaButton.FactoryGetDialogButtonType(PosBaseDialogButtonType.Ok); _buttonCancel = ActionAreaButton.FactoryGetDialogButtonType(PosBaseDialogButtonType.Cancel); _buttonClearCustomer = ActionAreaButton.FactoryGetDialogButtonType("touchButtonClearCustomer_DialogActionArea", Resx.global_button_label_payment_dialog_clear_client, fileIconClearCustomer); _buttonFullPayment = ActionAreaButton.FactoryGetDialogButtonType("touchButtonFullPayment_DialogActionArea", Resx.global_button_label_payment_dialog_full_payment, fileIconFullPayment); _buttonPartialPayment = ActionAreaButton.FactoryGetDialogButtonType("touchButtonPartialPayment_DialogActionArea", Resx.global_button_label_payment_dialog_partial_payment, fileIconPartialPayment); // Enable if has selectedPaymentMethod defined, ex when working with SplitPayments _buttonOk.Sensitive = (_selectedPaymentMethod != null); _buttonFullPayment.Sensitive = false; //ActionArea ActionAreaButtons actionAreaButtons = new ActionAreaButtons(); actionAreaButtons.Add(new ActionAreaButton(_buttonClearCustomer, _responseTypeClearCustomer)); if (enablePartialPaymentButtons) { actionAreaButtons.Add(new ActionAreaButton(_buttonFullPayment, _responseTypeFullPayment)); actionAreaButtons.Add(new ActionAreaButton(_buttonPartialPayment, _responseTypePartialPayment)); } actionAreaButtons.Add(new ActionAreaButton(_buttonOk, ResponseType.Ok)); actionAreaButtons.Add(new ActionAreaButton(_buttonCancel, ResponseType.Cancel)); //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Init Object this.InitObject(this, pDialogFlags, fileDefaultWindowIcon, windowTitle, windowSize, vboxContent, actionAreaButtons); } catch (Exception ex) { _log.Error(ex.Message, ex); } }