Try it like this:
{
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"functionCode": "const newItems = [];\nfor (const item of items) {\n newItems.push(item.json);\n}\nreturn newItems;\n"
},
"name": "Split",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1040,
300
]
},
{
"parameters": {
"functionCode": "// remove older days, where you can not order for sure\n\nfunction getMonday(d) {\n d = new Date(d);\n var day = d.getDay(),\n diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday\n return new Date(d.setDate(diff));\n}\n\nfunction addDays(date, days) {\n var result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n}\n\nconst days = [];\n\nfor (let [key, value] of Object.entries(item)) {\n if (!value.includes(\"€\") && key !== \"menu\") delete item[key];\n}\n\nfor (let [key, value] of Object.entries(item)) {\n if (key !== \"menu\") {\n const day = Object();\n day.menu = item.menu;\n day.dayname = key;\n var date_monday = getMonday(new Date);\n switch (key) {\n case \"Montag\":\n day.daydate = getMonday(new Date).toISOString().slice(0, 19).replace('T', ' ');\n break;\n case \"Dienstag\":\n var date_day = addDays(date_monday,1);\n day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n break;\n case \"Mittwoch\":\n var date_day = addDays(date_monday,2);\n day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n break;\n case \"Donnerstag\":\n var date_day = addDays(date_monday,3);\n day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n break;\n case \"Freitag\":\n var date_day = addDays(date_monday,4);\n day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n break;\n case \"Samstag\":\n var date_day = addDays(date_monday,5); \n day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n break;\n case \"Sonntag\":\n var date_day = addDays(date_monday,6); \n day.daydate = date_day.toISOString().slice(0, 19).replace('T', ' ');\n break;\n } \n day.gericht = value.split(\";\")[0].replace(\"VEGGIE\",\"🌱- \").replace(\"VEGAN\",\"🌱🌱 - \").replace(\"mit\",\" - mit\").replace(\"A1\",\"\").replace(\"6\",\"\").replace(\"1\",\"\").trim();\n var myRegexp = /(\\d*\\.\\d*\\s€)/g;\n var match = myRegexp.exec(value);\n match = (match !== null && match.length === 2) ? match[1] : \"\";\n day.preis = match;\n delete item[key];\n days.push(day)\n }\n}\ndelete item[\"menu\"]\nitem.json = days;\nreturn item;"
},
"name": "prepare Data",
"type": "n8n-nodes-base.functionItem",
"typeVersion": 1,
"position": [
840,
300
],
"color": "#B3AA89"
},
{
"parameters": {
"functionCode": "const newItems = [];\nvar i = 0;\nfor (const item of items[0].json.data[0][0]) {\n var is_named = false\n if (item[0] === \"\") {\n if (i < 7) { \n item.menu = \"Menü \" + i\n } else if (i == 7) {\n item.menu = \"Wochenmenü\"\n } else if (i > 7 && i < 12) {\n item.menu = \"S\" + (i - 7)\n } else if (i > 11) {\n item.menu = \"W\" + (i - 11)\n } \n } else {\n item.menu = item[0].split(\"\\n\").join(\"\");\n is_named = true\n }\n if (i !== 0) newItems.push({json: item});\n if (!is_named) i++;\n}\nreturn newItems;\n"
},
"name": "Split & Manage Menus",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
640,
300
]
},
{
"parameters": {
"functionCode": "items[0].json.data = [\n [\n [\n {\n \"0\": \"\",\n \"Montag\": \"\",\n \"Dienstag\": \"\",\n \"Mittwoch\": \"\",\n \"Donnerstag\": \"\",\n \"Freitag\": \"\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"VEGGIEExotische Rote- Bete- Suppe mit Apfel, Ingwer, Karotten und Frischkäse6;A1;G;I\",\n \"Dienstag\": \"VEGANSchwarzwurzelcremesuppe mit gerösteten Sonnenblumenkernen, dazu SteinofenbaguetteA1;A2;A3;I\",\n \"Mittwoch\": \"Linseneintopfsüß- sauermit Wiener WürstchenA1;G;I:S;T\",\n \"Donnerstag\": \"VEGGIEKarotten- Ingwer- Orangen- Cremesuppe,dazu PizzabrotA1;C;G;I\\n \\n\\n\\n 3.75 €\",\n \"Freitag\": \"Kesselgulaschmit KartoffelwürfelA1;I;R;S\\n \\n\\n\\n 3.75 €\",\n \"Samstag\": \"Fischfiletmit Gemüseund KartoffelpüreeA1;D;G;I\\n \\n\\n\\n 4.25 €\",\n \"Sonntag\": \"Gemüseeintopfmit HähnchenstreifenA1;G;I;T\\n \\n\\n\\n 3.85 €\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Schweinegeschnetzeltes \\\"Züricher Art\\\"mit Brösel- SpätzleA1;C;G;I;S\",\n \"Dienstag\": \"Krautroulademit deftiger Soßeund PetersilienkartoffelnA1;C;G;I;S\",\n \"Mittwoch\": \"VEGGIEÜberbackener Chicorée mit Hollandaise und Käse überbacken, dazu GnocchiA1;A3;C;F;G;I\",\n \"Donnerstag\": \"Hausgemachte Eierkuchenmit Zimt, Zucker und SchokoladensoßeA1;C;G\\n \\n\\n\\n 3.95 €\",\n \"Freitag\": \"VEGGIEGebackener Blumenkohl mit Tomaten- Hollandaise und GnocchiA1;A3;C;F;G;I\\n \\n\\n\\n 4.25 €\",\n \"Samstag\": \"Szegediner Gulaschmit KnödelnA1;C;G;I;S\\n \\n\\n\\n 4.05 €\",\n \"Sonntag\": \"Schnitzelmit Bohnengemüseund KartoffelnA1;C;G;I;S\\n \\n\\n\\n 4.25 €\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Seelachsfilet mit Meerrettich- Kräuter- Kruste, Hollandaise und Dill- KartoffelnA1;A3;C;D;F;G;I\",\n \"Dienstag\": \"Zitronen- Hähnchenkeulemit gebratenem GemüsereisA1;G;I;T\",\n \"Mittwoch\": \"Welsfiletmit Dijon- Senfsoße, Brokkoli und Kartoffelpüree6;A1;C;G;I;S\",\n \"Donnerstag\": \"Schweineroulademit Rotkohlund Klöße6;A1;I;J;S\\n \\n\\n\\n 4.45 €\",\n \"Freitag\": \"Pulled Porkmit Ofengemüse und Kartoffelgratin, dazu BBQ- Dip6;A1;B;F;G;I;J;K;S\\n \\n\\n\\n 4.45 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"VEGGIEEieromelette mit Ricotta- Käsefüllung, dazu Bio- Brokkoli und SüßkartoffelstampfA1;C;G;I\",\n \"Dienstag\": \"SpaghettiBolognese,dazu Käse1;A1;G;I;R;S\\n \\n\\n\\n 1x bestellt\",\n \"Mittwoch\": \"Königsberger Klopsemit Kapernsoßeund ReisA1;G;I;S\",\n \"Donnerstag\": \"Gebratene Hähnchenbrustmit frischem Gemüseund SchwenkkartoffelnA1;G;I;T\\n \\n\\n\\n 4.45 €\",\n \"Freitag\": \"Buntbarschfiletin Limettenbuttersoße mit Linsenrisotto und rustikalem GemüseA1;A3;C;D;F;H;I\\n \\n\\n\\n 4.45 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Spirellimit Tomatensoßeund JägerschnitzelA1;A2;C;I;J;S\",\n \"Dienstag\": \"Hausgemachter Schweizer Rösti mit Räucherlachs, Zucchinigemüse und Käse überbacken, dazu Joghurt- Tomaten- DipA1;C;D;G\\n \\n\\n\\n 1x bestellt\",\n \"Mittwoch\": \"Prager Schwarzbiergulaschmit Rotkohl und böhmischen Knödeln6;A1;C;G;I;S\",\n \"Donnerstag\": \"Hackbällchen- Champignon- Pfannemit Zwiebeln und Tomaten- ReisA1;C;G;I;J;T\\n \\n\\n\\n 4.05 €\",\n \"Freitag\": \"Deftige Krautnudelnmit Salami, dazu KäseA1;G;I;T\\n \\n\\n\\n 4.05 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Nürnberger Würstchenmit Sauerkrautund KartoffelpüreeA1;G;I;S\",\n \"Dienstag\": \"VEGGIERicotta- Spinat- Cannelloni mit Tomatenconcassee und BrokkoliA1;C;G;I\\n \\n\\n\\n 2x bestellt\",\n \"Mittwoch\": \"Bauernfrühstückmit Schinkenstreifen und Essiggurke6;A1;C;G;S\",\n \"Donnerstag\": \"Makkaronimit Tomatensoße, Jagdwurst- und Salamiwürfel, dazu Käse1;A1;G;I;J;S\\n \\n\\n\\n 4.05 €\",\n \"Freitag\": \"Paniertes Putenschnitzel mit Buttermöhren und PetersilienkartoffelnA1;C;G;I;T\\n \\n\\n\\n 4.45 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"X\\nX\\nL\\n-\\nM\\ne\\nn\\nü\",\n \"Montag\": \"Schweinegeschnetzeltes \\\"Züricher Art\\\"mit Brösel- SpätzleA1;C;G;I;S\",\n \"Dienstag\": \"SpaghettiBolognese,dazu Käse1;A1;G;I;R;S\",\n \"Mittwoch\": \"Linseneintopfsüß- sauermit Wiener WürstchenA1;G;I:S;T\",\n \"Donnerstag\": \"Makkaronimit Tomatensoße, Jagdwurst- und Salamiwürfel, dazu Käse1;A1;G;I;J;S\\n \\n\\n\\n 4.85 €\",\n \"Freitag\": \"Deftige Krautnudelnmit Salami, dazu KäseA1;G;I;T\\n \\n\\n\\n 4.85 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"F\\ni\\nt\\nM\\ne\\n \\nM\\ne\\nn\\nü\",\n \"Montag\": \"Stroganoff 2.0Beefgeschnetzeltes mit grünen Bohnen, Vollkornspirelli und pfeffriger SoßeA1;F;D;H1;I;K;R\",\n \"Dienstag\": \"Seelachs im KräutermantelSeelachs mit Bulgur- Linsencurry und PaprikaA1;D;K\",\n \"Mittwoch\": \"Sweet Potato ChickenHuhn mit cremiger Spinatsauce und KichererbsenA1;G;H1;K;T\",\n \"Donnerstag\": \"Spaghetti TunaVollkornspagetti mit Thunfisch und TomatensauceA1;D;G;K\\n \\n\\n\\n 4.95 €\",\n \"Freitag\": \"kalter Quinoa Linsensalat mit Hähnchen, Zucchini, Karotten, Paprika und Zitronen- VinaigretteL;T\\n \\n\\n\\n 4.95 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\",\n \"Dienstag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\",\n \"Mittwoch\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\",\n \"Donnerstag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\\n \\n\\n\\n 6.95 €\",\n \"Freitag\": \"Entenkeulemit gebratenem Rotkohl und Klöße6;A1;I;T\\n \\n\\n\\n 6.95 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\",\n \"Dienstag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\",\n \"Mittwoch\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\",\n \"Donnerstag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\\n \\n\\n\\n 4.99 €\",\n \"Freitag\": \"Omega 3 Bowl - Räucherlachs auf knackigen Blattsalaten mit Gurke, Tomate und Rucola, dazu Frischkäsedressing D;G;M\\n \\n\\n\\n 4.99 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\",\n \"Dienstag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\",\n \"Mittwoch\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\",\n \"Donnerstag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\\n \\n\\n\\n 4.89 €\",\n \"Freitag\": \"Gebratene Hähnchenbruststreifen mit Honig glasiert, Blattsalate, Tomaten, Gurken, Paprika und Rucola, dazu Joghurtdressing mit Bio- Joghurt 1;G;K;T\\n \\n\\n\\n 4.89 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\",\n \"Dienstag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\",\n \"Mittwoch\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\",\n \"Donnerstag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\\n \\n\\n\\n 4.79 €\",\n \"Freitag\": \"Chefsalat - Gemischter Salat mit Gurken, Tomaten, Schinken, geriebenem Gouda und Ei, dazu French- Vinaigrette 1;C;G;J;M;S\\n \\n\\n\\n 4.79 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\",\n \"Dienstag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\",\n \"Mittwoch\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\",\n \"Donnerstag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\\n \\n\\n\\n 4.89 €\",\n \"Freitag\": \"Quinoa- Rote- Linsen- Salat mit Apfel, Paprika, gebackenem Feta, Champignons und Blattsalat, dazu Senfvinaigrette G;J;M\\n \\n\\n\\n 4.89 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"D\\ne\\ns\\ns\\ne\\nr\\nt\",\n \"Montag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\",\n \"Dienstag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\",\n \"Mittwoch\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\",\n \"Donnerstag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\\n \\n\\n\\n 0.95 €\",\n \"Freitag\": \"Cheesecake- Creme mit Salzkaramellsoße und Mandelcrumble A1;C;G;H1\\n \\n\\n\\n 0.95 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\",\n \"Dienstag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\",\n \"Mittwoch\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\",\n \"Donnerstag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\\n \\n\\n\\n 4.49 €\",\n \"Freitag\": \"Wrap mit Spicy Mayo, Roter Bete, geräucherter Putenbrust, frischem Blattsalat, Gurke und Hirtenkäse 1;6;7;C;G;M;K;T\\n \\n\\n\\n 4.49 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"\",\n \"Montag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\",\n \"Dienstag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\",\n \"Mittwoch\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\",\n \"Donnerstag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\\n \\n\\n\\n 4.49 €\",\n \"Freitag\": \"Pulled Pork Wrap - Pulled Pork, BBQ- Dip, Eisbergsalat, American Coleslaw, Tomaten und Gurken 6;A1;F;I;K;S\\n \\n\\n\\n 4.49 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n },\n {\n \"0\": \"S\\np\\na\\nr\\nm\\ne\\nn\\nü\",\n \"Montag\": \"Sparmenü(nicht online bestellbar)\",\n \"Dienstag\": \"Sparmenü(nicht online bestellbar)\",\n \"Mittwoch\": \"Sparmenü(nicht online bestellbar)\",\n \"Donnerstag\": \"Sparmenü(nicht online bestellbar)\\n \\n\\n\\n 2.66 €\",\n \"Freitag\": \"Sparmenü(nicht online bestellbar)\\n \\n\\n\\n 2.66 €\",\n \"Samstag\": \"\",\n \"Sonntag\": \"\"\n }\n ]\n ]\n]\nreturn items;"
},
"name": "Function",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
440,
300
]
},
{
"parameters": {
"functionCode": "const result = []\nfor (item of items) {\n for (json of item.json) {\n result.push({\n json: {...json }\n })\n }\n}\n\nreturn result"
},
"name": "Function1",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1230,
300
]
},
{
"parameters": {
"table": "menus",
"columns": "menu,dayname,daydate,gericht,preis"
},
"name": "MySQL",
"type": "n8n-nodes-base.mySql",
"typeVersion": 1,
"position": [
1430,
300
]
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Split": {
"main": [
[
{
"node": "Function1",
"type": "main",
"index": 0
}
]
]
},
"prepare Data": {
"main": [
[
{
"node": "Split",
"type": "main",
"index": 0
}
]
]
},
"Split & Manage Menus": {
"main": [
[
{
"node": "prepare Data",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "Split & Manage Menus",
"type": "main",
"index": 0
}
]
]
},
"Function1": {
"main": [
[
{
"node": "MySQL",
"type": "main",
"index": 0
}
]
]
}
}
}