diff options
author | tetragon <tetragon@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-11-04 01:40:18 +0000 |
---|---|---|
committer | tetragon <tetragon@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-11-04 01:40:18 +0000 |
commit | e877b469af02884f1e7b2dd0d80fc7ab2e1f13a4 (patch) | |
tree | d917abd7dca77c48b37e6cde524cca4cccf14377 | |
parent | 0d782a73e55e47aa7a2fda31bd51c31ecfc814cb (diff) |
Templating the existing customer/vendor add/edit form, needs alignment work
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1849 4979c152-3d1c-0410-bac9-87ea11338e46
-rw-r--r-- | UI/ct-form.html | 436 | ||||
-rw-r--r-- | bin/ct.pl | 479 |
2 files changed, 557 insertions, 358 deletions
diff --git a/UI/ct-form.html b/UI/ct-form.html new file mode 100644 index 00000000..44c8cf72 --- /dev/null +++ b/UI/ct-form.html @@ -0,0 +1,436 @@ +<?lsmb INCLUDE 'ui-header.html' ?> +<?lsmb PROCESS elements.html ?> +<body> +<form method="post" action="<?lsmb form.script ?>"> +<table width="100%"> + <tr><th class="listtop"><?lsmb form.title ?></th></tr> + <tr><td /></tr> + <tr> + <td> + <table width="100%"> + <tr valign="top"> + <td width="50%"> + <table width="100%"> + <tr class="listheading"> + <th class="listheading" colspan="2" width="50%"><?lsmb text('Billing Address') ?></th> + </tr> + <tr> + <th align="right"><?lsmb text("${form.label} Number") ?></th> + <td><?lsmb PROCESS input element_data={ + name => form.dbnumber, + size => '35', + maxlength => '32', + value => form.${form.dbnumber}, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Company Name') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'name', + size => '35', + maxlength => '64', + value => form.name, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Address') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'address1', + size => '35', + maxlength => '32', + value => form.address1, + } -?></td> + </tr> + <tr> + <th /> + <td><?lsmb PROCESS input element_data={ + name => 'address2', + size => '35', + maxlength => '32', + value => form.address2, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('City') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'city', + size => '35', + maxlength => '32', + value => form.city, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('State/Province') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'state', + size => '35', + maxlength => '32', + value => form.state, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Zip/Postal Code') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'zipcode', + size => '10', + maxlength => '10', + value => form.zipcode, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Country') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'country', + size => '35', + maxlength => '32', + value => form.country, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Contact') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'contact', + size => '35', + maxlength => '64', + value => form.contact, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Phone') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'phone', + size => '20', + maxlength => '20', + value => form.phone, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Fax') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'fax', + size => '20', + maxlength => '20', + value => form.fax, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('E-mail') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'email', + size => '35', + value => form.email, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Cc') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'cc', + size => '35', + value => form.cc, + } -?></td> + </tr> +<?lsmb IF user.role.matches('(admin|manager)') -?> + <tr> + <th align="right"><?lsmb text('Bcc') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'bcc', + size => '35', + value => form.bcc, + } -?></td> + </tr> +<?lsmb END -?> + </table> + </td> + <td width="50%"> + <table width="100%"> + <tr> + <th class="listheading" colspan="2"> + <?lsmb text('Shipping Address') ?> + </th> + </tr> + <tr><td> <br /> </td></tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptoname', + size => '35', + maxlength => '64', + value => form.shiptoname, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptoaddress1', + size => '35', + maxlength => '32', + value => form.shiptoaddress1, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptoaddress2', + size => '35', + maxlength => '32', + value => form.shiptoaddress2, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptocity', + size => '35', + maxlength => '32', + value => form.shiptocity, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptostate', + size => '35', + maxlength => '32', + value => form.shiptostate, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptozipcode', + size => '10', + maxlength => '10', + value => form.shiptozipcode, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptocountry', + size => '35', + maxlength => '32', + value => form.shiptocountry, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptocontact', + size => '35', + maxlength => '32', + value => form.shiptocontact, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptophone', + size => '20', + maxlength => '20', + value => form.shiptophone, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptofax', + size => '20', + maxlength => '20', + value => form.shiptofax, + } -?></td> + </tr> + <tr> + <td><?lsmb PROCESS input element_data={ + name => 'shiptoemail', + size => '35', + value => form.shiptoemail, + } -?></td> + </tr> + </table> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td> + <table> +<?lsmb IF form.taxable -?> + <tr> + <th align="right"><?lsmb text('Taxable') ?></th> + <td colspan="5"> + <table> + <tr> + <td> + <?lsmb FOREACH tax IN form.taxable; + PROCESS input element_data=tax; + END -?> + </td> + <td> + <?lsmb PROCESS input element_data={ + name => 'taxincluded', + type => 'checkbox', + value => '1', + ${form.taxincluded} => form.taxincluded + } -?> + </td> + <th align="left"><?lsmb text('Tax Included') ?></th> + </tr> + </table> + </td> + </tr> +<?lsmb END -?> + <tr> + <th align="right"><?lsmb text('Startdate') ?></th> + <td><?lsmb PROCESS input element_data={ + class => 'date', + name => 'startdate', + size => '11', + value => form.startdate, + title => user.dateformat, + } -?></td> + <th align="right"><?lsmb text('Enddate') ?></th> + <td><?lsmb PROCESS input element_data={ + class => 'date', + name => 'enddate', + size => '11', + value => form.enddate, + title => user.dateformat, + } -?></td> + </tr> + <tr> + <th align="right"><?lsmb text('Credit Limit') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'creditlimit', + size => '9', + value => form.creditlimit, + } -?></td> + <th align="right"><?lsmb text('Terms') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'terms', + size => '2', + value => form.terms, + }; text('days') -?></td> + <th align="right"><?lsmb text('Discount') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'discount', + size => '4', + value => form.discount, + } -?>%</td> + </tr> + <tr> + <th align="right"><?lsmb text('Tax Number / SSN') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'taxnumber', + size => '20', + value => form.taxnumber, + } -?></td> +<?lsmb IF form.db == 'vendor' ?> + <th align="right"><?lsmb text('Sub-contract GIFI') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'gifi_accno', + size => '9', + value => form.gifi_accno, + } -?></td> +<?lsmb ELSE ?> + <th /> + <td /> +<?lsmb END ?> + <th align="right"><?lsmb text('SIC') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'sic_code', + size => '6', + maxlength => '6', + value => form.sic_code, + } -?>%</td> + </tr> + <tr> +<?lsmb IF form.all_business -?> + <th align="right"><?lsmb text('Type of Business') ?></th> + <td><?lsmb PROCESS select element_data=form.selectbusiness -?></td> +<?lsmb ELSE -?> + <th /> + <td /> +<?lsmb END -?> + <th align="right"><?lsmb text('BIC') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'bic', + size => '11', + maxlength => '11', + value => form.bic, + } -?></td> + <th align="right"><?lsmb text('IBAN') ?></th> + <td><?lsmb PROCESS input element_data={ + name => 'iban', + size => '24', + maxlength => '24', + value => form.iban, + } -?>%</td> + </tr> + <tr> +<?lsmb IF form.all_pricegroup AND form.db == 'customer' -?> + <th align="right"><?lsmb text('Pricegroup') ?></th> + <td><?lsmb PROCESS select element_data=form.selectpricegroup -?></td> +<?lsmb ELSE -?> + <th /> + <td /> +<?lsmb END -?> +<?lsmb IF form.all_language -?> + <th align="right"><?lsmb text('Language') ?></th> + <td><?lsmb PROCESS select element_data=form.selectlanguage -?></td> +<?lsmb ELSE -?> + <th /> + <td /> +<?lsmb END -?> +<?lsmb IF form.currencies -?> + <th align="right"><?lsmb text('Currency') ?></th> + <td><?lsmb PROCESS select element_data=form.selectcurrency -?></td> +<?lsmb ELSE -?> + <th /> + <td /> +<?lsmb END -?> + </tr> + <tr valign="top"> +<?lsmb IF form.all_employee -?> + <th align="right"> + <?lsmb IF form.db == 'vendor' -?> + <?lsmb text('Employee') -?> + <?lsmb ELSE -?> + <?lsmb text('Salesperson') -?> + <?lsmb END -?> + </th> + <td> + <?lsmb IF user.role != 'user' OR !form.id -?> + <?lsmb PROCESS select element_data=form.selectemployee -?> + <?lsmb ELSE -?> + <?lsmb form.employee -?> + <?lsmb END -?> + </td> +<?lsmb ELSE -?> + <th /> + <td /> +<?lsmb END -?> + <td colspan="4"> + <table> + <tr valign="top"> + <th align="left"><?lsmb text('Notes') ?></th> + <td> +<?lsmb PROCESS textarea element_data={ + name => 'notes', + rows => '3', + cols => '40', + text => form.notes, + } -?> + </td> + </tr> + </table> + </td> + </tr> + </table> + </td> + </tr> + <tr><td><hr size="3" noshade="noshade" /></td></tr> +</table> + + + +<?lsmb FOREACH hidden IN hiddens.keys; + PROCESS input element_data={ + type => 'hidden', + name => hidden, + value => hiddens.item(hidden) + }; END ?> +<?lsmb FOREACH button IN buttons; PROCESS button element_data=button; END ?> +</form> +</body> +</html> @@ -1262,152 +1262,83 @@ sub form_header { $form->format_amount( \%myconfig, $form->{discount}, "" ); $form->{terms} = $form->format_amount( \%myconfig, $form->{terms}, "" ); - if ( $myconfig{role} =~ /(admin|manager)/ ) { - $bcc = qq| - <tr> - <th align=right nowrap>| . $locale->text('Bcc') . qq|</th> - <td><input name=bcc size=35 value="$form->{bcc}"></td> - </tr> -|; - } - if ( $form->{currencies} ) { - # currencies - for ( split /:/, $form->{currencies} ) { - $form->{selectcurrency} .= "<option>$_\n"; - } - $form->{selectcurrency} =~ s/option>($form->{curr})/option selected>$1/; - $currency = qq| - <th>| . $locale->text('Currency') . qq|</th> - <td><select name=curr>$form->{selectcurrency}</select></td> -|; - } - - foreach $item ( split / /, $form->{taxaccounts} ) { - if ( $form->{tax}{$item}{taxable} ) { - $taxable .= -qq| <input name="tax_$item" value=1 class=checkbox type=checkbox checked> <b>$form->{tax}{$item}{description}</b>|; - } - else { - $taxable .= -qq| <input name="tax_$item" value=1 class=checkbox type=checkbox> <b>$form->{tax}{$item}{description}</b>|; - } - } - - if ($taxable) { - $tax = qq| - <tr> - <th align=right>| . $locale->text('Taxable') . qq|</th> - <td colspan=5> - <table> - <tr> - <td>$taxable</td> - <td><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td> - <th align=left>| . $locale->text('Tax Included') . qq|</th> - </tr> - </table> - </td> - </tr> -|; + $form->{selectcurrency} = { + name => 'curr', + options => [], + default_values => $form->{curr}, + }; + push @{$form->{selectcurrency}{options}}, { + text => $_, + value => $_, + } foreach split /:/, $form->{currencies}; } - $typeofbusiness = qq| - <th></th> - <td></td> -|; - - if ( @{ $form->{all_business} } ) { - $form->{selectbusiness} = qq|<option>\n|; - for ( @{ $form->{all_business} } ) { - $form->{selectbusiness} .= -qq|<option value="$_->{description}--$_->{id}">$_->{description}\n|; - } - - $form->{selectbusiness} =~ -s/(<option value="\Q$form->{business}--$form->{business_id}\E")>/$1 selected>/; - - $typeofbusiness = qq| - <th align=right>| . $locale->text('Type of Business') . qq|</th> - <td><select name=business>$form->{selectbusiness}</select></td> -|; - + $form->{taxable} = []; + foreach my $item ( split / /, $form->{taxaccounts} ) { + my $temp_tax = { + name => "tax_$item", + value => 1, + type => 'checkbox', + label => $form->{tax}{$item}{description} + }; + $temp_tax->{checked} = 'checked' if $form->{tax}{$item}{taxable}; + push @{$form->{taxable}}, $temp_tax; } - $pricegroup = qq| - <th></th> - <td></td> -|; - - if ( @{ $form->{all_pricegroup} } && $form->{db} eq 'customer' ) { - $form->{selectpricegroup} = qq|<option>\n|; - for ( @{ $form->{all_pricegroup} } ) { - $form->{selectpricegroup} .= - qq|<option value="$_->{pricegroup}--$_->{id}">$_->{pricegroup}\n|; - } - - $form->{selectpricegroup} =~ -s/(<option value="\Q$form->{pricegroup}--$form->{pricegroup_id}\E")/$1 selected/; - - $pricegroup = qq| - <th align=right>| . $locale->text('Pricegroup') . qq|</th> - <td><select name=pricegroup>$form->{selectpricegroup}</select></td> -|; + if (ref $form->{all_business} eq 'ARRAY') { + $form->{selectbusiness} = { + name => 'business', + options => [{text => '', value => ''}], + }; + push @{$form->{selectbusiness}{options}}, { + text => $_->{description}, + value => "$_->{description}--$_->{id}", + } foreach @{$form->{all_business}}; + $form->{selectbusiness}{default_values} = + "$form->{business}--$form->{business_id}"; + } + + if (ref $form->{all_pricegroup} eq 'ARRAY' && $form->{db} eq 'customer') { + $form->{selectpricegroup} = { + name => 'pricegroup', + options => [{text => '', value => ''}], + }; + push @{$form->{selectpricegroup}{options}}, { + name => $_->{pricegroup}, + value => "$_->{pricegroup}--$_->{id}", + } foreach @{$form->{all_pricegroup}}; + $form->{selectpricegroup}{default_values} = + "$form->{pricegroup}--$form->{pricegroup_id}"; } - $lang = qq| - <th></th> - <td></td> -|; - if ( @{ $form->{all_language} } ) { - $form->{selectlanguage} = qq|<option>\n|; - for ( @{ $form->{all_language} } ) { - $form->{selectlanguage} .= -qq|<option value="$_->{description}--$_->{code}">$_->{description}\n|; - } - - $form->{selectlanguage} =~ -s/(<option value="\Q$form->{language}--$form->{language_code}\E")/$1 selected/; - - $lang = qq| - <th align=right>| . $locale->text('Language') . qq|</th> - <td><select name=language>$form->{selectlanguage}</select></td> -|; - } - - $employeelabel = $locale->text('Salesperson'); - - $form->{selectemployee} = qq|<option>\n|; - for ( @{ $form->{all_employee} } ) { - $form->{selectemployee} .= - qq|<option value="$_->{name}--$_->{id}">$_->{name}\n|; - } - - $form->{selectemployee} =~ -s/(<option value="\Q$form->{employee}--$form->{employee_id}\E")/$1 selected/; - - if ( $form->{db} eq 'vendor' ) { - $gifi = qq| - <th align=right>| . $locale->text('Sub-contract GIFI') . qq|</th> - <td><input name=gifi_accno size=9 value="$form->{gifi_accno}"></td> -|; - $employeelabel = $locale->text('Employee'); - } - - if ( @{ $form->{all_employee} } ) { - $employee = qq| - <th align=right>$employeelabel</th>|; - - if ( $myconfig{role} ne 'user' || !$form->{id} ) { - $employee .= qq| - <td><select name=employee>$form->{selectemployee}</select></td> -|; - } - else { - $employee .= qq| - <td>$form->{employee}</td> - <input type=hidden name=employee value="$form->{employee}--$form->{employee_id}">|; + $form->{selectlanguage} = { + name => 'language', + options => [{text => '', value => ''}], + }; + push @{$form->{selectlanguage}{options}}, { + text => $_->{description}, + value => "$_->{description}--$_->{code}", + } foreach @{$form->{all_language}}; + $form->{selectlangauge}{default_values} = + "$form->{language}--$form->{language_code}"; + } + + $form->{selectemployee} = { + name => 'employee', + options => [{text => '', value => ''}], + default_values => "$form->{employee}--$form->{employee_id}", + }; + push @{$form->{selectemployee}{options}}, { + text => $_->{name}, + value => "$_->{name}--$_->{id}", + } foreach @{$form->{all_employee}}; + + if (ref $form->{all_employee} eq 'ARRAY') { + if ( $myconfig{role} eq 'user' && $form->{id} ) { + $hiddens{employee} = "$form->{employee}--$form->{employee_id}"; } } @@ -1415,194 +1346,8 @@ s/(<option value="\Q$form->{employee}--$form->{employee_id}\E")/$1 selected/; # $locale->text('Vendor Number') $label = ucfirst $form->{db}; + $form->{label} = $label; $form->{title} = $locale->text("$form->{title} $label"); - - $form->header; - - print qq| -<body> - -<form method=post action=$form->{script}> - -<table width=100%> - <tr> - <th class=listtop>$form->{title}</th> - </tr> - <tr height="5"></tr> - <tr> - <td> - <table width=100%> - <tr valign=top> - <td width=50%> - <table width=100%> - <tr class=listheading> - <th class=listheading colspan=2 width=50%>| - . $locale->text('Billing Address') - . qq|</th> - <tr> - <th align=right nowrap>| . $locale->text( $label . ' Number' ) . qq|</th> - <td><input name="$form->{db}number" size=35 maxlength=32 value="$form->{"$form->{db}number"}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Company Name') . qq|</th> - <td><input name=name size=35 maxlength=64 value="$form->{name}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Address') . qq|</th> - <td><input name=address1 size=35 maxlength=32 value="$form->{address1}"></td> - </tr> - <tr> - <th></th> - <td><input name=address2 size=35 maxlength=32 value="$form->{address2}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('City') . qq|</th> - <td><input name=city size=35 maxlength=32 value="$form->{city}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('State/Province') . qq|</th> - <td><input name=state size=35 maxlength=32 value="$form->{state}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Zip/Postal Code') . qq|</th> - <td><input name=zipcode size=10 maxlength=10 value="$form->{zipcode}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Country') . qq|</th> - <td><input name=country size=35 maxlength=32 value="$form->{country}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Contact') . qq|</th> - <td><input name=contact size=35 maxlength=64 value="$form->{contact}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Phone') . qq|</th> - <td><input name=phone size=20 maxlength=20 value="$form->{phone}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Fax') . qq|</th> - <td><input name=fax size=20 maxlength=20 value="$form->{fax}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('E-mail') . qq|</th> - <td><input name=email size=35 value="$form->{email}"></td> - </tr> - <tr> - <th align=right nowrap>| . $locale->text('Cc') . qq|</th> - <td><input name=cc size=35 value="$form->{cc}"></td> - </tr> - $bcc - </table> - </td> - <td width=50%> - <table width=100%> - <tr> - <th class=listheading colspan=2>| - . $locale->text('Shipping Address') - . qq|</th> - </tr> - <tr> - <td><input name=none size=35 value=| . ( "=" x 35 ) . qq|></td> - </tr> - <tr> - <td><input name=shiptoname size=35 maxlength=64 value="$form->{shiptoname}"></td> - </tr> - <tr> - <td><input name=shiptoaddress1 size=35 maxlength=32 value="$form->{shiptoaddress1}"></td> - </tr> - <tr> - <td><input name=shiptoaddress2 size=35 maxlength=32 value="$form->{shiptoaddress2}"></td> - </tr> - <tr> - <td><input name=shiptocity size=35 maxlength=32 value="$form->{shiptocity}"></td> - </tr> - <tr> - <td><input name=shiptostate size=35 maxlength=32 value="$form->{shiptostate}"></td> - </tr> - <tr> - <td><input name=shiptozipcode size=10 maxlength=10 value="$form->{shiptozipcode}"></td> - </tr> - <tr> - <td><input name=shiptocountry size=35 maxlength=32 value="$form->{shiptocountry}"></td> - </tr> - <tr> - <td><input name=shiptocontact size=35 maxlength=64 value="$form->{shiptocontact}"></td> - </tr> - <tr> - <td><input name=shiptophone size=20 maxlength=20 value="$form->{shiptophone}"></td> - </tr> - <tr> - <td><input name=shiptofax size=20 maxlength=20 value="$form->{shiptofax}"></td> - </tr> - <tr> - <td><input name=shiptoemail size=35 value="$form->{shiptoemail}"></td> - </tr> - </table> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <td> - <table> - $tax - <tr> - <th align=right>| . $locale->text('Startdate') . qq|</th> - <td><input class="date" name=startdate size=11 title="$myconfig{dateformat}" value=$form->{startdate}></td> - <th align=right>| . $locale->text('Enddate') . qq|</th> - <td><input class="date" name=enddate size=11 title="$myconfig{dateformat}" value=$form->{enddate}></td> - </tr> - <tr> - <th align=right>| . $locale->text('Credit Limit') . qq|</th> - <td><input name=creditlimit size=9 value="$form->{creditlimit}"></td> - <th align=right>| . $locale->text('Terms') . qq|</th> - <td><input name=terms size=2 value="$form->{terms}"> <b>| - . $locale->text('days') - . qq|</b></td> - <th align=right>| . $locale->text('Discount') . qq|</th> - <td><input name=discount size=4 value="$form->{discount}"> - <b>%</b></td> - </tr> - <tr> - <th align=right>| . $locale->text('Tax Number / SSN') . qq|</th> - <td><input name=taxnumber size=20 value="$form->{taxnumber}"></td> - $gifi - <th align=right>| . $locale->text('SIC') . qq|</th> - <td><input name=sic_code size=6 maxlength=6 value="$form->{sic_code}"></td> - </tr> - <tr> - $typeofbusiness - <th align=right>| . $locale->text('BIC') . qq|</th> - <td><input name=bic size=11 maxlength=11 value="$form->{bic}"></td> - <th align=right>| . $locale->text('IBAN') . qq|</th> - <td><input name=iban size=24 maxlength=34 value="$form->{iban}"></td> - </tr> - <tr> - $pricegroup - $lang - $currency - </tr> - <tr valign=top> - $employee - <td colspan=4> - <table> - <tr valign=top> - <th align=left nowrap>| . $locale->text('Notes') . qq|</th> - <td><textarea name=notes rows=3 cols=40 wrap=soft>$form->{notes}</textarea></td> - </tr> - </table> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <td><hr size=3 noshade></td> - </tr> -</table> -|; - } sub form_footer { @@ -1621,6 +1366,9 @@ sub form_footer { # type=submit $locale->text('Delete') # type=submit $locale->text('POS') + my %hiddens; + my @buttons; + %button = ( 'save' => { ndx => 1, key => 'S', value => $locale->text('Save') }, 'save_as_new' => @@ -1646,73 +1394,73 @@ sub form_footer { 'delete' => { ndx => 17, key => 'D', value => $locale->text('Delete') }, ); - %a = (); + my %blist = (); if ( $form->{db} eq 'customer' ) { if ( $myconfig{acs} !~ /AR--Customers--Add Customer/ ) { - $a{'save'} = 1; + $blist{'save'} = 1; if ( $form->{id} ) { - $a{'save_as_new'} = 1; + $blist{'save_as_new'} = 1; if ( $form->{status} eq 'orphaned' ) { - $a{'delete'} = 1; + $blist{'delete'} = 1; } } } if ( $myconfig{acs} !~ /AR--AR/ ) { if ( $myconfig{acs} !~ /AR--Add Transaction/ ) { - $a{'ar_transaction'} = 1; + $blist{'ar_transaction'} = 1; } if ( $myconfig{acs} !~ /AR--Sales Invoice/ ) { - $a{'sales_invoice'} = 1; + $blist{'sales_invoice'} = 1; } } if ( $myconfig{acs} !~ /POS--POS/ ) { if ( $myconfig{acs} !~ /POS--Sale/ ) { - $a{'pos'} = 1; + $blist{'pos'} = 1; } } if ( $myconfig{acs} !~ /Order Entry--Order Entry/ ) { if ( $myconfig{acs} !~ /Order Entry--Sales Order/ ) { - $a{'sales_order'} = 1; + $blist{'sales_order'} = 1; } } if ( $myconfig{acs} !~ /Quotations--Quotations/ ) { if ( $myconfig{acs} !~ /Quotations--Quotation/ ) { - $a{'quotation'} = 1; + $blist{'quotation'} = 1; } } } if ( $form->{db} eq 'vendor' ) { if ( $myconfig{acs} !~ /AP--Vendors--Add Vendor/ ) { - $a{'save'} = 1; + $blist{'save'} = 1; if ( $form->{id} ) { - $a{'save_as_new'} = 1; + $blist{'save_as_new'} = 1; if ( $form->{status} eq 'orphaned' ) { - $a{'delete'} = 1; + $blist{'delete'} = 1; } } } if ( $myconfig{acs} !~ /AP--AP/ ) { if ( $myconfig{acs} !~ /AP--Add Transaction/ ) { - $a{'ap_transaction'} = 1; + $blist{'ap_transaction'} = 1; } if ( $myconfig{acs} !~ /AP--Vendor Invoice/ ) { - $a{'vendor_invoice'} = 1; + $blist{'vendor_invoice'} = 1; } } if ( $myconfig{acs} !~ /Order Entry--Order Entry/ ) { if ( $myconfig{acs} !~ /Order Entry--Purchase Order/ ) { - $a{'purchase_order'} = 1; + $blist{'purchase_order'} = 1; } } if ( $myconfig{acs} !~ /Quotations--Quotations/ ) { if ( $myconfig{acs} !~ /Quotations--RFQ/ ) { - $a{'rfq'} = 1; + $blist{'rfq'} = 1; } } } @@ -1721,30 +1469,43 @@ sub form_footer { $myconfig{acs} =~ s/(Goods & Services--)Add (Service|Assembly).*;/$1--Add Part/g; if ( $myconfig{acs} !~ /Goods & Services--Add Part/ ) { - $a{'pricelist'} = 1; + $blist{'pricelist'} = 1; } } - $form->hide_form(qw(id taxaccounts path login sessionid callback db)); + $hiddens{$_} = $form->{$_} foreach + qw(id taxaccounts path login sessionid callback db); - for ( keys %button ) { delete $button{$_} if !$a{$_} } + for ( keys %button ) { delete $button{$_} if !$blist{$_} } for ( sort { $button{$a}->{ndx} <=> $button{$b}->{ndx} } keys %button ) { - $form->print_button( \%button, $_ ); - } - - if ( $form->{lynx} ) { - require "bin/menu.pl"; - &menubar; + push @buttons, { + name => 'action', + value => $_, + accesskey => $button{$_}{key}, + title => "$button{$name}{value} [Alt-$button{$_}{key}]", + text => $button{$_}{value}, + }; } - print qq| - - </form> - -</body> -</html> -|; +##SC: Temporary removal +## if ( $form->{lynx} ) { +## require "bin/menu.pl"; +## &menubar; +## } + $form->{dbnumber} = "$form->{db}number"; + my $template = LedgerSMB::Template->new_UI( + user => \%myconfig, + locale => $locale, + template => 'ct-form', + ); + $template->render({ + form => $form, + user => \%myconfig, + hiddens => \%hiddens, + buttons => \@buttons, + options => \@options, + }); } sub pricelist { @@ -1924,10 +1685,12 @@ sub vendor_pricelist { sub display_pricelist { - &pricelist_header; + my %hiddens; + &pricelist_header(\%hiddens); delete $form->{action}; $form->hide_form; - &pricelist_footer; + $hiddens{$_} = $form->{$_} foreach sort keys %$form; + &pricelist_footer(\%hiddens); } |