# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1335, USA.
#
#######################################################################
#
# $locale->text('Nov')
# $locale->text('Dec')
use SL::IS;
-use SL::PE;
use SL::AM;
use Data::Dumper;
my @new_fields =
qw(id partnumber description sellprice listprice inventory_accno
- income_accno expense_accno bin unit weight assembly taxaccounts
+ income_accno expense_accno bin unit weight part_type taxaccounts
partsgroup formel longdescription not_discountable partnotes lastcost
price_factor_id price_factor);
map {
$form->{"${_}_$i"} =
$form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces)
- } qw(sellprice lastcost qty) if $form->{item} ne 'assembly';
- $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100.0) if $form->{item} ne 'assembly';
+ } qw(sellprice lastcost qty) if $form->{part_type} ne 'assembly';
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100.0) if $form->{part_type} ne 'assembly';
delete $form->{nextsub};
my $count = 0;
# remove any makes or model rows
- if ($form->{item} eq 'assembly') {
+ if ($form->{part_type} eq 'assembly') {
# fuer assemblies auskommentiert. seiteneffekte? ;-) wird die woanders benoetigt?
#$form->{sellprice} = 0;
$form->redo_rows(\@flds, \@a, $count, $form->{assembly_rows});
$form->{assembly_rows} = $count;
- } elsif ($form->{item} !~ m{^(?:part|service)$}) {
+ } elsif ($form->{part_type} !~ m{^(?:part|service)$}) {
remove_emptied_rows(1);
$form->{creditremaining} -= &invoicetotal;
$form->{old_salesman_id} = $form->{salesman_id};
delete $form->{$_} foreach (qw(printed emailed queued));
+
+ # When creating a new sales order from a saved sales invoice, reset id,
+ # ordnumber, transdate and deliverydate as we are creating a new order. This
+ # workflow is probably mainly used as a template mechanism for creating new
+ # orders from existing invoices, so we probably don't want to link the items.
+ # Is this order function called anywhere else?
+ # The worksflows in oe already call sales_order and purchase_order in oe, not
+ # this general function which now only seems to be called from saved sales
+ # invoices
+ # Why is ordnumber set to invnumber above, does this ever make sense?
+
+ if ( $form->{script} eq 'is.pl' && $form->{type} eq 'invoice' ) {
+ delete $form->{$_} foreach (qw(ordnumber id transdate deliverydate));
+ };
+
my $buysell;
if ($form->{script} eq 'ir.pl' || $form->{type} eq 'request_quotation') {
$form->{title} = $locale->text('Add Purchase Order');
}
sub _make_record {
+ Form::disconnect_standard_dbh;
my $class = {
sales_order => 'Order',
purchase_order => 'Order',