Ejemplo n.º 1
0
        public DtoLib.Resultado Venta_Anular(DtoLibPos.Venta.Anular.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new PosEntities(_cnPos.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        foreach (var it in ficha.itemDeposito)
                        {
                            var entDeposito = cnn.productos_deposito.FirstOrDefault(f => f.auto_producto == it.autoProducto && f.auto_deposito == it.autoDeposito);
                            if (entDeposito == null)
                            {
                                result.Mensaje = "PRODUCTO/DEPOSITO NO ENCONTRADO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            entDeposito.reservada  -= it.cantUndBloq;
                            entDeposito.disponible += it.cantUndBloq;
                            cnn.SaveChanges();
                        }
                        foreach (var it in ficha.items)
                        {
                            var ent = cnn.p_venta.Find(it.idItem);
                            if (ent == null)
                            {
                                result.Mensaje = "ITEM NO ENCONTRADO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            if (ent.id_p_operador != it.idOperador)
                            {
                                result.Mensaje = "ITEM NO PERTENECE AL OPERADOR ACTUAL";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            cnn.p_venta.Remove(ent);
                            cnn.SaveChanges();
                        }

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

            return(result);
        }
        public OOB.Resultado.Ficha Venta_Anular(OOB.Venta.Anular.Ficha ficha)
        {
            var result = new OOB.Resultado.Ficha();

            var fichaDTO = new DtoLibPos.Venta.Anular.Ficha()
            {
                items = ficha.items.Select(s =>
                {
                    var nr = new DtoLibPos.Venta.Anular.FichaItem()
                    {
                        idOperador = s.idOperador,
                        idItem     = s.idItem,
                    };
                    return(nr);
                }).ToList(),
                itemDeposito = ficha.itemDeposito.Select(s =>
                {
                    var nr = new DtoLibPos.Venta.Anular.FichaDeposito()
                    {
                        autoProducto = s.autoProducto,
                        autoDeposito = s.autoDeposito,
                        cantUndBloq  = s.cantUndBloq,
                    };
                    return(nr);
                }).ToList(),
            };
            var r01 = MyData.Venta_Anular(fichaDTO);

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

            return(result);
        }
 public DtoLib.Resultado Venta_Anular(DtoLibPos.Venta.Anular.Ficha ficha)
 {
     return(ServiceProv.Venta_Anular(ficha));
 }