public function store(Request $request) { $workspace_id = Auth::user()->workspace_id; $closedWorkspace = AccountClosing::where(['year' => CommonHelper::get_current_financial_year(), 'type' => 1, 'workspace_id' => $workspace_id])->lists('workspace_id'); if (sizeof($closedWorkspace) == 0) { try { DB::transaction(function () use($request) { $workspace_id = Auth::user()->workspace_id; $levelZeros = ChartOfAccount::where(['parent' => 0, 'status' => 1])->select('id', 'name', 'code')->get(); foreach ($levelZeros as $levelZero) { $workspaceData = WorkspaceLedger::where(['workspace_id' => $workspace_id, 'account_code' => $levelZero->code, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => CommonHelper::get_current_financial_year()])->first(); $balance = isset($workspaceData->balance) ? $workspaceData->balance : 0; $a[] = [$levelZero->id, $levelZero->code, '', $balance]; } for ($ci = 0; isset($a[$ci][0]); $ci++) { $nextLevels = ChartOfAccount::where(['parent' => $a[$ci][0], 'status' => 1])->get(['code', 'id']); foreach ($nextLevels as $nextLevel) { $NextLevelWorkspaceData = WorkspaceLedger::where(['workspace_id' => $workspace_id, 'account_code' => $nextLevel->code, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => CommonHelper::get_current_financial_year()])->first(); $nextLevelBalance = isset($NextLevelWorkspaceData->balance) ? $NextLevelWorkspaceData->balance : 0; $a[] = [$nextLevel->id, $nextLevel->code, $ci, $nextLevelBalance]; } } $ci = sizeof($a) - 1; for (; $ci >= 0; $ci--) { if (isset($a[$a[$ci][2]][3])) { $contra = ChartOfAccount::where(['contra_status' => 1, 'id' => $a[$ci][0]])->first(); if ($contra) { $a[$a[$ci][2]][3] -= $a[$ci][3]; } else { $a[$a[$ci][2]][3] += $a[$ci][3]; } } // Closing Balance $workspaceLedger = new WorkspaceLedger(); $workspaceLedger->workspace_id = $workspace_id; $workspaceLedger->year = CommonHelper::get_current_financial_year(); $workspaceLedger->account_code = $a[$ci][1]; $workspaceLedger->balance_type = Config::get('common.balance_type_closing'); $workspaceLedger->balance = $a[$ci][3]; $workspaceLedger->created_by = Auth::user()->id; $workspaceLedger->created_at = time(); $workspaceLedger->save(); if (substr($a[$ci][1], 0, 1) == 1 || substr($a[$ci][1], 0, 1) == 4 || substr($a[$ci][1], 0, 1) == 6) { // Initial Balance Next Year $workspaceLedger = new WorkspaceLedger(); $workspaceLedger->workspace_id = $workspace_id; $workspaceLedger->year = CommonHelper::get_next_financial_year(); $workspaceLedger->account_code = $a[$ci][1]; $workspaceLedger->balance_type = Config::get('common.balance_type_opening'); $workspaceLedger->balance = $a[$ci][3]; $workspaceLedger->created_by = Auth::user()->id; $workspaceLedger->created_at = time(); $workspaceLedger->save(); // Intermediate Balance Next Year $workspaceLedger = new WorkspaceLedger(); $workspaceLedger->workspace_id = $workspace_id; $workspaceLedger->year = CommonHelper::get_next_financial_year(); $workspaceLedger->account_code = $a[$ci][1]; $workspaceLedger->balance_type = Config::get('common.balance_type_intermediate'); $workspaceLedger->balance = $a[$ci][3]; $workspaceLedger->created_by = Auth::user()->id; $workspaceLedger->created_at = time(); $workspaceLedger->save(); } else { // Initial Balance Next Year $workspaceLedger = new WorkspaceLedger(); $workspaceLedger->workspace_id = $workspace_id; $workspaceLedger->year = CommonHelper::get_next_financial_year(); $workspaceLedger->account_code = $a[$ci][1]; $workspaceLedger->balance_type = Config::get('common.balance_type_opening'); $workspaceLedger->balance = 0; $workspaceLedger->created_by = Auth::user()->id; $workspaceLedger->created_at = time(); $workspaceLedger->save(); // Intermediate Balance Next Year $workspaceLedger = new WorkspaceLedger(); $workspaceLedger->workspace_id = $workspace_id; $workspaceLedger->year = CommonHelper::get_next_financial_year(); $workspaceLedger->account_code = $a[$ci][1]; $workspaceLedger->balance_type = Config::get('common.balance_type_intermediate'); $workspaceLedger->balance = 0; $workspaceLedger->created_by = Auth::user()->id; $workspaceLedger->created_at = time(); $workspaceLedger->save(); } } // Workspace Account Close Info $accountClosing = new AccountClosing(); $accountClosing->workspace_id = $workspace_id; $accountClosing->year = CommonHelper::get_current_financial_year(); $accountClosing->save(); // Workspace Stock Closing $existingStocks = Stock::where(['stock_type' => Config::get('common.balance_type_intermediate'), 'workspace_id' => $workspace_id, 'year' => CommonHelper::get_current_financial_year()])->get(); if (sizeof($existingStocks) > 0) { foreach ($existingStocks as $existingStock) { // Current Year Closing Balance $stock = new Stock(); $stock->year = CommonHelper::get_current_financial_year(); $stock->stock_type = Config::get('common.balance_type_closing'); $stock->workspace_id = $workspace_id; $stock->product_id = $existingStock->product_id; $stock->quantity = $existingStock->quantity; $stock->created_by = Auth::user()->id; $stock->created_at = time(); $stock->save(); // Next Year Opening Balance $stock = new Stock(); $stock->year = CommonHelper::get_next_financial_year(); $stock->stock_type = Config::get('common.balance_type_opening'); $stock->workspace_id = $workspace_id; $stock->product_id = $existingStock->product_id; $stock->quantity = $existingStock->quantity; $stock->created_by = Auth::user()->id; $stock->created_at = time(); $stock->save(); // Next Year Intermediate Balance $stock = new Stock(); $stock->year = CommonHelper::get_next_financial_year(); $stock->stock_type = Config::get('common.balance_type_intermediate'); $stock->workspace_id = $workspace_id; $stock->product_id = $existingStock->product_id; $stock->quantity = $existingStock->quantity; $stock->created_by = Auth::user()->id; $stock->created_at = time(); $stock->save(); } } }); } catch (\Exception $e) { Session()->flash('error_message', 'Workspace Account Closing Not Done!'); return redirect('workspace_closing'); } Session()->flash('flash_message', 'Workspace Account Closed Successfully!'); return redirect('workspace_closing'); } else { Session()->flash('warning_message', 'Workspace Account Closed Already For This Year!'); return redirect('workspace_closing'); } }
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'); }
public function store(BankRequest $request) { try { DB::transaction(function () use($request) { $inputs = $request->input(); $time = time(); $user = Auth::user(); $year = CommonHelper::get_current_financial_year(); $bank = new Bank(); $chartOfAccount = new ChartOfAccount(); $workspaceLedgerData = new WorkspaceLedger(); // Bank Entry $bank->name = $inputs['name']; $bank->account_name = $inputs['account_name']; $bank->account_no = $inputs['account_no']; $bank->account_director = $inputs['account_director']; $bank->account_type = $inputs['account_type']; $bank->start_date = $inputs['start_date']; $bank->balance = $inputs['opening_balance']; $bank->account_code = $inputs['account_code']; $bank->created_by = $user->id; $bank->created_at = $time; $bank->save(); // Account Head Entry $chartOfAccount->parent = 1; // Asset $chartOfAccount->name = $inputs['name']; $chartOfAccount->code = $inputs['account_code']; $chartOfAccount->save(); // Workspace Ledger Account Head Data (Opening) $workspaceLedgerData->workspace_id = $user->workspace_id; $workspaceLedgerData->year = $year; $workspaceLedgerData->account_code = $inputs['account_code']; $workspaceLedgerData->balance_type = Config::get('common.balance_type_opening'); $workspaceLedgerData->balance = 0; $workspaceLedgerData->created_by = $user->id; $workspaceLedgerData->created_at = $time; $workspaceLedgerData->save(); // Workspace Ledger Account Head Data (Intermediate) $workspaceLedgerData = new WorkspaceLedger(); $workspaceLedgerData->workspace_id = $user->workspace_id; $workspaceLedgerData->year = $year; $workspaceLedgerData->account_code = $inputs['account_code']; $workspaceLedgerData->balance_type = Config::get('common.balance_type_intermediate'); $workspaceLedgerData->balance = 0; $workspaceLedgerData->created_by = $user->id; $workspaceLedgerData->created_at = $time; $workspaceLedgerData->save(); if ($inputs['opening_balance'] > 0) { // Update Workspace Ledger $workspaceLedger = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => $inputs['account_code'], 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $workspaceLedger->balance += $inputs['opening_balance']; $workspaceLedger->updated_by = $user->id; $workspaceLedger->updated_by = $time; $workspaceLedger->save(); } }); } catch (\Exception $e) { dd($e); Session::flash('error_message', 'Failed to create Bank. Please try again!'); return Redirect::back(); } Session::flash('flash_message', 'Bank created successfully!'); return redirect('banks'); }