[set page_banner]Order Entry[/set] [set fm_class]Order[/set] [set help_name]order entry[/set] [set page_title]Order Entry[/set] [set icon_name]icon_item.gif[/set] @_FM_STD_HEAD_@ [set ordernr][/set] [set custnr][/set] [set custtype][/set] [set addr1][/set] [set addr2][/set] [set addr3][/set] [set postalcode][/set] [set city][/set] [set phonenr][/set] [set mobilenr][/set] [set faxnr][/set] [set emailaddr][/set] [set webaddr][/set] [set fname][/set] [set lname][/set] [set compname][/set] [set attention][/set] [comment][setlocale locale=da_DK currency=da_DK persist=1][/comment] [if value mv_action] [then] [if value select_order] [query list=1 sql="SELECT ordernr,contact_id FROM so_orderhead WHERE ordernr=[value select_order]"] [seti ordernr][sql-param ordernr][/seti] [seti tmp][value name=select_customer set="[sql-param contact_id]"][/seti] [/query] [/if] [if value select_customer] [query list=1 sql="SELECT customernr,type, credit_code, deliverycode, paycode, freightcode, custgrp_id FROM co_customer WHERE contact_id=[value select_customer]"] [seti custnr][sql-param customernr][/seti] [seti custtype][sql-param type][/seti] [seti creditcode][sql-param credit_code][/seti] [seti deliverycode][sql-param deliverycode][/seti] [seti paycode][sql-param paycode][/seti] [seti freightcode][sql-param freightcode][/seti] [seti custgroup][sql-param custgrp_id][/seti] [/query] [query list=1 sql="SELECT custgrp_nr FROM co_custgrp WHERE custgrp_id=[scratch custgroup]"] [seti custgroup][sql-param custgrp_nr][/seti] [/query] [query list=1 sql="SELECT address1, address2, address3, city, postalcode FROM co_address WHERE contact_id=[value select_customer]"] [seti addr1][sql-param address1][/seti] [seti addr2][sql-param address2][/seti] [seti addr3][sql-param address3][/seti] [seti postalcode][sql-param postalcode][/seti] [seti city][sql-param city][/seti] [/query] [query list=1 sql="SELECT phonenr FROM co_telephone WHERE contact_id=[value select_customer] AND type=90001"] [seti phonenr][sql-param phonenr][/seti] [/query] [query list=1 sql="SELECT phonenr FROM co_telephone WHERE contact_id=[value select_customer] AND type=90002"] [seti mobilenr][sql-param phonenr][/seti] [/query] [query list=1 sql="SELECT phonenr FROM co_telephone WHERE contact_id=[value select_customer] AND type=90003"] [seti faxnr][sql-param phonenr][/seti] [/query] [query list=1 sql="SELECT url FROM co_url WHERE contact_id=[value select_customer] AND type=80001"] [seti emailaddr][sql-param url][/seti] [/query] [query list=1 sql="SELECT url FROM co_url WHERE contact_id=[value select_customer] AND type=80002"] [seti webaddr][sql-param url][/seti] [/query] [if scratch custtype == 60001] [query list=1 sql="SELECT firstname,lastname FROM co_person WHERE contact_id=[value select_customer]"] [seti fname][sql-param firstname][/seti] [seti lname][sql-param lastname][/seti] [/query] [/if] [if scratch custtype == 60002] [query list=1 sql="SELECT name, attention FROM co_company WHERE contact_id=[value select_customer]"] [seti compname][sql-param name][/seti] [seti attention][sql-param attention][/seti] [/query] [/if] [else] [set error][L]**Please choose a row[/L][/set] [/else] [/if] [seti submit_value][value mv_action][/seti] [/then] [else] [set submit_value]Add[/set] [/else] [/if] [perl tables="so_orderline pd_article"] my ($art_id, $articlenr, $description, $qty, $price, $discount); if ($Values->{order_action}) { my $i = $Values->{select_orderline} || 0; my $ref = $Scratch->{orderlines}; my ($ar, $nul, $names) = @$ref; if ($Values->{order_action} eq "Update") { $art_id = 0; $art_id = @$ar[$i - 1]->[6] if (@$ar && $i); $articlenr = $Values->{articlenr} ; $articlenr = @$ar[$i - 1]->[0] if (@$ar && $i && !$articlenr); $description = $Values->{description}; $description = @$ar[$i - 1]->[1] if (@$ar && $i && !$description); $qty = $Values->{qty}; $qty = @$ar[$i - 1]->[2] if (@$ar && $i && !$qty); $price = $Values->{price}; $price = @$ar[$i - 1]->[3] if (@$ar && $i && !$price); $price = 0 if $price == "-"; $discount = $Values->{discount}; $discount = @$ar[$i - 1]->[4] if (@$ar && $i && !$discount); if ($articlenr && (!$description || !$price)) { my $q = "SELECT art_id, description, price FROM pd_artpricecurr_v where articlenr = '$articlenr'"; my $artdb = $Db{pd_article} or return "NO article/price?"; my @ary = $artdb->query($q) or return "not found"; my $ref = \@ary; my ($ar, $nul, $names) = @$ref; @ary = @$ar; my $ref = $ary[0]; my ($a_id, $desc, $pr) = (0,0,0); ($a_id, $desc, $pr) = @$ref if $ref; $description = $desc if !$description; $price = $pr if !$price; $art_id = $a_id; }; my @ol = [$articlenr, $description, $qty, $price, $discount, $qty*$price-$discount, $art_id]; if ($i) { @$ar[$i - 1] = (@ol); } else { push @$ar, (@ol); }; } elsif ($Values->{order_action} eq "Delete") { splice (@$ar, $i - 1, 1); }; } else { #----------------------------------------------------------# # Read existing orderlines if ($Values->{select_order}) { my $db = $Db{so_orderline} or return "NO orderline?"; # SELECT a.articlenr, o.description, o.qty, o.unitprice, o.discount, o.linetotal, o.art_id # FROM orderline o, article a # WHERE o.ordernr=$Values->{select_order} # AND o.art_id = o.art_id # ORDER BY linenr; my $q = qq{ SELECT o.art_id, o.description, o.qty, o.unitprice, o.discount, o.linetotal, o.art_id FROM so_orderline o WHERE o.ordernr=$Values->{select_order} ORDER BY linenr; }; my @ary = $db->query($q) or die "query failed"; $Scratch->{orderlines} = \@ary; my $ref = $Scratch->{orderlines}; my ($ar, $nul, $names) = @$ref; my $i=0; foreach my $row (@$ar) { my ($seq, $description, $qty, $price, $discount, $ltot) = @$row; if ($seq) { my $articlenr = $Db{pd_article}->field($seq, 'articlenr'); my @ol = [$articlenr, $description, $qty, $price, $discount, $ltot, $seq]; @$ar[$i] = (@ol); }; $i++; }; } else { my @ary = ( [ ]); $Scratch->{orderlines} = \@ary; }; }; delete $Values->{order_action}; delete $Values->{select_orderline}; return; [/perl] [seti tmp][if !value custtype][value name=custtype set="[scratch custtype]"][/if][/seti] [if !scratch error]
[comment]Customer data - part 1[/comment]
[L]Customer[/L]    
[L]Nr[/L]
[L]Type[/L]
[comment]Person / Company data[/comment] [if value custtype eq 60001] [include file=/home/freemoney/interchange/lib/UI/pages/freemoney/include/private.inc interpolate=1] [elsif value custtype eq 60002] [include file=/home/freemoney/interchange/lib/UI/pages/freemoney/include/company.inc interpolate=1] [/elsif] [/if]
[comment]Address data[/comment] [include file=/home/freemoney/interchange/lib/UI/pages/freemoney/include/address.inc]
[comment]Customer data - part 2[/comment] [perl] $Values->{creditterms} = $Scratch->{creditcode}; $Values->{deliveryterms} = $Scratch->{deliverycode}; $Values->{paymentterms} = $Scratch->{paycode}; $Values->{freightcode} = $Scratch->{freightcode}; return [/perl]
[L]Terms[/L]
[L]Credit[/L]
[L]Delivery[/L]
[L]Payment[/L]
[L]Freight Code[/L]
[L]Customer Group[/L]
[comment]Order lines[/comment]
[loop more=1 ml=10 list=`$Scratch->{orderlines}`] [list] [/list] [more-list]
[more] [/more-list] [/loop]
[L]Select[/L] [L]Articlenr[/L] [L]Description[/L] [L]Qty[/L] [L]Price[/L] [L]Discount[/L] [L]Total[/L]  
[loop-pos 0] [loop-pos 1] [loop-pos 2] [currency][loop-pos 3][/currency] [currency][loop-pos 4][/currency] [currency][loop-pos 5][/currency]  
 
 
   
[set [L]Update Line[/L]] mv_todo=return mv_nextpage=freemoney/so.html order_action=Update [/set] [set [L]Delete Line[/L]] mv_todo=return mv_nextpage=freemoney/so.html order_action=Delete [/set]
[comment]END Order lines END[/comment]
[set [L]Find Customer[/L]] mv_todo=return mv_nextpage=freemoney/customerList.html mv_action= select_order= [/set] [set [L]Find Order[/L]] mv_todo=return mv_nextpage=freemoney/soList.html mv_action= [/set] [set name=[L]"[scratch submit_value]"[/L]] mv_nextpage=freemoney/soUpdate [/set]
[else] [scratch error] [set error][/set]

[L]BACK[/L] [/else] [/if] @_FM_STD_FOOTER_@