Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 50dba889

Von Werner Hahn vor mehr als 7 Jahren hinzugefügt

  • ID 50dba8898901ded872eb52cb7452ff8fc508f29b
  • Vorgänger 75b1036d
  • Nachfolger d142418a

Shopmodul: ShopOrder: Massenübernahme von Shopaufträgen

Webshop:: ShopOrderMassTransfer

Webshop: ShopOrder

Webshop: ShopOrder BGJ Anzahl Orders und welche in Backgroundjob Data/Info

Webshop: ShopOrder - Bestellung löschen bzw. auf ungültig setzten

Conflicts:
SL/Controller/ShopOrder.pm
templates/webpages/shop_order/list.html

Webshop: ShopOrder - Anzahl der Positionen wird mit in die Stammdaten der Bestellung übernommen.

Conflicts:
SL/DB/ShopOrder.pm

Conflicts:
SL/ShopConnector/Shopware.pm

Webshop: Shoporder BGJ in bearbeitung

Conflicts:
SL/BackgroundJob/ShopOrderMassTransfer.pm
templates/webpages/shop_order/_transfer_status.html

Conflicts:
SL/BackgroundJob/ShopOrderMassTransfer.pm

WebShop: ShopOrder BGJ - Kundenvorschläge groß und kleinschreibung bei abfrage ignorieren
Cvars beim übernehmen der Shopimporte
Bestellbemerkung bzw. Kundenbemerkungen mit in den Auftrag in intnotes
andere fehlende Felder wie active_price_source übernehmen oder einfügen

Conflicts:
SL/ShopConnector/Shopware.pm

Webshop: ShopOrder

Webshop: ShopOrder: css, Kundendaten mit Shoprechnungsdaten überschreiben, löschen Rückgängig, löschen aus der ShopOrder heraus, In den Vorschlägen Link zum Kunden, Kunden mit Auftragssperre in den Vorschlägen kenntlich gemacht für diese können auch von dort keinen Aufträge generiert werden

Conflicts:
css/webshop.css

Conflicts:
css/webshop.css

Webshop: ShopOrder - shop_ordernumber als Kundenbestellnummer in Aufträgen usw. nutzen

Webshop: ShopOrder - TODO comment

Webshop: ShopOrder Abrufen zeigt nur nicht übernommene, Sortierung der Tabelle übernimmt die Datumsfilter.

Conflicts:
templates/webpages/shop_order/list.html

Webshop: ShopOrder - Massenkonvertierung geht wieder

WebShop: ShopOrder Liste Shoporders checkall eingebunden

WebShop: ShopOrder - Historie beim Kundenanlegen, Auftrag übernehmen und Massenauftragsübernahme

Conflicts:
SL/ShopConnector/Shopware.pm

Webshop: ShopOrder

Webshop: ShopOrder - Anlegen/Überschreiben der Kunden-, Rechnungs-, Lieferadresse als/mit Kundenadresse geht wieder

Conflicts:
SL/Controller/ShopOrder.pm

Webshop: ShopOrder - Kundenadresse ausblenden

Webshop: ShopOrder - Shopimport Kundensuche ilike; Anzahl OP's in Webshopliste; Lieferant Name 2 wird mit übertragen

Webshop: ShopOrder - payment_id wird anhand Kunden payment_id an Auftrag übergeben

Webshop: ShopOrder

Webshop: ShopOrder - Liste OPs oder Auftragssperre rot markiert
Filter Obsolete eingebaut
Proposals beim Import verbessert unschäfere Suche

Conflicts:
templates/webpages/shop_order/_transfer_status.html

Webshop: ShopOrder - Vorschläge unschäfere Suche

Webshop: ShopOrder

Conflicts:
SL/ShopConnector/Shopware.pm

Webshop: ShopOrder - BGJ ShopOrderMassTransfer angepasst wg cherry-pick

Conflicts:
SL/BackgroundJob/ShopOrderMassTransfer.pm
SL/Controller/ShopOrder.pm
SL/ShopConnector/Shopware.pm
js/kivi.ShopOrder.js
templates/webpages/shop_order/list.html

Conflicts:
SL/Controller/ShopOrder.pm
SL/DB/ShopOrder.pm
templates/webpages/shop_order/list.html

Unterschiede anzeigen:

SL/BackgroundJob/ShopOrderMassTransfer.pm
use SL::DB::ShopOrder;
use SL::DB::ShopOrderItem;
use SL::DB::Order;
use SL::DB::History;
use SL::DB::DeliveryOrder;
use SL::DB::Inventory;
use Sort::Naturally ();
use constant WAITING_FOR_EXECUTION => 0;
use constant CONVERTING_TO_ORDER => 1;
use constant CONVERTING_TO_DELIVERY_ORDER => 2;
use constant DONE => 3;
#use constant CONVERTING_TO_ORDER => 1;
use constant CONVERTING_TO_DELIVERY_ORDER => 1;
use constant DONE => 2;
# Data format:
# my $data = {
......
my ( $self ) = @_;
my $job_obj = $self->{job_obj};
my $db = $job_obj->db;
my %error_report;
$job_obj->set_data(CONVERTING_TO_DELIVERY_ORDER())->save;
foreach my $shop_order_id (@{ $job_obj->data_as_hash->{shop_order_record_ids} }) {
my $data = $job_obj->data_as_hash;
my $shop_order = SL::DB::ShopOrder->new(id => $shop_order_id)->load;
die "can't find shoporder with id $shop_order_id" unless $shop_order;
$::lxdebug->dump(0, 'WH: CREATE:I ', \$shop_order);
# die "can't find shoporder with id $shop_order_id" unless $shop_order;
#TODO Kundenabfrage so ändern, dass es nicht abricht
unless($shop_order){
push @{ $error_report{$shop_order_id}} }, 'Shoporder not found';
......
my $employee = SL::DB::Manager::Employee->current;
my $items = SL::DB::Manager::ShopOrderItem->get_all( where => [shop_order_id => $shop_order_id],
sort_by => 'partnumber::int' );
$::lxdebug->dump(0, 'WH: CREATE:I ', \$shop_order);
$::lxdebug->dump(0, 'WH: CREATE:II ', \$items);
# check inventory onhand > 0
my $onhand = 0;
# check inventory onhand > 0 and active = 1
my $transferable = 0;
foreach my $item (@$items) {
my $qty = SL::DB::Manager::Part->find_by(partnumber => $item->{partnumber})->onhand; # > 0 ? $onhand = 1 : 0;
$qty >= $item->{quantity} ? $onhand = 1 : 0;
$main::lxdebug->message(0, "WH: STOCK: $qty -- $onhand");
last if $onhand == 0;
my $part = SL::DB::Manager::Part->find_by(partnumber => $item->{partnumber});
# TODO: qty direkt aus dem Lager holen und nicht von onhand
$transferable = $part->{onhand} >= $item->{quantity} ? 1 : 0;
$transferable = $part->{active} = 1 ? 1 : 0;
last if $transferable == 0;
}
$main::lxdebug->message(0, "WH:ONHAND: $onhand ");
if ($onhand == 1) {
if ($transferable == 1 && $customer->{order_lock} == 0) {
$shop_order->{shop_order_items} = $items;
$main::lxdebug->dump(0, 'WH: TRANSFER SHOPORDER', \$shop_order);
my $order = $shop_order->convert_to_sales_order(customer => $customer, employee => $employee);
$order->save;
my $snumbers = "ordernumber_" . $order->ordnumber;
SL::DB::History->new(
trans_id => $order->id,
snumbers => $snumbers,
employee_id => SL::DB::Manager::Employee->current->id,
addition => 'SAVED',
what_done => 'Shopimport->Order(MassTransfer)',
)->save();
$shop_order->transferred(1);
$shop_order->transfer_date(DateTime->now_local);
$shop_order->oe_transid($order->id);
$shop_order->save;
$shop_order->link_to_record($order);
$data->{num_created}++;
push @{ $data->{orders_ids} }, $order->id;
push @{ $data->{shop_orders_ids} }, $shop_order->id;
my $delivery_order = $order->convert_to_delivery_order(customer => $customer, employee => $employee);
$delivery_order->save;
my $snumbers = "deliveryordernumber_" . $delivery_order->donumber;
SL::DB::History->new(
trans_id => $delivery_order->id,
snumbers => $snumbers,
employee_id => SL::DB::Manager::Employee->current->id,
addition => 'SAVED',
what_done => 'Shopimport->Order->Deliveryorder(MassTransfer)',
)->save();
$order->link_to_record($delivery_order);
my $delivery_order_items = $delivery_order->{orderitems};
# Lagerentnahme
# entsprechende defaults holen, falls standardlagerplatz verwendet werden soll
$main::lxdebug->dump(0, 'WH: LAGER: ', \$delivery_order_items);
my $test = $::instance_conf->get_transfer_default_use_master_default_bin;
$main::lxdebug->message(0, "WH: TEST $test ");
$main::lxdebug->dump(0, 'WH: KONF ',$::instance_conf);
$main::lxdebug->message(0, "WH:NACH ");
require SL::DB::Inventory;
my $rose_db = SL::DB::Inventory->new->db;
my $dbh = $db->dbh;
......
}
push @errors, @{ $err };
}
$main::lxdebug->dump(0, 'WH: LAGER II ', \@transfers);
$main::lxdebug->dump(0, 'WH: LAGER III ', \@errors);
if (!@errors) {
$delivery_order->delivered(1);
$delivery_order->save;
......
}
}
sub create_delivery_order {
my ( $self ) = @_;
}
sub run {
my ($self, $job_obj) = @_;
$::lxdebug->dump(0, 'WH: RUN: ', \$self);
$self->{job_obj} = $job_obj;
$self->create_order;
SL/Controller/ShopOrder.pm
use parent qw(SL::Controller::Base);
use SL::BackgroundJob::ShopOrderMassTransfer;
use SL::System::TaskServer;
use SL::DB::ShopOrder;
use SL::DB::ShopOrderItem;
use SL::DB::Shop;
use SL::DB::History;
use SL::Shop;
use SL::Presenter;
use SL::Helper::Flash;
use SL::Locale::String;
use SL::Controller::Helper::ParseFilter;
use Rose::Object::MakeMethods::Generic
(
'scalar --get_set_init' => [ qw(shop_order transferred) ],
'scalar --get_set_init' => [ qw(shop_order transferred js) ],
);
__PACKAGE__->run_before('setup');
use Data::Dumper;
sub action_get_orders {
......
sub action_list {
my ( $self ) = @_;
$::lxdebug->dump(0, "WH: LIST ", \$::form);
my %filter = ($::form->{filter} ? parse_filter($::form->{filter}) : query => [ transferred => 0 ]);
my %filter = ($::form->{filter} ? parse_filter($::form->{filter}) : query => [ transferred => 0, obsolete => 0 ]);
my $transferred = $::form->{filter}->{transferred_eq_ignore_empty} ne '' ? $::form->{filter}->{transferred_eq_ignore_empty} : '';
#$::lxdebug->dump(0, "WH: FILTER ", $::form->{filter}->{_eq_ignore_empty}." - ".$transferred);
#$::lxdebug->dump(0, "WH: FILTER2 ", \%filter);
......
$sort_by .=$::form->{sort_dir} ? ' DESC' : ' ASC';
my $shop_orders = SL::DB::Manager::ShopOrder->get_all( %filter, sort_by => $sort_by,
with_objects => ['shop_order_items'],
with_objects => ['customer'],
);
$::lxdebug->dump(0, "WH: IMPORTS ", \$shop_orders);
foreach my $shop_order(@{ $shop_orders }){
my $open_invoices = SL::DB::Manager::Invoice->get_all_count(
query => [customer_id => $shop_order->{kivi_customer_id},
paid => {lt_sql => 'amount'},
],
);
$shop_order->{open_invoices} = $open_invoices;
}
$main::lxdebug->dump(0, 'WH:SHOPORDER ',\$shop_orders);
$self->render('shop_order/list',
title => t8('ShopOrders'),
SHOPORDERS => $shop_orders,
......
sub action_show {
my ( $self ) = @_;
my $id = $::form->{id} || {};
my $shop_order = SL::DB::Manager::ShopOrder->find_by( id => $id );
my $shop_order = SL::DB::Manager::ShopOrder->get_all(query => [ id => $id ],
with_objects => ['customer'], )->[0];
die "can't find shoporder with id $id" unless $shop_order;
# the different importaddresscheck if there complete in the customer table to prevent duplicats inserts
......
####
my $lastname = $shop_order->customer_lastname;
my $proposals = SL::DB::Manager::Customer->get_all(
where => [
or => [
and => [ # when matching names also match zipcode
or => [ 'name' => { like => "%$lastname%"},
'name' => { like => $shop_order->customer_company },
or => [ 'name' => { ilike => "%$lastname%"},
'name' => { ilike => $shop_order->customer_company },
],
'zipcode' => { like => $shop_order->customer_zipcode },
'zipcode' => { ilike => $shop_order->customer_zipcode },
],
or => [ 'email' => { like => $shop_order->customer_email } ],
and => [ # check for street and zipcode
and => [ 'street' => { ilike => "%".$shop_order->customer_street."%" },
'zipcode' => { ilike => $shop_order->customer_zipcode },
or => [ 'email' => { ilike => $shop_order->customer_email } ],
],
],
);
$main::lxdebug->dump(0, 'WH:PROP ',\$proposals);
$self->render('shop_order/show',
title => t8('Shoporder'),
......
}
sub action_delete_order {
my ( $self ) = @_;
$self->shop_order->obsolete(1);
$self->shop_order->save;
$self->redirect_to(controller => "ShopOrder", action => 'list', filter => { 'transferred:eq_ignore_empty' => 0 });
}
sub action_valid_order {
my ( $self ) = @_;
$self->shop_order->obsolete(0);
$self->shop_order->save;
$self->redirect_to(controller => "ShopOrder", action => 'show', id => $self->shop_order->id);
}
sub action_transfer {
my ( $self ) = @_;
my $customer = SL::DB::Manager::Customer->find_by(id => $::form->{customer});
die "Can't find customer" unless $customer;
my $employee = SL::DB::Manager::Employee->current;
# $self->shop_order inits via $::form->{import_id}
die "Can't load shop_order form form->import_id" unless $self->shop_order;
my $order = $self->shop_order->convert_to_sales_order(customer => $customer, employee => $employee);
$order->save;
my $snumbers = "ordernumber_" . $order->ordnumber;
SL::DB::History->new(
trans_id => $order->id,
snumbers => $snumbers,
employee_id => SL::DB::Manager::Employee->current->id,
addition => 'SAVED',
what_done => 'Shopimport -> Order',
)->save();
foreach my $item(@{ $order->orderitems }){
$item->parse_custom_variable_values->save;
$item->{custom_variables} = \@{ $item->cvars_by_config };
$item->save;
}
$self->shop_order->transferred(1);
$self->shop_order->transfer_date(DateTime->now_local);
$self->shop_order->oe_transid($order->id);
......
$self->redirect_to(controller => "oe.pl", action => 'edit', type => 'sales_order', vc => 'customer', id => $order->id);
}
sub action_mass_transfer {
my ($self) = @_;
my @shop_orders = @{ $::form->{id} || [] };
my $job = SL::DB::BackgroundJob->new(
type => 'once',
active => 1,
package_name => 'ShopOrderMassTransfer',
)->set_data(
shop_order_record_ids => [ @shop_orders ],
num_order_created => 0,
num_delivery_order_created => 0,
status => SL::BackgroundJob::ShopOrderMassTransfer->WAITING_FOR_EXECUTION(),
conversation_errors => [ ],
)->update_next_run_at;
SL::System::TaskServer->new->wake_up;
my $html = $self->render('shop_order/_transfer_status', { output => 0 }, job => $job);
$self->js
->html('#status_mass_transfer', $html)
->run('kivi.ShopOrder.massTransferStarted')
->render;
}
sub action_transfer_status {
my ($self) = @_;
my $job = SL::DB::BackgroundJob->new(id => $::form->{job_id})->load;
my $html = $self->render('shop_order/_transfer_status', { output => 0 }, job => $job);
$self->js->html('#status_mass_transfer', $html);
$self->js->run('kivi.ShopOrder.massTransferFinished') if $job->data_as_hash->{status} == SL::BackgroundJob::ShopOrderMassTransfer->DONE();
$self->js->render;
}
sub action_apply_customer {
my ( $self ) = @_;
$::lxdebug->dump(0, "WH: CUSTOMER ", \$::form);
my $what = $::form->{create_customer}; # billing, customer or delivery
$::lxdebug->dump(0, "WH: WHAT ",$what);
my %address = ( 'name' => $::form->{$what.'_name'},
'street' => $::form->{$what.'_street'},
'zipcode' => $::form->{$what.'_zipcode'},
'city' => $::form->{$what.'_city'},
'email' => $::form->{$what.'_email'},
'country' => $::form->{$what.'_country'},
'greeting' => $::form->{$what.'_greeting'},
'taxzone_id' => 4, # hardcoded, use default taxzone instead
'currency' => 1, # hardcoded
my ( $self, %params ) = @_;
my $shop = SL::DB::Manager::Shop->find_by( id => $self->shop_order->shop_id );
my $what = $::form->{create_customer}; # new from billing, customer or delivery address
my %address = ( 'name' => $::form->{$what.'_name'},
'department_1' => $::form->{$what.'_company'},
'department_2' => $::form->{$what.'_department'},
'street' => $::form->{$what.'_street'},
'zipcode' => $::form->{$what.'_zipcode'},
'city' => $::form->{$what.'_city'},
'email' => $::form->{$what.'_email'},
'country' => $::form->{$what.'_country'},
'phone' => $::form->{$what.'_phone'},
'email' => $::form->{$what.'_email'},
'greeting' => $::form->{$what.'_greeting'},
# TODO in shopconfig
'taxincluded_checked' => $shop->pricetype eq "brutto" ? 1 : 0,
'taxincluded' => $shop->pricetype eq "brutto" ? 1 : 0,
'klass' => (split '\/',$shop->price_source)[1],
'taxzone_id' => $shop->taxzone_id,
'currency' => 1, # TODO hardcoded
'payment_id' => 7345,# TODO hardcoded
);
$address{contact} = ($address{name} ne $::form->{$what.'_firstname'} . " " . $::form->{$what.'_lastname'} ? $::form->{$what.'_firstname'} . " " . $::form->{$what.'_lastname'} : '');
$::lxdebug->dump(0, "WH: ADDRESS ",\%address);
my $customer = SL::DB::Customer->new(%address);
$customer->save;
my $customer;
if($::form->{cv_id}){
$customer = SL::DB::Customer->new(id => $::form->{cv_id})->load;
$customer->assign_attributes(%address);
$customer->save;
}else{
$customer = SL::DB::Customer->new(%address);
$customer->save;
}
my $snumbers = "customernumber_" . $customer->customernumber;
SL::DB::History->new(
trans_id => $customer->id,
snumbers => $snumbers,
employee_id => SL::DB::Manager::Employee->current->id,
addition => 'SAVED',
what_done => 'Shopimport',
)->save();
if($::form->{$what.'_country'} ne "Deutschland") { # hardcoded
$self->redirect_to(controller => "controller.pl", action => 'CustomerVendor/edit', id => $customer->id);
}else{
$self->redirect_to(action => 'show', id => $::form->{import_id});
}
}
sub setup {
my ($self) = @_;
$::auth->assert('invoice_edit');
$::request->layout->use_javascript("${_}.js") for qw(kivi.ShopOrder);
}
#
# Helper
#
......
my ($self,%address) = @_;
my $addressdata = SL::DB::Manager::Customer->get_all(
query => [
or => [ 'name' => { like => "%$address{'name'}%" }, 'name' => { like => $address{'company'} }, ],
'street' => { like => $address{'street'} },
'zipcode'=> { like => $address{'zipcode'} },
'city' => { like => $address{'city'} },
or => [ 'name' => { ilike => "%$address{'name'}%" }, 'name' => { ilike => $address{'company'} }, ],
'street' => { ilike => $address{'street'} },
'zipcode'=> { ilike => $address{'zipcode'} },
'city' => { ilike => $address{'city'} },
]);
$::lxdebug->dump(0, "WH: CUSTOMER ", \$addressdata);
return @{$addressdata}[0];
SL/DB/MetaSetup/ShopOrder.pm
kivi_customer_id => { type => 'integer' },
mtime => { type => 'timestamp' },
netamount => { type => 'numeric', precision => 15, scale => 5 },
obsolete => { type => 'boolean', default => 'false', not_null => 1 },
oe_transid => { type => 'integer' },
order_date => { type => 'timestamp' },
payment_description => { type => 'text' },
payment_id => { type => 'integer' },
positions => { type => 'integer' },
remote_ip => { type => 'text' },
sepa_account_holder => { type => 'text' },
sepa_bic => { type => 'text' },
SL/DB/ShopOrder.pm
column_map => { id => 'shop_order_id' },
type => 'one to many',
},
customer => {
class => 'SL::DB::Customer',
column_map => { kivi_customer_id => 'id' },
type => 'one to many',
},
shop => {
class => 'SL::DB::Shop',
column_map => { shop_id => 'id' },
type => 'one to many',
},
);
__PACKAGE__->meta->initialize;
......
require SL::DB::Part;
require SL::DB::Shipto;
my @order_items;
foreach my $items (@{$self->shop_order_items}) {
my $item = SL::DB::OrderItem->new;
my $part = SL::DB::Manager::Part->find_by( partnumber => $items->{partnumber} );
$item->assign_attributes(
parts_id => $part->id,
description => $items->description,
qty => $items->quantity,
sellprice => $items->price,
unit => $part->unit,
);
push(@order_items,$item);
}
my @items = map{
my $part = SL::DB::Part->new( partnumber => $_->partnumber )->load;
my @cvars = map { ($_->config->name => { value => $_->value_as_text, is_valid => $_->is_valid }) } @{ $part->cvars_by_config } ;
my $current_order_item =
SL::DB::OrderItem->new(parts_id => $part->id,
description => $part->description,
qty => $_->quantity,
sellprice => $_->price,
unit => $part->unit,
position => $_->position,
active_price_source => ( $_->price == 0 ? "" : "pricegroup/908"), #TODO Hardcoded
);
}@{ $self->shop_order_items };
my $shipto_id;
if ($self->{billing_firstname} ne $self->{delivery_firstname} || $self->{billing_lastname} ne $self->{delivery_lastname} || $self->{billing_city} ne $self->{delivery_city} || $self->{billing_street} ne $self->{delivery_street}) {
if(my $address = SL::DB::Manager::Shipto->find_by( shiptoname => $self->{delivery_firstname} . " " . $self->{delivery_lastname},
if(my $address = SL::DB::Manager::Shipto->find_by( shiptoname => $self->{delivery_firstname} . " " . $self->{delivery_lastname},
shiptostreet => $self->{delivery_street},
shiptocity => $self->{delivery_city},
)) {
......
my $gender = $self->{delivery_greeting} eq "Frau" ? 'f' : 'm';
my $deliveryaddress = SL::DB::Shipto->new;
$deliveryaddress->assign_attributes(
shiptoname => $self->{delivery_firstname} . " " . $self->{delivery_lastname},
shiptocp_gender => $gender,
shiptostreet => $self->{delivery_street},
shiptozipcode => $self->{delivery_zipcode},
shiptocity => $self->{delivery_city},
shiptocountry => $self->{delivery_country},
trans_id => $customer->id, # ????
module => "CT",
shiptoname => $self->{delivery_firstname} . " " . $self->{delivery_lastname},
shiptodepartment_1 => $self->{delivery_company},
shiptodepartment_2 => $self->{delivery_department},
shiptocp_gender => $gender,
shiptostreet => $self->{delivery_street},
shiptozipcode => $self->{delivery_zipcode},
shiptocity => $self->{delivery_city},
shiptocountry => $self->{delivery_country},
trans_id => $customer->id,
module => "CT",
);
$deliveryaddress->save;
$shipto_id = $deliveryaddress->{shipto_id};
......
my $order = SL::DB::Order->new(
amount => $self->amount,
cusordnumber => $self->shop_id,
cusordnumber => $self->shop_ordernumber,
customer_id => $customer->id,
shipto_id => $shipto_id,
orderitems => [ @order_items ],
orderitems => [ @items ],
employee_id => $employee->id,
intnotes => $self->{shop_customer_comment},
intnotes => ($customer->notes ne "" ? "\n[Kundestammdaten]\n" . $customer->notes : ""),
salesman_id => $employee->id,
taxincluded => 1, # TODO: make variable
payment_id => $customer->payment_id,
taxzone_id => $customer->taxzone_id,
currency_id => $customer->currency_id,
transaction_description => 'Shop Import',
transdate => DateTime->today_local
);
# $order->save;
return $order;
return $order;
};
1;
SL/ShopConnector/Shopware.pm
my $ordnumber = $self->config->last_order_number + 1;
my $otf = $self->config->orders_to_fetch;
my $i;
for ($i=1;$i<=$otf;$i++) {
......
tax_included => ($import->{data}->{net} == 0 ? 0 : 1)
);
my $shop_order = SL::DB::ShopOrder->new(%columns);
$shop_order->save;
my $id = $shop_order->id;
......
my $proposals = SL::DB::Manager::Customer->get_all_count(
where => [
or => [
and => [ # when matching names also match zipcode
or => [ 'name' => { like => "$shop_order->billing_lastname"},
'name' => { like => $shop_order->billing_company },
],
'zipcode' => { like => $shop_order->billing_zipcode },
],
or => [ 'email' => { like => $shop_order->billing_email } ],
and => [ 'street' => { like => $shop_order->billing_street },
'zipcode' => { like => $shop_order->billing_zipcode } ],
and => [ # when matching names also match zipcode
or => [ 'name' => { ilike => "%$shop_order->billing_lastname%"},
'name' => { ilike => "%$shop_order->billing_company%" },
],
'zipcode' => { ilike => $shop_order->billing_zipcode },
],
and => [ # matching street and zipcode
'street' => { ilike => "%$shop_order->billing_street%" },
'zipcode' => { ilike => $shop_order->billing_zipcode }
],
or => [ 'email' => { ilike => $shop_order->billing_email } ],
],
],
);
......
'ustid' => $shop_order->billing_vat,
'taxincluded_checked' => $self->config->pricetype eq "brutto" ? 1 : 0,
'taxincluded' => $self->config->pricetype eq "brutto" ? 1 : 0,
'klass' => (split '\/',$self->config->price_source)[1],
'pricegroup_id' => (split '\/',$self->config->price_source)[1],
'taxzone_id' => $self->config->taxzone_id,
'currency' => 1, # TODO hardcoded
'payment_id' => 7345,# TODO hardcoded
);
my $customer = SL::DB::Customer->new(%address);
$customer->save;
my $snumbers = "customernumber_" . $customer->customernumber;
SL::DB::History->new(
trans_id => $customer->id,
snumbers => $snumbers,
employee_id => SL::DB::Manager::Employee->current->id,
addition => 'SAVED',
what_done => 'Shopimport',
)->save();
}
my %billing_address = ( 'name' => $shop_order->billing_lastname,
......
$data = $self->connector->get("http://$url/api/articles/$partnumber?useNumberAsId=true");
$data_json = $data->content;
$import = SL::JSON::decode_json($data_json);
}
$main::lxdebug->dump(0, 'WH:IMPORT ',\$import);
# }
# get the right price
my ( $price_src_str, $price_src_id ) = split(/\//,$shop_part->active_price_source);
......
my ($self,$partnumber) = @_;
my $url = $self->url;
$partnumber = $::form->escape($partnumber);#shopware don't accept / in articlenumber
my $data = $self->connector->get("http://$url/api/articles/$partnumber?useNumberAsId=true");
my $data_json = $data->content;
return SL::JSON::decode_json($data_json);
}
sub set_orderstatus {
my ($self,$ordernumber);
}
sub init_url {
my ($self) = @_;
# TODO: validate url and port Mabey in shopconfig test connection
css/webshop.css
div.table {
/* Shop */
div.shop_table {
display: table;
padding: 20px,20px,20px,20px;
margin: 15px,15px,15px,15px;
background-color: #ebebeb;
/* padding: 15px;
margin: 15px; */
}
div.shop_table_address {
display: table;
/* padding: 15px; */
margin: 0px 0px 0px 15px;
}
div.table-row {
div.shop_table-row {
display: table-row;
}
div.table-cell {
div.shop_table-cell {
display: table-cell;
padding: 20px,20px,20px,20px;
}
div.main{
div.shop_table-cell_colspan {
flex: 2;
align: center;
}
div.shop_main{
width: 100%;
padding: 15px,15px,15px,15px;
margin: 15px,15px,15px,15px;
}
.fleft {
.shop_fleft {
width: 30%;
float: left;
border: thin solid red;
}
div.shop_table_info {
color: #b3b3b3;
width: 100%;
align: left;
}
js/kivi.ShopOrder.js
ns.setup = function() {
kivi.ShopOrder.massTransferInitialize();
kivi.submit_ajax_form('controller.pl?action=ShopOrder/mass_transfer','[name=shop_orders]');
kivi.submit_ajax_form('controller.pl?action=ShopOrder/mass_transfer','[name=shop_orders_list]');
};
});
menus/user/10-shopimport.yaml
name: Webshop Import
params:
action: ShopOrder/list
filter.transferred:eq_ignore_empty: 0
filter.obsolete: 0
db: shop_orders
sort_by: shop_ordernumber
- parent: webshop
sql/Pg-upgrade2/df_shoporder.sql
-- @tag: df_shoporder
-- @description: Feld Auftragssperre in der shoporder Tabelle
-- @depends: release_3_4_0
ALTER TABLE shop_orders ADD COLUMN df_kivi_customer_order_lock boolean DEFAULT FALSE NOT NULL;
sql/Pg-upgrade2/df_shoporder3.sql
-- @tag: df_shoporder3
-- @description: Feld df_kivi_customer_order_lock in der shoporder Tabelle wieder gelösch da order_lock direkt aus den Kundendaten genommen wird. Tabellen customer und shop_order sind Verknüpft. Spalte obsolete hinzgefügt
-- @depends: release_3_4_0
ALTER TABLE shop_orders DROP COLUMN df_kivi_customer_order_lock;
ALTER TABLE shop_orders ADD COLUMN obsolete boolean DEFAULT FALSE NOT NULL;
sql/Pg-upgrade2/df_shoporder_2.sql
-- @tag: df_shoporder_2
-- @description: Feld Positionen in der shoporder Tabelle
-- @depends: release_3_4_0
ALTER TABLE shop_orders ADD COLUMN positions integer;
templates/webpages/shop_order/_filter.html
[%- USE L %]
[%- USE LxERP %]
[%- USE HTML %]
<form action='controller.pl' method='post'>
<form method="post" action="controller.pl" name="shop_orders" id="shoporders">
[% L.submit_tag('action_get_orders',LxERP.t8('New shop orders')) %]
<table id='filter_table'>
<tr>
<th align="right">[% 'Status' | $T8 %]</th>
<td>[% L.select_tag('filter.transferred:eq_ignore_empty', SELF.transferred, value_key = 'value', title_key = 'title', default=TOOK) %]</td>
<td>[% L.select_tag('filter.transferred:eq_ignore_empty', SELF.transferred, value_key = 'value', title_key = 'title', default=0) %]</td>
</tr>
<tr>
<th align="right">[% 'from' | $T8 %]</th>
<td>[% L.date_tag('filter.order_date:date::ge', filter.order_date_date__ge) %]</td>
<td>[% L.date_tag('filter.order_date:date::ge', FORM.filter.order_date_date__ge) %]</td>
</tr>
<tr>
<th align="right">[% 'to' | $T8 %]</th>
<td>[% L.date_tag('filter.order_date:date::le', filter.order_date_date__le) %]</td>
<td>[% L.date_tag('filter.order_date:date::le', FORM.filter.order_date_date__le) %]</td>
</tr>
<tr>
<th align="right">[% 'Obsolete' | $T8 %]</th>
<td>[% L.yes_no_tag('filter.obsolete', FORM.filter.obsolete, default='0', with_empty=1, empty_title='---') %]</td>
</tr>
</table>
......
[% L.hidden_tag('action', 'ShopOrder/dispatch') %]
[% L.submit_tag('action_list',LxERP.t8('renew')) %]
</form>
templates/webpages/shop_order/_transfer_status.html
[%- USE LxERP -%][%- USE L -%][%- USE HTML -%]
[%- USE Dumper -%]
[% SET data = job.data_as_hash %]
<!-- ShopOrder -->
<h2>[% LxERP.t8("Watch status") %]</h2>
[% L.hidden_tag('', job.id, id="smt_job_id") %]
JOBID: [% job.id %] <p>
[% LxERP.t8("This status output will be refreshed every five seconds.") %]
</p>
<p>
[% # Dumper.dump_html(data) %]
</p>
<p>
<table>
<tr>
<th valign="top" align="left">[% LxERP.t8("Current status:") %]</th>
<td valign="top">
[% IF !data.status %]
[% LxERP.t8("waiting for job to be started") %]
[% ELSIF data.status == 1 %]
[% LxERP.t8("Converting to deliveryorder") %]
[% ELSE %]
[% LxERP.t8("Done.") %]
[% END %]
</td>
</tr>
<tr>
<th valign="top" align="left">[% LxERP.t8("Number of invoices created:") %]</th>
<td valign="top">[% IF data.status > 0 %][% HTML.escape(data.num_created) %] / [% HTML.escape(data.record_ids.size) %][% ELSE %]–[% END %]</td>
</tr>
<tr>
<th valign="top" align="left">[% LxERP.t8("Number of invoices printed:") %]</th>
<td valign="top">[% IF data.status > 1 %][% HTML.escape(data.num_printed) %] / [% HTML.escape(data.invoice_ids.size) %][% ELSE %]–[% END %]</td>
</tr>
<tr>
<th valign="top" align="left">[% LxERP.t8("Errors during conversion:") %]</th>
<td valign="top">
[% IF !data.status %]
[% ELSIF !data.conversion_errors.size %]
[% LxERP.t8("No errors have occurred.") %]
[% ELSE %]
<table>
<tr class="listheader">
<th>[% LxERP.t8("Delivery Order") %]</th>
<th>[% LxERP.t8("Error") %]</th>
</tr>
[% FOREACH error = data.conversion_errors %]
<tr>
<td valign="top">[% IF error.id %][% L.link(SELF.url_for(controller='do.pl', action='edit', type='sales_delivery_order', id=error.id), HTML.escape(error.number), target="_blank") %][% ELSE %]–[% END %]</td>
<td valign="top">[% HTML.escape(error.message) %]</td>
</tr>
[% END %]
</table>
[% END %]
</td>
</tr>
<tr>
<th valign="top" align="left">[% LxERP.t8("Errors during printing:") %]</th>
<td valign="top">
[% IF data.status < 2 %]
[% ELSIF !data.print_errors.size %]
[% LxERP.t8("No errors have occurred.") %]
[% ELSE %]
<table>
<tr class="listheader">
<th>[% LxERP.t8("Invoice") %]</th>
<th>[% LxERP.t8("Error") %]</th>
</tr>
[% FOREACH error = data.print_errors %]
<tr>
<td valign="top">[% IF error.id %][% L.link(SELF.url_for(controller='is.pl', action='edit', type='sales_invoice',id=error.id), HTML.escape(error.number), target="_blank") %][% ELSE %]–[% END %]</td>
<td valign="top">[% HTML.escape(error.message) %]</td>
</tr>
[% END %]
</table>
[% END %]
</td>
</tr>
</table>
</p>
templates/webpages/shop_order/list.html
<h1>[% title %]</h1>
[%- PROCESS 'shop_order/_filter.html' filter=SELF.models.filtered.laundered %]
<hr>
<div class="table_info">[% 'Number data sets' | $T8 %]: [% SHOPORDERS.size %]</div>
<table id="shoplist">
<thead>
<tr class="listheading">
<th>[% 'Shop Host' | $T8 %]</th>
<th>[% IF FORM.sort_by == 'order_date' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=order_date&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=order_date&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shop orderdate' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=order_date&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=order_date&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shop orderdate' | $T8 %]</a>
[% END %]
</th>
<th>[% IF FORM.sort_by == 'shop_ordernumber' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_ordernumber&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_ordernumber&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shop ordernumber' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_ordernumber&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_ordernumber&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shop ordernumber' | $T8 %]</a>
[% END %]
</th>
<th>[% IF FORM.sort_by == 'shop_customer_number' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_number&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_number&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shop customernumber' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_number&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_number&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shop customernumber' | $T8 %]</a>
[% END %]
</th>
<th>[% 'Shop Customer Address' | $T8 %]<br>
[% IF FORM.sort_by == 'customer_lastname' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_lastname&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_lastname&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Name' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>|
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_lastname&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_lastname&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Name' | $T8 %]</a>|
[% END %]
[% IF FORM.sort_by == 'customer_zipcode' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_zipcode&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_zipcode&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Zip' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>|
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_zipcode&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_zipcode&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Zip' | $T8 %]</a>|
[% END %]
[% IF FORM.sort_by == 'customer_country' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_country&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_country&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Country' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_country&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=customer_country&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Country' | $T8 %]</a>
[% END %]
</th>
<th>[% 'Shop Billing Address' | $T8 %]</br>
[% IF FORM.sort_by == 'billing_lastname' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_lastname&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_lastname&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Name' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>|
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_lastname&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_lastname&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Name' | $T8 %]</a>|
[% END %]
[% IF FORM.sort_by == 'billing_zipcode' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_zipcode&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_zipcode&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Zip' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>|
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_zipcode&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_zipcode&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Zip' | $T8 %]</a>|
[% END %]
[% IF FORM.sort_by == 'billing_country' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_country&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_country&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Country' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_country&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=billing_country&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Country' | $T8 %]</a>
[% END %]
</th>
<th>[% 'Shop Delivery Address' | $T8 %]</br>
[% IF FORM.sort_by == 'delivery_lastname' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_lastname&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_lastname&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Name' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>|
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_lastname&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_lastname&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Name' | $T8 %]</a>|
[% END %]
[% IF FORM.sort_by == 'delivery_zipcode' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_zipcode&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_zipcode&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Zip' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>|
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_zipcode&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_zipcode&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Zip' | $T8 %]</a>|
[% END %]
[% IF FORM.sort_by == 'delivery_country' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_country&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_country&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Country' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_country&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=delivery_country&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Country' | $T8 %]</a>
[% END %]
</th>
<th>[% IF FORM.sort_by == 'shop_customer_comment' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_comment&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_comment&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Notes' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_comment&sort_dir=0" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shop_customer_comment&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Notes' | $T8 %]</a>
[% END %]
</th>
<th>
[% 'Positions' | $T8 %]<br>
[% IF FORM.sort_by == 'positions' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=positions&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Positions' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a><br>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=positions&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link"> [% 'Positions' | $T8 %]</a><br>
[% END %]
[% IF FORM.sort_by == 'amount' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=amount&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
[% 'Amount' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=amount&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Amount' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a><br>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=amount&sort_dir=0" class="sort_link"> [% 'Amount' | $T8 %]</a><br>
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=amount&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link"> [% 'Amount' | $T8 %]</a><br>
[% END %]
[% IF FORM.sort_by == 'shipping_costs' %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shipping_costs&sort_dir=[% 1 - FORM.sort_dir %]" class="sort_link">
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shipping_costs&sort_dir=[% 1 - FORM.sort_dir %]&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link">
[% 'Shippingcosts' | $T8 %][% IF FORM.sort_dir == 0 %]<img border="0" src="image/down.png">[% ELSE %]<img border="0" src="image/up.png">[% END %]</a>
[% ELSE %]
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shipping_costs&sort_dir=0" class="sort_link"> [% 'Shippingcosts' | $T8 %]</a><br>
<a href ="controller.pl?action=ShopOrder/list&filter.transferred:eq_ignore_empty=[% FORM.filter.transferred_eq_ignore_empty %]&sort_by=shipping_costs&sort_dir=0&filter.order_date:date::ge=[% FORM.filter.order_date_date__ge %]&filter.order_date:date::le=[% FORM.filter.order_date_date__le %]&filter.obsolete=[% FORM.filter.obsolete %]" class="sort_link"> [% 'Shippingcosts' | $T8 %]</a>
[% END %]
</th>
<th></th>
<th>[% 'Action' | $T8 %]<br>[% L.checkbox_tag('check_all') %]</th>
</tr>
</thead>
</form>
<form method="post" action="controller.pl" name="shop_orders_list" id="shoporderslist">
[% FOREACH shop_order = SHOPORDERS %]
[% IF shop_order.customer.id && shop_order.customer.order_lock == 0 && shop_order.open_invoices == 0 %] [% SET transferable = 1 %] [% SET transferable_class = 'style="background:rgba(43, 208, 54, 0.5);"' %] [% ELSE %] [% SET transferable = 0 %] [% SET transferable_class = '' %][% END %]
<tr class="listrow">
<td>[% HTML.escape(shop_order.host) %]</td>
<td>[% shop_order.order_date.dmy('.') _ ' ' _ shop_order.order_date.hms(':') %]</td>
......
<b>[% HTML.escape(shop_order.billing_lastname) %],&nbsp;[% HTML.escape(shop_order.billing_firstname) %]</b>
<br>[% HTML.escape(shop_order.billing_street) %]
<br>[% HTML.escape(shop_order.billing_zipcode) %]&nbsp;[% HTML.escape(shop_order.billing_city) %]
<br>[% HTML.escape(shop_order.billing_country) %] </td>
[% IF (shop_order.delivery_lastname != shop_order.billing_lastname || shop_order.delivery_firstname != shop_order.billing_firstname || shop_order.delivery_street != shop_order.billing_street || shop_order.delivery_city != shop_order.billing_city) %] [% SET deliveryclass = 'style="background-color:red;"' %] [% ELSE %] [% SET deliveryclass = '' %] [% END %]
<br>[% HTML.escape(shop_order.billing_country) %]
<br>[% IF shop_order.open_invoices > 0 || shop_order.customer.order_lock == 1 %][% SET alertclass = 'style="background:rgba(255,0,0,1);"' %][% ELSE %][% SET alertclass = '' %][% END %]<span [% alertclass %]>&nbsp;&nbsp;[% HTML.escape(shop_order.customer.customernumber) %] -- [% shop_order.open_invoices %]&nbsp;&nbsp;</span></td>
[% IF (shop_order.delivery_lastname != shop_order.billing_lastname || shop_order.delivery_firstname != shop_order.billing_firstname || shop_order.delivery_street != shop_order.billing_street || shop_order.delivery_city != shop_order.billing_city) %] [% SET deliveryclass = 'style="background:rgba(100, 100, 100, 0.5);"' %] [% ELSE %] [% SET deliveryclass = '' %] [% END %]
<td [% deliveryclass %]>[% IF shop_order.customer_company %]<b>[% HTML.escape(shop_order.customer_company) %]</b><br>[% END %]
<b>[% HTML.escape(shop_order.delivery_lastname) %],&nbsp;[% HTML.escape(shop_order.delivery_firstname) %]</b>
<br>[% HTML.escape(shop_order.delivery_street) %]
<br>[% HTML.escape(shop_order.delivery_zipcode) %]&nbsp;[% HTML.escape(shop_order.delivery_city) %]
<br>[% HTML.escape(shop_order.delivery_country) %] </td>
<td>[% HTML.escape(shop_order.shop_customer_comment) %]</td>
<td>[% shop_order.shop_order_items.size %]<br>[% shop_order.amount_as_number %]<br>[% shop_order.shipping_costs_as_number %]</td>
<td>[% IF shop_order.transferred == 1 %]<a href="controller.pl?id=[% shop_order.id %]&action=ShopOrder/show">[% 'Show order' | $T8 %]<br>[% shop_order.transferred_date_as_date %]</a>
[% ELSE %]<a href="controller.pl?id=[% shop_order.id %]&action=ShopOrder/show">[% 'Create order' | $T8 %][% END %]</a></td>
<td><span class="tooltipster-html" title="[% FOREACH item = shop_order.shop_order_items %] [% LxERP.format_amount(item.quantity,0) %] x [% item.partnumber %] [% item.description %] <br> [% END %]">[% shop_order.positions %]<br>[% shop_order.amount_as_number %]<br>[% shop_order.shipping_costs_as_number %]</td><span>
<td valign="middle">[% IF shop_order.transferred == 1 %]<a href="controller.pl?id=[% shop_order.id %]&action=ShopOrder/show">[% 'Show order' | $T8 %]<br>[% shop_order.transferred_date_as_date %]</a>
[% ELSE %]
[% IF transferable == 1 && shop_order.obsolete == 0 %]
[% L.checkbox_tag('id[]', checked = '1', value=shop_order.id) %]<br>
[% END %]
[% IF shop_order.obsolete == 0 %]<a href="controller.pl?id=[% shop_order.id %]&action=ShopOrder/show">[% 'Create order' | $T8 %]</a></br></br>
<a href="controller.pl?import_id=[% shop_order.id %]&action=ShopOrder/delete_order">[% 'Delete shoporder' | $T8 %]</a>
[% ELSE %]
[% 'Obsolete' | $T8 %]<br><br>
<a href="controller.pl?id=[% shop_order.id %]&action=ShopOrder/show">[% 'Show order' | $T8 %]
[% END %]
</td>
[% END %]
</tr>
[% END %]
</table>
<hr>
<p>
[% L.hidden_tag("action", "ShopOrder/mass_transfer") %]
[% L.submit_tag("", LxERP.t8("Transfer all marked")) %]
</p>
</form>
<script type="text/javascript">
<!--
$(function() {
$('#check_all').checkall('INPUT[name^="id"]');
});
-->
</script>
templates/webpages/shop_order/show.html
<h1>[% title %]</h1>
<form method="post" action="controller.pl">
<div class="table main">
<div class="table-row listheading">
<div class="table-cell">
<div class="table" style="margin:150px,15px,15px,15px;">
<div class="table-row listheading">
<div class="table-cell">[% 'Shop Customer Address' | $T8 %]</div>
<div class="shop_table shop_main">
<div class="shop_table-row">
<div class="shop_table-cell" style="display:none">
<form method="post" action="controller.pl" id="customer">[% L.hidden_tag('create_customer','customer') %][% L.hidden_tag('import_id', IMPORT.id) %]
<div class="shop_table shop_table_address">
<div class="shop_table-row listheading">
<div class="shop_table-cell">[% 'Shop Customer Address' | $T8 %]</div>
<div class="shop_table-cell"></div>
</div>
<div class="table-row"><div class="table-cell">[% 'Greeting' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_greeting', IMPORT.customer_greeting) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Firstname' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_firstname', IMPORT.customer_firstname) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Lastname' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_lastname', IMPORT.customer_lastname) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Company' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_company', IMPORT.customer_company) %]</div></div>
[% IF IMPORT.customer_company == '' %]
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Greeting' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.customer_greeting) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Firstname' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.customer_firstname) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Lastname' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.customer_lastname) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Company' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.customer_company) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Department' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.customer_department) %]</div></div>
[% SET customer = IMPORT.customer_firstname _ ' ' _ IMPORT.customer_lastname %]
[% ELSE %]
[% SET customer = IMPORT.customer_company %]
[% END %]
<hr>
<div class="table-row"><div class="table-cell">[% 'Customer' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_name', customer) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Street' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_street', IMPORT.customer_street) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Zipcode' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_zipcode', IMPORT.customer_zipcode) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'City' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_city', IMPORT.customer_city) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Country' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_country', IMPORT.customer_country) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Email' | $T8 %]</div><div class="table-cell">[% L.input_tag('customer_email', IMPORT.customer_email) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Greeting' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_greeting', IMPORT.customer_greeting) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Customer' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_name', customer) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Name 2' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_company', IMPORT.customer_company) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Name 3' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_department', IMPORT.customer_department) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Street' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_street', IMPORT.customer_street) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Zipcode' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_zipcode', IMPORT.customer_zipcode) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'City' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_city', IMPORT.customer_city) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Country' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_country', IMPORT.customer_country) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Phone' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_phone', IMPORT.customer_phone) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Email' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('customer_email', IMPORT.customer_email) %]</div></div>
[% IF C_ADDRESS %]
<div>[% C_ADDRESS.customernumber %]</div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Customernumber' | $T8 %]</div><div class="shop_table-cell">[% C_ADDRESS.customernumber %]</div></div>
[% ELSE %]
<div>[% L.radio_button_tag('create_customer', value='customer') %]</div>
<div>[% L.ajax_submit_tag("controller.pl?action=ShopOrder/apply_customer", "#customer", LxERP.t8("Apply customer")) %]</div>
[% END %]
</div>
</form>
</div>
<div class="table-cell">
<div class="table">
<div class="table-row listheading">
<div class="table-cell">[% 'Shop Billing Address' | $T8 %]</div>
<div class="shop_table-cell">
<form method="post" action="controller.pl" id="billing">[% L.hidden_tag('create_customer','billing') %][% L.hidden_tag('import_id', IMPORT.id) %]
<div class="shop_table shop_table_address">
<div class="shop_table-row listheading">
<div class="shop_table-cell">[% 'Shop Billing Address' | $T8 %]</div>
<div class="shop_table-cell"></div>
</div>
<div class="table-row"><div class="table-cell">[% 'Greeting' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_greeting', IMPORT.billing_greeting) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Firstname' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_firstname', IMPORT.billing_firstname) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Lastname' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_lastname', IMPORT.billing_lastname) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Company' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_company', IMPORT.billing_company) %]</div></div>
[% IF IMPORT.billing_company == '' %]
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Greeting' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.billing_greeting) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Firstname' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.billing_firstname) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Lastname' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.billing_lastname) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Company' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.billing_company) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Department' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.billing_department) %]</div></div>
[% SET billing = IMPORT.billing_firstname _ ' ' _ IMPORT.billing_lastname %]
[% ELSE %]
[% SET billing = IMPORT.billing_company %]
[% END %]
<hr>
<div class="table-row"><div class="table-cell">[% 'Customer' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_name', billing) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Street' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_street', IMPORT.billing_street) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Zipcode' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_zipcode', IMPORT.billing_zipcode) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'City' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_city', IMPORT.billing_city) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Country' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_country', IMPORT.billing_country) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Email' | $T8 %]</div><div class="table-cell">[% L.input_tag('billing_email', IMPORT.billing_email) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Greeting' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_greeting', IMPORT.billing_greeting) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Customer' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_name', billing) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Name 2' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_company', IMPORT.billing_company) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Name 3' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_department', IMPORT.billing_department) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Street' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_street', IMPORT.billing_street) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Zipcode' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_zipcode', IMPORT.billing_zipcode) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'City' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_city', IMPORT.billing_city) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Country' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_country', IMPORT.billing_country) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Phone' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_phone', IMPORT.billing_phone) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Email' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('billing_email', IMPORT.billing_email) %]</div></div>
[% IF B_ADDRESS %]
<div>[% B_ADDRESS.customernumber %]</div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Customernumber' | $T8 %]</div><div class="shop_table-cell">[% B_ADDRESS.customernumber %]</div></div>
[% ELSE %]
<div>[% L.radio_button_tag('create_customer', value='billing') %]</div>
<div>[% L.ajax_submit_tag("controller.pl?action=ShopOrder/apply_customer", "#billing", LxERP.t8("Apply customer")) %]</div>
[% END %]
</div>
</form>
</div>
<div class="table-cell">
<div style="display:table;">
<div class="table-row listheading">
<div class="table-cell">[% 'Shop Delivery Address' | $T8 %]</div>
<div class="shop_table-cell">
<form method="post" action="controller.pl" id="delivery">[% L.hidden_tag('create_customer','delivery') %][% L.hidden_tag('import_id', IMPORT.id) %]
<div class="shop_table shop_table_address">
<div class="shop_table-row listheading">
<div class="shop_table-cell">[% 'Shop Delivery Address' | $T8 %]</div>
<div class="shop_table-cell"></div>
</div>
<div class="table-row"><div class="table-cell">[% 'Greeting' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_greeting', IMPORT.billing_greeting) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Firstname' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_firstname', IMPORT.delivery_firstname) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Lastname' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_lastname', IMPORT.delivery_lastname) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Company' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_company', IMPORT.delivery_company) %]</div></div>
[% IF IMPORT.delivery_company == '' %]
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Greeting' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.delivery_greeting) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Firstname' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.delivery_firstname) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Lastname' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.delivery_lastname) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Company' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.delivery_company) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Department' | $T8 %]</div><div class="shop_table-cell">[% HTML.escape(IMPORT.delivery_department) %]</div></div>
[% SET delivery = IMPORT.delivery_firstname _ ' ' _ IMPORT.delivery_lastname %]
[% ELSE %]
[% SET delivery = IMPORT.delivery_company %]
[% END %]
<hr>
<div class="table-row"><div class="table-cell">[% 'Customer' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_name', delivery) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Street' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_street', IMPORT.delivery_street) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Zipcode' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_zipcode', IMPORT.delivery_zipcode) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'City' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_city', IMPORT.delivery_city) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Country' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_country', IMPORT.delivery_country) %]</div></div>
<div class="table-row"><div class="table-cell">[% 'Email' | $T8 %]</div><div class="table-cell">[% L.input_tag('delivery_email', IMPORT.delivery_email) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Greeting' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_greeting', IMPORT.delivery_greeting) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Customer' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_name', delivery) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Name 2' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_company', IMPORT.delivery_company) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Name 3' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_department', IMPORT.delivery_department) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Street' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_street', IMPORT.delivery_street) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Zipcode' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_zipcode', IMPORT.delivery_zipcode) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'City' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_city', IMPORT.delivery_city) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Country' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_country', IMPORT.delivery_country) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Phone' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_phone', IMPORT.delivery_phone) %]</div></div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Email' | $T8 %]</div><div class="shop_table-cell">[% L.input_tag('delivery_email', IMPORT.delivery_email) %]</div></div>
[% IF D_ADDRESS %]
<div>[% D_ADDRESS.customernumber %]</div>
<div class="shop_table-row"><div class="shop_table-cell listheading">[% 'Customernumber' | $T8 %]</div><div class="shop_table-cell">[% D_ADDRESS.customernumber %]</div></div>
[% ELSE %]
<div>[% L.radio_button_tag('create_customer', value='delivery') %]</div>
<div>[% L.submit_tag('action_apply_customer', LxERP.t8('Create customer')) %]</div>
<div>[% L.ajax_submit_tag("controller.pl?action=ShopOrder/apply_customer", "#delivery", LxERP.t8("Apply customer")) %]</div>
[% END %]
</div>
</form>
</div>
</div>
</div>
......
</table>
</td>
<td style="padding-left: 20px; vertical-align: top;">
[% IF IMPORT.obsolete %]
<b>[% 'Shoporder deleted -- ' | $T8 %]</b><a href="controller.pl?action=ShopOrder/valid_order&import_id=[% IMPORT.id %]">[% 'revert deleted' | $T8 %]</a>
[% ELSE %]
[% UNLESS IMPORT.transferred %]
[% IF PROPOSALS %]
<div style="height: 120px; overflow:auto;">
<table>
<tr class="listheading">
<th colspan="7">Customer Proposals</td>
</tr>
<form method="post" action="controller.pl" id="create_order">
[% L.hidden_tag('import_id', IMPORT.id) %]
<div style="height: 125px; overflow:auto;">
<table>
<tr class="listheading">
<th colspan="7">Customer Proposals</td>
</tr>
[% FOREACH prop = PROPOSALS %][% IF prop.order_lock %][% SET orderlock_class = 'style="background:rgba(232, 32, 23, 0.2);"' %][% END %]
<tr class="listrow" [% orderlock_class %]>
<td>[% IF !prop.order_lock %][% L.radio_button_tag('customer', value=prop.id) %][% END %]</td>
<td><a href="controller.pl?action=CustomerVendor/edit&id=[% prop.id %]&db=customer&callback=[% HTML.url('controller.pl?action=ShopOrder/show&id=' _ IMPORT.id) %]">[% HTML.escape(prop.customernumber) %]</a></td>
<td>[% IF !prop.notes == '' %]<span class="tooltipster-html" title="[% HTML.escape(prop.notes) %]"><span style="color:red;font-weight: bold;">[% HTML.escape(prop.name) %]</span>[% ELSE %][% HTML.escape(prop.name) %][% END %]</td>
<td>[% HTML.escape(prop.street) %]</td>
<td>[% HTML.escape(prop.zipcode) %]</td>
<td>[% HTML.escape(prop.city) %]</td>
<td>[% HTML.escape(prop.email) %]</td>
</tr>
[% END %]
</table>
</div>
<div id="transfer" style="float:left; display:none;">
[% # 'Customernumber: ' _ %]
[% L.ajax_submit_tag('controller.pl?action=ShopOrder/transfer', "#create_order", LxERP.t8('Create order')) %]
</div>
[% FOREACH prop = PROPOSALS %]
<tr>
<td>[% L.radio_button_tag('customer', value=prop.id) %]</td>
<td>[% HTML.escape(prop.customernumber) %]</td>
<td>[% HTML.escape(prop.name) %]</td>
<td>[% HTML.escape(prop.street) %]</td>
<td>[% HTML.escape(prop.zipcode) %]</td>
<td>[% HTML.escape(prop.city) %]</td>
<td>[% HTML.escape(prop.email) %]</td>
</tr>
<div id="shop_update_customer_[% prop.id %]" class="div_hidden" style="display:none;">
[% L.ajax_submit_tag("controller.pl?action=ShopOrder/apply_customer&cv_id=" _ prop.id, "#billing", LxERP.t8("Update customer using billing address")) %]
</div>
[% END %]
</table>
[% END # PROPOSALS %]
</div>
[% L.hidden_tag('action', 'ShopOrder/dispatch') %]
[% L.hidden_tag('import_id', IMPORT.id) %]
[%- L.submit_tag('action_transfer', LxERP.t8('Create order')) %]
[% ELSE %]
</form>
<a href="controller.pl?action=ShopOrder/delete_order&import_id=[% IMPORT.id %]">[% 'delete order' | $T8 %]</a>
[% END # PROPOSALS %]
[% ELSE %]
<div>
Wurde schon übernommen
[% 'Transferred' | $T8 %]
<div id="recordlinks"></div>
<script type="text/javascript">
var url = 'controller.pl?action=RecordLinks/ajax_list&object_model=ShopOrder&object_id=[% IMPORT.id %]';
......
</script>
</div>
[% END %]
[% END %]
</td>
</tr>
</table>
......
</table>
</div>
<hr>
</form>
<script type="text/javascript">
function apply_customer(address) {
alert('Hallo ' + address);
$.post("controller.pl", { action: 'ShopOrder/list'});
}
$("input[type=radio]").change(function(){
$('.div_hidden').css("display", 'none');
var cv_id = $("input[type=radio][id="+ this.id + "]").val();
$('#shop_update_customer_'+ cv_id).css("display", 'block');
$('#transfer').css("display", 'block');
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff