if ($frm{'postmode'} eq "SINGLEPOST" || $frm{'postmode'} eq "CHECKBOXES" || $frm{'postmode'} eq "QUANTITYBOXES") { &CheckCookie; if ($cookieOrderID) { &ReadDataFile($cookieOrderID); &ProcessDataFile; &WriteDataFile($cookieOrderID); $msg_function = "Adding $msg_i New Item" if ($msg_i == 1); $msg_function = "Adding $msg_i New Items" if ($msg_i != 1); if ($msg_d) { $msg_function = $msg_function . ", $msg_d Duplicate Item" if ($msg_d == 1); $msg_function = $msg_function . ", $msg_d Duplicate Items" if ($msg_d != 1); } &AcceptOrder; } else { &GenerateOrderID; &MakeCookie($cookiename_OrderID, $OrderID); @orders = @NewOrder; &WriteDataFile($OrderID); $msg_function = "Adding $msg_i New Item" if ($msg_i == 1); $msg_function = "Adding $msg_i New Items" if ($msg_i != 1); &AcceptOrder; } } elsif ($frm{'postmode'} eq "QUANTITYBOXES") { my (@QtyList) = (); my ($num); # Build items submitted list # Build items submitted list foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/"/ /; if ($name =~ /\bquantity/) { push (@QtyList, substr ($name,8) ) if ( int ($value) > 0 ); } } # set up any price adjustments # set up any price adjustments foreach $num (@QtyList) { foreach $fieldadjust (@field_adjustments) { $id = "$fieldadjust" . $num; $adjflds{$id} = $frm{$id} if ($frm{$id}); } } # Validate user_input required # Validate user_input required foreach $num (@QtyList) { $id = "order" . $num; while (($pkey, $pval) = each (%product_fields)) { $vid = $pkey . $num; while (($fkey, $fval) = each (%frm)) { if ( $vid eq $fkey ) { foreach $fieldname (@field_validation) { if ( $fieldname eq $pkey ) { unless ( $frm{$vid} ) { ($item, $desc, $price, $ship, $taxit) = split(/$delimit/, $frm{$id}); $vname = $item . ": " . $pval; push (@missingfields, $vname); } } } } } } } &ValidationMessage(@missingfields) if scalar(@missingfields); # Group associated input - adjust price # Group associated input - adjust price foreach $num (@QtyList) { $id = "quantity" . $num; $qty = int ($frm{$id}); $id = "order" . $num; ($item, $desc, $price, $ship, $taxit) = split(/$delimit/, $frm{$id}); unless ($frm{$id}) { $msg_null="Cannot Find Selected Order Information
"; $msg_null=$msg_null . "Check To Make Sure an Item Was Selected"; &ValidationMessage("$msg_null"); } while (($key, $val) = each (%product_fields)) { $id = $key . $num; if ($frm{$id}) { if ($adjflds{$id}) { ($adjdesc, $adjprice) = split(/$delimit/, $adjflds{$id}); $price += $adjprice; if ($adjprice) { $desc = $desc . "\|" . "$val" . "::" . "$adjdesc $currency $adjprice"; } else { $desc = $desc . "\|" . "$val" . "::" . "$adjdesc"; } } else { $desc = $desc . "\|" . "$val" . "::" . "$frm{$id}"; } } } $price = sprintf "%.2f", $price; push (@NewOrder, "$qty$delimit$item$delimit$desc$delimit$price$delimit$ship$delimit$taxit"); $msg_i++; }