Tôi chưa bao giờ viết một lớp php trước đây từ đầu. Nhưng tôi đoán bạn phải bắt đầu từ đâu đó phải không? Tôi đã có một ý tưởng, nhưng cần sự giúp đỡ về logic. Xin vui lòng cho tôi biết những gì bạn nghĩ. Dưới đây là tốc ký rõ ràng. Trong các giai đoạn lập kế hoạch.
Class -
-> type (recurring, single, day)
-> Recurring days (4,2,3,4,1,2....etc. for odd schedules- need even pairs)
-> Shift Type (onshift, vacation, medical, etc...)
-> Emp Id
-> Start
-> End
-> Location Id
-> Hours per day
-> Day start time
get schedule ( by account/location/company/unit/crew/individual )
select single entries
separate array into days (1 day) increments
if single entries have linking day entries, replace array with day entry information
return mysql array of days for the time period;
set schedule ( dates, emp id)
if recurring
if already exisits || conflicts with existing
error
create recurring template in db table
create single db entries using recurring days for 1 year
if single
if date is between dates already in db || more than 1 year out
error
else
insert into db
if day
if no existing single range
error
else
insert into db under day table, with id linking to id of existing single.
remove recurringOnly(emp id)
delete all entries with recurring id
remove all entries( from this date forward, emp id )
delete entries with start date > date
cronUpdate( cron start / end dates)
if cron start / end dates
delete anything with dates bigger than nextUpdate (to make sure no errors)
select recurring db entries with nextUpdate between cron start/ end
insert into db the next set of "recurring days" for the employee
update nextUpdate date for employee
else - error
+1 cho mã giả. Tuy nhiên, bạn có thể cụ thể hơn về logic mà bạn đang tìm kiếm trợ giúp không?
—
Jordan
Logan, danh tiếng cho bạn vì muốn làm điều này một cách chính xác và thực sự động não cho quá trình của bạn. Tôi yêu người dùng như bạn. Nhưng chính xác những gì bạn cần giúp đỡ với?
—
Levi Morrison
Tôi lo lắng về lịch trình nhận được, nơi tôi chia thành gia số ngày. Tôi nghĩ rằng nó có thể khá chuyên sâu về cpu, đặc biệt là khi lên lịch cho cả một bộ phận mọi người. Ngoài ra, nó sẽ có rất nhiều dữ liệu xfer'd trở lại trang. Nhưng tôi không thể thấy bất kỳ cách nào khác để có thể cập nhật thông tin từng ngày được điều chỉnh.
@Logan: Bạn có thể xây dựng sơ đồ lớp UML cho lớp của mình không? Đó sẽ là sự giúp đỡ tốt hơn.
—
Victor