How can i do this?

The Chosen One

[H]ard|Gawd
Joined
Feb 4, 2001
Messages
1,290
Hi guys, my uncle owns a pizza shop/restaurant and has asked me for help setting up a better order-docket printing method, and i was hoping to get some imput from you guys.

The situation at the moment is that there are currently 2 computers out the front near the register in the takeaway part that run the ordering software, and print normal pizza orders to a dot-matrix docket printer which is positioned next to the 2 machines.

There is then a 3rd computer networked to the other 2 which hosts software and is also able to receive and print orders to the front printer, and this computer is positioned in the kitchen.

Then there is a 4th comp out in the restaurant behind the bar which also runs the order software and is able to send pizza orders to the front printer over the network.


Now this all works fine atm, but my uncle wants to be able to send orders for meals (either from the front section or from the restaurant itself) to a printer in the kitchen directly, without changing the existing setup at all if possible.

Some orders will contain both pizza's and meals, and others will just contain one or the other.

We need to be able to take orders from any of the 4 computers, and print the "pizza only" orders to the Front printer, and "meal only" or "meal/pizza" orders to a Kitchen printer.

Now with a fully computer literate staff, obviously youd just tell them to select the Kitchen printer or the Front printer before printing like usual. But sadly they are grossly incompetant and this would be too much to ask of them.

So, i need a way to easily "route" the print orders.

Perhaps some kind of switch box that i could lable "front" and "kitchen" or something, i dont really know that much about printer servers or switch boxes, and a Software solution would be prefereable.


Does anyone have any ideas how i might go about setting this kind of system up given what we already have in place?

Thanks in advance.
 
How to put it.

Now this all works fine atm, but my uncle wants to be able to send orders for meals (either from the front section or from the restaurant itself) to a printer in the kitchen directly, without changing the existing setup at all if possible.

If you can't change anything, then you won't be able to change anything.

If you have the code available for the program, the cleanest way is to modify the ordering program and have it print to the needed printers based on the order.

If I assume that you can't or do not have the resources to do this then a suggestion is to install a series of Manual Printer Switch Boxes along with a great big mess of cables and Parallel AutoSwitchs , and have the user select the proper switch for the needed order printing. But. you have mentioned that users are grossly incompetant. So this method is almost out of the question.

If you now want to go with a completely automated method and do not wish to modify the existing ordering program, then i think this might be your only plan of attack. You will need to install a print server to capture all printer jobs that are sent from the ordering programs. The printer server program will then have to read through the print job and "somehow" determine if its a pizza only, meal only, or pizza+meal order and then copy the print file to the needed printers.

Just by looking a the print outs, is there an ultra simple way of determining the type of order without have to scan through the items being ordered? If there is no ultra simple method of determining the type of order then i will be easier to get the orginal ordering program modified.
 
well each item on the menu has a code in the program as well as a description and all that.

Atm, we have got it sorted into Drinks, Sides, Mains, Free stuff, etc etc (im not sure off the top of my head how we do that in the program, but id say my uncle would know, so lets assume that sort of thing is possible)

Now that we have it tagged, what sort of program can "sort" thru the orders like you suggested?


The problem we are faced with, is that it is an old program that the guy who made it no longer wishes to have anything to do with, so updates arnt possible.
Secondly, the bastard incorporated a Dongle copy protection system which prevents us even being able to take the program out of the environment of the shop, and do some testing on it that isnt going to cause downtime to the business.

Thirdly, although being reasonably capable with computers, my areas of ability lie in building them etc, and I dont really know anything about programing other than your basic DOS programs.



Focussing on the hardware solution for the minute, if worst came to worst and the only way to do it would be via a mess of switch boxes and cables this is what i assume we would need (pls correct me if im wrong, and suggest any additional things):

4x Manual 2port Printer Switch Boxes (one for every ordering computer)
2x Parrallel 4port Auto Switches (1 for each computer)
Lots of Parrallel cables.

Basically each computer would have a switch box from which they could select "Kitchen" or "Front" and then 2 parrallel cables running from the box to the Auto Switch on each printer. Correct?

What sort of lenghts of cable can i run before i need a booster of some sort?
 
I just had another idea....is there a way to cut out the cables and use some kind of wireless solution?
 
You're not going to find an elegant hardware solution for what you want. You need some form of software that will sort your print requests by what type and where, then print them. You could probably whip something up with one of the many scripting languages out there, or create your own set of software. Other than that, good luck?
 
The Chosen One said:
Atm, we have got it sorted into Drinks, Sides, Mains, Free stuff, etc etc (im not sure off the top of my head how we do that in the program, but id say my uncle would know, so lets assume that sort of thing is possible)

Now that we have it tagged, what sort of program can "sort" thru the orders like you suggested?

Well depending on what sort of output the program generates for the printer. I might look into using a Linux based printer server. One should be able to write up a script that will look through the page that is being printed for the "pre-determined" text/binary strings that would indicate if its a Kitchen or Counter order.

Being that i have experience with linux systems i would use CUPS and shell scripts that might use awk and or perl to do stuff. But that all really depends of what kind of printer output you are looking at.


The Chosen One said:
The problem we are faced with, is that it is an old program that the guy who made it no longer wishes to have anything to do with, so updates arnt possible.
Secondly, the bastard incorporated a Dongle copy protection system which prevents us even being able to take the program out of the environment of the shop, and do some testing on it that isnt going to cause downtime to the business.

Thirdly, although being reasonably capable with computers, my areas of ability lie in building them etc, and I dont really know anything about programing other than your basic DOS programs.

Offer the guy some money to do additions to the program. If he really just doesn't want to do anything with it, then ask for the source and find your own programer who can do the changed for you. Or ask if he can get a programer to do it for him if he doesn't want to do it himself.

In short, somehow find a way to get the changes in the program, as it will be much easier to live with down the road. Lets say if you are not around and something breaks. Or the business is sold, the new owner will have much less headaches to deal with when stuff breaks.


The Chosen One said:
Focussing on the hardware solution for the minute, if worst came to worst and the only way to do it would be via a mess of switch boxes and cables this is what i assume we would need (pls correct me if im wrong, and suggest any additional things):

4x Manual 2port Printer Switch Boxes (one for every ordering computer)
2x Parrallel 4port Auto Switches (1 for each computer)
Lots of Parrallel cables.

Basically each computer would have a switch box from which they could select "Kitchen" or "Front" and then 2 parrallel cables running from the box to the Auto Switch on each printer. Correct?

What sort of lenghts of cable can i run before i need a booster of some sort?

You will need more than just two 4port auto switches. With just two the users will only be able to print to either the Kitchen or the Front counter, not both. Now that i give it a little more thought, i don't even know if one can print to two printers at the same time using hardware switches. If so, then all this may be in vane.

As for cable lengths, the max recomemded length is around 15feet. but have run 65feet using good low-capacitance shielded cable. But as always, your milage will vary.
 
ahhh, Saterth, theres something to think about. Gee this is all being a lot harder than i thought. I know the program is written in C++, how hard is that to work with? Is it something i could pick up as I went along (slowly of course)? and is there a way to "decompile" the program if i cant get hold of the source code?.

Just in case there are any quams about answering this kind of question, as i know its in the grey area of what should and should not be discussed under the forum rules, In my country, we have a fair dealing provision to our copyright act that allows you to make alterations to programs to add features or make them compatible with other programs and close security holes, especially when the maker of the software is unavailable.
 
C++ can be a difficult language to pick up if you know nothing about programing. There are plenty of "Learn C++ in 21 days" or a week type books out there pick one up and look through it a bit and see if its something you want to tackle. You may want to go through the course work and write a few simpler programs before you tackle the ordering program, as it might be quite advanced and very difficult for a beginner to follow.

There are de-compilers available if one looks around. I wouldn't count on the code just working 100%. There might be quite a bit of massaging required on your part after you get some code to work with. I wouldn't think this method is best for a beginner as one would need quite a command of the language you are programming in to fix the quirky flaws of de-compiling.

But remember, just because he doesn't want another project to modify his program, it doesn't mean you are allowed to reverse engineer his program to do what you want. Laws in any country can be tricky like that. Watch out, one could get in a lot of trouble pretty quick.

By far, this will not be an easy task for a beginner programer. If you are commited to taking on a project that could take months or even a better part of a year while you learn things then go ahead, have at er.
 
Back
Top