public Object editarMaterial(Materiales material, MaterialesContable materialesContable)
        {
            try
            {
                using (var bd = new AlmacenEntities())
                {
                    Object result = "";
                    var    idMC   = bd.MaterialesContable.AsNoTracking().Where(s => s.idMaterial == material.idMaterial).FirstOrDefault().idMaterialesCont;
                    materialesContable.idMaterialesCont = idMC;
                    bd.Entry(material).State            = System.Data.Entity.EntityState.Modified;
                    bd.Entry(materialesContable).State  = System.Data.Entity.EntityState.Modified;
                    bd.SaveChanges();
                    result = new { message = "Se edito correctamente", code = 1 };

                    return(result);
                }
            }
            catch (SqlException odbcEx)
            {
                Object result = new { message = "Error: " + odbcEx.Message.ToString(), code = 2 };
                return(result);
            }
            catch (Exception ex)
            {
                Object result = new { message = "Error: " + ex.Message.ToString(), code = 2 };
                return(result);
            }
        }
        public Object guardarMaterial(Materiales material, MaterialesContable materialContable)
        {
            try
            {
                using (var bd = new AlmacenEntities())
                {
                    Object          result = "";
                    AlmacenEntities db     = new AlmacenEntities();
                    var             us     = db.Materiales.Where(u => u.idMaterial == material.idMaterial).FirstOrDefault();
                    if (us == null)
                    {
                        bd.Materiales.Add(material);
                        bd.SaveChanges();
                        bd.MaterialesContable.Add(materialContable);
                        bd.SaveChanges();
                        result = new { message = "Se guardo correctamente", code = 1 };
                    }
                    else
                    {
                        result = new { message = "Ya existe este material: " + material.idMaterial, code = 2 };
                    }

                    return(result);
                }
            }
            catch (SqlException odbcEx)
            {
                Object result = new { message = "Error: " + odbcEx.Message.ToString(), code = 2 };
                return(result);
            }
            catch (Exception ex)
            {
                Object result = new { message = "Error: " + ex.Message.ToString(), code = 2 };
                return(result);
            }
        }
        private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try {
                Cursor.Current = Cursors.WaitCursor;
                if (tipo.Equals('N'))
                {
                    CheckControls(tabPage2);
                    if (contT == 0)
                    {
                        if (Int32.Parse(editGrupo.Text) != 0 && Int32.Parse(editSubGrupo.Text) != 0)
                        {
                            vaciarCamposBusq();
                            Materiales         m  = new Materiales();
                            MaterialesContable mc = new MaterialesContable();
                            var idMaterial        = s.getDig(editGrupo.Text, editSubGrupo.Text);
                            m.idMaterial         = Int32.Parse(idMaterial);
                            m.materialReferencia = idMaterial;
                            m.descripcion        = editDesc.Text;
                            m.uMedida            = editUnidadM.Text;
                            m.marca          = editMarca.Text;
                            m.existencia     = decimal.Parse(editExistencia.Text);
                            m.localizacion   = editLocali.Text;
                            m.minimo         = decimal.Parse(editMinimo.Text);
                            m.maximo         = decimal.Parse(editMaximo.Text);
                            m.costoProm      = decimal.Parse(editCostoP.Text);
                            m.costoPromAnt   = decimal.Parse(editCostoPA.Text);
                            m.cantIni        = decimal.Parse(editCantidadI.Text);
                            m.importeIni     = decimal.Parse(editImporteI.Text);
                            m.importe        = decimal.Parse(editImporte.Text);
                            m.fechaUltimoMov = editFechaU.DateTime;
                            m.puntoPedido    = decimal.Parse(editPuntoP.Text);
                            m.pedidoEstandar = decimal.Parse(editPedidoE.Text);
                            m.herramienta    = editHerramienta.Checked;
                            m.seguridadInd   = editSeguridad.Checked;
                            m.adjunto        = carpetaAdjunto + "Material-" + idMaterial;
                            string url = editImagen.Text.ToLower();

                            String ext = (url.EndsWith(".png")) ? ".png" : ".jpg";
                            m.imagen = "Material-" + idMaterial + ext;


                            mc.idMaterial         = Int32.Parse(idMaterial);
                            mc.cuenta_F_Z         = Int32.Parse(cuenta_F_Z.Text);
                            mc.aplicaCentCost_F_Z = aplicaCentCost_F_Z.Checked;
                            mc.subCuenta_F_Z      = Int32.Parse(subCuenta_F_Z.Text);
                            mc.subSubCuenta_F_Z   = Int32.Parse(subSubCuenta_F_Z.Text);
                            mc.cuenta_A_Z         = Int32.Parse(cuenta_A_Z.Text);
                            mc.aplicaCentCost_A_Z = aplicaCentCost_A_Z.Checked;
                            mc.subCuenta_A_Z      = Int32.Parse(subCuenta_A_Z.Text);
                            mc.subSubCuenta_A_Z   = Int32.Parse(subSubCuenta_A_Z.Text);
                            mc.cuenta_C_Z         = Int32.Parse(cuenta_C_Z.Text);
                            mc.aplicaCentCost_C_Z = aplicaCentCost_C_Z.Checked;
                            mc.subCuenta_C_Z      = Int32.Parse(subCuenta_C_Z.Text);
                            mc.subSubCuenta_C_Z   = Int32.Parse(subSubCuenta_C_Z.Text);
                            mc.cuenta_D_Z         = Int32.Parse(cuenta_D_Z.Text);
                            mc.aplicaCentCost_D_Z = aplicaCentCost_D_Z.Checked;
                            mc.subCuenta_D_Z      = Int32.Parse(subCuenta_D_Z.Text);
                            mc.subSubCuenta_D_Z   = Int32.Parse(subSubCuenta_D_Z.Text);
                            mc.cuenta_F_R         = Int32.Parse(cuenta_F_R.Text);
                            mc.aplicaCentCost_F_R = aplicaCentCost_F_R.Checked;
                            mc.subCuenta_F_R      = Int32.Parse(subCuenta_F_R.Text);
                            mc.subSubCuenta_F_R   = Int32.Parse(subSubCuenta_F_R.Text);
                            mc.cuenta_A_R         = Int32.Parse(cuenta_A_R.Text);
                            mc.aplicaCentCost_A_R = aplicaCentCost_A_R.Checked;
                            mc.subCuenta_A_R      = Int32.Parse(subCuenta_A_R.Text);
                            mc.subSubCuenta_A_R   = Int32.Parse(subSubCuenta_A_R.Text);
                            mc.cuenta_C_R         = Int32.Parse(cuenta_C_R.Text);
                            mc.aplicaCentCost_C_R = aplicaCentCost_C_R.Checked;
                            mc.subCuenta_C_R      = Int32.Parse(subCuenta_C_R.Text);
                            mc.subSubCuenta_C_R   = Int32.Parse(subSubCuenta_C_R.Text);
                            mc.cuenta_D_R         = Int32.Parse(cuenta_D_R.Text);
                            mc.aplicaCentCost_D_R = aplicaCentCost_D_R.Checked;
                            mc.subCuenta_D_R      = Int32.Parse(subCuenta_D_R.Text);
                            mc.subSubCuenta_D_R   = Int32.Parse(subSubCuenta_D_R.Text);

                            Object item = s.guardarMaterial(m, mc);

                            System.Reflection.PropertyInfo msg = item.GetType().GetProperty("message");
                            System.Reflection.PropertyInfo c   = item.GetType().GetProperty("code");
                            String message = (String)(msg.GetValue(item, null));
                            int    code    = (int)(c.GetValue(item, null));

                            if (code == 1)
                            {
                                s.crearImagen(editImagen.Text, "Material", idMaterial);

                                string urlN = s.crearCarpetaAdjunto("Material-" + idMaterial);
                                s.crearImagenes(editAdjunto.Text, "Material", idMaterial, urlN);

                                ResetControls(tabPage2);
                                DisableControls(tabPage2);
                                tipo = 's';
                                Recargar();
                                this.tabControl1.SelectTab(0);
                                MessageBox.Show(message, "OK", MessageBoxButtons.OK, MessageBoxIcon.None);
                            }
                            else if (code == 2)
                            {
                                MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Grupo o SubGrupo no puede ser 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Se deben de llenar todos los campos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    contT = 0;
                }
                else if (tipo.Equals('E'))
                {
                    CheckControls(tabPage2);
                    if (contT == 0)
                    {
                        if (Int32.Parse(editGrupo.Text) != 0 && Int32.Parse(editSubGrupo.Text) != 0)
                        {
                            vaciarCamposBusq();
                            Materiales         m  = new Materiales();
                            MaterialesContable mc = new MaterialesContable();
                            m.idMaterial         = materialA;
                            m.materialReferencia = idMaterialRef;
                            m.descripcion        = editDesc.Text;
                            m.uMedida            = editUnidadM.Text;
                            m.marca          = editMarca.Text;
                            m.existencia     = decimal.Parse(editExistencia.Text);
                            m.localizacion   = editLocali.Text;
                            m.minimo         = decimal.Parse(editMinimo.Text);
                            m.maximo         = decimal.Parse(editMaximo.Text);
                            m.costoProm      = decimal.Parse(editCostoP.Text);
                            m.costoPromAnt   = decimal.Parse(editCostoPA.Text);
                            m.cantIni        = decimal.Parse(editCantidadI.Text);
                            m.importeIni     = decimal.Parse(editImporteI.Text);
                            m.importe        = decimal.Parse(editImporte.Text);
                            m.fechaUltimoMov = editFechaU.DateTime;
                            m.puntoPedido    = decimal.Parse(editPuntoP.Text);
                            m.pedidoEstandar = decimal.Parse(editPedidoE.Text);
                            m.herramienta    = editHerramienta.Checked;
                            m.seguridadInd   = editSeguridad.Checked;
                            m.adjunto        = carpetaAdjunto + "Material-" + idMaterialRef;
                            string url = editImagen.Text.ToLower();

                            String ext = (url.EndsWith(".png")) ? ".png" : ".jpg";
                            m.imagen = "Material-" + idMaterialRef + ext;

                            mc.idMaterial         = materialA;
                            mc.cuenta_F_Z         = Int32.Parse(cuenta_F_Z.Text);
                            mc.aplicaCentCost_F_Z = aplicaCentCost_F_Z.Checked;
                            mc.subCuenta_F_Z      = Int32.Parse(subCuenta_F_Z.Text);
                            mc.subSubCuenta_F_Z   = Int32.Parse(subSubCuenta_F_Z.Text);
                            mc.cuenta_A_Z         = Int32.Parse(cuenta_A_Z.Text);
                            mc.aplicaCentCost_A_Z = aplicaCentCost_A_Z.Checked;
                            mc.subCuenta_A_Z      = Int32.Parse(subCuenta_A_Z.Text);
                            mc.subSubCuenta_A_Z   = Int32.Parse(subSubCuenta_A_Z.Text);
                            mc.cuenta_C_Z         = Int32.Parse(cuenta_C_Z.Text);
                            mc.aplicaCentCost_C_Z = aplicaCentCost_C_Z.Checked;
                            mc.subCuenta_C_Z      = Int32.Parse(subCuenta_C_Z.Text);
                            mc.subSubCuenta_C_Z   = Int32.Parse(subSubCuenta_C_Z.Text);
                            mc.cuenta_D_Z         = Int32.Parse(cuenta_D_Z.Text);
                            mc.aplicaCentCost_D_Z = aplicaCentCost_D_Z.Checked;
                            mc.subCuenta_D_Z      = Int32.Parse(subCuenta_D_Z.Text);
                            mc.subSubCuenta_D_Z   = Int32.Parse(subSubCuenta_D_Z.Text);
                            mc.cuenta_F_R         = Int32.Parse(cuenta_F_R.Text);
                            mc.aplicaCentCost_F_R = aplicaCentCost_F_R.Checked;
                            mc.subCuenta_F_R      = Int32.Parse(subCuenta_F_R.Text);
                            mc.subSubCuenta_F_R   = Int32.Parse(subSubCuenta_F_R.Text);
                            mc.cuenta_A_R         = Int32.Parse(cuenta_A_R.Text);
                            mc.aplicaCentCost_A_R = aplicaCentCost_A_R.Checked;
                            mc.subCuenta_A_R      = Int32.Parse(subCuenta_A_R.Text);
                            mc.subSubCuenta_A_R   = Int32.Parse(subSubCuenta_A_R.Text);
                            mc.cuenta_C_R         = Int32.Parse(cuenta_C_R.Text);
                            mc.aplicaCentCost_C_R = aplicaCentCost_C_R.Checked;
                            mc.subCuenta_C_R      = Int32.Parse(subCuenta_C_R.Text);
                            mc.subSubCuenta_C_R   = Int32.Parse(subSubCuenta_C_R.Text);
                            mc.cuenta_D_R         = Int32.Parse(cuenta_D_R.Text);
                            mc.aplicaCentCost_D_R = aplicaCentCost_D_R.Checked;
                            mc.subCuenta_D_R      = Int32.Parse(subCuenta_D_R.Text);
                            mc.subSubCuenta_D_R   = Int32.Parse(subSubCuenta_D_R.Text);

                            Object item = s.editarMaterial(m, mc);

                            System.Reflection.PropertyInfo msg = item.GetType().GetProperty("message");
                            System.Reflection.PropertyInfo c   = item.GetType().GetProperty("code");
                            String message = (String)(msg.GetValue(item, null));
                            int    code    = (int)(c.GetValue(item, null));

                            if (code == 1)
                            {
                                s.crearImagen(editImagen.Text, "Material", idMaterialRef);
                                string urlN = s.crearCarpetaAdjunto("Material-" + idMaterialRef);
                                s.crearImagenes(editAdjunto.Text, "Material", idMaterialRef, urlN);

                                ResetControls(tabPage2);
                                DisableControls(tabPage2);
                                tipo = 's';
                                Recargar();
                                this.tabControl1.SelectTab(0);
                                MessageBox.Show(message, "OK", MessageBoxButtons.OK, MessageBoxIcon.None);
                            }
                            else if (code == 2)
                            {
                                MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Grupo o SubGrupo no puede ser 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Se deben de llenar todos los campos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    contT = 0;
                }
                else if (tipo.Equals('s'))
                {
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }