#####################################################
# show_call_4update.pl by Mike Moxcey
# display call data with form button for update
#####################################################

$| = 1; # prevents forking so stuff is printed in correct order

require "cgi-lib.pl";
require "oracle.pl";
require "oratut.pl";

##########################################
# Get seq NR (passed in as argument #
##########################################

if (!(defined($ARGV[0])))
{ &NoARGV; # exits with error msg }
else
{$seq = $ARGV[0]; }
#####################
# Call Info Selects #
#####################

@sql_section1 =<<ENDOFSQL;

select
'User Name: <input type="text" name="name" size=30 maxlength=30 value="'||rtrim(name)||'"><p>',
'Email Adr: <input type="text" name="email" size=30 maxlength=100 value="'||rtrim(email)||'"><p>',
'Problem<br>', '<textarea cols=60 rows=4 name="problem" wrap="virtual"> '||rtrim(problem)||'</textarea><p>',
'Priority: <SELECT NAME="priority">'
from oratut.calls where seq = $seq;
ENDOFSQL

@sql_pri =<<ENDOFSQL;

select '<option value="'||rtrim(lk_code)||'">'||lk_desc
from oratut.lookup
where lk_type = 'PRI'
and rtrim(lk_code) != (select rtrim(priority) from oratut.calls
where seq=$seq)
union
select '<option value="'||rtrim(priority)||'" SELECTED>'||lk_desc
from oratut.calls, oratut.lookup
where seq=$seq and lk_type='PRI'
and rtrim(lk_code)=rtrim(priority)
order by 1;
ENDOFSQL

@sql_sw =<<ENDOFSQL;

select '<option value="'||rtrim(lk_code)||'">'||lk_desc
from oratut.lookup
where lk_type = 'SW'
and rtrim(lk_code) != (select rtrim(software) from oratut.calls
where seq=$seq)
union
select '<option value="'||rtrim(software)||'" SELECTED>'||lk_desc
from oratut.calls, oratut.lookup
where seq=$seq and lk_type='SW'
and rtrim(lk_code)=rtrim(software)
order by 1;
ENDOFSQL

@sql_close =<<ENDOFSQL;

select ' Closed?',
'<INPUT TYPE="radio" NAME="close_flag" Value="N"',
decode (close_date,'','Checked',''),'>No ',
'<INPUT TYPE="radio" NAME="close_flag" Value="Y"',
decode (close_date,'','','Checked'),'>Yes'
from oratut.calls where seq=$seq
ENDOFSQL

@sql_close_date =<<ENDOFSQL;

select '<INPUT TYPE="hidden" NAME="close_date" Value="'||
close_date||'">'
from oratut.calls where seq=$seq;
ENDOFSQL

################################################################
# Display Screen Form #
################################################################

print &PrintHeader;
print &HtmlTopTut("Show Call Nr $seq for Update");

####################
# Call Update Form #
####################
print '<form method="post" action="load_update.pl"><kbd>';

&sql($sql_login,@sql_section1);
&sql($sql_login,@sql_pri);
print '</select> Software <select name="software">';
&sql($sql_login,@sql_sw);
print '</select><p>';
&sql($sql_login,@sql_close);
&sql($sql_login,@sql_close_date);

print <<EOM;

</kbd>
<input type="hidden" name="seq" value="$seq">
<input type="submit" value="Update">
</form>
EOM

print &HtmlBotTut;

######################################
# error if this form is called wrong #
######################################
sub NoARGV {

print &PrintHeader;
print &HtmlTopTut("OraclePerl Tutorial Error 001");
print "Nothing was passed in on the command line <br>\n";
print "The Seq_nr was supposed to be there as ARGV[0]";
print &HtmlBotTut;
exit 1;
}
home