###############################################
### Configuration for the plugin
plugin.tx_p123_pi {
includeP123 = portal,sesPid,sesName,prices,pricesRemap,priceMultiplicator,enableSort,enableSearch,disableSpare,enablePermanent,enableMultiBlocks,sort,order,multiBlocksTypes,media,mediaDuplicate,sql,doNotCheckFree,maxPeriods,firstPeriod,firstPeriodExpress,entriesPerPage,dateRestriction,enableExpress,poster_later_days,pageLocations,pageDesigner,pageBasket,hashFields,enableBasket,basket,enableMotif,datesPeriods,disableUserData,joinMedia,enablePrintDataManager,expressMedia,pagePrintDataManager
##############################################
### Define the portal, the pid where to store the session
portal = {$plugin.tx_p123_pi.portal}
sesPid = {$plugin.tx_p123_pi.sesPid}
sesName = {$plugin.tx_p123_pi.sesName}
##############################################
### Define the prices and price settings
prices {
posters {
# Additional price, once per job
once = 0.00
1 = 0.00
2 = 0.00
}
expose =
spare =
vat = {$plugin.tx_p123_pi.vat}
vat.override = 0.0
vat.override.if {
value.data = register:tx_p123_pi[{$plugin.tx_p123_pi.sesName}][basket][country_company]
value.substring = -4,4
value.case = upper
equals = [DE]
equals.if.isTrue.data = register:tx_p123_pi[{$plugin.tx_p123_pi.sesName}][basket][country_company]
negate = 1
}
vat.intval = 1
tax = {$plugin.tx_p123_pi.vat}
}
##############################################
### Define the percentage of deposit for
### express bookings (0-100)
prices.expressDeposit = {$plugin.tx_p123_pi.expressDeposit}
##############################################
### Define the price for further express
### locations
#prices.expressFurther = 0.00
##############################################
### Define the media to display
media {
1 = GF:ST|BF|BS|BU|BX|CI|CS|EK|ES|FH|HB|PH|PR|QA|SC|SE|VB|WH|SP:3560x2520
1.spare = 10
1.price = posters
}
#############################################
### Enable sorting (1) or not (0)
enableSort = {$plugin.tx_p123_pi.enableSort}
##############################################
### Define the possible sorts (old style)
sort.locationName = 123_StoFZ.Standort
#sort.Standort = Standort
#sort.PLZ = PLZ
#sort.Preis = Tagespreis
##############################################
### Define the possible orders (old style)
order.up = ASC
order.down = DESC
#order.ASC = Aufsteigend
#order.DESC = Absteigend
##############################################
### Special SQL fields, join informations and
### group fields
sql.fields = *,StellenOrt AS Anzahl
sql.join = LEFT JOIN 123_StoFZ USING(StoID)
sql.groupBy =
sql.id = StoID
##############################################
### Define maximal count of periods displayed
maxPeriods = {$plugin.tx_p123_pi.maxPeriods}
##############################################
### Define the days that must be between now
### and the first period
firstPeriod = {$plugin.tx_p123_pi.firstPeriod}
##############################################
### Define the days that must be between now
### and the end of the first express period
firstPeriodExpress = {$plugin.tx_p123_pi.firstPeriodExpress}
##############################################
### Enable express (1) or not (0)
enableExpress = {$plugin.tx_p123_pi.enableExpress}
##############################################
### Define the maximal count of locations that
### will be displayed per Page
entriesPerPage = {$plugin.tx_p123_pi.entriesPerPage}
##############################################
### Define the days between until a poster had
### to be made before the first periods starts
poster_later_days = {$plugin.tx_p123_pi.poster_later_days}
##############################################
### Check if the location is free (0) or not
### check (1)
doNotCheckFree = {$plugin.tx_p123_pi.doNotCheckFree}
##############################################
### Define the page where the locations are
### displayed
pageLocations = {$plugin.tx_p123_pi.pageLocations}
##############################################
### Define the page where the designer is
### displayed
pageDesigner = {$plugin.tx_p123_pi.pageDesigner}
pageDesignerCreate = {$plugin.tx_p123_pi.pageDesignerCreate}
pageDesignerLater = {$plugin.tx_p123_pi.pageDesignerLater}
##############################################
### Define the page where the basket is
### displayed
pageBasket = {$plugin.tx_p123_pi.pageBasket}
pageBasketProceed = {$plugin.tx_p123_pi.pageBasketProceed}
##############################################
### Fields for making hash
hashFields = id,period,year
##############################################
### Enable new motif system (1) or not (0)
enableMotif = {$plugin.tx_p123_pi.enableMotif}
##############################################
### Enable permanent advertising (1) or not (0)
enablePrintDataManager = {$plugin.tx_p123_pi.enablePrintDataManager}
##############################################
### Define the page where the printdatamanager is
### displayed
pagePrintDataManager = {$plugin.tx_p123_pi.pagePrintDataManager}
### Enable new basket system (1) or not (0)
enableBasket = {$plugin.tx_p123_pi.enableBasket}
##############################################
### Enable new search system (1) or not (0)
enableSearch = {$plugin.tx_p123_pi.enableSearch}
##############################################
### Disable spare locations (1) or not (0)
disableSpare = {$plugin.tx_p123_pi.disableSpare}
##############################################
### Enable permanent advertising (1) or not (0)
enablePermanent = {$plugin.tx_p123_pi.enablePermanent}
##############################################
### Define the possible express-media as list comma separated
expressMedia = {$plugin.tx_p123_pi.expressMedia}
##############################################
### Enable the use of multiple blocks in one
### table (1) or not (0)
enableMultiBlocks = {$plugin.tx_p123_pi.enableMultiBlocks}
multiBlocksTypes {
1 = D A,D B,D C
}
##############################################
### Automatically add poster prices to basket, if locations are selected
autoPosterPrice = {$plugin.tx_p123_pi.autoPosterPrice}
##############################################
### Path to html2pdf library
html2pdfPath = EXT:p123/libs/html2pdf-4.5.1/vendor/autoload.php
##############################################
### Define editable and deleteable fields of
### the new basket system
basket {
require {
# if.isPositive.field = num
if.isPositive.dataWrap = {field:num // field:only_production // field:no_production}
# if.isFalse {
# # no DDM (old one)
# dataWrap = {field:found // field:later // field:no_production}
# # new DDM
# override {
# stdWrap.preUserFunc = tx_p123designer_pi7->checkAllMotifs
# stdWrap.preUserFunc.description.data = field:description
# stdWrap.preUserFunc.quantity.data = field:quantity
# stdWrap.preUserFunc.quantity.override = 1
# stdWrap.preUserFunc.quantity.override.if.isTrue.field = only_production
# stdWrap.stdWrap.if.isTrue.dataWrap = {field:quantity}{field:postercount}{field:no_production}
# stdWrap.stdWrap.if.intval = 1
# }
# override.if.isTrue.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
# }
if.isFalse.cObject = COA
if.isFalse.cObject {
10 = TEXT
10.preUserFunc = tx_p123checkout_pi1->hook
10.preUserFunc {
includeObj = db,sid,sqlWhere,portal,hash,sesName,motifDB,basketDB,query,basket,conf,media,mediaHash,periodData
funcName = basket_find
dontIncludeSetup = 1
ext = p123designer
}
20 = COA
20.dataWrap = {field:found // field:later // field:no_production}
20.override {
stdWrap.preUserFunc = tx_p123designer_pi7->checkAllMotifs
stdWrap.preUserFunc.description.data = field:description
stdWrap.preUserFunc.quantity.data = field:quantity
stdWrap.preUserFunc.quantity.override = 1
stdWrap.preUserFunc.quantity.override.if.isTrue.field = only_production
stdWrap.stdWrap.if.isTrue.dataWrap = {field:quantity}{field:postercount}{field:no_production}
stdWrap.stdWrap.if.intval = 1
}
20.override.if.isTrue.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
}
lang.de = Bitte gestalte ein Motiv für deine Standortauswahl
lang.en = Please create a motif for your selection of
override {
lang.de = Bitte gestalte ein Motiv für deinen Plakatdruck
lang.en = Please create a motif for your poster-print of
if.isTrue.field = only_production
}
noTrimWrap = || „{field:caption}“|
wrap2 = |
prepend = COA
prepend {
10 = TEXT
10.lang.de = Motiv gestalten
10.lang.en = Create motif
10.typolink.parameter = {$plugin.tx_p123_pi.pageDesigner}
10.typolink.parameter.noTrimWrap = || - "csc-mailform-button hide-for-mobile"|
10.typolink.section = create:
10.typolink.section.dataWrap = |{field:key}:
10.if.isFalse.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
20 = COA
20 {
# if.isFalse.preUserFunc = tx_p123checkout_pi1->hook
# if.isFalse.preUserFunc {
# includeObj = db,sid,sqlWhere,portal,hash,sesName,motifDB,basketDB,query,basket,conf,media,mediaHash,periodData
# funcName = basket_find
# dontIncludeSetup = 1
# group.field = format
# ext = *-express
# }
10 = TEXT
10.lang.de = Motiv nachreichen
10.lang.en = Motif subsequent filing
10.override.lang.en = to printdatamanager
10.override.lang.de = zum Druckdatenmanager
10.override.if.isTrue.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
10.typolink.parameter = {$plugin.tx_p123_pi.pageDesigner}
10.typolink.parameter.noTrimWrap = || - csc-mailform-button|
10.typolink.parameter.override = {$plugin.tx_p123_pi.pagePrintDataManager}
10.typolink.parameter.override.if.isTrue.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
10.typolink.section = later:
10.typolink.section.dataWrap = |{field:key}:
10.typolink.section.if.isFalse.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
10.typolink.additionalParams.dataWrap = &tx_p123designer_pi7[format]={field:key}
10.typolink.additionalParams.if.isTrue.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
10.wrap =
|
10.wrap.if.isFalse.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
20 = TEXT
20.if.isFalse.field = confForceProduction
20.lang.de = Auftrag ohne Plakatdruck
20.lang.en = Order without production
20.typolink.parameter = {$plugin.tx_p123_pi.pageDesigner}
20.typolink.parameter.noTrimWrap = || - csc-mailform-button|
20.typolink.section = no_production:
20.typolink.section.dataWrap = |{field:key}:
20.wrap =
|
}
stdWrap.required = 1
stdWrap.wrap =
|
}
insertData = 1
}
hint {
3560x2520 {
cObject = COA
cObject {
10 = TEXT
10 {
lang.en = Please note that failures due to the small amount of poster does not entitle to reclamation or reimbursement of the cost.
lang.de = Bitte beachte, dass Plakatierungsausfälle aufgrund der geringen Plakatmenge nicht zur Reklamation oder Erstattung der Kosten berechtigen.
if.isFalse.data = register:posterCountHint
if.value = 0
if.isLessThan.field = postercount
if.isLessThan.intval = 1
wrap = |
prepend = LOAD_REGISTER
prepend.posterCountHint = 1
append = TEXT
append.value = |*|
}
20 = TEXT
20 {
lang.en = Please note that poster losses based on non-existing spare posters do not justify complaints or the claim for refund of costs.
lang.de = Bitte beachte, dass Plakatierungsausfälle aufgrund nicht vorliegender Ersatzplakate nicht zur Reklamation oder Erstattung der Kosten berechtigen.
# if.isTrue.field = found // later
if.isFalse.data = register:posterSpareHint
if.value = 0
if.equals.field = spare
wrap = |
prepend = LOAD_REGISTER
prepend.posterSpareHint = 1
}
}
}
5260x3720 < .3560x2520
1189x2520 < .3560x2520
7120x2520 < .3560x2520
}
p123search {
delete = 1
label {
preUserFunc = tx_p123search_pi3->getLabel
preUserFunc {
template = ###DATA_PLZ### ###DATA_Ortname######DATA_Standort###
###LL_headerPeriodsNameShort######DATA_ZR###/###DATA_GJ### ###DATA_Beginn### - ###DATA_Ende### (###DATA_Tage### ###LL_headerPeriodsDays###)
template.override = ###DATA_PLZ### ###DATA_Ortname######DATA_Standort###
###DATA_ZR###/ ###DATA_GJ###
template.override.if {
value = _DW
equals.field = group
equals.case = upper
equals.substring = -3,3
}
GJ.setContentToCurrent = 1
GJ.override.if < .template.override.if
GJ.override.current = 1
GJ.override.date = d.m.y
GJ.override.prepend = TEXT
GJ.override.prepend {
lang.en = expected from
lang.de = voraussichtlich ab
noTrimWrap = ||: |
}
ZR.setContentToCurrent = 1
ZR.append = TEXT
ZR.append.if < .template.override.if
ZR.append {
lang.en = years
lang.de = Jahre
override.lang.en = year
override.lang.de = Jahr
override.if.value = 1
override.if.equals.current = 1
noTrimWrap = | ||
}
Standort.htmlSpecialChars = 1
}
}
}
p123search-express {
label < plugin.tx_p123_pi.basket.p123search.label
}
p123search-spare < .p123search
p123search-spare {
label.preUserFunc.template = ###DATA_PLZ### ###DATA_Ortname######DATA_Standort###
}
p123search-coupon {
label < plugin.tx_p123_pi.basket.p123search.label
}
p123designer {
poster {
edit {
lang.en = Please note that failures due to the small amount of poster does not entitle to reclamation or reimbursement of the cost.
lang.de = Bitte beachte, dass Plakatierungsausfälle aufgrund der geringen Plakatmenge nicht zur Reklamation oder Erstattung der Kosten berechtigen.
wrap = count:|
}
editHook = tx_p123designer_pi6->editCount
label {
lang.en = Poster printing & and dispatch rates
lang.de = Plakatdruck- & Versandkosten
override {
lang.en = Costs for production
lang.de = Produktionskosten
if.value = _DW
if.equals.field = group
if.equals.case = upper
if.equals.substring = -3,3
}
postCObject = TEXT
postCObject {
lang.en = including affixing of the posters
lang.de = inklusive Anbringung der Plakate
override {
lang.en = including installation & dismantling
lang.de = inklusive Montage & Demontage
}
noTrimWrap = | (|)|
}
postCObject.override.if < .override.if
postCObject.if.isTrue.dataWrap = {register:onlyProduction}
postCObject.if.negate = 1
append = TEXT
append.lang.en = Not applicable from the third year of booking
append.lang.de = Entfällt ab dem dritten Buchungsjahr
append.wrap =
|
append.if.value = 3560x2520_DW,3560x2521_DW,1189x2520_DW,1189x2521_DW
append.if.isInList.field = group
}
}
spare {
edit {
# lang.en = Poster companies require a certain number of spare posters (10 per cent of the run, rounded up to full posters) in order to organise a poster project. According to our experience, small-scale projects virtually do not require any spare posters. We assume that you would like to do without ordering any spare posters. However, we have to inform you that poster losses (e.g. due to vandalism) based on non-existing spare posters do not justify complaints or the claim for refund of costs.
# lang.de = Die Plakatunternehmen fordern zur Durchführung einer Aktion eine Ersatzplakat-Menge. Erfahrungsgemäß werden bei kleineren Aktionen nahezu keine Ersatzmengen benötigt. Wir gehen davon aus, dass Du auf eine Bestellung von Ersatzplakaten verzichten möchtest. Wir müssen Dich allerdings darauf hinweisen, dass Plakatierungsausfälle (z.B. bei Vandalismus) aufgrund nicht vorliegender Ersatzplakate dann allerdings auch nicht zur Reklamation oder Erstattung der Kosten berechtigen.
# lang.en = I hereby confirm that I do not wish to order the replacement poster and that I have no claim in the event of non-adhesion.
# lang.de = Hiermit bestätige ich, dass ich das Ersatzplakat nicht bestellen möchte und ich im Falle einer Nichtklebung keinen Anspruch auf Reklamation habe.
# lang.en = I hereby confirm that I do not wish to order the replacement poster and that in the event of a complaint I am also not entitled to any rectification or credit note.
# lang.de = Hiermit bestätige ich, dass ich das/die Ersatzplakat(e) nicht bestellen möchte und im Falle einer Reklamation auch keinen Anspruch auf eine Nachbesserung oder Gutschrift habe.
lang.en = The poster companies require a replacement poster quantity for the execution of a campaign, which is always ordered automatically. In case of non-adhesion (e.g. blocked access to the advertising medium for the poster operator or damage to the poster due to weather conditions), your replacement poster will be used for the claim.
Please note
If you do not wish to order replacement posters, press the "Confirm" button. By doing so, you waive the right to a rectification or credit note in the event of a complaint.
lang.de = Die Plakatunternehmen fordern zur Durchführung einer Aktion eine Ersatzplakat-Menge, welche immer automatisch mitbestellt wird. Im Falle einer Nichtklebung (z.B. versperrter Zugang zum Werbeträger für den Plakateur oder Beschädigung des Plakates durch Witterung) wird dein Ersatzplakat für die Reklamation verwendet.
Bitte beachte
Wenn du kein Ersatzplakat bestellen möchtest, drücke auf die Schaltfläche „Bestätigen“. Damit verzichtest du im Falle einer Reklamation auf den Anspruch einer Nachbesserung oder Gutschrift.
wrap = spareMotif:|
wrap2 = tx_p123designer_pi6->|
}
label {
lang.en = Spare quantity
lang.de = Ersatzplakate
}
}
additional {
edit {
lang.en = Extra posters are original posters (comprising four parts) that might be additionally printed if required. If you would like to order one ore more additional posters, please enter the desired number into the provided field. For the dispatch of these posters, we need a dispatch address. Unless you don't give us any additional information, we will send the additional posters to your billing address.
lang.de = Zusatzplakate sind Original-Plakate (in 4 Teilen), die zusätzlich zum Aktionsbedarf gedruckt werden können. Wenn Du ein oder mehrere zusätzliche Plakate haben möchtest, dann trage die gewünschte Menge bitte in das dafür vorgesehene Feld ein. Für den Versand dieser Plakate benötigen wir noch eine Versandanschrift. Wenn Du nichts anderes mitteilst, dann verschicken wir die Zusatzplakate an Deine Rechnungsanschrift.
wrap = count:|
}
label {
lang.en = Additional posters
lang.de = zusätzliche Plakate
}
}
noproduction {
#edit = tx_p123designer_pi6->noProduction:
label {
lang.en = Without poster production & shipping
lang.de = Keine Plakatproduktion & -versand
}
}
dina1 {
edit {
lang.en = We can additionally print your poster motif onto a cellular sheet in DIN A1 format and deliver it to you. This poster is suitable for indoor and outdoor use. The additional costs amount to € 57.77 (excl. VAT) per poster.
lang.de = Wir können Dir Dein Plakatmotiv zusätzlich im DIN A1 Format, gedruckt auf einer Hohlkammerplatte, liefern. Das Poster ist für den Innen- und Außeneinsatz geeignet. Die Zusatzkosten betragen 57,77 Euro (zzgl. MwSt.) pro Poster.
wrap = count:|
}
editHook = tx_p123designer_pi6->editDINA1
label {
lang.en = Poster in DIN A1 format
lang.de = Plakat als DIN A1 Poster
}
}
}
order.options {
1 {
title.lang.en (
Accept
conditions
)
title.lang.de (
Bedingungen
akzeptieren
)
title.trim = 1
title.split {
token.char = 10
cObjNum = 1 |*| 1 |*| 2
1 = TEXT
1.current = 1
1.trim = 1
1.append = TEXT
1.append.char = 10
2 < .1
2.append >
}
evenOdd = 1
## Disabled, due to not integrated into booking system
#1 {
# title.lang.en = Please select:
# title.lang.de = Bitte wählen:
# type = RADIO
# typeCount = 2
# label.lang.en = exclude unavailable locations from the process |*| stop the entire process when at least one location is not available
# label.lang.de = nicht verfügbare Standorte aus der Aktion ausschließen |*| die gesamte Aktion bei mind. einem nicht verfügbaren Standort stoppen
# name = exclude
# value = 0 |*| 1
# defaultValue = 0
# required.lang.en = Please select an option on how we have to react, if a location is not available.
# required.lang.de = Bitte wähle eine Option, wie wir verfahren sollen, wenn ein Standort nicht verfügbar sein sollte.
#}
2 {
title.lang.en = Conditions of Use and Sale
title.lang.de = Allgemeine Geschäftsbedingungen
type = CHECK
label.lang.en = I have read the general terms of use and sale, terms regarding the rights of third parties and confirmation of order & conclusion of the contract and accept them.
label.lang.de = Ich habe die Allgemeinen Geschäftsbedingungen der {$terms.company}, Bedingungen zu Rechten Dritter und Bedingungen zur Auftragsbestätigung und Vertragsabschluss gelesen und bin damit einverstanden.
label.stdWrap.parseFunc = hook
10.preUserFunc {
includeObj = db,sid,sqlWhere,portal,hash,sesName,motifDB,basketDB,query,basket,conf,media,mediaHash,periodData
funcName = basket_find
dontIncludeSetup = 1
pos = additional
ext = p123designer
}
20 < .10
20.preUserFunc.pos = spare
20.wrap = +|
20.if.isFalse.dataWrap = {$plugin.tx_p123_pi.enablePrintDataManager}
30 < .10
30.preUserFunc.pos = dina1
30.wrap = +|
40 < .10
40.preUserFunc.pos = expose
40.wrap = +|
stdWrap.prioriCalc = intval
}
current = 1
innerWrap = remote:|
}
}
11 < .1
11.title.lang.en = Delivery address
11.title.lang.de = Lieferanschrift
11.title.if.directReturn = 0
11.name.wrap = delivery_|
11.depend < .10.depend
11.depend.override = 1
11.depend.override.if.isTrue.current = 1
11.depend.innerWrap.if.isFalse.current = 1
11.depend.outerWrap = local:delivery:|
11.depend.outerWrap.if.isTrue.current = 1
12 < .2
12.name.wrap = delivery_|
12.depend < .11.depend
12.depend.override.lang.en = Company
12.depend.override.lang.de = Firma
12.depend.outerWrap = local:delivery_title:|
13 < .3
13.name.wrap = delivery_|
13.depend < .11.depend
14 < .4
14.name.wrap = delivery_|
14.depend < .11.depend
15 < .5
15.name.wrap = delivery_|
15.depend < .11.depend
16 < .6
16.name.wrap = delivery_|
16.typeCount = 1
16.depend < .11.depend
30 {
title.lang.en = Further billing informations
title.lang.de = Weitere Rechnungsangaben
label.lang.en = Purchase oder number (will be shown on the invoice)
label.lang.de = Bestellnummer (wird auf der Rechnung ausgewiesen)
type = TEXT
name = job_nummer
size = 57
maxlength = 80
}
31 {
label.lang.en = Vat-Id (without spaces)
label.lang.de = USt-IdNr. (ohne Leerzeichen)
type = TEXT
name = vatid
size = 57
maxlength = 19
required = 1
depend = \[AT\]|\[BE\]|\[BG\]|\[CY\]|\[CZ\]|\[DK\]|\[EE\]|\[EL\]|\[ES\]|\[FI\]|\[FR\]|\[GB\]|\[HR\]|\[HU\]|\[IE\]|\[IT\]|\[LT\]|\[LU\]|\[LV\]|\[MT\]|\[NL\]|\[PL\]|\[PT\]|\[RO\]|\[SE\]|\[SI\]|\[SK\]
depend.wrap = local:country_company:|$
pattern = ^([A-Za-z]{2,4}[0-9]{2,12}[A-Za-z0-9]{0,3})$
required.lang.en = The VAT-Id is missing or incorrect
required.lang.de = Die USt-IdNr. fehlt oder ist fehlerhaft
reloadOnUpdate = 1
}
32 {
label.lang.en = Different e-mail address for the invoice receipt
label.lang.de = Abweichende E-Mail-Adresse für den Rechnungsempfang
type = EMAIL
name = emailrg
size = 57
maxlength = 80
}
33 {
label.lang.en = Date of birth
label.lang.de = Geburtsdatum
type = DATE
name = dateofbirth
size = 25
maxlength = 10
required = 1
depend = local:company:^$
pattern.lang.en = ^((19|20)[0-9][0-9])-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$
pattern.lang.de = ^(0[1-9]|[12][0-9]|3[01]).(0[1-9]|1[012]).((19|20)[0-9][0-9])$
required.lang.en = Date of birt is missing or incorrect
required.lang.de = Geburtsdatum fehlt oder ist fehlerhaft
}
# 50 {
# title =
# name = newsletter
# type = LABEL
# label.lang.de = Sofern Du einen Kauf über Waren und Dienstleistungen bei uns unternommen hast, bieten wir Dir Informationen über eigene ähnliche Waren und Dienstleistungen über die beim Kauf übersandte E-Mailadresse an (§ 7 III UWG). Dieser Verwendung Deiner personenbezogenen Daten kannst Du jederzeit widersprechen, ohne dass hierfür andere als die Übermittlungskosten nach den Basistarifen entstehen.
# label.wrap = |
# }
}
3 {
title < plugin.tx_p123_pi.basket.order.options.1.title
title.lang.en (
Select the
payment method
)
title.lang.de (
Zahlungsart
auswählen
)
1 {
title.lang.en = Please select:
title.lang.de = Bitte wählen:
type = RADIO
typeCount = 3
typeCount.override = 1
typeCount.override.if.isTrue {
preUserFunc = tx_p123checkout_pi2->hook
preUserFunc {
includeObj = db,sid,sqlWhere,portal,hash,sesName,motifDB,basketDB,query,basket,conf,media,mediaHash,periodData
funcName = basket_find
dontIncludeSetup = 1
ext = *-express
}
}
label.lang.en = Direct SEPA debit (2% cash discount) - you save {register:cashDiscountVal} || Payment on account |*| Payment in advance
label.lang.de = Bankeinzug durch SEPA-Lastschrift (abzgl. 2% Skonto) - du sparst {register:cashDiscountVal} || Zahlung auf Rechnung |*| Vorkasse
label.override {
lang.en = Payment in advance (for express orders)
lang.de = Vorkasse (bei Express-Aufträgen)
}
label.override.if < .typeCount.override.if
label.preCObject = LOAD_REGISTER
label.preCObject.cashDiscountVal {
preUserFunc = tx_p123checkout_pi2->hook
preUserFunc {
includeObj = db,sid,sqlWhere,portal,hash,sesName,motifDB,basketDB,query,basket,conf,media,mediaHash,periodData
funcName = basket_sum
dontIncludeSetup = 1
format = 0
rKey = net
}
stdWrap.wrap = |*0.02
prioriCalc = 1
postUserFunc = tx_p123checkout_pi2->hook_money_format
}
label.insertData = 1
name = payment
value = 1 || 3 |*| 2
value.override = 2
value.override.if < .typeCount.override.if
defaultValue.override = 2
defaultValue.override.if < .typeCount.override.if
required.lang.en = Please select the type of payment
required.lang.de = Bitte wähle die Zahlungsart
}
# Sepa-Lastschrift
10 {
type = LABEL
name = debit1
label.lang.en = I/ We hereby authorise {$payment.payee} to collect the respective payment from my/ our current account:
label.lang.de = Hiermit ermächtige(n) ich/ wir die {$payment.payee} oder deren Bevollmächtigten, die von mir/ uns zu entrichtende Zahlung bei Fälligkeit zu Lasten meines/ unseres Kontos:
depend = local:payment:1
}
11 {
type = TEXT
label.lang.en = Financial institution (filled automatically)
label.lang.de = Kreditinstitut (wird automatisch eingefügt)
name = sepaname
required.lang.en = Please enter a valid BIC code
required.lang.de = Bitte gib eine gültige BIC ein
depend = local:payment:1
size = 50
maxlength = 40
readonly = 1
}
12 {
type = TEXT |*| TEXT
typeCount = 2
label.lang.en = BIC code (filled automatically) |*| IBAN
label.lang.de = BIC (wird automatisch eingefügt) |*| IBAN
name = sepabic |*| sepaiban
required.lang.en = Please enter a valid BIC code || Please enter a valid IBAN number
required.lang.de = Bitte gib eine gültige BIC ein || Bitte gib eine gültige IBAN ein
depend = local:payment:1
size = 17 |*| 26
maxlength = 11 |*| 36
readonly = 1 |*| 0
pattern = [A-Za-z0-9]* |*| [A-Za-z][A-Za-z][0-9][0-9][A-Za-z0-9]*
}
13 {
type = TEXT
label.lang.en = Account holder
label.lang.de = Kontoinhaber
name = sepaowner
required = 1
depend = local:payment:1
size = 50
maxlength = 80
}
14 {
type = HIDDEN
label.lang.de = Die Bankverbindung konnte nicht automatisch bestätigt werden
label.lang.en = Your bank details could not be confirmed automatically
name = sepaproof
required.lang.en = Please check your IBAN number
required.lang.de = Bitte überprüfe deine IBAN Nummer
depend = local:payment:1
value = 1
defaultValue = 1
pattern = [0]
}
15 {
type = LABEL
name = debit2
label.lang.en = with deduction of 2% discount ({register:cashDiscountVal}) by debit (Lastschrift) when due. In case my/ our account is short of funds the account-holding institute (see above) is not obliged to issue payment. Partial payments will not be accepted within the framework of direct debit.
label.lang.de = unter Abzug von 2% Skonto ({register:cashDiscountVal}) durch Lastschrift einzuziehen. Zugleich weise ich mein/ unser Kreditinstitut an, die vom Zahlungsempfänger auf mein/ unser Konto gezogenen Lastschriften einzulösen. Wenn mein/ unser Konto die erforderliche Deckung nicht aufweist, besteht seitens des kontoführenden Kreditinstituts (s.o.) keine Verpflichtung zur Einlösung. Teileinlösungen werden im Lastschriftverfahren nicht vorgenommen.
label.insertData = 1
depend = local:payment:1
}
16 {
type = LABEL |*| LABEL |*| LABEL
typeCount = 3
name = debit3 |*| debit4 |*| debit5
label.lang.en = Payee: {$payment.payee} |*| Creditor identification number: {$payment.creditor} |*| Mandate reference: {$payment.mandate}{register:tx_p123_pi[session][sid]}
label.lang.de = Zahlungsempfänger: {$payment.payee} |*| Gläubiger-Identifikationsnummer: {$payment.creditor} |*| Mandatsreferenz: {$payment.mandate}{register:tx_p123_pi[session][sid]}
label.insertData = 1
depend = local:payment:1
}
17 {
type = LABEL
label.lang.en = We reserve the right to obtain information about your creditworthiness from Creditreform Herford & Minden Dorff GmbH & Co. KG, Krellstraße 68, 32584 Löhne.
label.lang.de = Wir behalten uns vor, Auskunft über Deine Bonität bei der Creditreform Herford & Minden Dorff GmbH & Co. KG, Krellstraße 68, 32584 Löhne einzuholen.
name = debit6
depend = local:payment:1
}
# Payment in advance
20 {
type = LABEL
label.preUserFunc = tx_p123checkout_pi2->hook
label.preUserFunc {
includeObj = db,sid,sqlWhere,portal,hash,sesName,motifDB,basketDB,query,basket,conf,media,mediaHash,periodData
funcName = basket_sum
dontIncludeSetup = 1
rKey = gross
}
label.noTrimWrap.lang.en = |I agree to a total payment in advance in the amount of |. After incoming payment {$terms.company} will immediately begin with the processing of my order.|
label.noTrimWrap.lang.de = |Ich bin damit einverstanden den gesamten Betrag in Höhe von | per Vorkasse zu überweisen. {$terms.company} beginnt unmittelbar nach Geldeingang mit der Bearbeitung des Auftrages.|
label.outerWrap = |
name = advancepayment
depend = local:payment:2
}
21 {
type = LABEL
typeCount = 4
label.lang.en = Sparkasse Herford || Account holder: {$payment.payee} |*| IBAN: DE72 4945 0120 0209 0077 23 || BIC code: WLAHDE44XXX
label.lang.de = Sparkasse Herford || Kontoinhaber: {$payment.payee} |*| IBAN: DE72 4945 0120 0209 0077 23 || BIC: WLAHDE44XXX
name = advancepayment_bankname || advancepayment_bankowner |*| advancepayment_sepaiban || advancepayment_sepabic
depend = local:payment:2
}
22 {
type = LABEL
typeCount = 4
label.lang.en = Commerzbank Herford || Account holder: {$payment.payee} |*| IBAN: DE15 4944 0043 0240 7534 00 || BIC code: COBADEFFXXX
label.lang.de = Commerzbank Herford || Kontoinhaber: {$payment.payee} |*| IBAN: DE15 4944 0043 0240 7534 00 || BIC: COBADEFFXXX
name = advancepayment2_bankname || advancepayment2_bankowner |*| advancepayment2_sepaiban || advancepayment2_sepabic
depend = local:payment:2
}
24 {
type = LABEL
label.lang.en = Reference field: „Order no {$payment.mandate}{register:tx_p123_pi[session][sid]}“
label.lang.de = Verwendungszweck: „Vorkasse Auftrag {$payment.mandate}{register:tx_p123_pi[session][sid]}“
label.insertData = 1
name = advancepayment_reference
depend = local:payment:2
}
30 {
type = LABEL
label.lang.en = You will receive our invoice together with our order confirmation - payable net before the start of the campaign. We reserve the right to obtain information about your creditworthiness from Creditreform Herford & Minden Dorff GmbH & Co. KG, Krellstraße 68, 32584 Löhne.
label.lang.de = Du erhälst unsere Rechnung zusammen mit unserer Auftragsbestätigung - zahlbar netto bis zum Aktionsbeginn. Wir behalten uns vor, Auskunft über Deine Bonität bei der Creditreform Herford & Minden Dorff GmbH & Co. KG, Krellstraße 68, 32584 Löhne einzuholen.
name = invoice_text
depend = local:payment:3
}
}
}
}
##############################################
### Define new period loader system
datesPeriods {
sql {
fields = GJ,ZR,Termin,Belegung,UNIX_TIMESTAMP(Beginn) AS Beginn,UNIX_TIMESTAMP(Ende) AS Ende,Tage,BTage,ReferenzDekade,ReferenzWoche,IF(Belegung IN('D B', 'D C'), (SELECT UNIX_TIMESTAMP(t.Beginn) FROM 123_ZR AS t WHERE t.GJ=123_ZR.GJ AND t.ZR=123_ZR.ZR AND t.Belegung='D A'), UNIX_TIMESTAMP(Beginn)) AS bookable
from = 123_ZR
where = {$plugin.tx_p123_pi.firstPeriod}
where {
setCurrent = IF(Belegung IN('D B', 'D C'), (SELECT t.Beginn FROM 123_ZR AS t WHERE t.GJ=123_ZR.GJ AND t.ZR=123_ZR.ZR AND t.Belegung='D A'), Beginn)
setCurrent {
override = IF(Belegung IN('D B', 'D C'), (SELECT t.Ende FROM 123_ZR AS t WHERE t.GJ=123_ZR.GJ AND t.ZR=123_ZR.ZR AND t.Belegung='D A'), Ende)
override.if.isTrue = {$plugin.tx_p123_pi.enableExpress}
override.if.value = 1
override.if.isGreaterThan = {$plugin.tx_p123_pi.firstPeriodExpress}
}
override = {$plugin.tx_p123_pi.firstPeriodExpress}
override.if.isTrue = {$plugin.tx_p123_pi.enableExpress}
override.if.value = 1
override.if.isGreaterThan = {$plugin.tx_p123_pi.firstPeriodExpress}
noTrimWrap = |{current:1}>NOW() + INTERVAL | DAY|
outerWrap = (|)
insertData = 1
}
groupBy =
orderBy = Beginn ASC
limit =
}
overrule {
ZR {
stdWrap.wrap = 00|
substring = -2|2
}
Beginn {
date = d.m.y
}
BeginnU {
field = Beginn
}
Ende {
date = d.m.y
}
EndeU {
field = Ende
}
bookable {
setContentToCurrent = 1
setCurrent {
current = 1
stdWrap.wrap = |- (({$plugin.tx_p123_pi.firstPeriod}) * (24 * 60 * 60)) - 1
prioriCalc = 1
}
cObject = LOAD_REGISTER
cObject.bookable {
current = 1
}
override.data = register:bookable
date = d.m.y
}
bookableU {
data = register:bookable
}
ReferenzDekade < .ZR
express = 1
express.if {
isTrue = {$plugin.tx_p123_pi.enableExpress}
value.data = register:bookable
isGreaterThan.date = U
}
expressDays = 0
expressDays {
override {
cObject = COA
cObject {
10 = TEXT
10.field = Beginn
10.wrap = |-
20 = TEXT
20.date = U
stdWrap.stdWrap.wrap = (|) / (24 * 60 * 60)
stdWrap.prioriCalc = 1
}
listNum = 0
listNum.splitChar = .
if {
isTrue = {$plugin.tx_p123_pi.enableExpress}
value.data = register:bookable
isGreaterThan.date = U
}
}
intval = 1
}
dateU.date = U
# __UNSET {
# cObject = COA
# cObject {
# # Unset decade 2 of block B
# #10 = TEXT
# #10.value = 1
# #10.if.value.field = Termin
# #10.if.value.dataWrap = {field:Belegung},|
# #10.if.equals = D B,2013|02
# # Unset every type other than decades
# #20 = TEXT
# #20.value = 1
# #20.if.value = D A,D B
# #20.if.isInList.field = Belegung
# #20.if.negate = 1
# }
# }
}
}
datesPeriodsNextYear < .datesPeriods
##############################################
### Files to store into pdf upload folder
storeFiles {
storePDF = 0
directory = /var/ftp/order.pdf
if {
isTrue.field = poster
value = 594x841,1190x841,1190x1680,1189x2520,1189x2521,1185x1750,1185x1751,3540x2470,3560x2520,3560x2521,7120x2520,5260x3720
isInList.field = format
}
fileName {
cObject = CASE
cObject {
# 1/1 (DIN A1)
594x841 = TEXT
594x841.value = 1_1
# 2/1 (DIN A0)
1190x841 = TEXT
1190x841.value = 2_1
# 4/1
1190x1680 = TEXT
1190x1680.value = 4_1
# City-Light-Säulen
1185x3500 = TEXT
1185x3500.value = CLS
# 6/1
1189x2520 = TEXT
1189x2520.value = 6_1
1189x2521 = TEXT
1189x2521.value = 6_1
# 8/1
1190x3360 = TEXT
1190x3360.value = 8_1
# City-Light-Poster
1185x1750 = TEXT
1185x1750.value = CLP
1185x1751 = TEXT
1185x1751.value = CLP
1185x1752 = TEXT
1185x1752.value = PCLP4_1
# City-Light-Säulen
1185x3500 = TEXT
1185x3500.value = CLS
# Mega-Lights/ City-Light-Boards
3540x2470 = TEXT
3540x2470.value = CLB
# Big-Seven/ Panoramaflächen (36/1)
7120x2520 = TEXT
7120x2520.value = 36_1
# Superposter (40/1)
5260x3720 = TEXT
5260x3720.value = 40_1
# Großflächen (18/1)
default = TEXT
default.value = 18_1
key.field = format
}
dataWrap = {$plugin.tx_p123_pi.sesName}{register:tx_p123_pi[{$plugin.tx_p123_pi.sesName}][sid]}_|.pdf
}
source {
file.field = poster
file.override {
field = poster
if.value.field = poster
if.value.case = lower
if.value.substring = -4,4
if.equals = .pdf
substring = 0,-4
}
file.split {
token = getPdf/
cObjNum = 1 |*| 1 |*| 2
1.current = 1
1.wrap = |services/getPdf.php?code=
2.current = 1
}
}
}
}