コード例 #1
0
        public IMDResponse <bool> CActivarCupon([FromBody] EntCreateCupon entCreateCupon, [FromUri] int?piIdUsuario = null)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.CActivarCupon);

            logger.Info(IMDSerialize.Serialize(67823458200610, $"Inicia {metodo}([FromBody]EntCreateCupon entCreateCupon, [FromUri]int? piIdUsuario = null)", entCreateCupon, piIdUsuario));

            try
            {
                response = busPromociones.BActivarCupon(entCreateCupon, piIdUsuario);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458201387;
                response.Message = "Ocurrió un error al intentar activar el cupón.";

                logger.Error(IMDSerialize.Serialize(67823458201387, $"Error en {metodo}([FromBody]EntCreateCupon entCreateCupon, [FromUri]int? piIdUsuario = null): {ex.Message}", entCreateCupon, piIdUsuario, ex, response));
            }
            return(response);
        }
コード例 #2
0
        /// <summary>
        /// Función: Guarda un nuevo cupón en la base
        /// Creado: Cristopher Noh 28/07/2020
        /// Modificado:
        /// </summary>
        /// <param name="entCreateCupon">Entidad de cupón nuevo</param>
        /// <param name="piIdUsuario">Usuario que registra</param>
        /// <returns></returns>
        public IMDResponse <bool> BActivarCupon(EntCreateCupon entCreateCupon, int?piIdUsuario = null)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BActivarCupon);

            logger.Info(IMDSerialize.Serialize(67823458189732, $"Inicia {metodo}(EntCreateCupon entCreateCupon, int? piIdUsuario = null)", entCreateCupon, piIdUsuario));

            try
            {
                if (entCreateCupon == null)
                {
                    response.Code    = 67823458220812;
                    response.Message = "No se ingresó información de cupón.";
                    return(response);
                }


                if (string.IsNullOrWhiteSpace(entCreateCupon.fsCodigo))
                {
                    if (entCreateCupon.fiLongitudCodigo <= 0)
                    {
                        response.Code    = 67823458221589;
                        response.Message = "No se especificó la longitud del código de cupón nuevo.";
                        return(response);
                    }

                    IMDResponse <string> respuestaGenerarCodigoCupon = this.BGenerarCodigoCupon((int)entCreateCupon.fiLongitudCodigo);
                    if (respuestaGenerarCodigoCupon.Code != 0)
                    {
                        return(respuestaGenerarCodigoCupon.GetResponse <bool>());
                    }

                    entCreateCupon.fsCodigo = respuestaGenerarCodigoCupon.Result;
                }
                else
                {
                    entCreateCupon.fsCodigo = entCreateCupon.fsCodigo.Replace(" ", "").ToUpper();

                    IMDResponse <List <EntCupon> > respuestaVerificarCodigo = BObtenerCupones(psCodigo: entCreateCupon.fsCodigo);
                    if (respuestaVerificarCodigo.Code != 0)
                    {
                        return(respuestaVerificarCodigo.GetResponse <bool>());
                    }
                    if (respuestaVerificarCodigo.Result.Count > 0)
                    {
                        response.Code    = 67823458222366;
                        response.Message = "Ya hay un cupón activo con el código proporcionado.";
                        return(response);
                    }
                }

                EntCupon entCupon = new EntCupon();

                if (entCreateCupon.fiDiasActivo != 0 && entCreateCupon.fiDiasActivo != null)
                {
                    if (entCreateCupon.fiDiasActivo > 0)
                    {
                        entCupon.fdtFechaVencimiento = DateTime.Now.AddDays((int)entCreateCupon.fiDiasActivo);
                    }
                    else
                    {
                        response.Code    = 67823458223143;
                        response.Message = "Los días activos del cupón deben ser mayores o iguales a 1 día. Si no requiere días de vencimiento, deje el campo vacío.";
                        return(response);
                    }
                }


                if (entCreateCupon.fiTotalLanzamiento < 1)
                {
                    response.Code    = 67823458223920;
                    response.Message = "No se especificó el total de cupones a activar. El total de lanzamiento debe ser mínimo 1 cupón.";
                    return(response);
                }


                entCupon.fiTotalLanzamiento = entCreateCupon.fiTotalLanzamiento;
                entCupon.fsCodigo           = entCreateCupon.fsCodigo;
                entCupon.fsDescripcion      = entCreateCupon.fsDescripcion;

                switch (entCreateCupon.fiIdCuponCategoria)
                {
                case (int)EnumCategoriaCupon.DescuentoMonto:
                    if (entCreateCupon.fnMontoDescuento <= 0d || entCreateCupon.fnMontoDescuento == null)
                    {
                        response.Code    = 67823458224697;
                        response.Message = "El descuento no puede ser de monto igual o menor a $0.00 pesos.";
                        return(response);
                    }

                    entCupon.fiIdCuponCategoria = (int)EnumCategoriaCupon.DescuentoMonto;
                    entCupon.fnMontoDescuento   = entCreateCupon.fnMontoDescuento;

                    break;

                case (int)EnumCategoriaCupon.DescuentoPorcentaje:
                    if (entCreateCupon.fnPorcentajeDescuento >= 1)
                    {
                        entCreateCupon.fnPorcentajeDescuento /= 100;
                    }
                    if (entCreateCupon.fnPorcentajeDescuento <= 0d || entCreateCupon.fnPorcentajeDescuento > 1 || entCreateCupon.fnPorcentajeDescuento == null)
                    {
                        response.Code    = 67823458225474;
                        response.Message = "El porcentaje de descuento no puede ser 0% o más de 100%.";
                        return(response);
                    }

                    entCupon.fiIdCuponCategoria    = (int)EnumCategoriaCupon.DescuentoPorcentaje;
                    entCupon.fnPorcentajeDescuento = entCreateCupon.fnPorcentajeDescuento;

                    break;

                default:
                    response.Code    = 67823458226251;
                    response.Message = "No se ingresó el tipo de promoción de cupón.";
                    break;
                }

                IMDResponse <bool> respuestaGuardarCupon = datPromociones.DSaveCupon(entCupon, piIdUsuario);
                if (respuestaGuardarCupon.Code != 0)
                {
                    return(respuestaGuardarCupon);
                }

                response.Code    = 0;
                response.Message = "El cupón ha sido activado correctamente.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458190509;
                response.Message = "Ocurrió un error al intentar activar el cupón.";

                logger.Error(IMDSerialize.Serialize(67823458190509, $"Error en {metodo}(EntCreateCupon entCreateCupon, int? piIdUsuario = null): {ex.Message}", entCreateCupon, piIdUsuario, ex, response));
            }
            return(response);
        }