Revision 4ecb8321
Von Jan Büren vor etwa 10 Jahren hinzugefügt
SL/Controller/DeliveryPlan.pm | ||
---|---|---|
26 | 26 |
not_shipped_qty => t8('not shipped'), |
27 | 27 |
ordnumber => t8('Order'), |
28 | 28 |
customer => t8('Customer'), |
29 |
value_of_goods => t8('Value of goods'), |
|
29 | 30 |
); |
30 | 31 |
|
31 | 32 |
sub action_list { |
... | ... | |
47 | 48 |
my $report = SL::ReportGenerator->new(\%::myconfig, $::form); |
48 | 49 |
$self->{report} = $report; |
49 | 50 |
|
50 |
my @columns = qw(reqdate customer ordnumber partnumber description qty shipped_qty not_shipped_qty delivered_qty); |
|
51 |
my @columns = qw(reqdate customer ordnumber partnumber description qty shipped_qty not_shipped_qty delivered_qty value_of_goods);
|
|
51 | 52 |
my @sortable = qw(reqdate customer ordnumber partnumber description); |
52 | 53 |
|
53 | 54 |
my %column_defs = ( |
... | ... | |
66 | 67 |
obj_link => sub { $self->link_to($_[0]->order->customer) } }, |
67 | 68 |
); |
68 | 69 |
|
70 |
# add value of goods in report |
|
71 |
if ($main::auth->assert('sales_order_edit') && $::instance_conf->get_delivery_plan_show_value_of_goods) { |
|
72 |
$column_defs{value_of_goods} = { sub => sub { $::form->format_amount(\%::myconfig, $_[0]->value_of_goods, 2) . ' ' . $_[0]->taxincluded } }; |
|
73 |
} |
|
69 | 74 |
$column_defs{$_}->{text} = $sort_columns{$_} for keys %column_defs; |
70 | 75 |
|
71 | 76 |
$report->set_options( |
... | ... | |
127 | 132 |
sub delivery_plan_query { |
128 | 133 |
my $employee_id = SL::DB::Manager::Employee->current->id; |
129 | 134 |
my $oe_owner = $_[0]->all_edit_right ? '' : " oe.eployee_id = $employee_id AND"; |
135 |
# check delivered state for delivery_orders (transferred out) if enabled |
|
136 |
my $filter_delivered = $::instance_conf->get_delivery_plan_calculate_transferred_do ? |
|
137 |
"AND (SELECT delivered from delivery_orders where id = doi.delivery_order_id)" : ''; |
|
130 | 138 |
[ |
131 | 139 |
'order.customer_id' => { gt => 0 }, |
132 | 140 |
'order.closed' => 0, |
... | ... | |
155 | 163 |
rl.to_table = 'delivery_orders' AND |
156 | 164 |
rl.to_id = doi.delivery_order_id AND |
157 | 165 |
oi.parts_id = doi.parts_id |
166 |
$filter_delivered |
|
158 | 167 |
) tuples GROUP BY parts_id, trans_id, qty |
159 | 168 |
) partials |
160 | 169 |
LEFT JOIN orderitems oi ON partials.parts_id = oi.parts_id AND partials.trans_id = oi.trans_id |
... | ... | |
162 | 171 |
|
163 | 172 |
UNION ALL |
164 | 173 |
|
165 |
-- 4. since the join over record_links fails for sales_orders wihtout any delivery order
|
|
174 |
-- 4. since the join over record_links fails for sales_orders without any delivery order
|
|
166 | 175 |
-- retrieve those without record_links at all |
167 | 176 |
SELECT oi.id FROM orderitems oi, oe |
168 | 177 |
WHERE |
... | ... | |
207 | 216 |
(oe.quotation = 'f' OR oe.quotation IS NULL) AND NOT oe.closed |
208 | 217 |
) rl |
209 | 218 |
LEFT JOIN delivery_order_items doi ON (rl.to_id = doi.delivery_order_id) |
219 |
WHERE 1 = 1 |
|
220 |
$filter_delivered |
|
210 | 221 |
GROUP BY rl.from_id, doi.parts_id |
211 | 222 |
) agg ON (agg.oid = oi.trans_id AND agg.parts_id = oi.parts_id) |
212 | 223 |
LEFT JOIN oe ON oe.id = oi.trans_id |
Auch abrufbar als: Unified diff
Erweiterung Lieferplan Belege wirklich ausgelagert und Warenverkaufswert (default: aus)
Erweiterung Mandantenkonfiguration im Bereich Lager zum Einschalten von
a) Warenverkaufswert
Falls aktiviert erscheint eine neue Spalte im Lieferplan, die den Wert der
ausgeliefert Waren angibt. Berechnungen mit sellprice sind in der kivi immer
hakelig. Hier die getesten Fälle:
- Rabatt i.O.
- Preisfaktor i.O.
- Steuer im Preis inbegriffen (eine Warnung wird generiert).
b) Lieferplan berücksichtigt die tatsächlich ausgelagerten Lieferscheine
Falls der Firmenprozess zwei Rollen vorgibt (Lieferschein-Ersteller und
Lieferschein-Auslagerer), konnte dies mit dem vorhanden Bericht nicht klar
eingesehen werden. Entsprechend werden bei dieser Funktion nur die tatsächlich
ausgelagerten Lieferscheine berücksichtigt. Achtung: Teilausgelagerte Belege
werden nicht berücksichtigt (keine verknüpfung mit tabelle inventory)