private void UiVistaSolicitudTraslado_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
        {
            var view = sender as GridView;

            if (view == null || view.FocusedColumn.FieldName != "QTY")
            {
                return;
            }
            var registro = (Sku)UiVistaSolicitudTraslado.GetRow(view.FocusedRowHandle);

            try
            {
                var qty = double.Parse(e.Value.ToString());
                registro.QTY = qty;
                Materiales.Where(mt => mt.MATERIAL_ID == registro.MATERIAL_ID).ToList().ForEach(mt => mt.QTY = qty);
                if (!(qty <= 0))
                {
                    return;
                }
                e.Valid     = false;
                e.ErrorText = "La cantidad debe de ser mayor a 0";
            }
            catch (Exception)
            {
                e.Valid     = false;
                e.ErrorText = "Cantidad inválida.";
            }
        }
        private string PrepararMateriales()
        {
            if (Materiales == null)
            {
                return(null);
            }
            var cadena = new StringBuilder();

            foreach (var objeto in Materiales.Where(doc => doc.IS_SELECTED))
            {
                if (cadena.Length > 0)
                {
                    cadena.Append("|");
                }
                cadena.Append(objeto.MATERIAL_ID);
            }
            return(cadena.ToString());
        }
        private string ObtenerTextoAMostrarListaSkus()
        {
            if (Materiales == null)
            {
                return("");
            }
            var cadena = new StringBuilder();

            foreach (var documento in Materiales.Where(doc => doc.IS_SELECTED))
            {
                if (cadena.Length > 0)
                {
                    cadena.Append(",");
                }
                cadena.Append(documento.MATERIAL_NAME);
            }
            return(cadena.ToString());
        }
 private void UiVistaSolicitudTraslado_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
 {
     if (e.Column != colQTY)
     {
         return;
     }
     try
     {
         if (decimal.Parse(e.Value.ToString()) >= 0)
         {
             return;
         }
         var qty        = double.Parse(e.Value.ToString());
         var materialId = UiVistaSolicitudTraslado.GetRowCellValue(e.RowHandle, colMATERIAL_ID);
         Materiales.Where(mt => mt.MATERIAL_ID == materialId.ToString()).ToList().ForEach(mt => mt.QTY = qty);
     }
     catch (Exception)
     {
         // ignored
     }
 }
        private void UiBotonGrabar_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (ValidarCamposGuardar())
            {
                return;
            }
            var listadoNegativos = Materiales.Where(mt => mt.IS_SELECTED && mt.QTY <= 0).ToList();

            if (listadoNegativos.Count > 0)
            {
                InteraccionConUsuarioServicio.Mensaje("La cantidad de los materiales debe ser mayor a 0.");
                return;
            }
            var listadoMateriales = Materiales.Where(mt => mt.IS_SELECTED && mt.QTY > 0).ToList();

            if (listadoMateriales.Count == 0)
            {
                InteraccionConUsuarioServicio.Mensaje("Debe de seleccionar al menos un material para la solicitud de traslado.");
                return;
            }
            UsuarioDeseaGuardarSolicitudDeTraslado?.Invoke(sender, new SolicitudDeTrasladoArgumento
            {
                SolicitudDeTrasladoEncabezado = new SolicitudDeTrasladoEncabezado
                {
                    REQUEST_TYPE   = UiListaTipo.EditValue.ToString(),
                    WAREHOUSE_FROM = UiListaBodegaOrigen.EditValue.ToString(),
                    WAREHOUSE_TO   = UiListaBodegaDestino.EditValue.ToString(),
                    DELIVERY_DATE  = UiFechaEntrega.DateTime,
                    COMMENT        = UiTextoComentario.Text,
                    STATUS         = EstadoSolicitudDeTraslado.OPEN.ToString(),
                    CREATED_BY     = InteraccionConUsuarioServicio.ObtenerUsuario(),
                    IS_FROM_ERP    = UiCheckEnviarErp.Checked ? (int)SiNo.Si : (int)SiNo.No
                },
                ListadoMateriales = listadoMateriales
            });


            BuscarSolicitudDeTraslado(sender, IdSolicitudDeTraslado);
        }