Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f5abed86

Von Kivitendo Admin vor etwa 8 Jahren hinzugefügt

  • ID f5abed8644dc069876b3e1cca970cb842fd50ffa
  • Vorgänger 98b64fe1
  • Nachfolger 862bc8ce

$form->{item} nach $form->{part_type} umbenannt

Damit das Feld automatisch dem Datenbanknamen entspricht.

Unterschiede anzeigen:

SL/IC.pm
$form->{lastmtime} = $form->{mtime};
$form->{onhand} *= 1;
die "part needs a part_type" unless $form->{part_type}; # TODO from part_type enum conversion
# part or service item
$form->{item} = $form->{part_type};
if ($form->{item} eq 'assembly') {
if ($form->{part_type} eq 'assembly') {
# retrieve assembly items
$query =
......
my $priceupdate = ', priceupdate = current_date';
if ($form->{id}) {
my $trans_number = SL::TransNumber->new(type => $form->{item}, dbh => $dbh, number => $form->{partnumber}, id => $form->{id});
my $trans_number = SL::TransNumber->new(type => $form->{part_type}, dbh => $dbh, number => $form->{partnumber}, id => $form->{id});
if (!$trans_number->is_unique) {
$::lxdebug->leave_sub;
return 3;
......
# delete makemodel records
do_query($form, $dbh, qq|DELETE FROM makemodel WHERE parts_id = ?|, conv_i($form->{id}));
if ($form->{item} eq 'assembly') {
if ($form->{part_type} eq 'assembly') {
# delete assembly records
do_query($form, $dbh, qq|DELETE FROM assembly WHERE id = ?|, conv_i($form->{id}));
}
......
$priceupdate = '' if (all { $previous_values->{$_} == $form->{$_} } qw(sellprice lastcost listprice));
} else {
my $trans_number = SL::TransNumber->new(type => $form->{item}, dbh => $dbh, number => $form->{partnumber}, save => 1);
my $trans_number = SL::TransNumber->new(type => $form->{part_type}, dbh => $dbh, number => $form->{partnumber}, save => 1);
if ($form->{partnumber} && !$trans_number->is_unique) {
$::lxdebug->leave_sub;
......
$form->{partnumber} ||= $trans_number->create_unique;
($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('id')|);
do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit, part_type) VALUES (?, ?, ?, ?)|, $form->{id}, $form->{partnumber}, $form->{unit}, $form->{item});
do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit, part_type) VALUES (?, ?, ?, ?)|, $form->{id}, $form->{partnumber}, $form->{unit}, $form->{part_type});
$form->{orphaned} = 1;
}
......
}
my ($subq_inventory, $subq_expense, $subq_income);
if ($form->{"item"} eq "part") {
if ($form->{part_type} eq "part") {
$subq_inventory =
qq|(SELECT bg.inventory_accno_id
FROM buchungsgruppen bg
......
$subq_inventory = "NULL";
}
if ($form->{"item"} ne "assembly") {
if ($form->{part_type} ne "assembly") {
$subq_expense =
qq|(SELECT tc.expense_accno_id
FROM taxzone_charts tc
......
$form->{has_sernumber} ? 't' : 'f',
$form->{not_discountable} ? 't' : 'f',
$form->{microfiche},
$form->{item},
$form->{part_type},
conv_i($partsgroup_id),
conv_i($form->{price_factor_id}),
conv_i($form->{id})
......
}
# add assembly records
if ($form->{item} eq 'assembly') {
if ($form->{part_type} eq 'assembly') {
# check additional assembly row
my $i = $form->{assembly_rows};
# if last row is not empty add them
bin/mozilla/ic.pl
$auth->assert('part_service_assembly_edit');
my $title = 'Add ' . ucfirst $form->{item};
my $title = 'Add ' . ucfirst $form->{part_type};
$form->{title} = $locale->text($title);
$form->{callback} = "$form->{script}?action=add&item=$form->{item}" unless $form->{callback};
$form->{callback} = "$form->{script}?action=add&part_type=$form->{part_type}" unless $form->{callback};
$form->{unit_changeable} = 1;
IC->get_pricegroups(\%myconfig, \%$form);
......
$form->{"original_partnumber"} = $form->{"partnumber"};
my $title = 'Edit ' . ucfirst $form->{item};
my $title = 'Edit ' . ucfirst $form->{part_type};
$form->{title} = $locale->text($title);
&link_part;
......
map({ $form->{selectcurrency} .= "<option>$_\n" } $::form->get_all_currencies());
# parts and assemblies have the same links
my $item = $form->{item};
if ($form->{item} eq 'assembly') {
my $item = $form->{part_type};
if ($form->{part_type} eq 'assembly') {
$item = 'part';
}
......
}
chop $form->{taxaccounts};
if (($form->{item} eq "part") || ($form->{item} eq "assembly")) {
if (($form->{part_type} eq "part") || ($form->{part_type} eq "assembly")) {
$form->{selectIC_income} = $form->{selectIC_sale};
$form->{selectIC_expense} = $form->{selectIC_cogs};
$form->{IC_income} = $form->{IC_sale};
......
map { $form->{selectpartsgroup} .= qq|<option value="$_->{partsgroup}--$_->{id}">$_->{partsgroup}\n| } @{ $form->{all_partsgroup} };
}
if ($form->{item} eq 'assembly') {
if ($form->{part_type} eq 'assembly') {
foreach my $i (1 .. $form->{assembly_rows}) {
if ($form->{"partsgroup_id_$i"}) {
......
$form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1;
$form->{notes_rows} = max 4, $form->numtextrows($form->{notes}, 40), $form->numtextrows($form->{formel}, 40);
map { $form->{"is_$_"} = ($form->{item} eq $_) } qw(part service assembly);
map { $form->{"is_$_"} = ($form->{part_type} eq $_) } qw(part service assembly);
map { $form->{$_} =~ s/"/&quot;/g; } qw(unit);
$form->get_lists('price_factors' => 'ALL_PRICE_FACTORS',
......
IC->retrieve_buchungsgruppen(\%myconfig, $form);
@{ $form->{BUCHUNGSGRUPPEN} } = grep { $_->{id} eq $form->{buchungsgruppen_id} || ($form->{id} && $form->{orphaned}) || !$form->{id} } @{ $form->{BUCHUNGSGRUPPEN} };
if (($form->{partnumber} ne '') && !SL::TransNumber->new(number => $form->{partnumber}, type => $form->{item}, id => $form->{id})->is_unique) {
if (($form->{partnumber} ne '') && !SL::TransNumber->new(number => $form->{partnumber}, type => $form->{part_type}, id => $form->{id})->is_unique) {
flash('info', $::locale->text('This partnumber is not unique. You should change it.'));
}
......
# parse pricegroups. and no, don't rely on check_form for this...
map { $form->{"price_$_"} = $form->parse_amount(\%myconfig, $form->{"price_$_"}) } 1 .. $form->{price_rows};
unless ($form->{item} eq 'assembly') {
unless ($form->{part_type} eq 'assembly') {
# for assemblies check_form will parse sellprice and listprice, but not for parts or services
$form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) for qw(sellprice listprice ve gv);
};
if ($form->{item} eq 'part') {
if ($form->{part_type} eq 'part') {
$form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) for qw(weight rop);
}
# same for makemodel lastcosts
# but parse_amount not necessary for assembly component lastcosts
unless ($form->{item} eq "assembly") {
unless ($form->{part_type} eq "assembly") {
map { $form->{"lastcost_$_"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$_"}) } 1 .. $form->{"makemodel_rows"};
$form->{lastcost} = $form->parse_amount(\%myconfig, $form->{lastcost});
}
if ($form->{item} eq "assembly") {
if ($form->{part_type} eq "assembly") {
my $i = $form->{assembly_rows};
# if last row is empty check the form otherwise retrieve item
......
}
}
} elsif (($form->{item} eq 'part') || ($form->{item} eq 'service')) {
} elsif (($form->{part_type} eq 'part') || ($form->{part_type} eq 'service')) {
&check_form;
}
......
my ($parts_id, %newform, $amount, $callback);
# check if there is a part number - commented out, cause there is an automatic allocation of numbers
# $form->isblank("partnumber", $locale->text(ucfirst $form->{item}." Part Number missing!"));
# $form->isblank("partnumber", $locale->text(ucfirst $form->{part_type}." Part Number missing!"));
# check if there is a description
$form->isblank("description", $locale->text("Part Description missing!"));
$form->error($locale->text("Inventory quantity must be zero before you can set this $form->{item} obsolete!"))
if $form->{obsolete} && $form->{onhand} * 1 && $form->{item} ne 'service';
$form->error($locale->text("Inventory quantity must be zero before you can set this $form->{part_type} obsolete!"))
if $form->{obsolete} && $form->{onhand} * 1 && $form->{part_type} ne 'service';
if (!$form->{buchungsgruppen_id}) {
$form->error($locale->text("Parts must have an entry type.") . " " .
......
$::auth->restore_form_from_session($newform{previousform}, form => $form);
$form->{taxaccounts} = $newform{taxaccount2};
if ($form->{item} eq 'assembly') {
if ($form->{part_type} eq 'assembly') {
# undo number formatting
map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
......
form_header();
price_row($::form->{price_rows});
makemodel_row(++$::form->{makemodel_rows}) if $::form->{item} =~ /^(part|service)$/;
assembly_row(++$::form->{assembly_rows}) if $::form->{item} eq 'assembly';
makemodel_row(++$::form->{makemodel_rows}) if $::form->{part_type} =~ /^(part|service)$/;
assembly_row(++$::form->{assembly_rows}) if $::form->{part_type} eq 'assembly';
form_footer();
bin/mozilla/io.pl
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;
menus/user/00-erp.yaml
module: ic.pl
params:
action: add
item: part
part_type: part
- parent: master_data
id: master_data_add_service
name: Add Service
......
module: ic.pl
params:
action: add
item: service
part_type: service
- parent: master_data
id: master_data_add_assembly
name: Add Assembly
......
module: ic.pl
params:
action: add
item: assembly
part_type: assembly
- parent: master_data
id: master_data_add_project
name: Add Project
templates/webpages/generic/new_item.html
<p>
<input class="radio" type="radio" name="item" value="part" checked>&nbsp;[% 'Part' | $T8 %]<br>
<input class="radio" type="radio" name="item" value="service">&nbsp;[% 'Service' | $T8 %]
<input class="radio" type="radio" name="part_type" value="part" checked>&nbsp;[% 'Part' | $T8 %]<br>
<input class="radio" type="radio" name="part_type" value="service">&nbsp;[% 'Service' | $T8 %]
<p>
[%- FOREACH var = HIDDENS %]
templates/webpages/ic/form_header.html
<form method="post" name="ic" action="[% script %]">
<input name="id" type="hidden" value="[% HTML.escape(id) %]">
<input name="item" type="hidden" value="[% HTML.escape(item) %]">
<input name="part_type" type="hidden" value="[% HTML.escape(part_type) %]">
<input name="title" type="hidden" value="[% HTML.escape(title) %]">
<input name="makemodel" type="hidden" value="[% HTML.escape(makemodel) %]">
<input name="onhand" type="hidden" value="[% HTML.escape(onhand) %]">

Auch abrufbar als: Unified diff