fix(bill delay):fix create record
This commit is contained in:
@@ -67,8 +67,11 @@ class BillDelayRepository(BaseRepository):
|
||||
delay = await super().create(coding)
|
||||
project = await use_collection(TaskEnv.CLN_PROJECT).find_one({"_id": coding.project_id})
|
||||
project_model = ProjectModel(**project)
|
||||
date_delay = project_model.date_delay + datetime.timedelta(days=coding.total_day)
|
||||
await use_collection(TaskEnv.CLN_PROJECT).update_one({"_id": coding.project_id}, {"$inc": {"all_delay_day":coding.total_day},"$set":{"date_delay":date_delay}})
|
||||
if 'date_delay' in project:
|
||||
date_delay = project_model.date_delay + datetime.timedelta(days=coding.total_day)
|
||||
await use_collection(TaskEnv.CLN_PROJECT).update_one({"_id": coding.project_id}, {"$inc": {"all_delay_day":coding.total_day},"$set":{"date_delay":date_delay}})
|
||||
else:
|
||||
await use_collection(TaskEnv.CLN_PROJECT).update_one({"_id": coding.project_id}, {"$inc": {"all_delay_day":coding.total_day}})
|
||||
return delay
|
||||
async def update(self, _id: UUID, update: BillDelayModel):
|
||||
old = await self.get(_id)
|
||||
|
||||
@@ -91,8 +91,8 @@ class ProjectRepository(BaseRepository[ProjectModel]):
|
||||
return await self.get(coding.id)
|
||||
|
||||
async def update(self, _id: UUID, update: ProjectModel):
|
||||
old_project = await use_collection(COLLECTION).find_one({"_id": _id})
|
||||
old_project = ProjectModel(**old_project)
|
||||
old_project_dict = await use_collection(COLLECTION).find_one({"_id": _id})
|
||||
old_project = ProjectModel(**old_project_dict)
|
||||
if update.monitor and not old_project.monitor:
|
||||
code = self.create_code(update)
|
||||
update.monitor.code = 'S' + code
|
||||
@@ -104,7 +104,15 @@ class ProjectRepository(BaseRepository[ProjectModel]):
|
||||
if update.monitor:
|
||||
update.has_monitor = True
|
||||
await self.update_report_price(update)
|
||||
if old_project.monitor and old_project.monitor.detail and update.monitor and update.monitor.detail and (update.monitor.detail.date_create_project != old_project.monitor.detail.date_create_project or update.monitor.detail.first_time != old_project.monitor.detail.first_time):
|
||||
old_detail = old_project_dict.get("monitor", {}).get("detail", {})
|
||||
old_date = old_detail.get("date_create_project")
|
||||
old_first_time = old_detail.get("first_time")
|
||||
update_dict = update.mongo_dict()
|
||||
new_detail = update_dict.get("monitor", {}).get("detail", {})
|
||||
new_date = new_detail.get("date_create_project")
|
||||
new_first_time = new_detail.get("first_time")
|
||||
can_calculate = (new_date is not None and new_first_time is not None)
|
||||
if can_calculate and ((old_date is None or new_date != old_date)or(old_first_time is None or new_first_time != old_first_time)):
|
||||
update.date_delay = self.creat_date_delay(update) + datetime.timedelta(days=update.all_delay_day)
|
||||
update.u_at()
|
||||
await use_collection(COLLECTION).update_one({"_id": _id}, {"$set": update.mongo_dict()})
|
||||
|
||||
Reference in New Issue
Block a user