use SL::DB::Printer;
use SL::SessionFile;
use SL::Template;
+use SL::ARAP;
use SL::Locale::String qw(t8);
use SL::Helper::MassPrintCreatePDF qw(:all);
use SL::Helper::CreatePDF qw(:all);
my $job_obj = $self->{job_obj};
my $db = $job_obj->db;
+ my $dbh = $db->dbh;
$job_obj->set_data(status => CONVERTING_DELIVERY_ORDERS())->save;
my $data = $job_obj->data_as_hash;
eval {
- my $invoice;
my $sales_delivery_order = SL::DB::DeliveryOrder->new(id => $delivery_order_id)->load;
$number = $sales_delivery_order->donumber;
+ my %conversion_params = $data->{transdate} ? ('attributes' => { transdate => $data->{transdate} }) : ();
+ my $invoice = $sales_delivery_order->convert_to_invoice(%conversion_params);
- if (!$db->with_transaction(sub {
- $invoice = $sales_delivery_order->convert_to_invoice(sub { $data->{transdate} ? ('attributes' => { transdate => $data->{transdate} }) :
- undef }->() ) || die $db->error;
- 1;
- })) {
- die $db->error;
+ die $db->error if !$invoice;
+
+ ARAP->close_orders_if_billed('dbh' => $dbh,
+ 'arap_id' => $invoice->id,
+ 'table' => 'ar',);
+
+ # update shop status
+ my @linked_shop_orders = $invoice->linked_records(
+ from => 'ShopOrder',
+ via => [ 'DeliveryOrder', 'Order' ],
+ );
+ #if (scalar @linked_shop_orders[0][0] >= 1){
+ #do update
+ my $shop_order = $linked_shop_orders[0][0];
+ if ($shop_order){
+ require SL::Shop;
+ my $shop_config = SL::DB::Manager::Shop->get_first( query => [ id => $shop_order->shop_id ] );
+ my $shop = SL::Shop->new( config => $shop_config );
+ $shop->connector->set_orderstatus($shop_order->shop_trans_id, "completed");
}
$data->{num_created}++;