コード例 #1
0
 public function update($id, InitializationRequest $request)
 {
     try {
         DB::transaction(function () use($request, $id) {
             $currentYear = CommonHelper::get_current_financial_year();
             $balanceInput = $request->input('balance');
             foreach ($balanceInput as $code => $amount) {
                 $WorkspaceLedger = new WorkspaceLedger();
                 $GeneralLedger = new GeneralLedger();
                 $WorkspaceLedger->workspace_id = $id;
                 $WorkspaceLedger->year = $currentYear;
                 $WorkspaceLedger->account_code = $code;
                 $WorkspaceLedger->balance_type = Config::get('common.balance_type_opening');
                 $WorkspaceLedger->balance = $amount;
                 $WorkspaceLedger->created_by = Auth::user()->id;
                 $WorkspaceLedger->created_at = time();
                 $WorkspaceLedger->save();
                 $WorkspaceLedger = new WorkspaceLedger();
                 // Intermediate row insert
                 $WorkspaceLedger->workspace_id = $id;
                 $WorkspaceLedger->year = $currentYear;
                 $WorkspaceLedger->account_code = $code;
                 $WorkspaceLedger->balance_type = Config::get('common.balance_type_intermediate');
                 $WorkspaceLedger->balance = $amount;
                 $WorkspaceLedger->created_by = Auth::user()->id;
                 $WorkspaceLedger->created_at = time();
                 $WorkspaceLedger->save();
                 $existingGeneralData = GeneralLedger::where(['account_code' => $code, 'balance_type' => Config::get('common.balance_type_opening'), 'year' => $currentYear])->first();
                 if ($existingGeneralData) {
                     $existingGeneral = GeneralLedger::firstOrNew(['account_code' => $code, 'balance_type' => Config::get('common.balance_type_opening'), 'year' => $currentYear]);
                     $existingGeneral->year = $currentYear;
                     $existingGeneral->account_code = $code;
                     $existingGeneral->balance_type = Config::get('common.balance_type_opening');
                     $existingGeneral->balance = $existingGeneralData->balance + $amount;
                     $existingGeneral->updated_by = Auth::user()->id;
                     $existingGeneral->updated_at = time();
                     $existingGeneral->update();
                 } else {
                     $GeneralLedger->year = $currentYear;
                     $GeneralLedger->account_code = $code;
                     $GeneralLedger->balance_type = Config::get('common.balance_type_opening');
                     $GeneralLedger->balance = $amount;
                     $GeneralLedger->created_by = Auth::user()->id;
                     $GeneralLedger->created_at = time();
                     $GeneralLedger->save();
                 }
                 //                // General Intermediate Data Insert/ Update
                 //                $GeneralLedger = New GeneralLedger;
                 //                $existingGeneralIntermediateData = GeneralLedger::where(['account_code' => $code, 'balance_type' => Config::get('common.balance_type_intermediate')])->first();
                 //
                 //                if($existingGeneralIntermediateData)
                 //                {
                 //                    $existingGeneralIntermediate = GeneralLedger::firstOrNew(['account_code' => $code, 'balance_type' => Config::get('common.balance_type_intermediate')]);
                 //
                 //                    $existingGeneralIntermediate->year = date('Y');
                 //                    $existingGeneralIntermediate->account_code = $code;
                 //                    $existingGeneralIntermediate->balance_type = Config::get('common.balance_type_intermediate');
                 //                    $existingGeneralIntermediate->balance = $existingGeneralData->balance + $amount;
                 //                    $existingGeneralIntermediate->updated_by = Auth::user()->id;
                 //                    $existingGeneralIntermediate->updated_at = time();
                 //                    $existingGeneralIntermediate->update();
                 //                }
                 //                else
                 //                {
                 //                    $GeneralLedger->year = date('Y');
                 //                    $GeneralLedger->account_code = $code;
                 //                    $GeneralLedger->balance_type = Config::get('common.balance_type_intermediate');
                 //                    $GeneralLedger->balance = $amount;
                 //                    $GeneralLedger->created_by = Auth::user()->id;
                 //                    $GeneralLedger->created_at = time();
                 //                    $GeneralLedger->save();
                 //                }
             }
         });
     } catch (\Exception $e) {
         Session()->flash('error_message', 'Accounts not Initialized!');
         return redirect('initializations');
     }
     Session()->flash('flash_message', 'Accounts Initialized!');
     return redirect('initializations');
 }