This project contains a small C++ console application that was originally created during the CDK cyberattack in June 2024. It was a stopgap solution used to keep parts operations running when the dealership's primary systems were offline.
The program allows parts employees to look up inventory, generate quotes, create invoices and basic repair orders. All information is saved to plain text files so the data can be accessed even without network connectivity.
- Inventory lookup – search the inventory file for a part number to display its description, bin location and pricing.
- Invoice creation – generate an invoice text file and automatically increment the invoice number stored in the configuration file.
- Quote creation – create a quote text file which can later be rolled into a repair order.
- Stock check – quickly check pricing or add parts that are not already in the inventory database.
Application settings are stored in config/config.txt. Lines beginning with
# contain key/value pairs wrapped in quotes. The following keys are used:
#filename "input_data.txt" # Inventory data filename
#filename_path "C:\" # Location of the inventory file
#billed_path "C:\Billed" # Where invoice text files are written
#quoted_path "C:\Quoted" # Where quote text files are written
#invoice_number "1000" # Starting invoice number
#quote_number "1000" # Starting quote number
Adjust these paths to match where you want files created on your system.
The program is a single source file. It can be compiled with any modern C++
compiler. For example with g++:
g++ -std=c++17 -o dms main.cppRun the compiled program from a terminal:
./dmsYou will be prompted for your employee number and then shown a menu with the available modes:
(Q)uote | (R)epair Order | (I)nvoice | (S)tock Check | (E)xit
All documents generated by the program (invoices, quotes, etc.) are stored in
the directories specified in config/config.txt.
The inventory file (input_data.txt by default) stores one part per line using
tab-separated values enclosed in quotes. For example:
"123-123-12-12" "BIN 2" "PART DESCRIPTION" "1"
You can extend this file with additional parts as needed.
This repository preserves the original utility written to keep operations moving during the 2024 outage. It is provided as-is for reference or further experimentation.