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))