}//providerReport

        // Scenario: Request Member Report
        private void memberReport()
        {
            try
            {
                //Get the member number
                long number = ui.promptForLong("Member Number: ");

                //Search for the member in the collection
                Members members = new Members();
                members.open();
                Member theMember = members.find(number);
                members.close();

                if (theMember == null)
                {
                    ui.errorMessage("Invalid Member Number");
                    return;
                }

                //Get the end date
                DateTime endDate = ui.promptForDate("End date of week ("
                                                    + UserInterface.DATE_FORMAT + "): ");

                //Generate report for specified week
                MemberReportGenerator generator
                    = new MemberReportGenerator(theMember, endDate);
                MemberReport report = generator.getReport();

                //Display the report
                report.display(ui);

                //"Print" (save the report to a file) if the user wishes
                String answer = ui.promptForString
                                    ("Save the report? (Y)es or (N)o: ");
                if (answer != null && answer.Length >= 1 &&
                    Char.ToUpper(answer[0]) == 'Y')
                {
                    report.print(theMember.getName());
                    ui.message("The report has been saved as "
                               + report.getFileName() + "\n");
                }//if
                else
                {
                    ui.message("Report not saved");
                }
            }
            catch (FileNotFoundException ex)
            {
                //occurs if the file cannot be created
                ui.errorMessage(ex.Message);
            }
        }//memberReport
Esempio n. 2
0
        /**
         * Creates a new SchedulerInterface which then runs the accounting procedure.
         */
        public SchedulerInterface()
        {
            //for communciation with the tester
            UserInterface ui = new UserInterface();

            ui.message("\nRunning the accounting procedure ...\n");

            //Use today's date for all reports
            DateTime now = DateTime.Today;

            try
            {
                //Generate provider reports
                ui.message("Generating the providers' reports ...");
                Providers providers = new Providers();
                providers.open();
                List <Person> allProviders = providers.getAll();
                foreach (Person person in allProviders)
                {
                    Provider provider                 = (Provider)person;
                    ProviderReportGenerator gen       = new ProviderReportGenerator(provider, now);
                    ProviderReport          theReport = gen.getReport();
                    if (theReport.getDetailCount() > 0)
                    {
                        theReport.sendByEmail(provider.getName());
                    }
                }
                providers.close();

                //Generate member reports
                ui.message("Generating the members' reports ...");
                Members members = new Members();
                members.open();
                List <Person> allMembers = members.getAll();
                foreach (Person person in allMembers)
                {
                    Member member                   = (Member)person;
                    MemberReportGenerator gen       = new MemberReportGenerator(member, now);
                    MemberReport          theReport = gen.getReport();
                    if (theReport.getDetailCount() > 0)
                    {
                        theReport.sendByEmail(member.getName());
                    }
                }
                members.close();

                //Generate accounts payable report
                ui.message("Generating the accounts payable report ...");
                AccountsPayableReportGenerator generator
                    = new AccountsPayableReportGenerator(now);
                generator.getReport().sendByEmail("Accounts Payable");

                //Generate EFT data
                ui.message("Generating the EFT data ...");
                EFTReportGenerator eftGenerator = new EFTReportGenerator(now);
                eftGenerator.getReport().print("EFT Data");

                ui.message("\nAccounting procedure completed successfully.\n\n");
            }
            catch (FileNotFoundException ex)
            {
                //occurs if a file cannot be created
                ui.errorMessage(ex.Message);
            }
        }//default constructor
Esempio n. 3
0
        /** Creates a new member report generator which creates a new member report.
         *  @param member the member about whom the report is generated
         *  @param endDate a date within the week for which the report is to be
         *         generated
         *  @throws FileNotFoundException if the file cannot be created.
         */
        public MemberReportGenerator(Member member, DateTime endDate)
        {
            Claims    claims    = null;
            Providers providers = null;
            Services  services  = null;

            //Create a new member report
            report = new MemberReport(member, endDate);

            try
            {
                //create and open the claims, providers and services collections
                claims = new Claims();
                claims.open();
                providers = new Providers();
                providers.open();
                services = new Services();
                services.open();

                //Get all claims submitted for services to this member, ordered by
                //service date
                List <Claim> memberClaims =
                    claims.findByMember(member.getNumber());

                //for each claim
                foreach (Claim nextClaim in memberClaims)
                {
                    //test whether within date range
                    if (nextClaim.getSubmissionDate() > (report.getStartDateRange()) &&
                        nextClaim.getSubmissionDate() < (report.getEndDateRange()))
                    {
                        //get provider
                        String   providerName;
                        Provider provider = providers
                                            .find(nextClaim.getProviderNumber());
                        if (provider == null)
                        {
                            providerName = "Invalid Number";
                        }
                        else
                        {
                            providerName = provider.getName();
                        }

                        //get service
                        String  serviceName;
                        Service service = services.find(nextClaim.getServiceCode());
                        if (service == null)
                        {
                            serviceName = "Invalid Code";
                        }
                        else
                        {
                            serviceName = service.getName();
                        }

                        //add service details to report
                        report.addDetail(nextClaim.getServiceDate(), serviceName,
                                         providerName);
                    } //if date in specified week
                }     //for
            }         //try
            catch (Exception ex)
            {
                report.addErrorMessage(ex.Message);
            }
            finally
            {
                if (claims != null)
                {
                    claims.close();
                }
                if (providers != null)
                {
                    providers.close();
                }
                if (services != null)
                {
                    services.close();
                }
            }
        }//constructor