save and confirmed added
This commit is contained in:
parent
7e1b26f3c4
commit
295dbe2cd8
|
|
@ -107,11 +107,15 @@ class AccountRecordsCreateEventMethods(MethodToEvent):
|
||||||
data_dict["bank_date_y"] = bank_date.year
|
data_dict["bank_date_y"] = bank_date.year
|
||||||
|
|
||||||
if int(data.currency_value) < 0:
|
if int(data.currency_value) < 0:
|
||||||
debit_type = ApiEnumDropdown.filter_by_one(system=True, enum_class="DebitTypes", key="DT-D").data
|
debit_type = ApiEnumDropdown.filter_by_one(
|
||||||
|
system=True, enum_class="DebitTypes", key="DT-D"
|
||||||
|
).data
|
||||||
data_dict["receive_debit"] = debit_type.id
|
data_dict["receive_debit"] = debit_type.id
|
||||||
data_dict["receive_debit_uu_id"] = str(debit_type.uu_id)
|
data_dict["receive_debit_uu_id"] = str(debit_type.uu_id)
|
||||||
else:
|
else:
|
||||||
debit_type = ApiEnumDropdown.filter_by_one(system=True, enum_class="DebitTypes", key="DT-R").data
|
debit_type = ApiEnumDropdown.filter_by_one(
|
||||||
|
system=True, enum_class="DebitTypes", key="DT-R"
|
||||||
|
).data
|
||||||
data_dict["receive_debit"] = debit_type.id
|
data_dict["receive_debit"] = debit_type.id
|
||||||
data_dict["receive_debit_uu_id"] = str(debit_type.uu_id)
|
data_dict["receive_debit_uu_id"] = str(debit_type.uu_id)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,8 +66,7 @@ class AddressListEventMethods(MethodToEvent):
|
||||||
Addresses.street_id.in_(get_street_ids),
|
Addresses.street_id.in_(get_street_ids),
|
||||||
).query
|
).query
|
||||||
Addresses.filter_attr = list_options
|
Addresses.filter_attr = list_options
|
||||||
records = Addresses.filter_all(
|
records = Addresses.filter_all().data
|
||||||
).data
|
|
||||||
return AlchemyJsonResponse(
|
return AlchemyJsonResponse(
|
||||||
completed=True,
|
completed=True,
|
||||||
message="List Address records",
|
message="List Address records",
|
||||||
|
|
|
||||||
|
|
@ -202,12 +202,9 @@ class AuthenticationSelectEventMethods(MethodToEvent):
|
||||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
detail="Build Part is not found",
|
detail="Build Part is not found",
|
||||||
)
|
)
|
||||||
build = Build.filter_one(
|
build = Build.filter_one(Build.id == build_part.build_id).data
|
||||||
Build.id == build_part.build_id
|
|
||||||
).data
|
|
||||||
related_company = RelationshipEmployee2Build.filter_one(
|
related_company = RelationshipEmployee2Build.filter_one(
|
||||||
RelationshipEmployee2Build.member_id == build.id,
|
RelationshipEmployee2Build.member_id == build.id,
|
||||||
|
|
||||||
).data
|
).data
|
||||||
company_related = Companies.filter_one(
|
company_related = Companies.filter_one(
|
||||||
Companies.id == related_company.company_id,
|
Companies.id == related_company.company_id,
|
||||||
|
|
@ -340,9 +337,7 @@ class AuthenticationChangePasswordEventMethods(MethodToEvent):
|
||||||
):
|
):
|
||||||
token_user = get_object_via_access_key(request=request)
|
token_user = get_object_via_access_key(request=request)
|
||||||
if token_user.user_type == 1:
|
if token_user.user_type == 1:
|
||||||
if found_user := Users.filter_one(
|
if found_user := Users.filter_one(Users.uu_id == token_user.uu_id).data:
|
||||||
Users.uu_id == token_user.uu_id
|
|
||||||
).data:
|
|
||||||
if found_user.check_password(data.old_password):
|
if found_user.check_password(data.old_password):
|
||||||
found_user.set_password(data.new_password)
|
found_user.set_password(data.new_password)
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
|
|
@ -427,9 +422,7 @@ class AuthenticationDisconnectUserEventMethods(MethodToEvent):
|
||||||
):
|
):
|
||||||
|
|
||||||
if token_user := get_object_via_access_key(request=request):
|
if token_user := get_object_via_access_key(request=request):
|
||||||
found_user = Users.filter_one(
|
found_user = Users.filter_one(Users.uu_id == token_user.get("uu_id")).data
|
||||||
Users.uu_id == token_user.get("uu_id")
|
|
||||||
).data
|
|
||||||
if not found_user:
|
if not found_user:
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
content={
|
content={
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,7 @@ class AuthenticationSelectEventMethods(MethodToEvent):
|
||||||
cls,
|
cls,
|
||||||
request: Request,
|
request: Request,
|
||||||
data: Union[EmployeeSelection, OccupantSelection],
|
data: Union[EmployeeSelection, OccupantSelection],
|
||||||
token_dict: Union[EmployeeTokenObject, OccupantTokenObject]
|
token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
|
||||||
):
|
):
|
||||||
from api_objects import OccupantToken, CompanyToken
|
from api_objects import OccupantToken, CompanyToken
|
||||||
|
|
||||||
|
|
@ -152,9 +152,7 @@ class AuthenticationSelectEventMethods(MethodToEvent):
|
||||||
department = Departments.filter_one(
|
department = Departments.filter_one(
|
||||||
Departments.id == duties.department_id,
|
Departments.id == duties.department_id,
|
||||||
).data
|
).data
|
||||||
bulk_id = Duty.filter_by_one(
|
bulk_id = Duty.filter_by_one(system=True, duty_code="BULK").data
|
||||||
system=True, duty_code="BULK"
|
|
||||||
).data
|
|
||||||
bulk_duty_id = Duties.filter_by_one(
|
bulk_duty_id = Duties.filter_by_one(
|
||||||
company_id=selected_company.id,
|
company_id=selected_company.id,
|
||||||
duties_id=bulk_id.id,
|
duties_id=bulk_id.id,
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ class BuildPatchEventMethods(MethodToEvent):
|
||||||
@classmethod
|
@classmethod
|
||||||
def build_patch(cls, build_uu_id: str, data: PatchRecord, token_dict):
|
def build_patch(cls, build_uu_id: str, data: PatchRecord, token_dict):
|
||||||
find_one_build = Build.filter_one(
|
find_one_build = Build.filter_one(
|
||||||
Build.uu_id==build_uu_id,
|
Build.uu_id == build_uu_id,
|
||||||
)
|
)
|
||||||
access_authorized_build = Build.select_action(
|
access_authorized_build = Build.select_action(
|
||||||
employee_id=token_dict.selected_company.employee_id,
|
employee_id=token_dict.selected_company.employee_id,
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,9 @@ class BuildAreaCreateEventMethods(MethodToEvent):
|
||||||
"build_uu_id": data.build_uu_id,
|
"build_uu_id": data.build_uu_id,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
selected_build = Build.filter_by_one(system=True, uu_id=data.build_uu_id).data
|
selected_build = Build.filter_by_one(
|
||||||
|
system=True, uu_id=data.build_uu_id
|
||||||
|
).data
|
||||||
elif isinstance(token_dict, EmployeeTokenObject):
|
elif isinstance(token_dict, EmployeeTokenObject):
|
||||||
build_ids = Build.select_action(
|
build_ids = Build.select_action(
|
||||||
employee_id=token_dict.selected_company.employee_id
|
employee_id=token_dict.selected_company.employee_id
|
||||||
|
|
@ -89,7 +91,9 @@ class BuildAreaCreateEventMethods(MethodToEvent):
|
||||||
"build_uu_id": data.build_uu_id,
|
"build_uu_id": data.build_uu_id,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
selected_build = Build.filter_by_one(system=True, uu_id=data.build_uu_id).data
|
selected_build = Build.filter_by_one(
|
||||||
|
system=True, uu_id=data.build_uu_id
|
||||||
|
).data
|
||||||
|
|
||||||
data_dict["build_id"] = selected_build.id
|
data_dict["build_id"] = selected_build.id
|
||||||
data_dict["build_uu_id"] = str(selected_build.uu_id)
|
data_dict["build_uu_id"] = str(selected_build.uu_id)
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,10 @@ class BuildTypesListEventMethods(MethodToEvent):
|
||||||
def build_types_list(
|
def build_types_list(
|
||||||
cls,
|
cls,
|
||||||
list_options: ListOptions,
|
list_options: ListOptions,
|
||||||
token_dict: Union[EmployeeTokenObject, OccupantTokenObject]
|
token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
|
||||||
):
|
):
|
||||||
from fastapi.exceptions import HTTPException
|
from fastapi.exceptions import HTTPException
|
||||||
|
|
||||||
if isinstance(token_dict, EmployeeTokenObject):
|
if isinstance(token_dict, EmployeeTokenObject):
|
||||||
BuildTypes.filter_attr = list_options
|
BuildTypes.filter_attr = list_options
|
||||||
results = BuildTypes.filter_all()
|
results = BuildTypes.filter_all()
|
||||||
|
|
@ -33,15 +34,14 @@ class BuildTypesListEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
elif isinstance(token_dict, OccupantTokenObject):
|
elif isinstance(token_dict, OccupantTokenObject):
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=403,
|
status_code=403, detail="You are not authorized to access this endpoint"
|
||||||
detail="You are not authorized to access this endpoint"
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=403,
|
status_code=403, detail="You are not authorized to access this endpoint"
|
||||||
detail="You are not authorized to access this endpoint"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
BuildTypesListEventMethod = BuildTypesListEventMethods(
|
BuildTypesListEventMethod = BuildTypesListEventMethods(
|
||||||
action=ActionsSchema(endpoint="/building/types/list")
|
action=ActionsSchema(endpoint="/building/types/list")
|
||||||
)
|
)
|
||||||
|
|
@ -180,9 +180,11 @@ class BuildingLivingSpacesPartsCreateEventMethods(MethodToEvent):
|
||||||
dt = system_arrow.get(last_living_space.expiry_ends)
|
dt = system_arrow.get(last_living_space.expiry_ends)
|
||||||
if dt > system_arrow.now():
|
if dt > system_arrow.now():
|
||||||
minute_df = int(dt.time().minute) - 10
|
minute_df = int(dt.time().minute) - 10
|
||||||
last_living_space.expiry_ends = str(dt.replace(
|
last_living_space.expiry_ends = str(
|
||||||
|
dt.replace(
|
||||||
minute=60 - abs(minute_df) if minute_df < 0 else minute_df
|
minute=60 - abs(minute_df) if minute_df < 0 else minute_df
|
||||||
))
|
)
|
||||||
|
)
|
||||||
last_living_space.save()
|
last_living_space.save()
|
||||||
|
|
||||||
user_module = Modules.filter_one(
|
user_module = Modules.filter_one(
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ class CompanyPatchEventMethods(MethodToEvent):
|
||||||
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
|
cls, company_uu_id: str, data: PatchRecord, token_dict: EmployeeTokenObject
|
||||||
):
|
):
|
||||||
find_one_company = Companies.filter_one(
|
find_one_company = Companies.filter_one(
|
||||||
Companies.uu_id==company_uu_id,
|
Companies.uu_id == company_uu_id,
|
||||||
).data
|
).data
|
||||||
access_authorized_company = Companies.select_action(
|
access_authorized_company = Companies.select_action(
|
||||||
duty_id_list=[
|
duty_id_list=[
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ class DutiesListEventMethods(MethodToEvent):
|
||||||
message="List of Duties records",
|
message="List of Duties records",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class DutiesGetByUUIDEventMethods(MethodToEvent):
|
class DutiesGetByUUIDEventMethods(MethodToEvent):
|
||||||
|
|
||||||
event_type = "GET"
|
event_type = "GET"
|
||||||
|
|
|
||||||
|
|
@ -195,9 +195,7 @@ class Employee2PeopleEmployEventMethods(MethodToEvent):
|
||||||
selected_staff = Staff.filter_one(
|
selected_staff = Staff.filter_one(
|
||||||
Staff.uu_id == data.staff_uu_id,
|
Staff.uu_id == data.staff_uu_id,
|
||||||
).data
|
).data
|
||||||
selected_people = People.filter_one(
|
selected_people = People.filter_one(People.uu_id == data.people_uu_id).data
|
||||||
People.uu_id == data.people_uu_id
|
|
||||||
).data
|
|
||||||
if not selected_staff:
|
if not selected_staff:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,7 @@ class StaffGetByUUIDEventMethods(MethodToEvent):
|
||||||
duties_id = Duties.filter_one(
|
duties_id = Duties.filter_one(
|
||||||
Duties.uu_id == data.duties_uu_id,
|
Duties.uu_id == data.duties_uu_id,
|
||||||
).data
|
).data
|
||||||
selected_staffs = Staff.filter_all(
|
selected_staffs = Staff.filter_all(Staff.duties_id == duties_id.id)
|
||||||
Staff.duties_id == duties_id.id
|
|
||||||
)
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
content={
|
content={
|
||||||
"completed": True,
|
"completed": True,
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,6 @@ class DecisionBookListEventMethods(MethodToEvent):
|
||||||
):
|
):
|
||||||
records = []
|
records = []
|
||||||
if isinstance(token_dict, EmployeeTokenObject):
|
if isinstance(token_dict, EmployeeTokenObject):
|
||||||
|
|
||||||
build_id_list_query = Build.select_action(
|
build_id_list_query = Build.select_action(
|
||||||
employee_id=token_dict.selected_company.employee_id
|
employee_id=token_dict.selected_company.employee_id
|
||||||
)
|
)
|
||||||
|
|
@ -49,12 +48,12 @@ class DecisionBookListEventMethods(MethodToEvent):
|
||||||
BuildDecisionBook.filter_attr = list_options
|
BuildDecisionBook.filter_attr = list_options
|
||||||
records = BuildDecisionBook.filter_all(
|
records = BuildDecisionBook.filter_all(
|
||||||
BuildDecisionBook.build_id.in_([build.id for build in build_id_list]),
|
BuildDecisionBook.build_id.in_([build.id for build in build_id_list]),
|
||||||
).data
|
)
|
||||||
elif isinstance(token_dict, OccupantTokenObject):
|
elif isinstance(token_dict, OccupantTokenObject):
|
||||||
BuildDecisionBook.filter_attr = list_options
|
BuildDecisionBook.filter_attr = list_options
|
||||||
records = BuildDecisionBook.filter_all(
|
records = BuildDecisionBook.filter_all(
|
||||||
BuildDecisionBook.build_id == token_dict.selected_occupant.build_id,
|
BuildDecisionBook.build_id == token_dict.selected_occupant.build_id,
|
||||||
).data
|
)
|
||||||
return AlchemyJsonResponse(
|
return AlchemyJsonResponse(
|
||||||
completed=True,
|
completed=True,
|
||||||
message="DecisionBook are listed successfully",
|
message="DecisionBook are listed successfully",
|
||||||
|
|
@ -154,7 +153,9 @@ class DecisionBookCreateEventMethods(MethodToEvent):
|
||||||
int(decision_period_date.date().month),
|
int(decision_period_date.date().month),
|
||||||
int(decision_period_date.date().day),
|
int(decision_period_date.date().day),
|
||||||
)
|
)
|
||||||
data_dict["expiry_ends"] = str(data_dict["expiry_starts"].shift(years=1, days=-1))
|
data_dict["expiry_ends"] = str(
|
||||||
|
data_dict["expiry_starts"].shift(years=1, days=-1)
|
||||||
|
)
|
||||||
data_dict["expiry_starts"] = str(data_dict["expiry_starts"])
|
data_dict["expiry_starts"] = str(data_dict["expiry_starts"])
|
||||||
build_decision_book = BuildDecisionBook.find_or_create(**data_dict)
|
build_decision_book = BuildDecisionBook.find_or_create(**data_dict)
|
||||||
build_decision_book.save()
|
build_decision_book.save()
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ from api_library.date_time_actions.date_functions import system_arrow, client_ar
|
||||||
|
|
||||||
from api_validations.validations_request import (
|
from api_validations.validations_request import (
|
||||||
InsertBuildDecisionBookItems,
|
InsertBuildDecisionBookItems,
|
||||||
|
ListOptions,
|
||||||
ListDecisionBook,
|
ListDecisionBook,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -39,7 +40,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
|
||||||
@classmethod
|
@classmethod
|
||||||
def building_decision_book_items_list(
|
def building_decision_book_items_list(
|
||||||
cls,
|
cls,
|
||||||
data: ListDecisionBook,
|
data: ListOptions,
|
||||||
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
|
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
|
||||||
):
|
):
|
||||||
decision_book = BuildDecisionBook.filter_one(
|
decision_book = BuildDecisionBook.filter_one(
|
||||||
|
|
@ -141,7 +142,7 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
payment_amount = -1 * (
|
payment_amount = -1 * (
|
||||||
abs(payment_amount) + (50 - float(abs(payment_amount)) % 50)
|
abs(payment_amount) + (50 - float(abs(payment_amount)) % 50)
|
||||||
)
|
)
|
||||||
BuildDecisionBookPayments.create(
|
created_book_payment = BuildDecisionBookPayments.find_or_create(
|
||||||
build_parts_id=build_part_single.id,
|
build_parts_id=build_part_single.id,
|
||||||
build_parts_uu_id=str(build_part_single.uu_id),
|
build_parts_uu_id=str(build_part_single.uu_id),
|
||||||
payment_amount=payment_amount,
|
payment_amount=payment_amount,
|
||||||
|
|
@ -153,6 +154,7 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
period_time=f"{local_date.year}-{str(local_date.month).zfill(2)}",
|
period_time=f"{local_date.year}-{str(local_date.month).zfill(2)}",
|
||||||
**book_payment_dict,
|
**book_payment_dict,
|
||||||
)
|
)
|
||||||
|
created_book_payment.save_and_confirm()
|
||||||
local_date = local_date.shift(days=2)
|
local_date = local_date.shift(days=2)
|
||||||
part_key = str(build_part_single.due_part_key).upper()
|
part_key = str(build_part_single.due_part_key).upper()
|
||||||
if part_key not in payment_return_dict:
|
if part_key not in payment_return_dict:
|
||||||
|
|
@ -181,7 +183,6 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
payment_plan_time_periods=str(data_info_type.key),
|
payment_plan_time_periods=str(data_info_type.key),
|
||||||
build_decision_book_item_id=decision_book_item.id,
|
build_decision_book_item_id=decision_book_item.id,
|
||||||
build_decision_book_item_uu_id=str(decision_book_item.uu_id),
|
build_decision_book_item_uu_id=str(decision_book_item.uu_id),
|
||||||
is_confirmed=True,
|
|
||||||
currency=currency,
|
currency=currency,
|
||||||
)
|
)
|
||||||
payment_types = ApiEnumDropdown.get_debit_search(search_debit="DT-D")
|
payment_types = ApiEnumDropdown.get_debit_search(search_debit="DT-D")
|
||||||
|
|
@ -235,7 +236,7 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
BuildParts.part_no == 0,
|
BuildParts.part_no == 0,
|
||||||
).data
|
).data
|
||||||
occupant_man = OccupantTypes.filter_by_one(
|
occupant_man = OccupantTypes.filter_by_one(
|
||||||
occupant_code="MT-VPR", occupant_category_type="MT"
|
system=True, occupant_code="MT-VPR", occupant_category_type="MT"
|
||||||
).data
|
).data
|
||||||
manager_living_space = BuildLivingSpace.filter_one(
|
manager_living_space = BuildLivingSpace.filter_one(
|
||||||
BuildLivingSpace.build_parts_id == management_room.id,
|
BuildLivingSpace.build_parts_id == management_room.id,
|
||||||
|
|
@ -270,7 +271,7 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
f"is assigned to {occupant_man.occupant_description}"
|
f"is assigned to {occupant_man.occupant_description}"
|
||||||
)
|
)
|
||||||
project_lead = ApiEnumDropdown.filter_by_one(
|
project_lead = ApiEnumDropdown.filter_by_one(
|
||||||
key="PTT-LDR", enum_class="ProjectTeamTypes"
|
system=True, key="PTT-LDR", enum_class="ProjectTeamTypes"
|
||||||
).data
|
).data
|
||||||
project_person = BuildDecisionBookProjectPerson.find_or_create(
|
project_person = BuildDecisionBookProjectPerson.find_or_create(
|
||||||
build_decision_book_project_id=book_project_created.id,
|
build_decision_book_project_id=book_project_created.id,
|
||||||
|
|
@ -281,12 +282,12 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
project_team_type_uu_id=str(project_lead.uu_id),
|
project_team_type_uu_id=str(project_lead.uu_id),
|
||||||
)
|
)
|
||||||
BuildDecisionBookProjects.save()
|
BuildDecisionBookProjects.save()
|
||||||
return
|
return book_project_created
|
||||||
|
|
||||||
elif data_info_type.key == "BDT-SF":
|
elif data_info_type.key == "BDT-S":
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail="BDT-SF is not implemented yet. Check info type and try again",
|
detail="BDT-S is not implemented yet. Check info type and try again",
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -309,7 +310,7 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
elif isinstance(token_dict, OccupantTokenObject):
|
elif isinstance(token_dict, OccupantTokenObject):
|
||||||
data_dict = data.dump()
|
data_dict = data.dump()
|
||||||
occupant_wrt = OccupantTypes.filter_by_one(
|
occupant_wrt = OccupantTypes.filter_by_one(
|
||||||
occupant_code="MT-WRT", occupant_category_type="MT"
|
system=True, occupant_code="MT-WRT", occupant_category_type="MT"
|
||||||
).data
|
).data
|
||||||
|
|
||||||
if token_dict.selected_occupant.occupant_type_id != occupant_wrt.id:
|
if token_dict.selected_occupant.occupant_type_id != occupant_wrt.id:
|
||||||
|
|
@ -337,19 +338,19 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
data_dict["build_decision_book_uu_id"] = str(decision_book.uu_id)
|
data_dict["build_decision_book_uu_id"] = str(decision_book.uu_id)
|
||||||
data_dict["is_confirmed"] = True
|
data_dict["is_confirmed"] = True
|
||||||
|
|
||||||
data_info_types, data_info_type = ApiEnumDropdown.due_type_search(), None
|
data_info_type = ApiEnumDropdown.filter_by_one(
|
||||||
|
system=True, enum_class="BuildDuesTypes", key="BDT-I",
|
||||||
|
).data
|
||||||
|
data_info_types = ApiEnumDropdown.due_type_search()
|
||||||
for info_type in data_info_types:
|
for info_type in data_info_types:
|
||||||
if str(info_type.uu_id) == data_dict["info_type_uu_id"]:
|
if str(info_type.uu_id) == data_dict["info_type_uu_id"]:
|
||||||
data_info_type = info_type
|
data_info_type = info_type
|
||||||
break
|
break
|
||||||
if not data_info_type:
|
|
||||||
raise HTTPException(
|
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
|
||||||
detail="Info Type is not valid. Check info type and try again",
|
|
||||||
)
|
|
||||||
|
|
||||||
if str(data_info_type.key).upper() in ["BDT-A", "BDT-R", "BDT-L", "BDT-SF"]:
|
row_is_debit = str(data_info_type.key).upper() in ["BDT-A", "BDT-D"]
|
||||||
if not data_dict["debit_start_date"] or not data_dict["debit_end_date"]:
|
row_is_project = str(data_info_type.key).upper() in ["BDT-R", "BDT-L", "BDT-S"]
|
||||||
|
debit_dates_required = not data_dict["debit_start_date"] or not data_dict["debit_end_date"]
|
||||||
|
if any([row_is_debit, row_is_project]) and debit_dates_required:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail="Debit Start Date and Debit End Date is required for this payment type. "
|
detail="Debit Start Date and Debit End Date is required for this payment type. "
|
||||||
|
|
@ -358,9 +359,8 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
|
|
||||||
data_dict["info_type_id"] = data_info_type.id
|
data_dict["info_type_id"] = data_info_type.id
|
||||||
data_dict["info_type_uu_id"] = str(data_info_type.uu_id)
|
data_dict["info_type_uu_id"] = str(data_info_type.uu_id)
|
||||||
unit_price, unit_type = float(data_dict["unit_price"]), str(
|
unit_price, unit_type = float(data_dict["unit_price"]), str(data_dict["unit_type"])
|
||||||
data_dict["unit_type"]
|
|
||||||
)
|
|
||||||
debit_start_date, debit_end_date = (
|
debit_start_date, debit_end_date = (
|
||||||
data_dict["debit_start_date"],
|
data_dict["debit_start_date"],
|
||||||
data_dict["debit_end_date"],
|
data_dict["debit_end_date"],
|
||||||
|
|
@ -376,17 +376,8 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
data_dict["currency"],
|
data_dict["currency"],
|
||||||
)
|
)
|
||||||
|
|
||||||
if new_decision_book_item := BuildDecisionBookItems.find_or_create(
|
new_decision_book_item = BuildDecisionBookItems.find_or_create(
|
||||||
**data_dict
|
**data_dict
|
||||||
):
|
|
||||||
if new_decision_book_item.is_found:
|
|
||||||
return JSONResponse(
|
|
||||||
status_code=status.HTTP_200_OK,
|
|
||||||
content=dict(
|
|
||||||
message=f"Decision Book Item is already exist for given Decision Book UUID {decision_book.uu_id}",
|
|
||||||
completed=True,
|
|
||||||
data=new_decision_book_item.get_dict(),
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
if created_payment_records_dict := cls.create_payment_records_for_each_build_part(
|
if created_payment_records_dict := cls.create_payment_records_for_each_build_part(
|
||||||
data_info_type=data_info_type,
|
data_info_type=data_info_type,
|
||||||
|
|
@ -400,7 +391,7 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
debit_end_date=debit_end_date,
|
debit_end_date=debit_end_date,
|
||||||
currency=currency,
|
currency=currency,
|
||||||
):
|
):
|
||||||
if data_info_type.key == "BDT-A" or data_info_type.key == "BDT-D":
|
if row_is_debit:
|
||||||
if data_info_type.key == "BDT-D":
|
if data_info_type.key == "BDT-D":
|
||||||
item_comment = "Regular Payment Plan : "
|
item_comment = "Regular Payment Plan : "
|
||||||
else:
|
else:
|
||||||
|
|
@ -424,10 +415,10 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
|
||||||
data=new_decision_book_item.get_dict(),
|
data=new_decision_book_item.get_dict(),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
raise HTTPException(
|
# raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
# status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail="Decision Book Item is not created. Check info type and info no and try again. Unique constraint index is implemented for info type and info no",
|
# detail="Decision Book Item is not created. Check info type and info no and try again. Unique constraint index is implemented for info type and info no",
|
||||||
)
|
# )
|
||||||
|
|
||||||
|
|
||||||
class DecisionBookDecisionBookItemsUpdateEventMethods(MethodToEvent):
|
class DecisionBookDecisionBookItemsUpdateEventMethods(MethodToEvent):
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,10 @@ class DecisionBookPersonAddEventMethods(MethodToEvent):
|
||||||
detail=f"No Decision Book is match with given UUID {data.build_decision_book_uu_id}",
|
detail=f"No Decision Book is match with given UUID {data.build_decision_book_uu_id}",
|
||||||
)
|
)
|
||||||
manager_occupant_type = OccupantTypes.filter_by_one(
|
manager_occupant_type = OccupantTypes.filter_by_one(
|
||||||
occupant_code="BU-MNG", occupant_category_type="BU"
|
system=True,
|
||||||
).get(1)
|
occupant_code="BU-MNG",
|
||||||
|
occupant_category_type="BU"
|
||||||
|
).data
|
||||||
if (
|
if (
|
||||||
not manager_occupant_type.uu_id
|
not manager_occupant_type.uu_id
|
||||||
== token_dict.selected_occupant.occupant_type_uu_id
|
== token_dict.selected_occupant.occupant_type_uu_id
|
||||||
|
|
@ -82,9 +84,10 @@ class DecisionBookPersonAddEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
|
|
||||||
assign_occupant_type = OccupantTypes.filter_by_one(
|
assign_occupant_type = OccupantTypes.filter_by_one(
|
||||||
|
system=True,
|
||||||
uu_id=data.occupant_type_uu_id,
|
uu_id=data.occupant_type_uu_id,
|
||||||
occupant_category_type="MT",
|
occupant_category_type="MT",
|
||||||
).get(1)
|
).data
|
||||||
if not assign_occupant_type:
|
if not assign_occupant_type:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -95,9 +98,7 @@ class DecisionBookPersonAddEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookPerson.token == data.token,
|
BuildDecisionBookPerson.token == data.token,
|
||||||
BuildDecisionBookPerson.build_decision_book_uu_id
|
BuildDecisionBookPerson.build_decision_book_uu_id
|
||||||
== data.build_decision_book_uu_id,
|
== data.build_decision_book_uu_id,
|
||||||
BuildDecisionBookPerson.is_confirmed == True,
|
).data
|
||||||
BuildDecisionBookPerson.active == True,
|
|
||||||
).get(1)
|
|
||||||
if not manger_book_person:
|
if not manger_book_person:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -107,7 +108,7 @@ class DecisionBookPersonAddEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookInvitations.id == manger_book_person.invite_id,
|
BuildDecisionBookInvitations.id == manger_book_person.invite_id,
|
||||||
BuildDecisionBookInvitations.build_id
|
BuildDecisionBookInvitations.build_id
|
||||||
== token_dict.selected_occupant.build_id,
|
== token_dict.selected_occupant.build_id,
|
||||||
).get(1)
|
).data
|
||||||
if not book_invite:
|
if not book_invite:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -116,9 +117,7 @@ class DecisionBookPersonAddEventMethods(MethodToEvent):
|
||||||
selected_book_person = BuildDecisionBookPerson.filter_one(
|
selected_book_person = BuildDecisionBookPerson.filter_one(
|
||||||
BuildDecisionBookPerson.invite_id == book_invite.id,
|
BuildDecisionBookPerson.invite_id == book_invite.id,
|
||||||
BuildDecisionBookPerson.person_uu_id == data.person_uu_id,
|
BuildDecisionBookPerson.person_uu_id == data.person_uu_id,
|
||||||
BuildDecisionBookPerson.is_confirmed == True,
|
).data
|
||||||
BuildDecisionBookPerson.active == True,
|
|
||||||
).get(1)
|
|
||||||
if not selected_book_person:
|
if not selected_book_person:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -173,12 +172,10 @@ class DecisionBookPersonAttendEventMethods(MethodToEvent):
|
||||||
detail="Employee cannot create decision book invitations",
|
detail="Employee cannot create decision book invitations",
|
||||||
)
|
)
|
||||||
|
|
||||||
token_user = Users.filter_one(Users.id == token_dict.user_id).get(1)
|
token_user = Users.filter_one(Users.id == token_dict.user_id).data
|
||||||
invitation_person = BuildDecisionBookPerson.filter_one(
|
invitation_person = BuildDecisionBookPerson.filter_one(
|
||||||
BuildDecisionBookPerson.token == data.token,
|
BuildDecisionBookPerson.token == data.token,
|
||||||
BuildDecisionBookPerson.active == True,
|
).data
|
||||||
BuildDecisionBookPerson.is_confirmed == True,
|
|
||||||
).get(1)
|
|
||||||
if not invitation_person:
|
if not invitation_person:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -197,8 +194,7 @@ class DecisionBookPersonAttendEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookInvitations.id == invitation_person.invite_id,
|
BuildDecisionBookInvitations.id == invitation_person.invite_id,
|
||||||
BuildDecisionBookInvitations.build_id
|
BuildDecisionBookInvitations.build_id
|
||||||
== token_dict.selected_occupant.build_id,
|
== token_dict.selected_occupant.build_id,
|
||||||
BuildDecisionBookInvitations.active == True,
|
).data
|
||||||
).get(1)
|
|
||||||
if not invitation:
|
if not invitation:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -246,12 +242,10 @@ class DecisionBookPersonAssignOccupantEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookPerson.token == data.token,
|
BuildDecisionBookPerson.token == data.token,
|
||||||
BuildDecisionBookPerson.build_living_space_id
|
BuildDecisionBookPerson.build_living_space_id
|
||||||
== token_dict.selected_occupant.living_space_id,
|
== token_dict.selected_occupant.living_space_id,
|
||||||
BuildDecisionBookPerson.active == True,
|
).data
|
||||||
BuildDecisionBookPerson.is_confirmed == True,
|
|
||||||
).get(1)
|
|
||||||
manager_occupant_type = OccupantTypes.filter_by_one(
|
manager_occupant_type = OccupantTypes.filter_by_one(
|
||||||
occupant_code="BU-MNG", occupant_category_type="BU"
|
system=True, occupant_code="BU-MNG", occupant_category_type="BU"
|
||||||
).get(1)
|
).data
|
||||||
book_person_manager.check_occupant_type(manager_occupant_type)
|
book_person_manager.check_occupant_type(manager_occupant_type)
|
||||||
|
|
||||||
# supervisor_occupant_type = OccupantTypes.find_or_abort(occupant_code="BU-SPV", occupant_category_type="BU")
|
# supervisor_occupant_type = OccupantTypes.find_or_abort(occupant_code="BU-SPV", occupant_category_type="BU")
|
||||||
|
|
@ -261,8 +255,7 @@ class DecisionBookPersonAssignOccupantEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookInvitations.id == book_person_manager.invite_id,
|
BuildDecisionBookInvitations.id == book_person_manager.invite_id,
|
||||||
BuildDecisionBookInvitations.build_id
|
BuildDecisionBookInvitations.build_id
|
||||||
== token_dict.selected_occupant.build_id,
|
== token_dict.selected_occupant.build_id,
|
||||||
BuildDecisionBookInvitations.active == True,
|
).data
|
||||||
).get(1)
|
|
||||||
if not invitation:
|
if not invitation:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -270,8 +263,8 @@ class DecisionBookPersonAssignOccupantEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
|
|
||||||
assign_occupant_type = OccupantTypes.filter_by_one(
|
assign_occupant_type = OccupantTypes.filter_by_one(
|
||||||
uu_id=data.occupant_type_uu_id
|
system=True, uu_id=data.occupant_type_uu_id,
|
||||||
).get(1)
|
).data
|
||||||
if not assign_occupant_type:
|
if not assign_occupant_type:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -286,7 +279,7 @@ class DecisionBookPersonAssignOccupantEventMethods(MethodToEvent):
|
||||||
BuildLivingSpace.build_parts_id.in_(
|
BuildLivingSpace.build_parts_id.in_(
|
||||||
[build.id for build in build_parts_of_token]
|
[build.id for build in build_parts_of_token]
|
||||||
),
|
),
|
||||||
).get(1)
|
).data
|
||||||
if not selected_living_space:
|
if not selected_living_space:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -298,35 +291,31 @@ class DecisionBookPersonAssignOccupantEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookPerson.build_living_space_id
|
BuildDecisionBookPerson.build_living_space_id
|
||||||
== selected_living_space.id,
|
== selected_living_space.id,
|
||||||
BuildDecisionBookPerson.invite_id == invitation.id,
|
BuildDecisionBookPerson.invite_id == invitation.id,
|
||||||
BuildDecisionBookPerson.active == True,
|
).data
|
||||||
).get(1)
|
|
||||||
)
|
)
|
||||||
if not book_person_to_assign:
|
if not book_person_to_assign:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
detail=f"Person not found in the invitation list. Please check person uuid: {data.person_uu_id}",
|
detail=f"Person not found in the invitation list. Please check person uuid: {data.build_living_space_uu_id}",
|
||||||
)
|
)
|
||||||
if not book_person_to_assign.is_attending:
|
if not book_person_to_assign.is_attending:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail=f"Person is declined the invitation. This person is not attending the meeting. "
|
detail=f"Person is declined the invitation. This person is not attending the meeting. "
|
||||||
f"Please check person uuid: {data.person_uu_id}. Invite UUID: {invitation.uu_id}",
|
f"Please check person uuid: {data.build_living_space_uu_id}. Invite UUID: {invitation.uu_id}",
|
||||||
)
|
)
|
||||||
|
|
||||||
if assign_occupant_type.occupant_code in ("MT-PRS", "MT-WRT"):
|
if assign_occupant_type.occupant_code in ("MT-PRS", "MT-WRT"):
|
||||||
occupant_type_unique = OccupantTypes.filter_by_one(
|
occupant_type_unique = OccupantTypes.filter_by_one(
|
||||||
|
system=True,
|
||||||
occupant_code=assign_occupant_type.occupant_code,
|
occupant_code=assign_occupant_type.occupant_code,
|
||||||
occupant_category_type="MT",
|
occupant_category_type="MT",
|
||||||
).get(1)
|
).data
|
||||||
if assigned_book_person_occupant := BuildDecisionBookPersonOccupants.filter_one(
|
if assigned_book_person_occupant := BuildDecisionBookPersonOccupants.filter_one(
|
||||||
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
||||||
BuildDecisionBookPersonOccupants.occupant_type_id
|
BuildDecisionBookPersonOccupants.occupant_type_id
|
||||||
== occupant_type_unique.id,
|
== occupant_type_unique.id,
|
||||||
BuildDecisionBookPersonOccupants.active == True,
|
).data:
|
||||||
BuildDecisionBookPersonOccupants.is_confirmed == True,
|
|
||||||
).get(
|
|
||||||
1
|
|
||||||
):
|
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail=f"Only one person can be assigned to {assign_occupant_type.occupant_code} type"
|
detail=f"Only one person can be assigned to {assign_occupant_type.occupant_code} type"
|
||||||
|
|
@ -338,8 +327,6 @@ class DecisionBookPersonAssignOccupantEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
||||||
BuildDecisionBookPersonOccupants.occupant_type_id
|
BuildDecisionBookPersonOccupants.occupant_type_id
|
||||||
== manager_occupant_type.id,
|
== manager_occupant_type.id,
|
||||||
BuildDecisionBookPersonOccupants.active == True,
|
|
||||||
BuildDecisionBookPersonOccupants.is_confirmed == True,
|
|
||||||
)
|
)
|
||||||
person_occupant_manager.query.delete()
|
person_occupant_manager.query.delete()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,8 +63,8 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
# Check token posses the occupant type of Build Manager
|
# Check token posses the occupant type of Build Manager
|
||||||
occupant_manager = OccupantTypes.filter_by_one(
|
occupant_manager = OccupantTypes.filter_by_one(
|
||||||
occupant_category_type="BU", occupant_code="BU-MNG"
|
system=True, occupant_category_type="BU", occupant_code="BU-MNG"
|
||||||
).get(1)
|
).data
|
||||||
if not token_dict.selected_occupant.occupant_type_id == occupant_manager.id:
|
if not token_dict.selected_occupant.occupant_type_id == occupant_manager.id:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_403_FORBIDDEN,
|
status_code=status.HTTP_403_FORBIDDEN,
|
||||||
|
|
@ -75,8 +75,7 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
decision_book = BuildDecisionBook.filter_one(
|
decision_book = BuildDecisionBook.filter_one(
|
||||||
BuildDecisionBook.uu_id == data.build_decision_book_uu_id,
|
BuildDecisionBook.uu_id == data.build_decision_book_uu_id,
|
||||||
BuildDecisionBook.build_id == token_dict.selected_occupant.build_id,
|
BuildDecisionBook.build_id == token_dict.selected_occupant.build_id,
|
||||||
BuildDecisionBook.active == True,
|
).data
|
||||||
).get(1)
|
|
||||||
if not decision_book:
|
if not decision_book:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -84,22 +83,12 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
occupant_building = Build.filter_one(
|
occupant_building = Build.filter_one(
|
||||||
Build.id == token_dict.selected_occupant.build_id
|
Build.id == token_dict.selected_occupant.build_id
|
||||||
).get(1)
|
).data
|
||||||
|
|
||||||
# Check meeting type is valid
|
|
||||||
meeting_type = ApiEnumDropdown.filter_by_one(
|
|
||||||
enum_class="MeetingTypes",
|
|
||||||
).get(1)
|
|
||||||
if not meeting_type:
|
|
||||||
raise HTTPException(
|
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
|
||||||
detail="Meeting type not found",
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check planned decision book date is valid
|
# Check planned decision book date is valid
|
||||||
if (
|
if (
|
||||||
not system_arrow.get(data.planned_date).date()
|
not system_arrow.get(data.planned_date).date()
|
||||||
>= system_arrow.shift(days=1).date()
|
>= system_arrow.now().shift(days=1).date()
|
||||||
):
|
):
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
|
|
@ -107,32 +96,21 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create an invitation for specific invitation type to start invite sending process
|
# Create an invitation for specific invitation type to start invite sending process
|
||||||
planned_date_expires = (
|
planned_date_expires = str(system_arrow.get(data.planned_date).shift(days=15).date())
|
||||||
str(system_arrow.get(data.planned_date).shift(days=15).date()),
|
|
||||||
)
|
|
||||||
book_invitation = BuildDecisionBookInvitations.find_or_create(
|
book_invitation = BuildDecisionBookInvitations.find_or_create(
|
||||||
build_id=token_dict.selected_occupant.build_id,
|
build_id=token_dict.selected_occupant.build_id,
|
||||||
build_uu_id=token_dict.selected_occupant.build_uuid,
|
build_uu_id=token_dict.selected_occupant.build_uuid,
|
||||||
decision_book_id=decision_book.id,
|
decision_book_id=decision_book.id,
|
||||||
decision_book_uu_id=str(decision_book.uu_id),
|
decision_book_uu_id=str(decision_book.uu_id),
|
||||||
invitation_type=meeting_type.key,
|
invitation_type=str(decision_book.decision_type),
|
||||||
living_part_count=occupant_building.livable_part_count,
|
living_part_count=occupant_building.livable_part_count,
|
||||||
living_part_percentage=0.51,
|
living_part_percentage=0.51,
|
||||||
message=data.message,
|
message=data.message,
|
||||||
planned_date=data.planned_date,
|
planned_date=str(system_arrow.get(data.planned_date)),
|
||||||
planned_date_expires=planned_date_expires,
|
planned_date_expires=planned_date_expires,
|
||||||
expiry_ends=str(system_arrow.get(data.planned_date).shift(days=15).date()),
|
expiry_ends=str(system_arrow.get(data.planned_date).shift(days=15).date()),
|
||||||
is_confirmed=True,
|
|
||||||
)
|
|
||||||
if book_invitation.is_found:
|
|
||||||
detail_message = (
|
|
||||||
f"Invitation with: {str(book_invitation.planned_date)} already exists"
|
|
||||||
f" for {book_invitation.invitation_type}"
|
|
||||||
)
|
|
||||||
raise HTTPException(
|
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
|
||||||
detail=detail_message,
|
|
||||||
)
|
)
|
||||||
|
book_invitation.save_and_confirm()
|
||||||
|
|
||||||
# Get all the parts of the building that is occupant in token
|
# Get all the parts of the building that is occupant in token
|
||||||
build_parts = BuildParts.filter_all(
|
build_parts = BuildParts.filter_all(
|
||||||
|
|
@ -164,12 +142,12 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
|
|
||||||
# Send invitation to all the users as attend and update the manager as build manager
|
# Send invitation to all the users as attend and update the manager as build manager
|
||||||
attendance_occupant_type = OccupantTypes.find_or_abort(
|
attendance_occupant_type = OccupantTypes.filter_by_one(
|
||||||
occupant_code="MT-ATT", occupant_category_type="MT"
|
system=True, occupant_code="MT-ATT", occupant_category_type="MT"
|
||||||
)
|
).data
|
||||||
manager_occupant_type = OccupantTypes.find_or_abort(
|
manager_occupant_type = OccupantTypes.filter_by_one(
|
||||||
occupant_code="BU-MNG", occupant_category_type="BU"
|
system=True, occupant_code="BU-MNG", occupant_category_type="BU"
|
||||||
)
|
).data
|
||||||
|
|
||||||
build_decision_book_person_dict = dict(
|
build_decision_book_person_dict = dict(
|
||||||
build_decision_book_id=decision_book.id,
|
build_decision_book_id=decision_book.id,
|
||||||
|
|
@ -179,7 +157,6 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
send_date=str(system_arrow.now().date()),
|
send_date=str(system_arrow.now().date()),
|
||||||
expiry_starts=decision_book.expiry_starts,
|
expiry_starts=decision_book.expiry_starts,
|
||||||
expiry_ends=decision_book.expiry_ends,
|
expiry_ends=decision_book.expiry_ends,
|
||||||
is_confirmed=True,
|
|
||||||
)
|
)
|
||||||
# Check if the invitation is already created at database
|
# Check if the invitation is already created at database
|
||||||
for build_living_spaces_user in build_living_spaces_people:
|
for build_living_spaces_user in build_living_spaces_people:
|
||||||
|
|
@ -201,12 +178,12 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
person_id=build_living_spaces_user.person_id,
|
person_id=build_living_spaces_user.person_id,
|
||||||
token=Users.generate_token(40),
|
token=Users.generate_token(40),
|
||||||
)
|
)
|
||||||
|
invitations_person.save_and_confirm()
|
||||||
|
|
||||||
invitations_person.add_occupant_type(occupant_type=attendance_occupant_type)
|
invitations_person.add_occupant_type(occupant_type=attendance_occupant_type)
|
||||||
if invitations_person and not invitations_person.is_found:
|
if invitations_person:
|
||||||
print(f'"{invitations_person.token}",')
|
print(f'"{invitations_person.token}",')
|
||||||
spaces_user = Users.filter_one(
|
spaces_user = Users.filter_one(
|
||||||
Users.active == True,
|
|
||||||
Users.is_confirmed == True,
|
|
||||||
Users.person_id == build_living_spaces_user.person_id,
|
Users.person_id == build_living_spaces_user.person_id,
|
||||||
).data
|
).data
|
||||||
# print(
|
# print(
|
||||||
|
|
@ -222,18 +199,22 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
BuildDecisionBookPerson.invite_id == book_invitation.id,
|
BuildDecisionBookPerson.invite_id == book_invitation.id,
|
||||||
BuildDecisionBookPerson.build_living_space_id.in_(
|
BuildDecisionBookPerson.build_living_space_id.in_(
|
||||||
[
|
[
|
||||||
manager_living_space.id
|
manager_living_space.id for manager_living_space in manager_living_spaces.data
|
||||||
for manager_living_space in manager_living_spaces.data
|
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
|
system=True,
|
||||||
)
|
)
|
||||||
manager_people_occupants = BuildDecisionBookPersonOccupants.filter_all(
|
manager_people_occupants = BuildDecisionBookPersonOccupants.filter_all(
|
||||||
BuildDecisionBookPersonOccupants.build_decision_book_person_id
|
BuildDecisionBookPersonOccupants.build_decision_book_person_id
|
||||||
== manager_people.get(1).id,
|
== manager_people.get(1).id,
|
||||||
|
system=True,
|
||||||
)
|
)
|
||||||
|
if manager_people_occupants.count:
|
||||||
manager_people_occupants.query.delete()
|
manager_people_occupants.query.delete()
|
||||||
|
BuildDecisionBookPersonOccupants.save()
|
||||||
|
if manager_people.count:
|
||||||
manager_people.query.delete()
|
manager_people.query.delete()
|
||||||
|
BuildDecisionBookPerson.save()
|
||||||
|
|
||||||
if book_person_manager := BuildDecisionBookPerson.find_or_create(
|
if book_person_manager := BuildDecisionBookPerson.find_or_create(
|
||||||
**build_decision_book_person_dict,
|
**build_decision_book_person_dict,
|
||||||
|
|
@ -244,6 +225,7 @@ class BuildDecisionBookInvitationsCreateEventMethods(MethodToEvent):
|
||||||
person_id=token_dict.person_id,
|
person_id=token_dict.person_id,
|
||||||
token=Users.generate_token(40),
|
token=Users.generate_token(40),
|
||||||
):
|
):
|
||||||
|
book_person_manager.save_and_confirm()
|
||||||
book_person_manager.add_occupant_type(occupant_type=manager_occupant_type)
|
book_person_manager.add_occupant_type(occupant_type=manager_occupant_type)
|
||||||
print(f"Manager Token : {book_person_manager.token}")
|
print(f"Manager Token : {book_person_manager.token}")
|
||||||
BuildDecisionBookPerson.save()
|
BuildDecisionBookPerson.save()
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,7 @@ class ModulesBindOccupantEventMethods(MethodToEvent):
|
||||||
living_space = BuildLivingSpace.filter_one(
|
living_space = BuildLivingSpace.filter_one(
|
||||||
BuildLivingSpace.id == build_living_space_id,
|
BuildLivingSpace.id == build_living_space_id,
|
||||||
).data
|
).data
|
||||||
modules = Modules.filter_one(
|
modules = Modules.filter_one(Modules.id == modules_id).data
|
||||||
Modules.id == modules_id
|
|
||||||
).data
|
|
||||||
|
|
||||||
if not living_space or not modules:
|
if not living_space or not modules:
|
||||||
print(f"Giving living Space or Modules: {modules.module_name} not found")
|
print(f"Giving living Space or Modules: {modules.module_name} not found")
|
||||||
|
|
@ -43,7 +41,9 @@ class ModulesBindOccupantEventMethods(MethodToEvent):
|
||||||
if expires_at:
|
if expires_at:
|
||||||
service_build_dict["expires_at"] = str(system_arrow.get(expires_at))
|
service_build_dict["expires_at"] = str(system_arrow.get(expires_at))
|
||||||
else:
|
else:
|
||||||
service_build_dict["expires_at"] = str(system_arrow.get(living_space.expiry_ends))
|
service_build_dict["expires_at"] = str(
|
||||||
|
system_arrow.get(living_space.expiry_ends)
|
||||||
|
)
|
||||||
|
|
||||||
for service in modules.retrieve_services():
|
for service in modules.retrieve_services():
|
||||||
ServiceBindOccupantEventMethods.bind_services_occupant_system(
|
ServiceBindOccupantEventMethods.bind_services_occupant_system(
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class ServiceBindOccupantEventMethods(MethodToEvent):
|
||||||
cls, build_living_space_id: int, service_id: int, expires_at: str = None
|
cls, build_living_space_id: int, service_id: int, expires_at: str = None
|
||||||
):
|
):
|
||||||
from sqlalchemy.dialects.postgresql import insert
|
from sqlalchemy.dialects.postgresql import insert
|
||||||
|
|
||||||
living_space = BuildLivingSpace.filter_one(
|
living_space = BuildLivingSpace.filter_one(
|
||||||
BuildLivingSpace.id == build_living_space_id,
|
BuildLivingSpace.id == build_living_space_id,
|
||||||
).data
|
).data
|
||||||
|
|
@ -218,10 +219,8 @@ class ServiceBindEmployeeEventMethods(MethodToEvent):
|
||||||
)
|
)
|
||||||
count_row = session_execute.rowcount
|
count_row = session_execute.rowcount
|
||||||
print(f"{count_row} events are added to employee {employee.uu_id}")
|
print(f"{count_row} events are added to employee {employee.uu_id}")
|
||||||
Services.save()
|
|
||||||
for service_event in service_events:
|
for service_event in service_events:
|
||||||
service_event.is_confirmed = True
|
service_event.save_and_confirm()
|
||||||
Service2Events.save()
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def bind_services_employee_super_user(
|
def bind_services_employee_super_user(
|
||||||
|
|
|
||||||
|
|
@ -45,9 +45,7 @@ class UserListEventMethods(MethodToEvent):
|
||||||
people_ids = list_options.query.pop("user_uu_id_list")
|
people_ids = list_options.query.pop("user_uu_id_list")
|
||||||
people_id_list = (
|
people_id_list = (
|
||||||
user.person_id
|
user.person_id
|
||||||
for user in Users.filter_all(
|
for user in Users.filter_all(Users.uu_id.in_(people_ids)).data
|
||||||
Users.uu_id.in_(people_ids)
|
|
||||||
).data
|
|
||||||
)
|
)
|
||||||
Users.filter_attr = list_options
|
Users.filter_attr = list_options
|
||||||
records = Users.filter_all(
|
records = Users.filter_all(
|
||||||
|
|
@ -80,12 +78,11 @@ class UserCreateEventMethods(MethodToEvent):
|
||||||
data: InsertUsers,
|
data: InsertUsers,
|
||||||
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
|
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
|
||||||
):
|
):
|
||||||
created_user = Users.create_action(create_user=data)
|
created_user = Users.create_action(create_user=data, token_dict=token_dict)
|
||||||
created_user.related_company = token_dict.selected_company.company_uu_id
|
|
||||||
domain_via_user = DomainViaUser(
|
domain_via_user = DomainViaUser(
|
||||||
**{"user_uu_id": str(created_user.uu_id), "main_domain": "evyos.com.tr"}
|
**{"user_uu_id": str(created_user.uu_id), "main_domain": "evyos.com.tr"}
|
||||||
)
|
)
|
||||||
created_user.save()
|
created_user.save_and_confirm()
|
||||||
mongo_query_identity = MongoQueryIdentity(
|
mongo_query_identity = MongoQueryIdentity(
|
||||||
company_uuid=created_user.related_company,
|
company_uuid=created_user.related_company,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -136,12 +136,8 @@ def save_access_token_to_redis(
|
||||||
companies_uu_id_list, companies_id_list = [], []
|
companies_uu_id_list, companies_id_list = [], []
|
||||||
duty_uu_id_list, duty_id_list = [], []
|
duty_uu_id_list, duty_id_list = [], []
|
||||||
for employee in list_employee:
|
for employee in list_employee:
|
||||||
staff = Staff.filter_one(
|
staff = Staff.filter_one(Staff.id == employee.staff_id).data
|
||||||
Staff.id == employee.staff_id
|
if duties := Duties.filter_one(Duties.id == staff.duties_id).data:
|
||||||
).data
|
|
||||||
if duties := Duties.filter_one(
|
|
||||||
Duties.id == staff.duties_id
|
|
||||||
).data:
|
|
||||||
if duty_found := Duty.filter_by_one(id=duties.duties_id).data:
|
if duty_found := Duty.filter_by_one(id=duties.duties_id).data:
|
||||||
duty_uu_id_list.append(str(duty_found.uu_id))
|
duty_uu_id_list.append(str(duty_found.uu_id))
|
||||||
duty_id_list.append(duty_found.id)
|
duty_id_list.append(duty_found.id)
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class AlchemyJsonResponse:
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
first_item = getattr(cls.result, 'data', None)
|
first_item = getattr(cls.result, "data", None)
|
||||||
if not first_item:
|
if not first_item:
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
status_code=cls.status_code,
|
status_code=cls.status_code,
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ from .address import (
|
||||||
UpdateAddress,
|
UpdateAddress,
|
||||||
UpdatePostCode,
|
UpdatePostCode,
|
||||||
InsertPostCode,
|
InsertPostCode,
|
||||||
SearchAddress
|
SearchAddress,
|
||||||
)
|
)
|
||||||
from .application import (
|
from .application import (
|
||||||
SingleEnumUUID,
|
SingleEnumUUID,
|
||||||
|
|
|
||||||
|
|
@ -77,13 +77,14 @@ class UpdateDecisionBook(PydanticBaseModel):
|
||||||
class InsertBuildDecisionBookItems(BaseModelRegular):
|
class InsertBuildDecisionBookItems(BaseModelRegular):
|
||||||
token: str
|
token: str
|
||||||
info_type_uu_id: str
|
info_type_uu_id: str
|
||||||
unit_price: float
|
item_comment: str
|
||||||
|
|
||||||
currency: Optional[str] = "TL"
|
currency: Optional[str] = "TL"
|
||||||
unit_type: Optional[str] = "M2"
|
unit_type: Optional[str] = "M2"
|
||||||
debit_start_date: Optional[str] = None
|
debit_start_date: Optional[str] = None
|
||||||
debit_end_date: Optional[str] = None
|
debit_end_date: Optional[str] = None
|
||||||
unit_price_is_fixed: Optional[bool] = False
|
unit_price_is_fixed: Optional[bool] = False
|
||||||
item_comment: Optional[str] = None
|
unit_price: Optional[float] = 0.00
|
||||||
|
|
||||||
# build_decision_book_uu_id: str
|
# build_decision_book_uu_id: str
|
||||||
# item_objection: Optional[str] = None
|
# item_objection: Optional[str] = None
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,7 @@ class UserLoginModule(AuthModule):
|
||||||
People,
|
People,
|
||||||
MongoQueryIdentity,
|
MongoQueryIdentity,
|
||||||
)
|
)
|
||||||
|
|
||||||
found_user = Users.check_user_exits(
|
found_user = Users.check_user_exits(
|
||||||
access_key=data.access_key, domain=data.domain
|
access_key=data.access_key, domain=data.domain
|
||||||
)
|
)
|
||||||
|
|
@ -260,9 +261,7 @@ class UserLoginModule(AuthModule):
|
||||||
no_address_validates = mongo_db.mongo_engine.get_all()[0] == 0
|
no_address_validates = mongo_db.mongo_engine.get_all()[0] == 0
|
||||||
record_id = uuid.uuid4().__str__()
|
record_id = uuid.uuid4().__str__()
|
||||||
notice_link = ApiStatic.blacklist_login(record_id=record_id)
|
notice_link = ApiStatic.blacklist_login(record_id=record_id)
|
||||||
found_people = People.filter_one(
|
found_people = People.filter_one(People.id == found_user.person_id).data
|
||||||
People.id == found_user.person_id
|
|
||||||
).data
|
|
||||||
access_via_user = query_engine.update_access_history_via_user(
|
access_via_user = query_engine.update_access_history_via_user(
|
||||||
AccessHistoryViaUser(
|
AccessHistoryViaUser(
|
||||||
**{
|
**{
|
||||||
|
|
|
||||||
|
|
@ -437,10 +437,16 @@ class AccountRecords(CrudCollection):
|
||||||
status_id: Mapped[int] = mapped_column(SmallInteger, server_default="0")
|
status_id: Mapped[int] = mapped_column(SmallInteger, server_default="0")
|
||||||
|
|
||||||
approved_record: Mapped[bool] = mapped_column(Boolean, server_default="0")
|
approved_record: Mapped[bool] = mapped_column(Boolean, server_default="0")
|
||||||
import_file_name: Mapped[str] = mapped_column(String, nullable=True, comment="XLS Key")
|
import_file_name: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="XLS Key"
|
||||||
|
)
|
||||||
|
|
||||||
receive_debit: Mapped[int] = mapped_column(ForeignKey("api_enum_dropdown.id"), nullable=True)
|
receive_debit: Mapped[int] = mapped_column(
|
||||||
receive_debit_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Debit UU ID")
|
ForeignKey("api_enum_dropdown.id"), nullable=True
|
||||||
|
)
|
||||||
|
receive_debit_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Debit UU ID"
|
||||||
|
)
|
||||||
budget_type: Mapped[int] = mapped_column(
|
budget_type: Mapped[int] = mapped_column(
|
||||||
ForeignKey("api_enum_dropdown.id"), nullable=True
|
ForeignKey("api_enum_dropdown.id"), nullable=True
|
||||||
)
|
)
|
||||||
|
|
@ -449,20 +455,32 @@ class AccountRecords(CrudCollection):
|
||||||
)
|
)
|
||||||
|
|
||||||
company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"), nullable=True)
|
company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"), nullable=True)
|
||||||
company_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Company UU ID")
|
company_uu_id: Mapped[str] = mapped_column(
|
||||||
send_company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"), nullable=True)
|
String, nullable=True, comment="Company UU ID"
|
||||||
send_company_uu_id = mapped_column(String, nullable=True, comment="Send Company UU ID" )
|
)
|
||||||
|
send_company_id: Mapped[int] = mapped_column(
|
||||||
|
ForeignKey("companies.id"), nullable=True
|
||||||
|
)
|
||||||
|
send_company_uu_id = mapped_column(
|
||||||
|
String, nullable=True, comment="Send Company UU ID"
|
||||||
|
)
|
||||||
|
|
||||||
customer_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=True)
|
customer_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=True)
|
||||||
customer_uu_id = mapped_column(String, nullable=True, comment="Customer UU ID")
|
customer_uu_id = mapped_column(String, nullable=True, comment="Customer UU ID")
|
||||||
send_person_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=True)
|
send_person_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=True)
|
||||||
send_person_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Send Person UU ID")
|
send_person_uu_id: Mapped[str] = mapped_column(
|
||||||
approving_accounting_person: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=True)
|
String, nullable=True, comment="Send Person UU ID"
|
||||||
|
)
|
||||||
|
approving_accounting_person: Mapped[int] = mapped_column(
|
||||||
|
ForeignKey("people.id"), nullable=True
|
||||||
|
)
|
||||||
approving_accounting_person_uu_id: Mapped[str] = mapped_column(
|
approving_accounting_person_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Approving Accounting Person UU ID"
|
String, nullable=True, comment="Approving Accounting Person UU ID"
|
||||||
)
|
)
|
||||||
# build_id: Mapped[int] = mapped_column(ForeignKey("build.id"), nullable=True)
|
# build_id: Mapped[int] = mapped_column(ForeignKey("build.id"), nullable=True)
|
||||||
build_parts_id: Mapped[int] = mapped_column(ForeignKey("build_parts.id"), nullable=True)
|
build_parts_id: Mapped[int] = mapped_column(
|
||||||
|
ForeignKey("build_parts.id"), nullable=True
|
||||||
|
)
|
||||||
build_parts_uu_id: Mapped[str] = mapped_column(
|
build_parts_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Build Parts UU ID"
|
String, nullable=True, comment="Build Parts UU ID"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ class CrypterEngine(CrudCollection):
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_valid_keys(cls, row=None):
|
def get_valid_keys(cls, row=None):
|
||||||
cls.encrypt_list, cls.decrypt_list = [], []
|
cls.encrypt_list, cls.decrypt_list = [], []
|
||||||
if not cls.filter_all(
|
if not cls.filter_all(cls.created_at > datetime.now() - timedelta(days=29)).get(
|
||||||
cls.created_at > datetime.now() - timedelta(days=29)
|
1
|
||||||
).get(1):
|
):
|
||||||
cls.create_encrypt_keys(count=100)
|
cls.create_encrypt_keys(count=100)
|
||||||
if decrypt_identifier := getattr(row, "cryp_uu_id", None):
|
if decrypt_identifier := getattr(row, "cryp_uu_id", None):
|
||||||
if decrypt_row := cls.find_one(uu_id=str(decrypt_identifier)):
|
if decrypt_row := cls.find_one(uu_id=str(decrypt_identifier)):
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,9 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
||||||
site_id: Mapped[int] = mapped_column(ForeignKey("build_sites.id"), nullable=True)
|
site_id: Mapped[int] = mapped_column(ForeignKey("build_sites.id"), nullable=True)
|
||||||
site_uu_id: Mapped[str] = mapped_column(String, comment="Site UUID", nullable=True)
|
site_uu_id: Mapped[str] = mapped_column(String, comment="Site UUID", nullable=True)
|
||||||
address_id: Mapped[int] = mapped_column(ForeignKey("addresses.id"), nullable=False)
|
address_id: Mapped[int] = mapped_column(ForeignKey("addresses.id"), nullable=False)
|
||||||
address_uu_id: Mapped[str] = mapped_column(String, comment="Address UUID", nullable=False)
|
address_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, comment="Address UUID", nullable=False
|
||||||
|
)
|
||||||
build_types_id: Mapped[int] = mapped_column(
|
build_types_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_types.id"), nullable=False, comment="Building Type"
|
ForeignKey("build_types.id"), nullable=False, comment="Building Type"
|
||||||
)
|
)
|
||||||
|
|
@ -226,8 +228,8 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def management_room(self):
|
def management_room(self):
|
||||||
if management_room := BuildParts.find_one(
|
if management_room := BuildParts.filter_by_one(
|
||||||
id=self.management_room_id, build_id=self.id, active=True, is_confirmed=True
|
system=True, id=self.management_room_id, build_id=self.id
|
||||||
):
|
):
|
||||||
return management_room
|
return management_room
|
||||||
return None
|
return None
|
||||||
|
|
@ -240,7 +242,7 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
||||||
data_dict["address_id"] = None
|
data_dict["address_id"] = None
|
||||||
if data.address_uu_id:
|
if data.address_uu_id:
|
||||||
official_address = Addresses.filter_one(
|
official_address = Addresses.filter_one(
|
||||||
Addresses.uu_id==data.address_uu_id,
|
Addresses.uu_id == data.address_uu_id,
|
||||||
).data
|
).data
|
||||||
data_dict["address_id"] = official_address.id
|
data_dict["address_id"] = official_address.id
|
||||||
data_dict["build_no"] = str(official_address.build_number)
|
data_dict["build_no"] = str(official_address.build_number)
|
||||||
|
|
@ -249,7 +251,9 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
detail="Address is not found in database. Re-enter address record then try again.",
|
detail="Address is not found in database. Re-enter address record then try again.",
|
||||||
)
|
)
|
||||||
build_type = BuildTypes.filter_by_one(system=True, uu_id=str(data.build_types_uu_id)).data
|
build_type = BuildTypes.filter_by_one(
|
||||||
|
system=True, uu_id=str(data.build_types_uu_id)
|
||||||
|
).data
|
||||||
data_dict["build_types_id"] = build_type.id
|
data_dict["build_types_id"] = build_type.id
|
||||||
build_created = cls.find_or_create(**data_dict)
|
build_created = cls.find_or_create(**data_dict)
|
||||||
created_build_relation = cls.__many__table__.find_or_create(
|
created_build_relation = cls.__many__table__.find_or_create(
|
||||||
|
|
@ -304,7 +308,8 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
||||||
@property
|
@property
|
||||||
def livable_part_count(self):
|
def livable_part_count(self):
|
||||||
livable_parts = BuildParts.filter_all(
|
livable_parts = BuildParts.filter_all(
|
||||||
BuildParts.build_id == self.id, BuildParts.human_livable == True,
|
BuildParts.build_id == self.id,
|
||||||
|
BuildParts.human_livable == True,
|
||||||
)
|
)
|
||||||
if not livable_parts.data:
|
if not livable_parts.data:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -318,7 +323,9 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
||||||
building_types = None
|
building_types = None
|
||||||
for part in self.parts:
|
for part in self.parts:
|
||||||
building_types = {}
|
building_types = {}
|
||||||
build_type = BuildTypes.filter_by_one(system=True, id=part.build_part_type_id).data
|
build_type = BuildTypes.filter_by_one(
|
||||||
|
system=True, id=part.build_part_type_id
|
||||||
|
).data
|
||||||
if build_type.type_code in building_types:
|
if build_type.type_code in building_types:
|
||||||
building_types[build_type.type_code]["list"].append(part.part_no)
|
building_types[build_type.type_code]["list"].append(part.part_no)
|
||||||
else:
|
else:
|
||||||
|
|
@ -363,7 +370,9 @@ class BuildParts(CrudCollection):
|
||||||
part_gross_size: Mapped[int] = mapped_column(
|
part_gross_size: Mapped[int] = mapped_column(
|
||||||
Integer, server_default="0", comment="Part Gross Size"
|
Integer, server_default="0", comment="Part Gross Size"
|
||||||
)
|
)
|
||||||
part_net_size: Mapped[int] = mapped_column(Integer, server_default="0", comment="Part Net Size")
|
part_net_size: Mapped[int] = mapped_column(
|
||||||
|
Integer, server_default="0", comment="Part Net Size"
|
||||||
|
)
|
||||||
default_accessory: Mapped[str] = mapped_column(
|
default_accessory: Mapped[str] = mapped_column(
|
||||||
Text, server_default="0", comment="Default Accessory"
|
Text, server_default="0", comment="Default Accessory"
|
||||||
)
|
)
|
||||||
|
|
@ -469,7 +478,9 @@ class BuildParts(CrudCollection):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def part_name(self):
|
def part_name(self):
|
||||||
if build_type := BuildTypes.filter_by_one(system=True, id=self.build_part_type_id).data:
|
if build_type := BuildTypes.filter_by_one(
|
||||||
|
system=True, id=self.build_part_type_id
|
||||||
|
).data:
|
||||||
return f"{str(build_type.type_name).upper()} : {str(self.part_no).upper()}"
|
return f"{str(build_type.type_name).upper()} : {str(self.part_no).upper()}"
|
||||||
return f"Undefined:{str(build_type.type_name).upper()}"
|
return f"Undefined:{str(build_type.type_name).upper()}"
|
||||||
|
|
||||||
|
|
@ -552,23 +563,21 @@ class BuildLivingSpace(CrudCollection):
|
||||||
from api_events.events.events.events_bind_services import (
|
from api_events.events.events.events_bind_services import (
|
||||||
ServiceBindOccupantEventMethods,
|
ServiceBindOccupantEventMethods,
|
||||||
)
|
)
|
||||||
if data.get('expiry_starts'):
|
|
||||||
data['expiry_starts'] = str(system_arrow.get(data['expiry_starts']))
|
if data.get("expiry_starts"):
|
||||||
if data.get('expiry_ends'):
|
data["expiry_starts"] = str(system_arrow.get(data["expiry_starts"]))
|
||||||
data['expiry_ends'] = str(system_arrow.get(data['expiry_ends']))
|
if data.get("expiry_ends"):
|
||||||
|
data["expiry_ends"] = str(system_arrow.get(data["expiry_ends"]))
|
||||||
created_living_space = BuildLivingSpace.find_or_create(**data)
|
created_living_space = BuildLivingSpace.find_or_create(**data)
|
||||||
occupant_type = OccupantTypes.filter_by_one(
|
occupant_type = OccupantTypes.filter_by_one(
|
||||||
system=True,
|
system=True, uu_id=created_living_space.occupant_type_uu_id
|
||||||
uu_id=created_living_space.occupant_type_uu_id
|
|
||||||
).data
|
).data
|
||||||
related_service = Services.filter_by_one(
|
related_service = Services.filter_by_one(
|
||||||
related_responsibility=occupant_type.occupant_code,
|
related_responsibility=occupant_type.occupant_code,
|
||||||
**Services.valid_record_dict
|
**Services.valid_record_dict,
|
||||||
).data
|
).data
|
||||||
|
|
||||||
created_living_space.save()
|
created_living_space.save_and_confirm()
|
||||||
created_living_space.is_confirmed = True
|
|
||||||
created_living_space.save()
|
|
||||||
|
|
||||||
if not related_service:
|
if not related_service:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -586,6 +595,7 @@ class BuildLivingSpace(CrudCollection):
|
||||||
cls, customer_id, process_date, add_days: int = 32
|
cls, customer_id, process_date, add_days: int = 32
|
||||||
):
|
):
|
||||||
from api_library.date_time_actions.date_functions import system_arrow
|
from api_library.date_time_actions.date_functions import system_arrow
|
||||||
|
|
||||||
formatted_date = system_arrow.get(str(process_date))
|
formatted_date = system_arrow.get(str(process_date))
|
||||||
living_spaces = cls.filter_all(
|
living_spaces = cls.filter_all(
|
||||||
or_(
|
or_(
|
||||||
|
|
@ -642,7 +652,7 @@ class BuildSites(CrudCollection):
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
__include__fields__ = []
|
__include__fields__ = []
|
||||||
|
|
||||||
site_name : Mapped[str]= mapped_column(String(24), nullable=False)
|
site_name: Mapped[str] = mapped_column(String(24), nullable=False)
|
||||||
site_no: Mapped[str] = mapped_column(String(8), nullable=False)
|
site_no: Mapped[str] = mapped_column(String(8), nullable=False)
|
||||||
|
|
||||||
address_id: Mapped[int] = mapped_column(ForeignKey("addresses.id"))
|
address_id: Mapped[int] = mapped_column(ForeignKey("addresses.id"))
|
||||||
|
|
@ -671,14 +681,22 @@ class BuildCompaniesProviding(CrudCollection):
|
||||||
build_id = mapped_column(
|
build_id = mapped_column(
|
||||||
ForeignKey("build.id"), nullable=False, comment="Building ID"
|
ForeignKey("build.id"), nullable=False, comment="Building ID"
|
||||||
)
|
)
|
||||||
build_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID")
|
build_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Providing UUID"
|
||||||
|
)
|
||||||
company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
||||||
company_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID")
|
company_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Providing UUID"
|
||||||
|
)
|
||||||
provide_id: Mapped[int] = mapped_column(
|
provide_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("api_enum_dropdown.id"), nullable=True
|
ForeignKey("api_enum_dropdown.id"), nullable=True
|
||||||
)
|
)
|
||||||
provide_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID")
|
provide_uu_id: Mapped[str] = mapped_column(
|
||||||
contract_id: Mapped[int] = mapped_column(Integer, ForeignKey("companies.id"), nullable=True)
|
String, nullable=True, comment="Providing UUID"
|
||||||
|
)
|
||||||
|
contract_id: Mapped[int] = mapped_column(
|
||||||
|
Integer, ForeignKey("companies.id"), nullable=True
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
@ -702,14 +720,22 @@ class BuildPersonProviding(CrudCollection):
|
||||||
build_id = mapped_column(
|
build_id = mapped_column(
|
||||||
ForeignKey("build.id"), nullable=False, comment="Building ID"
|
ForeignKey("build.id"), nullable=False, comment="Building ID"
|
||||||
)
|
)
|
||||||
build_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID")
|
build_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Providing UUID"
|
||||||
|
)
|
||||||
people_id: Mapped[int] = mapped_column(ForeignKey("people.id"))
|
people_id: Mapped[int] = mapped_column(ForeignKey("people.id"))
|
||||||
people_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="People UUID")
|
people_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="People UUID"
|
||||||
|
)
|
||||||
provide_id: Mapped[int] = mapped_column(
|
provide_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("api_enum_dropdown.id"), nullable=True
|
ForeignKey("api_enum_dropdown.id"), nullable=True
|
||||||
)
|
)
|
||||||
provide_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID")
|
provide_uu_id: Mapped[str] = mapped_column(
|
||||||
contract_id: Mapped[int] = mapped_column(Integer, ForeignKey("companies.id"), nullable=True)
|
String, nullable=True, comment="Providing UUID"
|
||||||
|
)
|
||||||
|
contract_id: Mapped[int] = mapped_column(
|
||||||
|
Integer, ForeignKey("companies.id"), nullable=True
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,9 @@ class BuildDecisionBook(CrudCollection):
|
||||||
__tablename__ = "build_decision_book"
|
__tablename__ = "build_decision_book"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
decision_book_pdf_path: Mapped[str] = mapped_column(String)
|
decision_book_pdf_path: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", nullable=True
|
||||||
|
)
|
||||||
resp_company_fix_wage: Mapped[float] = mapped_column(
|
resp_company_fix_wage: Mapped[float] = mapped_column(
|
||||||
Numeric(10, 2), server_default="0"
|
Numeric(10, 2), server_default="0"
|
||||||
) #
|
) #
|
||||||
|
|
@ -135,9 +137,7 @@ class BuildDecisionBook(CrudCollection):
|
||||||
related_companies_ids = list(
|
related_companies_ids = list(
|
||||||
related_.id for related_ in related_companies.all()
|
related_.id for related_ in related_companies.all()
|
||||||
)
|
)
|
||||||
related_building = Build.filter_all(
|
related_building = Build.filter_all(Build.company_id.in_(related_companies_ids))
|
||||||
Build.company_id.in_(related_companies_ids)
|
|
||||||
)
|
|
||||||
related_building_ids = list(related_.id for related_ in related_building.data)
|
related_building_ids = list(related_.id for related_ in related_building.data)
|
||||||
return cls.filter_all(cls.build_id.in_(related_building_ids)).query
|
return cls.filter_all(cls.build_id.in_(related_building_ids)).query
|
||||||
|
|
||||||
|
|
@ -223,13 +223,13 @@ class BuildDecisionBook(CrudCollection):
|
||||||
):
|
):
|
||||||
bank_date = datetime.strptime(str(bank_date), "%Y-%m-%d %H:%M:%S")
|
bank_date = datetime.strptime(str(bank_date), "%Y-%m-%d %H:%M:%S")
|
||||||
build_iban = BuildIbans.find_one(iban=iban)
|
build_iban = BuildIbans.find_one(iban=iban)
|
||||||
decision_book: cls = cls.filter(
|
decision_book: cls = cls.filter_one(
|
||||||
cls.build_id == build_iban.build_id,
|
cls.build_id == build_iban.build_id,
|
||||||
cls.expiry_starts < bank_date,
|
cls.expiry_starts < bank_date,
|
||||||
cls.expiry_ends > bank_date,
|
cls.expiry_ends > bank_date,
|
||||||
cls.active == True,
|
cls.active == True,
|
||||||
cls.deleted == False,
|
cls.deleted == False,
|
||||||
)
|
).data
|
||||||
decision_book.check_book_is_valid(bank_date.__str__())
|
decision_book.check_book_is_valid(bank_date.__str__())
|
||||||
return decision_book
|
return decision_book
|
||||||
return
|
return
|
||||||
|
|
@ -263,11 +263,13 @@ class BuildDecisionBookInvitations(CrudCollection):
|
||||||
Numeric(10, 2), server_default="0.51"
|
Numeric(10, 2), server_default="0.51"
|
||||||
)
|
)
|
||||||
|
|
||||||
message = mapped_column(Text, nullable=True, comment="Invitation Message")
|
message: Mapped[str] = mapped_column(
|
||||||
planned_date = mapped_column(
|
Text, nullable=True, comment="Invitation Message"
|
||||||
|
)
|
||||||
|
planned_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, nullable=False, comment="Planned Meeting Date"
|
TIMESTAMP, nullable=False, comment="Planned Meeting Date"
|
||||||
)
|
)
|
||||||
planned_date_expires = mapped_column(
|
planned_date_expires: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, nullable=False, comment="Planned Meeting Date Expires"
|
TIMESTAMP, nullable=False, comment="Planned Meeting Date Expires"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -284,13 +286,12 @@ class BuildDecisionBookInvitations(CrudCollection):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def check_invites_are_ready_for_meeting(cls, selected_decision_book, token_dict):
|
def check_invites_are_ready_for_meeting(cls, selected_decision_book, token_dict):
|
||||||
first_book_invitation = BuildDecisionBookInvitations.find_one(
|
first_book_invitation = BuildDecisionBookInvitations.filter_one(
|
||||||
build_id=token_dict.selected_occupant.build_id,
|
BuildDecisionBookInvitations.build_id
|
||||||
decision_book_id=selected_decision_book.id,
|
== token_dict.selected_occupant.build_id,
|
||||||
invitation_attempt=1,
|
BuildDecisionBookInvitations.decision_book_id == selected_decision_book.id,
|
||||||
active=True,
|
BuildDecisionBookInvitations.invitation_attempt == 1,
|
||||||
is_confirmed=True,
|
).data
|
||||||
)
|
|
||||||
if not first_book_invitation:
|
if not first_book_invitation:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|
@ -305,19 +306,19 @@ class BuildDecisionBookInvitations(CrudCollection):
|
||||||
BuildDecisionBookPerson.build_decision_book_id
|
BuildDecisionBookPerson.build_decision_book_id
|
||||||
== selected_decision_book.id,
|
== selected_decision_book.id,
|
||||||
BuildDecisionBookPerson.is_attending == True,
|
BuildDecisionBookPerson.is_attending == True,
|
||||||
filter_records=False,
|
system=True,
|
||||||
)
|
)
|
||||||
.query.distinct(BuildDecisionBookPerson.person_id)
|
.query.distinct(BuildDecisionBookPerson.person_id)
|
||||||
.count()
|
.count()
|
||||||
)
|
)
|
||||||
|
|
||||||
second_book_invitation = BuildDecisionBookInvitations.find_one(
|
second_book_invitation = BuildDecisionBookInvitations.filter_one(
|
||||||
build_id=token_dict.selected_occupant.build_id,
|
BuildDecisionBookInvitations.build_id
|
||||||
decision_book_id=selected_decision_book.id,
|
== token_dict.selected_occupant.build_id,
|
||||||
invitation_attempt=2,
|
BuildDecisionBookInvitations.decision_book_id == selected_decision_book.id,
|
||||||
active=True,
|
BuildDecisionBookInvitations.invitation_attempt == 2,
|
||||||
is_confirmed=True,
|
system=True,
|
||||||
)
|
).data
|
||||||
if not valid_invite_count >= need_attend_count and not second_book_invitation:
|
if not valid_invite_count >= need_attend_count and not second_book_invitation:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
|
|
@ -341,46 +342,48 @@ class BuildDecisionBookPerson(CrudCollection):
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
__enum_list__ = [("management_typecode", "BuildManagementType", "bm")]
|
__enum_list__ = [("management_typecode", "BuildManagementType", "bm")]
|
||||||
|
|
||||||
dues_percent_discount = mapped_column(SmallInteger, server_default="0")
|
dues_percent_discount: Mapped[int] = mapped_column(SmallInteger, server_default="0")
|
||||||
dues_fix_discount: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
dues_fix_discount: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
||||||
dues_discount_approval_date = mapped_column(
|
dues_discount_approval_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, server_default="1900-01-01 00:00:00"
|
TIMESTAMP, server_default="1900-01-01 00:00:00"
|
||||||
)
|
)
|
||||||
send_date = mapped_column(TIMESTAMP, nullable=False, comment="Confirmation Date")
|
send_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
is_attending = mapped_column(
|
TIMESTAMP, nullable=False, comment="Confirmation Date"
|
||||||
|
)
|
||||||
|
is_attending: Mapped[bool] = mapped_column(
|
||||||
Boolean, server_default="0", comment="Occupant is Attending to invitation"
|
Boolean, server_default="0", comment="Occupant is Attending to invitation"
|
||||||
)
|
)
|
||||||
confirmed_date = mapped_column(
|
confirmed_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, nullable=True, comment="Confirmation Date"
|
TIMESTAMP, nullable=True, comment="Confirmation Date"
|
||||||
)
|
)
|
||||||
token: Mapped[str] = mapped_column(
|
token: Mapped[str] = mapped_column(
|
||||||
String, server_default="", comment="Invitation Token"
|
String, server_default="", comment="Invitation Token"
|
||||||
)
|
)
|
||||||
|
|
||||||
vicarious_person_id = mapped_column(
|
vicarious_person_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("people.id"), nullable=True, comment="Vicarious Person ID"
|
ForeignKey("people.id"), nullable=True, comment="Vicarious Person ID"
|
||||||
)
|
)
|
||||||
vicarious_person_uu_id = mapped_column(
|
vicarious_person_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Vicarious Person UUID"
|
String, nullable=True, comment="Vicarious Person UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
invite_id = mapped_column(
|
invite_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_invitations.id"), nullable=False
|
ForeignKey("build_decision_book_invitations.id"), nullable=False
|
||||||
)
|
)
|
||||||
invite_uu_id: Mapped[str] = mapped_column(
|
invite_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=False, comment="Invite UUID"
|
String, nullable=False, comment="Invite UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
build_decision_book_id = mapped_column(
|
build_decision_book_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book.id"), nullable=False
|
ForeignKey("build_decision_book.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_uu_id = mapped_column(
|
build_decision_book_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=False, comment="Decision Book UUID"
|
String, nullable=False, comment="Decision Book UUID"
|
||||||
)
|
)
|
||||||
build_living_space_id = mapped_column(
|
build_living_space_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_living_space.id"), nullable=False
|
ForeignKey("build_living_space.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_living_space_uu_id = mapped_column(
|
build_living_space_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Living Space UUID"
|
String, nullable=True, comment="Living Space UUID"
|
||||||
)
|
)
|
||||||
person_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=False)
|
person_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=False)
|
||||||
|
|
@ -403,7 +406,7 @@ class BuildDecisionBookPerson(CrudCollection):
|
||||||
system=True,
|
system=True,
|
||||||
)
|
)
|
||||||
BuildDecisionBookPersonOccupants.pre_query = all_decision_book_people.query
|
BuildDecisionBookPersonOccupants.pre_query = all_decision_book_people.query
|
||||||
return BuildDecisionBookPersonOccupants.filter_all(system=True)
|
return BuildDecisionBookPersonOccupants.filter_all(system=True).data
|
||||||
|
|
||||||
def add_occupant_type(self, occupant_type, build_living_space_id: int = None):
|
def add_occupant_type(self, occupant_type, build_living_space_id: int = None):
|
||||||
from databases import (
|
from databases import (
|
||||||
|
|
@ -422,15 +425,14 @@ class BuildDecisionBookPerson(CrudCollection):
|
||||||
invite_uu_id=str(self.invite_uu_id),
|
invite_uu_id=str(self.invite_uu_id),
|
||||||
occupant_type_id=occupant_type.id,
|
occupant_type_id=occupant_type.id,
|
||||||
occupant_type_uu_id=str(occupant_type.uu_id),
|
occupant_type_uu_id=str(occupant_type.uu_id),
|
||||||
is_confirmed=True,
|
|
||||||
)
|
)
|
||||||
if person_occupants := BuildDecisionBookPersonOccupants.find_or_create(
|
if person_occupants := BuildDecisionBookPersonOccupants.find_or_create(
|
||||||
**book_dict
|
**book_dict
|
||||||
):
|
):
|
||||||
|
person_occupants.save_and_confirm()
|
||||||
|
|
||||||
decision_book = BuildDecisionBook.filter_one(
|
decision_book = BuildDecisionBook.filter_one(
|
||||||
BuildDecisionBook.id == self.build_decision_book_id,
|
BuildDecisionBook.id == self.build_decision_book_id,
|
||||||
BuildDecisionBook.active == True,
|
|
||||||
BuildDecisionBook.is_confirmed == True,
|
|
||||||
).data
|
).data
|
||||||
person_occupants.update(
|
person_occupants.update(
|
||||||
expiry_starts=decision_book.expiry_starts,
|
expiry_starts=decision_book.expiry_starts,
|
||||||
|
|
@ -449,8 +451,6 @@ class BuildDecisionBookPerson(CrudCollection):
|
||||||
|
|
||||||
decision_build = Build.filter_one(
|
decision_build = Build.filter_one(
|
||||||
Build.id == decision_book.build_id,
|
Build.id == decision_book.build_id,
|
||||||
Build.active == True,
|
|
||||||
Build.is_confirmed == True,
|
|
||||||
).data
|
).data
|
||||||
management_room = decision_build.management_room
|
management_room = decision_build.management_room
|
||||||
if not management_room:
|
if not management_room:
|
||||||
|
|
@ -461,8 +461,6 @@ class BuildDecisionBookPerson(CrudCollection):
|
||||||
|
|
||||||
living_space = BuildLivingSpace.filter_one(
|
living_space = BuildLivingSpace.filter_one(
|
||||||
BuildLivingSpace.id == build_living_space_id,
|
BuildLivingSpace.id == build_living_space_id,
|
||||||
BuildLivingSpace.active == True,
|
|
||||||
BuildLivingSpace.is_confirmed == True,
|
|
||||||
).data
|
).data
|
||||||
expiry_ends = str(
|
expiry_ends = str(
|
||||||
system_arrow.get(decision_book.meeting_date).shift(hours=23)
|
system_arrow.get(decision_book.meeting_date).shift(hours=23)
|
||||||
|
|
@ -477,15 +475,11 @@ class BuildDecisionBookPerson(CrudCollection):
|
||||||
person_uu_id=str(living_space.person_uu_id),
|
person_uu_id=str(living_space.person_uu_id),
|
||||||
expiry_starts=expiry_starts,
|
expiry_starts=expiry_starts,
|
||||||
expiry_ends=expiry_ends,
|
expiry_ends=expiry_ends,
|
||||||
is_confirmed=True,
|
|
||||||
active=True,
|
|
||||||
)
|
)
|
||||||
expires_at = str(
|
expires_at = str(
|
||||||
system_arrow.get(decision_book.meeting_date).shift(days=15)
|
system_arrow.get(decision_book.meeting_date).shift(days=15)
|
||||||
)
|
)
|
||||||
related_living_space.save()
|
related_living_space.save_and_confirm()
|
||||||
related_living_space.is_confirmed = True
|
|
||||||
related_living_space.save()
|
|
||||||
ServiceBindOccupantEventMethods.bind_services_occupant_system(
|
ServiceBindOccupantEventMethods.bind_services_occupant_system(
|
||||||
build_living_space_id=related_living_space.id,
|
build_living_space_id=related_living_space.id,
|
||||||
service_id=related_service.id,
|
service_id=related_service.id,
|
||||||
|
|
@ -524,13 +518,13 @@ class BuildDecisionBookPersonOccupants(CrudCollection):
|
||||||
__tablename__ = "build_decision_book_person_occupants"
|
__tablename__ = "build_decision_book_person_occupants"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
build_decision_book_person_id = mapped_column(
|
build_decision_book_person_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_person.id"), nullable=False
|
ForeignKey("build_decision_book_person.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_person_uu_id = mapped_column(
|
build_decision_book_person_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Person UUID"
|
String, nullable=True, comment="Decision Book Person UUID"
|
||||||
)
|
)
|
||||||
invite_id = mapped_column(
|
invite_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_invitations.id"), nullable=True
|
ForeignKey("build_decision_book_invitations.id"), nullable=True
|
||||||
)
|
)
|
||||||
invite_uu_id: Mapped[str] = mapped_column(
|
invite_uu_id: Mapped[str] = mapped_column(
|
||||||
|
|
@ -566,15 +560,17 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
__tablename__ = "build_decision_book_items"
|
__tablename__ = "build_decision_book_items"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
item_order = mapped_column(
|
item_order: Mapped[int] = mapped_column(
|
||||||
SmallInteger, nullable=False, comment="Order Number of Item"
|
SmallInteger, nullable=False, comment="Order Number of Item"
|
||||||
)
|
)
|
||||||
item_comment = mapped_column(Text, nullable=False, comment="Comment Content")
|
item_comment: Mapped[str] = mapped_column(
|
||||||
item_objection = mapped_column(Text)
|
Text, nullable=False, comment="Comment Content"
|
||||||
info_is_completed = mapped_column(
|
)
|
||||||
|
item_objection: Mapped[str] = mapped_column(Text)
|
||||||
|
info_is_completed: Mapped[bool] = mapped_column(
|
||||||
Boolean, server_default="0", comment="Info process is Completed"
|
Boolean, server_default="0", comment="Info process is Completed"
|
||||||
)
|
)
|
||||||
is_payment_created = mapped_column(
|
is_payment_created: Mapped[bool] = mapped_column(
|
||||||
Boolean, server_default="0", comment="Are payment Records Created"
|
Boolean, server_default="0", comment="Are payment Records Created"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -585,10 +581,10 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
String, nullable=True, comment="Info Type UUID"
|
String, nullable=True, comment="Info Type UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
build_decision_book_id = mapped_column(
|
build_decision_book_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book.id"), nullable=False
|
ForeignKey("build_decision_book.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_uu_id = mapped_column(
|
build_decision_book_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book UUID"
|
String, nullable=True, comment="Decision Book UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -610,7 +606,7 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
Companies,
|
Companies,
|
||||||
)
|
)
|
||||||
|
|
||||||
related_companies = Companies.select_action(duty_id=duty_id)
|
related_companies = Companies.select_action(duty_id_list=[duty_id])
|
||||||
related_companies_ids = list(
|
related_companies_ids = list(
|
||||||
related_.id for related_ in related_companies.all()
|
related_.id for related_ in related_companies.all()
|
||||||
)
|
)
|
||||||
|
|
@ -635,9 +631,9 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
duty_id=token.duty_list["duty_id"]
|
duty_id=token.duty_list["duty_id"]
|
||||||
)
|
)
|
||||||
cls.pre_query = cls.select_action(duty_id=token.duty_list["duty_id"])
|
cls.pre_query = cls.select_action(duty_id=token.duty_list["duty_id"])
|
||||||
if decision_book := BuildDecisionBook.find_one(
|
if decision_book := BuildDecisionBook.filter_one(
|
||||||
uu_id=data.build_decision_book_uu_id
|
BuildDecisionBook.uu_id == data.build_decision_book_uu_id
|
||||||
):
|
).data:
|
||||||
found_dict = dict(
|
found_dict = dict(
|
||||||
item_order=data.item_order, build_decision_book_id=decision_book.id
|
item_order=data.item_order, build_decision_book_id=decision_book.id
|
||||||
)
|
)
|
||||||
|
|
@ -666,9 +662,11 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
occupant_type_list = OccupantTypes.filter_all(
|
occupant_type_list = OccupantTypes.filter_all(
|
||||||
OccupantTypes.occupant_code.in_(occupant_type_required_list),
|
OccupantTypes.occupant_code.in_(occupant_type_required_list),
|
||||||
system=True,
|
system=True,
|
||||||
)
|
).data
|
||||||
# active_invite = invitations[1] if invitations[1] else invitations[0]
|
# active_invite = invitations[1] if invitations[1] else invitations[0]
|
||||||
invitation = BuildDecisionBookInvitations.find_one(id=active_invite.id)
|
invitation = BuildDecisionBookInvitations.filter_one(
|
||||||
|
BuildDecisionBookInvitations.id == active_invite.id
|
||||||
|
).data
|
||||||
people_book_attend_count = None
|
people_book_attend_count = None
|
||||||
if invitation.invitation_attempt == 1:
|
if invitation.invitation_attempt == 1:
|
||||||
people_book_attend_is_attending = BuildDecisionBookPerson.filter_all(
|
people_book_attend_is_attending = BuildDecisionBookPerson.filter_all(
|
||||||
|
|
@ -702,26 +700,25 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
active=True,
|
active=True,
|
||||||
is_payment_created=True,
|
is_payment_created=True,
|
||||||
)
|
)
|
||||||
occupant_type_pre = OccupantTypes.find_one(
|
occupant_type_pre = OccupantTypes.filter_by_one(
|
||||||
occupant_code="MT-PRS", occupant_category_type="MT"
|
system=True, occupant_code="MT-PRS", occupant_category_type="MT"
|
||||||
)
|
).data
|
||||||
occupant_type_wrt = OccupantTypes.find_one(
|
occupant_type_wrt = OccupantTypes.filter_by_one(
|
||||||
occupant_code="MT-WRT", occupant_category_type="MT"
|
system=True, occupant_code="MT-WRT", occupant_category_type="MT"
|
||||||
)
|
).data
|
||||||
occupant_type_mng = OccupantTypes.find_one(
|
occupant_type_mng = OccupantTypes.filter_by_one(
|
||||||
occupant_code="BU-MNG", occupant_category_type="BU"
|
system=True, occupant_code="BU-MNG", occupant_category_type="BU"
|
||||||
)
|
).data
|
||||||
|
|
||||||
person_occupants_pre = BuildDecisionBookPersonOccupants.find_one(
|
person_occupants_pre = BuildDecisionBookPersonOccupants.filter_one(
|
||||||
invite_id=invitation.id,
|
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
||||||
occupant_type_id=occupant_type_pre.id,
|
BuildDecisionBookPersonOccupants.occupant_type_id == occupant_type_pre.id,
|
||||||
)
|
).data
|
||||||
person_invite_pret = BuildDecisionBookPerson.find_one(
|
person_invite_pret = BuildDecisionBookPerson.filter_one(
|
||||||
id=person_occupants_pre.build_decision_book_person_id
|
BuildDecisionBookPerson.id
|
||||||
)
|
== person_occupants_pre.build_decision_book_person_id
|
||||||
person = People.find_one(
|
).data
|
||||||
id=person_invite_pret.person_id, active=True, is_confirmed=True
|
person = People.filter_one(People.id == person_invite_pret.person_id).data
|
||||||
)
|
|
||||||
BuildDecisionBookItems.find_or_create(
|
BuildDecisionBookItems.find_or_create(
|
||||||
**book_items_dict,
|
**book_items_dict,
|
||||||
item_order=1,
|
item_order=1,
|
||||||
|
|
@ -732,16 +729,15 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
person_occupants_wrt = BuildDecisionBookPersonOccupants.find_one(
|
person_occupants_wrt = BuildDecisionBookPersonOccupants.filter_one(
|
||||||
invite_id=invitation.id,
|
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
||||||
occupant_type_id=occupant_type_wrt.id,
|
BuildDecisionBookPersonOccupants.occupant_type_id == occupant_type_wrt.id,
|
||||||
)
|
).data
|
||||||
person_invite_wrt = BuildDecisionBookPerson.find_one(
|
person_invite_wrt = BuildDecisionBookPerson.filter_one(
|
||||||
id=person_occupants_wrt.build_decision_book_person_id
|
BuildDecisionBookPerson.id
|
||||||
)
|
== person_occupants_wrt.build_decision_book_person_id
|
||||||
person = People.find_one(
|
).data
|
||||||
id=person_invite_pret.person_id, active=True, is_confirmed=True
|
person = People.filter_one(People.id == person_invite_pret.person_id).data
|
||||||
)
|
|
||||||
BuildDecisionBookItems.find_or_create(
|
BuildDecisionBookItems.find_or_create(
|
||||||
**book_items_dict,
|
**book_items_dict,
|
||||||
item_order=2,
|
item_order=2,
|
||||||
|
|
@ -752,16 +748,15 @@ class BuildDecisionBookItems(CrudCollection):
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
person_occupants_mng = BuildDecisionBookPersonOccupants.find_one(
|
person_occupants_mng = BuildDecisionBookPersonOccupants.filter_one(
|
||||||
invite_id=invitation.id,
|
BuildDecisionBookPersonOccupants.invite_id == invitation.id,
|
||||||
occupant_type_id=occupant_type_mng.id,
|
BuildDecisionBookPersonOccupants.occupant_type_id == occupant_type_mng.id,
|
||||||
)
|
).data
|
||||||
person_invite_mng = BuildDecisionBookPerson.find_one(
|
person_invite_mng = BuildDecisionBookPerson.filter_one(
|
||||||
id=person_occupants_mng.build_decision_book_person_id
|
BuildDecisionBookPerson.id
|
||||||
)
|
== person_occupants_mng.build_decision_book_person_id
|
||||||
person = People.find_one(
|
).data
|
||||||
id=person_invite_pret.person_id, active=True, is_confirmed=True
|
person = People.filter_one(People.id == person_invite_pret.person_id).data
|
||||||
)
|
|
||||||
BuildDecisionBookItems.find_or_create(
|
BuildDecisionBookItems.find_or_create(
|
||||||
**book_items_dict,
|
**book_items_dict,
|
||||||
item_order=3,
|
item_order=3,
|
||||||
|
|
@ -795,23 +790,27 @@ class BuildDecisionBookItemsUnapproved(CrudCollection):
|
||||||
__tablename__ = "build_decision_book_items_unapproved"
|
__tablename__ = "build_decision_book_items_unapproved"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
item_objection = mapped_column(Text, nullable=False, comment="Objection Content")
|
item_objection: Mapped[str] = mapped_column(
|
||||||
item_order = mapped_column(SmallInteger, nullable=False, comment="Order Number")
|
Text, nullable=False, comment="Objection Content"
|
||||||
|
)
|
||||||
|
item_order: Mapped[int] = mapped_column(
|
||||||
|
SmallInteger, nullable=False, comment="Order Number"
|
||||||
|
)
|
||||||
|
|
||||||
decision_book_item_id = mapped_column(
|
decision_book_item_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_items.id"), nullable=False
|
ForeignKey("build_decision_book_items.id"), nullable=False
|
||||||
)
|
)
|
||||||
decision_book_item_uu_id = mapped_column(
|
decision_book_item_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Item"
|
String, nullable=True, comment="Decision Book Item"
|
||||||
)
|
)
|
||||||
person_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=False)
|
person_id: Mapped[int] = mapped_column(ForeignKey("people.id"), nullable=False)
|
||||||
person_uu_id: Mapped[str] = mapped_column(
|
person_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Person UUID"
|
String, nullable=True, comment="Person UUID"
|
||||||
)
|
)
|
||||||
build_decision_book_item = mapped_column(
|
build_decision_book_item: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_items.id"), nullable=False
|
ForeignKey("build_decision_book_items.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_item_uu_id = mapped_column(
|
build_decision_book_item_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Item UUID"
|
String, nullable=True, comment="Decision Book Item UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -833,11 +832,13 @@ class BuildDecisionBookPayments(CrudCollection):
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
__enum_list__ = [("receive_debit", "DebitTypes", "D")]
|
__enum_list__ = [("receive_debit", "DebitTypes", "D")]
|
||||||
|
|
||||||
payment_plan_time_periods = mapped_column(
|
payment_plan_time_periods: Mapped[str] = mapped_column(
|
||||||
String(10), nullable=False, comment="Payment Plan Time Periods"
|
String(10), nullable=False, comment="Payment Plan Time Periods"
|
||||||
)
|
)
|
||||||
process_date = mapped_column(TIMESTAMP, nullable=False, comment="Payment Due Date")
|
process_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
payment_amount = mapped_column(
|
TIMESTAMP, nullable=False, comment="Payment Due Date"
|
||||||
|
)
|
||||||
|
payment_amount: Mapped[float] = mapped_column(
|
||||||
Numeric(16, 2), nullable=False, comment="Payment Amount"
|
Numeric(16, 2), nullable=False, comment="Payment Amount"
|
||||||
)
|
)
|
||||||
currency: Mapped[str] = mapped_column(String(8), server_default="TRY")
|
currency: Mapped[str] = mapped_column(String(8), server_default="TRY")
|
||||||
|
|
@ -853,20 +854,20 @@ class BuildDecisionBookPayments(CrudCollection):
|
||||||
process_date_y: Mapped[int] = mapped_column(SmallInteger)
|
process_date_y: Mapped[int] = mapped_column(SmallInteger)
|
||||||
process_date_m: Mapped[int] = mapped_column(SmallInteger)
|
process_date_m: Mapped[int] = mapped_column(SmallInteger)
|
||||||
|
|
||||||
build_decision_book_item_id = mapped_column(
|
build_decision_book_item_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_items.id"),
|
ForeignKey("build_decision_book_items.id"),
|
||||||
nullable=False,
|
nullable=False,
|
||||||
comment="Build Decision Book Item ID",
|
comment="Build Decision Book Item ID",
|
||||||
)
|
)
|
||||||
build_decision_book_item_uu_id = mapped_column(
|
build_decision_book_item_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Item UUID"
|
String, nullable=True, comment="Decision Book Item UUID"
|
||||||
)
|
)
|
||||||
decision_book_project_id = mapped_column(
|
decision_book_project_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_projects.id"),
|
ForeignKey("build_decision_book_projects.id"),
|
||||||
nullable=True,
|
nullable=True,
|
||||||
comment="Decision Book Project ID",
|
comment="Decision Book Project ID",
|
||||||
)
|
)
|
||||||
decision_book_project_uu_id = mapped_column(
|
decision_book_project_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Project UUID"
|
String, nullable=True, comment="Decision Book Project UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -932,29 +933,37 @@ class BuildDecisionBookLegal(CrudCollection):
|
||||||
__tablename__ = "build_decision_book_legal"
|
__tablename__ = "build_decision_book_legal"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
period_start_date = mapped_column(
|
period_start_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, nullable=False, comment="Start Date of Legal Period"
|
TIMESTAMP, nullable=False, comment="Start Date of Legal Period"
|
||||||
)
|
)
|
||||||
lawsuits_decision_number = mapped_column(
|
lawsuits_decision_number: Mapped[str] = mapped_column(
|
||||||
String, nullable=False, comment="Lawsuits Decision Number"
|
String, nullable=False, comment="Lawsuits Decision Number"
|
||||||
)
|
)
|
||||||
lawsuits_decision_date = mapped_column(
|
lawsuits_decision_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, nullable=False, comment="Lawsuits Decision Date"
|
TIMESTAMP, nullable=False, comment="Lawsuits Decision Date"
|
||||||
)
|
)
|
||||||
|
|
||||||
period_stop_date = mapped_column(TIMESTAMP, server_default="2099-12-31 23:59:59")
|
period_stop_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
decision_book_pdf_path: Mapped[str] = mapped_column(String(128))
|
TIMESTAMP, server_default="2099-12-31 23:59:59"
|
||||||
resp_company_total_wage: Mapped[float] = mapped_column(
|
|
||||||
Numeric(10, 2), server_default="0"
|
|
||||||
)
|
)
|
||||||
contact_agreement_path = mapped_column(String(128))
|
decision_book_pdf_path: Mapped[str] = mapped_column(
|
||||||
contact_agreement_date = mapped_column(
|
String, server_default="", nullable=True
|
||||||
|
)
|
||||||
|
resp_company_total_wage: Mapped[float] = mapped_column(
|
||||||
|
Numeric(10, 2), server_default="0", nullable=True
|
||||||
|
)
|
||||||
|
contact_agreement_path: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", nullable=True
|
||||||
|
)
|
||||||
|
contact_agreement_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
|
TIMESTAMP, server_default="1900-01-01 00:00:00", nullable=True
|
||||||
|
)
|
||||||
|
meeting_date: Mapped[str] = mapped_column(
|
||||||
TIMESTAMP, server_default="1900-01-01 00:00:00"
|
TIMESTAMP, server_default="1900-01-01 00:00:00"
|
||||||
)
|
)
|
||||||
meeting_date = mapped_column(TIMESTAMP, server_default="1900-01-01 00:00:00")
|
lawsuits_type: Mapped[str] = mapped_column(String(1), server_default="C")
|
||||||
lawsuits_type = mapped_column(String(1), server_default="C")
|
lawsuits_name: Mapped[str] = mapped_column(String(128))
|
||||||
lawsuits_name = mapped_column(String(128))
|
lawsuits_note: Mapped[str] = mapped_column(String(512))
|
||||||
lawsuits_note = mapped_column(String(512))
|
|
||||||
lawyer_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
lawyer_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
||||||
mediator_lawyer_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
mediator_lawyer_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
||||||
other_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
other_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
||||||
|
|
@ -962,22 +971,24 @@ class BuildDecisionBookLegal(CrudCollection):
|
||||||
approved_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
approved_cost: Mapped[float] = mapped_column(Numeric(20, 2))
|
||||||
total_price: Mapped[float] = mapped_column(Numeric(20, 2))
|
total_price: Mapped[float] = mapped_column(Numeric(20, 2))
|
||||||
|
|
||||||
build_db_item_id = mapped_column(
|
build_db_item_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_items.id"), nullable=False
|
ForeignKey("build_decision_book_items.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_db_item_uu_id = mapped_column(
|
build_db_item_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Item UUID"
|
String, nullable=True, comment="Decision Book Item UUID"
|
||||||
)
|
)
|
||||||
resp_attorney_id: Mapped[int] = mapped_column(
|
resp_attorney_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("people.id"), nullable=False
|
ForeignKey("people.id"), nullable=False
|
||||||
)
|
)
|
||||||
resp_attorney_uu_id = mapped_column(String, nullable=True, comment="Attorney UUID")
|
resp_attorney_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Attorney UUID"
|
||||||
|
)
|
||||||
resp_attorney_company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
resp_attorney_company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
||||||
resp_attorney_company_uu_id = mapped_column(
|
resp_attorney_company_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Company UUID"
|
String, nullable=True, comment="Company UUID"
|
||||||
)
|
)
|
||||||
mediator_lawyer_person_id: Mapped[int] = mapped_column(ForeignKey("people.id"))
|
mediator_lawyer_person_id: Mapped[int] = mapped_column(ForeignKey("people.id"))
|
||||||
mediator_lawyer_person_uu_id = mapped_column(
|
mediator_lawyer_person_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Mediator Lawyer UUID"
|
String, nullable=True, comment="Mediator Lawyer UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -998,60 +1009,70 @@ class BuildDecisionBookProjects(CrudCollection):
|
||||||
__tablename__ = "build_decision_book_projects"
|
__tablename__ = "build_decision_book_projects"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
project_no = mapped_column(
|
project_no: Mapped[str] = mapped_column(
|
||||||
String(12), nullable=True, comment="Project Number of Decision Book"
|
String(12), nullable=True, comment="Project Number of Decision Book"
|
||||||
)
|
)
|
||||||
project_name = mapped_column(String, nullable=False, comment="Project Name")
|
project_name: Mapped[str] = mapped_column(
|
||||||
project_start_date = mapped_column(
|
String, nullable=False, comment="Project Name"
|
||||||
|
)
|
||||||
|
project_start_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, nullable=False, comment="Project Start Date"
|
TIMESTAMP, nullable=False, comment="Project Start Date"
|
||||||
)
|
)
|
||||||
|
|
||||||
project_stop_date = mapped_column(TIMESTAMP, server_default="2099-12-31 23:59:59")
|
project_stop_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
project_type = mapped_column(String, server_default="C")
|
TIMESTAMP, server_default="2099-12-31 23:59:59"
|
||||||
project_note = mapped_column(Text)
|
)
|
||||||
|
project_type: Mapped[str] = mapped_column(String, server_default="C")
|
||||||
|
project_note: Mapped[str] = mapped_column(Text)
|
||||||
|
|
||||||
decision_book_pdf_path = mapped_column(String)
|
decision_book_pdf_path: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", nullable=True
|
||||||
|
)
|
||||||
|
|
||||||
resp_company_fix_wage: Mapped[float] = mapped_column(
|
resp_company_fix_wage: Mapped[float] = mapped_column(
|
||||||
Numeric(10, 2), server_default="0"
|
Numeric(10, 2), server_default="0"
|
||||||
)
|
)
|
||||||
is_out_sourced: Mapped[bool] = mapped_column(Boolean, server_default="0")
|
is_out_sourced: Mapped[bool] = mapped_column(Boolean, server_default="0")
|
||||||
contact_id = mapped_column(
|
contact_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("contracts.id"), nullable=True, comment="Contract id"
|
ForeignKey("contracts.id"), nullable=True, comment="Contract id"
|
||||||
)
|
)
|
||||||
contact_uu_id = mapped_column(String, nullable=True, comment="Contract UUID")
|
contact_uu_id: Mapped[str] = mapped_column(
|
||||||
meeting_date = mapped_column(
|
String, nullable=True, comment="Contract UUID"
|
||||||
|
)
|
||||||
|
meeting_date: Mapped[TIMESTAMP] = mapped_column(
|
||||||
TIMESTAMP, server_default="1900-01-01 00:00:00", index=True
|
TIMESTAMP, server_default="1900-01-01 00:00:00", index=True
|
||||||
)
|
)
|
||||||
currency = mapped_column(String(8), server_default="TRY")
|
currency: Mapped[float] = mapped_column(String(8), server_default="TRY")
|
||||||
bid_price: Mapped[float] = mapped_column(Numeric(16, 4), server_default="0")
|
bid_price: Mapped[float] = mapped_column(Numeric(16, 4), server_default="0")
|
||||||
approved_price: Mapped[float] = mapped_column(Numeric(16, 4), server_default="0")
|
approved_price: Mapped[float] = mapped_column(Numeric(16, 4), server_default="0")
|
||||||
final_price: Mapped[float] = mapped_column(Numeric(16, 4), server_default="0")
|
final_price: Mapped[float] = mapped_column(Numeric(16, 4), server_default="0")
|
||||||
|
|
||||||
build_decision_book_id = mapped_column(
|
build_decision_book_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book.id"), nullable=False
|
ForeignKey("build_decision_book.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_uu_id = mapped_column(
|
build_decision_book_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book UUID"
|
String, nullable=True, comment="Decision Book UUID"
|
||||||
)
|
)
|
||||||
build_decision_book_item_id = mapped_column(
|
build_decision_book_item_id = mapped_column(
|
||||||
ForeignKey("build_decision_book_items.id"), nullable=False
|
ForeignKey("build_decision_book_items.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_item_uu_id = mapped_column(
|
build_decision_book_item_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Item UUID"
|
String, nullable=True, comment="Decision Book Item UUID"
|
||||||
)
|
)
|
||||||
project_response_living_space_id = mapped_column(
|
project_response_living_space_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_living_space.id"),
|
ForeignKey("build_living_space.id"),
|
||||||
nullable=True,
|
nullable=True,
|
||||||
comment="Project Response Person ID",
|
comment="Project Response Person ID",
|
||||||
)
|
)
|
||||||
project_response_living_space_uu_id = mapped_column(
|
project_response_living_space_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Project Response Person UUID"
|
String, nullable=True, comment="Project Response Person UUID"
|
||||||
)
|
)
|
||||||
resp_company_id: Mapped[int] = mapped_column(
|
resp_company_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("companies.id"), nullable=True
|
ForeignKey("companies.id"), nullable=True
|
||||||
)
|
)
|
||||||
resp_company_uu_id = mapped_column(String, nullable=True, comment="Company UUID")
|
resp_company_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Company UUID"
|
||||||
|
)
|
||||||
|
|
||||||
build_decision_book_item: Mapped["BuildDecisionBookItems"] = relationship(
|
build_decision_book_item: Mapped["BuildDecisionBookItems"] = relationship(
|
||||||
"BuildDecisionBookItems",
|
"BuildDecisionBookItems",
|
||||||
|
|
@ -1070,9 +1091,7 @@ class BuildDecisionBookProjects(CrudCollection):
|
||||||
related_companies_ids = list(
|
related_companies_ids = list(
|
||||||
related_.id for related_ in related_companies.all()
|
related_.id for related_ in related_companies.all()
|
||||||
)
|
)
|
||||||
related_building = Build.filter_all(
|
related_building = Build.filter_all(Build.company_id.in_(related_companies_ids))
|
||||||
Build.company_id.in_(related_companies_ids)
|
|
||||||
)
|
|
||||||
related_building_ids = list(related_.id for related_ in related_building.data)
|
related_building_ids = list(related_.id for related_ in related_building.data)
|
||||||
related_decision_books = BuildDecisionBook.filter_all(
|
related_decision_books = BuildDecisionBook.filter_all(
|
||||||
BuildDecisionBook.build_id.in_(related_building_ids),
|
BuildDecisionBook.build_id.in_(related_building_ids),
|
||||||
|
|
@ -1153,30 +1172,30 @@ class BuildDecisionBookProjectPerson(CrudCollection):
|
||||||
|
|
||||||
__tablename__ = "build_decision_book_project_person"
|
__tablename__ = "build_decision_book_project_person"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
__enum_list__ = [("management_typecode", "ProjectTeamTypes", "PTT-EMP")]
|
# __enum_list__ = [("management_typecode", "ProjectTeamTypes", "PTT-EMP")]
|
||||||
|
|
||||||
dues_percent_discount = mapped_column(SmallInteger, server_default="0")
|
dues_percent_discount: Mapped[int] = mapped_column(SmallInteger, server_default="0")
|
||||||
job_fix_wage: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
job_fix_wage: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
||||||
bid_price: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
bid_price: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
||||||
decision_price: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
decision_price: Mapped[float] = mapped_column(Numeric(10, 2), server_default="0")
|
||||||
|
|
||||||
build_decision_book_project_id = mapped_column(
|
build_decision_book_project_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_decision_book_projects.id"), nullable=False
|
ForeignKey("build_decision_book_projects.id"), nullable=False
|
||||||
)
|
)
|
||||||
build_decision_book_project_uu_id = mapped_column(
|
build_decision_book_project_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Decision Book Project UUID"
|
String, nullable=True, comment="Decision Book Project UUID"
|
||||||
)
|
)
|
||||||
living_space_id: Mapped[int] = mapped_column(
|
living_space_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("build_living_space.id"), nullable=False
|
ForeignKey("build_living_space.id"), nullable=False
|
||||||
)
|
)
|
||||||
living_space_uu_id = mapped_column(
|
living_space_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Living Space UUID"
|
String, nullable=True, comment="Living Space UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
project_team_type_id = mapped_column(
|
project_team_type_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("api_enum_dropdown.id"), nullable=True
|
ForeignKey("api_enum_dropdown.id"), nullable=True
|
||||||
)
|
)
|
||||||
project_team_type_uu_id = mapped_column(
|
project_team_type_uu_id: Mapped[str] = mapped_column(
|
||||||
String, nullable=True, comment="Management Type UUID"
|
String, nullable=True, comment="Management Type UUID"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ class CrudMixin(Base, SmartQueryMixin, SessionMixin, FilterAttributes):
|
||||||
key_ = cls.__annotations__.get(key, None)
|
key_ = cls.__annotations__.get(key, None)
|
||||||
is_primary, value_type = key in cls.primary_keys, type(val)
|
is_primary, value_type = key in cls.primary_keys, type(val)
|
||||||
row_attr = bool(getattr(getattr(cls, key), "foreign_keys", None))
|
row_attr = bool(getattr(getattr(cls, key), "foreign_keys", None))
|
||||||
if is_primary or row_attr and key_ == Mapped[int]:
|
if is_primary or row_attr:
|
||||||
return False, None
|
return False, None
|
||||||
elif val is None:
|
elif val is None:
|
||||||
return True, None
|
return True, None
|
||||||
|
|
@ -136,12 +136,16 @@ class CrudMixin(Base, SmartQueryMixin, SessionMixin, FilterAttributes):
|
||||||
elif key_ == Mapped[int]:
|
elif key_ == Mapped[int]:
|
||||||
return True, int(val)
|
return True, int(val)
|
||||||
elif key_ == Mapped[TIMESTAMP]:
|
elif key_ == Mapped[TIMESTAMP]:
|
||||||
return True, str(client_arrow.get(str(val)).format("DD-MM-YYYY HH:mm:ss"))
|
return True, str(
|
||||||
|
client_arrow.get(str(val)).format("DD-MM-YYYY HH:mm:ss")
|
||||||
|
)
|
||||||
elif key_ == Mapped[str]:
|
elif key_ == Mapped[str]:
|
||||||
return True, str(val)
|
return True, str(val)
|
||||||
else:
|
else:
|
||||||
if isinstance(val, datetime.datetime):
|
if isinstance(val, datetime.datetime):
|
||||||
return True, str(client_arrow.get(str(val)).format("DD-MM-YYYY HH:mm:ss"))
|
return True, str(
|
||||||
|
client_arrow.get(str(val)).format("DD-MM-YYYY HH:mm:ss")
|
||||||
|
)
|
||||||
elif isinstance(value_type, bool):
|
elif isinstance(value_type, bool):
|
||||||
return True, bool(val)
|
return True, bool(val)
|
||||||
elif isinstance(value_type, float) or isinstance(value_type, Decimal):
|
elif isinstance(value_type, float) or isinstance(value_type, Decimal):
|
||||||
|
|
@ -241,12 +245,12 @@ class CrudMixin(Base, SmartQueryMixin, SessionMixin, FilterAttributes):
|
||||||
exclude_list = [
|
exclude_list = [
|
||||||
element
|
element
|
||||||
for element in self.__system_default_model__
|
for element in self.__system_default_model__
|
||||||
if str(element)[-2:] == "id" and str(element)[-5:].lower() == 'uu_id'
|
if str(element)[-2:] == "id" and str(element)[-5:].lower() == "uu_id"
|
||||||
]
|
]
|
||||||
columns_include_list = list(set(include).difference(set(exclude_list)))
|
columns_include_list = list(set(include).difference(set(exclude_list)))
|
||||||
# columns_include_list.extend([column for column in self.columns if str(column)[-5:].lower() == 'uu_id'])
|
# columns_include_list.extend([column for column in self.columns if str(column)[-5:].lower() == 'uu_id'])
|
||||||
|
|
||||||
columns_include_list.extend(['uu_id'])
|
columns_include_list.extend(["uu_id"])
|
||||||
for key in list(columns_include_list):
|
for key in list(columns_include_list):
|
||||||
val = getattr(self, key)
|
val = getattr(self, key)
|
||||||
correct, value_of_database = self.iterate_over_variables(val, key)
|
correct, value_of_database = self.iterate_over_variables(val, key)
|
||||||
|
|
@ -265,7 +269,7 @@ class CrudMixin(Base, SmartQueryMixin, SessionMixin, FilterAttributes):
|
||||||
)
|
)
|
||||||
columns_excluded_list = list(set(self.columns).difference(set(exclude)))
|
columns_excluded_list = list(set(self.columns).difference(set(exclude)))
|
||||||
# columns_excluded_list.extend([column for column in self.columns if str(column)[-5:].lower() == 'uu_id'])
|
# columns_excluded_list.extend([column for column in self.columns if str(column)[-5:].lower() == 'uu_id'])
|
||||||
columns_excluded_list.extend(['uu_id', 'active'])
|
columns_excluded_list.extend(["uu_id", "active"])
|
||||||
|
|
||||||
for key in list(columns_excluded_list):
|
for key in list(columns_excluded_list):
|
||||||
val = getattr(self, key)
|
val = getattr(self, key)
|
||||||
|
|
@ -280,7 +284,13 @@ class CrudMixin(Base, SmartQueryMixin, SessionMixin, FilterAttributes):
|
||||||
columns_list = [
|
columns_list = [
|
||||||
columns for columns in columns_list if str(columns)[-2:] != "id"
|
columns for columns in columns_list if str(columns)[-2:] != "id"
|
||||||
]
|
]
|
||||||
columns_list.extend([column for column in self.columns if str(column)[-5:].lower() == 'uu_id'])
|
columns_list.extend(
|
||||||
|
[
|
||||||
|
column
|
||||||
|
for column in self.columns
|
||||||
|
if str(column)[-5:].lower() == "uu_id"
|
||||||
|
]
|
||||||
|
)
|
||||||
for remove_field in self.__system_default_model__:
|
for remove_field in self.__system_default_model__:
|
||||||
if remove_field in columns_list:
|
if remove_field in columns_list:
|
||||||
columns_list.remove(remove_field)
|
columns_list.remove(remove_field)
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,7 @@ class Modules(CrudCollection):
|
||||||
is_default_module = mapped_column(Boolean, server_default="0")
|
is_default_module = mapped_column(Boolean, server_default="0")
|
||||||
|
|
||||||
def retrieve_services(self):
|
def retrieve_services(self):
|
||||||
services = Services.filter_all(
|
services = Services.filter_all(Services.module_id == self.id).data
|
||||||
Services.module_id == self.id
|
|
||||||
).data
|
|
||||||
if not services:
|
if not services:
|
||||||
self.raise_http_exception(
|
self.raise_http_exception(
|
||||||
status_code="HTTP_404_NOT_FOUND",
|
status_code="HTTP_404_NOT_FOUND",
|
||||||
|
|
@ -145,13 +143,9 @@ class Event2Employee(CrudCollection):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_event_id_by_employee_id(cls, employee_id) -> (list, list):
|
def get_event_id_by_employee_id(cls, employee_id) -> (list, list):
|
||||||
active_events = cls.filter_all(
|
active_events = cls.filter_all(cls.employee_id == employee_id)
|
||||||
cls.employee_id == employee_id
|
|
||||||
)
|
|
||||||
active_events_id = [event.event_id for event in active_events.data]
|
active_events_id = [event.event_id for event in active_events.data]
|
||||||
active_events = Events.filter_all(
|
active_events = Events.filter_all(Events.id.in_(active_events_id))
|
||||||
Events.id.in_(active_events_id)
|
|
||||||
)
|
|
||||||
active_events_uu_id = [str(event.uu_id) for event in active_events.data]
|
active_events_uu_id = [str(event.uu_id) for event in active_events.data]
|
||||||
return active_events_id, active_events_uu_id
|
return active_events_id, active_events_uu_id
|
||||||
|
|
||||||
|
|
@ -191,9 +185,7 @@ class Event2Occupant(CrudCollection):
|
||||||
cls.build_living_space_id == build_living_space_id,
|
cls.build_living_space_id == build_living_space_id,
|
||||||
).data
|
).data
|
||||||
active_events_id = [event.event_id for event in active_events]
|
active_events_id = [event.event_id for event in active_events]
|
||||||
active_events = Events.filter_all(
|
active_events = Events.filter_all(Events.id.in_(active_events_id)).data
|
||||||
Events.id.in_(active_events_id)
|
|
||||||
).data
|
|
||||||
active_events_uu_id = [str(event.uu_id) for event in active_events]
|
active_events_uu_id = [str(event.uu_id) for event in active_events]
|
||||||
return active_events_id, active_events_uu_id
|
return active_events_id, active_events_uu_id
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -136,10 +136,11 @@ class Users(CrudCollection, UserLoginModule, SelectAction):
|
||||||
return getattr(self.priority, "priority_code", 0) == 0
|
return getattr(self.priority, "priority_code", 0) == 0
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create_action(cls, create_user: InsertUsers):
|
def create_action(cls, create_user: InsertUsers, token_dict):
|
||||||
found_person = People.filter_one(
|
found_person = People.filter_one(
|
||||||
People.uu_id == create_user.people_uu_id,
|
People.uu_id == create_user.people_uu_id,
|
||||||
).data
|
).data
|
||||||
|
|
||||||
if not found_person:
|
if not found_person:
|
||||||
raise HTTPException(status_code=400, detail="Person not found.")
|
raise HTTPException(status_code=400, detail="Person not found.")
|
||||||
if (
|
if (
|
||||||
|
|
@ -156,8 +157,9 @@ class Users(CrudCollection, UserLoginModule, SelectAction):
|
||||||
del create_dict["people_uu_id"]
|
del create_dict["people_uu_id"]
|
||||||
create_dict["person_id"] = found_person.id
|
create_dict["person_id"] = found_person.id
|
||||||
create_dict["person_uu_id"] = str(found_person.uu_id)
|
create_dict["person_uu_id"] = str(found_person.uu_id)
|
||||||
|
create_dict["related_company"] = token_dict.selected_company.company_uu_id
|
||||||
created_user = cls.find_or_create(**create_dict)
|
created_user = cls.find_or_create(**create_dict)
|
||||||
created_user.reset_password_token()
|
created_user.reset_password_token(found_user=created_user)
|
||||||
return created_user
|
return created_user
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -182,7 +184,7 @@ class Users(CrudCollection, UserLoginModule, SelectAction):
|
||||||
from databases import Employees, Duties
|
from databases import Employees, Duties
|
||||||
|
|
||||||
found_person = People.filter_one(
|
found_person = People.filter_one(
|
||||||
People.id==self.person_id,
|
People.id == self.person_id,
|
||||||
)
|
)
|
||||||
found_employees = Employees.filter_by_active(
|
found_employees = Employees.filter_by_active(
|
||||||
people_id=found_person.id, is_confirmed=True
|
people_id=found_person.id, is_confirmed=True
|
||||||
|
|
@ -416,8 +418,12 @@ class AddressPostcode(CrudCollection, SelectActionWithEmployee):
|
||||||
__many__table__ = RelationshipEmployee2PostCode
|
__many__table__ = RelationshipEmployee2PostCode
|
||||||
|
|
||||||
street_id: Mapped[int] = mapped_column(ForeignKey("address_street.id"))
|
street_id: Mapped[int] = mapped_column(ForeignKey("address_street.id"))
|
||||||
street_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="Street UUID")
|
street_uu_id: Mapped[str] = mapped_column(
|
||||||
postcode: Mapped[str] = mapped_column(String(32), nullable=False, comment="Postcode")
|
String, server_default="", comment="Street UUID"
|
||||||
|
)
|
||||||
|
postcode: Mapped[str] = mapped_column(
|
||||||
|
String(32), nullable=False, comment="Postcode"
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = ({"comment": "Postcode Information"},)
|
__table_args__ = ({"comment": "Postcode Information"},)
|
||||||
|
|
||||||
|
|
@ -456,10 +462,12 @@ class Addresses(CrudCollection):
|
||||||
street_id: Mapped[int] = mapped_column(
|
street_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("address_street.id"), nullable=False
|
ForeignKey("address_street.id"), nullable=False
|
||||||
)
|
)
|
||||||
street_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="Street UUID")
|
street_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="Street UUID"
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def list_via_employee(cls, token_dict, filter_expr = None):
|
def list_via_employee(cls, token_dict, filter_expr=None):
|
||||||
post_code_list = RelationshipEmployee2PostCode.filter_all(
|
post_code_list = RelationshipEmployee2PostCode.filter_all(
|
||||||
RelationshipEmployee2PostCode.employee_id
|
RelationshipEmployee2PostCode.employee_id
|
||||||
== token_dict.selected_company.employee_id,
|
== token_dict.selected_company.employee_id,
|
||||||
|
|
@ -470,9 +478,7 @@ class Addresses(CrudCollection):
|
||||||
status_code=404,
|
status_code=404,
|
||||||
detail="User has no post code registered. User can not list addresses.",
|
detail="User has no post code registered. User can not list addresses.",
|
||||||
)
|
)
|
||||||
cls.pre_query = cls.filter_all(
|
cls.pre_query = cls.filter_all(cls.post_code_id.in_(post_code_id_list)).query
|
||||||
cls.post_code_id.in_(post_code_id_list)
|
|
||||||
).query
|
|
||||||
filter_cls = cls.filter_all(*filter_expr or [])
|
filter_cls = cls.filter_all(*filter_expr or [])
|
||||||
cls.pre_query = None
|
cls.pre_query = None
|
||||||
return filter_cls.data
|
return filter_cls.data
|
||||||
|
|
@ -527,9 +533,15 @@ class AddressGeographicLocations(CrudCollection):
|
||||||
__tablename__ = "address_geographic_locations"
|
__tablename__ = "address_geographic_locations"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
geo_table: Mapped[str] = mapped_column(String, nullable=False, comment="Address Table Name")
|
geo_table: Mapped[str] = mapped_column(
|
||||||
geo_id: Mapped[int] = mapped_column(Integer, nullable=False, comment="Address Table ID")
|
String, nullable=False, comment="Address Table Name"
|
||||||
geo_name: Mapped[str] = mapped_column(String, nullable=False, comment="Geographic Location Name")
|
)
|
||||||
|
geo_id: Mapped[int] = mapped_column(
|
||||||
|
Integer, nullable=False, comment="Address Table ID"
|
||||||
|
)
|
||||||
|
geo_name: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=False, comment="Geographic Location Name"
|
||||||
|
)
|
||||||
geo_latitude: Mapped[float] = mapped_column(
|
geo_latitude: Mapped[float] = mapped_column(
|
||||||
Numeric(20, 6), server_default="0", comment="Geographic Location Name"
|
Numeric(20, 6), server_default="0", comment="Geographic Location Name"
|
||||||
)
|
)
|
||||||
|
|
@ -572,10 +584,18 @@ class AddressCountry(CrudCollection):
|
||||||
__tablename__ = "address_country"
|
__tablename__ = "address_country"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
country_code: Mapped[str] = mapped_column(String(16), nullable=False, comment="Country Code")
|
country_code: Mapped[str] = mapped_column(
|
||||||
country_name: Mapped[str] = mapped_column(String, nullable=False, comment="Country Name")
|
String(16), nullable=False, comment="Country Code"
|
||||||
money_code: Mapped[str] = mapped_column(String(12), nullable=True, comment="Money Code")
|
)
|
||||||
language: Mapped[str] = mapped_column(String, nullable=True, comment="Language Code")
|
country_name: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=False, comment="Country Name"
|
||||||
|
)
|
||||||
|
money_code: Mapped[str] = mapped_column(
|
||||||
|
String(12), nullable=True, comment="Money Code"
|
||||||
|
)
|
||||||
|
language: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=True, comment="Language Code"
|
||||||
|
)
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
)
|
)
|
||||||
|
|
@ -595,17 +615,29 @@ class AddressState(CrudCollection):
|
||||||
__tablename__ = "address_state"
|
__tablename__ = "address_state"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
state_code: Mapped[str] = mapped_column(String(16), nullable=False, comment="State Code")
|
state_code: Mapped[str] = mapped_column(
|
||||||
state_name: Mapped[str] = mapped_column(String, nullable=False, comment="State Name")
|
String(16), nullable=False, comment="State Code"
|
||||||
licence_plate: Mapped[str] = mapped_column(String(24), nullable=True, comment="Sign Code")
|
)
|
||||||
phone_code: Mapped[str] = mapped_column(String(36), nullable=True, comment="Phone Code")
|
state_name: Mapped[str] = mapped_column(
|
||||||
gov_code: Mapped[str] = mapped_column(String(128), nullable=True, comment="Government Code")
|
String, nullable=False, comment="State Name"
|
||||||
|
)
|
||||||
|
licence_plate: Mapped[str] = mapped_column(
|
||||||
|
String(24), nullable=True, comment="Sign Code"
|
||||||
|
)
|
||||||
|
phone_code: Mapped[str] = mapped_column(
|
||||||
|
String(36), nullable=True, comment="Phone Code"
|
||||||
|
)
|
||||||
|
gov_code: Mapped[str] = mapped_column(
|
||||||
|
String(128), nullable=True, comment="Government Code"
|
||||||
|
)
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
)
|
)
|
||||||
|
|
||||||
country_id: Mapped[int] = mapped_column(ForeignKey("address_country.id"))
|
country_id: Mapped[int] = mapped_column(ForeignKey("address_country.id"))
|
||||||
country_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="Country UUID")
|
country_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="Country UUID"
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
@ -626,17 +658,27 @@ class AddressCity(CrudCollection):
|
||||||
__tablename__ = "address_city"
|
__tablename__ = "address_city"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
city_code: Mapped[str] = mapped_column(String(24), nullable=False, comment="City Code")
|
city_code: Mapped[str] = mapped_column(
|
||||||
|
String(24), nullable=False, comment="City Code"
|
||||||
|
)
|
||||||
city_name: Mapped[str] = mapped_column(String, nullable=False, comment="City Name")
|
city_name: Mapped[str] = mapped_column(String, nullable=False, comment="City Name")
|
||||||
licence_plate: Mapped[str] = mapped_column(String(24), nullable=True, comment="Sign Code")
|
licence_plate: Mapped[str] = mapped_column(
|
||||||
phone_code: Mapped[str] = mapped_column(String(36), nullable=True, comment="Phone Code")
|
String(24), nullable=True, comment="Sign Code"
|
||||||
gov_code: Mapped[str] = mapped_column(String(128), nullable=True, comment="Government Code")
|
)
|
||||||
|
phone_code: Mapped[str] = mapped_column(
|
||||||
|
String(36), nullable=True, comment="Phone Code"
|
||||||
|
)
|
||||||
|
gov_code: Mapped[str] = mapped_column(
|
||||||
|
String(128), nullable=True, comment="Government Code"
|
||||||
|
)
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
)
|
)
|
||||||
|
|
||||||
state_id: Mapped[int] = mapped_column(ForeignKey("address_state.id"))
|
state_id: Mapped[int] = mapped_column(ForeignKey("address_state.id"))
|
||||||
state_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="State UUID")
|
state_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="State UUID"
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
@ -657,10 +699,18 @@ class AddressDistrict(CrudCollection):
|
||||||
__tablename__ = "address_district"
|
__tablename__ = "address_district"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
district_code: Mapped[str] = mapped_column(String(16), nullable=False, comment="District Code")
|
district_code: Mapped[str] = mapped_column(
|
||||||
district_name: Mapped[str] = mapped_column(String, nullable=False, comment="District Name")
|
String(16), nullable=False, comment="District Code"
|
||||||
phone_code: Mapped[str] = mapped_column(String(36), nullable=True, comment="Phone Code")
|
)
|
||||||
gov_code: Mapped[str] = mapped_column(String(128), nullable=True, comment="Government Code")
|
district_name: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=False, comment="District Name"
|
||||||
|
)
|
||||||
|
phone_code: Mapped[str] = mapped_column(
|
||||||
|
String(36), nullable=True, comment="Phone Code"
|
||||||
|
)
|
||||||
|
gov_code: Mapped[str] = mapped_column(
|
||||||
|
String(128), nullable=True, comment="Government Code"
|
||||||
|
)
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
)
|
)
|
||||||
|
|
@ -668,7 +718,9 @@ class AddressDistrict(CrudCollection):
|
||||||
city_id: Mapped[int] = mapped_column(
|
city_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("address_city.id"), nullable=False, comment="City ID"
|
ForeignKey("address_city.id"), nullable=False, comment="City ID"
|
||||||
)
|
)
|
||||||
city_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="City UUID")
|
city_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="City UUID"
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
@ -689,11 +741,19 @@ class AddressLocality(CrudCollection):
|
||||||
__tablename__ = "address_locality"
|
__tablename__ = "address_locality"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
locality_code: Mapped[str] = mapped_column(String(16), nullable=False, comment="Locality Code")
|
locality_code: Mapped[str] = mapped_column(
|
||||||
locality_name: Mapped[str] = mapped_column(String, nullable=False, comment="Locality Name")
|
String(16), nullable=False, comment="Locality Code"
|
||||||
|
)
|
||||||
|
locality_name: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=False, comment="Locality Name"
|
||||||
|
)
|
||||||
type_code: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
type_code: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
||||||
type_description: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
type_description: Mapped[str] = mapped_column(
|
||||||
gov_code: Mapped[str] = mapped_column(String(128), nullable=True, comment="Government Code")
|
String, nullable=True, comment="Type Name"
|
||||||
|
)
|
||||||
|
gov_code: Mapped[str] = mapped_column(
|
||||||
|
String(128), nullable=True, comment="Government Code"
|
||||||
|
)
|
||||||
address_show: Mapped[bool] = mapped_column(Boolean, server_default="1")
|
address_show: Mapped[bool] = mapped_column(Boolean, server_default="1")
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
|
|
@ -702,7 +762,9 @@ class AddressLocality(CrudCollection):
|
||||||
district_id: Mapped[int] = mapped_column(
|
district_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("address_district.id"), nullable=False, comment="District ID"
|
ForeignKey("address_district.id"), nullable=False, comment="District ID"
|
||||||
)
|
)
|
||||||
district_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="District UUID")
|
district_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="District UUID"
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
@ -730,8 +792,12 @@ class AddressNeighborhood(CrudCollection):
|
||||||
String, nullable=False, comment="Neighborhood Name"
|
String, nullable=False, comment="Neighborhood Name"
|
||||||
)
|
)
|
||||||
type_code: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
type_code: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
||||||
type_description: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
type_description: Mapped[str] = mapped_column(
|
||||||
gov_code: Mapped[str] = mapped_column(String(128), nullable=True, comment="Government Code")
|
String, nullable=True, comment="Type Name"
|
||||||
|
)
|
||||||
|
gov_code: Mapped[str] = mapped_column(
|
||||||
|
String(128), nullable=True, comment="Government Code"
|
||||||
|
)
|
||||||
address_show: Mapped[bool] = mapped_column(Boolean, server_default="1")
|
address_show: Mapped[bool] = mapped_column(Boolean, server_default="1")
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
|
|
@ -740,11 +806,15 @@ class AddressNeighborhood(CrudCollection):
|
||||||
district_id: Mapped[int] = mapped_column(
|
district_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("address_district.id"), nullable=True, comment="District ID"
|
ForeignKey("address_district.id"), nullable=True, comment="District ID"
|
||||||
)
|
)
|
||||||
district_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="District UUID")
|
district_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="District UUID"
|
||||||
|
)
|
||||||
locality_id: Mapped[int] = mapped_column(
|
locality_id: Mapped[int] = mapped_column(
|
||||||
ForeignKey("address_locality.id"), nullable=True, comment="Locality ID"
|
ForeignKey("address_locality.id"), nullable=True, comment="Locality ID"
|
||||||
)
|
)
|
||||||
locality_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="Locality UUID")
|
locality_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="Locality UUID"
|
||||||
|
)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
Index(
|
Index(
|
||||||
|
|
@ -765,11 +835,19 @@ class AddressStreet(CrudCollection):
|
||||||
__tablename__ = "address_street"
|
__tablename__ = "address_street"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
street_code: Mapped[str] = mapped_column(String(16), nullable=False, comment="Street Code")
|
street_code: Mapped[str] = mapped_column(
|
||||||
street_name: Mapped[str] = mapped_column(String, nullable=False, comment="Street Name")
|
String(16), nullable=False, comment="Street Code"
|
||||||
|
)
|
||||||
|
street_name: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=False, comment="Street Name"
|
||||||
|
)
|
||||||
type_code: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
type_code: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
||||||
type_description: Mapped[str] = mapped_column(String, nullable=True, comment="Type Name")
|
type_description: Mapped[str] = mapped_column(
|
||||||
gov_code: Mapped[str] = mapped_column(String(128), nullable=True, comment="Government Code")
|
String, nullable=True, comment="Type Name"
|
||||||
|
)
|
||||||
|
gov_code: Mapped[str] = mapped_column(
|
||||||
|
String(128), nullable=True, comment="Government Code"
|
||||||
|
)
|
||||||
|
|
||||||
address_geographic_id: Mapped[int] = mapped_column(
|
address_geographic_id: Mapped[int] = mapped_column(
|
||||||
BigInteger, nullable=True, comment="Address Geographic Id"
|
BigInteger, nullable=True, comment="Address Geographic Id"
|
||||||
|
|
@ -858,7 +936,9 @@ class OccupantTypes(CrudCollection):
|
||||||
__tablename__ = "occupant_types"
|
__tablename__ = "occupant_types"
|
||||||
__exclude__fields__ = []
|
__exclude__fields__ = []
|
||||||
|
|
||||||
occupant_type: Mapped[str] = mapped_column(String, nullable=False, comment="Occupant Type")
|
occupant_type: Mapped[str] = mapped_column(
|
||||||
|
String, nullable=False, comment="Occupant Type"
|
||||||
|
)
|
||||||
occupant_description: Mapped[str] = mapped_column(String, server_default="")
|
occupant_description: Mapped[str] = mapped_column(String, server_default="")
|
||||||
occupant_code: Mapped[str] = mapped_column(String, server_default="")
|
occupant_code: Mapped[str] = mapped_column(String, server_default="")
|
||||||
occupant_category: Mapped[str] = mapped_column(String, server_default="")
|
occupant_category: Mapped[str] = mapped_column(String, server_default="")
|
||||||
|
|
@ -908,11 +988,19 @@ class Contracts(CrudCollection):
|
||||||
"expire start is the start date of the contract, expire en is the end date of the contract.",
|
"expire start is the start date of the contract, expire en is the end date of the contract.",
|
||||||
)
|
)
|
||||||
|
|
||||||
company_id: Mapped[int] = mapped_column(Integer, ForeignKey("companies.id"), nullable=True)
|
company_id: Mapped[int] = mapped_column(
|
||||||
company_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="Company UUID")
|
Integer, ForeignKey("companies.id"), nullable=True
|
||||||
|
)
|
||||||
|
company_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="Company UUID"
|
||||||
|
)
|
||||||
|
|
||||||
person_id: Mapped[int] = mapped_column(Integer, ForeignKey("people.id"), nullable=True)
|
person_id: Mapped[int] = mapped_column(
|
||||||
person_uu_id: Mapped[str] = mapped_column(String, server_default="", comment="Person UUID")
|
Integer, ForeignKey("people.id"), nullable=True
|
||||||
|
)
|
||||||
|
person_uu_id: Mapped[str] = mapped_column(
|
||||||
|
String, server_default="", comment="Person UUID"
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def retrieve_contact_no(cls):
|
def retrieve_contact_no(cls):
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@ class ApiEnumDropdown(CrudCollection):
|
||||||
def get_debit_search(cls, search_debit: str = None, search_uu_id: str = None):
|
def get_debit_search(cls, search_debit: str = None, search_uu_id: str = None):
|
||||||
if search_uu_id:
|
if search_uu_id:
|
||||||
if search := cls.filter_one(
|
if search := cls.filter_one(
|
||||||
cls.enum_class.in_(["DebitTypes"]), cls.uu_id == search_uu_id, system=True
|
cls.enum_class.in_(["DebitTypes"]),
|
||||||
|
cls.uu_id == search_uu_id,
|
||||||
|
system=True,
|
||||||
).data:
|
).data:
|
||||||
return search
|
return search
|
||||||
elif search_debit:
|
elif search_debit:
|
||||||
|
|
@ -45,16 +47,14 @@ class ApiEnumDropdown(CrudCollection):
|
||||||
cls.enum_class.in_(["DebitTypes"]), cls.key == search_debit, system=True
|
cls.enum_class.in_(["DebitTypes"]), cls.key == search_debit, system=True
|
||||||
).data:
|
).data:
|
||||||
return search
|
return search
|
||||||
return cls.filter_all(
|
return cls.filter_all(cls.enum_class.in_(["DebitTypes"]), system=True).data
|
||||||
cls.enum_class.in_(["DebitTypes"]), system=True
|
|
||||||
).data
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_due_types(cls):
|
def get_due_types(cls):
|
||||||
if due_list := cls.filter_all(
|
if due_list := cls.filter_all(
|
||||||
cls.enum_class == "BuildDuesTypes",
|
cls.enum_class == "BuildDuesTypes",
|
||||||
cls.key.in_(["BDT-A", "BDT-D"]),
|
cls.key.in_(["BDT-A", "BDT-D"]),
|
||||||
system=True
|
system=True,
|
||||||
).data:
|
).data:
|
||||||
return [due.uu_id.__str__() for due in due_list]
|
return [due.uu_id.__str__() for due in due_list]
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -66,20 +66,19 @@ class ApiEnumDropdown(CrudCollection):
|
||||||
def due_type_search(cls, search_management: str = None, search_uu_id: str = None):
|
def due_type_search(cls, search_management: str = None, search_uu_id: str = None):
|
||||||
if search_uu_id:
|
if search_uu_id:
|
||||||
if search := cls.filter_one(
|
if search := cls.filter_one(
|
||||||
cls.enum_class.in_(["BuildDuesTypes"]), cls.uu_id == search_uu_id,
|
cls.enum_class.in_(["BuildDuesTypes"]),
|
||||||
system=True
|
cls.uu_id == search_uu_id,
|
||||||
|
system=True,
|
||||||
).data:
|
).data:
|
||||||
return search
|
return search
|
||||||
elif search_management:
|
elif search_management:
|
||||||
if search := cls.filter_one(
|
if search := cls.filter_one(
|
||||||
cls.enum_class.in_(["BuildDuesTypes"]), cls.key == search_management,
|
cls.enum_class.in_(["BuildDuesTypes"]),
|
||||||
system=True
|
cls.key == search_management,
|
||||||
|
system=True,
|
||||||
).data:
|
).data:
|
||||||
return search
|
return search
|
||||||
return cls.filter_all(
|
return cls.filter_all(cls.enum_class.in_(["BuildDuesTypes"]), system=True).data
|
||||||
cls.enum_class.in_(["BuildDuesTypes"]),
|
|
||||||
system=True
|
|
||||||
).data
|
|
||||||
|
|
||||||
def get_enum_dict(self):
|
def get_enum_dict(self):
|
||||||
return {
|
return {
|
||||||
|
|
@ -94,7 +93,9 @@ class ApiEnumDropdown(CrudCollection):
|
||||||
def uuid_of_enum(cls, enum_class: str, key: str):
|
def uuid_of_enum(cls, enum_class: str, key: str):
|
||||||
return str(
|
return str(
|
||||||
getattr(
|
getattr(
|
||||||
cls.filter_one(cls.enum_class == enum_class, cls.key == key, system=True).data,
|
cls.filter_one(
|
||||||
|
cls.enum_class == enum_class, cls.key == key, system=True
|
||||||
|
).data,
|
||||||
"uu_id",
|
"uu_id",
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ engine_config = {
|
||||||
"pool_size": 10,
|
"pool_size": 10,
|
||||||
"max_overflow": 0,
|
"max_overflow": 0,
|
||||||
"echo": False,
|
"echo": False,
|
||||||
"isolation_level": "READ COMMITTED"
|
"isolation_level": "READ COMMITTED",
|
||||||
}
|
}
|
||||||
|
|
||||||
engine = create_engine(**engine_config)
|
engine = create_engine(**engine_config)
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,20 @@ class FilterAttributes:
|
||||||
message=str(e.__context__).split("\n")[0],
|
message=str(e.__context__).split("\n")[0],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def save_and_confirm(cls):
|
||||||
|
"""Saves the updated model to the current entity db."""
|
||||||
|
try:
|
||||||
|
cls.is_confirmed = True
|
||||||
|
cls.__session__.commit()
|
||||||
|
except SQLAlchemyError as e:
|
||||||
|
cls.raise_http_exception(
|
||||||
|
status_code="HTTP_400_BAD_REQUEST",
|
||||||
|
error_case=e.__class__.__name__,
|
||||||
|
data={},
|
||||||
|
message=str(e.__context__).split("\n")[0],
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _query(cls):
|
def _query(cls):
|
||||||
"""Returns the query to use in the model."""
|
"""Returns the query to use in the model."""
|
||||||
|
|
@ -124,15 +138,9 @@ class FilterAttributes:
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_active_and_confirmed_query_arg(cls, arg):
|
def get_active_and_confirmed_query_arg(cls, arg):
|
||||||
"""Add active and confirmed to the query."""
|
"""Add active and confirmed to the query."""
|
||||||
arg = cls.add_new_arg_to_args(
|
arg = cls.add_new_arg_to_args(arg, "is_confirmed", cls.is_confirmed == True)
|
||||||
arg, "is_confirmed", cls.is_confirmed == True
|
arg = cls.add_new_arg_to_args(arg, "active", cls.active == True)
|
||||||
)
|
arg = cls.add_new_arg_to_args(arg, "deleted", cls.deleted == False)
|
||||||
arg = cls.add_new_arg_to_args(
|
|
||||||
arg, "active", cls.active == True
|
|
||||||
)
|
|
||||||
arg = cls.add_new_arg_to_args(
|
|
||||||
arg, "deleted", cls.deleted == False
|
|
||||||
)
|
|
||||||
return arg
|
return arg
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -190,7 +198,7 @@ class FilterAttributes:
|
||||||
args = cls.get_not_expired_query_arg(args)
|
args = cls.get_not_expired_query_arg(args)
|
||||||
filter_list = cls.get_filter_attributes()
|
filter_list = cls.get_filter_attributes()
|
||||||
if filter_list.get("query", None):
|
if filter_list.get("query", None):
|
||||||
for smart_iter in cls.filter_expr(**filter_list.get('query', {})):
|
for smart_iter in cls.filter_expr(**filter_list.get("query", {})):
|
||||||
if key := arg_left(smart_iter):
|
if key := arg_left(smart_iter):
|
||||||
args = cls.add_new_arg_to_args(args, key, smart_iter)
|
args = cls.add_new_arg_to_args(args, key, smart_iter)
|
||||||
query = cls._query().filter(*args)
|
query = cls._query().filter(*args)
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,7 @@ def exception_handler_http(request: Request, exc: HTTPException):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
status_code=exc.status_code,
|
status_code=exc.status_code,
|
||||||
content={
|
content={"Error": str(exc_detail), "Message": f"{str(e)}", "Data": {}},
|
||||||
"Error": str(exc_detail),
|
|
||||||
"Message": f"{str(e)}",
|
|
||||||
"Data": {}
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,11 @@ def authentication_select_company_or_occupant_type(
|
||||||
request: Request, data: Union[EmployeeSelection, OccupantSelection]
|
request: Request, data: Union[EmployeeSelection, OccupantSelection]
|
||||||
):
|
):
|
||||||
token_dict = parse_token_object_to_dict(request=request)
|
token_dict = parse_token_object_to_dict(request=request)
|
||||||
return AuthenticationSelectEventMethod.authentication_select_company_or_occupant_type(
|
return (
|
||||||
|
AuthenticationSelectEventMethod.authentication_select_company_or_occupant_type(
|
||||||
data=data, request=request, token_dict=token_dict
|
data=data, request=request, token_dict=token_dict
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@login_route.post(path="/login", summary="Login user with domain and password")
|
@login_route.post(path="/login", summary="Login user with domain and password")
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,9 @@ def building_types_list(request: Request, list_options: ListOptions):
|
||||||
return token_dict.available_event(list_options=list_options, token_dict=token_dict)
|
return token_dict.available_event(list_options=list_options, token_dict=token_dict)
|
||||||
|
|
||||||
|
|
||||||
@build_types_route.post(path="/create", summary="Create BuildParts with given auth levels")
|
@build_types_route.post(
|
||||||
|
path="/create", summary="Create BuildParts with given auth levels"
|
||||||
|
)
|
||||||
def building_types_create(request: Request, data: InsertBuildTypes):
|
def building_types_create(request: Request, data: InsertBuildTypes):
|
||||||
token_dict = parse_token_object_to_dict(request=request)
|
token_dict = parse_token_object_to_dict(request=request)
|
||||||
return token_dict.available_event(data=data, token_dict=token_dict)
|
return token_dict.available_event(data=data, token_dict=token_dict)
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,9 @@ def modules_create(request: Request, data: DepartmentsPydantic):
|
||||||
)
|
)
|
||||||
def modules_update(request: Request, module_uu_id: str, data: DepartmentsPydantic):
|
def modules_update(request: Request, module_uu_id: str, data: DepartmentsPydantic):
|
||||||
token_dict = parse_token_object_to_dict(request=request)
|
token_dict = parse_token_object_to_dict(request=request)
|
||||||
return token_dict.available_event(data=data, module_uu_id=module_uu_id, token_dict=token_dict)
|
return token_dict.available_event(
|
||||||
|
data=data, module_uu_id=module_uu_id, token_dict=token_dict
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@modules_route.patch(
|
@modules_route.patch(
|
||||||
|
|
@ -39,4 +41,6 @@ def modules_update(request: Request, module_uu_id: str, data: DepartmentsPydanti
|
||||||
)
|
)
|
||||||
def modules_patch(request: Request, module_uu_id: str, data: PatchRecord):
|
def modules_patch(request: Request, module_uu_id: str, data: PatchRecord):
|
||||||
token_dict = parse_token_object_to_dict(request=request)
|
token_dict = parse_token_object_to_dict(request=request)
|
||||||
return token_dict.available_event(data=data, module_uu_id=module_uu_id, token_dict=token_dict)
|
return token_dict.available_event(
|
||||||
|
data=data, module_uu_id=module_uu_id, token_dict=token_dict
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -103,9 +103,7 @@ def add_events_all_services_and_occupant_types():
|
||||||
event_id=event_id,
|
event_id=event_id,
|
||||||
event_uu_id=event_uu_id,
|
event_uu_id=event_uu_id,
|
||||||
)
|
)
|
||||||
service_events.save()
|
service_events.save_and_confirm()
|
||||||
service_events.is_confirmed = True
|
|
||||||
service_events.save()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,9 +141,7 @@ def create_occupant_types_defaults():
|
||||||
|
|
||||||
for list_occupant_type in list_occupant_types:
|
for list_occupant_type in list_occupant_types:
|
||||||
created_type = OccupantTypes.find_or_create(**list_occupant_type)
|
created_type = OccupantTypes.find_or_create(**list_occupant_type)
|
||||||
created_type.save()
|
created_type.save_and_confirm()
|
||||||
created_type.is_confirmed = True
|
|
||||||
created_type.save()
|
|
||||||
|
|
||||||
|
|
||||||
def create_application_defaults():
|
def create_application_defaults():
|
||||||
|
|
@ -438,6 +436,5 @@ def create_application_defaults():
|
||||||
)
|
)
|
||||||
People.save()
|
People.save()
|
||||||
for created_list_item in created_list:
|
for created_list_item in created_list:
|
||||||
created_list_item.is_confirmed = True
|
created_list_item.save_and_confirm()
|
||||||
created_list_item.save()
|
|
||||||
print("All Defaults Create is now completed")
|
print("All Defaults Create is now completed")
|
||||||
|
|
|
||||||
|
|
@ -94,9 +94,14 @@ def init_api_enums_build_types():
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"enum_class": "BuildDuesTypes",
|
"enum_class": "BuildDuesTypes",
|
||||||
"type_code": "BDT-sf",
|
"type_code": "BDT-S",
|
||||||
"type_name": "Service fee",
|
"type_name": "Service fee",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"enum_class": "BuildDuesTypes",
|
||||||
|
"type_code": "BDT-I",
|
||||||
|
"type_name": "Information",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"enum_class": "AccountingReceiptTypes",
|
"enum_class": "AccountingReceiptTypes",
|
||||||
"type_code": "ART-A",
|
"type_code": "ART-A",
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,7 @@ def create_endpoints_from_api_functions(routers):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
restriction.endpoint_code = f"AR{str(restriction.id).zfill(3)}"
|
restriction.endpoint_code = f"AR{str(restriction.id).zfill(3)}"
|
||||||
restriction.save()
|
restriction.save_and_confirm()
|
||||||
restriction.is_confirmed = True
|
|
||||||
restriction.save()
|
|
||||||
|
|
||||||
EndpointRestriction.save()
|
EndpointRestriction.save()
|
||||||
return api_app
|
return api_app
|
||||||
|
|
@ -54,72 +52,56 @@ def create_services_building(module_dict: dict):
|
||||||
service_description="Building Management Service",
|
service_description="Building Management Service",
|
||||||
service_code="SR-BLD-MNG",
|
service_code="SR-BLD-MNG",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Legal Affairs",
|
service_name="Building Legal Affairs",
|
||||||
service_description="Building Legal Affairs Service",
|
service_description="Building Legal Affairs Service",
|
||||||
service_code="SR-BLD-LGL",
|
service_code="SR-BLD-LGL",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Cleaning",
|
service_name="Building Cleaning",
|
||||||
service_description="Building Cleaning Service",
|
service_description="Building Cleaning Service",
|
||||||
service_code="SR-BLD-CLN",
|
service_code="SR-BLD-CLN",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Heating System",
|
service_name="Building Heating System",
|
||||||
service_description="Building Heating System Service",
|
service_description="Building Heating System Service",
|
||||||
service_code="SR-BLD-HTS",
|
service_code="SR-BLD-HTS",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Security System",
|
service_name="Building Security System",
|
||||||
service_description="Building Security System Service",
|
service_description="Building Security System Service",
|
||||||
service_code="SR-BLD-SEC",
|
service_code="SR-BLD-SEC",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Maintenance",
|
service_name="Building Maintenance",
|
||||||
service_description="Building Maintenance Service",
|
service_description="Building Maintenance Service",
|
||||||
service_code="SR-BLD-MNT",
|
service_code="SR-BLD-MNT",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Repair",
|
service_name="Building Repair",
|
||||||
service_description="Building Repair Service",
|
service_description="Building Repair Service",
|
||||||
service_code="SR-BLD-RPR",
|
service_code="SR-BLD-RPR",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Building Observation",
|
service_name="Building Observation",
|
||||||
service_description="Building Observation Service",
|
service_description="Building Observation Service",
|
||||||
service_code="SR-BLD-OBS",
|
service_code="SR-BLD-OBS",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -137,46 +119,35 @@ def create_services_flat(module_dict: dict):
|
||||||
service_description="Flat Rent Service",
|
service_description="Flat Rent Service",
|
||||||
service_code="SR-FLT-RNT",
|
service_code="SR-FLT-RNT",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Flat Sale",
|
service_name="Flat Sale",
|
||||||
service_description="Flat Sale Service",
|
service_description="Flat Sale Service",
|
||||||
service_code="SR-FLT-SAL",
|
service_code="SR-FLT-SAL",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Flat Renovation",
|
service_name="Flat Renovation",
|
||||||
service_description="Flat Renovation Service",
|
service_description="Flat Renovation Service",
|
||||||
service_code="SR-FLT-RNV",
|
service_code="SR-FLT-RNV",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Flat Cleaning",
|
service_name="Flat Cleaning",
|
||||||
service_description="Flat Cleaning Service",
|
service_description="Flat Cleaning Service",
|
||||||
service_code="SR-FLT-CLN",
|
service_code="SR-FLT-CLN",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Flat Observation",
|
service_name="Flat Observation",
|
||||||
service_description="Flat Observation Service",
|
service_description="Flat Observation Service",
|
||||||
service_code="SR-FLT-OBS",
|
service_code="SR-FLT-OBS",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -187,9 +158,7 @@ def create_services_authenticate(module_dict: dict):
|
||||||
service_description="Authenticate Service",
|
service_description="Authenticate Service",
|
||||||
service_code="AUTH",
|
service_code="AUTH",
|
||||||
)
|
)
|
||||||
authentication_service.save()
|
authentication_service.save_and_confirm()
|
||||||
authentication_service.is_confirmed = True
|
|
||||||
authentication_service.save()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -201,27 +170,21 @@ def create_services_meeting(module_dict: dict):
|
||||||
service_description="Regular Meeting Service",
|
service_description="Regular Meeting Service",
|
||||||
service_code="MEET-REG",
|
service_code="MEET-REG",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Meeting Emergency",
|
service_name="Meeting Emergency",
|
||||||
service_description="Emergency Meeting Service",
|
service_description="Emergency Meeting Service",
|
||||||
service_code="MEET-EMR",
|
service_code="MEET-EMR",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
created_service = Services.find_or_create(
|
created_service = Services.find_or_create(
|
||||||
**module_dict,
|
**module_dict,
|
||||||
service_name="Meeting Demand",
|
service_name="Meeting Demand",
|
||||||
service_description="Demand Meeting Service",
|
service_description="Demand Meeting Service",
|
||||||
service_code="MEET-DMN",
|
service_code="MEET-DMN",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -236,9 +199,7 @@ def create_modules_and_services_and_actions():
|
||||||
"is_default_module": False,
|
"is_default_module": False,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
erp_module.save()
|
erp_module.save_and_confirm()
|
||||||
erp_module.is_confirmed = True
|
|
||||||
erp_module.save()
|
|
||||||
|
|
||||||
build_module = Modules.find_or_create(
|
build_module = Modules.find_or_create(
|
||||||
**{
|
**{
|
||||||
|
|
@ -249,9 +210,7 @@ def create_modules_and_services_and_actions():
|
||||||
"is_default_module": False,
|
"is_default_module": False,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
build_module.save()
|
build_module.save_and_confirm()
|
||||||
build_module.is_confirmed = True
|
|
||||||
build_module.save()
|
|
||||||
|
|
||||||
user_module = Modules.find_or_create(
|
user_module = Modules.find_or_create(
|
||||||
**{
|
**{
|
||||||
|
|
@ -262,9 +221,7 @@ def create_modules_and_services_and_actions():
|
||||||
"is_default_module": True,
|
"is_default_module": True,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
user_module.save()
|
user_module.save_and_confirm()
|
||||||
user_module.is_confirmed = True
|
|
||||||
user_module.save()
|
|
||||||
|
|
||||||
erp_module_module_dict = dict(
|
erp_module_module_dict = dict(
|
||||||
module_id=erp_module.id,
|
module_id=erp_module.id,
|
||||||
|
|
@ -289,9 +246,7 @@ def create_modules_and_services_and_actions():
|
||||||
service_description=duty_object.duty_description,
|
service_description=duty_object.duty_description,
|
||||||
service_code=f"SRE-{duty_object.duty_code}",
|
service_code=f"SRE-{duty_object.duty_code}",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
|
|
||||||
occupant_types = OccupantTypes.filter_all()
|
occupant_types = OccupantTypes.filter_all()
|
||||||
for occupant_type in occupant_types.data:
|
for occupant_type in occupant_types.data:
|
||||||
|
|
@ -301,9 +256,7 @@ def create_modules_and_services_and_actions():
|
||||||
service_description=occupant_type.occupant_description,
|
service_description=occupant_type.occupant_description,
|
||||||
service_code=f"SRO-{occupant_type.occupant_code}",
|
service_code=f"SRO-{occupant_type.occupant_code}",
|
||||||
)
|
)
|
||||||
created_service.save()
|
created_service.save_and_confirm()
|
||||||
created_service.is_confirmed = True
|
|
||||||
created_service.save()
|
|
||||||
|
|
||||||
create_services_authenticate(module_dict=user_module_module_dict)
|
create_services_authenticate(module_dict=user_module_module_dict)
|
||||||
create_services_meeting(module_dict=build_module_module_dict)
|
create_services_meeting(module_dict=build_module_module_dict)
|
||||||
|
|
|
||||||
|
|
@ -82,9 +82,7 @@ def create_one_address():
|
||||||
)
|
)
|
||||||
address_list.append(street)
|
address_list.append(street)
|
||||||
for address_single in address_list:
|
for address_single in address_list:
|
||||||
address_single.save()
|
address_single.save_and_confirm()
|
||||||
address_single.is_confirmed = True
|
|
||||||
address_single.save()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ def get_account_records_from_json():
|
||||||
read_files_json, with_pydantic = read_json_file(json_file="account_records"), []
|
read_files_json, with_pydantic = read_json_file(json_file="account_records"), []
|
||||||
read_files = read_files_json.get("account_records")
|
read_files = read_files_json.get("account_records")
|
||||||
for row in read_files:
|
for row in read_files:
|
||||||
if not row['bank_reference_code']:
|
if not row["bank_reference_code"]:
|
||||||
row['bank_reference_code'] = "NOT FOUND"
|
row["bank_reference_code"] = "NOT FOUND"
|
||||||
pydantic_row = InsertAccountRecord(**row)
|
pydantic_row = InsertAccountRecord(**row)
|
||||||
with_pydantic.append(pydantic_row.model_dump())
|
with_pydantic.append(pydantic_row.model_dump())
|
||||||
if not with_pydantic:
|
if not with_pydantic:
|
||||||
|
|
@ -20,12 +20,11 @@ def get_account_records_from_json():
|
||||||
return with_pydantic
|
return with_pydantic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def migrate_account_records(requester: BothAPIS):
|
def migrate_account_records(requester: BothAPIS):
|
||||||
account_records = get_account_records_from_json()
|
account_records = get_account_records_from_json()
|
||||||
for account_record in account_records:
|
for account_record in account_records:
|
||||||
response = requester.local_api.post(
|
response = requester.local_api.post(
|
||||||
endpoint="/account/records/create", data=account_record
|
endpoint="/account/records/create", data=account_record
|
||||||
)
|
)
|
||||||
print('response.text', response.text)
|
print("response.text", response.text)
|
||||||
print('response.status_code', response.json())
|
print("response.status_code", response.json())
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
from service_app_test.api_configs import BothAPIS
|
from service_app_test.api_configs import BothAPIS
|
||||||
from service_app_test.test_application.evyos.address_building import post_code_dict
|
from service_app_test.test_application.evyos.address_building import post_code_dict
|
||||||
from service_app_test.test_application.migrate_old_data.get_occupants_codes import get_occupants_types
|
from service_app_test.test_application.migrate_old_data.get_occupants_codes import (
|
||||||
|
get_occupants_types,
|
||||||
|
)
|
||||||
from service_app_test.test_application.migrate_old_data.reader_and_alchemy_bulk_actions import (
|
from service_app_test.test_application.migrate_old_data.reader_and_alchemy_bulk_actions import (
|
||||||
read_json_file,
|
read_json_file,
|
||||||
)
|
)
|
||||||
|
|
@ -90,6 +92,7 @@ address_dict = lambda post_code_uu_id: {
|
||||||
"build_number": "11",
|
"build_number": "11",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def get_build_living_space_from_json():
|
def get_build_living_space_from_json():
|
||||||
read_files_json, with_pydantic = read_json_file(json_file="build_living_space"), []
|
read_files_json, with_pydantic = read_json_file(json_file="build_living_space"), []
|
||||||
read_files = read_files_json.get("build_living_space")
|
read_files = read_files_json.get("build_living_space")
|
||||||
|
|
@ -173,15 +176,19 @@ def migrate_build_area(requester: BothAPIS, build_uu_id: str):
|
||||||
|
|
||||||
|
|
||||||
def migrate_build_part(
|
def migrate_build_part(
|
||||||
requester: BothAPIS, build_uu_id: str, build_part_type_uu_id: str, part_direction_uu_id: str
|
requester: BothAPIS,
|
||||||
|
build_uu_id: str,
|
||||||
|
build_part_type_uu_id: str,
|
||||||
|
part_direction_uu_id: str,
|
||||||
):
|
):
|
||||||
# build_uu_id = grab_new_build_uu_id(requester=requester, build_uu_id=build_uu_id)
|
# build_uu_id = grab_new_build_uu_id(requester=requester, build_uu_id=build_uu_id)
|
||||||
response_datas = get_build_part_from_json(
|
response_datas = get_build_part_from_json(
|
||||||
build_part_type_uu_id=build_part_type_uu_id, part_direction_uu_id=part_direction_uu_id
|
build_part_type_uu_id=build_part_type_uu_id,
|
||||||
|
part_direction_uu_id=part_direction_uu_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
for response_data in response_datas:
|
for response_data in response_datas:
|
||||||
if response_data.get('part_no') == 0:
|
if response_data.get("part_no") == 0:
|
||||||
continue
|
continue
|
||||||
response_data["build_uu_id"] = build_uu_id
|
response_data["build_uu_id"] = build_uu_id
|
||||||
response = requester.local_api.post(
|
response = requester.local_api.post(
|
||||||
|
|
@ -209,28 +216,42 @@ def migrate_build_living_space(requester: BothAPIS):
|
||||||
print("b response_data[person_uu_id]", response_data["person_uu_id"])
|
print("b response_data[person_uu_id]", response_data["person_uu_id"])
|
||||||
response = requester.local_api.post(
|
response = requester.local_api.post(
|
||||||
endpoint="/people/list",
|
endpoint="/people/list",
|
||||||
data={"page": 1, "size": 1, "query": {"ref_id": response_data["person_uu_id"]}},
|
data={
|
||||||
|
"page": 1,
|
||||||
|
"size": 1,
|
||||||
|
"query": {"ref_id": response_data["person_uu_id"]},
|
||||||
|
},
|
||||||
)
|
)
|
||||||
print("/people/list response", response.text)
|
print("/people/list response", response.text)
|
||||||
response_data["person_uu_id"] = response.json()["data"][0]["uu_id"]
|
response_data["person_uu_id"] = response.json()["data"][0]["uu_id"]
|
||||||
print("a response_data[person_uu_id]", response_data["person_uu_id"])
|
print("a response_data[person_uu_id]", response_data["person_uu_id"])
|
||||||
response = requester.local_api.post(
|
response = requester.local_api.post(
|
||||||
endpoint="/building/parts/list",
|
endpoint="/building/parts/list",
|
||||||
data={"page": 1, "size": 30, "query": {"ref_id": response_data.get("build_parts_uu_id")}},
|
data={
|
||||||
|
"page": 1,
|
||||||
|
"size": 30,
|
||||||
|
"query": {"ref_id": response_data.get("build_parts_uu_id")},
|
||||||
|
},
|
||||||
)
|
)
|
||||||
print("/building/parts/list response", response.text)
|
print("/building/parts/list response", response.text)
|
||||||
response_data["build_parts_uu_id"] = response.json()["data"][0]["uu_id"]
|
response_data["build_parts_uu_id"] = response.json()["data"][0]["uu_id"]
|
||||||
|
|
||||||
flat_owner = "b9392bef-32cb-4c7d-b99f-5f613c2e2120"
|
flat_owner = "b9392bef-32cb-4c7d-b99f-5f613c2e2120"
|
||||||
flat_tenants = "a40aea36-0dce-48cc-9334-2e776ba22a49"
|
flat_tenants = "a40aea36-0dce-48cc-9334-2e776ba22a49"
|
||||||
if response_data.get('occupant_type_uu_id') == flat_owner:
|
if response_data.get("occupant_type_uu_id") == flat_owner:
|
||||||
response = get_occupants_types(occupant_code="FL-OWN", requester=requester.local_api)
|
response = get_occupants_types(
|
||||||
|
occupant_code="FL-OWN", requester=requester.local_api
|
||||||
|
)
|
||||||
response_data["occupant_type_uu_id"] = response["data"]["uu_id"]
|
response_data["occupant_type_uu_id"] = response["data"]["uu_id"]
|
||||||
elif response_data.get('occupant_type_uu_id') == flat_tenants:
|
elif response_data.get("occupant_type_uu_id") == flat_tenants:
|
||||||
response = get_occupants_types(occupant_code="FL-TEN", requester=requester.local_api)
|
response = get_occupants_types(
|
||||||
|
occupant_code="FL-TEN", requester=requester.local_api
|
||||||
|
)
|
||||||
response_data["occupant_type_uu_id"] = response["data"]["uu_id"]
|
response_data["occupant_type_uu_id"] = response["data"]["uu_id"]
|
||||||
else:
|
else:
|
||||||
response = get_occupants_types(occupant_code="FL-RES", requester=requester.local_api)
|
response = get_occupants_types(
|
||||||
|
occupant_code="FL-RES", requester=requester.local_api
|
||||||
|
)
|
||||||
response_data["occupant_type_uu_id"] = response["data"]["uu_id"]
|
response_data["occupant_type_uu_id"] = response["data"]["uu_id"]
|
||||||
|
|
||||||
response = requester.local_api.post(
|
response = requester.local_api.post(
|
||||||
|
|
@ -240,27 +261,31 @@ def migrate_build_living_space(requester: BothAPIS):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def migrate_build(requester: BothAPIS):
|
def migrate_build(requester: BothAPIS):
|
||||||
from service_app_test.test_application.migrate_old_data.get_building_types import (
|
from service_app_test.test_application.migrate_old_data.get_building_types import (
|
||||||
list_building_types,
|
list_building_types,
|
||||||
)
|
)
|
||||||
from service_app_test.test_application.migrate_old_data.get_type_codes import (
|
from service_app_test.test_application.migrate_old_data.get_type_codes import (
|
||||||
get_type_codes_key_and_class
|
get_type_codes_key_and_class,
|
||||||
)
|
)
|
||||||
|
|
||||||
building_type_flat = list_building_types(requester=requester.local_api, type_code="daire").get("uu_id")
|
building_type_flat = list_building_types(
|
||||||
building_type_build = list_building_types(requester=requester.local_api, type_code="apt").get("uu_id")
|
requester=requester.local_api, type_code="daire"
|
||||||
|
).get("uu_id")
|
||||||
|
building_type_build = list_building_types(
|
||||||
|
requester=requester.local_api, type_code="apt"
|
||||||
|
).get("uu_id")
|
||||||
api_enum_dropdown_nn = get_type_codes_key_and_class(
|
api_enum_dropdown_nn = get_type_codes_key_and_class(
|
||||||
class_name="Directions", key_name="NN", requester=requester.local_api
|
class_name="Directions", key_name="NN", requester=requester.local_api
|
||||||
)
|
)
|
||||||
api_enum_dropdown_nn_uuid = api_enum_dropdown_nn.get("data").get("uu_id")
|
api_enum_dropdown_nn_uuid = api_enum_dropdown_nn.get("data").get("uu_id")
|
||||||
street_uu_id = search_street("Reşat Nuri", requester=requester)
|
street_uu_id = search_street("Reşat Nuri", requester=requester)
|
||||||
post_code_uuid = create_address(requester=requester, post_code=post_code_dict(uu_id_street=street_uu_id))
|
post_code_uuid = create_address(
|
||||||
|
requester=requester, post_code=post_code_dict(uu_id_street=street_uu_id)
|
||||||
|
)
|
||||||
|
|
||||||
created_address = create_addresses(
|
created_address = create_addresses(
|
||||||
address=address_dict(post_code_uu_id=post_code_uuid),
|
address=address_dict(post_code_uu_id=post_code_uuid), requester=requester
|
||||||
requester=requester
|
|
||||||
)
|
)
|
||||||
created_address_uu_id = created_address["data"]["uu_id"]
|
created_address_uu_id = created_address["data"]["uu_id"]
|
||||||
for response_data in get_build_from_json():
|
for response_data in get_build_from_json():
|
||||||
|
|
@ -274,7 +299,7 @@ def migrate_build(requester: BothAPIS):
|
||||||
requester=requester,
|
requester=requester,
|
||||||
build_uu_id=build_uu_id,
|
build_uu_id=build_uu_id,
|
||||||
build_part_type_uu_id=building_type_flat,
|
build_part_type_uu_id=building_type_flat,
|
||||||
part_direction_uu_id=api_enum_dropdown_nn_uuid
|
part_direction_uu_id=api_enum_dropdown_nn_uuid,
|
||||||
)
|
)
|
||||||
# migrate_build_iban(requester=requester, build_uu_id=build_uu_id)
|
# migrate_build_iban(requester=requester, build_uu_id=build_uu_id)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
def list_building_types(requester, lang: str = "TR", type_code: str = None):
|
def list_building_types(requester, lang: str = "TR", type_code: str = None):
|
||||||
from service_app_test.test_application.evyos.datas.company_employee_data import (
|
from service_app_test.test_application.evyos.datas.company_employee_data import (
|
||||||
list_options,
|
list_options,
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from service_app_test.api_configs import BothAPIS
|
from service_app_test.api_configs import BothAPIS
|
||||||
from api_validations.validations_request import InsertPerson
|
from api_validations.validations_request import InsertPerson, InsertUsers
|
||||||
from service_app_test.test_application.migrate_old_data.reader_and_alchemy_bulk_actions import (
|
from service_app_test.test_application.migrate_old_data.reader_and_alchemy_bulk_actions import (
|
||||||
read_json_file,
|
read_json_file,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# from service_app_test.test_application.evyos.people import generate_random_phone_number
|
||||||
|
|
||||||
requester_dict_build = lambda data: {"endpoint": "/people/create", "data": data}
|
requester_dict_build = lambda data: {"endpoint": "/people/create", "data": data}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -15,18 +17,40 @@ def get_people_from_json():
|
||||||
for row in read_files:
|
for row in read_files:
|
||||||
row["ref_id"] = row["uu_id"]
|
row["ref_id"] = row["uu_id"]
|
||||||
pydantic_row = InsertPerson(**row)
|
pydantic_row = InsertPerson(**row)
|
||||||
with_pydantic.append(pydantic_row.model_dump())
|
data_dict = pydantic_row.model_dump()
|
||||||
|
data_dict["email"] = row.get("emails")
|
||||||
|
with_pydantic.append(data_dict)
|
||||||
if not with_pydantic:
|
if not with_pydantic:
|
||||||
raise Exception("No data found")
|
raise Exception("No data found")
|
||||||
return with_pydantic
|
return with_pydantic
|
||||||
|
|
||||||
|
|
||||||
generate_random_national_identity_id = lambda n: str(random.randint(10 ** (n - 1), 10**n))
|
generate_random_national_identity_id = lambda n: str(
|
||||||
|
random.randint(10 ** (n - 1), 10**n)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def migrate_people(requester: BothAPIS):
|
def migrate_people(requester: BothAPIS):
|
||||||
for response_data in get_people_from_json():
|
for response_data in get_people_from_json():
|
||||||
|
users_email = response_data.get("email")
|
||||||
response_data["national_identity_id"] = generate_random_national_identity_id(11)
|
response_data["national_identity_id"] = generate_random_national_identity_id(11)
|
||||||
|
response_data.pop("email", None)
|
||||||
response = requester.local_api.post(**requester_dict_build(data=response_data))
|
response = requester.local_api.post(**requester_dict_build(data=response_data))
|
||||||
print("response", response.text)
|
print("response", response.text)
|
||||||
|
if response.ok:
|
||||||
|
user_json = response.json().get("data", None)
|
||||||
|
if not user_json:
|
||||||
|
raise Exception("User can not be created user json is invalid")
|
||||||
|
created_user = InsertUsers(
|
||||||
|
people_uu_id=user_json.get("uu_id"),
|
||||||
|
user_tag=user_json.get("firstname"),
|
||||||
|
email=users_email,
|
||||||
|
# phone_number=generate_random_phone_number(),
|
||||||
|
avatar="https://s.tmimgcdn.com/scr/800x500/276800/building-home-nature-logo-vector-template-3_276851-original.jpg",
|
||||||
|
)
|
||||||
|
response = requester.local_api.post(
|
||||||
|
endpoint="/user/create",
|
||||||
|
data=created_user.model_dump(),
|
||||||
|
)
|
||||||
|
print("response", response.text)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -1,51 +1,49 @@
|
||||||
import arrow
|
import arrow
|
||||||
|
|
||||||
from service_app_test.bases import RequestToApi
|
from service_app_test.bases import RequestToApi
|
||||||
from service_app_test.api_configs import WagAPI, LocalAPI, BothAPIS
|
from service_app_test.api_configs import LocalAPI, BothAPIS
|
||||||
from service_app_test.test_application.evyos.decision_book import run_decision_book_depends
|
from service_app_test.test_application.evyos.decision_book import (
|
||||||
|
run_decision_book_depends, list_decision_books,
|
||||||
|
)
|
||||||
from service_app_test.test_application.evyos.decision_book_items import (
|
from service_app_test.test_application.evyos.decision_book_items import (
|
||||||
send_invitation_to_building_residents,
|
send_invitation_to_building_residents,
|
||||||
collect_invitation_to_building_residents,
|
collect_invitation_to_building_residents,
|
||||||
assign_people_to_pre_or_wrt
|
assign_people_to_pre_or_wrt, run_decision_book_items,
|
||||||
)
|
)
|
||||||
|
from service_app_test.test_application.migrate_old_data.get_type_codes import get_type_codes_key_and_class
|
||||||
from service_app_test.test_application.migrate_old_data.people import migrate_people
|
from service_app_test.test_application.migrate_old_data.people import migrate_people
|
||||||
from service_app_test.test_application.migrate_old_data.building import (
|
from service_app_test.test_application.migrate_old_data.building import (
|
||||||
migrate_build, migrate_build_living_space,
|
migrate_build,
|
||||||
|
migrate_build_living_space,
|
||||||
)
|
)
|
||||||
from service_app_test.test_application.migrate_old_data.company import migrate_company
|
from service_app_test.test_application.migrate_old_data.company import migrate_company
|
||||||
from service_app_test.test_application.migrate_old_data.accounts import migrate_account_records
|
from service_app_test.test_application.migrate_old_data.accounts import (
|
||||||
|
migrate_account_records,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
password_token = "CDWs5ASBD4LVbmhNeilKSqBLKjKKt0odOL9h6NY082xqwln7Bo1opvC12j07iP8Gx-vpJSpF5nqUWs-Q9klQUJ6uLc8vuPmVKYVCXE0nz2yU_xyFGOrlqrVro1FSZG1EXwWopuLA_gKH5qkiiQwI1tM3UDFLJjbnR4xjwnH4m6RHe0gYKOZbpkd-uxFxzYbw"
|
password_token = ""
|
||||||
login_data = {
|
login_data = {
|
||||||
"domain": "evyos.com.tr",
|
"domain": "evyos.com.tr",
|
||||||
"access_key": "karatay.berkay.sup@evyos.com.tr",
|
"access_key": "karatay.berkay.sup@evyos.com.tr",
|
||||||
"password": "string",
|
"password": "string",
|
||||||
"remember_me": False,
|
"remember_me": False,
|
||||||
"password_token": password_token
|
"password_token": password_token,
|
||||||
}
|
}
|
||||||
login_data_wag = {
|
|
||||||
"domain": "evyos.com.tr",
|
|
||||||
"access_key": "karatay.berkay.sup@evyos.com.tr",
|
|
||||||
"password": "string",
|
|
||||||
"remember_me": False,
|
|
||||||
"password_token": "",
|
|
||||||
}
|
|
||||||
|
|
||||||
login_creds_employee = {
|
login_creds_employee = {
|
||||||
"domain": "evyos.com.tr",
|
"domain": "evyos.com.tr",
|
||||||
"access_key": "karatay.berkay.sup@evyos.com.tr",
|
"access_key": "karatay.berkay.sup@evyos.com.tr",
|
||||||
"password": "string",
|
"password": "string",
|
||||||
"remember_me": False,
|
"remember_me": False,
|
||||||
"password_token": "z5nPguDu6PrY_94KlTGxGBCMcK6rZcDl5AGqO5aHWY7TcQF8LJGYikMQs9labvqdz5yM7vE_f8Zq_vqp00o3EnWwWCWhel-EsMcAujBKNRjV3jC_4xk0_1r_unIYogWAjz_spZipX6pncsch2ngvv0dpx4lHSiZ5QrDTA1RefQ",
|
"password_token": password_token,
|
||||||
}
|
}
|
||||||
access_key_president = "bmanco@example.net"
|
access_key_president = "mehmet.karatay@hotmail.com"
|
||||||
login_creds_occupant = {
|
login_creds_occupant = {
|
||||||
"domain": "evyos.com.tr",
|
"domain": "evyos.com.tr",
|
||||||
"access_key": access_key_president,
|
"access_key": access_key_president,
|
||||||
"password": "string",
|
"password": "string",
|
||||||
"remember_me": False,
|
"remember_me": False,
|
||||||
"password_token": "o_2Y_yXS-cl6MxLbzLrXQetXTlDLD3UBDTQNa_mBMyzSOVIgx3LGbnufLRJjd4g6BWFbwVgJIUxbK-Pi0R5dwxfVJKyoEeDdej40uRHSsElKR16nvnqgFB_BJ4nmyN0KSunZHra5NqHJor17EGExOSmlttZV5dC7vFsrc-GUkg",
|
"password_token": "n6CCVhj0gvEqENWhA7OqG1NNczJWPuPgI2U6G9yE_OS8gIYGkFhqsZ9c0K9He7yx7O7T9zgaj7ZDxb1JVKzTnGIGrpv8mDdOhuB0IV20XsTsir_jzzHspXsrcHDLk6l32_qsI4fLswDPjY0qvB1yqnEjRvHuYGhfPYTifwfax2O2ceNwwYoTFU9P2s4eWzDb"
|
||||||
}
|
}
|
||||||
wrt_creds_occupant = {
|
wrt_creds_occupant = {
|
||||||
"domain": "evyos.com.tr",
|
"domain": "evyos.com.tr",
|
||||||
|
|
@ -55,59 +53,83 @@ wrt_creds_occupant = {
|
||||||
"password_token": "",
|
"password_token": "",
|
||||||
}
|
}
|
||||||
|
|
||||||
wag_api = RequestToApi()
|
# wag_api = RequestToApi()
|
||||||
wag_api.overwrite_base_url(base_url=WagAPI.base_url)
|
# wag_api.overwrite_base_url(base_url=WagAPI.base_url)
|
||||||
wag_api.selected_object = wag_api.login_via_email_and_password(
|
# wag_api.selected_object = wag_api.login_via_email_and_password(
|
||||||
login_data=login_data_wag, is_password_valid=True
|
# login_data=login_data_wag, is_password_valid=True
|
||||||
)
|
# )
|
||||||
|
|
||||||
local_api = RequestToApi()
|
local_api = RequestToApi()
|
||||||
local_api.overwrite_base_url(base_url=LocalAPI.base_url)
|
local_api.overwrite_base_url(base_url=LocalAPI.base_url)
|
||||||
local_api.selected_object = local_api.login_via_email_and_password(
|
|
||||||
login_data=login_data, is_password_valid=False
|
|
||||||
)
|
|
||||||
|
|
||||||
both_apis = BothAPIS()
|
both_apis = BothAPIS()
|
||||||
both_apis.wag_api = wag_api
|
# both_apis.wag_api = wag_api
|
||||||
both_apis.local_api = local_api
|
both_apis.local_api = local_api
|
||||||
|
|
||||||
do_migrates = False
|
assign_people_to_create_item = 2
|
||||||
assign_people_to_create_item = -1
|
|
||||||
|
|
||||||
# selection_list = None
|
# selection_list = None
|
||||||
selection_list = []
|
selection_list = [
|
||||||
|
"98f1207d-f241-4cb8-a95a-b51266632cc8",
|
||||||
|
"a8eaf383-7bb6-489b-b9e8-f19f9fd1c197",
|
||||||
|
]
|
||||||
# selection_list = None
|
# selection_list = None
|
||||||
manager_token = ""
|
manager_token = "9TdLKsYaGIrDQrKHnB13SZ5Z7XIjvGRquMBXu4om5z30hKXIH7J55Q"
|
||||||
writers_token = manager_token
|
writers_token = manager_token
|
||||||
people_uu_id_list = []
|
people_uu_id_list = [
|
||||||
list_of_attendees = []
|
"af411e80-29ad-4540-9e74-3c805700f461",
|
||||||
|
"af411e80-29ad-4540-9e74-3c805700f461",
|
||||||
|
"af411e80-29ad-4540-9e74-3c805700f461",
|
||||||
|
]
|
||||||
|
list_of_attendees = [
|
||||||
|
"Qsf0XO6c-wTZDhACY66S4Ck21fgW-6E0f1dSi61bSskMAI7qUTH2Eg",
|
||||||
|
"fjAc8_mktkBw46islaa8H1yM5jptwLcsdDbNz_MuH7gPmZtuNZ4zLw",
|
||||||
|
"JwVbDMl6CQZTIFu4LEwdEaX8BB6syWPgygF0f3M0fiu9VhPaqdLzfw",
|
||||||
|
"PFBj2hlhRAFxrxpUMCpE0O_kwKrWvTov4Zxn94MMnYcVMzC1kQNmiQ",
|
||||||
|
"e8MKAguhQnSyuZtL1UVP4a3xx0zbXGEmLUQrbCEJu15VoO0r33otdA",
|
||||||
|
"VPmcs0xD3N5RUGDyYRCe-adgvspkhiMb5YWfr7oN8fCvcQq9BTLSkA",
|
||||||
|
"3xtEg2r1qi8PozE2Qte4fFuz2EjARP8uxRRS18nz6_OFGQ142rZk4g",
|
||||||
|
"89XH0UXxbujs-uKxBMV8fZEMJkBDnxOr_8ZBbxS7isGD2noY_OpI4w",
|
||||||
|
"jSb8rH1ZI7BSHYUtBsKsOoTW4LnHDY2JlJhid_YgpIg05CI-veX0fA",
|
||||||
|
"fMysLzIehzVfYlnqcyPLpaAKaxD8IODe5QXmWbiM1gEVYtUMyTg-xw",
|
||||||
|
"aS5AydqghcvTGMQHGpi3m9C5OgyQQ_Yyc_jnkNUzrBvuEuNGOgMgPA",
|
||||||
|
]
|
||||||
|
living_space_data = dict(
|
||||||
|
build_parts_uu_id="98f1207d-f241-4cb8-a95a-b51266632cc8",
|
||||||
|
person_uu_id="07a14d03-d8c8-4d84-9f71-ff81b732b030",
|
||||||
|
occupant_type_uu_id="a8eaf383-7bb6-489b-b9e8-f19f9fd1c197",
|
||||||
|
expiry_starts=arrow.now().date().__str__(),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if do_migrates:
|
if assign_people_to_create_item == -1:
|
||||||
|
local_api.selected_object = local_api.login_via_email_and_password(
|
||||||
|
login_data=login_data, is_password_valid=False
|
||||||
|
)
|
||||||
migrate_company(requester=both_apis)
|
migrate_company(requester=both_apis)
|
||||||
migrate_people(requester=both_apis)
|
migrate_people(requester=both_apis)
|
||||||
migrate_build(requester=both_apis)
|
migrate_build(requester=both_apis)
|
||||||
migrate_build_living_space(requester=both_apis)
|
migrate_build_living_space(requester=both_apis)
|
||||||
migrate_account_records(requester=both_apis)
|
# migrate_account_records(requester=both_apis)
|
||||||
|
|
||||||
|
|
||||||
if assign_people_to_create_item == 0:
|
if assign_people_to_create_item == 0:
|
||||||
# local_api.post(
|
if not bool(selection_list):
|
||||||
# endpoint="/building/living_space/create",
|
local_api.selected_object = local_api.login_via_email_and_password(
|
||||||
# data=dict(
|
login_data=login_data, is_password_valid=True
|
||||||
# build_parts_uu_id="b23d32d2-e80c-4ca4-8d4a-bae6f710608c",
|
)
|
||||||
# person_uu_id="cf47be44-ec58-4585-be41-178160be5b7e",
|
response = local_api.post(endpoint="/building/living_space/create", data=living_space_data)
|
||||||
# occupant_type_uu_id="30512a47-1b3e-4602-ac1a-75fcabb076b4",
|
print('response', response.text)
|
||||||
# expiry_starts=arrow.now().date().__str__(),
|
|
||||||
# )
|
|
||||||
# )
|
|
||||||
|
|
||||||
local_api.selected_object = local_api.login_via_email_and_password(
|
local_api.selected_object = local_api.login_via_email_and_password(
|
||||||
login_data=login_creds_occupant,
|
login_data=login_creds_occupant,
|
||||||
is_password_valid=False,
|
is_password_valid=bool(selection_list),
|
||||||
selection_list=selection_list,
|
selection_list=selection_list,
|
||||||
)
|
)
|
||||||
selected_decision_book_uu_id = run_decision_book_depends(requester=both_apis.local_api)
|
selected_decision_book_uu_id = run_decision_book_depends(
|
||||||
|
requester=both_apis.local_api
|
||||||
|
)
|
||||||
send_invitation = {
|
send_invitation = {
|
||||||
"build_decision_book_uu_id": selected_decision_book_uu_id,
|
"build_decision_book_uu_id": selected_decision_book_uu_id,
|
||||||
"message": "Request for a Regular Building Meeting",
|
"message": "Request for a Regular Building Meeting",
|
||||||
|
|
@ -116,29 +138,119 @@ if assign_people_to_create_item == 0:
|
||||||
send_invitation_to_building_residents(
|
send_invitation_to_building_residents(
|
||||||
send_invitation_dict=send_invitation, requester=both_apis.local_api
|
send_invitation_dict=send_invitation, requester=both_apis.local_api
|
||||||
)
|
)
|
||||||
if assign_people_to_create_item == 1:
|
elif assign_people_to_create_item == 1:
|
||||||
count = 17
|
local_api.selected_object = local_api.login_via_email_and_password(
|
||||||
|
login_data=login_creds_occupant,
|
||||||
|
is_password_valid=True,
|
||||||
|
selection_list=selection_list,
|
||||||
|
)
|
||||||
|
count = 7
|
||||||
list_of_attendees.insert(0, manager_token)
|
list_of_attendees.insert(0, manager_token)
|
||||||
collect_invitation_to_building_residents(
|
collect_invitation_to_building_residents(
|
||||||
attended_dict_list=list_of_attendees, attend_count=count + 1,
|
attended_dict_list=list_of_attendees,
|
||||||
requester=both_apis.local_api
|
attend_count=count + 1,
|
||||||
|
requester=both_apis.local_api,
|
||||||
)
|
)
|
||||||
elif assign_people_to_create_item == 2:
|
elif assign_people_to_create_item == 2:
|
||||||
|
local_api.selected_object = local_api.login_via_email_and_password(
|
||||||
|
login_data=login_creds_occupant,
|
||||||
|
is_password_valid=True,
|
||||||
|
selection_list=selection_list,
|
||||||
|
)
|
||||||
assign_people_to_pre_or_wrt(
|
assign_people_to_pre_or_wrt(
|
||||||
person_uu_id=people_uu_id_list[0],
|
person_uu_id=people_uu_id_list[0],
|
||||||
manager_token=manager_token,
|
manager_token=manager_token,
|
||||||
occupant_code="MT-VPR",
|
occupant_code="MT-VPR",
|
||||||
requester=both_apis.local_api
|
requester=both_apis.local_api,
|
||||||
)
|
)
|
||||||
assign_people_to_pre_or_wrt(
|
assign_people_to_pre_or_wrt(
|
||||||
person_uu_id=people_uu_id_list[1],
|
person_uu_id=people_uu_id_list[1],
|
||||||
manager_token=manager_token,
|
manager_token=manager_token,
|
||||||
occupant_code="MT-WRT",
|
occupant_code="MT-WRT",
|
||||||
requester=both_apis.local_api
|
requester=both_apis.local_api,
|
||||||
)
|
)
|
||||||
assign_people_to_pre_or_wrt(
|
assign_people_to_pre_or_wrt(
|
||||||
person_uu_id=people_uu_id_list[2],
|
person_uu_id=people_uu_id_list[2],
|
||||||
manager_token=manager_token,
|
manager_token=manager_token,
|
||||||
occupant_code="MT-PRS",
|
occupant_code="MT-PRS",
|
||||||
|
requester=both_apis.local_api,
|
||||||
|
)
|
||||||
|
elif assign_people_to_create_item == 3:
|
||||||
|
local_api.selected_object = local_api.login_via_email_and_password(
|
||||||
|
login_data=wrt_creds_occupant,
|
||||||
|
is_password_valid=True,
|
||||||
|
selection_list=selection_list,
|
||||||
|
)
|
||||||
|
selected_decision_book_uu_id = list_decision_books(requester=both_apis.local_api)["data"][0]["uu_id"]
|
||||||
|
print("select_company_uu_id", local_api.selected_object)
|
||||||
|
is_fixed_price = False
|
||||||
|
|
||||||
|
info_type_d_uu_id = get_type_codes_key_and_class(
|
||||||
|
class_name="BuildDuesTypes", key_name="BDT-D", requester=both_apis.local_api
|
||||||
|
)["data"]["uu_id"]
|
||||||
|
unit_price = 15.90
|
||||||
|
run_decision_book_items(
|
||||||
|
writers_token=writers_token,
|
||||||
|
unit_price=unit_price,
|
||||||
|
is_fixed=is_fixed_price,
|
||||||
|
info_type_uu_id=info_type_d_uu_id,
|
||||||
|
requester=both_apis.local_api
|
||||||
|
)
|
||||||
|
is_fixed_price = True
|
||||||
|
|
||||||
|
info_type_a_uu_id = get_type_codes_key_and_class(
|
||||||
|
class_name="BuildDuesTypes", key_name="BDT-A", requester=both_apis.local_api
|
||||||
|
)["data"]["uu_id"]
|
||||||
|
start_date, end_date = "2024-11-01", "2025-02-01"
|
||||||
|
unit_price = 850
|
||||||
|
run_decision_book_items(
|
||||||
|
writers_token=writers_token,
|
||||||
|
unit_price=unit_price,
|
||||||
|
is_fixed=is_fixed_price,
|
||||||
|
info_type_uu_id=info_type_a_uu_id,
|
||||||
|
start_date=start_date,
|
||||||
|
end_date=end_date,
|
||||||
|
requester=both_apis.local_api
|
||||||
|
)
|
||||||
|
|
||||||
|
info_type_a_uu_id = get_type_codes_key_and_class(
|
||||||
|
class_name="BuildDuesTypes", key_name="BDT-R", requester=both_apis.local_api
|
||||||
|
)["data"]["uu_id"]
|
||||||
|
unit_price = 5000
|
||||||
|
run_decision_book_items(
|
||||||
|
writers_token=writers_token,
|
||||||
|
unit_price=unit_price,
|
||||||
|
is_fixed=is_fixed_price,
|
||||||
|
info_type_uu_id=info_type_a_uu_id,
|
||||||
|
start_date=start_date,
|
||||||
|
end_date=end_date,
|
||||||
|
requester=both_apis.local_api
|
||||||
|
)
|
||||||
|
|
||||||
|
info_type_a_uu_id = get_type_codes_key_and_class(
|
||||||
|
class_name="BuildDuesTypes", key_name="BDT-R", requester=both_apis.local_api
|
||||||
|
)["data"]["uu_id"]
|
||||||
|
unit_price = 2000
|
||||||
|
run_decision_book_items(
|
||||||
|
writers_token=writers_token,
|
||||||
|
unit_price=unit_price,
|
||||||
|
is_fixed=is_fixed_price,
|
||||||
|
info_type_uu_id=info_type_a_uu_id,
|
||||||
|
start_date=start_date,
|
||||||
|
end_date=end_date,
|
||||||
|
requester=both_apis.local_api
|
||||||
|
)
|
||||||
|
|
||||||
|
info_type_a_uu_id = get_type_codes_key_and_class(
|
||||||
|
class_name="BuildDuesTypes", key_name="BDT-L", requester=both_apis.local_api
|
||||||
|
)["data"]["uu_id"]
|
||||||
|
unit_price = 750
|
||||||
|
run_decision_book_items(
|
||||||
|
writers_token=writers_token,
|
||||||
|
unit_price=unit_price,
|
||||||
|
is_fixed=is_fixed_price,
|
||||||
|
info_type_uu_id=info_type_a_uu_id,
|
||||||
|
start_date=start_date,
|
||||||
|
end_date=end_date,
|
||||||
requester=both_apis.local_api
|
requester=both_apis.local_api
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue