/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Salary::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'salary' => $this->salary, 'date_salary' => $this->date_salary]); $query->andFilterWhere(['like', 'employee', $this->employee])->andFilterWhere(['like', 'year', $this->year])->andFilterWhere(['like', 'month', $this->month]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Salary::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'salary' => $this->salary, 'create_at' => $this->create_at, 'update_at' => $this->update_at, 'uid' => Yii::$app->user->id]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'remark', $this->remark]); return $dataProvider; }
public function store(SalaryPaymentRequest $request) { try { DB::transaction(function () use($request) { $inputs = $request->input(); $user = Auth::user(); $time = time(); $date = strtotime(date('d-m-Y')); $year = CommonHelper::get_current_financial_year(); $oldPayment = SalaryPayment::where('salary_id', '=', $inputs['salary_id'])->where('status', '!=', 4)->first(); if (empty($oldPayment)) { $salaryPayment = new SalaryPayment(); $salaryPayment->salary_id = $inputs['salary_id']; $salaryPayment->employee_id = $inputs['employee_id']; $salaryPayment->employee_type = Config::get('common.employee_type.Regular'); $salaryPayment->workspace_id = $inputs['workspace_id']; $salaryPayment->year = $year; $salaryPayment->month = $inputs['month']; $salaryPayment->voucher_no = $inputs['voucher_no']; $salaryPayment->payment_date = $time; if (isset($inputs['net_pay'])) { $salaryPayment->net_paid = $inputs['net_pay']; } if (isset($inputs['bonus_pay'])) { $salaryPayment->bonus_paid = $inputs['bonus_pay']; } if (isset($inputs['over_time_pay'])) { $salaryPayment->over_time_paid = $inputs['over_time_pay']; } $salaryPayment->created_by = $user->id; $salaryPayment->created_at = $time; $salaryPayment->save(); $salary = Salary::find($inputs['salary_id']); $clone = clone $salary; $net_due = 0; $bonus_due = 0; $overtime_due = 0; if (isset($inputs['net_pay'])) { $salary->net_paid = $net_due = $inputs['net_pay']; $salary->net_due -= $inputs['net_pay']; } if (isset($inputs['bonus_pay'])) { $salary->bonus_paid = $bonus_due = $inputs['bonus_pay']; $salary->bonus_due -= $inputs['bonus_pay']; } if (isset($inputs['over_time_pay'])) { $salary->over_time_paid = $overtime_due = $inputs['over_time_pay']; $salary->over_time_due -= $inputs['over_time_pay']; } if ($net_due == $clone->net_due && $bonus_due == $clone->bonus_due && $overtime_due == $clone->over_time_due) { $salary->status = 4; //Completed //Update Payment $payment = SalaryPayment::find($salaryPayment->id); $payment->status = 4; //Completed $payment->update(); } else { $salary->status = 2; //Partial //Update Payment $payment = SalaryPayment::find($salaryPayment->id); $payment->status = 2; //Partial $payment->update(); } $salary->updated_by = $user->id; $salary->updated_at = $time; $salary->update(); $personalAccount = PersonalAccount::where(['person_id' => $inputs['employee_id'], 'person_type' => Config::get('common.person_type_employee')])->first(); if (isset($inputs['net_pay'])) { $personalAccount->balance -= $inputs['net_pay']; } if (isset($inputs['bonus_pay'])) { $personalAccount->bonus_balance -= $inputs['bonus_pay']; } if (isset($inputs['over_time_pay'])) { $personalAccount->overtime_balance -= $inputs['over_time_pay']; } $personalAccount->updated_by = $user->id; $personalAccount->updated_at = $time; $personalAccount->update(); if (isset($inputs['net_pay']) && $inputs['net_pay'] > 0) { $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 42000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['net_pay']; //Sub Salary Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $salaryPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 42000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['net_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 11000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['net_pay']; //Sub Cash $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $salaryPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 11000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['net_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } if (isset($inputs['bonus_pay']) && $inputs['bonus_pay'] > 0) { $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 45000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['bonus_pay']; //Sub Bonus Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $salaryPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 45000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['bonus_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 11000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['bonus_pay']; //Sub Cash $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $salaryPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 11000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['bonus_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } if (isset($inputs['over_time_pay']) && $inputs['over_time_pay'] > 0) { $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 44000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['over_time_pay']; //Sub Overtime Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $salaryPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 44000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['over_time_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 11000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['over_time_pay']; //Sub Cash $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $salaryPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 11000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['over_time_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } } else { $oldPayment->payment_date = $time; if (isset($inputs['net_pay'])) { $oldPayment->net_paid += $inputs['net_pay']; } if (isset($inputs['bonus_pay'])) { $oldPayment->bonus_paid += $inputs['bonus_pay']; } if (isset($inputs['over_time_pay'])) { $oldPayment->over_time_paid += $inputs['over_time_pay']; } $oldPayment->updated_by = $user->id; $oldPayment->updated_at = $time; $oldPayment->update(); $salary = Salary::find($inputs['salary_id']); $clone = clone $salary; $net_due = 0; $bonus_due = 0; $overtime_due = 0; if (isset($inputs['net_pay'])) { $salary->net_paid += $net_due = $inputs['net_pay']; $salary->net_due -= $inputs['net_pay']; } if (isset($inputs['bonus_pay'])) { $salary->bonus_paid += $bonus_due = $inputs['bonus_pay']; $salary->bonus_due -= $inputs['bonus_pay']; } if (isset($inputs['over_time_pay'])) { $salary->over_time_paid += $overtime_due = $inputs['over_time_pay']; $salary->over_time_due -= $inputs['over_time_pay']; } if ($net_due == $clone->net_due && $bonus_due == $clone->bonus_due && $overtime_due == $clone->over_time_due) { $salary->status = 4; //Completed //Update Payment $payment = SalaryPayment::find($oldPayment->id); $payment->status = 4; //Completed $payment->update(); } else { $salary->status = 2; //Partial //Update Payment $payment = SalaryPayment::find($oldPayment->id); $payment->status = 2; //Partial $payment->update(); } $salary->updated_by = $user->id; $salary->updated_at = $time; $salary->update(); $personalAccount = PersonalAccount::where(['person_id' => $inputs['employee_id'], 'person_type' => Config::get('common.person_type_employee')])->first(); if (isset($inputs['net_pay'])) { $personalAccount->balance -= $inputs['net_pay']; } if (isset($inputs['bonus_pay'])) { $personalAccount->bonus_balance -= $inputs['bonus_pay']; } if (isset($inputs['over_time_pay'])) { $personalAccount->overtime_balance -= $inputs['over_time_pay']; } $personalAccount->updated_by = $user->id; $personalAccount->updated_at = $time; $personalAccount->update(); if (isset($inputs['net_pay']) && $inputs['net_pay'] > 0) { $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 42000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['net_pay']; //Sub Salary Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $data = ['transaction_type' => Config::get('common.transaction_type.salary_payment'), 'reference_id' => $oldPayment->id, 'year' => $year, 'account_code' => 42000, 'workspace_id' => $user->workspace_id]; $generalJournal = GeneralJournal::firstOrCreate($data); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $oldPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 42000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount += $inputs['net_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 11000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['net_pay']; //Sub Cash $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $data = ['transaction_type' => Config::get('common.transaction_type.salary_payment'), 'reference_id' => $oldPayment->id, 'year' => $year, 'account_code' => 11000, 'workspace_id' => $user->workspace_id]; $generalJournal = GeneralJournal::firstOrCreate($data); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $oldPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 11000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount += $inputs['net_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } if (isset($inputs['bonus_pay']) && $inputs['bonus_pay'] > 0) { $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 45000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['bonus_pay']; //Sub Bonus Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $data = ['transaction_type' => Config::get('common.transaction_type.salary_payment'), 'reference_id' => $oldPayment->id, 'year' => $year, 'account_code' => 45000, 'workspace_id' => $user->workspace_id]; $generalJournal = GeneralJournal::firstOrCreate($data); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $oldPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 45000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount += $inputs['bonus_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 11000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['bonus_pay']; //Sub Cash $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $data = ['transaction_type' => Config::get('common.transaction_type.salary_payment'), 'reference_id' => $oldPayment->id, 'year' => $year, 'account_code' => 11000, 'workspace_id' => $user->workspace_id]; $generalJournal = GeneralJournal::firstOrCreate($data); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $oldPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 11000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount += $inputs['bonus_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } if (isset($inputs['over_time_pay']) && $inputs['over_time_pay'] > 0) { $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 44000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['over_time_pay']; //Sub Overtime Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $data = ['transaction_type' => Config::get('common.transaction_type.salary_payment'), 'reference_id' => $oldPayment->id, 'year' => $year, 'account_code' => 44000, 'workspace_id' => $user->workspace_id]; $generalJournal = GeneralJournal::firstOrCreate($data); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $oldPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 44000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount += $inputs['over_time_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 11000, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $inputs['over_time_pay']; //Sub Cash $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $data = ['transaction_type' => Config::get('common.transaction_type.salary_payment'), 'reference_id' => $oldPayment->id, 'year' => $year, 'account_code' => 11000, 'workspace_id' => $user->workspace_id]; $generalJournal = GeneralJournal::firstOrCreate($data); $generalJournal->date = $date; $generalJournal->transaction_type = Config::get('common.transaction_type.salary_payment'); $generalJournal->reference_id = $oldPayment->id; $generalJournal->year = $year; $generalJournal->account_code = 11000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount += $inputs['over_time_pay']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } } }); } catch (\Exception $e) { dd($e); Session()->flash('error_message', 'Salary payment cannot successful. Please Try again.'); return Redirect::back(); } Session()->flash('flash_message', 'Salary paid successfully.'); return Redirect::back(); }
public function actionSave() { $request = Yii::$app->request; $columns = array("employee" => $request->post('employee'), "salary" => $request->post('salary'), "month" => $request->post('month'), "year" => $request->post('year'), "car_id" => $request->post('car_id'), "date_salary" => date("Y-m-d")); $result = Salary::find()->where(['employee' => $request->post('employee')])->andWhere(['year' => $request->post('year')])->andWhere(['month' => $request->post('month')])->one(); if (empty($result)) { Yii::$app->db->createCommand()->insert("salary", $columns)->execute(); } else { echo "1"; } }
public function update($id, SalaryGeneratorRequest $request) { try { DB::transaction(function () use($request, $id) { $user = Auth::user(); $time = time(); $date = strtotime(date('d-m-Y')); $year = CommonHelper::get_current_financial_year(); $transaction_type = Config::get('common.transaction_type.salary'); $balance_type = Config::get('common.balance_type_intermediate'); $inputs = $request->input(); $salary = Salary::find($id); $copy = clone $salary; $salary->cut = $inputs['cut']; $salary->net = $inputs['net']; $salary->net_due = $inputs['net']; if ($inputs['over_time'] > 0) { $salary->over_time = $inputs['over_time']; $salary->over_time_due = $inputs['overtime_amount']; $salary->over_time_amount = $inputs['overtime_amount']; } if ($inputs['bonus'] > 0) { $salary->bonus = $inputs['bonus']; $salary->bonus_due = $inputs['bonus']; } $salary->update(); $personalAccount = PersonalAccount::where(['person_id' => $copy->employee_id, 'person_type' => Config::get('common.person_type_employee')])->first(); if ($inputs['net'] > $copy->net) { $balance = $inputs['net'] - $copy->net; $personalAccount->balance += $balance; //Add } elseif ($inputs['net'] < $copy->net) { $balance = $copy->net - $inputs['net']; $personalAccount->balance -= $balance; //Sub } if ($inputs['overtime_amount'] > $copy->over_time_amount) { $personalAccount->overtime_balance += $inputs['overtime_amount'] - $copy->over_time_amount; } elseif ($inputs['overtime_amount'] < $copy->over_time_amount) { $personalAccount->overtime_balance -= $copy->over_time_amount - $inputs['overtime_amount']; } if ($inputs['bonus'] > $copy->bonus) { $personalAccount->bonus_balance += $inputs['bonus'] - $copy->bonus; } elseif ($inputs['bonus'] < $copy->bonus) { $personalAccount->bonus_balance -= $copy->bonus - $inputs['bonus']; } $personalAccount->updated_by = $user->id; $personalAccount->updated_at = $time; $personalAccount->save(); if ($inputs['net'] > $copy->net) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 42000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $balance; //Add Salary Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 22000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $balance; //Add Salary Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 42000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount += $balance; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 22000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount += $balance; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } elseif ($inputs['net'] < $copy->net) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 42000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $balance; //Add Salary Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 22000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $balance; //Add Salary Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 42000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount -= $balance; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 22000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount -= $balance; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } if ($inputs['over_time'] && !$copy->over_time) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 44000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $inputs['overtime_amount']; //Add Overtime Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = $transaction_type; $generalJournal->reference_id = $salary->id; $generalJournal->year = $year; $generalJournal->account_code = 44000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['over_time']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 29993, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $inputs['overtime_amount']; //Add Overtime Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = $transaction_type; $generalJournal->reference_id = $salary->id; $generalJournal->year = $year; $generalJournal->account_code = 29993; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['over_time']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } else { if (!$inputs['over_time'] && $copy->over_time) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 44000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $copy->over_time; //Add Overtime Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 44000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->delete(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 29993, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance = $copy->over_time; //Add Overtime Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 29993, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->deleet(); } else { if ($inputs['over_time'] > $copy->over_time) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 44000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $inputs['overtime_amount'] - $copy->overtime_amount; //Add Overtime Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 29993, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $inputs['overtime_amount'] - $copy->overtime_amount; //Add Overtime Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 44000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount += $inputs['overtime_amount'] - $copy->overtime_amount; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 29993, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount += $inputs['overtime_amount'] - $copy->overtime_amount; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } elseif ($inputs['over_time'] < $copy->over_time) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 44000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $copy->overtime_amount - $inputs['overtime_amount']; //Sub Overtime Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 29993, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $copy->overtime_amount - $inputs['overtime_amount']; //Sub Overtime Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 44000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount -= $copy->overtime_amount - $inputs['overtime_amount']; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 29993, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount -= $copy->overtime_amount - $inputs['overtime_amount']; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } } } if ($inputs['bonus'] > $copy->bonus) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 45000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $inputs['bonus'] - $copy->bonus; //Add bonus Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 29970, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance += $inputs['bonus'] - $copy->bonus; //Add bonus Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 45000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); if ($generalJournal) { $generalJournal->amount += $inputs['bonus'] - $copy->bonus; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } else { $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = $transaction_type; $generalJournal->reference_id = $salary->id; $generalJournal->year = $year; $generalJournal->account_code = 45000; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['bonus']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 29970, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); if ($generalJournal) { $generalJournal->amount += $inputs['bonus'] - $copy->bonus; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } else { $generalJournal = new GeneralJournal(); $generalJournal->date = $date; $generalJournal->transaction_type = $transaction_type; $generalJournal->reference_id = $salary->id; $generalJournal->year = $year; $generalJournal->account_code = 29970; $generalJournal->workspace_id = $user->workspace_id; $generalJournal->amount = $inputs['bonus']; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = $user->id; $generalJournal->created_at = $time; $generalJournal->save(); } } elseif ($inputs['bonus'] < $copy->bonus) { //Update Workspace Ledger $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 45000, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $copy->bonus - $inputs['bonus']; //Sub bonus Payable $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); $accountPayableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $user->workspace_id, 'account_code' => 29970, 'balance_type' => $balance_type, 'year' => $year])->first(); $accountPayableWorkspaceData->balance -= $copy->bonus - $inputs['bonus']; //Sub bonus Expense $accountPayableWorkspaceData->updated_by = $user->id; $accountPayableWorkspaceData->updated_at = $time; $accountPayableWorkspaceData->update(); // General Journal Table Impact $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 45000, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount -= $copy->bonus - $inputs['bonus']; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); $generalJournal = GeneralJournal::where(['transaction_type' => $transaction_type, 'reference_id' => $id, 'account_code' => 29970, 'year' => $year, 'workspace_id' => $user->workspace_id])->first(); $generalJournal->amount -= $copy->bonus - $inputs['bonus']; $generalJournal->updated_by = $user->id; $generalJournal->updated_at = $time; $generalJournal->save(); } }); } catch (\Exception $e) { dd($e); Session()->flash('error_message', 'Salary cannot Update. Please Try again.'); return Redirect::back(); } Session()->flash('flash_message', 'Salary updated successfully.'); return redirect('salary_generator'); }