4.x+ self-service API: list and remove cards on file, RT#38919
[freeside.git] / httemplate / edit / quotation_pkg_detail.html
1 <% include("/elements/header-popup.html", $title, '',
2             ( $cgi->param('error') ? '' : 'onload="addRow()"' ),
3           )
4 %>
5
6 %# <% include('/elements/error.html') %>
7
8 <FORM ACTION="process/quotation_pkg_detail.html" NAME="DetailForm" ID="DetailForm" METHOD="POST">
9
10 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
11
12 <TABLE ID="DetailTable" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=1 STYLE="background-color: #cccccc">
13
14   <TR>
15     <TD ALIGN="right">Package</TD>
16     <TD BGCOLOR="#ffffff"><% $part_pkg->pkg %></TD>
17   </TR>
18
19   <TR>
20     <TD ALIGN="right">Comment</TD>
21     <TD BGCOLOR="#ffffff"><% $part_pkg->comment |h %></TD>
22   </TR>
23
24   <TR>
25     <TD COLSPAN=2>Detail: </TD>
26   </TR>
27
28 % my $row = 0;
29 % for ( @details ) { 
30
31     <TR>
32       <TD></TD>
33       <TD>
34         <INPUT TYPE="text" NAME="detail<% $row %>" SIZE="60" MAXLENGTH="65" VALUE="<% $_ |h %>" rownum="<% $row++ %>" onkeyup="possiblyAddRow" onchange="possiblyAddrow">
35       </TD>
36     </TR>
37
38 % } 
39
40 </TABLE>
41
42 <BR>
43 <INPUT TYPE="submit" ID="submit" NAME="submit" VALUE="<% $title %>">
44
45 </FORM>
46
47 <SCRIPT TYPE="text/javascript">
48 % # abject false laziness with edit/cust_pkg_detail.html
49
50   var rownum = <% $row %>;
51
52   function possiblyAddRow() {
53     if ( ( rownum - this.getAttribute('rownum') ) == 1 ) {
54       addRow();
55     }
56   }
57
58   function addRow() {
59
60     var table = document.getElementById('DetailTable');
61     var tablebody = table.getElementsByTagName('tbody').item(0);
62
63     var row = document.createElement('TR');
64
65     var empty_cell = document.createElement('TD');
66     row.appendChild(empty_cell);
67
68     var detail_cell = document.createElement('TD');
69
70       var detail_input = document.createElement('INPUT');
71       detail_input.setAttribute('name', 'detail'+rownum);
72       detail_input.setAttribute('id',   'detail'+rownum);
73       detail_input.setAttribute('size', 60);
74       detail_input.setAttribute('maxLength', 65);
75       detail_input.setAttribute('rownum',   rownum);
76       detail_input.onkeyup = possiblyAddRow;
77       detail_input.onchange = possiblyAddRow;
78       detail_cell.appendChild(detail_input);
79
80     row.appendChild(detail_cell);
81
82     tablebody.appendChild(row);
83
84     rownum++;
85
86   }
87
88 </SCRIPT>
89
90 </BODY>
91 </HTML>
92 <%init>
93
94 my $curuser = $FS::CurrentUser::CurrentUser;
95
96 die "access denied"
97   unless $curuser->access_right('Generate quotation');
98
99 $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'illegal pkgnum';
100 my $pkgnum = $1;
101
102 my $quotation_pkg = qsearchs({
103   'table'     => 'quotation_pkg',
104   'addl_from' => 'LEFT JOIN quotation USING ( quotationnum )'.
105                  'LEFT JOIN cust_main USING ( custnum )',
106   'hashref'   => { 'quotationpkgnum' => $pkgnum },
107   'extra_sql' => ' AND '. $curuser->agentnums_sql,
108 });
109
110 my $part_pkg = $quotation_pkg->part_pkg;
111
112 my @details = $quotation_pkg->details;
113
114 my $title = ( scalar(@details) ? 'Edit ' : 'Add ' ). 'Quotation Details';
115
116 </%init>