GASSER version 10(116) Copyright (c) 7 June 2005 by Michael J. Newman,
319 Dean Rd., Brookline, MA 02445 USA  (617)566-7975

This software is protected by United States law and international treaty
provisions. Therefor you must treat this software just like a book, with 
the single exception that you may make backup copies to protect your
investment from loss. This software may be used on a single computer.
You may move it from one computer to another so long as there is no
possibility of it being used in two places at one time.

A person accepting the terms of this agreement may make a copy of this
software for test and demonstration purposes and use that copy for up to one
month, provided that a copy of the unlocking key is not made and that person
will either discontinue use or pay for the software at the end of that time.
Instructions for payment are given by the UNLOCK command.

GASSER is no longer sold. It may be used without charge. The restricted number
of bills described in the lock command does not occur in this version.



The GASSER program is intended to assist small airport operators who do not
use computerized accounting systems.  GASSER makes the job of converting
manually prepared daily log sheets into bills easy.  The GASSER program
allows easy computer entry of these logs.  From this data GASSER produces
bills based on a price list.  Bills are for flight time, instruction, gas
purchases and miscelaneous charges.  GASSER also produces flight time
summarys for aircraft, pilots and instructors.

GASSER presently also handles payments from customers and maintains an
account balance from one month to the next. 

New users of the GASSER program should know a few simple things befor they
first start the program.  These are described in the next few paragraphs.



When GASSER first starts it may ask the user for the date. If GASSER
can find out the date automatically GASSER will then be waiting for
the users first command. It will type:

	GASSER:

Typing question mark followed by ENTER (or RETURN) will give the user a
list of commands (a menu).  To save the user typing time GASSER does not
need all the characters of any command typed.  For example typing EN is
just as good as typing ENTER.



When the GASSER program asks for information it needs it will also give help
when a question mark is typed to one of its questions.

When GASSER asks a question it often has a default answer.  The default
answer is always shown in square braces:

	Date (mm-dd-yy) [18-April-1989]:

If the answer in square braces is correct typing ENTER (or RETURN) will use
it.  GASSER has many other tricks to save typing.  For a date or a time
typing the portion that has changed is good enough.  Answering the above
question by typing 20 will change the date to the 20th of April 1989.

If the user does not want the default value but instead wants a blank
typing tilde "~" will tell GASSER to leave the field blank.



GASSER tries to keep information about customers including their addresses and
phone numbers. The program will ask for this information.

The recommended method of using GASSER is to ENTER AIRCRAFT-FLIGHTS on a
daily or weekly basis.  During the month the TYPE STATEMENT and TYPE BALANCE
commands can be used to get the present status of an account.  At the end of
a month the whole data base should be backed up (instructions typed during the
END-MONTH command. Then produce the bills with the END-MONTH command.
Finally print the bills and times with the PRINT BILLS and PRINT TIMES
commands.



			CONCEPTS to UNDERSTAND

	Billing Category

Each customer is put in a billing category.  This allows different prices
to be charged for different types of customers.  The name of a billing
category can be any word (no spaces).  The most common way to use billing
categories is to have a CLUB rate and a DEFAULT rate.  The billing category
CASH is used for a special customer called CASH used for cash purchases.
The billing category DEFAULT is special.  When a price is not found for the
customer's billing category GASSER will use the price for the DEFAULT
billing category instead.  Thus for prices that are the same for all
billing categorys only a DEFAULT price must be established. A special
billing category LONG_TERM is used for those customers who are not
expected to pay the bill. This special category is used to help
compute summary and planning information.


	Customer

These are the people we serve.  GASSER keeps track of their names, phone
numbers, addresses, billing category and so forth.  When GASSER asks for a
customer name it will find the closest name.  The first few characters of a
last name are usually enough.  Sometimes it is even faster to type the
first initial a space and the the last initial.  Special abbreviations can be
created that are looked up to find the customer name.

When GASSER asks for a customer name it will also take a recipt number.
The recipt number is remembered and the special customer CASH is found.


	Abbreviation

This is a short way of typing a customer name.  The most common use of
abbreviations is to have the N number of your customers airplane be an
abbreviation for his name.  Then when typing in a Gas Sheet the N number
can be used to find the proper account.


	Flag

Associated with each customer is a list of flags.  Flags are used (like
billing categorys) to sort customers into groups.  Unlike billing categorys
a customer can belong to many of these groups.  Mailing labels can be
printed for groups of customers that are identified with a particular flag.
In this way customers can be identified as AIRCRAFT-OWNER or STUDENT or
RENTER. A flag can be any word (spaces not allowed).

The primary purpose of flags is to allow printing of mailing lists for all
customers that have a particular flag such as: AIRCRAFT-OWNER or CFI.


	Gas Sheet

The gas truck or gas pump has a log of which aircraft have been fueled and
how much gas was pumped. This log is a gas sheet.


	Daily Flight Log

A log similar to the gas sheet is kept for flights that go out. This log
records the aircraft flight time, instructor if any, pilot, account etc.






			LIST of COMMANDS to GASSER


    ADD

Ask what should be added:

	ADD ABBREVIATION

Asks for the short abbreviation for a customer name. Then asks for the customer
name to match this abbreviation.

	ADD CATEGORY

Ask for the name of a new billing category.  This new billing category gets
added to the list of billing categorys that is used when woring on
customers or prices.  Billing categorys that are not used in a price or a
customer are forgotten the next time GASSER is run.  To use a new billing
category be sure and do the ADD CATEGORY befor the ADD PRICE or ADD
CUSTOMER.

	ADD CUSTOMER

Ask for the name of the customer (Firstname Lastname) and the pertinant
information about that customer.

	ADD FLAG

Ask for the name of a new flag.  This new flag gets added to the list of
flags that is used when working on customers.  Flags that are not used on
any customers are forgotten the next time GASSER is run.  To use a new flag
be sure and do the ADD flag befor the ADD CUSTOMER or MODIFY CUSTOMER.

	ADD GAS-GRADE

When entering fuel sales a list of fuel types is offered. This
command adds a new name to the list. The price of fuel is computed by
looking up a price using the full name from this list. 

Versions of GASSER befor 6(73) knew about three specific grades of
fuel, these had matching prices with different names.

	Grade	Price checked
	-----	-------------
	100	GAS100
	80	GAS80
	JETA	GASJETA

The recommended use of GASSER is to create prices for the grades of
fuel directly (i.e. ADD PRICE JETA).  If no price is found for one of
these three grades of fuel the old style price is checked (Grade 100
first checks for ADD PRICE 100 then for ADD PRICE GAS100). The check
for the old style name is retained for compatibility with GASSER
versions befor 6(73). Using these gas type translations is not
recommended.


	ADD PRICE

Ask for the aircraft or item to price. Aircraft are listed by their N number in
the price list. Just in case it is needed GASSER allows items to be priced in
tenths of a cent. GASSER knows about these standard items:

	HOOKUP		Glider tow hookup charge
	THOUSAND	Glider tow charge per thousand feet

	ROPE-BREAK	Flat rate to charge customer for a rope break flight.

	PATTERN-TOW	Flat rate to charge customer for a pattern flight.

	INSTRUCTION	Hourly charge for instruction in rental aircraft
	PVT-INSTRUCTION	Hourly charge for instruction in private aircraft
			This charge is made for instruction whenever the
			aircraft rental charge is $0.00
	GROUND-TIME	Each instructional flight is billed for this time
			in addition to the filght time
	MINIMUM-TIME	Each rental or instructional flight is billed for
			at least this much time

	FLT-SALESTAX	salestax charged to rental time
	GAS-SALESTAX	salestax charged to gas purchases
	INS-SALESTAX	salestax charged to instruction
	TOW-SALESTAX	salestax charged to a glider tow
	MISC-SALESTAX	salestax charged to a miscelaneous charge
	ROPE-BREAK-SALESTAX salestax charged to a rope break
	PATTERN-TOW-SALESTAX salestax charged to a pattern flight

	FINANCE-CHARGE	Intrest rate (a fraction not a percent i.e. 0.015)
	FINANCE-THRESHOLD  Untill an overdue account balance is larger than
			this amount no finance charges will be applied.
	MIN-FINANCE-CHARGE If any finance charge is incurred and it is less
			than this it will be increased to this much.


	ADD TOWPLANE

A list of towplanes is kept to ease the entry of towplanes. This
command adds a towplane to that list. The list is remembered in the
same file as prices. Arbitray towplane names can be entered as flights
are entered. These towplanes are presented in the list of towplanes
but not remembered after GASSER exits. 


	ADD TRANSITION-DATE

A customer can change billing categories in the middle of a billing cycle.
This command allows you to record the previous billing category and the date
of the transition so that old charges will be calculated against the previous
billing category.


    BILLS
    EMAIL-BILLS

Compute bills for gas and flights.  Bills are put into a file of
bills for later printing.  Finance charges are applied to the net of
previous balance less all payments and credits. Like all other
charges the rate for a finance charge can be selected by billing
category. When the BILLS command is used all bills are put in the file
for later printing. When the EMAIL-BILLS command is used customers who
have an email address get sent their bill by email. Other customers get
their bill placed in a file for later printing.

At the start of each bill a header is printed.  The header comes from
GASHEAD.DAT.  The header is used for the name and address of the
company.  The first line of the header file is not printed, it is an
unlocking code that prevents unauthorized use of the program.
Changing the header requires getting a new unlocking code.

At the end of each bill a trailer is printed.  The trailer comes from the
file GASTRAIL.DAT and can be changed at any time.  The trailer is often
used to provide a monthly message and/or payment terms.

The header and trailer are not printed when only a single statement is
typed or printed.

Bills are printed for all customers that have a non zero balance or
any transactions in the current period.  Bills can be printed for any
customers in a special group. Put a flag on all customers who must
always get a bill. Then put the line:

	$ALWAYS_BILL_FLAG	flag

into the file GASPRICE.DAT. Although the flag is preserved when the
prices are saved there is no command to set this flag from within
GASSER. The use of this feature is not recommended.


Billing of CASH customers can be suppressed by putting the line:

	$PRINT_BILLS_FOR_CASH_CUSTOMERS	NO

into the file GASPRICE.DAT. Although the flag is preserved when the
prices are saved there is no command to set this flag from within
GASSER.


Email is sent via an SMTP server from a sending mailbox. These must be
set with the CHANGE EMAIL-SERVER and CHANGE EMAIL-SENDER commands prior
to using the EMAIL-BILLS command.


Testing EMAIL billing without flooding all customers with statements
by email is sometimes required. Putting the line:

	$EMAIL_SEND_ONLY	mnewman@dragonnorth.com

into the file GASPRICE.DAT will send email only to customers with this
email address. Email for all other customers is disabled. Only one
EMAIL-SEND-ONLY address is allowed. Remember to remove the line when
normal email of statements is desired.



    CHANGE

Ask what to change:

	CHANGE ABBREVIATION

Allows an existing abbreviation to be changed to point to a new customer name.

	CHANGE CUSTOMER

Allows the address phone numbers billing category etc. associated with a
customer to be changed.

	CHANGE EMAIL-SENDER

Asks for the Email address used as the sender and reply-to address in bills sent by
email.

        CHANGE EMAIL-SERVER

Asks for the SMTP server use when sending bills by email.

        CHANGE EMAIL-SUBJECT

Asks for the subject line which will be used when sending bills by email.
The value of the subject line is remembered with the price list on a line
that starts with $EMAIL_SUBJECT.

	CHANGE PRICE

Allows the price of a service to be changed.




    DATE

Sets the date to whatever is requested by the user.




    END-MONTH

Closes out a billing cycle (not necessarily a month). Calculates bills, times
and new account balances. Removes charges from the previous billing cycle from
the database so a new billing cycle can be started.




    ENTER

Asks what to enter:

	ENTER AIRCRAFT-FLIGHTS

Information from daily log sheets is requested.

	ENTER ACCOUNT-BALANCE

The new account balance is requested.

	ENTER GLIDER-FLIGHTS

Information from daily log sheets is requested.

	ENTER GAS-SALES

Information from daily log sheets is requested.

	ENTER MISC-CHARGES

Information from daily log sheets is requested.

	ENTER MISC-CREDITS

Information from daily log sheets is requested.

	ENTER PAYMENTS

Information about payments deposited is requested.



    EXIT

Exit from the GASSER program. This command must be used to exit GASSER. If the
computer is simply shut off changes made to the customer database or to the
price list may be lost.




    EXPERT
    NOEXPERT

Permit/forbid some commands that are not normally used.




    FILENAMES

This is an EXPERT command. Set the filenames GASSER will use. GASSER knows what
files to use. This command should not be used in normal operations.




    PRINT		to printer
    TYPE		types on screen
    SHOW		types on screen (same as type)
    WRITE		to a file

These four commands all have the same function. They ask what to output and
then output it to the requested place:

	PRINT ABBREVIATIONS

A list of abbreviations and the customer they represent is printed.

	PRINT ACCOUNT-BALANCES

A list of account balances for customers is printed. Two numbers are
printed.  The first column is the amount due from previous billing
cycles less how much has been paid this billing cycle. The second
column states the charges incurred this billing cycle which will be due
at the end of the current billing cycle.  Customers with both
balances of $0 are not reported.  Summary information totalling all balances
due and expected cash flow is also reported.

It is important to realize that when a credit is applied the credit only
participates in the second column. This is different from payments which
are deducted from the balance due. Thus it is possible that a customer has
a positive balance due yet actually owes nothing because he has returned
something or a correction has been made.

	PRINT ADDRESS-LIST

A list of addresses and phone numbers is printed.  Which customers to
print can be selected by flag or category.

	PRINT BALANCE

A customer name is requested. The ammount due from previous billing
cycles is printed along with how much has been paid this billing cycle and
the net due.  Charges incurred this billing cycle are NOT included.

	PRINT BILLS

The file containing the bills from the BILLS command information is printed.

	PRINT CATEGORYS

A list of category names and the number of customers in that category is
printed.

	PRINT CUSTOMERS

Information in the database about each customer is printed.

	PRINT FILE

A file name is requested and that file is printed.

	PRINT FLAGS

A list of the different flags and some statistics on how many customers are
associated with each flag is printed.

	PRINT FLIGHTS

A list of flights is printed.

	PRINT INFORMATION

Information about a single customer is printed.

	PRINT LABELS

Mailing labels for the customers are printed. Which customers to
print can be selected by flag or category.

	PRINT PHONE-LIST

A phone number list for the customers is printed. Which customers to
print can be selected by flag or category.

	PRINT PRICE

The name of an aircraft or service is requested. The prices of that item for
all categorys are printed.

	PRINT QUICKEN

A transaction file is written for import into Quicken. Charges in the transaction
file are moved to secondary transaction logs to distinguish them from the logs that
have not yet been written to QUICKEN. This command is usually used with WRITE
rather than PRINT so the QUICKEN transaction information is written to a file.

	PRINT SPACE

The computer memory space in use by GASSER is printed.

	PRINT STATEMENT

A statement for a single customer is printed.  This statment will not
include the header or trailer files.

	PRINT SUMMARYS

Summary information telling how much was billed to each category of
customer, to each aircraft is printed.  BILLS must be computed first using
the BILLS command.

	PRINT TIMES

The file listing the times for aircraft and people is printed.  The file
must be created first by using the TIMES command.

	PRINT TOW-SUMMARIES

Summary information telling total tow height and how many tows were made
by each towplane is output. Any flights where the towplane name was not
logged are not included. Towplane names are required for all new flights. Old
flights entered with GASSER versions earlier than 10(109) will not have
towplane names logged. BILLS must be computed first using the BILLS command.


    READ

This is an EXPERT command.  GASSER usually reads its database files as
necessary.  This command is provided to allow a single database file to be
read and checked for errors when the program is being tested.



    RESET

This is an EXPERT command.  All information read by GASSER since starting
the program is discarded.  The program is put into the same state as when
it was started.  It is not necessary to RESET the program befor exiting.
This command is provided to help check for errors when the program is being
tested.




    REMOVE

Asks for what to remove:

	REMOVE ABBERVIATION

Asks for the abbreviation to remove.

	REMOVE CUSTOMER

Asks for the customer to remove.

	REMOVE GAS-SALE

Removes a gas sale entered from the daily log sheets. Only sales made
in the current month can be removed. This command will ask for a
customer name and will type a list of gas sales made to that
customer. Each sale is identified with a line number. Choosing a sale
removes the sale from the database and writes a new database.

	REMOVE MISC-CHARGES-OR-CREDITS

Removes a miscelaneous charge or credit. Only sales or credits made
in the current month can be removed. This command will ask for a
customer name and will type a list of sales and credits for that
customer. Each is identified with a line number. Choosing a line number
removes that line from the database and writes a new database.

	REMOVE PAYMENT

Removes a payment from a customer. Only payments made in the current
month can be removed. This command will ask for a customer name and
will type a list of payments made to that account. Each payment is
identified with a line number. Choosing a line number removes the
payment from the database and writes a new database.

	REMOVE PRICE

Asks for the price and category to remove.


	SAVE

Saves changes made to the customer and price data.  This is also done
automatically with the EXIT command.  NOTE:  do not turn off the computer
befor doing a SAVE or an EXIT command or the changes will be lost.


	SEND-BY-EMAIL BALANCE
	SEND-BY-EMAIL MESSAGE-FROM-FILE
	SEND-BY-EMAIL STATEMENT

Similar to cases of the PRINT command. The result is sent by email to the appropriate
customer(s). The BALANCE and STATEMENT select a single customer and send that customer
the current account information. MESSAGE-FROM-FILE sends the file to each customer
with an email address. As in the BILLS command email when $EMAIL_SEND_ONLY
is set the email message is only sent to that address.


	TIMES

Summary times and flights are computed for CFIs, Aircraft, Ride Pilots and
Tow Pilots.  These are put in a file for later printing.


	UNLOCK

GASSER must be unlocked to permit printing of more than a few bills.  Use
the UNLOCK command to get instructions on how to pay for the program and
get it unlocked.



			   Files Used by GASSER

GASSER will create files as it needs them.  This is a list of the files and
what is found in them.  All the files are ordinary text and can be edited
with a text editor.  When errors entering flights have been made this is
sometimes the easiest way to correct them.

The files usually depend on finding the <TAB> character between fields.
Spaces are usually considered part of a field (this allows names to contain
spaces).

GASSER.EXE	The program itself.

GASABBRV.DAT	An index of abbreviations.

GASAPND.TMP	Temporary file used when two files are being appended.

GASBAL.DAT	The current account balances.

GASCUST.DAT	The customer database.

GASFLGHT.HIS	The list of flights for this billing period.

GASFLGHT.TMP	Temporary list of flights, used while entering flights.

GASFLGHT.OLD	Flights from previous billing period.

GASGAS.HIS	The list of gas charges and miscelaneous charges.

GASGAS.TMP	Temporary list of gas and misc charges, used while entering 
		charges.

GASGAS.OLD	Gas and misc charges from previous billing period.

GASHEAD.DAT	Company name, address and unlock key.

GASPMNT.HIS	The list of payments recieved in this billing period.

GASPMNT.TMP	Temporary list of payments, used while entering payments.

GASPMNT.OLD	List of payments from previous billing period.

GASPRICE.DAT	Price list.

GASSER.TXT	This document.

GASSER.EXE	The program itself.

GASSTMNT.LIS	Bills created for later printing.

GASTIMES.LIS	Times summary for later printing.

GASTRAIL.DAT	Message to go at the end of each bill.

GASEMAIL.TMP    Created with the content of a bill to be sent by email.
