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); }
/// <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); }