[set page_title][L]Order Entry[/L][/set] [set ui_class]Orders[/set] [set help_name]order_entry.main[/set] [set icon_name]icon_orders.gif[/set] [seti meta_header]
[/seti] @_UI_STD_HEAD_@ [calc] return unless $CGI->{customer}; %$Values = (); $Values->{customer_id} = $CGI->{customer} eq 'NEW' ? '' : $CGI->{customer}; return; [/calc] [if cgi repeat_order] [perl tables=orderline] my $db = $Db{orderline}; my $on = $db->quote($CGI->{repeat_order}, 'order_number'); my $q = qq{SELECT sku,quantity,username FROM orderline WHERE order_number = $on ORDER BY order_number}; my $ary = $db->query($q) || []; my @i; my @q; @$Items = (); for(@$ary) { push @i, $_->[0]; push @q, $_->[1]; } if (@i) { if($CGI->{pull_customer}) { %$Values = (); $Values->{customer_id} = $ary->[0][2]; } } else { $Tag->warnings(errmsg("Order number %s not found", $on)); } $CGI->{mv_order_item} = join "\0", @i; $CGI->{mv_order_quantity} = join "\0", @q; $CGI->{mv_todo} = 'refresh'; return; [/perl] [if cgi mv_order_item][update process][/if] [/if] [perl tables="country products"] ## This section sets the shipping, handling, taxing, and payment ## initializations, as well as browser check ## Start with payment mode if none there $Values->{mv_order_profile} ||= $Variable->{DEFAULT_PAYMENT_MODE} ||'credit_card'; ## Check for COD order my @handling; if($Values->{mv_handling}) { @handling = split /[\s,\0]+/, $Values->{mv_handling}; @handling = grep /\S/ && $_ ne 'cod', @handling; $Values->{mv_handling} = join " ", @handling; } if($Values->{mv_order_profile} eq 'cod') { push @handling, 'cod'; } if(@handling) { $Values->{mv_handling} = join " ", @handling; } #Debug("mv_handling=$Values->{mv_handling}"); my $db = $Db{country} or return; my $domestic = $Variable->{DOMESTIC_SHIPPING} || 'US CA'; $domestic =~ s/\W+/ /g; my @dom = grep /\S/, split /\s+/, $domestic; my %dom; @dom{@dom} = @dom; my $modes; if($Values->{country}) { $modes = tag_data('country', 'shipmodes', $Values->{country}); @modes = grep /\S/, split /[\s,\0]+/, $modes; } delete $Scratch->{only_download}; my $hardgoods; for(@$Items) { next if tag_data('__ProductFiles_0__', 'download', $_->{code}); $hardgoods = 1; } ! $hardgoods and $Scratch->{only_download} = 1; return unless @modes; my %modes; @modes{@modes} = @modes; if(! $modes{$Values->{mv_shipmode}}) { $Values->{mv_shipmode} = shift @modes; } return; [/perl] [form-session-id] [page href="admin/entry_items" form=" hiddens=customer caller=entry customer=[either][cgi customer][or][value customer_id][/either] "][L]Select items from list[/L] [comment] Get previous order numbers for possible repeat [/comment] [if value customer_id] [query table=transactions sql=" select order_number from transactions where username = '[value customer_id]' order by order_date desc " list=1 ] [on-match]
[/on-match] [/query] [/if] [form-session-id]

[L]SKU[/L] |  | [L]Description[/L] | [L]Quantity[/L] | [L]Price[/L] |  | [L]Extension[/L]
--- | --- | --- | --- | --- | --- | ---
[search-region prefix=sku] [if value mv_search_match_count] [/if] [/search-region] |  |  |  |  |  |
[item-list]
[L]remove[/L] [item-code] |  | [page [item-code]][item-description] [if-item-field weight] [L]WEIGHT[/L]: [summary amount=`[item-quantity] * [item-field weight]`] [/if-item-field] [if-item-data options o_enable] [table-organize cols=2] [item-options td=1] [/table-organize] [/if-item-data] |  | [discount-price] [if discount [item-code]] [L]Item is discounted[/L] [item-discount] [/if] |  | [item-subtotal]
[/item-list]
[summary format="[L]Shipping weight[/L]: %s" total=1]
[L]Subtotal[/L] |  | [subtotal]
[L]Shipping[/L] |  | [shipping]
[L]Tax[/L] |  | [salestax]
[L]TOTAL[/L] |  | [total-cost]

[if errors]

There were errors in your last entry. Pointers are shown in this color below.

- [error all=1 show_var=1 keep=1 show_error=1 joiner="
- "]

[/if]

[L]Shipping Address[/L]

[loop list=`$Values->{customer_id} || 'NEW'`]

[L]Customer ID[/L] | [L]New customer[/L]
[error name=company std_label=[L]Company[/L]] |
[error name=fname std_label="[L]First Name[/L]" required=1] | [error name=lname std_label="[L]Last Name[/L]" required=1]
[error name=address1 std_label=[L]Address[/L] required=1] |
[error name=city std_label="[L]City[/L]" required=1] |
| [error name=state std_label="[L]State/Province[/L]" required=1] |  | [error name=zip std_label="[L]Zip/Postal Code[/L]" required=1] |
[error name=email std_label="[L]Email Address[/L]" required=1] |
[L]Country[/L] | [value name=country set="[value name=country default='[loop-data userdb country]']" hide=1] [if value country =~ /(^$|US|CA)/] [else] [/else] [/if] [L](will update display)[/L]
[error name=phone_day std_label="[L]Daytime Phone[/L]" required=1] |
| [error name=phone_night std_label="[L]Evening Phone[/L]" required=0] |
[set [L]Find[/L]] mv_nextpage=__UI_BASE__/entry_select mv_change_frame=select mv_todo=back [/set] [set [L]Clear[/L]] [calc] for(keys %$CGI) { $CGI->{$_} = ''; } [/calc] mv_todo=return customer=NEW mv_nextpage=@@MV_PAGE@@ [/set]
| [msg arg.0="" arg.1=""]%sBold%s fields needed to process the order[/msg] [L]Don't save address in user record[/L]

[set only_downloadable]1[/set] [set some_downloadable][/set] [item-list] [if-item-field weight][set only_downloadable][/set][/if-item-field] [if-item-field download][set some_downloadable]1[/set][/if-item-field] [/item-list] [if !scratch only_downloadable]

[L]Shipping method[/L]

[if session ship_message] [L]Note:[/L] [data session ship_message] [/if]

[/if]

[L]Billing Address (if different)[/L]

[L]First Name[/L] | [L]Last Name[/L]
[L]Company[/L] |
[L]Address[/L] |
[L]City[/L] | [L]State[/L] [L]Zip/Postal Code[/L]
[L]Country[/L] |
[L]Phone[/L] |

[L]Email preferences[/L]

[L]Send receipt[/L] [L]Yes[/L] [L]No[/L] |  | [L]Put on email lists[/L] [display table=userdb col=mail_list type=checkbox_left_2]

[L]Payment Method[/L]
| [if !scratch old_browser] [/if] | [if scratch old_browser] [L](will update display)[/L] [/if]

[error std_label="[L]Credit Card Information[/L]" name=mv_credit_card_valid] | [calc] my $accepted = $Variable->{CREDIT_CARDS_ACCEPTED}; my (@out); my (@cc); my $out; push @cc, 'visa' if $accepted =~ /visa/; push @cc, 'mc' if $accepted =~ /mc/; push @cc, 'disc' if $accepted =~ /discover/; push @cc, 'amex' if $accepted =~ /amex/; for (@cc) { push @out, qq{}; } return join ' ', @out; [/calc]
[L]Card Number[/L]: |
[if variable MV_DEMO_MODE]
| ([L]test number[/L] 4111 1111 1111 1111)
[/if] [comment] Get the security code / cvv2 [/comment]
[comment] [L]Security Code[/L]: [/comment] [error std_label="[L]Security Code:[/L]" name=mv_credit_card_cvv2] Where is it? |  | The security code should be printed on the back of your card, usually on the signature strip, and consists of the three digits after the card number. Please do not enter your card's PIN number here.
[L]Expiration[/L]: | [display name=mv_credit_card_exp_month type=select default="[value name=mv_credit_card_exp_year default='[loop-data userdb mv_credit_card_exp_year]']" passed=| 1=01 - [L]January[/L], 2=02 - [L]February[/L], 3=03 - [L]March[/L], 4=04 - [L]April[/L], 5=05 - [L]May[/L], 6=06 - [L]June[/L], 7=07 - [L]July[/L], 8=08 - [L]August[/L], 9=09 - [L]September[/L], 10=10 - [L]October[/L], 11=11 - [L]November[/L], 12=12 - [L]December[/L]|] [comment] This should always return the current year as the first, then 7 more years. [/comment] [display type=select name=mv_credit_card_exp_year default="[value name=mv_credit_card_exp_year default='[loop-data userdb mv_credit_card_exp_year]']" passed=` my $year = $Tag->time( '', { format => '%Y' }, '%Y' ); my $out = ''; my @out; for ($year .. $year + 7) { /\d\d(\d\d)/; $last_two = $1; push @out, "$last_two=$_"; } return join ",", @out; `]

[L NEW_BROWSER_PAYMENT_MSG1]We will wait for a check sent to us referencing the order number you receive on your receipt.[/L]
[msg arg.0="[handling cod]"]There will be a %s charge added for COD.[/msg]

[L]Check Information[/L] |  |
[error name=check_account std_label="[L]Account Number[/L]" required=1] |
[error name=check_routing std_label="[L]Routing Number[/L]" required=1] |
[error name=check_number std_label="[L]Check Number[/L]" required=1] |
[error name=check_bank_phone std_label="[L]Bank Phone[/L]" required=1] |

[L]P.O. Information[/L] |
[error name=credit_limit_ok std_label="[L]PO Number[/L]" required=1] |
[if type=data term="userdb::credit_limit::[data session username]" op=">" compare=0.01]
Available credit | [currency] [data table=userdb col=credit_limit key="[data session username]"] [/currency] [if type=data term="userdb::credit_limit::[data session username]" op=< compare="[total-cost noformat=1]" ] [msg arg.0="[total-cost]"]Order total %s exceeds credit limit, please call.[/L] [/if]
[/if]

[set [L]Place Order[/L]] mv_todo=submit [value name=mv_order_route set="entry" hide=1] [/set]

[L]Gift note or Special Instructions[/L]
[value name=gift_note default="[loop-data userdb gift_note]"]

[/loop] [error all=1 hide=1 comment="[L]Clear errors[/L]"] @_UI_STD_FOOTER_@