//[Autorizar(Permiso ="enviarBajaDePrecio")]
        public ActionResult EditRequestForm(string GUID, bool Editable, bool WaitApprobal = false)
        {
            //PERO LA PUTA MADRE REPETI EL CODIGO (LINEA 178 - Florencio Varela - Pompeya)
            List <PriceRequestViewModel> model = commonRepository.GetPriceRequest(GUID)
                                                 .Select(c => new PriceRequestViewModel()
            {
                Account         = c.Account,
                AccountId       = c.AccountId,
                IdealGap        = c.IdealGap,
                NetAsp          = c.NetAsp,
                NetAspCondition = c.NetAspCondition,
                PriceGap        = c.PriceGap,
                Product         = new ProductPR(c.Product),
                Competitor      = new ProductPR(c.Competitor)
            }).ToList();

            PriceRequestFormViewModel newModel = new PriceRequestFormViewModel()
            {
                PriceRequests = model,
                Editable      = Editable,
                GUID          = GUID,
                WaitAprrobe   = WaitApprobal
            };

            return(View("PriceRequestForm", newModel));
        }
        public ActionResult FormAction(PriceRequestFormViewModel model)
        {
            int idUser = GetUsuarioLogueado();

            idUser = usuarioRepository.GetUsuarioPerformance(idUser);

            //SEND PRICE REQUEST
            List <NewPriceRequestForm> FormPRList = model.PriceRequests.Select(p => new NewPriceRequestForm()
            {
                AccountId          = p.AccountId,
                CompetitorId       = p.Competitor.Id,
                CompInventory      = p.Competitor.Inventory,
                CompPhoto          = p.Competitor.Photo,
                CompPrice          = p.Competitor.Price,
                EOLComp            = p.Competitor.EOL,
                ProductId          = p.Product.Id,
                SelfInventory      = p.Product.Inventory,
                SelfPhoto          = p.Product.Photo,
                SelfPrice          = p.Product.Price,
                IdealGap           = p.IdealGap,
                UBP                = p.Product.Price,
                UBPProposal        = p.Product.UBPProposal,
                PriceGap           = (((p.Product.UBPProposal / p.Competitor.Price) * 100M) - 100M),
                NetAsp             = p.NetAsp,
                NetAspCondition    = p.NetAspCondition,
                EOLSelf            = p.Product.EOL,
                ASPVariancePercent = p.AspVariancePercent,
                ASPVariancePrice   = p.AspVariancePrice,
                CompSellIn         = p.Competitor.SellIn,
                CompSellOut        = p.Competitor.SellOut,
                SelfSellIn         = p.Product.SellIn,
                SelfSellOut        = p.Product.SellOut
            }).ToList();

            string nGUID = commonRepository.SendNewPriceRequest(FormPRList, GetClienteSeleccionado(), idUser);

            if (nGUID != string.Empty)
            {
                UpdatePriceRequestStatus(nGUID, 1, Resources.PriceRequest.InitialStatus);
            }

            return(PriceRequestFormSended(nGUID));
        }
        public ActionResult CreateRequestForm(ProductGapDetailViewModel model)
        {
            List <CompetitorGapViewModel> CompetitorAccounts = model.Competitors.Where(c => c.Accounts.Any(a => a.Request)).ToList();

            int productID = model.ProductId;
            //Diccionario donde la clave es el competidor y el string son las cuentas separadas por punto y coma
            Dictionary <int, string> selectedCompetitors = CompetitorAccounts
                                                           .Select(c => new
            {
                c.ProductId,
                accounts = c.Accounts
                           .Where(a => a.Request)
                           .Select(a => a.Account.Id.ToString())
                           .Aggregate((cur, acc) => cur + ";" + acc)
            })
                                                           .ToDictionary(c => c.ProductId, c => c.accounts);

            List <PriceRequestViewModel> ListPR = commonRepository.GetPriceRequest(GetClienteSeleccionado(), productID, selectedCompetitors)
                                                  .Select(p => new PriceRequestViewModel()
            {
                Account         = p.Account,
                AccountId       = p.AccountId,
                Competitor      = new ProductPR(p.Competitor),
                Product         = new ProductPR(p.Product),
                IdealGap        = p.IdealGap,
                NetAsp          = 0,
                NetAspCondition = 0,
                PriceGap        = p.PriceGap
            }).ToList();
            PriceRequestFormViewModel modelOut = new PriceRequestFormViewModel()
            {
                Editable      = true,
                GUID          = "",
                PriceRequests = ListPR,
                WaitAprrobe   = false
            };

            return(View("PriceRequestForm", modelOut));
        }