FabioFratini пре 10 месеци
родитељ
комит
a7c56de9e0
3 измењених фајлова са 159 додато и 103 уклоњено
  1. 13 0
      app/Http/Livewire/Receipt.php
  2. 123 81
      resources/views/livewire/receipt.blade.php
  3. 23 22
      routes/web.php

+ 13 - 0
app/Http/Livewire/Receipt.php

@@ -4,6 +4,8 @@ namespace App\Http\Livewire;
 
 use Livewire\Component;
 use Barryvdh\DomPDF\Facade\Pdf;
+use App\Models\Member;
+
 
 class Receipt extends Component
 {
@@ -12,6 +14,14 @@ class Receipt extends Component
     public $filterStatus = '';
     public $hasFilter = false;
     public $filterFrom = '', $filterTo = '';
+    public $filteredMemberId = '';
+    public $members = [];
+
+    public function mount()
+    {
+        // Load members for the dropdown
+        $this->members = Member::orderBy('last_name')->orderBy('first_name')->get();
+    }
 
     public function updatedFilterFrom()
     {
@@ -35,6 +45,8 @@ class Receipt extends Component
                 $r = $r->where('date', '>=', $this->filterFrom);
             if ($this->filterTo != '')
                 $r = $r->where('date', '<=', $this->filterTo);
+            if ($this->filteredMemberId != '')
+                $r = $r->where('member_id', $this->filteredMemberId);
 
             $this->records = $r->get();
         }
@@ -68,6 +80,7 @@ class Receipt extends Component
         $this->filterStatus = "";
         $this->filterTo = '';
         $this->filterFrom = '';
+        $this->filteredMemberId = '';
         $this->hasFilter = false;
     }
 

+ 123 - 81
resources/views/livewire/receipt.blade.php

@@ -1,6 +1,7 @@
 <div class="col card--ui" id="card--dashboard">
 
-    <header id="title--section" style="display:none !important"  class="d-flex align-items-center justify-content-between">
+    <header id="title--section" style="display:none !important"
+        class="d-flex align-items-center justify-content-between">
         <div class="title--section_name d-flex align-items-center justify-content-between">
             <i class="ico--ui title_section utenti me-2"></i>
             <h2 class="primary">Ricevute</h2>
@@ -16,7 +17,7 @@
 
     </header>
 
-    <div class="showFilter" style="display:none"  wire:ignore.self>
+    <div class="showFilter" style="display:none" wire:ignore.self>
         <hr size="1">
         <div class="row g-3">
             <div class="col-md-2">
@@ -31,10 +32,12 @@
                         <input id="dateTo" type="date" class="form-control filterTo" name="txtTo">
                     </div>
                     <div class="col-6 mt-2">
-                        <button class="btn--ui lightGrey todayButton" style="width:100%" onclick="setToday('{{date("Y-m-d")}}')">OGGI</button>
+                        <button class="btn--ui lightGrey todayButton" style="width:100%"
+                            onclick="setToday('{{date("Y-m-d")}}')">OGGI</button>
                     </div>
                     <div class="col-6 mt-2">
-                        <button class="btn--ui lightGrey yesterdayButton" style="width:100%" onclick="setYesterday('{{date("Y-m-d",strtotime("-1 days"))}}')">IERI</button>
+                        <button class="btn--ui lightGrey yesterdayButton" style="width:100%"
+                            onclick="setYesterday('{{date("Y-m-d", strtotime("-1 days"))}}')">IERI</button>
                     </div>
                 </div>
             </div>
@@ -52,6 +55,22 @@
                     </div>
                 </div>
             </div>
+            <div class="col-md-3">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Cerca Utente</b>
+                    </div>
+                    <div class="col-12">
+                        <select class="form-select filterMember" wire:model="filteredMemberId">
+                            <option value="">--Seleziona Utente--</option>
+                            @foreach($members as $member)
+                                <option value="{{ $member->id }}">{{ $member->last_name }} {{ $member->first_name }}
+                                </option>
+                            @endforeach
+                        </select>
+                    </div>
+                </div>
+            </div>
         </div>
         <div class="row g-3">
             <div class="col-md-12" style="text-align:right">
@@ -88,15 +107,23 @@
                             <td>{{$record->type == 'IN' ? ($record->member->first_name) : ''}}</td>
                             <td>
                                 <span class="tablesaw-cell-content">
-                                    <span class="badge tessera-badge {{$record->status == 1 ? 'active' : 'suspended'}}">{{$record->status == 1 ? 'Attivo' : 'Annullata'}}</span>
+                                    <span
+                                        class="badge tessera-badge {{$record->status == 1 ? 'active' : 'suspended'}}">{{$record->status == 1 ? 'Attivo' : 'Annullata'}}</span>
                                 </span>
                             </td>
                             <td>{{date("d/m/Y", strtotime($record->date))}}</td>
                             <td>{{formatPrice($record->rows->sum('amount'))}}</td>
                             <td>
-                                <button type="button" class="btn u" onclick="document.location.href='/in?id={{$record->record_id}}'" data-bs-toggle="popover"  data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Visualizza ricevuta"><i class="fa-regular fa-eye"></i></button>
-                                <a target="_blank" class="btn  u" href="/receipt/{{$record->id}}" data-bs-toggle="popover"  data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Stampa ricevuta"><i class="fa-regular fa-file-lines"></i></a>
-                                <a target="_blank" class="btn u" onclick="sendMail({{$record->id}})"><i class="fa-regular fa-envelope" data-bs-toggle="popover"  data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Invia email"></i></a>
+                                <button type="button" class="btn u"
+                                    onclick="document.location.href='/in?id={{$record->record_id}}'" data-bs-toggle="popover"
+                                    data-bs-trigger="hover focus" data-bs-placement="bottom"
+                                    data-bs-content="Visualizza ricevuta"><i class="fa-regular fa-eye"></i></button>
+                                <a target="_blank" class="btn  u" href="/receipt/{{$record->id}}" data-bs-toggle="popover"
+                                    data-bs-trigger="hover focus" data-bs-placement="bottom"
+                                    data-bs-content="Stampa ricevuta"><i class="fa-regular fa-file-lines"></i></a>
+                                <a target="_blank" class="btn u" onclick="sendMail({{$record->id}})"><i
+                                        class="fa-regular fa-envelope" data-bs-toggle="popover" data-bs-trigger="hover focus"
+                                        data-bs-placement="bottom" data-bs-content="Invia email"></i></a>
                             </td>
                         </tr>
                     @endforeach
@@ -112,54 +139,60 @@
 @push('scripts')
     <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
     <style>
-        .select2-container--default .select2-selection--single{
+        .select2-container--default .select2-selection--single {
             background-color: #E9F0F5;
             border: 0.0625rem solid #DFE5EB;
             font-size: 0.75rem;
         }
-        .select2-selection
-        {
+
+        .select2-selection {
             height: 38px !important;
         }
-        .select2-selection__rendered
-        {
-            padding-top:3px;
+
+        .select2-selection__rendered {
+            padding-top: 3px;
         }
+
         .select2 {
-            width:100% !important;
+            width: 100% !important;
         }
     </style>
-    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js"
+        integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
     <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
 @endpush
 
 @push('scripts')
     <link href="/css/datatables.css" rel="stylesheet" />
-    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js"
+        integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
 
 
     <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
     <style>
-        .select2-container--default .select2-selection--single{
+        .select2-container--default .select2-selection--single {
             background-color: #E9F0F5;
             border: 0.0625rem solid #DFE5EB;
             font-size: 0.75rem;
         }
-        .select2-selection
-        {
+
+        .select2-selection {
             height: 38px !important;
         }
-        .select2-selection__rendered
-        {
-            padding-top:3px;
+
+        .select2-selection__rendered {
+            padding-top: 3px;
         }
+
         .select2 {
-            width:100% !important;
+            width: 100% !important;
         }
-        .select2-selection--multiple{
+
+        .select2-selection--multiple {
             overflow: hidden !important;
             height: auto !important;
         }
+
         .select2-container {
             box-sizing: border-box;
             display: inline-block;
@@ -167,6 +200,7 @@
             position: relative;
             vertical-align: middle;
         }
+
         .select2-container .select2-selection--single {
             box-sizing: border-box;
             cursor: pointer;
@@ -175,6 +209,7 @@
             user-select: none;
             -webkit-user-select: none;
         }
+
         .select2-container .select2-selection--single .select2-selection__rendered {
             display: block;
             padding-left: 8px;
@@ -183,11 +218,13 @@
             text-overflow: ellipsis;
             white-space: nowrap;
         }
-        .select2-selection__choice__display{
-            color:#000000 !important;
+
+        .select2-selection__choice__display {
+            color: #000000 !important;
         }
     </style>
-    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js"
+        integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
     <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
     <script src="/assets/js/datatables.js"></script>
     <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
@@ -199,85 +236,88 @@
 @push('scripts')
     <script>
 
-        $(document).ready(function() {
+        $(document).ready(function () {
             loadDataTable();
-        } );
+        });
+
+        $('.filterStatus').select2({ "language": { "noResults": function () { return "Nessun risultato"; } } });
+        $('.filterMember').select2({
+            "language": { "noResults": function () { return "Nessun risultato"; } }
+        });
 
-        $('.filterStatus').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
 
         Livewire.on('load-data-table', () => {
-            $('.filterStatus').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
+            $('.filterStatus').select2({ "language": { "noResults": function () { return "Nessun risultato"; } } });
+            $('.filterMember').select2({ "language": { "noResults": function () { return "Nessun risultato"; } } });
+
             loadDataTable();
         });
 
         Livewire.on('load-data-table', () => {
-            setTimeout(function() {loadDataTable()}, 100);
+            setTimeout(function () { loadDataTable() }, 100);
         });
 
         Livewire.on('destroy-data-table', () => {
             $('#tablesaw-350').DataTable().destroy();
         });
 
-        function destroyDataTable()
-        {
+        function destroyDataTable() {
             $('#tablesaw-350').DataTable().destroy();
         }
 
         var isFilter = false;
-        $(document).ready(function() {
-            $(document).on("click",".showHideFilter",function() {
-                if (isFilter)
-                {
+        $(document).ready(function () {
+            $(document).on("click", ".showHideFilter", function () {
+                if (isFilter) {
                     isFilter = false;
                     $(".showFilter").hide();
                 }
-                else
-                {
+                else {
                     isFilter = true;
                     $(".showFilter").show();
                 }
             });
-        } );
+        });
 
-        function sendMail(id)
-        {
-            $.get("/receipt/mail/" + id, function(data, status){
+        function sendMail(id) {
+            $.get("/receipt/mail/" + id, function (data, status) {
                 alert('Mail inviata');
             });
         }
 
         @if(isset($_GET["showFilters"]))
             var filterStatus = localStorage.getItem("filterStatusReceipt");
-            if (filterStatus)
-            {
+            if (filterStatus) {
                 $('.filterStatus').val(filterStatus).trigger('change');
             }
             var filterFrom = localStorage.getItem("filterFromReceipt");
-            if (filterFrom)
-            {
+            if (filterFrom) {
                 $('input[name="txtFrom"]').val(filterFrom);
             }
             var filterTo = localStorage.getItem("filterToReceipt");
-            if (filterTo)
-            {
+            if (filterTo) {
                 $('input[name="txtTo"]').val(filterFrom);
             }
+            var filterMember = localStorage.getItem("filterMemberReceipt");
+            if (filterMember) {
+                $('.filterMember').val(filterMember).trigger('change');
+            }
         @endif
 
-        function reset()
-        {
-            $(".todayButton").addClass("lightGrey");
-            $(".yesterdayButton").addClass("lightGrey");
-            $('.filterStatus').val(null).trigger("change");
-            $('.filterFrom').val('');
-            $('.filterTo').val('');
-            destroyDataTable();
-            loadDataTable();
-        }
+            function reset() {
+                $(".todayButton").addClass("lightGrey");
+                $(".yesterdayButton").addClass("lightGrey");
+                $('.filterStatus').val(null).trigger("change");
+                $('.filterMember').val(null).trigger("change");
+                $('.filterFrom').val('');
+                $('.filterTo').val('');
+                destroyDataTable();
+                loadDataTable();
+            }
 
-        function loadDataTable(){
+        function loadDataTable() {
 
-            if ( $.fn.DataTable.isDataTable('#tablesaw-350') ) {
+            if ($.fn.DataTable.isDataTable('#tablesaw-350')) {
                 $('#tablesaw-350').DataTable().destroy();
             }
 
@@ -290,19 +330,22 @@
             var filterTo = $('.filterTo').val();
             localStorage.setItem("filterToReeipt", filterTo);
 
+            var filterMember = $('.filterMember').val();
+            localStorage.setItem("filterMemberReceipt", filterMember);
+
             $('#tablesaw-350').DataTable({
                 serverSide: true,
                 ajax: {
-                    url : '/get_receipts?filterStatus=' + filterStatus + '&filterFrom=' + filterFrom + '&filterTo=' + filterTo,
-                    dataSrc: function (json){
-                        if(json.totals){
+                    url: '/get_receipts?filterStatus=' + filterStatus + '&filterFrom=' + filterFrom + '&filterTo=' + filterTo + '&filterMember=' + filterMember,
+                    dataSrc: function (json) {
+                        if (json.totals) {
                             totals = json.totals;
                         }
                         return json.data;
                     }
                 },
                 thead: {
-                'th': {'background-color': 'blue'}
+                    'th': { 'background-color': 'blue' }
                 },
                 columns: [
                     {
@@ -319,7 +362,7 @@
                     },
                     {
                         data: "status",
-                        render: function (data){
+                        render: function (data) {
                             // Split class and text
                             var ret = '<span class="tablesaw-cell-content"><span class="badge tessera-badge ' + (data == 1 ? 'active' : 'suspended') + '">' + (data == 1 ? 'Attiva' : 'Annullata') + '</span></span>';
                             return ret;
@@ -333,7 +376,7 @@
                     },
                     {
                         data: "action",
-                        render: function (data){
+                        render: function (data) {
                             var ids = data.split("|");
                             // Split class and text
                             var ret = '<button type="button" class="btn u" onclick="document.location.href=' + "'" + '/in?id=' + ids[1] + "&from=receipts'" + '" data-bs-toggle="popover"  data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="Visualizza ricevuta"><i class="fa-regular fa-eye"></i></button>';
@@ -344,8 +387,8 @@
                     }
                 ],
                 layout: {
-                    topStart : null,
-                    topEnd : null,
+                    topStart: null,
+                    topEnd: null,
                     top1A: {
                         buttons: [
                             {
@@ -353,21 +396,21 @@
                                 text: 'ESPORTA',
                                 buttons: [
                                     {
-                                    extend: 'excelHtml5',"action":newexportaction,
+                                        extend: 'excelHtml5', "action": newexportaction,
                                         title: 'Ricevute',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
-                                        extend: 'pdfHtml5',"action":newexportaction,
+                                        extend: 'pdfHtml5', "action": newexportaction,
                                         title: 'Ricevute',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
-                                        extend: 'print',"action":newexportaction,
+                                        extend: 'print', "action": newexportaction,
                                         text: 'Stampa',
                                         title: 'Ricevute',
                                         exportOptions: {
@@ -379,12 +422,12 @@
                             }
                         ]
                     },
-                    top1B : {
+                    top1B: {
                         pageLength: {
                             menu: [[10, 25, 50, 100, 100000], [10, 25, 50, 100, "Tutti"]]
                         }
                     },
-                    top1C :'search',
+                    top1C: 'search',
                 },
                 order: [[0, 'desc'], [1, 'asc']],
                 pagingType: 'numbers',
@@ -398,18 +441,17 @@
             });
             $('#tablesaw-350 thead tr th').addClass('col');
             $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");
-            $('#tablesaw-350').on('draw.dt', function() {
+            $('#tablesaw-350').on('draw.dt', function () {
                 $('[data-bs-toggle="popover"]').popover()
             });
 
-            $(document).ready(function() {
-                $(document).on("click",".addData",function() {
+            $(document).ready(function () {
+                $(document).on("click", ".addData", function () {
                     $(".title--section_addButton").trigger("click")
                 });
-            } );
+            });
 
         }
 
     </script>
 @endpush
-

+ 23 - 22
routes/web.php

@@ -31,8 +31,7 @@ Route::get('/login', function () {
 
 Route::post('/login', function () {
 
-    if(Auth::attempt(array('email' => $_POST["email"], 'password' => $_POST["password"])))
-    {
+    if (Auth::attempt(array('email' => $_POST["email"], 'password' => $_POST["password"]))) {
         return Redirect::to('/dashboard');
     } else {
         return Redirect::to('/?error=1');
@@ -454,13 +453,13 @@ Route::get('/get_record_in', function () {
         ->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
         ->where('records.type', 'IN');
 
-        $x = \App\Models\Record::select('records.*', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name'), DB::raw('payment_methods.name as payment'), DB::raw('receipts.created_at as receipt_date')) // , \DB::raw('SUM(records.id) As total'))
-                ->leftJoin('members', 'records.member_id', '=', 'members.id')
-                ->leftJoin('payment_methods', 'records.payment_method_id', '=', 'payment_methods.id')
-                ->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
-                ->where('records.type', 'IN');
+    $x = \App\Models\Record::select('records.*', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name'), DB::raw('payment_methods.name as payment'), DB::raw('receipts.created_at as receipt_date')) // , \DB::raw('SUM(records.id) As total'))
+        ->leftJoin('members', 'records.member_id', '=', 'members.id')
+        ->leftJoin('payment_methods', 'records.payment_method_id', '=', 'payment_methods.id')
+        ->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
+        ->where('records.type', 'IN');
 
-        $y = \App\Models\Record::select('records_rows.amount', 'records.member_id', 'records.corrispettivo_fiscale', 'records.deleted', 'records.financial_movement', 'records_rows.causal_id', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name')) // , \DB::raw('SUM(records.id) As total'))
+    $y = \App\Models\Record::select('records_rows.amount', 'records.member_id', 'records.corrispettivo_fiscale', 'records.deleted', 'records.financial_movement', 'records_rows.causal_id', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name')) // , \DB::raw('SUM(records.id) As total'))
         ->leftJoin('members', 'records.member_id', '=', 'members.id')
         ->leftJoin('records_rows', 'records.id', '=', 'records_rows.record_id')
         //->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
@@ -569,8 +568,8 @@ Route::get('/get_record_in', function () {
         if ($borsellino)
             $excludeCausals[] = $borsellino->id;*/
 
-        // Aggiungo
-        /*
+    // Aggiungo
+    /*
         $excludes = \App\Models\Causal::where('no_records', true)->get();
         foreach($excludes as $e)
         {
@@ -1166,8 +1165,7 @@ Route::get('/get_course_members', function () {
         $datas = $datas->whereIn('member_id', $member_ids);
     }
 
-    if (isset($_GET["filterFromPrevious"]) && $_GET["filterFromPrevious"] != "")
-    {
+    if (isset($_GET["filterFromPrevious"]) && $_GET["filterFromPrevious"] != "") {
         $datas = $datas->whereIn('course_id', [$_GET["filterFromPrevious"]]);
     }
 
@@ -1420,28 +1418,30 @@ Route::get('/get_course_members', function () {
 });
 
 Route::get('/get_receipts', function () {
+    $x = \App\Models\Receipt::select('receipts.*', 'members.first_name', 'members.last_name')
+        ->leftJoin('members', 'receipts.member_id', '=', 'members.id');
 
-
-    $x = \App\Models\Receipt::select('receipts.*', 'members.first_name', 'members.last_name')->leftJoin('members', 'receipts.member_id', '=', 'members.id');
     if (isset($_GET["search"]["value"])) {
         $v = str_replace("'", "\'", stripcslashes($_GET["search"]["value"]));
         $member_ids = \App\Models\Member::where(function ($query) use ($v) {
             $query->whereRaw("CONCAT(first_name, ' ', last_name) like '%" . $v . "%'")
                 ->orWhereRaw("CONCAT(last_name, ' ', first_name) like '%" . $v . "%'");
         })->pluck('id');
-        /*$member_ids = \App\Models\Member::where(function ($query) use ($v) {
-                $query->where('first_name', 'like', '%' . $v . '%')
-                        ->orWhere('last_name', 'like', '%' . $v . '%');
-            })->pluck('id');*/
         $x = $x->whereIn('member_id', $member_ids);
     }
-    if ($_GET["filterStatus"] != '')
+
+    if (isset($_GET["filterStatus"]) && $_GET["filterStatus"] != '')
         $x = $x->where('receipts.status', $_GET["filterStatus"]);
-    if ($_GET["filterFrom"] != "")
+
+    if (isset($_GET["filterFrom"]) && $_GET["filterFrom"] != "")
         $x = $x->where('date', '>=', $_GET["filterFrom"]);
-    if ($_GET["filterTo"] != "")
+
+    if (isset($_GET["filterTo"]) && $_GET["filterTo"] != "")
         $x = $x->where('date', '<=', $_GET["filterTo"]);
 
+    if (isset($_GET["filterMember"]) && $_GET["filterMember"] != "")
+        $x = $x->where('receipts.member_id', $_GET["filterMember"]);
+
     $count = $x->count();
 
     if (isset($_GET["order"])) {
@@ -1469,6 +1469,7 @@ Route::get('/get_receipts', function () {
         $x = $x->offset($_GET["start"])->limit($_GET["length"])->get();
     else
         $x = $x->get();
+
     $datas = [];
     foreach ($x as $idx => $r) {
         $ids = $r->id . "|" . $r->record_id;
@@ -1507,7 +1508,7 @@ function getColor($months, $m)
     return $class;
 }
 
-Route::get('/migrate', function(){
+Route::get('/migrate', function () {
     Artisan::call('migrate');
     dd('migrated!');
 });