Skip to main content

EFT Remittance Dashboard Documentation

Table of Contents

Project Overview

The MepApps EFT Remittance Dashboard is a specialized SYSPRO plugin designed to streamline the processing and distribution of Electronic Funds Transfer (EFT) remittance advices to suppliers. This dashboard integrates seamlessly with SYSPRO's Accounts Payable module to automate the generation, validation, and email distribution of remittance documents following EFT payment processing.

Business Purpose

The dashboard addresses the critical business need of communicating payment details to suppliers after EFT transactions are processed. It replaces manual remittance processes with an automated, auditable workflow that ensures suppliers receive timely and accurate payment notifications, improving supplier relationships and reducing accounts payable inquiries.

Key Features

Beyond the standard MepDash template functionality, this dashboard implements:

  • ✅ Bulk Remittance Processing: Process multiple EFT payments simultaneously with intelligent batching
  • 📧 Automated Email Distribution: Send remittance advices directly to supplier email addresses with configurable CC/BCC options
  • 📊 SSRS Report Integration: Generate professional remittance documents using SQL Server Reporting Services
  • 🔍 Payment Search & Filtering: Advanced search capabilities for locating specific payments or check numbers
  • ✉️ Email Validation: Pre-flight validation of supplier email addresses before sending
  • 📝 Comprehensive Audit Trail: Track all remittance activities with the MepAppsApEftRemittanceAudit table
  • 🖨️ Preview Before Send: Review remittance documents before distribution
  • 🔄 Retry Mechanism: Automatic retry for failed email deliveries
  • 📁 Network Share Integration: Store generated reports on network shares for archival
  • 🎯 Selective Processing: Choose specific suppliers for remittance processing

Architecture Summary

The dashboard follows a layered architecture pattern:

┌─────────────────────────────────────┐
│ SYSPRO Host UI │
├─────────────────────────────────────┤
│ MepDash Module Container │
├─────────────────────────────────────┤
│ EFT Remittance Dashboard │
│ ┌────────────────────────────┐ │
│ │ Presentation Layer │ │
│ │ (Views & ViewModels) │ │
│ ├────────────────────────────┤ │
│ │ Service Layer │ │
│ │ (Business Logic) │ │
│ ├────────────────────────────┤ │
│ │ Data Layer │ │
│ │ (EF & Dapper) │ │
│ └────────────────────────────┘ │
├─────────────────────────────────────┤
│ SYSPRO Database │
└─────────────────────────────────────┘

Key Components

  • MainView/MainViewModel: Application entry point and container
  • EftRemit_RunReportsView/ViewModel: Core remittance processing interface
  • EftRemittanceService: Business logic for remittance operations
  • PluginSysproDataContext: Entity Framework context for data access
  • RegisterServiceProvider: Dependency injection configuration

Technology Stack

  • Framework: .NET Framework 4.7.1
  • UI Framework: WPF (Windows Presentation Foundation)
  • MVVM Framework: Custom implementation with INotifyPropertyChanged
  • Data Access:
    • Entity Framework 6.x for ORM
    • Dapper for performance-critical queries
  • Reporting: SQL Server Reporting Services (SSRS)
  • Logging: Serilog with Seq integration
  • DI Container: Microsoft.Extensions.DependencyInjection
  • SYSPRO Integration: MepDash Module 0.3.6
  • Email Service: MepApps Email Service API

Getting Started

Prerequisites

  1. SYSPRO 8 installed and configured
  2. MepDash Module version 0.3.6 or higher
  3. SQL Server with SSRS configured
  4. Visual Studio 2019/2022 with .NET Framework 4.7.1 SDK
  5. Network share access for report storage
  6. Email server configuration in SYSPRO

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/mepapps/MepApps.Dash.Ap.Rpt.EftRemittance.git
  2. Restore NuGet packages:

    nuget restore MepApps.Dash.Ap.Rpt.EftRemittance.sln
  3. Configure connection strings in SYSPRO:

    • Update company database connection
    • Configure SSRS report server URL
  4. Deploy database objects:

    -- Create audit table if not exists
    CREATE TABLE MepAppsApEftRemittanceAudit (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    TrnTime DATETIME,
    SysproOperator VARCHAR(20),
    MailItemId VARCHAR(50),
    PaymentNumber VARCHAR(15),
    Supplier VARCHAR(15),
    [Check] VARCHAR(15),
    Email VARCHAR(255),
    Attachment VARCHAR(500)
    )
  5. Deploy SSRS reports to the report server path: /MepApps/EftRemittance/

  6. Build and deploy the dashboard DLL to SYSPRO plugins folder

Configuration Requirements

  • Configure network share path for report storage
  • Set up supplier email addresses in SYSPRO AP master
  • Configure email server settings in MepApps configuration
  • Set appropriate user permissions for audit table access

Project Structure

MepApps.Dash.Ap.Rpt.EftRemittance/
├── Db/ # Data access layer
│ ├── CustomDbModels/ # Custom entity models
│ │ ├── ApRemit.cs # Payment remittance data model
│ │ └── MepAppsApEftRemittanceAudit.cs # Audit trail model
│ └── PluginSysproDataContext.cs # EF DbContext
├── Services/ # Business logic layer
│ ├── EftRemittanceService.cs # Core remittance operations
│ └── RegisterServiceProvider.cs # DI configuration
├── ViewModels/ # MVVM ViewModels
│ ├── BaseViewModel.cs # Base MVVM implementation
│ ├── BaseRouteableViewModel.cs # Navigation base
│ ├── MainViewModel.cs # Main container VM
│ ├── EftRemit_RunReportsViewModel.cs # Remittance processing VM
│ ├── PaymentDetail.cs # Payment detail model
│ └── SelectionItem.cs # UI selection model
├── Views/ # WPF Views
│ ├── MainView.xaml/.cs # Main container view
│ └── EftRemit_RunReportsView.xaml/.cs # Remittance UI
├── Resources/ # XAML resources
│ └── ResourceDictionary.xaml # Styles and templates
├── Globals.cs # Global constants
└── AssemblyInfo.cs # Assembly metadata

Documentation Index

Services (5 docs)

SYSPRO (5 docs)

UI (5 docs)

Examples (10 docs)

Custom Implementations

This dashboard includes several custom implementations beyond the base template:

1. ApRemit Data Model

Custom view/table for payment remittance data with comprehensive supplier and payment information.

2. Audit Trail System

The MepAppsApEftRemittanceAudit table tracks all remittance activities for compliance and troubleshooting.

3. Bulk Email Processing

Intelligent batching system for processing multiple remittances with progress tracking.

4. Network Share Integration

Automatic saving of generated reports to network locations for archival.

5. Email Validation Engine

Pre-send validation of email addresses with user correction capabilities.

Configuration

Application Settings

Key configuration points in the application:

// Network share path (configured in UI)
public string NetworkSharePath { get; set; }

// Email settings
public string BlindCopyList { get; set; } // Comma-separated BCC list

// Filter settings
public bool EftPaymentsOnly { get; set; } = true;
public string CheckFilter { get; set; }

SSRS Configuration

Report server settings configured through SYSPRO:

  • Report Server URL
  • Report Path: /MepApps/EftRemittance/
  • Authentication credentials

Development Guidelines

Coding Standards

  1. Structured Logging: Always use Serilog with @{} destructuring
  2. Async/Await: Use async patterns for all I/O operations
  3. MVVM Pattern: Maintain strict separation between View and ViewModel
  4. Dependency Injection: Register all services in RegisterServiceProvider
  5. Error Handling: Comprehensive try-catch with logging
  6. Null Checks: Validate all service injections in constructors

Project Conventions

  • Naming: Use {Feature}Service, {Feature}ViewModel patterns
  • Interfaces: Define interfaces for all services and ViewModels
  • Commands: Use RelayCommandAsync for async operations
  • Events: Implement weak event patterns to prevent memory leaks

Testing

Unit Testing

Run unit tests for services:

dotnet test MepApps.Dash.Ap.Rpt.EftRemittance.Tests

Integration Testing

  1. Deploy to SYSPRO test environment
  2. Configure test company database
  3. Create test payment data
  4. Verify email delivery to test addresses

SYSPRO Integration Points

Test these specific integration points:

  • Database connectivity
  • SSRS report generation
  • Email service communication
  • Audit table writes
  • Network share access

Deployment

Build Instructions

  1. Set build configuration to Release
  2. Build solution in Visual Studio
  3. Output DLL location: bin/Release/MepApps.Dash.Ap.Rpt.EftRemittance.dll

Deployment Steps

  1. Stop SYSPRO services
  2. Copy DLL to: {SYSPRO_BASE}/Plugins/
  3. Deploy SSRS reports to report server
  4. Run database scripts for custom tables
  5. Restart SYSPRO services
  6. Configure menu access in SYSPRO

Troubleshooting

Common Issues

Issue: "Network share path is invalid"

Solution: Verify network share permissions and path format

Issue: "Email failed to send"

Solution: Check email service configuration and supplier email addresses

Issue: "Report generation failed"

Solution: Verify SSRS configuration and report deployment

Issue: "No payment details found"

Solution: Ensure ApRemit view/table is populated correctly

Debug Logging

Enable debug logging in Serilog configuration:

{
"Serilog": {
"MinimumLevel": "Debug"
}
}

Contributing

Guidelines for Extensions

  1. Follow existing architectural patterns
  2. Add comprehensive logging for new features
  3. Update relevant documentation
  4. Include unit tests for new services
  5. Test in SYSPRO development environment

Code Review Checklist

  • Follows MVVM pattern
  • Includes structured logging
  • Has error handling
  • Includes null checks
  • Updates documentation
  • Passes unit tests

Version History

Version 1.0.0 (Current)

  • Initial release with core EFT remittance functionality
  • Email distribution system
  • SSRS report integration
  • Audit trail implementation

Planned Features

  • Batch scheduling capabilities
  • Enhanced retry mechanisms
  • Multiple report format support
  • Supplier portal integration
  • MepApps.Dash.Template: Base dashboard template
  • MepApps.Erp.Syspro.Win.Module.MepDash: Core MepDash module
  • MepApps.Reporting.Ssrs: SSRS integration library

Contact/Support

For issues, questions, or support:


Last Updated: December 2024
Version: 1.0.0