public function compare(Request $request)
 {
     //required|mimes:csv
     $this->validate($request, ['file1' => 'required', 'file2' => 'required', 'confidencemin' => 'required|max:50|numeric|min:10', 'maxdifftransdate' => 'required|numeric|max:300|min:10', 'transamountweight' => 'required|numeric|max:1|min:0', 'transdateweight' => 'required|numeric|max:1|min:0', 'transnarrativeweight' => 'required|numeric|max:1|min:0', 'transwalletrefweight' => 'required|numeric|max:1|min:0', 'transidweight' => 'required|numeric|max:1|min:0']);
     $file1Name = $request->file('file1')->getClientOriginalName();
     $uploadPath = public_path() . '/uploads';
     $request->file('file1')->move($uploadPath, $file1Name);
     $file2Name = $request->file('file2')->getClientOriginalName();
     $request->file('file2')->move($uploadPath, $file2Name);
     $file1Path = $uploadPath . '/' . $file1Name;
     $file2Path = $uploadPath . '/' . $file2Name;
     $request->session()->flush();
     //Init the weight of each criteria
     ReconciliationUtils::$maxdiffdate = $request->input('maxdifftransdate');
     ReconciliationUtils::$minconfidencescore = $request->input('confidencemin');
     ReconciliationUtils::$amountweight = $request->input('transamountweight');
     ReconciliationUtils::$walletrefweight = $request->input('transwalletrefweight');
     ReconciliationUtils::$dateweight = $request->input('transdateweight');
     ReconciliationUtils::$idweight = $request->input('transidweight');
     ReconciliationUtils::$narrativeweight = $request->input('transnarrativeweight');
     $compareFile1ToFile2Result = ReconciliationUtils::compareFile($file1Path, $file2Path);
     $compareFile1ToFile2Result['FILE1_NAME'] = $file1Name;
     $request->session()->put('FILE1_DATA', $compareFile1ToFile2Result);
     $compareFile2ToFile1Result = ReconciliationUtils::compareFile($file2Path, $file1Path);
     $compareFile2ToFile1Result['FILE2_NAME'] = $file2Name;
     $request->session()->put('FILE2_DATA', $compareFile2ToFile1Result);
     return redirect('/reconciliation?results=true')->withSuccess("Comparison done!");
 }
 function __construct()
 {
     ReconciliationUtils::$maxdiffdate = 60;
     ReconciliationUtils::$minconfidencescore = 50;
     ReconciliationUtils::$amountweight = 0.4;
     ReconciliationUtils::$walletrefweight = 0.3;
     ReconciliationUtils::$dateweight = 0.15;
     ReconciliationUtils::$idweight = 0.05;
     ReconciliationUtils::$narrativeweight = 0.1;
 }