掛單
This commit is contained in:
1 parent
9e251fc7d4
commit
98ee587dc0
6 files changed
+1154
-216
No files matched your search
@@ -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))
|
||||
|
||||
Reference in new issue
Block a user