/// <summary>
        /// Manda llamar ventana de registro de presentaciones
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPresentaciones_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
        {
            GestionPresentaciones vista = new GestionPresentaciones();

            vista.Show();
        }
        public void guardarModificar()
        {
            if (!String.IsNullOrEmpty(txtDescripcion.Text) && !String.IsNullOrEmpty(txtCpromedio.Text) && !String.IsNullOrEmpty(txtCCimpuesto.Text) && cbxInventariable.SelectedItem != null && !String.IsNullOrEmpty(txtUCosto.Text) && cbxGrupos.SelectedItem != null && cbxUmedida.SelectedItem != null)
            {
                SDK.tProduto cProducto = new SDK.tProduto();
                cProducto.cNombreProducto      = txtDescripcion.Text;
                cProducto.cCodigoProducto      = txtCodigoInsumo.Text;
                cProducto.cDescripcionProducto = txtDescripcion.Text;
                cProducto.cImpuesto1           = Double.Parse(txtIva.Text);
                cProducto.cTipoProducto        = 1;
                cProducto.cMetodoCosteo        = 1;
                String[] unidades = cbxUmedida.SelectedItem.ToString().Split('|');
                string   idUnidad = unidades[0].Trim();
                cProducto.cPrecio1 = Double.Parse(txtUCosto.Text);
                String[] clasificacion       = cbxValoresDeClasificaciones.SelectedItem.ToString().Split('|');
                string   codigoClasificacion = clasificacion[0].Trim();


                insumo_activo.codigoInsumo       = txtCodigoInsumo.Text;
                insumo_activo.descripcion        = txtDescripcion.Text;
                insumo_activo.costo_promedio     = float.Parse(txtCpromedio.Text);
                insumo_activo.costo_con_impuesto = float.Parse(txtCCimpuesto.Text);
                insumo_activo.inventariable      = cbxInventariable.SelectedItem.ToString();
                insumo_activo.IVA          = float.Parse(txtIva.Text);
                insumo_activo.maximo       = float.Parse(txtMaximo.Text);
                insumo_activo.minimo       = float.Parse(txtMinimo.Text);
                insumo_activo.ultimo_costo = float.Parse(txtUCosto.Text);
                insumo_activo.Grupo        = grupo.obtener(cbxGrupos.SelectedItem.ToString());
                insumo_activo.grupo_id     = insumo_activo.Grupo.id;
                string nameUnidad = unidades[1].Trim();
                insumo_activo.Unidad_Medida = unidad.obtener(nameUnidad);
                insumo_activo.unidad_id     = insumo_activo.Unidad_Medida.id;
                if (tblLista.CurrentItem == null)
                {
                    if (estado_de_insumo == "Nuevo")
                    {
                        Int32 aldProducto = 0;
                        int   error       = SDK.fAltaProducto(ref aldProducto, ref cProducto);
                        if (error == 0)
                        {
                            SDK.fBuscaProducto(cProducto.cCodigoProducto);
                            SDK.fEditaProducto();
                            SDK.fSetDatoProducto("CIDVALORCLASIFICACION1", codigoClasificacion);
                            SDK.fSetDatoProducto("CBANUNIDADES", idUnidad);
                            SDK.fSetDatoProducto("CIDUNIDADBASE", idUnidad);
                            SDK.fSetDatoProducto("CCONTROLEXISTENCIA", "1");
                            SDK.fGuardaProducto();
                            insumo_activo.registrar(insumo_activo);
                            llenarInsumos();
                            MessageBox.Show("EL INSUMO " + insumo_activo.descripcion + " SE REGISTRÓ CORRECTAMENTE \n ¡Puedes Agregar presentaciones a través de tu factura xml de compra! \n También puedes registrarlos manualmente en el módulo gestión de presentaciones");
                            this.Close();
                        }
                        else
                        {
                            SDK.rError(error);
                        }
                    }
                    else
                    {
                        GestionPresentaciones vista = new GestionPresentaciones();
                        vista.addInsumo(insumo_activo);
                        vista.Show();
                        this.Close();
                    }
                }
                else
                {
                    System.Data.DataRowView seleccion = (System.Data.DataRowView)tblLista.SelectedItem;
                    insumo_activo.id = Convert.ToInt32(seleccion.Row.ItemArray[0].ToString());
                    string codigoInsumo = txtCodigoInsumo.Text;
                    int    error        = SDK.fBuscaProducto(codigoInsumo);
                    SDK.fEditaProducto();
                    if (error == 0)
                    {
                        error = SDK.fSetDatoProducto("CNOMBREPRODUCTO", cProducto.cNombreProducto);
                        error = SDK.fSetDatoProducto("CCODIGOPRODUCTO", cProducto.cCodigoProducto);
                        error = SDK.fSetDatoProducto("CDESCRIPCIONPRODUCTO", cProducto.cNombreProducto);
                        error = SDK.fSetDatoProducto("CIMPUESTO1", Convert.ToString(cProducto.cImpuesto1));
                        error = SDK.fSetDatoProducto("CPRECIO1", Convert.ToString(cProducto.cPrecio1));
                        error = SDK.fSetDatoProducto("CIDVALORCLASIFICACION1", codigoClasificacion);
                        SDK.fSetDatoProducto("CBANUNIDADES", idUnidad);
                        SDK.fSetDatoProducto("CIDUNIDADBASE", idUnidad);
                        SDK.fSetDatoProducto("CCONTROLEXISTENCIA", "1");

                        error = SDK.fGuardaProducto();
                        if (error == 0)
                        {
                            insumo_activo.modificar(insumo_activo);
                            if (estado_de_insumo != "Nuevo")
                            {
                                GestionPresentaciones vista = new GestionPresentaciones();
                                vista.addInsumo(insumo_activo);
                                vista.Show();
                            }
                            if (exit == true)
                            {
                                this.Close();
                            }
                            else
                            {
                                llenarInsumos();
                                clearFields();
                            }
                        }
                        else
                        {
                            SDK.rError(error);
                        }
                    }
                    else
                    {
                        SDK.rError(error);
                    }
                }
            }
            else
            {
                if (!String.IsNullOrEmpty(txtDescripcion.Text) || !String.IsNullOrEmpty(txtUCosto.Text))
                {
                    MessageBox.Show("¡AVISO! \n > Falta Ingresar Algunos Campos Importantes \n    Es Necesario Ingresarlos");
                }
                else
                {
                    if (exit == true)
                    {
                        this.Close();
                    }
                    else
                    {
                        clearFields();
                    }
                }
            }
        }