Exemplo n.º 1
0
        private void OnUpdateData(object sender, EventArgs e)
        {
            Object           ChildrenValue, ChildrenLabel;
            ShowData         HeaderDataSave;
            string           XmlData;
            string           CodigoCampo;
            DataDefinition   IsRequiredField;
            bool             ControlIsRequired;
            IList <ShowData> DetailDataList;

            //Deserializo el Xml para obtener el Showdata
            DetailDataList = Util.DeserializeMetaDataWF(View.Model.DataInformationSearch.XmlData);
            //Inicializo la lista de los datos a convertir en Xml
            View.Model.ListDataSave = new List <ShowData>();
            //Obtengo los datos de los campos
            foreach (UIElement UIElement in View.GetStackPanelDinamicos.Children)
            {
                try
                {
                    //Obtengo el label y el valor digitado
                    ChildrenLabel = UIElement.GetType().GetProperty("UcLabel").GetValue(UIElement, null);
                    ChildrenValue = UIElement.GetType().GetProperty("UcValue").GetValue(UIElement, null);
                    //Obtengo el codigo del campo
                    CodigoCampo = UIElement.GetType().GetProperty("Name").GetValue(UIElement, null).ToString();
                    CodigoCampo = CodigoCampo.Replace("f_", "");
                    //Traigo sus datos de creacion
                    IsRequiredField = service.GetDataDefinition(new DataDefinition {
                        Code = CodigoCampo
                    }).First();
                    //Evaluo si el campo es obligatorio

                    /*if (IsRequiredField.IsRequired == true && String.IsNullOrEmpty(ChildrenValue == null ? "" : ChildrenValue.ToString()))
                     *  ControlIsRequired = false;
                     * else*/
                    ControlIsRequired = true;
                    //Evaluo si puedo continuar dependiendo de si el dato era requerido y fue digitado o no
                    if (ControlIsRequired)
                    {
                        //Evaluo si existe el dato que estoy leyendo para quitarlo del listado anterior
                        try
                        {
                            HeaderDataSave = DetailDataList.Where(f => f.DataKey == CodigoCampo.ToString()).First();
                            DetailDataList.Remove(HeaderDataSave);
                        }
                        //En caso de no existir no quito nada
                        catch { }
                        //Creo el ShowData con los datos de ChildrenLabel y ChildrenValue
                        HeaderDataSave = new ShowData
                        {
                            DataKey   = CodigoCampo.ToString(),
                            DataValue = ChildrenValue == null ? "" : ChildrenValue.ToString()
                        };
                        //Adiciono el ShowData al listado para crear el Xml
                        View.Model.ListDataSave.Add(HeaderDataSave);
                    }
                    else
                    {
                        Util.ShowError("El campo " + ChildrenLabel.ToString() + " no puede ser vacio.");
                        return;
                    }
                }
                catch { continue; }
            }
            try
            {
                //Concateno las listas de ShowData, la que estaba guardada y la nueva
                View.Model.ListDataSave = View.Model.ListDataSave.Concat(DetailDataList).ToList();
                //Convierto el listado de datos a un Xml
                XmlData = Util.XmlSerializerWF(View.Model.ListDataSave);
                //Evaluo el tipo de dato a editar(Document o Label)
                if (View.Model.DataInformationSearch.Entity.ClassEntityID == EntityID.Document)
                {
                    //Guardo los datos para el documento
                    UpdateDocumentData(XmlData);
                }
                if (View.Model.DataInformationSearch.Entity.ClassEntityID == EntityID.Label)
                {
                    //Guardo los datos para el label
                    UpdateLabelData(XmlData);
                }
                //Muestro el mensaje de confirmacion
                Util.ShowMessage("Los datos fueron editados correctamente");
            }
            catch (Exception Ex) { Util.ShowError("Hubo un error durante el proceso: " + Ex.Message); }
        }
        private void OnConfirmBasicData(object sender, EventArgs e)
        {
            Object         ChildrenValue, ChildrenLabel;
            ShowData       HeaderDataSave;
            string         XmlData;
            string         CodigoCampo;
            DataDefinition IsRequiredField;
            bool           ControlIsRequired;

            //Inicializo la lista de los datos a convertir en Xml
            View.Model.ListHeaderDataSave = new List <ShowData>();
            //Obtengo los datos de los campos
            foreach (UIElement UIElement in View.GetStackPanelHeader.Children)
            {
                try
                {
                    //Obtengo el label y el valor digitado
                    ChildrenLabel = UIElement.GetType().GetProperty("UcLabel").GetValue(UIElement, null);
                    ChildrenValue = UIElement.GetType().GetProperty("UcValue").GetValue(UIElement, null);
                    //Obtengo el codigo del campo
                    CodigoCampo = UIElement.GetType().GetProperty("Name").GetValue(UIElement, null).ToString();
                    CodigoCampo = CodigoCampo.Replace("f_", "");
                    //Traigo sus datos de creacion
                    IsRequiredField = service.GetDataDefinition(new DataDefinition {
                        Code = CodigoCampo
                    }).First();
                    //Evaluo si el campo es obligatorio
                    if (IsRequiredField.IsRequired == true && String.IsNullOrEmpty(ChildrenValue == null ? "" : ChildrenValue.ToString()))
                    {
                        ControlIsRequired = false;
                    }
                    else
                    {
                        ControlIsRequired = true;
                    }
                    //Evaluo si puedo continuar dependiendo de si el dato era requerido y fue digitado o no
                    if (ControlIsRequired)
                    {
                        //Creo el ShowData con los datos de CodigoCampo y ChildrenValue
                        HeaderDataSave = new ShowData
                        {
                            DataKey   = CodigoCampo.ToString(),
                            DataValue = ChildrenValue == null ? "" : ChildrenValue.ToString()
                        };
                        //Adiciono el ShowData al listado para crear el Xml
                        View.Model.ListHeaderDataSave.Add(HeaderDataSave);
                    }
                    else
                    {
                        Util.ShowError("El campo " + ChildrenLabel.ToString() + " no puede ser vacio.");
                        return;
                    }
                }
                catch { continue; }
            }
            try
            {
                //Convierto el listado de datos a un Xml
                XmlData = Util.XmlSerializerWF(View.Model.ListHeaderDataSave);
                //Asigno los datos del documento para guardar
                View.Model.HeaderDocument.Location = LocationDespachos;
                View.Model.HeaderDocument.DocType  = new DocumentType {
                    DocTypeID = SDocType.SalesOrder
                };
                View.Model.HeaderDocument.IsFromErp    = false;
                View.Model.HeaderDocument.CrossDocking = false;
                View.Model.HeaderDocument.Vendor       = service.GetAccount(new Account {
                    AccountCode = WmsSetupValues.DEFAULT
                }).First();
                View.Model.HeaderDocument.Customer = service.GetAccount(new Account {
                    AccountCode = WmsSetupValues.DEFAULT
                }).First();
                View.Model.HeaderDocument.Date1     = DateTime.Now;
                View.Model.HeaderDocument.CreatedBy = App.curUser.UserName;
                View.Model.HeaderDocument.Company   = new Company {
                    CompanyID = App.curCompany.CompanyID
                };
                //Guardo el Documento
                View.Model.HeaderDocument = service.CreateNewDocument(View.Model.HeaderDocument, true);
                //Creo el DataInformation del Header para el Xml
                View.Model.DataInformationHeader = new DataInformation
                {
                    Entity = new ClassEntity {
                        ClassEntityID = 6
                    },
                    EntityRowID  = View.Model.HeaderDocument.DocID,
                    XmlData      = XmlData,
                    CreationDate = DateTime.Now,
                    CreatedBy    = App.curUser.UserName
                };
                //Guardo el Xml en la tabla DataInformation
                View.Model.DataInformationHeader = service.SaveDataInformation(View.Model.DataInformationHeader);
                //Inhabilito el boton de Guardar, muestro Cancelar y oculto Nuevo
                View.GetButtonConfirmar.IsEnabled = false;
                View.GetButtonNuevo.Visibility    = Visibility.Collapsed;
                View.GetButtonCancelar.Visibility = Visibility.Visible;
                //Inhabilito el combobox de bin de ingreso
                View.GetListBinInicio.IsEnabled = false;
                //Muestro el boton para mostrar los datos del header y oculto header
                View.GetTextHideShowHeader.Visibility = Visibility.Visible;
                View.GetBorderHeader.Visibility       = Visibility.Collapsed;
                //Cargo los datos para el detalle, los seriales y muestro
                CargarSeriales();
                CargarDatosDetails();
                View.BorderDetails.Visibility = Visibility.Visible;
                //Muestro el mensaje de confirmacion
                Util.ShowMessage("El documento se guardo satisfactoriamente");
            }
            catch (Exception Ex) { Util.ShowError("Hubo un error durante el proceso: " + Ex.Message); }
        }