home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOPAS / TP-LA1.LBR / LAOUTPUT.IQC / LAOUTPUT.INC
Text File  |  2000-06-30  |  8KB  |  176 lines

  1. {LAOUTPUT.INC - Output procedures used in program LA.PAS.}
  2.  
  3. PROCEDURE ShowOnScreen;
  4.     Begin
  5.         Repeat
  6.             ClrScr;
  7.             Line_Number := 1;
  8.             GotoXY(29,Line_Number); Write('AMORTIZATION SCHEDULE');
  9.             Show_Heading;
  10. {Screen Line 08 or 09}
  11.             Line_Number := Line_Number + 2;
  12.             GotoXY(01,Line_Number); Writeln(
  13. '  PAYMENT      PAYMENT       EXTRA       MONTHLY     MONTHLY       PRINCIPAL');
  14.             Writeln(
  15. '    DUE          NO.        PAYMENT     INTEREST    PRINCIPAL       BALANCE');
  16.             Line_Number := 10 + Month;
  17.             Repeat
  18.                 Compute_Line;
  19.                 GotoXY(02,Line_Number);Write(Date);
  20.                 GotoXY(17,Line_Number);PrintUsing('###',Payment_Number,Print_Or_Screen);
  21.                 GotoXY(27,Line_Number);PrintUsing('#,###.##',Month_Extra,Print_Or_Screen);
  22.                 GotoXY(40,Line_Number);PrintUsing('#,###.##',Month_Interest,Print_Or_Screen);
  23.                 GotoXY(53,Line_Number);PrintUsing('#,###.##',Month_Prin,Print_Or_Screen);
  24.                 GotoXY(66,Line_Number);PrintUsing('###,###.##',Balance,Print_Or_Screen);
  25.                 Interest_To_Date := Interest_To_Date + Month_Interest;
  26.                 Line_Number      := Line_Number + 1;
  27.                 If Balance = 0 then
  28.                     Line_Number := 23;
  29.             Until Line_Number = 23;
  30.             GotoXY(01,24);Write('TOTAL INTEREST FOR YEAR = ');
  31.             Total_Interest       := Total_Interest + Interest_To_Date;
  32.             GotoXY(39,24);PrintUsing('##,###.##',Interest_To_Date,Print_Or_Screen);
  33.             Interest_To_Date     := 0;
  34.             Read(InKey);
  35.         Until Balance = 0;
  36.         ClrScr;
  37.         Show_Header;
  38.         GotoXY(28,16);Write('FINAL PAYMENT IS = ');
  39.         GotoXY(49,16);PrintUsing('###,###.##',Month_Extra + Month_Interest + Month_Prin + Property_Tax,Print_Or_Screen);
  40.         GotoXY(21,18);Write('TOTAL INTEREST FOR LOAN = ');
  41.         GotoXY(47,18);PrintUsing('#,###,###.##',Total_Interest,Print_Or_Screen);
  42.         Read(InKey);
  43.     end; (* ShowOnScreen *)
  44.  
  45. PROCEDURE PrintItOut;
  46.     const
  47.         Lines_Per_Page            : integer = 66;
  48.     var
  49.         Line_Cnt, Page_Nbr        : integer;
  50.         Page_Done                 : Boolean;
  51.     Begin
  52.         Page_Nbr  := 1;
  53.         Repeat
  54.             Write(Lst,'                              ');
  55.             Write(Lst,'AMORTIZATION SCHEDULE');
  56.             Write(Lst,'                 Page: ');
  57.             PrintUsing(##,Page_Nbr,Print_Or_Screen);
  58.             WriteLn(Lst,' ');
  59.             WriteLn(Lst,' ');
  60.             If Page_Nbr = 1 then
  61.                 Begin
  62.                     Write(Lst,'     PRINCIPAL       = ');
  63.                     PrintUsing('###,###.##',Principal,Print_Or_Screen);
  64.                     Write(Lst,'          ');
  65.                     Write(Lst,'MINIMUM PAYMENT       = ');
  66.                     PrintUsing('#,###.##',Payment,Print_Or_Screen);
  67.                     WriteLn(Lst,' ');
  68.                     Write(Lst,'     INTEREST RATE   =     ');
  69.                     PrintUsing('##.###',Print_Interest,Print_Or_Screen);
  70.                     Write(Lst,'%         ');
  71.                     Write(Lst,'NON EQUITY AMOUNT     =   ');
  72.                     PrintUsing('###.##',Property_Tax,Print_Or_Screen);
  73.                     WriteLn(Lst,' ');
  74.                     Write(Lst,'     TERM OF LOAN    =        ');
  75.                     PrintUsing('###',Number_Of_Payments,Print_Or_Screen);
  76.                     Write(lst,' ');
  77.                     Write(Lst,Term_Name[T_Indx]);
  78.                     Write(Lst,'EXTRA EQUITY PAYMENT  =   ');
  79.                     PrintUsing('###.##',Extra,Print_Or_Screen);
  80.                     WriteLn(Lst,' ');
  81.                     Write(Lst,'     1ST PAYMENT DUE =    ');
  82.                     Write(Lst,Print_Date);
  83.                     Write(Lst,'          ');
  84.                     Write(Lst,'TOTAL PAYMENT         = ');
  85.                     PrintUsing('#,###.##',Total_Payment1,Print_Or_Screen);
  86.                     WriteLn(Lst,' ');
  87.                     If Total_Payment2 > 0 then
  88.                         Begin
  89.                             Write(Lst,'     BEGINNING DATE  =    ');
  90.                             Write(Lst,Print_Date2);
  91.                             Write(Lst,'          ');
  92.                             Write(Lst,'TOTAL PAYMNT (2)      = ');
  93.                             PrintUsing('#,###.##',Total_Payment2,Print_Or_Screen);
  94.                             WriteLn(Lst,' ');
  95.                         end; (* Begin *)
  96.                 end; (* Begin *)
  97.             Write(Lst,'     ');
  98.             WriteLn(Lst,
  99. '========================================================================');
  100.             Write(Lst,'     ');
  101.             WriteLn(Lst,
  102. '= PAYMENT     PAYMENT       EXTRA      MONTHLY    MONTHLY     PRINCIPAL=');
  103.             Write(Lst,'     ');
  104.             WriteLn(Lst,
  105. '=   DUE         NO.        PAYMENT    INTEREST   PRINCIPAL     BALANCE =');
  106.             Write(Lst,'     ');
  107.             WriteLn(Lst,
  108. '========================================================================');
  109.             If Page_Nbr = 1 then
  110.                 If Total_Payment2 > 0 then
  111.                     Line_Cnt := 11
  112.                 Else
  113.                     Line_Cnt := 10
  114.             Else
  115.                 Line_Cnt     := 6;
  116.             Page_Done := false;
  117.             Repeat
  118.                 Compute_line;
  119.                 Write(Lst,'      ');
  120.                 Write(Lst,Date);
  121.                 Write(Lst,'      ');
  122.                 PrintUsing('###',Payment_Number,Print_Or_Screen);
  123.                 Write(Lst,'      ');
  124.                 PrintUsing('#,###.##',Month_Extra,Print_Or_Screen);
  125.                 Write(Lst,'   ');
  126.                 PrintUsing('#,###.##',Month_Interest,Print_Or_Screen);
  127.                 Write(Lst,'   ');
  128.                 PrintUsing('#,###.##',Month_Prin,Print_Or_Screen);
  129.                 Write(Lst,'  ');
  130.                 PrintUsing('###,###.##',Balance,Print_Or_Screen);
  131.                 WriteLn(Lst,' ');
  132.                 Interest_To_Date := Interest_To_Date + Month_Interest;
  133.                 Line_Cnt := Line_Cnt + 1;
  134.                 If Balance = 0 then
  135.                     Month := 1;
  136.                 If Month = 1 then
  137.                     Begin
  138.                         WriteLn(Lst,' ');
  139.                         Write(Lst,'          ');
  140.                         Write(Lst,'TOTAL INTEREST FOR YEAR = ');
  141.                         Write(Lst,'     ');
  142.                         PrintUsing('##,###.##',Interest_To_Date,Print_Or_Screen);
  143.                         WriteLn(Lst,' ');
  144.                         WriteLn(Lst,' ');
  145.                         Total_Interest := Total_Interest + Interest_To_Date;
  146.                         Interest_To_Date := 0;
  147.                         Line_Cnt := Line_Cnt + 3;
  148.                     end; (* Begin *)
  149.                 If Line_Cnt > 50 then
  150.                     Page_Done := true;
  151.                 If Balance = 0 then
  152.                     Page_Done := true;
  153.             Until Page_Done;
  154.             If Balance > 0 then
  155.                 Repeat
  156.                     WriteLn(Lst,' ');
  157.                     Line_Cnt := Line_Cnt + 1;
  158.                 Until Line_Cnt = 66;
  159.             Page_Nbr := Page_Nbr + 1;
  160.         Until Balance = 0;
  161.         Write(Lst,'          ');
  162.         Write(Lst,'       FINAL PAYMENT OF =     ');
  163.         PrintUsing('###,###.##',Month_Extra + Month_Interest + Month_Prin + Property_Tax,Print_Or_Screen);
  164.         WriteLn(Lst,'  ');
  165.         WriteLn(Lst,'  ');
  166.         Write(Lst,'          ');
  167.         Write(Lst,'TOTAL INTEREST FOR LOAN = ');
  168.         Write(Lst,'  ');
  169.         PrintUsing('#,###,###.##',Total_Interest,Print_Or_Screen);
  170.         WriteLn(Lst,'  ');
  171.         Line_Cnt := Line_Cnt + 3;
  172.         Repeat
  173.             WriteLn(Lst,' ');
  174.             Line_Cnt := Line_Cnt + 1;
  175.         Until Line_Cnt = 66;
  176.     end; (* PrintItOut *)