private void btnCantidad()
        {
            if (dgvGrilla.CurrentRow == null)
            {
                MostrarMensajeAdvertencia(Mensajes.SeleccionarItem);
                return;
            }

            var guid = dgvGrilla.CurrentRow.Cells["DETP_GUID"].Value.ToString();
            DETALLE_PRESUPUESTO FilaSeleccionada = LineasEnGrilla.First(x => x.DETP_GUID == guid);
            var ingresaMedianteCodBarra = (bool)dgvGrilla.CurrentRow.Cells["INGRESAMEDIANTECODBARRA"].Value;
            if (FilaSeleccionada == null)
                return;

            TipoUnidad = Constantes.Unidad;

            if (FilaSeleccionada.PRO_ID != null)
            {
                if (FilaSeleccionada.PRODUCTO != null && FilaSeleccionada.PRODUCTO.PRO_GRANEL == false)
                {
                    if (FilaSeleccionada.PRODUCTO.PRO_CODBALANZA != null)
                    {
                        MostrarMensajeInformativo("No se puede modificar la cantidad de un producto balanza o a un producto sin codigo");
                        return;
                    }
                }

                TipoUnidad = FilaSeleccionada.PRODUCTO.TIPO_UNIDAD.TUNI_DESCRIPCION;
            }

            if (FilaSeleccionada.CAT_ID != null)
            {
                MostrarMensajeInformativo("No se puede modificar la cantidad a un producto sin codigo");
                return;
            }

            //controlo si es envases
            if (FilaSeleccionada.ENV_ID != null)
            {
                //MostrarMensajeAdvertencia("No se puede modificar la cantidad de un Envase.");
                //return;
            }

            frmCANTIDAD frm = new frmCANTIDAD(TipoUnidad, "frmPRESUPUESTO", FilaSeleccionada.DETP_CANTIDAD);
            DialogResult dr = frm.ShowDialog();
            if (dr == DialogResult.OK)
            {
                //controla la cantidad
                //if (!ControlaCantidad(FilaSeleccionada.PRODUCTO, cantidadProd))
                //{
                //    MostrarMensajeAdvertencia(Mensajes.ProductoSinStock);
                //    return;
                //}

                var totalvta = Convert.ToDecimal(txtTotal.Text);
                var precioVta = FilaSeleccionada.DETP_PRECIOUNIDAD;

                if (!ControlaSumaVenta(precioVta, cantidadProd, totalvta))
                    return;

                FilaSeleccionada.DETP_CANTIDAD = decimal.Round(cantidadProd, 3);
                FilaSeleccionada.DETP_TOTAL = decimal.Round(FilaSeleccionada.DETP_PRECIOUNIDAD * FilaSeleccionada.DETP_TOTAL, 3);

                LineasEnGrilla.First(x => x.DETP_GUID == guid).DETP_CANTIDAD = Convert.ToDecimal(FilaSeleccionada.DETP_CANTIDAD.ToString("0.000"));
                LineasEnGrilla.First(x => x.DETP_GUID == guid).DETP_TOTAL = Convert.ToDecimal(FilaSeleccionada.DETP_TOTAL.ToString("0.000"));

                LlenaLabelTotales();
            }

            txtCodigoBarra.Text = string.Empty;
            txtCodigoBarra.Focus();
        }
        private void btnCantidad()
        {
            if (dgvGrilla.CurrentRow == null)
            {
                MostrarMensajeAdvertencia(Mensajes.SeleccionarItem);
                return;
            }

            var guid = dgvGrilla.CurrentRow.Cells["DDEV_GUID"].Value.ToString();
            DETALLE_DEVOLUCION FilaSeleccionada = LineasEnGrilla.First(x => x.DDEV_GUID == guid);
            if (FilaSeleccionada == null)
                return;

            var cantadevolver = FilaSeleccionada.DDEV_CANTIDADDEVUELTA + FilaSeleccionada.DDEV_CANTIDADADEVOLVER;
            var cantidad = FilaSeleccionada.DDEV_CANTIDAD;
            if (cantidad <= cantadevolver)
            {
                MostrarMensajeInformativo("El producto seleccionado supera o ya fue devuelta su totalidad en dicha compra.");
                cantidadProd = 0;
                return;
            }
            TipoUnidad = Constantes.Unidad;

            if (FilaSeleccionada.PRO_ID != null)
            {
                if (FilaSeleccionada.PRODUCTO.PRO_CODBALANZA != null)
                {
                    MostrarMensajeInformativo("Al ser un producto balanza se puede devolver la totalidad del producto.");
                    FilaSeleccionada.DDEV_CANTIDADADEVOLVER = FilaSeleccionada.DDEV_CANTIDAD;
                    FilaSeleccionada.DDEV_TOTAL = FilaSeleccionada.DDEV_TOTAL;
                    LlenaLabelTotales();
                    return;
                }

                TipoUnidad = FilaSeleccionada.PRODUCTO.TIPO_UNIDAD.TUNI_DESCRIPCION;
            }

            if (FilaSeleccionada.CAT_ID != null)
            {
                MostrarMensajeInformativo("Al ser un producto balanza o sin codigo solo se puede devolver la totalidad del producto.");
                FilaSeleccionada.DDEV_CANTIDADADEVOLVER = FilaSeleccionada.DDEV_CANTIDAD;
                FilaSeleccionada.DDEV_TOTAL = FilaSeleccionada.DDEV_TOTAL;
                LlenaLabelTotales();
                return;
            }

            //controlo si es envases
            if (FilaSeleccionada.ENV_ID != null)
            {
                //MostrarMensajeAdvertencia("No se puede modificar la cantidad de un Envase.");
                //return;
            }

            frmCANTIDAD frm = new frmCANTIDAD(TipoUnidad, "frmDEVOLUCION", FilaSeleccionada.DDEV_CANTIDADADEVOLVER);
            DialogResult dr = frm.ShowDialog();
            if (dr == DialogResult.OK)
            {
                cantadevolver = FilaSeleccionada.DDEV_CANTIDADDEVUELTA + cantidadProd;

                //cantidad = Convert.ToDecimal(FilaSeleccionada["Cantidad"]);
                if (cantidad < (cantadevolver))
                {
                    MostrarMensajeInformativo("El producto seleccionado supera o ya fue devuelta su totalidad en dicha compra.");
                    cantidadProd = 0;
                    return;
                }

                LineasEnGrilla.First(x => x.DDEV_GUID == guid).DDEV_CANTIDADADEVOLVER = Convert.ToDecimal(((decimal)cantadevolver).ToString("0.000"));
                LineasEnGrilla.First(x => x.DDEV_GUID == guid).DDEV_TOTAL = Convert.ToDecimal(FilaSeleccionada.DDEV_TOTAL.ToString("0.000"));

                LlenaLabelTotales();
            }

            //txtNroTicket.Text = "";
            //txtNroTicket.Focus();
        }
 public static frmCANTIDAD ObtenerInstancia(string tUnidad, string frm, decimal cant)
 {
     if (_instancia == null) _instancia = new frmCANTIDAD(tUnidad, frm, cant);
     if (_instancia.IsDisposed) _instancia = new frmCANTIDAD(tUnidad, frm, cant);
     return _instancia;
 }