PMIMAINT.MOD 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. IMPLEMENTATION MODULE PMIMaint;
  2. (*
  3. * ModBase
  4. * Release 3.0
  5. * (c) Copyright 1986 - 1991 PMI
  6. * P.O. Box 8402
  7. * Green Bay Wi 53308
  8. * All Rights Reserved
  9. * by Ed Ross
  10. *)
  11. FROM PMIGlobals IMPORT Config,PMIScreens;
  12. FROM NumTypes IMPORT Real8;
  13. FROM Numbers IMPORT Max;
  14. FROM PosUtils IMPORT Equal;
  15. FROM StrEdit IMPORT CrunchBlanks,DeleteRightJustified,Append,CAPstr,DeleteChar;
  16. FROM M2Strings IMPORT Length;
  17. FROM LowLevel IMPORT Fill;
  18. FROM StringIO IMPORT PrintMessage,ErrorMessage,WriteEol,WriteStr,outp;
  19. FROM SmartScreen IMPORT ClearScreen;
  20. FROM ScrnUtl1 IMPORT FieldNum;
  21. FROM ScrnUtl2 IMPORT CloseDisplayFrame;
  22. FROM VWindows IMPORT ClearPart, CurrentWindow, SetCursorHeight;
  23. FROM ScrnTypes IMPORT DisplayFrame,InitDisplayFrame,AFrameName;
  24. FROM FramePainter IMPORT ShowDisplayFrame,RedrawField;
  25. FROM InputManager IMPORT ControlFrame;
  26. FROM FrameManager IMPORT EraseFrame;
  27. FROM Prompts IMPORT PromptYN;
  28. FROM SYSTEM IMPORT ADR,SIZE,ADDRESS;
  29. FROM ControlUtils IMPORT ControlSeparately, LoadFrameList,Control,ChangeField;
  30. FROM DspFiles IMPORT OpenDisplayFile,ReadDisplayFrame;
  31. FROM DBFCustomer IMPORT CustomerDBF,MoveCustomerToDBF,MoveCustomerFromDBF,
  32. CustomerRec, OpenCustomerDBF,CloseCustomerDBF,PackCustomer;
  33. FROM ModBase3 IMPORT ReadDBRec,WriteDBRec,NumberRecords;
  34. FROM DBFInvtry IMPORT PackInvtry;
  35. FROM DBFInvoice IMPORT PackInvoice;
  36. FROM DBFGas IMPORT PackGas;
  37. FROM DBFPayments IMPORT PackPayments;
  38. FROM DBFOrder IMPORT PackOrder;
  39. VAR
  40. DF : DisplayFrame;
  41. NxtFrame : AFrameName;
  42. PROCEDURE PackDatabase();
  43. TYPE
  44. PackType = (PCust,PPay,PInv,PInvy,PGas,POrder);
  45. VAR
  46. WhatToPack : SET OF PackType;
  47. BEGIN
  48. WhatToPack := WhatToPack / WhatToPack;
  49. IF PromptYN(' Pack Customer ',DF)
  50. THEN
  51. INCL(WhatToPack,PCust);
  52. END;
  53. IF PromptYN(' Pack Payments ',DF)
  54. THEN
  55. INCL(WhatToPack,PPay);
  56. END;
  57. IF PromptYN(' Pack Invoices ',DF)
  58. THEN
  59. INCL(WhatToPack,PInv);
  60. END;
  61. IF PromptYN(' Pack Inventory ',DF)
  62. THEN
  63. INCL(WhatToPack,PInvy);
  64. END;
  65. IF PromptYN(' Pack Helium ',DF)
  66. THEN
  67. INCL(WhatToPack,PGas);
  68. END;
  69. IF PromptYN(' Pack Orders ',DF)
  70. THEN
  71. INCL(WhatToPack,POrder);
  72. END;
  73. ClearScreen();
  74. IF PPay IN WhatToPack
  75. THEN
  76. WriteEol(outp,' Packing Payments database ');
  77. PackPayments();
  78. END;
  79. IF PCust IN WhatToPack
  80. THEN
  81. WriteEol(outp,' Packing customer database ');
  82. PackCustomer();
  83. END;
  84. IF PInv IN WhatToPack
  85. THEN
  86. WriteEol(outp,' Packing Invoice database ');
  87. PackInvoice();
  88. END;
  89. IF PInvy IN WhatToPack
  90. THEN
  91. WriteEol(outp,' Packing Inventory database ');
  92. PackInvtry();
  93. END;
  94. IF PGas IN WhatToPack
  95. THEN
  96. WriteEol(outp,' Packing Gas database ');
  97. PackGas();
  98. END;
  99. IF POrder IN WhatToPack
  100. THEN
  101. WriteEol(outp,'Packing orderdatabase');
  102. PackOrder();
  103. END;
  104. END PackDatabase;
  105. PROCEDURE ResetCustYTD();
  106. VAR
  107. Cust : CustomerRec;
  108. LI : LONGINT;
  109. BEGIN
  110. IF NOT PromptYN(' Reset Customer YTD Purchases? ',DF)
  111. THEN
  112. RETURN;
  113. END;
  114. OpenCustomerDBF(FALSE);
  115. ClearScreen();
  116. FOR LI := 1 TO NumberRecords(CustomerDBF) DO
  117. ReadDBRec(CustomerDBF,LI);
  118. MoveCustomerFromDBF(Cust);
  119. WriteStr(outp,' Processing ');
  120. WriteEol(outp,Cust.NAME);
  121. Cust.YTDPURCH := 0.0;
  122. MoveCustomerToDBF(Cust);
  123. WriteDBRec(CustomerDBF);
  124. END;
  125. CloseCustomerDBF();
  126. END ResetCustYTD;
  127. PROCEDURE Maintain();
  128. BEGIN
  129. InitDisplayFrame(DF,CurrentWindow);
  130. ReadDisplayFrame(PMIScreens,DF,'Maint');
  131. REPEAT
  132. ClearScreen();
  133. ShowDisplayFrame(DF,0,0,0,0);
  134. ControlFrame(DF,1,'',FALSE,NxtFrame);
  135. IF Equal(NxtFrame,'PackDB')
  136. THEN PackDatabase();
  137. ELSIF Equal(NxtFrame,'ResetCust')
  138. THEN ResetCustYTD();
  139. END;
  140. UNTIL Equal(NxtFrame,'Exit');
  141. CloseDisplayFrame(DF);
  142. END Maintain;
  143. END PMIMaint.
  144.