Bläddra i källkod

Tickets PDF UI

Vijayakrishnan 4 år sedan
förälder
incheckning
371ebc6d1d

+ 9 - 1
app/Http/Controllers/TicketController.php

@@ -9,9 +9,17 @@ use PDF;
 
 class TicketController extends Controller
 {
-    
+
     public function downloadAsPdf(Request $request, Ticket $ticket){
         $pdf = PDF::loadView('app.ticket.pdf-preview', compact('ticket'));
         return $pdf->download('invoice.pdf');
     }
+
+    public function getTicketFaxes(Request $request, Ticket $ticket) {
+        $result = $ticket->faxes->toArray();
+        foreach ($result as $k => $row) {
+            $result[$k]["sent_at"] = friendly_date_time($row["sent_at"]);
+        }
+        return json_encode($result);
+    }
 }

+ 5 - 0
app/Models/Ticket.php

@@ -28,4 +28,9 @@ class Ticket extends Model
         return $this->hasOne(Client::class, 'id', 'client_id');
     }
 
+    public function faxes(){
+        return $this->hasMany(TicketFax::class, 'ticket_id', 'id')
+            ->orderBy('sent_at', 'desc');
+    }
+
 }

+ 1 - 1
public/css/style.css

@@ -1391,7 +1391,7 @@ button.note-templates-trigger-assessment {
     display: none;
 }
 .col-2-button {
-    width: 80px;
+    width: 88px;
     text-align: left;
 }
 

+ 2 - 2
resources/views/app/patient/partials/ticket_vue_methods.blade.php

@@ -43,7 +43,7 @@ updateTicketPro: function() {
     return false;
 },
 
-showSendFaxPopup: function(_name, _item) {
+<!--showSendFaxPopup: function(_name, _item) {
     closeStagPopup();
     this.popupItem =JSON.parse(JSON.stringify(_item))
     let self = this;
@@ -69,7 +69,7 @@ sendFax: function() {
         'json');
 
     return false;
-},
+},-->
 
 
 setIsEntryErrorToTrue: function(_item){

+ 30 - 1
resources/views/app/patient/tickets.blade.php

@@ -67,6 +67,7 @@
         @include('app.patient.tickets.imaging')
         @include('app.patient.tickets.equipment')
 
+        @include('app.patient.tickets.ticket_send_fax_form')
     </div>
 
     <script>
@@ -147,6 +148,8 @@
                         proToUpdate: '',
                         proTypes: ['Assigned', 'Manager', 'Initiating', 'Ordering'],
                         newProUid: '',
+                        faxes: [],
+                        loadingFaxes: false,
                         faxNumber: '',
                         reloading: false,
                         comment: '',
@@ -200,6 +203,8 @@
                         // common show popup
                         preparePopup: function(_type, _item) {
                             this.preparing = true;
+                            this.loadingFaxes = true;
+                            this.faxes = [];
                             this[_type + 'PopupMode'] = _item ? 'edit' : 'add';
                             this[_type + 'PopupItem'] = _item ? JSON.parse(JSON.stringify(_item)) : JSON.parse(JSON.stringify(this[_type + 'Model']));
                             this[_type + 'PopupItem'].assigned_pro_uid = '';
@@ -212,6 +217,17 @@
                             }
                             this.comment = '';
                             this.preparing = false;
+
+                            // load tickets
+                            if(_item) {
+                                $.get('/get-ticket-faxes/' + _item.uid, (_data) => {
+                                    this.faxes = _data;
+                                    this.loadingFaxes = false;
+                                }, 'json')
+                            }
+                            else {
+                                this.loadingFaxes = false;
+                            }
                         },
                         reinitProSuggest: function() {
                             $('#ticketsApp [pro-suggest-initialized]').removeAttr('pro-suggest-initialized');
@@ -503,6 +519,20 @@
                                 this.reloadPopupItem(this.currentCategory);
                             }, 'json');
                         },
+                        showSendFaxPopup: function() {
+                            showStagPopup('send-fax-popup');
+                        },
+                        sendFax: function(_item) {
+                            $.post('/api/ticketFax/create', {
+                                    faxNumber: this.faxNumber,
+                                    ticketUid: this[this.currentCategory + 'PopupItem'].uid
+                                },
+                                (_data) => {
+                                    this.reloadPopupItem(this.currentCategory);
+                                    closeStagPopup();
+                                },
+                                'json');
+                        },
                         signAsOrderingPro: function(_item) {
                             $.post('/api/ticket/signAsOrderingPro', {
                                 uid: _item.uid
@@ -759,5 +789,4 @@
             addMCInitializer('patient-tickets', init, '#ticketsApp');
         })();
     </script>
-
 @endsection

+ 1 - 1
resources/views/app/patient/tickets/attachments.blade.php

@@ -1,4 +1,4 @@
-<div class="px-3 pt-3 pb-2 bg-light">
+<div class="px-3 pt-3 pb-2 bg-light" v-if="<?=$category?>PopupMode === 'edit'">
     <div class="row mb-2">
         <div class="col-12">
             <label class="text-secondary mb-0 font-weight-normal font-size-16 d-flex align-items-center">

+ 25 - 2
resources/views/app/patient/tickets/common-fields.blade.php

@@ -68,7 +68,7 @@
         </div>
     </div>
 
-    <div class="row">
+    <div class="row mb-2">
         <div class="col-3 d-inline-flex align-items-center">
             <label class="text-secondary m-0">Due Date</label>
         </div>
@@ -76,7 +76,7 @@
             <div class="d-flex align-items-center">
                 <div class="pro-initials text-uppercase text-white bg-info"
                      title="Due Date">
-                    <i class="fa fa-calendar-day"></i>
+                    <i class="fa fa-calendar-day font-size-13"></i>
                 </div>
                 <div class="flex-grow-1 ml-2">
                     <input type="text" data-field="due_date" placeholder="Due Date"
@@ -86,4 +86,27 @@
         </div>
     </div>
 
+    <div v-if="<?=$category?>PopupMode === 'edit'" class="row">
+        <div class="col-3 d-inline-flex align-items-center">
+            <label class="text-secondary m-0">Ticket PDF</label>
+        </div>
+        <div class="col-9">
+            <div class="d-flex align-items-center">
+                <div class="pro-initials text-uppercase text-white bg-danger mr-2"
+                     title="Due Date">
+                    <i class="fa fa-file-pdf font-size-13"></i>
+                </div>
+                <div class="flex-grow-1 border-left border-white d-inline-flex">
+                    <a class="pdf-viewer-trigger" native target="_blank"
+                       :href="'/ticket-download-as-pdf/' + <?=$category?>PopupItem.uid">View</a>
+                    <span class="mx-2 text-secondary">|</span>
+                    <a native target="_blank"
+                       :href="'/ticket-download-as-pdf/' + <?=$category?>PopupItem.uid">Download</a>
+                    <span class="mx-2 text-secondary">|</span>
+                    <a href="#" v-on:click.prevent="showSendFaxPopup()">Send Fax</a>
+                </div>
+            </div>
+        </div>
+    </div>
+
 </div>

+ 3 - 0
resources/views/app/patient/tickets/erx.blade.php

@@ -210,6 +210,9 @@
             <!-- attachments -->
             @include('app.patient.tickets.attachments', ['category' => 'erx'])
 
+            <!-- faxes -->
+            @include('app.patient.tickets.faxes', ['category' => 'erx'])
+
             <!-- comments -->
             @include('app.patient.tickets.comments', ['category' => 'erx'])
 

+ 23 - 0
resources/views/app/patient/tickets/faxes.blade.php

@@ -0,0 +1,23 @@
+<div class="px-3 pt-3 pb-2 border-top" v-if="<?=$category?>PopupMode === 'edit'">
+    <div class="row mb-2">
+        <div class="col-12">
+            <label class="text-secondary mb-0 font-weight-normal font-size-16 d-flex align-items-center">
+                Ticket Faxes
+                (<span v-if="!loadingFaxes" v-html="faxes && faxes.length ? faxes.length : '0'"></span>)
+            </label>
+        </div>
+    </div>
+    <div v-if="!loadingFaxes && faxes && faxes.length" class="py-2">
+        <div v-for="(fax) in faxes" class="d-flex align-items-start pb-2">
+            <div class="flex-grow-1">Sent to
+                <span class="text-info" v-html="fax.to_fax_number"></span>
+                on
+                <span class="font-weight-bold text-secondary" v-html="fax.sent_at"></span></div>
+            <a class="pdf-viewer-trigger ml-auto" native target="_blank"
+               :href="'/api/ticketFax/download/' + fax.uid"
+               title="View">
+                View Fax
+            </a>
+        </div>
+    </div>
+</div>

+ 1 - 1
resources/views/app/patient/tickets/imaging.blade.php

@@ -118,7 +118,7 @@
                 </div>
                 <div class="mb-2">
                     <label class="text-sm text-secondary mb-1">Memo</label>
-                    <input type="text" v-model="imagingPopupItem.data.memo" class="form-control form-control-sm">
+                    <input type="text" v-model="imagingPopupItem.data.memo" placeholder="Memo" class="form-control form-control-sm">
                 </div>
 
 

+ 1 - 1
resources/views/app/patient/tickets/lab.blade.php

@@ -122,7 +122,7 @@
                 </div>
                 <div class="mb-2">
                     <label class="text-sm text-secondary mb-1">Memo</label>
-                    <input type="text" v-model="labPopupItem.data.memo" class="form-control form-control-sm">
+                    <input type="text" v-model="labPopupItem.data.memo" placeholder="Memo" class="form-control form-control-sm">
                 </div>
 
 

+ 2 - 2
resources/views/app/patient/tickets/ticket_send_fax_form.blade.php

@@ -1,9 +1,9 @@
 <div class="stag-popup stag-popup-sm mcp-theme-1" stag-popup-key="send-fax-popup">
     <form method="POST" class="overflow-visible">
         <h3 class="stag-popup-title mb-2">
-            <span>Send Fax</span>
+            <span><i class="fa fa-fax text-secondary font-size-13"></i> Send Fax</span>
             <a href="#" class="ml-auto text-secondary"
-                onclick="return closeStagPopup()"><i class="fa fa-fax"></i> Send Fax</a>
+                onclick="return closeStagPopup()"><i class="fa fa-times"></i></a>
         </h3>
         <div class="form-group mb-2">
             <label class="text-sm text-secondary mb-1">Fax Number</label>

+ 1 - 0
routes/web.php

@@ -45,6 +45,7 @@ Route::get("/appointment-confirmation/{appointmentUid}", 'GuestController@appoin
 Route::post("/process-appointment-confirmation", 'GuestController@processAppointmentConfirmation')->name('process-appointment_confirmation');
 
 Route::get('/ticket-download-as-pdf/{ticket}', 'TicketController@downloadAsPdf')->name('ticket-download-as-pdf');
+Route::get('/get-ticket-faxes/{ticket}', 'TicketController@getTicketFaxes')->name('get-ticket-faxes');
 
 Route::middleware('pro.auth')->group(function () {