public OOB.Resultado.Ficha Venta_Item_ActualizarCantidad_Disminuir(OOB.Venta.Item.ActualizarCantidad.Disminuir.Ficha ficha)
        {
            var result = new OOB.Resultado.Ficha();

            var fichaDTO = new DtoLibPos.Venta.Item.ActualizarCantidad.Disminuir.Ficha()
            {
                idOperador   = ficha.idOperador,
                idItem       = ficha.idItem,
                autoProducto = ficha.autoProducto,
                autoDeposito = ficha.autoDeposito,
                cantUndBloq  = ficha.cantUndBloq,
                cantidad     = ficha.cantidad,
                precioNeto   = ficha.precioNeto,
                tarifaVenta  = ficha.tarifaVenta,
                precioDivisa = ficha.precioDivisa,
            };
            var r01 = MyData.Venta_Item_ActualizarCantidad_Disminuir(fichaDTO);

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

            return(result);
        }
예제 #2
0
        public DtoLib.Resultado Venta_Item_ActualizarCantidad_Disminuir(DtoLibPos.Venta.Item.ActualizarCantidad.Disminuir.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var entDeposito = cnn.productos_deposito.FirstOrDefault(f => f.auto_producto == ficha.autoProducto && f.auto_deposito == ficha.autoDeposito);
                        if (entDeposito == null)
                        {
                            result.Mensaje = "PRODUCTO/DEPOSITO NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        entDeposito.reservada  -= ficha.cantUndBloq;
                        entDeposito.disponible += ficha.cantUndBloq;
                        cnn.SaveChanges();

                        var ent = cnn.p_venta.Find(ficha.idItem);
                        if (ent == null)
                        {
                            result.Mensaje = "ITEM NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        if (ent.id_p_operador != ficha.idOperador)
                        {
                            result.Mensaje = "ITEM NO PERTENECE AL OPERADOR ACTUAL";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        ent.cantidad    -= ficha.cantidad;
                        ent.pneto        = ficha.precioNeto;
                        ent.tarifaPrecio = ficha.tarifaVenta;
                        ent.pdivisaFull  = ficha.precioDivisa;
                        cnn.SaveChanges();

                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
 public DtoLib.Resultado Venta_Item_ActualizarCantidad_Disminuir(DtoLibPos.Venta.Item.ActualizarCantidad.Disminuir.Ficha ficha)
 {
     return(ServiceProv.Venta_Item_ActualizarCantidad_Disminuir(ficha));
 }