/** * Execute the console command. * * @return mixed */ public function handle() { Log::info('Begin the check-cycle-bill command.'); $now = Carbon::now(); $cycleBillList = CompanyCycleBill::where('next_date', '>=', $now->format('Y-m-01 00:00:00'))->where('next_date', '<=', $now->format('Y-m-31 23:59:59'))->get(); foreach ($cycleBillList as $cycleBill) { $companyBill = new CompanyBill(); $item = $cycleBill->item; if ($cycleBill->rule = '1m') { $item = $item . "(" . $now->month . "月)"; } elseif ($cycleBill->rule = '3m') { $item = $item . "(" . (int) ($now->month / 4 + 1) . "季度)"; } elseif ($cycleBill->rule = '12m') { $item = $item . "(" . $now->year . "年)"; } $companyBill->item = $item; $companyBill->user_id = $cycleBill->user_id; $companyBill->remarks = $cycleBill->remarks; $companyBill->company_id = $cycleBill->company_id; $companyBill->operator_id = $cycleBill->operator_id; $companyBill->grand_total = $cycleBill->grand_total; $companyBill->deadline = $cycleBill->next_date; $companyBill->cycle_bill_id = $cycleBill->id; $companyBill->save(); $cycleBill->next_date = $cycleBill->next_date->addMonth(intval($cycleBill->rule)); $cycleBill->save(); } Log::info('End the check-cycle-bill command.'); }
/** * 增加收款周期 * @param Request $request * @param $companyId * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function addCycleBill(Request $request, $companyId) { $input = $request->only('item', 'grand_total', 'start_date', 'rule', 'remarks'); $rules = ['item' => 'required', 'grand_total' => 'required|numeric|min:1', 'start_date' => 'required|date', 'rule' => 'required|in:1m,3m,12m']; $v = Validator::make($input, $rules); if ($v->fails()) { Session::flash('error', $v->messages()->first()); return redirect()->back()->with($input); } $arr = explode("-", $input['start_date']); $startDate = Carbon::createFromDate($arr[0], $arr[1], $arr[2]); $bill = new CompanyCycleBill(); $bill->item = $input['item']; $bill->user_id = Session::get('company_id'); $bill->company_id = $companyId; $bill->operator_id = Auth::user()->id; $bill->grand_total = $input['grand_total']; $bill->start_date = $input['start_date']; $bill->next_date = $startDate->addMonth(intval($input['rule'])); $bill->rule = $input['rule']; $bill->remarks = $input['remarks']; $bill->save(); $now = Carbon::now(); if ($now->format('Y-m-d') == $bill->start_date) { $companyBill = new CompanyBill(); $item = $bill->item; if ($bill->rule = '1m') { $item = $item . "(" . $now->month . "月)"; } elseif ($bill->rule = '3m') { $item = $item . "(" . (int) ($now->month / 4 + 1) . "季度)"; } elseif ($bill->rule = '12m') { $item = $item . "(" . $now->year . "年)"; } $companyBill->item = $item; $companyBill->user_id = $bill->user_id; $companyBill->remarks = $bill->remarks; $companyBill->company_id = $bill->company_id; $companyBill->operator_id = $bill->operator_id; $companyBill->grand_total = $bill->grand_total; $companyBill->deadline = $bill->start_date; $companyBill->cycle_bill_id = $bill->id; $companyBill->save(); } Session::flash('success', '添加收款周期成功'); return redirect(action('CompanyBillController@getAllBills', $companyId) . "?type=cycle"); }