The zipcodezones module can probably work in your situation.
Looks like you have FOUR zones, so you'd need to make a minor edit to the MODULE file. Change the number of zones from 7 to 4.
Then, configure the SQL patch which creates the new table (and its initial resident data), to match the RSA postode format.
(I've been in London for a while, so I can't remember the exact Geo-Formatting of ZA postcodes, but you have the challenge of removing POSTBOX codes from the sequence - unless of course, you will deliver to PO-Boxes.
Code:
CREATE TABLE `zipcodezone` (
`zipcode_id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`zipcode_start` char(3) NOT NULL default '0',
`zipcode_end` char(3) NOT NULL default '0',
`zipcodezone` int(1) NOT NULL default '0');
INSERT INTO `zipcodezone`
(`zipcode_id` ,`zipcode_start` ,`zipcode_end` ,`zipcodezone`)
VALUES (1, '0001', '0005', 1),
(2, '2001', '2099', 2),
(3, '3001', '3099', 2),
(4, '8001', '8099', 2),
(5, '7010', '7102', 3),
(6, '7104', '7104', 3),
(7, '350', '358', 4),
(8, '5019', '5100', 1),
See how my start code and end code are structured to embrace a GeoZone?
EG:
zipcodezone 2 (above) could be your MAJOR CENTRES (2001 - 2099 = Gauteng, 8001 - 8099 = Capetown metropolitan, etc)
zipcodezone 3 could be cape special
ETC.
Please don't ask me to build this... 1. I don't have the time. 2. I'm not really interested in doing it. It's going to be a big (time-consuming) job to get ALL the p-codes properly co0nfigured in the SQL file. I really am not interested in doing this!
