home *** CD-ROM | disk | FTP | other *** search
/ Thinkpad Essentials 1997 / cd1may97.iso / merch / ThinkPad / order.pl < prev    next >
Perl Script  |  1997-03-11  |  17KB  |  658 lines

  1. #!/usr/local/bin/perl
  2. #############################################################################
  3. # Adapted from mailto.pl - December 16, 1996                                #
  4. # Jason Jones - IBM Interactive Media                                       #
  5. # Modified by Ralph Spindell for security purposes - 1.20.1997              #
  6. # Modified by Ralf Bull for Reorganization of ThinkPad Project - March 1997 #
  7. # Modified by John Call for Reorganization of ThinkPad Project - March 1997 #
  8. #############################################################################
  9. #########
  10. # physical location of your cgi-lib.pl
  11. # with is the original path@INC=("/usr/mosaic/cgi-bin");
  12. @INC=("/usrx2/WWW/cgi-bin");
  13. require 'cgi-lib.pl';
  14. #Page Location  
  15. # this is the original location $pageloc = 'http://www.pc.ibm.com/thinkpad/merchandise';
  16. $pageloc = '/thinkpad';
  17. &ReadParse();
  18. #########################################################################
  19. # Method POST implies that they already filled out the form and submitted
  20. # it, and now it is to be processed.
  21. #########################################################################
  22. # Set variables from form
  23. if ($ENV{'REQUEST_METHOD'} eq 'POST') {
  24.     # get all the variables in their respective places
  25.     $bphone = $in{'bPhone'};
  26.     $sphone = $in{'sPhone'};
  27.     $fax   = $in{'Fax'};
  28.     $email = $in{'From_Email'};
  29.     $bname  = $in{'bMyName'};
  30.     $sname  = $in{'sMyName'};
  31.     $company = $in{'CompanyName'};
  32.     $baddress = $in{'bStreet1'};
  33.     $baddress2 = $in{'bStreet12'};
  34.     $bcity    = $in{'bStreet2'};
  35.     $bstate    = $in{'bStreet3'};
  36.     $bcountry  = $in{'bcountry'};
  37.     $bzipcode  = $in{'bStreet4'};
  38.     $saddress = $in{'sStreet1'};
  39.     $saddress2 = $in{'sStreet12'};
  40.     $scity    = $in{'sStreet2'};
  41.     $sstate    = $in{'sStreet3'};
  42.     $scountry  = $in{'scountry'};
  43.     $szipcode  = $in{'sStreet4'};
  44.     $comments = $in{'Comments'};
  45.     $mshirt = int $in{'mshirt'};
  46.     $lgshirt = int $in{'lgshirt'};
  47.     $xlshirt = int $in{'xlshirt'};
  48.     $xxlshirt = int $in{'xxlshirt'};
  49.     $mpoloblack = int $in{'mpoloblack'};
  50.     $lgpoloblack = int $in{'lgpoloblack'};
  51.     $xlpoloblack = int $in{'xlpoloblack'};
  52.     $xxlpoloblack = int $in{'xxlpoloblack'};
  53.     $baseballcap = int $in{'baseballcap'};
  54.     $sdenim = int $in{'sdenim'};
  55.     $mdenim = int $in{'mdenim'};
  56.     $lgdenim = int $in{'lgdenim'};
  57.     $xldenim = int $in{'xldenim'};
  58.     $xxldenim = int $in{'xxldenim'};
  59.     $xxxldenim = int $in{'xxxldenim'};
  60.     $sjacketbl = int $in{'sjacketbl'};
  61.     $mjacketbl = int $in{'mjacketbl'};
  62.     $lgjacketbl = int $in{'lgjacketbl'};
  63.     $xljacketbl = int $in{'xljacketbl'};
  64.     $xxljacketbl = int $in{'xxljacketbl'};
  65.     $mwhite = int $in{'mwhite'};
  66.     $lgwhite = int $in{'lgwhite'};
  67.     $xlwhite = int $in{'xlwhite'};
  68.     $xxlwhite = int $in{'xxlwhite'};
  69.     $spolowhite = int $in{'spolowhite'};
  70.     $mpolowhite = int $in{'mpolowhite'};
  71.     $lgpolowhite = int $in{'lgpolowhite'};
  72.     $xlpolowhite = int $in{'xlpolowhite'};
  73.     $xxlpolowhite = int $in{'xxlpolowhite'};
  74.     $xxxlpolowhite = int $in{'xxxlpolowhite'};
  75.     $marbpen = int $in{'marbpen'};
  76.     $postnote = int $in{'postnote'};
  77.     $cdwallet = int $in{'cdwallet'};
  78.     $cubepad = int $in{'cubepad'};
  79.     $pcmcia = int $in{'pcmcia'};
  80.     $blacktbag = int $in{'blacktbag'};
  81.     $travelmug = int $in{'travelmug'};
  82.     $travelalarm =  int $in{'travelalarm'};
  83.     $securetag = int $in{'securetag'};
  84.     $blacktag = int $in{'blacktag'};
  85.     $keyring = int $in{'keyring'};
  86.     $golfballs = int $in{'golfballs'};
  87.     $umbrella = int $in{'umbrella'};
  88.     $ballpoint = int $in{'ballpoint'};
  89.     $armyknife = int $in{'armyknife'};
  90.     $ceramicmug = int $in{'ceramicmug'};
  91. #   $travelbag = int $in{'Travelbag'};
  92. #   $diplomatpen = int $in{'DiplomatPen'};
  93.     $realfrom = $ENV{'REMOTE_HOST'} ? $ENV{'REMOTE_HOST'}: $ENV{'REMOTE_ADDR'};
  94.     
  95.     print "content-type: text/html\n\n";
  96.     
  97.     unless ($bphone && $bstate) {
  98.         print <<EOM;
  99.         
  100.         <html>
  101.         <head><title>Form Error</title></head>
  102.         <body bgcolor="#ffffff" text="#000000">
  103.         <center>
  104.         <img src="$pageloc/images/tpc00hd0.gif">
  105.         <h1>Form Processing Error!</h1>
  106.         <p>The information in the "Billing Information" section is incomplete. 
  107.         <p>Please hit the "Back" button on your browser's toolbar and fill in the missing information.
  108.         </center>
  109.         </body>
  110.         </html>
  111. EOM
  112.         exit(0);
  113.     }
  114.     
  115.     @sizes = ("Small", "Medium", "Large", "XLarge", "XXLarge", "XXXLarge");
  116.     
  117.     print <<EOM;
  118.     <HTML>
  119.     <HEAD><TITLE>Order Form</TITLE></HEAD>
  120.     <BODY bgcolor=#FFFFFF text=#000000>
  121.     
  122.     <table width=80%><tr><td>
  123.     <center>
  124.     <br><FONT FACE="Arial, Helvetica" COLOR="#000000" SIZE="4"> <b>ORDER FORM</b></font face>
  125.     </center>
  126.     <p>
  127.     <FONT FACE="Arial, Helvetica"> <B> If this invoice correctly shows what you wish to order, follow the directions below.
  128.     Otherwise, click on the 'back' option on the browser toolbar to change any information.<br>
  129.     <p>
  130.     [1] Print this page (typically File/Print on browser menu)<br>
  131.     [2] Write in your payment information and sign this form <br>
  132.     [3] Fax this to Ad Vantage at 512-339-0366 or mail it to Ad Vantage Inc, 2540 Brockton Dr Suite 107, Austin Texas 78758 Phone (512/339-9334)</font face></b><br>
  133.     <hr>
  134.     </td></tr></table>
  135.     
  136.     <table border=0 width=85%>
  137.     <tr>
  138.        <td><h2> Billing Information </h2>
  139.            Company: $company<br>
  140.            Contact: $bname<br>
  141.            Phone:   $bphone<br>
  142.            Address: $baddress<br>
  143.                     $baddress2<br>
  144.                     $bcity,$bstate $bcountry $bzipcode<br>
  145.        </td>
  146.        <td><h2> Shipping Information </h2>
  147.            Company: $company<br>
  148.            Contact: $sname<br>
  149.            Phone: $sphone<br>
  150.            Address: $saddress<br>
  151.                     $saddress2<br>
  152.                     $scity,$sstate $scountry $szipcode<br>
  153.        </td>
  154.     </tr>
  155.     </table>
  156.     Fax:     $fax<br>
  157.     Email:   $email<br>
  158.     <p>
  159.        <b> Items Needed: </b><br>
  160.        <table width=80%>
  161.    <tr><th align=left>Item</th><th align=left>Size</th><th align=right>Quantity</th><th align=right>Price Each</th><th align=right>Total Price (US Dollars)</th></tr>
  162.    <tr><td colspan=5><hr></td></tr>
  163. EOM
  164.     $gTotal = 0;
  165.      &SweatShirt;
  166.     &PoloBlack;
  167.     &BaseballCap;
  168.     &Denim;
  169.     &JacketBl;
  170.     &WhiteT;
  171.     &PoloWhite;
  172.     &MarblePen;
  173.     &PostNote;
  174.     &CDWallet;
  175.     &CubePad;
  176.     &PCMCIA;
  177.     &BlackTBag;
  178.     &TravelMug;
  179.     &TravelAlarm;
  180.     &SecureTag;
  181.     &BlackTag;
  182.     &KeyRing;
  183.     &GolfBalls;
  184.     &Umbrella;
  185.     &Ballpoint;
  186.     &ArmyKnife;
  187.     &CeramicMug;
  188.     
  189.     print <<EOM;
  190.     </table>
  191.     <table width=80%>
  192.     <tr><td colspan=2><hr></td></tr>
  193.     <tr><td>Total Price for items above:</td>
  194. EOM
  195.     printf ("<td align=right>\$%10.2f</td></tr>",$gTotal);
  196.     $ship = $gTotal * .05;
  197.     if ($ship < 5) {
  198.         $ship = 5;
  199.     }
  200.     $tax = 0;
  201.     if ($sstate) {
  202.         $sstate =~ tr/A-Z/a-z/;
  203.         if ($sstate eq "tx" || $sstate eq "texas") {
  204.             $tax = .0825 * $gTotal;
  205.         }
  206.     } else {
  207.         $bstate =~ tr/A-Z/a-z/;
  208.         if ($bstate eq "tx" || $bstate eq "texas") {
  209.             $tax = .0825 * $gTotal;
  210.         }
  211.     }
  212.     print "<tr><td>Sales Tax (Texas Only):</td>";
  213.     printf ("<td align=right>\$%10.2f</td></tr>",$tax);
  214.     print "<tr><td>Shipping (Continental US Only):</td>";
  215.     printf ("<td align=right>\$%10.2f</td></tr>",$ship);
  216.     print "<tr><td>Grand Total for this order:</td>";
  217.     printf ("<td align=right>\$%10.2f</td></tr>",$gTotal + $tax + $ship);
  218.     print "</table>";
  219.     
  220.     print "<p>";
  221.        print("<table border=0 width=80%>");
  222.        print("<tr><td><b> Method of Payment: </b></td></tr>");
  223.        print("<tr><td> (Circle One): Visa/MC/Amex/Diners/Discover/JBC/Check</td></tr>");
  224.        print("<tr><td></td></tr>");
  225.        print("<td nowrap>Card Number: _____________________________</td>");
  226.        print("<td nowrap>Exp. Date: _________________________(mm/yy)</td>");
  227.        print("</tr><tr>");
  228.        print("<td nowrap>Name on Card: ____________________________</td>");
  229.        print("<td nowrap>Signature: _______________________________</td>");
  230.        print("</tr><tr>");
  231.        print("<tr><td></td></tr>");
  232.        print("<td nowrap>Check Number: ____________________________</td>");
  233.        print("<td nowrap>PO Number: _____________________________</td>");
  234.        print("</tr><tr>");
  235.        print("<td colspan=2><b>US Orders</b>: Standard shipping is UPS Ground, and takes approximately 5-7 days. Orders received after 1:00PM U.S. Central Time are processed the following day.</td>");
  236.        print("</tr><tr>");
  237.        print("<td colspan=2><b>International Orders</b>: Shipping charges are calculated for Continental US shipments only. Call AdVantage for international shipping charges.</td>");
  238.        print("</tr>");
  239.        print("</table>");
  240.        print("<p><table width=80% border=0>");
  241.        print("<tr><td colspan=2><hr></td></tr>");
  242.        print("<tr><td><b> If Rush Job: </b> </td></tr>");
  243.        print("<tr><td align=left>Rush this to me by: ____________ (date)</td></tr>");
  244.        print("<tr><td><form>Please add the rush charges to my credit card <INPUT TYPE='checkbox'>or shipping bill<INPUT TYPE='checkbox'></tr>");
  245.        print("<tr><td align=right>(Circle One) FedEx/UPS/Airborne/DHL </td><td nowrap align=right>#______________ </td></tr>");
  246.        print("<tr><td colspan=2><hr></td></tr>");
  247.        print("<tr><td> <b>If Shipping outside the continental US:</b> </td></tr>");
  248.        print("<tr><td><form>I authorize air shipment and agree to pay any duties and taxes due upon receipt.</td><td valign=bottom align=right><br><INPUT TYPE='checkbox'><b>yes</b></td></tr>");
  249.        print("</table>");
  250.        if ($in{'ibmEmployee'} eq "employee") {
  251.         print "<br><font size=+1><b><center>IBM EMPLOYEE</center></b></font>";
  252.     }
  253.        if ($in{'ibmEmployee'} eq "reseller") {
  254.         print "<br><font size=+1><b><center>IBM AUTHORIZED RESELLER</center></b></font>";
  255.     }
  256.        if ($in{'ibmEmployee'} eq "other") {
  257.         print "<br><font size=+1><b><center>OTHER</center></b></font>";
  258.     }
  259.    print "</body></html>";
  260. }
  261. sub PrintInfo {
  262.     my ($type, $item, @quan) = @_;
  263.     
  264.     if ($type == 1) {
  265.         $cnt = 0;
  266.         foreach $quan (@quan) {
  267.             if ($quan > 0) {
  268.                 print "<tr>";
  269.                 print "<td>$item</td>";
  270.                 print "<td align=left>@sizes[$cnt]</td>";
  271.                 print "<td align=right>$quan</td>";
  272.                 $lprice = $price;
  273.                 if ($cnt == 4) {
  274.                     $lprice = $price + 2.5;
  275.                 } elsif ($cnt == 5) {
  276.                     $lprice = $price + 5;
  277.                 }
  278.                 printf ("<td align=right>\$%10.2f</td>",$lprice);
  279.                 printf ("<td align=right>\$%10.2f</td>",$quan * $lprice);
  280.                 print "</tr>";
  281.             }
  282.             $cnt = $cnt + 1;
  283.         }
  284.     } else {
  285.         print "<tr>";
  286.         print "<td>$item</td>";
  287.         print "<td align=left></td>";
  288.         print "<td align=right>@quan[0]</td>";
  289.         printf ("<td align=right>\$%10.2f</td>",$price);
  290.         printf ("<td align=right>\$%10.2f</td>",@quan[0] * $price);
  291.         print "</tr>";
  292.     }
  293. }
  294. sub SweatShirt {
  295.     $litem = "sweatshirt";
  296.     $ltotal = 0;
  297.     $ltotal = $mshirt + $lgshirt + $xlshirt + $xxlshirt;
  298.     
  299.     if ($ltotal > 0) {
  300.         &getPrices;
  301.     
  302.         $subPrice = $ltotal * $price;
  303.         $xtra = $xxlshirt * 2.5;
  304.         $totPrice = $subPrice + $xtra;
  305.         $gTotal += $totPrice;
  306.         
  307.         &PrintInfo(1, "Sweatshirt", (0,$mshirt,$lgshirt,$xlshirt,$xxlshirt));
  308.     }
  309. }
  310. sub PoloBlack {
  311.     $litem = "poloblack";
  312.     $ltotal = 0;
  313.     $ltotal = $mpoloblack + $lgpoloblack + $xlpoloblack + $xxlpoloblack;
  314.     
  315.     if ($ltotal > 0) {
  316.         &getPrices;
  317.     
  318.         $subPrice = $ltotal * $price;
  319.         $xtra = $xxlpoloblack * 2.5;
  320.         $totPrice = $subPrice + $xtra;
  321.         $gTotal += $totPrice;
  322.         
  323.         &PrintInfo(1, "Black Polo Shirt", (0,$mpoloblack,$lgpoloblack,$xlpoloblack,$xxlpoloblack));;
  324.     }
  325. }
  326. sub BaseballCap {
  327.     $litem = "baseballcap";
  328.     $ltotal = 0;
  329.     $ltotal = $baseballcap;
  330.     
  331.     if ($ltotal > 0) {
  332.         &getPrices;
  333.     
  334.         $totPrice = $ltotal * $price;
  335.         $gTotal += $totPrice;
  336.         
  337.         &PrintInfo(2, "Baseball Cap", $ltotal);
  338.     }
  339. }
  340. sub Denim {
  341.     $litem = "denim";
  342.     $ltotal = 0;
  343.     $ltotal = $sdenim + $mdenim + $lgdenim + $xldenim + $xxldenim + $xxxldenim;
  344.     
  345.     if ($ltotal > 0) {
  346.         &getPrices;
  347.     
  348.         $subPrice = $ltotal * $price;
  349.         $xtra = $xxldenim * 2.5;
  350.         $xtra2 = $xxxldenim * 5;
  351.         $totPrice = $subPrice + $xtra + $xtra2;
  352.         $gTotal += $totPrice;
  353.         
  354.         &PrintInfo(1, "Denim Shirt", ($sdenim,$mdenim,$lgdenim,$xldenim,$xxldenim,$xxxldenim));
  355.     }
  356. }
  357. sub JacketBl {
  358.     $litem = "jacketbl";
  359.     $ltotal = 0;
  360.     $ltotal = $sjacketbl + $mjacketbl + $lgjacketbl + $xljacketbl + $xxljacketbl;
  361.     
  362.     if ($ltotal > 0) {
  363.         &getPrices;
  364.     
  365.         $subPrice = $ltotal * $price;
  366.         $xtra = $xxljacketbl * 2.5;
  367.         $totPrice = $subPrice + $xtra;
  368.         $gTotal += $totPrice;
  369.         
  370.         &PrintInfo(1, "Black Jacket", ($sjacketbl,$mjacketbl,$lgjacketbl,$xljacketbl,$xxljacketbl));
  371.     }
  372. }
  373. sub WhiteT {
  374.     $litem = "white";
  375.     $ltotal = 0;
  376.     $ltotal = $mwhite + $lgwhite + $xlwhite + $xxlwhite;
  377.     
  378.     if ($ltotal > 0) {
  379.         &getPrices;
  380.     
  381.         $subPrice = $ltotal * $price;
  382.         $xtra = $xxlwhite * 2.5;
  383.         $totPrice = $subPrice + $xtra;
  384.         $gTotal += $totPrice;
  385.         
  386.         &PrintInfo(1, "White T-Shirt", (0,$mwhite,$lgwhite,$xlwhite,$xxlwhite));
  387.     }
  388. }
  389. sub PoloWhite {
  390.     $litem = "polowhite";
  391.     $ltotal = 0;
  392.     $ltotal = $spolowhite + $mpolowhite + $lgpolowhite + $xlpolowhite + $xxlpolowhite + $xxxlpolowhite;
  393.     
  394.     if ($ltotal > 0) {
  395.         &getPrices;
  396.     
  397.         $subPrice = $ltotal * $price;
  398.         $xtra = $xxlpolowhite * 2.5;
  399.         $xtra2 = $xxxlpolowhite * 5;
  400.         $totPrice = $subPrice + $xtra + $xtra2;
  401.         $gTotal += $totPrice;
  402.         
  403.         &PrintInfo(1, "White Polo Shirt", ($spolowhite,$mpolowhite,$lgpolowhite,$xlpolowhite,$xxlpolowhite,$xxxlpolowhite));
  404.     }
  405. }
  406. sub MarblePen {
  407.     $litem = "marbpen";
  408.     $ltotal = 0;
  409.     $ltotal = $marbpen;
  410.     
  411.     if ($ltotal > 0) {
  412.         &getPrices;
  413.     
  414.         $totPrice = $ltotal * $price;
  415.         $gTotal += $totPrice;
  416.         
  417.         &PrintInfo(2, "Marbled Pen", $ltotal);
  418.     }
  419. }
  420. sub PostNote {
  421.     $litem = "postnote";
  422.     $ltotal = 0;
  423.     $ltotal = $postnote;
  424.     
  425.     if ($ltotal > 0) {
  426.         &getPrices;
  427.     
  428.         $totPrice = $ltotal * $price;
  429.         $gTotal += $totPrice;
  430.         
  431.         &PrintInfo(2, "Post-It Note Pads", $ltotal);
  432.     }
  433. }
  434. sub CDWallet {
  435.     $litem = "cdwallet";
  436.     $ltotal = 0;
  437.     $ltotal = $cdwallet;
  438.     
  439.     if ($ltotal > 0) {
  440.         &getPrices;
  441.     
  442.         $totPrice = $ltotal * $price;
  443.         $gTotal += $totPrice;
  444.         
  445.         &PrintInfo(2, "Black CD Wallet", $ltotal);
  446.     }
  447. }
  448. sub CubePad {
  449.     $litem = "cubepad";
  450.     $ltotal = 0;
  451.     $ltotal = $cubepad;
  452.     
  453.     if ($ltotal > 0) {
  454.         &getPrices;
  455.     
  456.         $totPrice = $ltotal * $price;
  457.         $gTotal += $totPrice;
  458.         
  459.         &PrintInfo(2, "Memo Cube Pad", $ltotal);
  460.     }
  461. }
  462. sub PCMCIA {
  463.     $litem = "pcmcia";
  464.     $ltotal = 0;
  465.     $ltotal = $pcmcia;
  466.     
  467.     if ($ltotal > 0) {
  468.         &getPrices;
  469.     
  470.         $totPrice = $ltotal * $price;
  471.         $gTotal += $totPrice;
  472.         
  473.         &PrintInfo(2, "PCMCIA Card Case", $ltotal);
  474.     }
  475. }
  476. sub BlackTBag {
  477.     $litem = "blacktbag";
  478.     $ltotal = 0;
  479.     $ltotal = $blacktbag;
  480.     
  481.     if ($ltotal > 0) {
  482.         &getPrices;
  483.     
  484.         $totPrice = $ltotal * $price;
  485.         $gTotal += $totPrice;
  486.         
  487.         &PrintInfo(2, "Black Travel Bag", $ltotal);
  488.     }
  489. }
  490. sub TravelMug {
  491.     $litem = "travelmug";
  492.     $ltotal = 0;
  493.     $ltotal = $travelmug;
  494.     
  495.     if ($ltotal > 0) {
  496.         &getPrices;
  497.     
  498.         $totPrice = $ltotal * $price;
  499.         $gTotal += $totPrice;
  500.         
  501.         &PrintInfo(2, "Travel Mug", $ltotal);
  502.     }
  503. }
  504. sub TravelAlarm {
  505.     $litem = "travelalarm";
  506.     $ltotal = 0;
  507.     $ltotal = $travelalarm;
  508.     
  509.     if ($ltotal > 0) {
  510.         &getPrices;
  511.     
  512.         $totPrice = $ltotal * $price;
  513.         $gTotal += $totPrice;
  514.         
  515.         &PrintInfo(2, "Travel Alarm", $ltotal);
  516.     }
  517. }
  518. sub SecureTag {
  519.     $litem = "securetag";
  520.     $ltotal = 0;
  521.     $ltotal = $securetag;
  522.     
  523.     if ($ltotal > 0) {
  524.         &getPrices;
  525.     
  526.         $totPrice = $ltotal * $price;
  527.         $gTotal += $totPrice;
  528.         
  529.         &PrintInfo(2, "Security Luggage Tag", $ltotal);
  530.     }
  531. }
  532. sub BlackTag {
  533.     $litem = "blacktag";
  534.     $ltotal = 0;
  535.     $ltotal = $blacktag;
  536.     
  537.     if ($ltotal > 0) {
  538.         &getPrices;
  539.     
  540.         $totPrice = $ltotal * $price;
  541.         $gTotal += $totPrice;
  542.         
  543.         &PrintInfo(2, "Black Leather Luggage Tag", $ltotal);
  544.     }
  545. }
  546. sub KeyRing {
  547.     $litem = "keyring";
  548.     $ltotal = 0;
  549.     $ltotal = $keyring;
  550.     
  551.     if ($ltotal > 0) {
  552.         &getPrices;
  553.     
  554.         $totPrice = $ltotal * $price;
  555.         $gTotal += $totPrice;
  556.         
  557.         &PrintInfo(2, "Key Ring", $ltotal);
  558.     }
  559. }
  560. sub GolfBalls {
  561.     $litem = "golfballs";
  562.     $ltotal = 0;
  563.     $ltotal = $golfballs;
  564.     
  565.     if ($ltotal > 0) {
  566.         &getPrices;
  567.     
  568.         $totPrice = $ltotal * $price;
  569.         $gTotal += $totPrice;
  570.         
  571.         &PrintInfo(2, "Titleist Golf Balls", $ltotal);
  572.     }
  573. }
  574. sub Umbrella {
  575.     $litem = "umbrella";
  576.     $ltotal = 0;
  577.     $ltotal = $umbrella;
  578.     
  579.     if ($ltotal > 0) {
  580.         &getPrices;
  581.     
  582.         $totPrice = $ltotal * $price;
  583.         $gTotal += $totPrice;
  584.         
  585.         &PrintInfo(2, "Folding Golf Umbrella", $ltotal);
  586.     }
  587. }
  588. sub Ballpoint {
  589.     $litem = "ballpoint";
  590.     $ltotal = 0;
  591.     $ltotal = $ballpoint;
  592.     
  593.     if ($ltotal > 0) {
  594.         &getPrices;
  595.     
  596.         $totPrice = $ltotal * $price;
  597.         $gTotal += $totPrice;
  598.         
  599.         &PrintInfo(2, "Black Ballpoint Pen", $ltotal);
  600.     }
  601. }
  602. sub ArmyKnife {
  603.     $litem = "armyknife";
  604.     $ltotal = 0;
  605.     $ltotal = $armyknife;
  606.     
  607.     if ($ltotal > 0) {
  608.         &getPrices;
  609.     
  610.         $totPrice = $ltotal * $price;
  611.         $gTotal += $totPrice;
  612.         
  613.         &PrintInfo(2, "Swiss Army Knife", $ltotal);
  614.     }
  615. }
  616. sub CeramicMug {
  617.     $litem = "ceramicmug";
  618.     $ltotal = 0;
  619.     $ltotal = $ceramicmug;
  620.     
  621.     if ($ltotal > 0) {
  622.         &getPrices;
  623.     
  624.         $totPrice = $ltotal * $price;
  625.         $gTotal += $totPrice;
  626.         
  627.         &PrintInfo(2, "Black Ceramic Mug", $ltotal);
  628.     }
  629. }
  630. sub getPrices {
  631.     open(FILE, "price.txt");
  632.     @price = <FILE>;
  633.     close(FILE);
  634.     
  635.     foreach $line (@price) {
  636.         if ($line =~ $litem) {
  637.             $gList = $line;
  638.             last;
  639.         }
  640.     }
  641.     
  642.     chop($gList);
  643.     
  644.     ($left, $right) = split(/:/, $gList);
  645.     ($item, $num) = split(/,/, $left);
  646.     ($quan1, $price1, $quan2, $price2, $quan3, $price3, $quan4, $price4) = split(/,/, $right);
  647.     
  648.     if ($ltotal < $quan2) {
  649.         $price = $price1;
  650.     } elsif ($ltotal >= $quan2 && $ltotal < $quan3) {
  651.         $price = $price2;
  652.     } elsif ($ltotal >= $quan3 && $ltotal < $quan4) {
  653.         $price = $price3;
  654.     } else {
  655.         $price = $price4;
  656.     }
  657. }
  658.