Applewood Computers Accounting System Code-v3.3
Accounting system for smaller companies written in GnuCobol.
Brought to you by:
vcoen
The file README.nightly should also be read if using the latest v3.02 code that is updated nightly if any changes have occurred to code, manuals etc. Latest changes is at the TOP. Once testing is complete I would like to issue the ACAS system as version v3.3. This will be reflected in cvs / svn source code versioning as code-v3.3 or cvs-v3.3 with a new file reflecting this. WARNING: The current version of ACAS built to the nightly archives is subject to testing for all the new features listed above as well as some not so listed. Including while testing to update the manuals to reflect current usage and screen lay outs etc. Offers to help in this endeavour would be gratefully received, and that can include help on Testing, Document writing, updating, software updates and programming new features if and as required. I am, but only one person doing this work that originally had a team of 6 helping but as the ACAS system is now open source there is no funds to pay for any such a team but in any event as I hit my 78 year birthday this past June and my work load has some what dropped - brain power likewise :( PLEASE READ: - To help update software sources and manuals you need to be registered at sourceforge so you can be added as a "updater" etc. Just send me a message with an outline of the areas you wish to work on and an idea of your skill set. Note all manuals are written using the free to obtain and use LibreOffice office software that is available on all platforms e.g., Linux, OSX, Windows etc. As thse documents are created using the ODF (Open Document Format) they 'should' be readable using Microsoft Office product from 2019 and onwards BUT I have not tested this as I am not rich enough to obtain it to test. 2025-09-21 * Vincent B. Coen With most testing completed although full system testing still in progress I have updated all source to v3.3 pre-final release including the manuals. This does not mean that all bugs have been found and all testing is complete. Any such will be updated for this version and as time allows (and I remember) I will back port all to the v3.2 version close to the same time. HOWEVER the latest version will always be v3.3 at any point in time. Purchase ledger is still undergoing system testing with more order transaction entries and entering both auto payments and manual one's with the various reports being run and checked. Hopefully concuding before the end of year if not sooner. As a point of interest all testing is complete for IRS, Stock and Sales apart for some reports. I have not had any time to work with General at all since it was migrated over to using the GnuCobol compiler (v3.2 final) now some years back. On this some logic needs changes to bring it inline with IRS processing at least to regards of posting processing and to retain all until end of year - as per IRS although this should not take a lot of time - I hope. General is more complex in setting up the CoA than for IRS as there are some special requirements for account number used for specific purposes and I need to get my head around these. It has been many years since I have even looked let alone played with it and will require examining the source code. Volunteers any one ?. It will require some accountancy knowledge. 2025-04-14 * Vincent B. Coen All basic testing has completed for BO - Back Orders with the changed or new program namely : st020 - Stock Additions sl970 - BO reporting, Update, Manual record creation. sl910 - Invoice entry. Manuals - Sales Ledger updated for BO processing although some more info might be needed. Building the ACAS System - Minor updates. System Set up procedures Updated, more needed ? Check for typo's etc. 2024-12-22 * Vincent B. Coen To confirm all work on OE has terminated as the one missing function it had over ACAS was BO (Back Ordering) which has been added to ACAS although very much under testing mode at least for the invoicing program (sl910) as testing has finished for the other program changed (st020 - Stock Additions), to support it plus the one new program (sl970 BO Reporting and amendments). Very limited testing in sl970 amendments as it was an after thought mostly for use in testing but left in for users - just in case as the Sales Invoicing program (Sl910) after processing a BO record will delete it after being used/processed subject to user request. I.e., it only will offer to delete after an invoice has been created. Currently testing is in progress although slowly for the changes in SL910 Sales Invoicing to confirm all BO extra coding is working as expected and the rest of the system if nothing else than to add the needed data throughout the ACAS system for the testing. Additional testing (System) to validate that no changes made over the last year or two has effected the system functionality AND to help update the various manuals such as Sales, Purchase and the various others used to help set the system up, ACAS into etc. I am always looking for help with these manuals so all offers of help is greatly accepted and the only thing a volunteer needs is to be a registered member at Sourceforge so that you can be added as a valid updater of the ACAS sources. 2024-12-15 * Vincent B. Coen Coding for Back Orders has been completed ready for system testing but mostly fir sales invoicing as stock is already tested but subject to system testing. 2024-04-16 * Vincent B. Coen Nightly builds updated on SF as well as in the cvs code base. I am trying to remember to keep this up to date at least on a weekly basis but cannot find a way of doing it in a automatic manner using Linux crontab process mostly cause bu the need to input the password. Manuals are still being updated with new one's added. For Sales Ledger coding for Back order processing has been completed although needs to be tested which is about to start. These extra processes includes changes to sl010, sl910 and new program sl970. Also in Stock control - st010 and st020. Recurring invoices programming has also been completed but again needs testing as well. There is also some coding for similar in Purchase ledger but is currently incomplete as the need for it here is undetermined. Options ? I have added a new nightly file : OE-nightly.rar which is/was an experiment where the code was taken from an archived tandy website. I migrated the code over from RM Cobol v1.4 or about to GnuCobol and while testing have had to make a lot of changes to clear a lot of bugs mostly from the original code. While testing I found only one extra features present that was not in ACAS namely Back Order Processing but only to reporting stage nothing beyond. Hence the reason for putting the feature in ACAS Sales and Stock. The one other feature? that OE has is dealing with Salesmen and their commissions but as there is no actual Payroll system to link to it is a bit pointless and as there is no Payroll in ACAS, likewise. Why would any business want to pay people a commission taking orders over the telephone ? So, with that the only feature in OE that differs from ACAS I have now stopped doing any work on it but have made it available to any one who want to take a look at the code base and before you ask no, that is how I found it but remember in the late 70's micro's had very small amount of Ram to work with such as 640kB and floppy disks as there storage medium. So very tight when programming an application. There original ACAS code was also tightly packed but using separate modules to handle screen output and keyboard input was never considered as the Cobol compiler used did a reasonable job of it - MF CIS Cobol and may be we we had more experience of programming in Cobol. 2024-03-17 * Vincent B. Coen Started work on changes to SL910, SL920 to support BO (Back Orders) in invoicing will need new program SL970 for reporting such actions. 2024-03-13 * Vincent B. Coen Added fields in System record to support Back Ordering in System record area and Stock control and likewise in Stock rec. Applied to ACASDB.sql definitions etc including the DB master load. Change code in System rdbms loader, no need for stock. 2024-01-22 * Vincent B. Coen Corrected typos in the item below : 2024-01-21 * Vincent B. Coen For development and testing I am now using v3.2 final instead of playing with 3.3 A/Beta etc due to issues with building it using libtool v2.4.7 which is the version used in my system of Mageia v9 X64. As of today the licence for the ACAS system has been updated to reflect 2024 and some minor changes to the COPYRIGHT notice itself. For this, see any Cobol source files with the .cob extension but it is shown here for reference: -- I have, for the last few months been working on migrating over a OE (Order Entry) system that I found on a archived Tandy website This Cobol system was written in 1979 for the RM Cobol compiler version around 1.4. Needless to say it has not been an easy process mostly due to the approach taken to keep the executables within a 500k Ram for Dos and Xenix, Some of these issues are still evident within the code. My interest, was the fact that it at least on paper OE handled BO (Back Orders) but the system has next to zero documentation other than the original system specifications for a version 1 release. When testing the migration over to GnuCobol many bugs appeared outside the migration, at least for the programs tested. This is most of the system but a few elements have not been. This is due to time as I spent around 8 weeks on it with the intention of considering adding it into Sales Ledger or adding the BO (Back Order) element into SL. The testing so far done indicates, that testing and development was not completed as some functionality appears to be missing. In any event it would take some time to migrate the BO process and maybe OE itself, over to ACAS. So in this, I have at least for the moment stopped work on it. The sources for it are included in the ACAS archive but as a separate archive for anyone to have a play. Another point is that it has differences in field usage from ACAS in that the Stock item file has three different prices available where ACAS just the one but provides discounts both at the item level and the invoice so two of them would need to be removed. The Customer file holds fields for Tax code, discount and a few other examples of similar, that are not used in such a manner and that would also need to be dealt with. For the moment because of the way BO works (or NOT) it is on the back burner. I suspect it still requires some 2 - 4 weeks testing to find and fix the current problems lurking within. So I will be returning to ACAS manual updates and system testing both for the new and existing features that are not very well reported on, as well as checking that the recurring invoice sub system works as required. For those that are not sure what "recurring" billing is - It is a system that allows for periodic invoicing such as yearly, quarterly, monthly etc, for specific services such as Rents, Subscriptions, monthly software usage fees etc. This clearly is more for service items and not notably a stock / product type facility. A very long time a go it was installed but a more basic facility and as no one was really happy with it so it was removed. The new version of this, is a total rewrite - sort of as many aspects are taken from the existing invoicing system but using a different data file that when such a charge is due a copy of the transaction is passed to the invoicing system and on to the invoice file for further processing within the invoicing sub system. Well that is the theory anyway, all subject to testing. 2022-12-08 * Vincent B. Coen For development and testing am now using gnucobol v3.2 from the current svn stream and this version is issuing a warning about goto-section and these are a go to statement that goes to the start of the same section. So for all other than Stock an extra element is added to the compile commands in the scripts for both with and without rdbms (comp-no-rdbms.sh and comp.sh etc, for each ledger). but for stock as it only had three programs effected it was quick to just change the program sources in st030, st040 and st050. Same applies to sy002 and the same time I changed the dates of copyright notices AND the version numbers of changed programs. I have not yet found or received aa reason for this compiler change that is creating this warning message and as the code only does a goto within the section the logic is totally valid although if a goto was going outside the section to another it could present a problem but this does not happen. There is no other changes and none that effect any logic. 2020-06-23 * Vincent B. Coen Added a CDF constant to turn ON or OFF file access logging in common/fhlogger.cbl CURRENTLY it is ON, so after testing change it before recompiling the ACAS system. Happy 73rd to me and save paper ! 2019-12-08 * Vincent B. Coen Changed Cobol compiler sources to gnucobol-3.1-dev as more stable than v3.2. 2019-06-13 * Vincent B. Coen Updated all RDBMS load programs (common/*LD.cbl) to o/p run messages other than no param file or no RDB set up to file [SYS-DISPLAY.log] as these will produce a display messages indicating the problem/s. The SYS-DISPLAY.log file needs to be examined via 'less' to check if any problems occurred. When running the load programs via the masterLD.sh script it will output the content of this file if it exists. WHY this way ? because the displayed output from program have escape sequences which disappears from screen and also does not appear if running the load programs with redirects i.e., abcdLD > loader.log. 2018-07-12 * Vincent B. Coen Update to the nightly builds archive. Added Oracle's ISAM handling code as archive db-6.2.32.NC.tar.gz. This is for anyone wishing to use the current test data archive that was created using the DBD ISAM library. If you have a later one in use, it might also work. Otherwise install and then recompile the GnuCOBOL compiler. The test data will be in its own archive in the nightly download directory area. Note that test data will only get updated as testing occurs!! Test data also includes a dummy client and Company Dykegrove and as this is used for system testing as other system are tested in whole or part the file count will increase, 2018-06-10 * Vincent B. Coen Updates to General Ledger sources, Building the ACAS System manual, General & IRS manuals - See discussion area for more info. 2018-05-28 * Vincent B. Coen Changed all Menu programs ACAS, IRS, GL, SL, Stock etc to check that terminal program settings for columns and lines is => 80, 24. This adds new system messages so the Building the ACAS system is updated. 2018-05-22 * Vincent B. Coen After init. testing of General Ledger found bugs in file backup routines for all systems other than IRS - this is still ongoing. Corrected. 2018-05-14 * Vincent B. Coen Check source for the MySql & Mariadb connector-C archives to the cobolsrc/ACAS directory via a link and updated presql2 to 222. as not being picked up, again a link. 2018-04-25 * Vincent B. Coen. Changed ALL menu programs that plays with system recs 2, 4 to save system rec 1 and restore it in overwrite for RDB before doing files. This way all of them work the same way, also save all opened system recs before doing a requested system set up. Hopefully this will stop the system record getting corrupted and RDBMS processing attempting to run when RDB is not set up. 2018-04-24 * Vincent B. Coen Reminder that the nightly builds on SF is not up to date so to get 'the' latest as updated at midnight (UK local time) get from : http://applewood.linkpc.net/files/acas/nightlybuilds/ The only file is ACAS-Nightly.rar although there is also ACAS-Test-Data.rar which I use for testing ! This file is refreshed at midnight and then saved as the above if any changes have occurred. 2018-04-07 * Vincent B. Coen. Updated presql2 docs, presql2.cbl and MySql-procedures.cpy as failing to compile as I had incorrectly copied over the one from ACAS. Updated copyright notices and other comments in programs. 2018-04-06 * Vincent B Coen Have now added the mysql-connector-c libraries. You need to untar them using tar xfvz mysql-connector-c-6.1.11-src.tar.gz then go into the created directory and run: make When that finishes then run sudo make install This will install it into /usr/local/mysql I am changing the ACAS build scripts to use that location so if you change the install directory prior to building the connector then you will also need to look at and change the compile scripts for ACAS but not the ones used to build a non-RDBMS version. For additional notes on building the connector see the documentation on the mysql website and here I used the Oracle one. So go to: https://dev.mysql.com/doc/connector-c/en/connector-c-installation-source.html and select the correct one for your platform but I use the Unix one. 2018-03-13 * Vincent B Coen The DAL deliveryMT.scb and the RDBMS table DELIVERY-RECORD has been changed to DELIVERY-REC as all the other tables end in -REC. Effective tonight's nightly build so remember to re-compile all. IF you need it I have a sql script to run to update an existing ACASDB. Just let me know and I will add it to the nightlies. 2018-03-03 * Vincent B Coen 2018-03-12 Updated instructions. Tools needed are unzip or zip, unrar or rar or any other archive extractor that can handle them. If you are going to help test the nightly builds of ACAS you should start testing by only using the Cobol file option within the ACAS parameter file so leave RDBMS settings blank but only set Cobol file processing set as Data File Handling to zero in the first data screen when setting up or amending the system parameters that you get to via option Z or on first starting ACAS for the first time. There are RDBMS load programs for each of the Cobol files that will read the Cobol file data and fill with data, the respective RDBMS table. There is not any for the other way round so starting with files is practical any way. Current nightly release are supplied with a fairly current versions of: 1. GC (GnuCOBOL) as open-cobol-code.zip that is currently used to build and test ACAS. 2. presql2-16B.zip for the pre-SQL compiler needed to create all MySQL DAL modules and these do all accesses for RDBMS using MySQL RDBMS. Presql2 is currently at version 2.16B. This must be built using the GC compiler and before compiling ACAS but only if you are going to use RDBMS tables. So the order for all building from the beginning is : 1. If not previously done create (in your home directory) the needed directories to hold A. The Cobol compiler : cobolcompiler B. The ACAS sources : cobolsrc 2. Unpack the ACAS nightly archive to your home directory in tmp directory. From there - having used cd to go there: C. Unpack the Cobol compiler into A (creates open-cobol-code dir). D. Unpack the ACAS sources into B as cobolsrc (creates ACAS dir). You can cd to these directories one at a time and run the unzip from there by running : As you will need admin privileges start with sudo -s --- supply your password ls -la /etc/ld.so.conf.d - - Here you should get some files listed but if it does not exist create by running mkdir /etc/ld.so.conf.d Running unrar will add a file to this directory cd cobolsrc unrar x ~/tmp/nightlybuild.rar chown -R your-user-name: ** [ yes there is a colon ] exit - to leave sudo privileges cd ~/cobolsrc - As you are returned to your home dir. unzip presql2-16B.zip mv open-cobol-code.zip ../cobolcompiler cd ../cobolcompiler unzip open-cobol-code.zip 3. Build and run all tests for the Cobol compiler -- Assuming you have also installed the required packages (ncurses*, bdb etc) you can build with 2 commands: ./configure make checkall This builds the compiler then run the internal 900+ tests some of these are skipped and one or two expected fails then runs the NIST tests that can take 10 minutes or longer depending on the speed of your system. 4. If not already done and you are going to use the rdbms tables for ACAS, do the rest of 4 and 5 otherwise skip. Install MySQL packages including the required mysql(or mariadb)-connector-c, which contains the needed includes for MySQL which are needed to compile ACAS. 5. Using MySQL workbench or phpmyadmin to run the ACASDB.sql to create the ACAS database setting up rdb users that can update the ACASDB as a admin and as normal users. These are needed for running ACAS and building and running presql2 and its tools along with ACAS itself as a normal user (even if under testing). I will at looking for a way of doing this within one or more Cobol programs if it is possible. 6. Go in to cobolsrc and in order: A. Go into presql2-package using cd Change presql2.param text file to match your MySQL installation. presql2.param -- MUST BE DONE NOW as will be used to compile ACAS. (After testing it with presql2, you can copy it to bldcopy2.param -- Not needed for ACAS. Optional extra tool not essential unless you wish to print out a rdb table for Cobol copybook. prtschema2.param -- Not needed for ACAS. Optional extra tool not essential unless you wish to print out rdb tables -> Cobol mappings.) B. Build the MySQL api by running cobmysqlapi38.sh and the output file from this ( cobmysqlapi.o ) need to be copied to each of the ACAS source directories common, general, irs, purchase, sales & stock as well as ~/bin, /usr/local/lib. C. Build the three programs by running the scripts presql2.sh -- MUST BE DONE. bldcopy2.sh -- Not needed for ACAS. prtschema2.sh -- Not needed for ACAS. D. run mkdir ~/bin To create your local executable directory but this may already exist. So that you can run them from anywhere within your home directory: cp -vp presql2 ~/bin cp -vp bldcopy2 ~/bin cp -vp prtschema2 ~/bin 7. Go in to ~/cobolsrc/ACAS and build the ACAS system by running : comp-all.sh for RDBMS support or comp-all-no-rdbms.sh for only using Cobol files. If you get any error messages during this, find and fix the problem but as it should not happen report it via email vbcoen@gmail.com. 8. Run install-ACAS.sh if doing it for the first time otherwise run install-ACAS-preinstalled.sh The later script will not populate your environment settings in .bashrc and for these to be active you will need to exit the terminal program and reload it to run the ACAS systems. Although running the install-ACAS.sh script many times will not cause problems running ACAS, it can make the file large and look messy. Loading a terminal program will be slower as well. Current status update: 2018-03-12 - vbc 3.2.00 Manuals been undergoing updates as well as new manuals: Building the ACAS System - covers : Installing the GC Cobol compiler with all needed extra packages, building and running all tests. Installing the ACAS code and building the system using the GC (GnuCOBOL) Cobol compiler. Installing the MySQL or MariaDB RDBMS system along with the Mysql Workbench administration tool. Installing the ACAS database and all tables. Other notes useful to new administrators of the ACAS system including all Warning and Error messages produced by all programs and ACAS systems. Setting up the ACAS system parameter file with detailed instructions. Additional information as I continue with manual changes for the other manuals and wring the missing ones. Most of the new manuals and current manual updates for v3.02 will occur during detailed system testing but hoping to get basic one's finished beforehand for the missing manuals for Purchase Ledger as well as major Sales & General manual updates. IRS and Stock need revising for the new release. 2017-03-29 * Vincent B Coen In archive is presql-1.14f (or later) this needs to be compiled with the executables placed in your ~/bin path but specifically presql2o, presql2M (can be the same file), cobmysqlapi.o. Read the documentation in the presql package for more details. Also the Mysql or Mariadb client libraries and includes need to be installed along with the MySQL or Mariadb package elements. If it was easy, everyone would be a programmer ! I will clean all of this up prior to formal release but the installs of the MySQL system will still need to be done. Luckily Linux distro's have these in their repos. 2017-03-03 * Vincent B Coen This code base is for v3.02 which provides support for the MySQL rdbms (Relational Database Management System). The usage of MariaDB can be used as a drop in replacement for MySQL. If this file is in the nightly builds archive then this package is the current state of development for people who wish to use/view very early releases and therefore may well not be complete. The code supplied may well not be tested and bugs will be present. Documentation has NOT yet been updated to deal with this version and likewise some manuals are still to be cleaned up. This version must be considered at best an Alpha release, 2013-08-05 * Vincent B Coen This code base includes not only the code for ACAS but also extras to support mysql and other rdbms systems. These directories / sub directories are not required for compiling the system but to support new code for rdbms modules/routines that are still in development. These directories include rdbms, rdbms-win and experimental-stuff. To compile the system go into the ACAS directory, and run comp-all.sh. This does 'assume' that you have the GnuCOBOL compiler v1.1 or later installed and tested. It is recommended to use version v2 as it offers far more functionality over v1.1. Manuals for all systems & sub systems are still in a state of rebuild/rewriting and should only be taken as a general guide. Hopefully you can spot where the original manuals are still present in each document. As coding AND testing continues these are being updated but I only have one pair of hands :) Additional programming support is always welcome so get in touch at vbcoen at gmail.com or via a forum and let me know how you can help. Like wise for documentation writing and updates and testing. -- Start of CR notice -- From copyright.cob. Copyright Notice. **************** These files and programs is part of the Applewood Computers Accounting System and is copyright (c) Vincent B Coen. 1976-2025 and later. This program is now free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 3 and later as revised for personal usage only and that includes for use within a business but without repackaging or for Resale in any way. Persons interested in repackaging, redevelopment for the purpose of resale or distribution in a rental mode must get in touch with the copyright holder with your commercial plans and proposals. ACAS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. If it breaks, you own both pieces but I will endeavour to fix it, providing you tell me about the problem. You should have received a copy of the GNU General Public License along with ACAS; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -- end of CR notice --