[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]
[comment]END Order lines END[/comment]
|
|
[else]
[scratch error]
[set error][/set]
[L]BACK[/L]
[/else]
[/if]
@_FM_STD_FOOTER_@