############################################### ### 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 } } } }