X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/f6158a03b132c6e4c8534752c64d17b3e4805c33..1b9a64fa292f375c82b4af788d0606354bc4e8ff:/bin/mozilla/io.pl diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 5da2dbe59..628a0c235 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -28,7 +28,8 @@ # 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. # ####################################################################### # @@ -604,7 +605,7 @@ sub item_selected { 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); @@ -672,8 +673,8 @@ sub item_selected { 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}; @@ -727,7 +728,7 @@ sub check_form { 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; @@ -760,7 +761,7 @@ sub check_form { $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; @@ -889,6 +890,21 @@ sub order { $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'); @@ -1952,6 +1968,7 @@ sub _make_record_item { } sub _make_record { + Form::disconnect_standard_dbh; my $class = { sales_order => 'Order', purchase_order => 'Order',