Parcourir la source

Process claims [wip]

Vijayakrishnan il y a 4 ans
Parent
commit
4c9cf650f7

+ 16 - 2
app/Http/Controllers/PracticeManagementController.php

@@ -1030,6 +1030,10 @@ class PracticeManagementController extends Controller
     public function processClaims(Request  $request) {
         $status = '';
 
+        $q = $request->input('q') ? $request->input('q') : '';
+        $from = $request->input('from') ? $request->input('from') : '1900-01-01';
+        $to = $request->input('to') ? $request->input('to') : '2100-01-01';
+
         $claims = DB::select(DB::raw("
 SELECT claim.uid as uid,
        DATE(claim.created_at) as created,
@@ -1054,10 +1058,20 @@ FROM claim
     left join app_session on claim.status_updated_by_session_id = app_session.id
     left join pro sp on app_session.pro_id = sp.id
 --WHERE claim.status IS NULL OR claim.status = 'NEW'
-WHERE claim.status is NULL OR claim.status NOt IN ('CANCELLED', 'ABANDONED')
+WHERE (claim.status is NULL OR claim.status NOT IN ('CANCELLED', 'ABANDONED'))
+AND (client.name_first ILIKE :q OR client.name_last ILIKE :q OR client.chart_number ILIKE :q OR client.mcn ILIKE :q)
+AND (claim.created_at >= :from AND claim.created_at <= :to)
 ORDER BY claim.created_at ASC
 --OFFSET 0 LIMIT 15
-"));
+"), [
+    'q' => '%' . $q . '%',
+    'from' => $from,
+    'to' => $to
+]);
+
+        if($request->input('json')) {
+            return json_encode($claims);
+        }
 
         return  view('app.practice-management.process-claims', compact('claims', 'status'));
     }

+ 5 - 0
public/css/style.css

@@ -318,6 +318,11 @@ body>nav.navbar {
     min-width: unset !important;
     max-width: unset !important;
 }
+.mcp-theme-1 .width-150px {
+    width: 150px;
+    min-width: unset !important;
+    max-width: unset !important;
+}
 .mcp-theme-1 .width-100pc {
     width: 100% !important;
     min-width: unset !important;

+ 28 - 2
resources/views/app/practice-management/process-claims.blade.php

@@ -4,8 +4,16 @@
     <div id="process-claims" class="px-3 mcp-theme-1 mt-3" v-cloak>
         <div class="row">
             <div class="col-9">
-                <div class="font-weight-bold py-3 font-size-14 text-secondary">
-                    To Do
+                <div class="d-flex align-items-center">
+                    <div class="font-weight-bold py-3 font-size-14 text-secondary">
+                        To Do
+                    </div>
+                    <form class="ml-4 mr-auto d-inline-flex align-items-center" v-on:submit.prevent="doFilter()">
+                        <input type="text" v-model="filter.q" class="form-control form-control-sm width-150px mr-2" placeholder="Name/MCN/Chart #">
+                        <input type="date" v-model="filter.from" class="form-control form-control-sm width-150px mr-2">
+                        <input type="date" v-model="filter.to" class="form-control form-control-sm width-150px mr-2">
+                        <button class="btn btn-sm btn-primary">Filter</button>
+                    </form>
                 </div>
                 <div v-for="(claim, claimIndex) in claims"
                      v-if="!claim.status || claim.status === 'NEW' || (claim.status === 'PICKED_UP' && claim.status_pro_id === proId)">
@@ -237,6 +245,11 @@
                         proName: '{{$pro->name_first}} {{$pro->name_last}}',
                         isAdmin: {{$pro->pro_type === 'ADMIN' ? 'true' : 'false'}},
                         doneStatus: 'ALL',
+                        filter: {
+                            q: '',
+                            from: '',
+                            to: '',
+                        }
                     },
                     methods: {
                         hasError: function (_data) {
@@ -287,6 +300,19 @@
                                     }
                                 }
                             }
+                        },
+                        doFilter: function() {
+                            showMask();
+                            let ql = ['json=1'];
+                            if($.trim(this.filter.q)) ql.push('q=' + encodeURIComponent($.trim(this.filter.q)));
+                            if($.trim(this.filter.from)) ql.push('from=' + encodeURIComponent($.trim(this.filter.from)));
+                            if($.trim(this.filter.to)) ql.push('to=' + encodeURIComponent($.trim(this.filter.to)));
+                            ql = ql.join('&');
+                            $.get('{{route('practice-management.process-claims')}}?' + ql, _data => {
+                                this.claims = _data;
+                                this.resetCurrentClaim();
+                                hideMask();
+                            }, 'json');
                         }
                     },
                     mounted: function() {