private string Grabar(string sCodigo,
                          string sDenominacion,
                          string sActiva
                          )
    {
        string sResul  = "";
        short  nID     = -1;
        bool   bActiva = false;

        if (sActiva == "1")
        {
            bActiva = true;
        }
        IB.SUPER.ADM.SIC.Models.UnidadPreventa oUnidad  = new IB.SUPER.ADM.SIC.Models.UnidadPreventa();
        IB.SUPER.ADM.SIC.Models.UnidadPreventa oUnidadD = new IB.SUPER.ADM.SIC.Models.UnidadPreventa();
        IB.SUPER.ADM.SIC.BLL.UnidadPreventa    oElem    = new IB.SUPER.ADM.SIC.BLL.UnidadPreventa();
        try
        {
            oUnidad.ta199_denominacion = sDenominacion;
            oUnidad.ta199_estadoactiva = bActiva;
            #region Datos Generales

            oUnidadD = oElem.SelectPorDenominacion(oUnidad.ta199_denominacion);
            if (sCodigo == "")
            {
                //nID = PreventaUnidad.Insert(tr,sDenominacion,bActiva);
                if (oUnidadD != null)
                {
                    return("AVISO@#@Ya existe una unidad con la misma denominación");
                }
                nID = oElem.Insert(oUnidad);
            }
            else //update
            {
                nID = short.Parse(sCodigo);
                if (oUnidadD != null && nID != oUnidadD.ta199_idunidadpreventa)
                {
                    return("AVISO@#@Ya existe una unidad con la misma denominación");
                }
                oUnidad.ta199_idunidadpreventa = nID;
                //PreventaUnidad.Update(tr, nID, sDenominacion, bActiva);
                oElem.Update(oUnidad);
            }
            #endregion

            sResul = "OK@#@" + nID.ToString();
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de la unidad de preventa", ex);
        }
        finally
        {
            oElem.Dispose();
        }
        return(sResul);
    }