private bool CancelaVenta()
        {
            if (dgvGrilla.RowCount != 0)
            {
                var rta = MostrarMensajePreguntaSI_NO(string.Format("Desea Cancelar la Venta?", ""));
                if (!rta)
                {
                    return false;
                }

                if (eParametro.PAR_AUTORIZA_VTA == true)
                {
                    frmAUTORIZA frm = new frmAUTORIZA();
                    DialogResult dr = frm.ShowDialog();
                    if (dr != DialogResult.OK)
                    {
                        MostrarMensajeAdvertencia(Mensajes.AutorizacionFallo);
                        return false;
                    }
                }

                using (TransactionScope TRANSACCION = new TransactionScope())
                {
                    //guarda la venta cancelada
                    VENTA NuevaVta = new VENTA();
                    NuevaVta.VTA_FECHA = DateTime.Now;
                    NuevaVta.VTA_COLOR = null;
                    NuevaVta.VTA_PORCENTAJEDESCUENTO = Convert.ToDecimal(txtDescuento.Text);
                    NuevaVta.VTA_DIFTARJETA = Convert.ToDecimal(txtDiferenciaTarjeta.Text);
                    NuevaVta.VTA_SUBTOTAL = Convert.ToDecimal(txtSubtotal.Text);
                    NuevaVta.VTA_TOTAL = Convert.ToDecimal(txtTotal.Text);
                    NuevaVta.VTA_CACELADA = true;
                    NuevaVta.FOR_ID = FormaPago.FOR_ID;
                    NuevaVta.CAJ_ID = CajaPerteneciente.CAJ_ID;
                    //NuevaVta.COM_ID = null;//TODO: ver si esta bien Comprobante.COM_ID;
                    NuevaVta.VTA_MONTOPAGO = Convert.ToDecimal(lblPagaCon.Text);

                    // SI ES FACTURA A ASEGURARSE QUE SE TIENEN LOS DATOS DEL CLIENTE SI ES.
                    if (ClienteConsumidorFinal)
                    {
                        NuevaVta.VTA_CONSUMIDORFINAL = true;
                    }
                    else
                    {
                        NuevaVta.VTA_CONSUMIDORFINAL = false;
                        NuevaVta.CLI_ID_CONSUMIDOR = Cliente.CLI_ID;
                    }

                    NuevaVta = cVENTAS.AltaConRetorno(NuevaVta);

                    foreach (LINEA_VENTA LineaEnGrilla in LineasEnGrilla)
                    {
                        //quito las entidades
                        LineaEnGrilla.PRODUCTO = null;
                        LineaEnGrilla.CATEGORIA_PRODUCTO = null;
                        LineaEnGrilla.ENVASE = null;

                        LineaEnGrilla.VTA_ID = NuevaVta.VTA_ID;
                        cLINEA_VENTA.Alta(LineaEnGrilla);
                    }

                    //guarda la cancelacion de la venta
                    VENTA_CANCELADA VtaCancelada = new VENTA_CANCELADA();
                    VtaCancelada.VTAC_FECHA = DateTime.Now;
                    VtaCancelada.VTAC_TIPOCANCELADA = "VENTA";
                    VtaCancelada.CAJ_ID = CajaPerteneciente.CAJ_ID;
                    VtaCancelada.PROD_ID = null;
                    VtaCancelada.CAT_ID = null;
                    VtaCancelada.ENV_ID = null;
                    VtaCancelada.VTA_ID = NuevaVta.VTA_ID;

                    if (EmpleadoAutoriza_Id != 0)
                        VtaCancelada.EMP_AUTORIZA = EmpleadoAutoriza_Id;

                    cVENTAS.AltaVentaCancelada(VtaCancelada);

                    TRANSACCION.Complete();
                }

            }
            Nueva_Vta();
            return true;
        }
 public static frmAUTORIZA ObtenerInstancia()
 {
     if (_instancia == null) _instancia = new frmAUTORIZA();
     if (_instancia.IsDisposed) _instancia = new frmAUTORIZA();
     return _instancia;
 }
        private bool QuitarProducto()
        {
            if (eParametro.PAR_AUTORIZA_QUITA_PROD_VTA == true)
            {
                frmAUTORIZA frm = new frmAUTORIZA();
                DialogResult dr = frm.ShowDialog();
                if (dr != DialogResult.OK)
                {
                    MostrarMensajeAdvertencia(Mensajes.AutorizacionFallo);
                    return false;
                }
            }

            return true;
        }