public OOB.Resultado.FichaId Venta_Item_Registrar(OOB.Venta.Item.Registrar.Ficha ficha)
        {
            var result = new OOB.Resultado.FichaId();

            var fichaDTO = new DtoLibPos.Venta.Item.Registrar.Ficha()
            {
                validarExistencia = ficha.validarExistencia,
                deposito          = new DtoLibPos.Venta.Item.Registrar.FichaDeposito()
                {
                    autoDeposito = ficha.deposito.autoDeposito,
                    autoPrd      = ficha.deposito.autoPrd,
                    cantBloq     = ficha.deposito.cantBloq,
                },
                item = new DtoLibPos.Venta.Item.Registrar.FichaItem()
                {
                    autoDepartamento   = ficha.item.autoDepartamento,
                    autoGrupo          = ficha.item.autoGrupo,
                    autoProducto       = ficha.item.autoProducto,
                    autoSubGrupo       = ficha.item.autoSubGrupo,
                    autoTasa           = ficha.item.autoTasa,
                    cantidad           = ficha.item.cantidad,
                    categoria          = ficha.item.categoria,
                    codigo             = ficha.item.codigo,
                    costoCompra        = ficha.item.costoCompra,
                    costoPromedio      = ficha.item.costoPromedio,
                    costoPromedioUnd   = ficha.item.costoPromedioUnd,
                    costoUnd           = ficha.item.costoUnd,
                    decimales          = ficha.item.decimales,
                    empaqueContenido   = ficha.item.empaqueContenido,
                    empaqueDescripcion = ficha.item.empaqueDescripcion,
                    estatusPesado      = ficha.item.estatusPesado,
                    idOperador         = ficha.item.idOperador,
                    nombre             = ficha.item.nombre,
                    pfullDivisa        = ficha.item.pfullDivisa,
                    pneto        = ficha.item.pneto,
                    tarifaPrecio = ficha.item.tarifaPrecio,
                    tasaIva      = ficha.item.tasaIva,
                    tipoIva      = ficha.item.tipoIva,
                    autoDeposito = ficha.item.autoDeposito,
                },
            };
            var r01 = MyData.Venta_Item_Registrar(fichaDTO);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                result.Mensaje = r01.Mensaje;
                result.Result  = OOB.Resultado.Enumerados.EnumResult.isError;
                return(result);
            }
            result.Id = r01.Id;

            return(result);
        }
        private void Registrar(OOB.Producto.Entidad.Ficha prd, decimal cant, string tarifa)
        {
            var cnt              = 0.0m;
            var precioNeto       = 0.0m;
            var precioFullDivisa = 0.0m;
            var empaqueCont      = 0;
            var empaqueDesc      = "";
            var decimales        = "";


            //if (_habilitarPos_precio_5_para_venta_mayor)
            //{
            //    var ent = (data)Items.FirstOrDefault(f => f.Ficha.autoProducto == prd.Auto);
            //    if (ent != null)
            //    {
            //        if (!ent.EsPesado)
            //        {
            //            IncrementarItem(ent,1);
            //            return;
            //        }
            //    }
            //}

            switch (tarifa)
            {
            case "1":
                cnt              = prd.contenido_1;
                precioNeto       = prd.pneto_1;
                precioFullDivisa = prd.pdf_1;
                empaqueCont      = prd.contenido_1;
                empaqueDesc      = prd.empaque_1;
                decimales        = prd.decimales_1;
                break;

            case "2":
                cnt              = prd.contenido_2;
                precioNeto       = prd.pneto_2;
                precioFullDivisa = prd.pdf_2;
                empaqueCont      = prd.contenido_2;
                empaqueDesc      = prd.empaque_2;
                decimales        = prd.decimales_2;
                break;

            case "3":
                cnt              = prd.contenido_3;
                precioNeto       = prd.pneto_3;
                precioFullDivisa = prd.pdf_3;
                empaqueCont      = prd.contenido_3;
                empaqueDesc      = prd.empaque_3;
                decimales        = prd.decimales_3;
                break;

            case "4":
                cnt              = prd.contenido_4;
                precioNeto       = prd.pneto_4;
                precioFullDivisa = prd.pdf_4;
                empaqueCont      = prd.contenido_4;
                empaqueDesc      = prd.empaque_4;
                decimales        = prd.decimales_4;
                break;

            case "5":
                cnt              = prd.contenido_5;
                precioNeto       = prd.pneto_5;
                precioFullDivisa = prd.pdf_5;
                empaqueCont      = prd.contenido_5;
                empaqueDesc      = prd.empaque_5;
                decimales        = prd.decimales_5;
                break;

            case "6":
                cnt              = prd.contenidoMay_1;
                precioNeto       = prd.pnetoMay_1;
                precioFullDivisa = prd.pdfMay_1;
                empaqueCont      = prd.contenidoMay_1;
                empaqueDesc      = prd.empaqueMay_1;
                decimales        = prd.decimalesMay_1;
                break;

            case "7":
                cnt              = prd.contenidoMay_2;
                precioNeto       = prd.pnetoMay_2;
                precioFullDivisa = prd.pdfMay_2;
                empaqueCont      = prd.contenidoMay_2;
                empaqueDesc      = prd.empaqueMay_2;
                decimales        = prd.decimalesMay_2;
                break;
            }

            //if (_habilitarPos_precio_5_para_venta_mayor)
            //{
            //    var xcnt = Items.Where(f => f.Ficha.autoProducto == prd.Auto).Sum(f => f.Cantidad);
            //    if (xcnt >= (prd.contenido_5 - 1))
            //    {
            //        precioNeto = prd.pneto_5;
            //        precioFullDivisa = prd.pdf_5;
            //        empaqueDesc = prd.empaque_5;
            //    }
            //}

            if (cnt == 0.0m)
            {
                Helpers.Msg.Error("CONTENIDO DEL PRODUCTO NO DEFINIDO");
                return;
            }
            if (precioNeto == 0.0m)
            {
                Helpers.Msg.Error("PRECIO DEL PRODUCTO NO DEFINIDO");
                return;
            }

            cnt *= cant;
            var ficha = new OOB.Venta.Item.Registrar.Ficha()
            {
                validarExistencia = _validarExistencia,
                deposito          = new OOB.Venta.Item.Registrar.FichaDeposito()
                {
                    autoDeposito = _autoDeposito,
                    autoPrd      = prd.Auto,
                    cantBloq     = cnt
                },
                item = new OOB.Venta.Item.Registrar.FichaItem()
                {
                    autoDepartamento   = prd.AutoDepartamento,
                    autoGrupo          = prd.AutoGrupo,
                    autoProducto       = prd.Auto,
                    autoSubGrupo       = prd.AutoSubGrupo,
                    autoTasa           = prd.AutoTasaIva,
                    cantidad           = cant,
                    categoria          = prd.Categoria,
                    codigo             = prd.CodigoPrd,
                    costoCompra        = prd.Costo,
                    costoPromedio      = prd.CostoPromedio,
                    costoPromedioUnd   = prd.CostoPromedioUnidad,
                    costoUnd           = prd.CostoUnidad,
                    decimales          = decimales,
                    empaqueContenido   = empaqueCont,
                    empaqueDescripcion = empaqueDesc,
                    estatusPesado      = prd.EstatusPesado,
                    idOperador         = Sistema.PosEnUso.id,
                    nombre             = prd.NombrePrd,
                    pfullDivisa        = precioFullDivisa,
                    pneto        = precioNeto,
                    tarifaPrecio = tarifa,
                    tasaIva      = prd.TasaImpuesto,
                    tipoIva      = "",
                    autoDeposito = _autoDeposito,
                },
            };
            var r01 = Sistema.MyData.Venta_Item_Registrar(ficha);

            if (r01.Result == OOB.Resultado.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(r01.Mensaje);
                return;
            }
            var r02 = Sistema.MyData.Venta_Item_GetById(r01.Id);

            if (r02.Result == OOB.Resultado.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(r02.Mensaje);
                return;
            }

            _itemActual = r02.Entidad;
            _blitems.Insert(0, new data(r02.Entidad, _tasaCambio));
            _bsitems.Position = 0;
            Helpers.Sonido.SonidoOk();
        }