This commit is contained in:
minom committed 2026-11-10 18:03:52 +08:00
1 parent 9e251fc7d4
commit 98ee587dc0
6 files changed
+1154 -216

No files matched your search

+116
View File
@@ -304,7 +304,122 @@ public class guadanOrderController : ApiController
if (json != null && json.guest != null)
{
var guest = json.guest;
if (((string)guest.uuid).StartsWith("temp"))
{
//建立掛單明細
var new_guest = new GuaDanOrderGuest
{
GuaDanOrderNo = guest.guaDanOrderNo,
Uuid = Guid.NewGuid(),
StatusCode = GuaDanOrderGuest.STATUS_BOOKED, // 預約狀態
RoomUuid = guest.roomUuid,
BedUuid = guest.bedUuid,
CheckInAt = guest.checkInAt,
CheckOutAt = guest.checkOutAt,
Sex = guest.gender,
Handi = guest.handi,
IsDeleted = false,
Name = guest.name,
OrderUuid=guest.orderUuid,
};
//_db.GuaDanOrderGuest.Remove(old);
_db.GuaDanOrderGuest.Add(new_guest);
int totalDays = (new_guest.CheckOutAt.Value - new_guest.CheckInAt.Value).Days;
var bedList = new List<RegionAndRoomAndBedSchedule>();
for (int i = 0; i < totalDays; i++)
{
var scheduleDate = new_guest.CheckOutAt.Value.AddDays(i);
var schedul = new RegionAndRoomAndBedSchedule
{
Title = "掛單",
Description = "床位掛單",
ScheduleDate = scheduleDate,
IsDeleted = false,
IsCancel = false,
TargetUuid = new_guest.BedUuid,
UseType = (int)RegionAndRoomAndBedSchedule.SchedulePurpose.Bed_Reservation,
CreatedAt = DateTime.Now,
GuaDanOrderNo = new_guest.GuaDanOrderNo,
Uuid = Guid.NewGuid(),
GuaDanOrderGuestUuid = new_guest.Uuid,
};
//_db.RegionAndRoomAndBedSchedule.Add(schedul);
bedList.Add(schedul);
}
_db.RegionAndRoomAndBedSchedule.AddRange(bedList);
}
else
{
if (!Guid.TryParse((string)guest.uuid, out Guid targetGuid))
{
return BadRequest("無效的 GUID 格式");
}
var old = _db.GuaDanOrderGuest.Where(a => a.Uuid == targetGuid).FirstOrDefault();
if (old == null)
{
return BadRequest("未找到對應掛單明細資料");
}
var sch = _db.RegionAndRoomAndBedSchedule.Where(a => a.GuaDanOrderGuestUuid == old.Uuid).ToList();
if (sch != null)
{
_db.RegionAndRoomAndBedSchedule.RemoveRange(sch);
}
//建立掛單明細
var new_guest = new GuaDanOrderGuest
{
GuaDanOrderNo = old.GuaDanOrderNo,
Uuid = Guid.NewGuid(),
StatusCode = GuaDanOrderGuest.STATUS_BOOKED, // 預約狀態
RoomUuid = guest.roomUuid,
BedUuid = guest.bedUuid,
CheckInAt = guest.checkInAt,
CheckOutAt = guest.checkOutAt,
Sex = guest.gender,
Handi = guest.handi,
IsDeleted = false,
Name = guest.name,
};
_db.GuaDanOrderGuest.Remove(old);
_db.GuaDanOrderGuest.Add(new_guest);
int totalDays = (new_guest.CheckOutAt.Value - new_guest.CheckInAt.Value).Days;
var bedList = new List<RegionAndRoomAndBedSchedule>();
for (int i = 0; i < totalDays; i++)
{
var scheduleDate = new_guest.CheckOutAt.Value.AddDays(i);
var schedul = new RegionAndRoomAndBedSchedule
{
Title = "掛單",
Description = "床位掛單",
ScheduleDate = scheduleDate,
IsDeleted = false,
IsCancel = false,
TargetUuid = new_guest.BedUuid,
UseType = (int)RegionAndRoomAndBedSchedule.SchedulePurpose.Bed_Reservation,
CreatedAt = DateTime.Now,
GuaDanOrderNo = new_guest.GuaDanOrderNo,
Uuid = Guid.NewGuid(),
GuaDanOrderGuestUuid = new_guest.Uuid,
};
//_db.RegionAndRoomAndBedSchedule.Add(schedul);
bedList.Add(schedul);
}
_db.RegionAndRoomAndBedSchedule.AddRange(bedList);
}
_db.SaveChanges();
}
else {
return BadRequest("請提供掛單明細資料");
}
return Ok();
}
@@ -383,6 +498,7 @@ public class guadanOrderController : ApiController
Handi = detail.handi,
IsDeleted = false,
Name = detail.name,
OrderUuid=guadanorder.Uuid
};
list.Add(guest);
if (!Guid.TryParse((string)detail.bedUuid, out Guid targetGuid))
+12 -1
View File
@@ -61,7 +61,9 @@ public class regionController : ApiController
{
query = query.Where(r => r.Room.Any(room => room.Uuid == filter.RoomId.Value));
}
var allGuaDanLimits = _db.GuaDanLimits
.Select(g => new { g.ParamNo, g.ParamName })
.ToList();
var data = query
.ToList()
.Select(r => new
@@ -101,6 +103,15 @@ public class regionController : ApiController
bed.StatusCode,
bed.IsActive,
bed.IsDeleted,
Limits = allGuaDanLimits
.Where(g => (bed.Limits ?? "")
.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Contains(g.ParamNo))
.Select(g => new
{
g.ParamNo,
g.ParamName
}).ToList(),
canuse = bed.IsAvailableDuring(startDate, endDate, _db),
statusname = bed.RegionRoomBedStatus.Name,
schedules = _db.RegionAndRoomAndBedSchedule