Automatically Send Invoice on Past Due Accounts

This seems like it has been asked before, but I didn’t see much of a solution.
Has anyone come up with a way to automatically send an invoice reminder to a customer that has a balance that’s past due a certain number of days?

This would require generally an external process / BAQ something to get the data and send the emails. If you don’t want to use an external process you could look at buying this from Epicor
http://www.dotnetit.co.uk/solutions/solution/user-process-scheduler
Which allows you to schedule arbitrary / BPM code to run on a process schedule.

Am I going to have to create a new invoice template form that takes parameters instead of a table guid or would there be a way to utilize the invoice form template within Epicor?

You can just run the Invoice Report as IS from Epicor via code and email it, or you can use APM or the new Advanced Print Routing functionality on 10

I’ve never run a report from code before.
Would you be able to share a snippet or two to get me something to work from?

Sure thing, the parameters vary by report (get them from a Trace), the Adapter also varies per report… Use the appropriate adapter for the report you are running.

/Adapter is in the UI Dll for the Report

//Invoke the BO
SOPickListReportAdapter pl = new SOPickListReportAdapter(oTrans);
pl.BOConnect();

//Get Paramters
pl.GetNewParameters();

//Set Parameters
pl.ReportData.SOPickListReportParam[0].FromDate = DateTime.Now.AddYears(-1);
pl.ReportData.SOPickListReportParam[0].ToDate = DateTime.Now.AddYears(20);
pl.ReportData.SOPickListReportParam[0].OrderList = SONum;
pl.ReportData.SOPickListReportParam[0].NewPage = true;
pl.ReportData.SOPickListReportParam[0].BarCodes = true;
pl.ReportData.SOPickListReportParam[0].PrintKitComponents = true;
pl.ReportData.SOPickListReportParam[0].ReportStyleNum = 1001;
pl.ReportData.SOPickListReportParam[0].AutoAction = "SSRSPREVIEW";
pl.ReportData.SOPickListReportParam[0].SSRSRenderFormat = "PDF";
pl.ReportData.SOPickListReportParam[0].AgentID= "SystemTaskAgent";
pl.ReportData.SOPickListReportParam[0].WorkstationID = Ice.Lib.Report.EpiReportFunctions.GetWorkStationID((Ice.Core.Session)oTrans.Session);

//Submit to Agent
pl.SubmitToAgent("SystemTaskAgent",0,0);
3 Likes

Thanks!

Just a thought, have not tried this…

There is a reminder letter process.

Using this process, can you link the needed invoice form to the reminder letter inside of one combo report from?

I don’t know if this will work, but it would give you a trigger process.

We have down something similar with job travlers and job pick list reports. When you print that style of the report it prints out both.

Wild thought…

Brad Boes
bradboes@boosterpconsulting.com
231-845-1090

2 Likes

I may have to get in touch with support if I want to go that route.
I couldn’t get the reminder process to generate letters with errors talking about null values.