Esempio n. 1
0
        /// <summary>
        /// Función encargada de verificar si cuenta con los permisos de edicion!
        /// </summary>
        /// <history>
        /// [vipacheco] 23/04/2016 Created
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            // Se verifica que tenga permisos de editar
            if (_modeOpen != EnumMode.ReadOnly)
            {
                MealTicket mealTicket = grdMealTicket.SelectedItem as MealTicket;

                frmMealTicketsDetail frmealTkt = new frmMealTicketsDetail(_openBy)
                {
                    Owner = this
                };
                ObjectHelper.CopyProperties(frmealTkt._mealTicketCurrency, mealTicket);
                frmealTkt._modeOpen = EnumMode.Edit;
                frmealTkt.Title    += "Edit - ID " + mealTicket.meID;

                if (frmealTkt.ShowDialog().Value)
                {
                    int        indexOrigin = obsMealTicket.IndexOf(mealTicket);
                    MealTicket _mealTicket = ObjectHelper.CopyProperties(frmealTkt._mealTicketCurrency);

                    if (_modeOpen == EnumMode.Edit && _openBy == EnumOpenBy.Checkbox)
                    {
                        dsMealTicket.Source = BRMealTickets.GetMealTickets(_guestID);
                    }
                    else if (_modeOpen == EnumMode.Edit && _openBy == EnumOpenBy.Button)
                    {
                        obsMealTicket.Insert(indexOrigin, _mealTicket); obsMealTicket.Remove(mealTicket);
                    }
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="guestID">Clave del guest</param>
        /// <history>
        /// [vipacheco] 31/Marzo/2016 Created
        /// [vipacheco] 08/Agosto/2016 Modified -> Se agrega validacion isclosed
        /// </history>
        public frmMealTickets(EnumOpenBy openBy, int guestID = 0)
        {
            _guestID = guestID;
            _openBy  = openBy;

            bool isclosed = false;

            // Si no esta en modo busqueda
            if (guestID != 0)
            {
                lstMealTicket = BRMealTickets.GetMealTickets(guestID);
                SalesRoomCloseDates closeSalesRoom = BRSalesRooms.GetSalesRoom(Context.User.SalesRoom.srID);

                // Verificamos si alguno de sus cupones de comida es de una fecha cerrada, impedimos modificar los datos
                lstMealTicket.ForEach(x =>
                {
                    if (Common.IsClosed(x.meD, closeSalesRoom.srMealTicketsCloseD))
                    {
                        isclosed = true;
                        return;
                    }
                });

                // Si no esta en una fecha cerrada
                if (!isclosed)
                {
                    // Verificamos los permisos del usuario
                    if (Context.User.HasPermission(EnumPermission.MealTicket, EnumPermisionLevel.Standard))
                    {
                        _modeOpen = EnumMode.Edit;
                    }
                    else
                    {
                        _modeOpen = EnumMode.ReadOnly;
                    }
                }
            }
            // Esta en modo busqueda
            else
            {
                // Verificamos los permisos del usuario
                if (Context.User.HasPermission(EnumPermission.MealTicket, EnumPermisionLevel.Standard))
                {
                    _modeOpen = EnumMode.Edit;
                }
                else
                {
                    _modeOpen = EnumMode.ReadOnly;
                }
            }

            // Se verifica si tiene permisos de edición!
            InitializeComponent();

            GridHelper.SetUpGrid(grdMealTicket, new MealTicket());

            dtpFrom.Value = frmHost.dtpServerDate.AddDays(-(frmHost.dtpServerDate.Day) + 1);
            dtpTo.Value   = frmHost.dtpServerDate;
        }
Esempio n. 3
0
        /// <summary>
        /// Imprime el ticket de comida.
        /// </summary>
        ///  <history>
        /// [edgrodriguez] 15/07/2016 Created
        /// [vipacheco] 13/Agosto/2016 Modified -> se elimino el recorrido de todos los items del grid, por la seleccion actual.
        /// </history>
        private async void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            MealTicket mtck  = grdMealTicket.SelectedItem as MealTicket;
            int        folio = 0;

            if (!int.TryParse(mtck.meFolios, out folio))
            {
                UIHelper.ShowMessage($"Could not print this meal ticket.\n{string.Join("\n", mtck.meFolios)}");; return;
            }
            var mT = await BRMealTicketFolios.GetMealTicket(mtck.meID, Convert.ToInt32(mtck.meFolios), $"{Context.User.User.peID} - {Context.User.User.peN}");

            if (mT != null)
            {
                StringHelper.Items        = new List <string>();
                LanguageHelper.IDLanguage = mT.gula;
                if (!string.IsNullOrEmpty(mT.raN))
                {
                    StringHelper.Items.Add(mT.raN.PadCenter());
                }
                StringHelper.Items.Add($"{((char)27)}{((char)97)}1");//Centrado
                StringHelper.Items.Add("PALACE ELITE");
                StringHelper.Items.Add("VALE POR 1 BUFFET");
                StringHelper.Items.Add(mT.myN);
                StringHelper.Items.Add("\r\n");
                StringHelper.Items.Add($"{((char)27)}{((char)97)}0");//Izquierda
                if (!string.IsNullOrEmpty(mT.REFERENCE))
                {
                    StringHelper.Items.Add(mT.REFERENCE);
                    StringHelper.Items.Add(mT.REFERENCENAME);
                }
                else
                {
                    StringHelper.Items.Add($"Guest ID: {mT.guID}");
                    StringHelper.Items.Add($"{LanguageHelper.GetMessage("msgLblNameMT")}: { mT.Name}");
                }
                StringHelper.Items.Add($"{LanguageHelper.GetMessage("msgLblAdults")}: {mT.meAdults} {LanguageHelper.GetMessage("msgLblMinors")}: {mT.meMinors}");
                StringHelper.Items.Add($"{LanguageHelper.GetMessage("msgLblDate")}: {mT.meD.ToShortDateString()}");
                StringHelper.Items.Add($"{LanguageHelper.GetMessage("msgLblAuthorizedBy")}: {mT.Authorized}");
                StringHelper.Items.Add($"SalesRoom: {mT.SalesRoomID} - {mT.SalesRoomName}");
                StringHelper.Items.Add($"\r\n");
                StringHelper.Items.Add($"{((char)27)}{((char)97)}2");//Derecha
                StringHelper.Items.Add($"Folio: {mT.meFolio}");
                StringHelper.Items.Add($"{((char)27)}{((char)97)}1");
                StringHelper.Items.Add($"{LanguageHelper.GetMessage("msgLblDate")}: {DateTime.Today.ToString("dd/MM/yyyy h:mm:ss tt")}");
                StringHelper.Items.Add("\r\n");
                StringHelper.Items.Add($"{((char)29)}VB{((char)1)}");
                if (PrinterHelper.SendStringToPrinter(StringHelper.ToTicketString()))
                {
                    mtck.mePrinted = true;
                    BRMealTickets.UpdateMealTicket(mtck);
                    grdMealTicket.Items.Refresh();
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Función para agregar un nuevo Meal Ticket
        /// </summary>
        /// <history>
        /// [vipacheco] 22/03/2016 Created
        /// </history>
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            frmMealTicketsDetail mealTicketsDetail = new frmMealTicketsDetail(_openBy)
            {
                Owner = this
            };

            mealTicketsDetail._modeOpen = EnumMode.Add;
            mealTicketsDetail.Title    += "Add";

            if (mealTicketsDetail.ShowDialog().Value)
            {
                if (_modeOpen == EnumMode.Edit && _openBy == EnumOpenBy.Checkbox)
                {
                    dsMealTicket.Source = BRMealTickets.GetMealTickets(_guestID);
                }
                else if (_modeOpen == EnumMode.Edit && _openBy == EnumOpenBy.Button)
                {
                    obsMealTicket.Add(mealTicketsDetail._mealTicketCurrency);
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Función para la busqueda de un Meal Tickets de acuerdo a los datos ingresados!
        /// </summary>
        /// <history>
        /// [vipacheco] 18/03/2016 Created
        /// </history>
        private async void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            int      mlTicket = 0, rateType = 0;
            string   folio = "";
            DateTime?fromDate = null, toDate = null;

            // Verificamos que tipo de RateType tiene para ocultar las columas necesarias
            RateType itemRate = cboRateType.SelectedItem as RateType;

            _busyIndicator.IsBusy = true;

            // Obtenemos el ID de Meal Ticket
            if (txtMealTicket.Text != "")
            {
                mlTicket = Convert.ToInt32(txtMealTicket.Text);
            }
            // Obtenemos el folio ID si se ingreso
            if (txtFolio.Text != "")
            {
                folio = txtFolio.Text;
            }
            // Obtenemos el Rate Type seleccionado
            if (cboRateType.SelectedItem != null)
            {
                rateType = itemRate.raID;
            }
            // Obtenemos la fecha FROM ingresada
            if (dtpFrom.Value.Value.Date != null)
            {
                fromDate = dtpFrom.Value.Value.Date;
            }
            // Obtenemos la fecha TO ingresada
            if (dtpTo.Value.Value.Date != null)
            {
                toDate = dtpTo.Value.Value.Date;
            }

            // Realizamos la busqueda con los parametros ingresados!
            //lstMealTicket = await BRMealTickets.GetMealTickets(mlTicket, folio, rateType, fromDate, toDate);
            obsMealTicket       = new ObservableCollection <MealTicket>(await BRMealTickets.GetMealTickets(mlTicket, folio, rateType, fromDate, toDate));
            dsMealTicket.Source = obsMealTicket;

            #region ColumnsVisibility
            // Se verifica que el SelectedItem no sea null
            if (itemRate != null)
            {
                // Si es diferente de tipo External!
                if (itemRate.raID != 4)
                {
                    controlColumnVisibility(Visibility.Visible, Visibility.Hidden, Visibility.Hidden);
                }
                // Es external
                else
                {
                    controlColumnVisibility(Visibility.Hidden, Visibility.Visible, Visibility.Visible);
                }
            }
            #endregion

            _busyIndicator.IsBusy = false;
        }
        /// <summary>
        /// Guarda la informacion proporcionada!
        /// </summary>
        /// <history>
        /// [vipacheco] 23/03/2016 Created
        /// </history>
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (ValidateGeneral())
            {
                RateType       _rateType  = cboRateType.SelectedItem as RateType;
                MealTicketType _mealType  = cboType.SelectedItem as MealTicketType;
                PersonnelShort _personnel = cboCollaborator.SelectedItem as PersonnelShort;
                AgencyShort    _agency    = cboAgency.SelectedItem as AgencyShort;

                int    _meAdults        = Convert.ToInt32((txtAdults.Text == "") ? "0" : txtAdults.Text);
                int    _meMinors        = Convert.ToInt32((txtMinors.Text == "") ? "0" : txtMinors.Text);
                string _meTAdultsString = txtTAdults.Text.TrimStart('$');
                string _meTMinorsString = txtTMinors.Text.TrimStart('$');

                // Agrega un nuevo Meal Ticket
                if (_modeOpen == EnumMode.Add)
                {
                    // Obtenemos el folio a asignar
                    int folioNew = 1 + BRMealTicketFolios.GetMaxMealTicketFolio(Context.User.SalesRoom.srID, _mealType.myID, _rateType == null ? 1 : _rateType.raID);

                    _mealTicketCurrency = CreateMealTicket(_rateType, _mealType, _personnel, _agency, _meAdults, _meMinors, _meTAdultsString, _meTMinorsString, folioNew);

                    //Actualizamos el folio!
                    BRMealTicketFolios.UpdateMealTicketFolio(Context.User.SalesRoom.srID, _mealType.myID, _rateType == null ? 1 : _rateType.raID, $"{folioNew}");

                    //Guardamos el Meal Ticket Creado
                    BRMealTickets.InsertNewMealTicket(_mealTicketCurrency);
                }
                // Modo edicion
                else
                {
                    int folio = Convert.ToInt32(_mealTicketCurrency.meFolios);

                    // Creamos el Meal Ticket con el guestID
                    _mealTicketCurrency.meD            = dtpDate.Value.Value.Date;
                    _mealTicketCurrency.megu           = _mealTicketCurrency.megu != 0 ? _mealTicketCurrency.megu : frmMealTickets._guestID;
                    _mealTicketCurrency.meQty          = frmMealTickets._Qty;
                    _mealTicketCurrency.meType         = _mealType.myID;
                    _mealTicketCurrency.meAdults       = _meAdults;
                    _mealTicketCurrency.meMinors       = _meMinors;
                    _mealTicketCurrency.meFolios       = $"{folio}";
                    _mealTicketCurrency.meTAdults      = Convert.ToDecimal(_meTAdultsString);
                    _mealTicketCurrency.meTMinors      = Convert.ToDecimal(_meTMinorsString);
                    _mealTicketCurrency.meComments     = txtComments.Text;
                    _mealTicketCurrency.mesr           = Context.User.SalesRoom.srID;
                    _mealTicketCurrency.meCanc         = chkCancel.IsChecked.Value;
                    _mealTicketCurrency.mera           = frmMealTickets._guestID > 0 ? 1 : _rateType.raID;
                    _mealTicketCurrency.mepe           = cboCollaborator.IsVisible ? _personnel.peID : null;
                    _mealTicketCurrency.mePrinted      = chkPrinted.IsChecked.Value;
                    _mealTicketCurrency.meag           = cboAgency.IsVisible ? _agency.agID : null;
                    _mealTicketCurrency.merep          = txtRepresentative.IsVisible ? txtRepresentative.Text : null;
                    _mealTicketCurrency.meAuthorizedBy = Context.User.User.peID;

                    //Actualizamos el folio!
                    BRMealTicketFolios.UpdateMealTicketFolio(Context.User.SalesRoom.srID, _mealType.myID, _rateType.raID, _mealTicketCurrency.meFolios);

                    // Insertamos el nuevo Meal Ticket con el folio asignado
                    BRMealTickets.UpdateMealTicket(_mealTicketCurrency);
                }
                //Actualizamos el campo guMealTicket del Guest
                BRGuests.UpdateFieldguMealTicket(true, frmMealTickets._guestID);

                DialogResult = true;
                Close();
            }
        }