/** * 支払いサイトから支払日を取得する */ public function &Result_AdminReportSalesGenkaEdit_getBillingCompanyDataOfPaymentDate(&$data, $targetMonth) { // 支払いサイト(日)リスト取得 $enum = new ClientPaymentSiteDayEnum(); $paymentSiteDayList = $enum->getArray(); // 支払いサイト $paymentSiteMonth = $data['payment_site_month']; $paymentSiteDay = $data['payment_site_day']; if (empty($paymentSiteMonth) == false && empty($paymentSiteDay) == false) { $day = 0; // 月末以外の場合は日付を設定 if ($paymentSiteDay == "6") { $paymentSiteMonth = $paymentSiteMonth + 1; } else { $day = str_replace("日", "", $paymentSiteDayList[$paymentSiteDay]); } // 対象年・月取得 $i = strtotime($targetMonth); // 対象年と月を取得 $year = date('Y', $i); $month = date('m', $i); // 支払日設定 $paymentDate = mktime(0, 0, 0, $month + $paymentSiteMonth, $day, $year); // 一ヶ月先の休日リストを取得 $holidayList =& DateManager::getHolidayBefore1Month($paymentDate); // 直近の支払い日を取得 $paymentDate = DateManager::getNearestBusinessDay($paymentDate, $holidayList); $data['payment_date'] = $paymentDate; } return $data; }