/// <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); } } } }
/// <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; }
/// <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(); } } }
/// <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); } } }
/// <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(); } }