コード例 #1
0
        /// <summary>
        /// Determina si se puede editar la informacion del grid
        /// </summary>
        /// <history>
        /// [vipacheco] 25/Junio/2016 Created
        /// </history>
        private void grdExchange_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
        {
            DataGrid           dataGrid           = sender as DataGrid;
            GiftsReceiptDetail giftsReceiptDetail = dataGrid.Items.CurrentItem as GiftsReceiptDetail;

            _currentCell = dtgExchange.CurrentCell;
            ReceiptsGifts.StartEdit(EnumMode.Edit, giftsReceiptDetail, ref _currentCell, ref dtgExchange, ref bandCancel);
        }
コード例 #2
0
        /// <summary>
        /// Evento para validar los cambios de una celda en el grid
        /// </summary>
        /// <history>
        /// [vipacheco] 30/Junio/2016 Created
        /// </history>
        private async void grdExchange_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            if (!bandCancel)
            {
                dtgExchange.CellEditEnding -= grdExchange_CellEditEnding;
                DataGrid           dataGrid           = sender as DataGrid;
                ComboBox           comboBox           = e.EditingElement as ComboBox;
                GiftsReceiptDetail giftsReceiptDetail = dataGrid.Items.CurrentItem as GiftsReceiptDetail;

                // Validamos la celda
                bool HasErrorValidate = await ReceiptsGifts.ValidateEdit(dataGrid, giftsReceiptDetail, true, _currentCell);

                // Si se cancela la edicion
                if (!HasErrorValidate)
                {
                    ChargeTo   pChargeTo   = frmHost._lstChargeTo.Where(x => x.ctID.ToUpper() == "MARKETING").Single();
                    LeadSource pLeadSource = cboLeadSource.SelectedItem as LeadSource;

                    ReceiptsGifts.AfterEdit(ref dtgExchange, _Guest.guID, row: ref giftsReceiptDetail, pCell: _currentCell, pUseCxCCost: useCxCCost, pIsExchange: _isExchangeReceipt,
                                            pChargeTo: pChargeTo, pLeadSourceID: pLeadSource.lsID, pTxtTotalCost: txtTotalGiftsExchange, pTxtgrCxCGifts: txtgrcxcGifts,
                                            pTxtTotalCxC: txtTotalCxC, pTxtgrCxCAdj: txtgrcxcAdj, pTxtgrMaxAuthGifts: txtMaxAuthGifts, pLblgrMaxAuthGifts: txbMaxAuthGiftsCaption);

                    CalculateTotalGifts();
                    txbMaxAuthGiftsCaption.Visibility = Visibility.Visible;
                    txtMaxAuthGifts.Visibility        = Visibility.Visible;

                    // Verificamos si se actualiza los costs CxC
                    if (_applicationAdj)
                    {
                        txtgrcxcGifts.Text = txtTotalCost.Text;
                        decimal cxcGifts = string.IsNullOrEmpty(txtgrcxcGifts.Text) ? 0 : Convert.ToDecimal(txtgrcxcGifts.Text.TrimStart('$'));
                        decimal cxcAdj   = string.IsNullOrEmpty(txtgrcxcAdj.Text) ? 0 : Convert.ToDecimal(txtgrcxcAdj.Text.TrimStart('$'));
                        txtTotalCxC.Text = string.Format("{0:C2}", cxcAdj + cxcGifts);
                    }
                }
                else
                {
                    e.Cancel = true;
                }
                dtgExchange.CellEditEnding += grdExchange_CellEditEnding;
            }
            // Verificamos si se puso en modo lectura la celda
            if (_currentCell.Column.IsReadOnly)
            {
                _currentCell.Column.IsReadOnly = false;
            }
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _dsSalesRoom  = ((CollectionViewSource)(this.FindResource("dsSalesRoom")));
            _dsPrograms   = ((CollectionViewSource)(this.FindResource("dsPrograms")));
            _dsLeadSource = ((CollectionViewSource)(this.FindResource("dsLeadSource")));
            _dsGifts      = ((CollectionViewSource)(this.FindResource("dsGifts")));

            _dsGiftsReceiptDetailCancel = ((CollectionViewSource)(this.FindResource("dsGiftsReceiptDetailCancel")));
            _dsGiftsReceiptDetail       = ((CollectionViewSource)(this.FindResource("dsGiftsReceiptDetail")));

            // Cargamos los Sales Room
            _dsSalesRoom.Source = frmHost._lstSalesRoom;
            //Cargamos los Programs
            _dsPrograms.Source = frmHost._lstPrograms;
            // Cargamos los LeadSources
            _dsLeadSource.Source = frmHost._lstLeadSources;
            // Cargamos los Gifts
            _dsGifts.Source = frmHost._lstGifts;

            // Obtenemos los regalos a cancelar.
            List <GiftsReceiptDetailCancel> lstResultCancel = BRGiftsReceiptDetail.GetGiftsReceiptDetailCancel(_ReceiptID, _EnumExternalProduct);

            _obsGiftsCancel = new ObservableCollection <GiftsReceiptDetailCancel>(lstResultCancel);
            _dsGiftsReceiptDetailCancel.Source = _obsGiftsCancel;

            //Obtenemos los datos del Huesped.
            _Guest = await BRGuests.GetGuestShort(_GuestID);

            txtReceipt.Text            = $"{_ReceiptID}";
            txtGuestID.Text            = $"{ _GuestID}";
            txtNameInvitation.Text     = _Guest.Name;
            cboSalesRoom.SelectedValue = _Guest.gusr;

            // Si es Inhouse
            if (_Guest.lspg.Equals("IH"))
            {
                // Si es una invitacion inhouse externa
                if (string.IsNullOrEmpty(_Guest.guHReservID))
                {
                    PropertyOpera = _Guest.lsPropertyOpera;
                }
            }
            // Si es OutHouse
            else
            {
                PropertyOpera = _Guest.srPropertyOpera;
            }

            cboProgram.SelectedValue    = _Guest.lspg;
            cboLeadSource.SelectedValue = _Guest.gulsOriginal;
            txtReservation.Text         = _Guest.guHReservID == "" ? null : _Guest.guHReservID;
            dtpArrival.Value            = _Guest.guCheckInD;
            dtpDeparture.Value          = _Guest.guCheckOutD;
            txtQtyEPurses.Text          = $"{_Guest.guQtyGiftsCard}";
            txtAccountInvitation.Text   = _Guest.guAccountGiftsCard == "" ? null : _Guest.guAccountGiftsCard;

            // Monto maximo de reagalos
            txtMaxAuthGifts.Text = string.Format("{0:C2}", _MaxAuthGifts);

            // Totales de regalos
            txtTotalGiftsInvitation.Text = string.Format("{0:C2}", BRGiftsReceipts.CalculateTotalsGiftsInvitation(_GuestID));

            // Si se genera un recibo Exchange
            if (_Exchange)
            {
                txtTotalGiftsCancel.Text = string.Format("{0:C2}", 0.00);
            }
            // si se desea cancelar el recibo
            else
            {
                txtTotalGiftsCancel.Text = string.Format("{0:C2}", _TotalGifts);
            }

            txtTotalGiftsExchange.Text = string.Format("{0:C2}", 0.00);
            CalculateTotalGifts();

            // Totales del cargo
            txtgrcxcAdj.Text = string.Format("{0:C2}", _CurAdjustment);

            // Activamos la bandera para saber si se ajustaran costos CxC
            _applicationAdj = _CurAdjustment > 0 ? true : false;

            ReceiptsGifts.CalculateCharge(_GuestID, _FrmGiftsReceipt.cmbgrct.SelectedItem as ChargeTo, txtTotalCost, _isExchangeReceipt, ref txtgrcxcGifts,
                                          ref txtTotalCxC, ref _FrmGiftsReceipt.txtgrCxCAdj, ref _FrmGiftsReceipt._validateMaxAuthGifts, _Guest.gulsOriginal,
                                          ref _FrmGiftsReceipt.txtgrMaxAuthGifts, ref _FrmGiftsReceipt.txbgrMaxAuthGifts);

            // Si se desea cancelar el recibo
            if (!_Exchange)
            {
                stkGiftsExchange.Visibility = Visibility.Collapsed;
                WindowMain.Height           = 424; // Ajustamos la ventana
            }

            // Impedimos modificar los datos si el sistema esta en modo de solo lectura
            if (ConfigHelper.GetString("ReadOnly").ToUpper().Equals("TRUE"))
            {
                btnSave.Visibility = Visibility.Hidden;
            }

            // si se debe generar un recibo exchange
            if (_Exchange)
            {
                List <GiftsReceiptDetail> lstResult = await BRInvitsGifts.GetGiftsInvitationWithoutReceipt(0);

                _obsGifts                    = new ObservableCollection <GiftsReceiptDetail>(lstResult);
                _obsGiftsComplet             = new ObservableCollection <GiftsReceiptDetail>(lstResult);
                _dsGiftsReceiptDetail.Source = _obsGifts;
            }
            // Si se desea cancelar el recibo
            else
            {
                CheckAllCell(ref dtgCancel, _CancelField);
                TextBox x = null;
                ReceiptsGifts.CalculateTotalGifts(dtgCancel, EnumGiftsType.ReceiptGifts, ref txtTotalCost, ref x, ref x);
                dtgCancel.IsReadOnly = true;
            }
        }