/// <summary>
 /// Evento click de BtnAgregar
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void BtnAgregar_OnClick(object sender, RoutedEventArgs e)
 {
     try
     {
         var resultadoValidacion = ValidarCampos();
         if (resultadoValidacion.Resultado)
         {
             listaContratoParcial.Add(new ContratoParcialInfo()
             {
                 Importe = TxtImporte.Value.HasValue ? TxtImporte.Value.Value : 0, Cantidad = TxtToneladas.Value.HasValue ? TxtToneladas.Value.Value : 0, FechaCreacion = DateTime.Today
             });
             GridContratoParcial.ItemsSource = null;
             GridContratoParcial.ItemsSource = listaContratoParcial;
             LimpiarCampos();
             TxtToneladas.Focus();
         }
         else
         {
             var mensaje = "";
             mensaje = string.IsNullOrEmpty(resultadoValidacion.Mensaje) ? Properties.Resources.CrearContrato_MensajeValidacionDatosEnBlanco : resultadoValidacion.Mensaje;
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               mensaje, MessageBoxButton.OK, MessageImage.Stop);
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Valida los campos toneladas e importe
        /// </summary>
        /// <returns></returns>
        private ResultadoValidacion ValidarCampos()
        {
            var resultado = new ResultadoValidacion();

            if ((String.IsNullOrEmpty(TxtToneladas.Text) || !TxtToneladas.Value.HasValue))
            {
                TxtToneladas.Focus();
                resultado.Resultado = false;
                resultado.Mensaje   = Properties.Resources.RegistrarCompraParcial_ValidacionToneladas;
                return(resultado);
            }

            if (String.IsNullOrEmpty(TxtImporte.Text) || !TxtImporte.Value.HasValue)
            {
                TxtImporte.Focus();
                resultado.Resultado = false;
                resultado.Mensaje   = Properties.Resources.RegistrarCompraParcial_ValidacionImporte;
                return(resultado);
            }

            //Validar toneladas contrato
            var toneladasIngresadas = TxtToneladas.Value.Value;
            var toneladasAgregadas  = listaContratoParcial.Sum(contratoParcialInfo => contratoParcialInfo.Cantidad);
            var toneladasTotales    = toneladasIngresadas + toneladasAgregadas;
            var toneladasPermitidas = toneladasContrato + ((toneladasContrato / 100) * toleranciaContrato);

            if (toneladasPermitidas < toneladasTotales)
            {
                TxtToneladas.Focus();
                resultado.Resultado = false;
                resultado.Mensaje   = Properties.Resources.CrearContrato_CapturarValidacionToneladasContrato;
                return(resultado);
            }

            resultado.Resultado = true;
            return(resultado);
        }
 /// <summary>
 /// Se ejecuta al cargar el form
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void RegistrarCompraParcial_OnLoaded(object sender, RoutedEventArgs e)
 {
     DefinirPantalla();
     TxtToneladas.Focus();
 }