private void OnDeliveryMethodButtonClick(int rowHandle) { if (rowHandle < 0 || rowHandle > this.gridSource.Count) { return; } LineLevelInformationViewModel viewModel = this.gridSource[rowHandle]; if (string.Equals(gridView.FocusedColumn.FieldName, ColShip, StringComparison.OrdinalIgnoreCase)) { ShippingInformationViewModel shippingViewModel = ShowShippingForm(rowHandle); if (shippingViewModel != null) { // we clear the header... this.ViewModel.ExecuteClearHeaderDelivery(); // ... set the values for the selected line SetShipValues(shippingViewModel, viewModel); // ...and switch everything to line level foreach (LineLevelInformationViewModel lineViewModel in this.gridSource) { lineViewModel.Commit(); } this.ResetControlBindings(); } } if (string.Equals(gridView.FocusedColumn.FieldName, ColPickup, StringComparison.OrdinalIgnoreCase)) { PickupInformationViewModel pickupViewModel = ShowPickupForm(rowHandle); if (pickupViewModel != null) { // we clear the header... this.ViewModel.ExecuteClearHeaderDelivery(); // ... set the values for the selected line SetPickupValues(pickupViewModel, viewModel); // ...and switch everything to line level foreach (LineLevelInformationViewModel lineViewModel in this.gridSource) { lineViewModel.Commit(); } this.ResetControlBindings(); } } }
private static void SetShipValues( ShippingInformationViewModel fromShippingViewModel, LineLevelInformationViewModel toLineViewModel) { toLineViewModel.IsShipping = true; toLineViewModel.DeliveryDate = fromShippingViewModel.DeliveryDate; toLineViewModel.ShippingCharge = fromShippingViewModel.ShippingCharge; toLineViewModel.ShippingMethodCode = fromShippingViewModel.ShippingMethod.Code; toLineViewModel.ShippingAddress = fromShippingViewModel.ShippingAddress; // Remove pickup related data toLineViewModel.DeliveryStore = null; }
private static void SetPickupValues( PickupInformationViewModel fromPickupViewModel, LineLevelInformationViewModel toLineViewModel) { toLineViewModel.IsPickup = true; toLineViewModel.DeliveryDate = fromPickupViewModel.PickupDate; toLineViewModel.DeliveryStore = fromPickupViewModel.SelectedStore; // Remove any shipping related data toLineViewModel.ShippingCharge = null; toLineViewModel.ShippingMethodCode = null; toLineViewModel.ShippingAddress = null; }
private PickupInformationViewModel ShowPickupForm(int rowIndex) { // Before we show the pickup form, check that a pickup code exists if (string.IsNullOrWhiteSpace(ApplicationSettings.Terminal.PickupDeliveryModeCode)) { // "Pickup cannot be used for delivery because a pickup delivery code was not found." string errorMessage = LSRetailPosis.ApplicationLocalizer.Language.Translate(56382); SalesOrder.LogMessage(errorMessage, LSRetailPosis.LogTraceLevel.Error); SalesOrder.InternalApplication.Services.Dialog.ShowMessage(errorMessage, MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } PickupInformationViewModel vm = new PickupInformationViewModel(this.ViewModel.Transaction); vm.IsDeliveryChangeAllowed = this.ViewModel.IsDeliveryChangeAllowed; // Load any existing values if (rowIndex >= 0 && rowIndex < this.gridSource.Count) { LineLevelInformationViewModel viewModel = this.gridSource[rowIndex]; vm.PickupDate = viewModel.DeliveryDate; vm.SelectedStore = viewModel.DeliveryStore; } using (formPickupInformation pickup = new formPickupInformation(vm)) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(pickup); if (pickup.DialogResult == DialogResult.OK) { return(pickup.ViewModel); } } return(null); }
private ShippingInformationViewModel ShowShippingForm(int rowIndex) { LineLevelInformationViewModel viewModel = null; if (rowIndex >= 0 && rowIndex < this.gridSource.Count) { viewModel = this.gridSource[rowIndex]; } ShippingInformationViewModel vm = null; // Load any existing values if (viewModel != null) { vm = new ShippingInformationViewModel(this.ViewModel.Transaction, viewModel.LineItem); vm.DeliveryDate = viewModel.DeliveryDate; vm.ShippingCharge = viewModel.ShippingCharge; vm.ShippingMethod = vm.ShippingMethods.FirstOrDefault(m => m.Code == viewModel.ShippingMethodCode); vm.ShippingAddress = viewModel.ShippingAddress; } else { vm = new ShippingInformationViewModel(this.ViewModel.Transaction, null); } vm.IsDeliveryChangeAllowed = this.ViewModel.IsDeliveryChangeAllowed; using (formShippingInformation frmShip = new formShippingInformation(vm)) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(frmShip); if (frmShip.DialogResult == DialogResult.OK) { return(frmShip.ViewModel); } } return(null); }
/// <summary> /// Handles the display text for custom grid columns /// </summary> private void gridView_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (!this.gridSource.Any()) { return; } LineLevelInformationViewModel viewModel = gridSource[e.ListSourceRowIndex]; switch (e.Column.FieldName) { case ColShip: e.DisplayText = viewModel.IsShipping ? DeliveryInformationPage.WingdingsTickCharachter : string.Empty; break; case ColPickup: e.DisplayText = viewModel.IsPickup ? DeliveryInformationPage.WingdingsTickCharachter : string.Empty; break; } }