Browse code

Add standort to backend views

Benjamin Roth authored on04/09/2023 16:17:33
Showing1 changed files
... ...
@@ -112,6 +112,8 @@ class WeinanlieferungReservationContainerListener
112 112
             $arrSorten = [];
113 113
             $intAvailableBehaelter = $slot->getAvailableBehaelter();
114 114
 
115
+            $Standort = $slot->getRelated('pid');
116
+
115 117
             $Sorten = StringUtil::deserialize($slot->sorten,true);
116 118
             foreach($Sorten as $sorte)
117 119
             {
... ...
@@ -119,7 +121,7 @@ class WeinanlieferungReservationContainerListener
119 121
                 $objLeseart = WeinanlieferungLeseartModel::findByPk($sorte['leseart']);
120 122
                 $arrSorten[] = ($objSorte !== null  ? $objSorte->title : '') . ' ' . ($objLeseart !== null  ? $objLeseart->title : '');
121 123
             }
122
-            $arrData[$slot->id] = Date::parse(Date::getNumericDatimFormat(),$slot->time) . ' - (' . implode(', ',$arrSorten) . ') [Verfügbare Behälter: ' . $intAvailableBehaelter . '/' . $slot->behaelter . ']';
124
+            $arrData[$slot->id] = Date::parse(Date::getNumericDatimFormat(),$slot->time) . ' - ' . ($Standort !== null  ? $Standort->title : $slot->pid) . ' - (' . implode(', ',$arrSorten) . ') [Verfügbare Behälter: ' . $intAvailableBehaelter . '/' . $slot->behaelter . ']';
123 125
         }
124 126
 
125 127
         return $arrData;
Browse code

Update

Benjamin Roth authored on30/08/2023 22:08:09
Showing1 changed files
... ...
@@ -56,6 +56,26 @@ class WeinanlieferungReservationContainerListener
56 56
     }
57 57
 
58 58
     /**
59
+     * @Callback(table="tl_vr_wa_reservation", target="fields.lage.options")
60
+     */
61
+    public function onLageOptionsCallback(DataContainer $dc)
62
+    {
63
+        $arrLagen = [];
64
+
65
+        if (($Slot = WeinanlieferungSlotsModel::findByPk($dc->activeRecord->pid)) === null || $Slot->lage === null)
66
+        {
67
+            return $arrLagen;
68
+        }
69
+
70
+        if (($Lagen = $Slot->getRelated('lage')) !== null)
71
+        {
72
+            $arrLagen = array_combine($Lagen->fetchEach('id'),$Lagen->fetchEach('title'));
73
+        }
74
+
75
+        return $arrLagen;
76
+    }
77
+
78
+    /**
59 79
      * @Callback(table="tl_vr_wa_reservation", target="fields.ernteart.options")
60 80
      */
61 81
     public function onErnteartOptionsCallback(DataContainer $dc)
... ...
@@ -70,7 +90,7 @@ class WeinanlieferungReservationContainerListener
70 90
         $Ernteart = explode(',',$Slot->ernteart);
71 91
         foreach($Ernteart as $art)
72 92
         {
73
-            $arrErnteart[] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$art] ?? $art;
93
+            $arrErnteart[$art] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$art] ?? $art;
74 94
         }
75 95
 
76 96
         return $arrErnteart;
Browse code

Lot's of changes and improvements

Benjamin Roth authored on30/08/2023 17:18:43
Showing1 changed files
... ...
@@ -56,6 +56,27 @@ class WeinanlieferungReservationContainerListener
56 56
     }
57 57
 
58 58
     /**
59
+     * @Callback(table="tl_vr_wa_reservation", target="fields.ernteart.options")
60
+     */
61
+    public function onErnteartOptionsCallback(DataContainer $dc)
62
+    {
63
+        $arrErnteart = [];
64
+
65
+        if (($Slot = WeinanlieferungSlotsModel::findByPk($dc->activeRecord->pid)) === null || $Slot->ernteart === null)
66
+        {
67
+            return $arrErnteart;
68
+        }
69
+
70
+        $Ernteart = explode(',',$Slot->ernteart);
71
+        foreach($Ernteart as $art)
72
+        {
73
+            $arrErnteart[] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$art] ?? $art;
74
+        }
75
+
76
+        return $arrErnteart;
77
+    }
78
+
79
+    /**
59 80
      * @Callback(table="tl_vr_wa_reservation", target="fields.pid.options")
60 81
      */
61 82
     public function onPidOptionsCallback(DataContainer $dc)
Browse code

Update

Benjamin Roth authored on17/08/2023 13:08:09
Showing1 changed files
... ...
@@ -68,7 +68,36 @@ class WeinanlieferungReservationContainerListener
68 68
         $arrData = [];
69 69
         foreach ($Slots as $slot)
70 70
         {
71
-            $arrData[$slot->id] = Date::parse(Date::getNumericDatimFormat(),$slot->time);
71
+            $arrSorten = [];
72
+            $intAvailableBehaelter = $slot->getAvailableBehaelter();
73
+
74
+            $Sorten = StringUtil::deserialize($slot->sorten,true);
75
+            foreach($Sorten as $sorte)
76
+            {
77
+                $objSorte = WeinanlieferungRebsorteModel::findByPk($sorte['sorte']);
78
+                $objLeseart = WeinanlieferungLeseartModel::findByPk($sorte['leseart']);
79
+                $arrSorten[] = ($objSorte !== null  ? $objSorte->title : '') . ' ' . ($objLeseart !== null  ? $objLeseart->title : '');
80
+            }
81
+            $arrData[$slot->id] = Date::parse(Date::getNumericDatimFormat(),$slot->time) . ' - (' . implode(', ',$arrSorten) . ') [Verfügbare Behälter: ' . $intAvailableBehaelter . '/' . $slot->behaelter . ']';
82
+        }
83
+
84
+        return $arrData;
85
+    }
86
+
87
+    /**
88
+     * @Callback(table="tl_vr_wa_reservation", target="fields.uid.options")
89
+     */
90
+    public function onUidOptionsCallback(DataContainer $dc)
91
+    {
92
+        if (($Members = \MemberModel::findAll()) === null)
93
+        {
94
+            return [];
95
+        }
96
+
97
+        $arrData = [];
98
+        foreach ($Members as $member)
99
+        {
100
+            $arrData[$member->id] = ($member->memberno !== null && $member->memberno ? $member->memberno.' ' : '') . $member->firstname . ' ' . $member->lastname . ' [' . $member->email . ']';
72 101
         }
73 102
 
74 103
         return $arrData;
Browse code

Update

Benjamin Roth authored on17/08/2023 00:07:19
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,76 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+ * This file is part of contao-weinanlieferung-bundle.
7
+ *
8
+ * (c) vonRotenberg
9
+ *
10
+ * @license commercial
11
+ */
12
+
13
+namespace vonRotenberg\WeinanlieferungBundle\EventListener\DataContainer;
14
+
15
+use Contao\CoreBundle\ServiceAnnotation\Callback;
16
+use Contao\DataContainer;
17
+use Contao\Date;
18
+use Contao\StringUtil;
19
+use Doctrine\DBAL\Connection;
20
+use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungLeseartModel;
21
+use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungRebsorteModel;
22
+use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungSlotsModel;
23
+
24
+class WeinanlieferungReservationContainerListener
25
+{
26
+    /** @var Connection */
27
+    protected $db;
28
+
29
+    public function __construct(Connection $db)
30
+    {
31
+        $this->db = $db;
32
+    }
33
+
34
+
35
+    /**
36
+     * @Callback(table="tl_vr_wa_reservation", target="fields.sorten.options")
37
+     */
38
+    public function onSortenOptionsCallback(DataContainer $dc)
39
+    {
40
+        $arrSorten = [];
41
+
42
+        if (($Slot = WeinanlieferungSlotsModel::findByPk($dc->activeRecord->pid)) === null)
43
+        {
44
+            return $arrSorten;
45
+        }
46
+
47
+        $Sorten = StringUtil::deserialize($Slot->sorten,true);
48
+        foreach($Sorten as $sorte)
49
+        {
50
+            $objSorte = WeinanlieferungRebsorteModel::findByPk($sorte['sorte']);
51
+            $objLeseart = WeinanlieferungLeseartModel::findByPk($sorte['leseart']);
52
+            $arrSorten[$objSorte->id.','.$objLeseart->id] = ($objSorte !== null  ? $objSorte->title : '') . ' ' . ($objLeseart !== null  ? $objLeseart->title : '');
53
+        }
54
+
55
+        return $arrSorten;
56
+    }
57
+
58
+    /**
59
+     * @Callback(table="tl_vr_wa_reservation", target="fields.pid.options")
60
+     */
61
+    public function onPidOptionsCallback(DataContainer $dc)
62
+    {
63
+        if (($Slots = WeinanlieferungSlotsModel::findAllFuturePublished()) === null)
64
+        {
65
+            return [];
66
+        }
67
+
68
+        $arrData = [];
69
+        foreach ($Slots as $slot)
70
+        {
71
+            $arrData[$slot->id] = Date::parse(Date::getNumericDatimFormat(),$slot->time);
72
+        }
73
+
74
+        return $arrData;
75
+    }
76
+}