[ic] Data tag not returning result
Tim Good
tim.g at edsd.com
Wed May 12 16:33:19 EDT 2004
> -----Original Message-----
> From: interchange-users-bounces at icdevgroup.org
> [mailto:interchange-users-bounces at icdevgroup.org] On Behalf
> Of Paul Jordan
> Sent: Wednesday, May 12, 2004 12:45 PM
> To: interchange-users at icdevgroup.org
> Subject: RE: [ic] Data tag not returning result
>
>
> interchange-users-bounces at icdevgroup.org wrote:
> >> -----Original Message-----
> >> From: interchange-users-bounces at icdevgroup.org
> >> [mailto:interchange-users-bounces at icdevgroup.org] On
> Behalf Of Paul
> >> Jordan
> >> Sent: Wednesday, May 12, 2004 11:16 AM
> >> To: interchange-users at icdevgroup.org
> >> Subject: RE: [ic] Data tag not returning result
> >>
> >>
> >> Tim Good [draco at edsd.com] wrote:
> >>> Hello list,
> >>>
> >>> (mysql 3.23.58 on Redhat 8.0 non threaded perl 5.8.2
> interchange 5.2
> >>> stable) I have a custom table I have added to my database
> >>> "delivery_schedule". In the order_view page, in admin, I
> would like
> >>> to pull data from this table
> >>>
> >>> according to the order_number being viewed. I have a field
> >>> "order_number" in the delivery_schedule table which get the
> >>> order_number from transactions when the order is placed.
> >>>
> >>> I have tried several different approaches to solve this task.
> >>> However, none are working. What is the best way to do this?
> >>>
> >>> Thanks much,
> >>> Tim
> >>>
> >>
> >>
> >> Next time include code we can help fix.
> >>
> >>
> >> [query
> >> ml=100
> >> type=list
> >> sp="@@MV_PAGE@@"
> >> sql=|
> >> SELECT foo, bar
> >> FROM delivery_schedule
> >> WHERE order_number = '[however your getting the
> >> order number]'
> >> |]
> >> [on-match]
> >> Delivery Detial:
> >> [/on-match]
> >> [list]
> >> Delivery Schedule #[sql-increment]: [sql-bar]<br>
> >> [/list] [no-match]
> >> Order is not yet in transit
> >> [/no-match]
> >> [/query]
> >>
> >>
> >> ----------
> >>
> >> [however your getting the order number] is however you can
> grab the
> >> order number on that page, maybe a CGI arg, or a value, or
> scratch, i
> >> dunno, you'll have to see what it is giving you.
> >>
> >> HTH
> >> Paul
> >>
> >>
> > Paul,
> >
> > Thank you for the response. I was using the code below:
> >
> > [query sql="select charge from delivery_schedule where
> order_number =
> > [loop-data transactions order_number]" type=list]
> > [if-sql-param charge]
> > [sql-param charge]
> > [/if-sql-param]
> > [/query]
> >
> > However, I need to use the results in later areas eg. [total_view
> > subtotal="[loop-data transactions subtotal]" install="[loop-data
> > transactions install_chrg]" delivery="[sql-param charge]" ]
> Total_view
> > is a custom Usertag I developed to return different totals
> depending
> > on view and charges. For instance weither or not there is a
> delivery
> > charge. I have tried to wrap the above query in [seti][/seti]
> > tags then use [scratch foo] to return in delivery="[scratch foo]".
> > This works once but when I call it later it dosen't.
> >
> > Then I tried:
> > [perl table='delivery_schedule']
> > $Tag->data("delivery_schedule", "charge", "[loop-data
> transactions
> > order_number]"); [/perl] This returns nothing.
> >
> > Also tried to have the query tag ecapsulate the whole area where
> > [sql-param charge] is needed. However, if there are no results the
> > "whole area is blank".
> >
> > Any ideas?
>
>
> I am not following where and how the UserTag is being used,
> and how many times, but here is a guess:
>
> [tmpn total_charge]0[/tmpn]
>
> [query sql="select charge
> from delivery_schedule
> where order_number = '[loop-data transactions
> order_number]'
> " type=list]
> [list]
> [if-sql-param charge]
> Line item charge: [calc]
> my $charge =
> q{[sql-param charge]};
>
> $Scratch->{total_charge} += $charge;
> return $charge;
> [/calc]
> [/if-sql-param]
> [/list]
> [/query]
>
> ....
>
> Total Charge:
> [total_view subtotal="[loop-data transactions subtotal]"
> install="[loop-data transactions install_chrg]"
> delivery="[scratch total_charge]" ]
>
>
> Or am I not understanding something?
>
> Paul
>
>
Paul,
Sorry for lack of details. Let me try and clarify:
I have a custom Usertag:
UserTag total_view Order subtotal install damage
delivery deposit
UserTag total_view PosNumber 5
UserTag total_view addAttr
UserTag total_view Routine <<EOR
sub {
my ($subtotal, $install, $damage, $delivery, $deposit) = @_;
my $tmp;
$tmp = 0;
# If subtotal value exists, format it for totaling.
if ($subtotal && !($subtotal =~ /^\$/)) {
$tmp += $subtotal;
}
elsif ($subtotal && ($subtotal =~ /^\$/)) {
$tmp += substr($subtotal, 1, length($subtotal)-1);
}
# If install value exists, format it for totaling.
if ($install && !($install =~ /^\$/)) {
$tmp += $install;
}
elsif ($install && ($install =~ /^\$/)) {
$tmp += substr($install, 1, length($install)-1);
}
# If damage value exists, format it for totaling.
if ($damage && !($damage =~ /^\$/)) {
$tmp += $damage;
}
elsif ($damage && ($damage =~ /^\$/)) {
$tmp += substr($damage, 1, length($damage)-1);
}
# If delivery value exists, format it for totaling.
if ($delivery && !($delivery =~ /^\$/)) {
$tmp += $delivery;
}
elsif ($delivery && ($delivery =~ /^\$/)) {
$tmp += substr($delivery, 1, length($delivery)-1);
}
# If deposit value exists, format it for totaling.
if ($deposit && !($deposit =~ /^\$/)) {
$tmp -= $deposit;
}
elsif ($deposit && ($deposit =~ /^\$/)) {
$tmp -= substr($deposit, 1, length($deposit)-1);
}
return currency($tmp,,,);
}
EOR
I am using this tag in the order_view page in admin UI. Specifically at:
[/if-sql-param]
[if-sql-param color]
<BR>
[L]Color[/L]: [sql-param color]
[/if-sql-param]
[snip]****shortened for viewing****
<td align=right style="padding: 5px">[sql-param
quantity]</td>
<td align=right style="padding: 5px">[currency][sql-param
price][/currency]</td>
<td align=right style="padding: 5px">[currency][sql-param
subtotal][/currency]</td>
</tr>
[/query]
<tr>
<td height=4 colspan=6 class=lightshade><img src="bg.gif"
width=1 height=4></td>
<td class=lightshade><img src="bg.gif" width=1
height=4></td>
</tr>
<tr>
<td height=39 colspan=6 align=right
class=rsubbold>[L]Rental Sub-Total[/L]:</td>
<td class=rownorm align=right>[currency][loop-data
transactions subtotal][/currency]</td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Delivery and
Pickup[/L]:</td>
<td class=rownorm align=right>
[perl table='delivery_schedule']
$Tag->data("delivery_schedule", "charge",
"[loop-data transactions order_number]");
[/perl]
</td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Setup and
Teardown[/L]:</td>
<td class=rownorm align=right>[loop-data transactions
install_chrg]</td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Total without
Damage Waiver[/L]:</td>
<td class=rownorm align=right>
[query sql="select charge from delivery_schedule where
order_number = [loop-data transactions order_number]" type=list]
[total_view subtotal="[loop-data transactions
subtotal]" install="[loop-data transactions install_chrg]"
delivery="[sql-param charge]" ]
[/query]
</td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Less Deposits
Received[/L]:</td>
<td class=rownorm align=right><font color=red>[loop-data
transactions deposit]</font></td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Balance
Due[/L]:</td>
<td class=rownormbold align=right>[total_view
subtotal="[loop-data transactions subtotal]" install="[loop-data
transactions install_chrg]" delivery="[sql-param charge]"
deposit="[loop-data transactions deposit]"]</td>
</tr>
<tr>
<td height=39 colspan=6 align=right class=rsubbold></td>
<td class=rownorm align=right></td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]10% Damage
Waiver[L]:</td>
<td class=rownorm align=right>[loop-data transactions
damage_chrg]</td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Total with
Damage Waiver[/L]:</td>
<td class=rownorm align=right>
[total_view subtotal="[loop-data transactions
subtotal]" install="[loop-data transactions install_chrg]"
delivery="[sql-param charge]" damage="[loop-data transactions
damage_chrg]"]
</td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Less Deposits
Received[/L]:</td>
<td class=rownorm align=right><font color=red>[loop-data
transactions deposit]</font></td>
</tr>
<tr>
<td colspan=6 align=right class=rsubbold>[L]Balance
Due[/L]:</td>
<td class=rownormbold align=right>
[total_view subtotal="[loop-data transactions
subtotal]" install="[loop-data transactions install_chrg]"
delivery="[sql-param charge]" damage="[loop-data transactions
damage_chrg]" deposit="[loop-data transactions deposit]"]
</td>
</tr>
</table>
Wherever you see [total_view ... [sql-param charge] ... ] is where I
need to reference the delivery charge
from the delivery_schedule table. This area in order_view is where the
order subtotal, shipping and Grand Total
would normally be located. I have replaced that section with code above.
The Usertag total_view returns
the running total depending on weither you want to include Install
charges or Delivery charges or Deposits
received or Damage deposits. Each optional charge is passed as a param
to total_view and then total_view
checks formating ($) and calculates the running total and returns it.
You would end up with something like:
Unit Price Extention
1 $5.75 $5.75
Rental Sub-Total: $5.75
Delivery and Pickup: ***** Problem area ***** should show $20.00
Setup and Teardown: $0.50
Total without Damage Waiver: $26.25
Less Deposits Received: $6.00
Balance Due: $0.25 ***** Problem area ***** should show + $20.00
10% Damage Waiver: $0.58
Total with Damage Waiver: $6.83 ***** Problem area ***** should show
+ $20.00
Less Deposits Received: $6.00
Balance Due: $0.83 ***** Problem area ***** should show + $20.00
I thought I tried the [tmpn foo][/tmpn] tag and it too returned the
result once but not
more than once. However, I will try it again.
Paul thanks again,
Tim
More information about the interchange-users
mailing list