Esempio n. 1
0
        public ResponseBussiness <OperationResponse> RealizarPagoTarjetaRegalo(ProcesarMovimientoTarjetaRegaloRequest procesarMovimientoTarjetaRegaloRequest)
        {
            TokenDto token = new TokenService().Get();
            ResponseBussiness <OperationResponse> response = new PaymentProcessingBusiness(token).ProcesarTarjetaRegalo(procesarMovimientoTarjetaRegaloRequest);

            return(response);
        }
Esempio n. 2
0
 /// <summary>
 /// Metodo para procesar tarjetas de regalo
 /// </summary>
 /// <param name="request">Movimiento tarjeta de regalo</param>
 /// <returns>Respuesta de la operación</returns>
 public ResponseBussiness <OperationResponse> ProcesarTarjetaRegalo(ProcesarMovimientoTarjetaRegaloRequest request)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         using (TransactionScope scope = new TransactionScope())
         {
             TarjetaRegalosBusiness tarjeta = new TarjetaRegalosBusiness(this.token);
             // Se procesan las promociones por venta
             foreach (var item in request.DescuentosPromocionalesPorVentaAplicados.DescuentoPromocionesAplicados)
             {
                 OperationResponse response = new OperationResponse();
                 response = repository.PersistirPromocionesVenta(request.FolioOperacionAsociada, token.CodeStore, token.CodeBox, item.ImporteDescuento
                                                                 , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado);
             }
             // Se procesan las promociones por línea de venta
             foreach (var item in request.DescuentosPromocionalesPorLineaAplicados.DescuentoPromocionesAplicados)
             {
                 OperationResponse response = new OperationResponse();
                 response = repository.PersistirPromocionesLineaVenta(request.FolioOperacionAsociada, token.CodeStore, token.CodeBox, item.Secuencia, item.ImporteDescuento
                                                                      , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado);
             }
             // Se procesa el pago en base de datos localmente
             var repuestaLocal = repository.ProcesarMovimientoTarjetaRegalo(token.CodeStore, token.CodeBox, token.CodeEmployee, request);
             if (repuestaLocal.CodeNumber == "353")
             {
                 var transaccion = int.Parse(repuestaLocal.CodeDescription);
                 var respuesta = tarjeta.Cobro(this.token.CodeEmployee, request.FolioTarjeta, transaccion, request.FolioOperacionAsociada, request.ImporteVentaTotal);
                 if (respuesta.CodeNumber != "0")
                 {
                     scope.Complete();
                 }
                 return respuesta;
             }
             else
             {
                 return repuestaLocal;
             }
         }
     }));
 }