Exemple #1
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;
             }
         }
     }));
 }
Exemple #2
0
        private OperationResponse PagoVentaCreditoMayorista(FinalizarVentaRequest request)
        {
            OperationResponse response = new OperationResponse();

            response.CodeNumber = "1";
            VentaResponse venta = this.repository.ObtenerVentaPorFolio(request.FolioVenta, 0);

            foreach (LineaTicket linea in venta.Lineas)
            {
                if (linea.TipoDetalleVenta == "43")
                {
                    PagoCreditoMayoristaRequest pago = new PagoCreditoMayoristaRequest();
                    pago.CodigoMayorista        = venta.CodigoMayorista;
                    pago.FolioOperacionAsociada = venta.FolioVenta;
                    pago.ImportePago            = linea.Articulo.PrecioConImpuestos;
                    response            = new MayoristasBusiness(this.token).PagoCreditoMayorista(pago, venta.NumeroTransaccion);
                    response.CodeNumber = "1";
                }
            }
            return(response);
        }