Пример #1
0
        public ResponseBussiness <OperationResponse> RealizarVentaoMayorista(ProcesarMovimientoMayorista procesarMovimientoMayorista)
        {
            TokenDto token = new TokenService().Get();
            ResponseBussiness <OperationResponse> response = new PaymentProcessingBusiness(token).ProcesarVentaMayorista(procesarMovimientoMayorista);

            return(response);
        }
Пример #2
0
        /// <summary>
        /// Pago de mayorista
        /// </summary>
        /// <param name="procesarMovimientoMayorista">Dto con propiedades del pago</param>
        /// <param name="codigoTransaccion">Código de la transacción</param>
        /// <returns>Resultado de la operación </returns>
        public OperationResponse PagoVentaMayorista(ProcesarMovimientoMayorista procesarMovimientoMayorista, int codigoTransaccion)
        {
            OperationResponse operation = new OperationResponse();

            try
            {
                DateTime fechaVenta = DateTime.Now;
                ProxyMayoristas.InfoVenta respuesta = wsVentaMayoristaSoapClient.RealizarVenta(this.token.CodeStore, this.token.CodeBox, this.token.CodeEmployee, procesarMovimientoMayorista.CodigoMayorista, procesarMovimientoMayorista.CodigoClienteFinal,
                                                                                               procesarMovimientoMayorista.NumeroVale, double.Parse(procesarMovimientoMayorista.ImporteVentaTotal.ToString()), procesarMovimientoMayorista.MontoFinanciado, procesarMovimientoMayorista.FolioOperacionAsociada, codigoTransaccion, fechaVenta);
                if (respuesta.sError == "")
                {
                    operation.CodeNumber      = "1";
                    operation.CodeDescription = respuesta.sMensaje;
                }
                else
                {
                    operation.CodeNumber      = "0";
                    operation.CodeDescription = respuesta.sError;
                }
            }
            catch (Exception ex)
            {
                operation.CodeNumber      = "0";
                operation.CodeDescription = ex.Message;
            }
            return(operation);
        }
Пример #3
0
 /// <summary>
 /// Procesar pago por venta a mayorista
 /// </summary>
 /// <param name="request">Movimiento venta a mayorista</param>
 /// <returns>Resultado de la operación</returns>
 public ResponseBussiness <OperationResponse> ProcesarVentaMayorista(ProcesarMovimientoMayorista request)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         using (TransactionScope scope = new TransactionScope())
         {
             InfoValeResponse infoVale = new MayoristasBusiness(this.token).ValidarVale(request.NumeroVale);
             if (infoVale.Estatus == "D")
             {
                 // 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
                 OperationResponse responseLocal = repository.ProcesarMovimientoMayorista(token.CodeStore, token.CodeBox, token.CodeEmployee, request);
                 if (responseLocal.CodeNumber == "354")
                 {
                     var codigoTransaccion = int.Parse(responseLocal.CodeDescription);
                     var responseVentaEmpleado = new MayoristasBusiness(this.token).PagoVentaMayorista(request, codigoTransaccion);
                     if (responseVentaEmpleado.CodeNumber == "1")
                     {
                         scope.Complete();
                     }
                     return responseVentaEmpleado;
                 }
                 else
                 {
                     return responseLocal;
                 }
             }
             else
             {
                 OperationResponse operationVale = new OperationResponse();
                 operationVale.CodeNumber = "0";
                 operationVale.CodeDescription = this.repository.ObtenerMensajeValeNoDisponible().CodeDescription;
                 return operationVale;
             }
         }
     }));
 }