EFT Remittance Dashboard Documentation
Table of Contents
- Project Overview
- Key Features
- Architecture Summary
- Technology Stack
- Getting Started
- Project Structure
- Documentation Index
- Custom Implementations
- Configuration
- Development Guidelines
- Testing
- Deployment
- Troubleshooting
- Contributing
- Version History
- Related Projects
- Contact/Support
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
- SYSPRO 8 installed and configured
- MepDash Module version 0.3.6 or higher
- SQL Server with SSRS configured
- Visual Studio 2019/2022 with .NET Framework 4.7.1 SDK
- Network share access for report storage
- Email server configuration in SYSPRO
Setup Instructions
-
Clone the repository:
git clone https://github.com/mepapps/MepApps.Dash.Ap.Rpt.EftRemittance.git -
Restore NuGet packages:
nuget restore MepApps.Dash.Ap.Rpt.EftRemittance.sln -
Configure connection strings in SYSPRO:
- Update company database connection
- Configure SSRS report server URL
-
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)
) -
Deploy SSRS reports to the report server path:
/MepApps/EftRemittance/ -
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
Navigation (5 docs)
- Navigation Architecture - Overall navigation strategy and patterns
- Page Routing - Service registration and view discovery
- Navigation Events - Event-driven navigation and communication
- Dialog Navigation - Modal dialogs and report previews
- Navigation Best Practices - Guidelines and anti-patterns
Services (5 docs)
- Service Architecture - Service layer design and DI patterns
- Data Services - Data access patterns and Entity Framework usage
- Business Logic Services - Core business operations
- Integration Services - External system integrations
- Utility Services - Helper services and utilities
SYSPRO (5 docs)
- SYSPRO Integration Overview - MepDash module integration
- SYSPRO Data Models - Entity models and table structures
- SYSPRO Posting Patterns - Transaction posting workflows
- SYSPRO Business Objects - Business object interactions
- SYSPRO Customization - Custom tables and fields
UI (5 docs)
- UI Architecture - WPF/MVVM implementation
- MVVM Patterns - ViewModel patterns and data binding
- UI Components - Reusable controls and templates
- Data Presentation - Grids, filtering, and data display
- User Interactions - Input handling and validation
Examples (10 docs)
- EFT Remittance Workflow - Complete payment processing flow
- Payment Validation - Email and data validation
- Audit Tracking - Audit trail implementation
- Report Generation - SSRS report creation
- Email Management - Email queuing and sending
- Payment Selection - Multi-select patterns
- Service Registration - DI configuration
- Data Context Patterns - EF and Dapper usage
- SSRS Integration - Report server integration
- Error Handling - Exception management
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
- Structured Logging: Always use Serilog with
@{}destructuring - Async/Await: Use async patterns for all I/O operations
- MVVM Pattern: Maintain strict separation between View and ViewModel
- Dependency Injection: Register all services in RegisterServiceProvider
- Error Handling: Comprehensive try-catch with logging
- Null Checks: Validate all service injections in constructors
Project Conventions
- Naming: Use
{Feature}Service,{Feature}ViewModelpatterns - 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
- Deploy to SYSPRO test environment
- Configure test company database
- Create test payment data
- 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
- Set build configuration to
Release - Build solution in Visual Studio
- Output DLL location:
bin/Release/MepApps.Dash.Ap.Rpt.EftRemittance.dll
Deployment Steps
- Stop SYSPRO services
- Copy DLL to:
{SYSPRO_BASE}/Plugins/ - Deploy SSRS reports to report server
- Run database scripts for custom tables
- Restart SYSPRO services
- 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
- Follow existing architectural patterns
- Add comprehensive logging for new features
- Update relevant documentation
- Include unit tests for new services
- 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
Related Projects
- 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:
- Email: support@mepapps.com
- Documentation: https://docs.mepapps.com
- Issue Tracker: https://github.com/mepapps/MepApps.Dash.Ap.Rpt.EftRemittance/issues
- SYSPRO Support: Contact your SYSPRO administrator
Last Updated: December 2024
Version: 1.0.0