/// <summary> /// Asigna las comisiones correspondientes al servicio a partir de la configuración por zona /// </summary> private void GetComisiones() { // Instanciamos el listado Comisiones = new List <Entities.Servicios_Comisiones>(); // Configuramos el pago a 0 Servicio.PagoComisiones = 0; // Configuramos el pago al conductor como el precio total del boleto Servicio.PagoConductor = Servicio.Precio; // Obtenemos la zona Entities.Zonas zona = Entities.Zonas.Read((int)Servicio.Zona_ID); // Si es comisionada if (!AppHelper.IsNullOrEmpty(zona.ComisionServicio_ID)) { // Obtenemos la comisión Entities.ComisionesServicios comisionServicio = Entities.ComisionesServicios.Read((int)zona.ComisionServicio_ID); // Calcular comision CalcularComision(comisionServicio); } // Calculamos Comision pronatura Entities.ComisionesServicios comisionPronatura = Entities.ComisionesServicios.Read(COMISIONPRONATURA_ID); CalcularComision(comisionPronatura); }
/// <summary> /// Selecciona la zona, obtiene el precio, actualiza el servicio y /// los controles de la interfaz de usuario /// </summary> private void SelectZona() { if (!AppHelper.IsNullOrEmpty(ZonasComboBox.SelectedItem)) { Entities.Zonas zona = (Entities.Zonas)ZonasComboBox.SelectedItem; Servicio.Zona_ID = zona.Zona_ID; GetPrecio(); PrecioTextBox.Text = AppHelper.N2(Servicio.Precio); } }
/// <summary> /// Guarda los datos en la base de datos /// </summary> private void DoSave() { // Obtenemos el objeto Zonas actual Entities.Zonas zonas = (Entities.Zonas)ZonasBindingSource.Current; // Mandamos llamar "Create" para la inserción zonas.Create(); // Limpiamos la forma DoClear(); // Mostramos el mensaje de éxito AppHelper.Info("¡La zona ha sido ingresada!"); }
/// <summary> /// Al presionar "Enter" en la caja de texto "Zona ID", /// se busca la zona por su ID (folio) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Zona_IDTextBox_KeyUp(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Enter) { AppHelper.Try( delegate { Servicio.Zona_ID = Convert.ToInt32(this.Zona_IDTextBox.Text); Entities.Zonas zona = Entities.Zonas.Read(Servicio.Zona_ID.Value); GetPrecio(); NombreZonaTextBox.Text = zona.Nombre; PrecioTextBox.Text = AppHelper.N2(Servicio.Precio); } ); } }
/// <summary> /// Asigna la productividad al servicio /// </summary> private void GetProductividad() { // Si el servicio es Tipo servicio conductor if (!AppHelper.IsNullOrEmpty(Servicio.TipoServicioConductor_ID)) { // Obtenemos el tipo de servicio Entities.TiposServiciosConductores tipoServicioConductor = Entities.TiposServiciosConductores.Read((int)Servicio.TipoServicioConductor_ID); // Verificar si es valido como carrera // Si es, productividad = 1 if (tipoServicioConductor.EsValidoCarrera) { Servicio.Productividad = 1; } } else // Si no { // Tipo de Zona Entities.Zonas zona = Entities.Zonas.Read((int)Servicio.Zona_ID); Entities.TiposZonas tipoZona = Entities.TiposZonas.Read(zona.TipoZona_ID); // Verificamos si la zona es acreditable if (tipoZona.EsAcreditable) { // Obtener la base de acreditación decimal baseAcreditación = Convert.ToDecimal(Entities.VariablesNegocio.Read("BaseAcreditacion").Valor); // Dividir el precio entre la misma decimal productividad = Servicio.Precio / baseAcreditación; // Si es menor que 1, entonces 1 if (productividad < 0) { productividad = 1; } // Caso contrario, el cociente es la productividad Servicio.Productividad = productividad; } else // Si no, vale solo por uno { Servicio.Productividad = 1; } // end else } // end else } // end void GetProductividad
/// <summary> /// Asigna las comisiones correspondientes al servicio a partir de la configuración por zona /// </summary> private void GetComisiones() { // Un servicio puede contener cualquier cantidad // de comisiones // El total a pagar al conductor es el precio del boleto // menos las comisiones // Instanciamos las comisiones Comisiones = new List <Entities.Servicios_Comisiones>(); // Inicializamos a cero el pago de comisiones Servicio.PagoComisiones = 0; // Inicializamos el pago del conductor como el precio // del servicio Servicio.PagoConductor = Servicio.Precio; // Obtenemos la zona del servicio Entities.Zonas zona = Entities.Zonas.Read((int)Servicio.Zona_ID); // Si la zona es comisionada if (!AppHelper.IsNullOrEmpty(zona.ComisionServicio_ID)) { // Instanciamos una comisión, a partir de la zona Entities.ComisionesServicios comisionServicio = Entities.ComisionesServicios.Read((int)zona.ComisionServicio_ID); // Calculamos la comision CalcularComision(comisionServicio); } // Comision pronatura // esta comisión es permamente // La instanciamos y calculamos Entities.ComisionesServicios comisionPronatura = Entities.ComisionesServicios.Read(COMISIONPRONATURA_ID); CalcularComision(comisionPronatura); }
/// <summary> /// Si oprimimos enter en la caja de texto del /// folio de la zona: /// Obtenemos la zona a partir del folio /// Obtenemos el precio /// Actualizamos la información de los controles /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Zona_IDTextBox_KeyUp(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Enter) { AppHelper.Try( delegate { // Obtenemos el folio (ID) de zona Servicio.Zona_ID = Convert.ToInt32(this.Zona_IDTextBox.Text); // Obtenemos la zona Entities.Zonas zona = Entities.Zonas.Read(Servicio.Zona_ID.Value); // Obtenemos el precio GetPrecio(); // Actualizamos los controles NombreZonaTextBox.Text = zona.Nombre; PrecioTextBox.Text = AppHelper.N2(Servicio.Precio); } ); // end AppHelper.Try } // end if Enter } // end KeyUp
/// <summary> /// Guarda los cambios en la base de datos /// </summary> private void DoSave() { // Obtenemos la zona actual // y la asignamos a la variable zonas Entities.Zonas zonas = (Entities.Zonas)ZonasBindingSource.Current; // Llamamos "Update" para actualizar los datos en la base de datos zonas.Update(); // Regresamos a la pantalla de listado de Zonas DoBackToList(); // Enviamos mensaje de éxito AppHelper.Info("¡Zona actualizada!"); // Registramos la acción de actualización en la base de datos AppHelper.LogDB( "Actualización de zonas", string.Format("Zona ID {0}, Nombre", zonas.Zona_ID, zonas.Nombre), this.Name, null ); }
/// <summary> /// Asigna las comisiones correspondientes al servicio a partir de la configuración por zona /// </summary> private void GetComisiones() { // Instanciamos el listado Comisiones = new List <Entities.Servicios_Comisiones>(); // Configuramos el pago a 0 Servicio.PagoComisiones = 0; // Configuramos el pago al conductor como el precio total del boleto Servicio.PagoConductor = Servicio.Precio; // Obtenemos la zona Entities.Zonas zona = Entities.Zonas.Read((int)Servicio.Zona_ID); // Si es comisionada if (!AppHelper.IsNullOrEmpty(zona.ComisionServicio_ID)) { // Obtenemos la comisión Entities.ComisionesServicios comisionServicio = Entities.ComisionesServicios.Read((int)zona.ComisionServicio_ID); // Calcular comision CalcularComision(comisionServicio); switch (zona.Zona_ID) { case 1: case 2: case 3: case 4: case 5: case 11: case 12: case 13: case 14: break; default: // Calculamos Comision pronatura Entities.ComisionesServicios comisionPronatura = Entities.ComisionesServicios.Read(COMISIONPRONATURA_ID); // Calcular comision CalcularComision(comisionPronatura); // Comision de regresos Entities.ComisionesServicios comisionRegresos = Entities.ComisionesServicios.Read(COMISIONREGRESOS_ID); // Calcular comision CalcularComision(comisionRegresos); break; } } else { // Comision de regresos Entities.ComisionesServicios comisionRegresos = Entities.ComisionesServicios.Read(COMISIONREGRESOS_ID); // Calcular comision CalcularComision(comisionRegresos); // Calculamos Comision pronatura Entities.ComisionesServicios comisionPronatura = Entities.ComisionesServicios.Read(COMISIONPRONATURA_ID); // Calcular comision CalcularComision(comisionPronatura); } // Asignar el porcentaje a la unidad Entities.VariablesNegocio varneg = Entities.VariablesNegocio.Read("PorcentajeBoletosRegresos"); decimal porcentajeregresos = Convert.ToDecimal(varneg.Valor); Servicio.ComisionRegreso = Servicio.Precio * (porcentajeregresos / 100); Servicio.PorcentajeRegreso = porcentajeregresos; }