-use Test::More tests => 29;
+use Test::More tests => 42;
use strict;
my ($customer, $currency_id, $buchungsgruppe, $employee, $vendor, $taxzone, $buchungsgruppe7, $tax, $tax7,
$unit, @parts);
+my $VISUAL_TEST = 0; # just a sleep to click around
+
sub clear_up {
- foreach (qw(DeliveryOrderItem DeliveryOrder InvoiceItem Invoice Part Customer Vendor Employee Department PaymentTerm)) {
+ foreach (qw(DeliveryOrderItem DeliveryOrder InvoiceItem Invoice Part Customer Vendor Department PaymentTerm)) {
"SL::DB::Manager::${_}"->delete_all(all => 1);
}
+ SL::DB::Manager::Employee->delete_all(where => [ id => 31915 ]);
};
sub reset_state {
'sellprice' => '242.20000',
#'warehouse_id' => 64702,
'weight' => '0.79',
- description => "Nussbaum, Gr.5, Unterfilz weinrot, genietet[[Aufschnittbreite: 11,0, Kernform: US]]\"" ,
+ description => "Pflaumenbaum, Gr.5, Unterfilz weinrot, genietet[[Aufschnittbreite: 11,0, Kernform: US]]\"" ,
buchungsgruppen_id => $buchungsgruppe->id,
unit => $unit->name,
id => 26321,
my $do1 = new_delivery_order('department_id' => 32149,
'donumber' => 'L20199',
'employee_id' => 31915,
- 'intnotes' => 'Achtung: Neue Lieferadresse ab 16.02.2015 in der Carl-von-Ossietzky-Str.32! 13.02.2015/MH
+ 'intnotes' => 'Achtung: Neue Lieferadresse ab 16.02.2015 in der Otto-Merck-Str. 7a! 13.02.2015/MH
- Steinway-Produkte (201...) immer plus 25% dazu rechnen / BK 13.02.2014',
+ Yamaha-Produkte (201...) immer plus 25% dazu rechnen / BK 13.02.2014',
'ordnumber' => 'A16399',
'payment_id' => 11276,
'salesman_id' => 31915,
'cusordnumber' => 'b84da',
'customer_id' => $customer->id,
'id' => 464003,
+ 'notes' => '<ul><li><strong>fett</strong></li><li><strong>und</strong></li><li><strong>mit</strong></li><li><strong>bullets</strong></li><li> </li></ul>',
);
my $do1_item1 = SL::DB::DeliveryOrderItem->new('delivery_order_id' => 464003,
'description' => "Flügel Hammerkopf bestehend aus:
Bass/Diskant 26/65 Stück, Gesamtlänge 80/72, Bohrlänge 56/48
- Nussbaum, Gr.5, Unterfilz weinrot, genietet[[Aufschnittbreite: 11,0, Kernform: US]]",
+ Pflaumenbaum, Gr.5, Unterfilz weinrot, genietet[[Aufschnittbreite: 11,0, Kernform: US]]",
'discount' => '0.25',
'id' => 144736,
'lastcost' => '49.95000',
- 'longdescription' => '',
+ 'longdescription' => "<ol><li>27</li><li>28</li><li>29</li><li><sub>asdf</sub></li><li><sub>asdf</sub></li><li><sup>oben</sup></li></ol><p><s>kommt nicht mehr vor</s></p>",
'marge_price_factor' => 1,
'mtime' => undef,
'ordnumber' => 'A16399',
# test delivery order before any conversion
ok($do1->donumber eq "L20199", 'Delivery Order Number created');
+ok($do1->notes eq '<ul><li><strong>fett</strong></li><li><strong>und</strong></li><li><strong>mit</strong></li><li><strong>bullets</strong></li><li> </li></ul>', "do RichText notes saved");
ok((not $do1->closed) , 'Delivery Order is not closed');
ok($do1_item1->parts_id eq '26321', 'doi linked with part');
ok($do1_item1->qty == 2, 'qty check doi');
-ok($do1_item2->position == 2, 'doi2 position check');
-ok(2 == scalar@{ SL::DB::Manager::DeliveryOrderItem->get_all(where => [ delivery_order_id => $do1->id ]) }, 'two doi linked');
+ok($do1_item1->longdescription eq "<ol><li>27</li><li>28</li><li>29</li><li><sub>asdf</sub></li><li><sub>asdf</sub></li><li><sup>oben</sup></li></ol><p><s>kommt nicht mehr vor</s></p>",
+ "do item1 rich text longdescripition");
+ok ($do1_item2->position == 2, 'doi2 position check');
+ok (2 == scalar@{ SL::DB::Manager::DeliveryOrderItem->get_all(where => [ delivery_order_id => $do1->id ]) }, 'two doi linked');
# convert this do to invoice
my $invoice = $do1->convert_to_invoice();
+sleep (300) if $VISUAL_TEST; # we can do a real visual test via gui login
# test invoice afterwards
ok ($invoice->shipvia eq "DHL, Versand am 06.03.2015, 1 Paket 17,00 kg", "ship via check");
ok ($invoice->shippingpoint eq "Maisenhaus", "shipping point check");
ok ($invoice->ordnumber eq "A16399", "ordnumber check");
ok ($invoice->donumber eq "L20199", "donumber check");
+ok ($invoice->notes eq '<ul><li><strong>fett</strong></li><li><strong>und</strong></li><li><strong>mit</strong></li><li><strong>bullets</strong></li><li> </li></ul>', "do RichText notes saved");
ok(($do1->closed) , 'Delivery Order is closed after conversion');
ok (SL::DB::PaymentTerm->new(id => $invoice->{payment_id})->load->description eq "14Tage 2%Skonto, 30Tage netto", 'payment term description check');
ok(2 == scalar@{ $invoice->invoiceitems }, 'two invoice items linked with invoice');
is(@ {$invoice->items_sorted}[0]->position, 1, "position 1 order correct");
is(@ {$invoice->items_sorted}[1]->position, 2, "position 2 order correct");
+is(@ {$invoice->items_sorted}[0]->longdescription, "<ol><li>27</li><li>28</li><li>29</li><li><sub>asdf</sub></li><li><sub>asdf</sub></li><li><sup>oben</sup></li></ol><p><s>kommt nicht mehr vor</s></p>",
+ "invoice item1 rich text longdescripition");
is(@ {$invoice->items_sorted}[0]->part->partnumber, 'v-519160549', "partnumber 1 correct");
is(@ {$invoice->items_sorted}[1]->part->partnumber, 'v-120160086', "partnumber 2 correct");
is(@ {$invoice->items_sorted}[0]->qty, '2.00000', "pos 1 qty");
# more ideas: check onhand, lastcost (parsed lastcost)
+
+
+# check linked records AND linked items
+
+# we expect something like this in record links:
+# delivery_order_items | 144736 | invoice | 9 | 2015-09-02 16:29:32.362562 | 5
+# delivery_order_items | 144737 | invoice | 10 | 2015-09-02 16:29:32.362562 | 6
+# delivery_orders | 464003 | ar | 5 | 2015-09-02 16:29:32.362562 | 7
+# wir erwarten:
+# verkn�pfter beleg$VAR1 = {
+# 'from_id' => 464003,
+# 'from_table' => 'delivery_orders',
+# 'to_id' => 11,
+# 'to_table' => 'ar'
+# };
+# verkn�pfte positionen$VAR1 = {
+# 'from_id' => 144737,
+# 'from_table' => 'delivery_order_items',
+# 'to_id' => 22,
+# 'to_table' => 'invoice'
+# };
+# $VAR2 = {
+# 'from_id' => 144736,
+# 'from_table' => 'delivery_order_items',
+# 'to_id' => 21,
+# 'to_table' => 'invoice'
+# };
+
+
+
+my @links_record = RecordLinks->get_links('from_table' => 'delivery_orders',
+ 'to_table' => 'ar',
+ 'from_id' => 464003);
+is($links_record[0]->{from_id}, '464003', "record from id check");
+is($links_record[0]->{from_table}, 'delivery_orders', "record from table check");
+is($links_record[0]->{to_table}, 'ar', "record to table check");
+
+foreach (qw(144736 144737)) {
+ my @links_record_item1 = RecordLinks->get_links('from_table' => 'delivery_order_items',
+ 'to_table' => 'invoice',
+ 'from_id' => $_);
+ is($links_record_item1[0]->{from_id}, $_, "record from id check $_");
+ is($links_record_item1[0]->{from_table}, 'delivery_order_items', "record from table check $_");
+ is($links_record_item1[0]->{to_table}, 'invoice', "record to table check $_");
+}
+
+
clear_up();
1;