示例#1
0
 public FrmPromocionDias(PromocionViewModel model)
 {
     InitializeComponent();
     this.Model = model;
     this.IniciarBinding();
     Model.EsCapturaFecha = true;
 }
示例#2
0
        public async Task <Guid> Create(PromocionViewModel p)
        {
            var promo = await _promocionRepository.Create(_mapper.Map <PromocionViewModel, Promocion>(p));


            return(promo.Id);
        }
 public FrmPromocionDescuento(PromocionViewModel model)
 {
     InitializeComponent();
     this.Model = model;
     this.IniciarBinding();
     Model.EsDescuento    = true;
     Model.EsPromocionMxN = false;
     Model.EsPromocionNxN = false;
 }
示例#4
0
 public FrmPromocionNxN(PromocionViewModel model)
 {
     InitializeComponent();
     Model       = model;
     EsSiguiente = false;
     this.IniciarBinding();
     Model.EsPromocionNxN = true;
     Model.EsDescuento    = false;
     Model.EsPromocionMxN = false;
     Model.EsCapturaFecha = false;
 }
示例#5
0
 public async Task <ActionResult <Guid> > Post([FromBody] PromocionViewModel p)
 {
     if (ModelState.IsValid)
     {
         await _promocionService.Create(p);
     }
     else
     {
         return(BadRequest());
     }
     return(Ok(p.Id));
 }
示例#6
0
        public async Task <IActionResult> CrearPromocion([FromBody] PromocionViewModel value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var promocion = new Promocion(value.MediosDePagosIds, value.TiposMedioPagosIds,
                                          value.EntidadesFinancierasIds, value.CategoriasProductosIds, value.MaxCantidadDeCuotas ?? 0,
                                          value.PorcentajeDecuento, value.FechaInicio, value.FechaFin, value.Activo);
            await _promocionSupervisor.InsertPromotion(promocion);

            return(Created($"Promocion/{promocion.IdPromotion}", value));
        }
示例#7
0
        public ActionResult Crear(PromocionViewModel promocion)
        {
            GenericResponseModel <String> responseModel = ApiRequests
                                                          .Post <GenericResponseModel <String>, PromocionViewModel, GenericResponseModel <String> >(urlBase, promocion, out errorResponse);

            if (errorResponse == null)
            {
                return(Json(responseModel, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(errorResponse, JsonRequestBehavior.AllowGet));
            }
        }
示例#8
0
        public ActionResult Actualizar(PromocionViewModel promocion)
        {
            String url = $"{urlBase}/{promocion.Id}";

            GenericResponseModel <String> responseModel = ApiRequests
                                                          .Put <GenericResponseModel <String>, PromocionViewModel, GenericResponseModel <String> >(url, promocion, out errorResponse);

            if (errorResponse == null)
            {
                return(Json(responseModel, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(errorResponse, JsonRequestBehavior.AllowGet));
            }
        }
        public static PromocionViewModel Convert(Promocion promocion)
        {
            var promocionViewModel = new PromocionViewModel();

            promocionViewModel.IdPromotion             = promocion.IdPromotion;
            promocionViewModel.CategoriasProductosIds  = promocion.ProductoCategoriaIds;
            promocionViewModel.EntidadesFinancierasIds = promocion.EntidadFinancieraId;
            promocionViewModel.MediosDePagosIds        = promocion.MedioPagoIds;
            promocionViewModel.TiposMedioPagosIds      = promocion.TipoMedioPagoId;
            promocionViewModel.FechaInicio             = promocion.FechaInicio;
            promocionViewModel.FechaFin            = promocion.FechaFin;
            promocionViewModel.Activo              = promocion.Activo;
            promocionViewModel.MaxCantidadDeCuotas = promocion.MaxCantidadDeCuotas;
            promocionViewModel.PorcentajeDecuento  = promocion.PorcentajeDescuento;

            return(promocionViewModel);
        }
示例#10
0
        public async Task <ActionResult <Guid> > Put(Guid guid, [FromBody] PromocionViewModel pr)
        {
            var p = await _promocionService.GetByGuidAsync(guid);

            if (p == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                await _promocionService.Update(guid, pr);
            }
            else
            {
                return(BadRequest());
            }

            return(Ok(pr.Id));
        }
 public static List <PromocionViewModel> ConvertList(IEnumerable <Promocion> promociones)
 {
     return(promociones.Select(a =>
     {
         var model = new PromocionViewModel
         {
             IdPromotion = a.IdPromotion,
             CategoriasProductosIds = a.ProductoCategoriaIds,
             EntidadesFinancierasIds = a.EntidadFinancieraId,
             MediosDePagosIds = a.MedioPagoIds,
             TiposMedioPagosIds = a.TipoMedioPagoId,
             FechaInicio = a.FechaInicio,
             FechaFin = a.FechaFin,
             Activo = a.Activo,
             MaxCantidadDeCuotas = a.MaxCantidadDeCuotas,
             PorcentajeDecuento = a.PorcentajeDescuento
         };
         return model;
     })
            .ToList());
 }
示例#12
0
        public async Task <bool> Update(Guid id, PromocionViewModel p)
        {
            var promo = _mapper.Map <PromocionViewModel, Promocion>(p);

            return(await _promocionRepository.UpdatePromocion(id, promo));;
        }
示例#13
0
        public async Task <IActionResult> ActualizarPromocion([FromBody] PromocionViewModel value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var promocion = new Promocion(value.MediosDePagosIds, value.TiposMedioPagosIds,
                                          value.EntidadesFinancierasIds, value.CategoriasProductosIds, value.MaxCantidadDeCuotas ?? 0,
                                          value.PorcentajeDecuento, value.FechaInicio, value.FechaFin, value.Activo);

            promocion.SetId(value.IdPromotion);
            promocion.SetArrayValues();
            var baseUri = "http://localhost:61556/";
            var path    = $"{baseUri}api/mediodepago/";
            // Obtenemos todos los medios de pago para realizar las validaciones
            var mediosDePagos = await GetMedioDePagoAsync(path);

            path = $"{baseUri}api/Producto/CategoriaProducto";
            var categoriasProducto = await GetProductCategories(path);

            // validamos que los medios de pago sean validos
            if (promocion.MedioPagoIds != null)
            {
                var mediosDePagosIds = mediosDePagos.Select(x => x.Id).ToArray();
                if (promocion.MedioPagoIds.Except(mediosDePagosIds).Any())
                {
                    return(StatusCode(500, "Medio de pago no valido"));
                }
            }
            // Validamos que las entidades financieras sean validas
            if (promocion.EntidadFinancieraId != null)
            {
                var entidadesFinancierasIds = mediosDePagos.Select(x => x.IdEntidadFinanciera ?? 0).Distinct().ToArray();
                if (promocion.EntidadFinancieraId.Except(entidadesFinancierasIds).Any())
                {
                    return(StatusCode(500, "Entidad Financiera no valida"));
                }
            }
            // Validamos que los tipos de medios de pago sean validos
            if (promocion.TipoMedioPagoId != null)
            {
                var tiposDePagosIds = mediosDePagos.Select(x => x.IdTipoPago ?? 0).Distinct().ToArray();
                if (promocion.TipoMedioPagoId.Except(tiposDePagosIds).Any())
                {
                    return(StatusCode(500, "Tipo Medio de pago no valido"));
                }
            }
            // validamos que las categorias de producto sean validas
            if (promocion.ProductoCategoriaIds != null)
            {
                var categoriasDeProductos = categoriasProducto.Select(x => x.Id).Distinct().ToArray();
                if (promocion.ProductoCategoriaIds.Except(categoriasDeProductos).Any())
                {
                    return(StatusCode(500, "Categoria de producto no valida"));
                }
            }

            var promotionsList      = _promocionSupervisor.GetCurrentPromotions();
            var colisionesRespuesta = _promocionSupervisor.CheckPromotionsCollisions(promocion, promotionsList);

            if (colisionesRespuesta != "")
            {
                return(StatusCode(500, colisionesRespuesta));
            }
            await _promocionSupervisor.UpdatePromotion(promocion);

            return(Ok());
        }
示例#14
0
 public FrmPromocion()
 {
     InitializeComponent();
     Model = ServiceLocator.Instance.Resolve <PromocionViewModel>();
     this.IniciarBinding();
 }