diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php index b64fdf9f..fd8113e5 100644 --- a/app/Http/Controllers/ContactController.php +++ b/app/Http/Controllers/ContactController.php @@ -4,6 +4,9 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests\LambdaRequest; use DB; +use League\Csv\Reader; +use Log; + class ContactController extends Controller { public function __construct() @@ -152,4 +155,51 @@ class ContactController extends Controller ]); } + + // public function postimport(Request $request) { + // if( $request->file('importfile') ) { + // $path = $request->file('importfile')->store('user_import'); + // $request->session()->put('user_import_path', $path); + + // $csv = Reader::createFromPath(storage_path('app') .'/' . $path, 'r'); + // $csv->setHeaderOffset(0); + + // $header = $csv->getHeader(); //returns the CSV header record + // $records = $csv->getRecords(); //returns all the CSV records as an Iterator + // $contacts = []; + // echo '
';
+    //         foreach($records as $record) {
+    //             $contacts[] = (array)$record;
+    //         }
+
+    //         $created = 0;
+    //         $updated = 0;
+    //         $count = 0;
+    //         $total = sizeof($contacts);
+
+    //         while($count < $total) {
+    //             $tempdata = array_slice($contacts, $count, 20);
+    //             Log::debug(print_r($tempdata, true));
+    //             $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/import', $tempdata);
+    //             Log::debug(print_r($response, true));
+    //             $count = $count + 20;
+    //             $created = $created + $response->data->created_count;
+    //             $updated = $updated + (isset($response->data->updated_count) ? $response->data->updated_count : 0);
+    //             Log::debug(print_r(['$count' => $count, '$created' => $created, '$updated' => $updated], true));
+    //         }
+
+    //         //echo '
'; print_r($response); exit;
+    //         if($response->statusCode == 200 && $response->status == "success") {
+    //             return redirect($this->_base_url.'s')->withMessage('Successfully Imported ' .$created. ' records and Updated ' .$updated. ' records out of ' .$total. ' records!!!');
+    //         } else {
+    //             return \Redirect::back()->withMessage('Some Error occured!');
+    //         }
+
+
+    //         exit;
+    //         return redirect($this->_base_url.'/importmap')->withMessage('Successfully Uploaded !!!');
+    //     } else {
+    //         return \Redirect::back()->withMessage('Some Error occured!');
+    //     }
+    // }
 }
diff --git a/app/Http/Controllers/ContestparameterController.php b/app/Http/Controllers/ContestparameterController.php
new file mode 100644
index 00000000..ec77523f
--- /dev/null
+++ b/app/Http/Controllers/ContestparameterController.php
@@ -0,0 +1,37 @@
+middleware('auth');
+        $this->_service = 'detailing';
+        $this->_module = 'parameter';
+        $this->_viewname = 'contestparameter';
+        $this->_title = 'Contest Parameters';
+        $this->_base_url = '/contestparameter';
+    }
+// , 'medias' => ['icon' => 'image-multiple', 'querystring' => 'id={ID}']
+    protected function get_list_fields(){
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
+            'title' => ['title' => 'Title', 'type' => 'text'],
+            'scale' => ['title' => 'Scale', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select'],
+        ];
+    }
+
+    protected function get_form_fields($type, $values){
+        return [
+            'title' => ['title' => 'Title', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
+            'description' => ['title' => 'Contest Description', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
+            'scale' => ['title' => 'Scale', 'type' => 'number', 'required' => true], 
+        ];
+    }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index 7d1d1b40..0373f01e 100755
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -203,11 +203,11 @@ class Controller extends BaseController
         $total = sizeof($post);
 
         while($count < $total) {
-            $tempdata = array_slice($post, $count, 20);
+            $tempdata = array_slice($post, $count, 15);
             Log::debug(print_r($tempdata, true));
             $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/import', $tempdata);
             Log::debug(print_r($response, true));
-            $count = $count + 20;
+            $count = $count + 15;
             $created = $created + $response->data->created_count;
             $updated = $updated + (isset($response->data->updated_count) ? $response->data->updated_count : 0);
             Log::debug(print_r(['$count' => $count, '$created' => $created, '$updated' => $updated], true));
diff --git a/app/Http/Controllers/DetailingcontestController.php b/app/Http/Controllers/DetailingcontestController.php
new file mode 100644
index 00000000..70eec013
--- /dev/null
+++ b/app/Http/Controllers/DetailingcontestController.php
@@ -0,0 +1,115 @@
+middleware('auth');
+        $this->_service = 'detailing';
+        $this->_module = 'contest';
+        $this->_viewname = 'detailingcontest';
+        $this->_title = 'Detailing Contests';
+        $this->_base_url = '/detailingcontest';
+    }
+// , 'medias' => ['icon' => 'image-multiple', 'querystring' => 'id={ID}']
+    protected function get_list_fields(){
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
+            'name' => ['title' => 'Title', 'type' => 'text'],
+            'marks' => ['title' => 'Marks', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select'],
+        ];
+    }
+
+    protected function get_form_fields($type, $values){
+        $groups = $this->getlambda('get', 'ums', 'group', 'dropdown');
+        $groups_dd = [];
+        foreach($groups->data->items as $group){
+            $groups_dd[$group->id] = $group->name;
+        }
+        $users = $this->getlambda('get', 'ums', 'users', 'dropdown');
+        $users_dd = [];
+        foreach($users->data->items as $user){
+            $users_dd[$user->id] = $user->firstname . ' ' . $user->lastname . ' (' . $user->employee_code . ')';
+        }
+
+        $parameters = $this->getlambda('get', 'detailing', 'parameter', 'get_all');
+        $params_dd = [];
+        foreach($parameters->data->items as $param){
+            $params_dd[$param->id] = $param->title . ' (Scale: ' . $param->scale . ')';
+        }
+
+        return [
+            'name' => ['title' => 'Contest Name', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
+            'description' => ['title' => 'Contest Description', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
+
+            'groups' => ['title' => 'Groups', 'type' => 'multiselect', 'required' => true, 'values' => $groups_dd ],
+            'evaluators' => ['title' => 'Evaluators', 'type' => 'multiselect', 'required' => true, 'values' => $users_dd ],
+            'observers' => ['title' => 'Observers', 'type' => 'multiselect', 'required' => true, 'values' => $users_dd ],
+
+            'evaluation_parameters' => ['title' => 'Evaluation Parameters', 'type' => 'multiselect', 'required' => true, 'values' => $params_dd ],
+            'evaluation_workflow' => ['title' => 'Evaluator Type', 'type' => 'select', 'required' => true, 'values' => ['ANY' => 'ANY', 'ALL' => 'ALL'] ],
+            'media_type' => ['title' => 'Media Type', 'type' => 'select', 'required' => true, 'values' => ['audio' => 'Audio', 'video' => 'Video', 'pdf' => 'PDF', 'image' => 'Image',]  ],
+            'file' => ['title' => 'Media', 'type' => 'image', 'required' => true],
+            'cover_image' => ['title' => 'Cover Image', 'type' => 'image', 'required' => true],
+
+            'response_types' => ['title' => 'Response Types', 'type' => 'checkbox', 'required' => true, 'values' => ['audio' => 'Audio', 'video' => 'Video', 'pdf' => 'PDF', 'image' => 'Image',]  ],
+            'response_sources' => ['title' => 'Response Sources', 'type' => 'multiselect', 'required' => true, 'values' => ['CAMERA' => 'CAMERA', 'GALLERY' => 'GALLERY']  ],
+            'response_self_delete' => ['title' => 'Response Deletion Access', 'type' => 'yesno', 'required' => true],
+            'result_publish_count' => ['title' => 'Result Publish Count', 'type' => 'number', 'required' => true],
+            'marks' => ['title' => 'Marks', 'type' => 'number', 'required' => true],
+
+            'is_published' => ['title' => 'Is Published', 'type' => 'yesno', 'required' => true],
+            'additional_evaluators' => ['title' => 'Additional Evaluators', 'type' => 'checkbox', 'required' => true, 'values' => ['level_1_manager' => '1st line manager', 'level_2_manager' => '2nd line manager', 'random_manager' => 'Random Manager',]],
+            
+        ];
+    }
+
+    protected function _beforesave($type, $request) {
+        $data = $request->except('_token');
+        if( $request->file('cover_image') ) {
+            $data['cover_image'] = $this->_uploadMedia($request, 'cover_image', 'detailing');
+        }
+        if( $request->file('file') ) {
+            $data['file'] = $this->_uploadMedia($request, 'file', 'detailing');
+        }
+        return $data;
+    }
+
+    protected function _beforeform($type, $values) {
+        if($type == 'edit') {
+            //echo '
'; print_r($values); exit;
+            if(isset($values->groups))
+                $values->groups = explode('#', $values->groups);
+            else
+                $values->groups = [];
+
+            if(isset($values->evaluators))
+                $values->evaluators = explode('#', $values->evaluators);
+            else
+                $values->evaluators = [];
+
+            if(isset($values->observers))
+                $values->observers = explode('#', $values->observers);
+            else
+                $values->observers = [];
+        }
+        return $values;
+    }
+
+    public function medias(Request $request) {
+        $mag_id = $request->input('id', 0);
+        if($mag_id === 0) {
+            return redirect('/magazines')->withError('Magazine not found!');
+        } else {
+            $request->session()->put('mag_id', $mag_id);
+            return redirect('/magmedias');
+        }
+    }
+}
diff --git a/app/Http/Controllers/FormController.php b/app/Http/Controllers/FormController.php
index 01d81cb0..847769ce 100644
--- a/app/Http/Controllers/FormController.php
+++ b/app/Http/Controllers/FormController.php
@@ -68,7 +68,7 @@ class FormController extends Controller
            return LambdaRequest::postrequest('form', 'formentity/getforminfo', ['finfo' => $finfo]);
         });
         // $finfo = LambdaRequest::postrequest('form', 'formentity/getforminfo', ['finfo' => $finfo]);
-        // Log::debug(print_r($finfo, true));
+        Log::debug(print_r($finfo, true));
         $request->session()->put('formdata', $finfo->data->formdata);
         if($finfo->status == 'success' && $finfo->data->formdata->link_type == 'form') {
             return $this->deliverform($finfo->data->formdata, $finfo->data->questions);
@@ -92,6 +92,7 @@ class FormController extends Controller
     
     public function submit(Request $request) {
         $post = $request->except('_token');
+        if($post['id']=='') unset($post['id']);
         $formdata = $request->session()->get('formdata');
         if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
             $post = $this->processformdata($formdata->form_id, $post);
@@ -109,12 +110,11 @@ class FormController extends Controller
 
     public function ajaxsubmit(Request $request) {
         $post = $request->except('_token');
+        if(isset($post['id']) && $post['id']=='') unset($post['id']);
         $formdata = $request->session()->get('formdata');
         if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
-            $post = $this->processformdata($formdata->form_id, $post);
-            //Log::debug(print_r($post, true));
-            $finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $post, 'entity_id' => $post['form_id'], 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
-            //Log::debug(print_r($finfo, true));
+            $post = $this->processformdata($formdata->form_id, $post, $formdata->user_id, $formdata->partition);
+            $finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $post, 'entity_id' => $formdata->form_id, 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
             if($finfo->status == 'success') {
                 return response()->json(['status' => 'success']);
             } else {
@@ -131,9 +131,6 @@ class FormController extends Controller
 
         if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
             $post = $this->processformdata($formdata->form_id, $post);
-            //echo '
'; print_r($post); exit;
-            //Log::debug(print_r($post, true));
-            //echo json_encode(['formdata' => $post, 'entity_id' => $post['form_id'], 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
             $finfo = LambdaRequest::postrequest('form', 'formentity/submitmultipleform', ['formdata' => $post, 'entity_id' => $post['form_id'], 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
             //Log::debug(print_r($finfo, true));
             if($finfo->status == 'success') {
@@ -146,8 +143,13 @@ class FormController extends Controller
         }
     }
 
-    protected function processformdata($form, $post) {
+    protected function processformdata($form, $post, $user_id = 0, $partition = '' ) {
         switch($form) {
+            case '1654748343-81b065ee-e05c-431c-a44d-706afc1c16f4':
+                if($post['contact_id'] == 'other') {
+                    $post['contact_id'] = '';
+                }            
+                break;
             case '1650365556-f06dde85-6138-4dae-9c23-5067e318c522':
                 $post[ $post['brand_name'].'-current' ] = $post['current_business_value'];
                 $post[ $post['brand_name'].'-potential' ] = $post['potential_business_value'];
@@ -163,6 +165,64 @@ class FormController extends Controller
                     }
                 }
                 break;
+            case '1655958637-c41fb1b6-4ddc-42d3-aa2a-563c1cf5e4c9':
+                Log::debug(print_r($post, true));
+                if(array_key_exists('chemist_name', $post) ) {
+                    $chemistformdata = [];
+                    $chemistformdata['form_id'] = '1654747635-9d7133e4-a641-4865-aeed-021bb34d8960';
+                    $chemistformdata['record_date'] = $post['record_date'];
+                    $chemistformdata['chemist_name'] = $post['chemist_name'];
+                    $chemistformdata['dapasach_units'] = $post['dapasach_strips'];
+                    $chemistformdata['dapasach_m_units'] = $post['dapasach_m_strips'];
+                    $finfo = LambdaRequest::postrequest('form', 'formentity/submitmultipleform', ['formdata' => $chemistformdata, 'entity_id' => $chemistformdata['form_id'], 'user_id' => $user_id, 'partition' => $partition ]);
+                }
+                
+                $rxformdata = [];
+                $rxformdata['form_id'] = '1657032612-8a539e63-fc5e-47c2-96f9-b4454cea7591';
+                $rxformdata['record_date'] = $post['record_date'];
+                $rxformdata['no_of_dapasach_rx'] = $post['no_of_dapasach_rx'];
+                $rxformdata['no_of_dapasach_m_rx'] = $post['no_of_dapasach_m_rx'];
+                $rxformdata['dapasach_units_made_available'] = $post['dapasach_units_made_available'];
+                $rxformdata['dapasach_m_units_made_available'] = $post['dapasach_m_units_made_available'];
+                $finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $rxformdata, 'entity_id' => $rxformdata['form_id'], 'user_id' => $user_id, 'partition' => $partition ]);
+
+                unset($post['chemist_name']);
+                unset($post['dapasach_units']);
+                unset($post['dapasach_m_units']);
+                unset($post['no_of_dapasach_rx']);
+                unset($post['no_of_dapasach_m_rx']);
+                unset($post['dapasach_units_made_available']);
+                unset($post['dapasach_m_units_made_available']);
+                Log::debug(print_r($post, true));
+                break;
+            case '1659513016-1f5e2584-fb76-4075-b040-a9a4e34a7458':
+            case '1659538834-fb8bd30a-a719-4285-8d74-063462930c1d':
+                if($post['customer_type'] == 'Doctor') {
+                    $post['doctor_count'] = 1;
+                    $post['retailer_count'] = 0;
+                } else {
+                    $post['doctor_count'] = 0;
+                    $post['retailer_count'] = 1;
+                }
+
+                $prefix = '';
+                if($post['brand_selected'] == 'DAPASACH FRANCHISE') {
+                    $prefix = 'dapasach_';
+                    if($post['customer_type'] == 'Retailer') {
+                        $post[$prefix.'pob_dapasach'] = $post['pob_dapasach'];
+                        $post[$prefix.'pob_dapasach_s'] = $post['pob_dapasach_s'];
+                        $post[$prefix.'pob_dapasach_m'] = $post['pob_dapasach_m'];
+                    }
+                } else if($post['brand_selected'] == 'METOLAR FRANCHISE') {
+                    $prefix = 'metolar_';
+                    if($post['customer_type'] == 'Retailer') {
+                        $post[$prefix.'pob_metolar_trio'] = $post['pob_metolar_trio'];
+                        $post[$prefix.'pob_metolar_3d'] = $post['pob_metolar_3d'];
+                    }
+                }
+                $post[$prefix.'doctor_count'] = $post['doctor_count'];
+                $post[$prefix.'retailer_count'] = $post['retailer_count'];
+                break;
         }
 
         return $post;
diff --git a/app/Http/Controllers/MetricreportController.php b/app/Http/Controllers/MetricreportController.php
index e4c222f7..e2587b38 100644
--- a/app/Http/Controllers/MetricreportController.php
+++ b/app/Http/Controllers/MetricreportController.php
@@ -121,7 +121,7 @@ class MetricreportController extends Controller
                 break;
             case 'details':
                 if($response->data->graph->chart == 'tabular') {
-                    $headers = ['User', 'Employee Code', 'Designation', 'Zone', 'Region', "Area", "Territory"];
+                    $headers = ['User', 'Employee Code', 'Email', 'Designation', 'Zone', 'Region', "Area", "Territory"];
                     foreach($response->data->graph->values->metrics as $metric) {
                         $headers[] = $metric->metric;
                     }
@@ -130,6 +130,7 @@ class MetricreportController extends Controller
                         $row = [];
                         $row[] = $user->name;
                         $row[] = $user->employee_code;
+                        $row[] = $user->email;
                         $row[] = $user->designation;
                         $row[] = isset($user->positions->Zone) ? $user->positions->Zone : '-';
                         $row[] = isset($user->positions->Region) ? $user->positions->Region : '-';
diff --git a/resources/views/contestparameter/form.blade.php b/resources/views/contestparameter/form.blade.php
new file mode 100644
index 00000000..3b3ed366
--- /dev/null
+++ b/resources/views/contestparameter/form.blade.php
@@ -0,0 +1,180 @@
+@extends('layouts.vertical', ["page_title"=> "Add & Edit Products"])
+
+@section('css')
+
+
+
+
+
+
+@endsection
+
+@section('content')
+
+
+ +@if(session()->has('message')) +
+ {{ session()->get('message') }} +
+@endif +
+
+
+
+ @csrf +
+
+
+

Add / Edit {{$title}}

+
+
+
+ Back + +
+
+ @foreach($fields as $field => $props) + @if($props['type'] != 'hidden') +
+ + @endif + @switch($props['type']) + @case('hidden') + + @break + @case('text') + @case('email') + @case('number') + @case('tel') + + @break + @case('date') + + @break + @case('textarea') + + @break + @case('select') + + @break + @case('checkbox') + @foreach($props['values'] as $k => $v) +
+ {$field}) && in_array($k, $item->{$field}) ? 'checked':''}}> + +
+ @endforeach + @break + @case('multiselect') + + @break + @case('bigmultiselect') + + @break + @case('yesno') +
+
+ {$field} == 'yes' ? 'checked':''}} {{isset($props['required'])&&$props['required']?'required':'' }}> + +
+
+ {$field} == 'no' ? 'checked':''}}> + +
+
+ @break + @case('image') +
+ +

500MB Max File size

+
+ @break + @case('multiimage') +
+ +

500MB Max File size

+
+ @break + @case('file') +
+ +

1GB Max File size

+
+ @break + + @endswitch + @if($props['type'] != 'hidden') +
+ @endif + @endforeach +
+ +
+ +
+
+
+
+ Back + +
+
+
+
+
+
+
+
+
+ +@endsection + +@section('script') + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/layouts/shared/left-sidebar.blade.php b/resources/views/layouts/shared/left-sidebar.blade.php index 7ceb1ac8..ee60ba26 100755 --- a/resources/views/layouts/shared/left-sidebar.blade.php +++ b/resources/views/layouts/shared/left-sidebar.blade.php @@ -175,6 +175,27 @@ @endif + +
  • + + + Detailing + + +
    + +
    +
  • + @if(in_array('metric_get_all', $permissions) || in_array('injestion_mapping_get_all', $permissions) || in_array('metric_view_get_all', $permissions) ) diff --git a/routes/web.php b/routes/web.php index d591c763..b5d9ae2e 100755 --- a/routes/web.php +++ b/routes/web.php @@ -37,6 +37,9 @@ use App\Http\Controllers\FormdataController; use App\Http\Controllers\FormsubmissionController; use App\Http\Controllers\FormexportController; use App\Http\Controllers\PositionController; + +use App\Http\Controllers\DetailingcontestController; +use App\Http\Controllers\ContestparameterController; /* |-------------------------------------------------------------------------- | Web Routes @@ -98,6 +101,9 @@ $modules = ['user' => UserController::class, 'formsubmission' => FormsubmissionController::class, 'formexport' => FormexportController::class, 'position' => PositionController::class, + + 'detailingcontest' => DetailingcontestController::class, + 'contestparameter' => ContestparameterController::class, ]; foreach ($modules as $mod => $class) { Route::get('/'.$mod.'s', [$class, 'list'])->name($mod.'-list');