alchemy functions updated
This commit is contained in:
parent
a28d4c22d1
commit
aeda315119
|
|
@ -1,4 +1,4 @@
|
|||
from date_time_actions.date_functions import client_arrow, system_arrow
|
||||
from api_library.date_time_actions.date_functions import client_arrow, system_arrow
|
||||
|
||||
|
||||
__all__ = ["client_arrow", "system_arrow"]
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ class AccountBooks(CrudCollection):
|
|||
branch_type: Mapped[str] = mapped_column(SmallInteger, server_default="0")
|
||||
|
||||
company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"), nullable=False)
|
||||
company_uu_id: Mapped[UUID] = mapped_column(String, nullable=False)
|
||||
company_uu_id: Mapped[str] = mapped_column(String, nullable=False)
|
||||
branch_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
||||
branch_uu_id: Mapped[UUID] = mapped_column(String, comment="Branch UU ID")
|
||||
branch_uu_id: Mapped[str] = mapped_column(String, comment="Branch UU ID")
|
||||
|
||||
# company: Mapped["Companies"] = relationship(
|
||||
# "Company", back_populates="company_account_books", foreign_keys=[company_id]
|
||||
|
|
@ -46,7 +46,7 @@ class AccountBooks(CrudCollection):
|
|||
|
||||
__table_args__ = (
|
||||
Index(
|
||||
"account_companies_book_ndx_00", company_id, CrudCollection.expiry_starts
|
||||
"account_companies_book_ndx_00", company_id, "expiry_starts"
|
||||
),
|
||||
{"comment": "Account Book Information"},
|
||||
)
|
||||
|
|
@ -74,15 +74,15 @@ class AccountCodes(CrudCollection):
|
|||
locked: Mapped[bool] = mapped_column(SmallInteger, server_default="0")
|
||||
|
||||
company_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
||||
company_uu_id: Mapped[UUID] = mapped_column(
|
||||
company_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Company UU ID"
|
||||
)
|
||||
customer_id: Mapped[int] = mapped_column(ForeignKey("companies.id"))
|
||||
customer_uu_id: Mapped[UUID] = mapped_column(
|
||||
customer_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Customer UU ID"
|
||||
)
|
||||
person_id: Mapped[int] = mapped_column(ForeignKey("people.id"))
|
||||
person_uu_id: Mapped[UUID] = mapped_column(
|
||||
person_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Person UU ID"
|
||||
)
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ class AccountCodeParser(CrudCollection):
|
|||
account_code_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("account_codes.id"), nullable=False
|
||||
)
|
||||
account_code_uu_id: Mapped[UUID] = mapped_column(
|
||||
account_code_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Account Code UU ID"
|
||||
)
|
||||
|
||||
|
|
@ -201,17 +201,17 @@ class AccountMaster(CrudCollection):
|
|||
account_header_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("account_books.id"), nullable=False
|
||||
)
|
||||
account_header_uu_id: Mapped[UUID] = mapped_column(
|
||||
account_header_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Account Header UU ID"
|
||||
)
|
||||
project_item_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("build_decision_book_projects.id")
|
||||
)
|
||||
project_item_uu_id: Mapped[UUID] = mapped_column(
|
||||
project_item_uu_id: Mapped[str] = mapped_column(
|
||||
String, comment="Project Item UU ID"
|
||||
)
|
||||
department_id: Mapped[int] = mapped_column(ForeignKey("departments.id"))
|
||||
department_uu_id: Mapped[UUID] = mapped_column(String, comment="Department UU ID")
|
||||
department_uu_id: Mapped[str] = mapped_column(String, comment="Department UU ID")
|
||||
|
||||
# account_header: Mapped["AccountBooks"] = relationship(
|
||||
# "AccountBooks",
|
||||
|
|
@ -296,25 +296,25 @@ class AccountDetail(CrudCollection):
|
|||
account_header_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("account_books.id"), nullable=False
|
||||
)
|
||||
account_header_uu_id: Mapped[UUID] = mapped_column(
|
||||
account_header_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Account Header UU ID"
|
||||
)
|
||||
account_code_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("account_codes.id"), nullable=False
|
||||
)
|
||||
account_code_uu_id: Mapped[UUID] = mapped_column(
|
||||
account_code_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Account Code UU ID"
|
||||
)
|
||||
account_master_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("account_master.id"), nullable=False
|
||||
)
|
||||
account_master_uu_id: Mapped[UUID] = mapped_column(
|
||||
account_master_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Account Master UU ID"
|
||||
)
|
||||
project_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("build_decision_book_projects.id")
|
||||
)
|
||||
project_uu_id: Mapped[UUID] = mapped_column(String, comment="Project UU ID")
|
||||
project_uu_id: Mapped[str] = mapped_column(String, comment="Project UU ID")
|
||||
|
||||
# account_header: Mapped["AccountBooks"] = relationship(
|
||||
# "AccountBooks",
|
||||
|
|
@ -469,13 +469,13 @@ class AccountRecords(CrudCollection):
|
|||
)
|
||||
# build_id: Mapped[int] = mapped_column(ForeignKey("build.id"), nullable=True)
|
||||
build_parts_id: Mapped[int] = mapped_column(ForeignKey("build_parts.id"))
|
||||
build_parts_uu_id: Mapped[UUID] = mapped_column(
|
||||
build_parts_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=True, comment="Build Parts UU ID"
|
||||
)
|
||||
build_decision_book_id: Mapped[int] = mapped_column(
|
||||
ForeignKey("build_decision_book.id")
|
||||
)
|
||||
build_decision_book_uu_id: Mapped[UUID] = mapped_column(
|
||||
build_decision_book_uu_id: Mapped[str] = mapped_column(
|
||||
String, nullable=True, comment="Build Decision Book UU ID"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,9 +19,8 @@ from sqlalchemy import (
|
|||
)
|
||||
|
||||
from databases.sql_models.core_mixin import CrudCollection
|
||||
from databases import ApiEnumDropdown
|
||||
|
||||
from databases.extensions.selector_classes import SelectActionWithEmployee, Explanation
|
||||
from databases.extensions.selector_classes import SelectActionWithEmployee
|
||||
from api_validations.validations_request import (
|
||||
InsertBuildParts,
|
||||
InsertBuild,
|
||||
|
|
@ -29,84 +28,84 @@ from api_validations.validations_request import (
|
|||
)
|
||||
from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject
|
||||
|
||||
|
||||
class AbstractBuild:
|
||||
"""
|
||||
Abstract and explanation of Build class for end-user guide
|
||||
"""
|
||||
|
||||
gov_address_code = Explanation(
|
||||
explanation="Devletin resmi adres kodudur.",
|
||||
usage="Devletin resmi adres kodu istendiğinde kullanılır.",
|
||||
alias="Devlet Adres Kodu",
|
||||
example=["1234567890"],
|
||||
)
|
||||
build_name = Explanation(
|
||||
explanation="Bina adıdır.",
|
||||
usage="Bina adı istendiğinde kullanılır.",
|
||||
alias="Bina Adı",
|
||||
example=["X Binası", "Y Binası"],
|
||||
)
|
||||
build_no = Explanation(
|
||||
explanation="Bina numarasıdır.",
|
||||
usage="Bina numarası istendiğinde kullanılır.",
|
||||
alias="Bina No",
|
||||
example=["1234567890"],
|
||||
)
|
||||
build_types = Explanation(
|
||||
explanation="Bina türüdür.",
|
||||
usage="Bina türü istendiğinde kullanılır.",
|
||||
alias="Bina Türü",
|
||||
example=["Ofis", "Konut", "Depo"],
|
||||
)
|
||||
max_floor = Explanation(
|
||||
explanation="Bina kat sayısıdır.",
|
||||
usage="Bina kat sayısı istendiğinde kullanılır.",
|
||||
alias="Kat Sayısı",
|
||||
example=["1", "2", "3"],
|
||||
)
|
||||
underground_floor = Explanation(
|
||||
explanation="Bina bodrum kat sayısıdır.",
|
||||
usage="Bina bodrum kat sayısı istendiğinde kullanılır.",
|
||||
alias="Bodrum Kat Sayısı",
|
||||
example=["1", "2", "3"],
|
||||
)
|
||||
build_date = Explanation(
|
||||
explanation="Bina yapım tarihidir.",
|
||||
usage="Bina yapım tarihi istendiğinde kullanılır.",
|
||||
alias="Yapım Tarihi",
|
||||
example=["2021-01-01"],
|
||||
)
|
||||
tax_no = Explanation(
|
||||
explanation="Bina vergi numarasıdır.",
|
||||
usage="Bina vergi numarası istendiğinde kullanılır.",
|
||||
alias="Vergi No",
|
||||
example=["1234567890"],
|
||||
)
|
||||
lift_count = Explanation(
|
||||
explanation="Bina asansör sayısıdır.",
|
||||
usage="Bina asansör sayısı istendiğinde kullanılır.",
|
||||
alias="Asansör Sayısı",
|
||||
example=["1", "2", "3"],
|
||||
)
|
||||
heating_system = Explanation(
|
||||
explanation="Bina ısıtma sistemi var mı?",
|
||||
usage="Bina ısıtma sistemi var mı istendiğinde kullanılır.",
|
||||
alias="Isıtma Sistemi",
|
||||
example=[True, False],
|
||||
)
|
||||
cooling_system = Explanation(
|
||||
explanation="Bina soğutma sistemi var mı?",
|
||||
usage="Bina soğutma sistemi var mı istendiğinde kullanılır.",
|
||||
alias="Soğutma Sistemi",
|
||||
example=[True, False],
|
||||
)
|
||||
hot_water_system = Explanation(
|
||||
explanation="Bina sıcak su sistemi var mı?",
|
||||
usage="Bina sıcak su sistemi var mı istendiğinde kullanılır.",
|
||||
alias="Sıcak Su Sistemi",
|
||||
example=[True, False],
|
||||
)
|
||||
#
|
||||
# class AbstractBuild:
|
||||
# """
|
||||
# Abstract and explanation of Build class for end-user guide
|
||||
# """
|
||||
#
|
||||
# gov_address_code = Explanation(
|
||||
# explanation="Devletin resmi adres kodudur.",
|
||||
# usage="Devletin resmi adres kodu istendiğinde kullanılır.",
|
||||
# alias="Devlet Adres Kodu",
|
||||
# example=["1234567890"],
|
||||
# )
|
||||
# build_name = Explanation(
|
||||
# explanation="Bina adıdır.",
|
||||
# usage="Bina adı istendiğinde kullanılır.",
|
||||
# alias="Bina Adı",
|
||||
# example=["X Binası", "Y Binası"],
|
||||
# )
|
||||
# build_no = Explanation(
|
||||
# explanation="Bina numarasıdır.",
|
||||
# usage="Bina numarası istendiğinde kullanılır.",
|
||||
# alias="Bina No",
|
||||
# example=["1234567890"],
|
||||
# )
|
||||
# build_types = Explanation(
|
||||
# explanation="Bina türüdür.",
|
||||
# usage="Bina türü istendiğinde kullanılır.",
|
||||
# alias="Bina Türü",
|
||||
# example=["Ofis", "Konut", "Depo"],
|
||||
# )
|
||||
# max_floor = Explanation(
|
||||
# explanation="Bina kat sayısıdır.",
|
||||
# usage="Bina kat sayısı istendiğinde kullanılır.",
|
||||
# alias="Kat Sayısı",
|
||||
# example=["1", "2", "3"],
|
||||
# )
|
||||
# underground_floor = Explanation(
|
||||
# explanation="Bina bodrum kat sayısıdır.",
|
||||
# usage="Bina bodrum kat sayısı istendiğinde kullanılır.",
|
||||
# alias="Bodrum Kat Sayısı",
|
||||
# example=["1", "2", "3"],
|
||||
# )
|
||||
# build_date = Explanation(
|
||||
# explanation="Bina yapım tarihidir.",
|
||||
# usage="Bina yapım tarihi istendiğinde kullanılır.",
|
||||
# alias="Yapım Tarihi",
|
||||
# example=["2021-01-01"],
|
||||
# )
|
||||
# tax_no = Explanation(
|
||||
# explanation="Bina vergi numarasıdır.",
|
||||
# usage="Bina vergi numarası istendiğinde kullanılır.",
|
||||
# alias="Vergi No",
|
||||
# example=["1234567890"],
|
||||
# )
|
||||
# lift_count = Explanation(
|
||||
# explanation="Bina asansör sayısıdır.",
|
||||
# usage="Bina asansör sayısı istendiğinde kullanılır.",
|
||||
# alias="Asansör Sayısı",
|
||||
# example=["1", "2", "3"],
|
||||
# )
|
||||
# heating_system = Explanation(
|
||||
# explanation="Bina ısıtma sistemi var mı?",
|
||||
# usage="Bina ısıtma sistemi var mı istendiğinde kullanılır.",
|
||||
# alias="Isıtma Sistemi",
|
||||
# example=[True, False],
|
||||
# )
|
||||
# cooling_system = Explanation(
|
||||
# explanation="Bina soğutma sistemi var mı?",
|
||||
# usage="Bina soğutma sistemi var mı istendiğinde kullanılır.",
|
||||
# alias="Soğutma Sistemi",
|
||||
# example=[True, False],
|
||||
# )
|
||||
# hot_water_system = Explanation(
|
||||
# explanation="Bina sıcak su sistemi var mı?",
|
||||
# usage="Bina sıcak su sistemi var mı istendiğinde kullanılır.",
|
||||
# alias="Sıcak Su Sistemi",
|
||||
# example=[True, False],
|
||||
# )
|
||||
|
||||
|
||||
class BuildTypes(CrudCollection):
|
||||
|
|
@ -210,7 +209,7 @@ class Build(CrudCollection, SelectActionWithEmployee):
|
|||
__include__fields__ = []
|
||||
__access_by__ = []
|
||||
__many__table__ = RelationshipEmployee2Build
|
||||
__explain__ = AbstractBuild()
|
||||
# __explain__ = AbstractBuild()
|
||||
|
||||
gov_address_code: Mapped[str] = mapped_column(
|
||||
String, server_default="", unique=True
|
||||
|
|
@ -478,6 +477,7 @@ class BuildParts(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def create_action(cls, data: InsertBuildParts, token):
|
||||
from databases import ApiEnumDropdown
|
||||
data_dict = data.dump()
|
||||
build_from_duty = Build.select_action(
|
||||
employee_id=token.selected_company.employee_id,
|
||||
|
|
|
|||
|
|
@ -4,16 +4,6 @@ from decimal import Decimal
|
|||
from typing import List
|
||||
from fastapi import HTTPException, status
|
||||
|
||||
from databases.sql_models.core_mixin import CrudCollection
|
||||
from databases import (
|
||||
Build,
|
||||
BuildLivingSpace,
|
||||
BuildIbans,
|
||||
People,
|
||||
Companies,
|
||||
OccupantTypes,
|
||||
Services,
|
||||
)
|
||||
from api_library.date_time_actions.date_functions import system_arrow, client_arrow
|
||||
|
||||
from sqlalchemy import (
|
||||
|
|
@ -35,6 +25,8 @@ from api_validations.validations_request import (
|
|||
InsertBuildDecisionBookItemDebits,
|
||||
InsertBuildDecisionBookProjects,
|
||||
)
|
||||
from databases.sql_models.core_mixin import CrudCollection
|
||||
|
||||
|
||||
|
||||
class BuildDecisionBook(CrudCollection):
|
||||
|
|
@ -104,6 +96,9 @@ class BuildDecisionBook(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def retrieve_active_rbm(cls):
|
||||
from databases import (
|
||||
Build,
|
||||
)
|
||||
related_build = Build.find_one(id=cls.build_id)
|
||||
related_date = system_arrow.get(related_build.build_date)
|
||||
date_processed = related_date.replace(
|
||||
|
|
@ -131,7 +126,10 @@ class BuildDecisionBook(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def select_action(cls, duty_id, token=None):
|
||||
|
||||
from databases import (
|
||||
Build,
|
||||
Companies,
|
||||
)
|
||||
related_companies = Companies.select_action(duty_id_list=[int(duty_id)])
|
||||
related_companies_ids = list(
|
||||
related_.id for related_ in related_companies.all()
|
||||
|
|
@ -145,7 +143,10 @@ class BuildDecisionBook(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def create_action(cls, data: InsertDecisionBook, token=None):
|
||||
|
||||
from databases import (
|
||||
Build,
|
||||
Companies,
|
||||
)
|
||||
data_dict = data.model_dump()
|
||||
if building := Build.find_one(uu_id=data.build_uu_id):
|
||||
data_dict["build_id"] = building.id
|
||||
|
|
@ -213,6 +214,9 @@ class BuildDecisionBook(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def retrieve_valid_book(cls, bank_date, iban):
|
||||
from databases import (
|
||||
BuildIbans,
|
||||
)
|
||||
if all(
|
||||
[True if letter in str(bank_date) else False for letter in ["-", " ", ":"]]
|
||||
):
|
||||
|
|
@ -401,6 +405,11 @@ class BuildDecisionBookPerson(CrudCollection):
|
|||
return BuildDecisionBookPersonOccupants.filter_active(filter_records=False)
|
||||
|
||||
def add_occupant_type(self, occupant_type, build_living_space_id: int = None):
|
||||
from databases import (
|
||||
Build,
|
||||
BuildLivingSpace,
|
||||
Services,
|
||||
)
|
||||
from api_events.events.events.events_bind_services import (
|
||||
ServiceBindOccupantEventMethods,
|
||||
)
|
||||
|
|
@ -593,7 +602,10 @@ class BuildDecisionBookItems(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def select_action(cls, duty_id, token=None):
|
||||
|
||||
from databases import (
|
||||
Build,
|
||||
Companies,
|
||||
)
|
||||
related_companies = Companies.select_action(duty_id=duty_id)
|
||||
related_companies_ids = list(
|
||||
related_.id for related_ in related_companies.all()
|
||||
|
|
@ -635,7 +647,10 @@ class BuildDecisionBookItems(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def check_meeting_is_valid_to_start_add_attendance(cls, decision_book, token_dict):
|
||||
|
||||
from databases import (
|
||||
People,
|
||||
OccupantTypes,
|
||||
)
|
||||
active_invite = (
|
||||
BuildDecisionBookInvitations.check_invites_are_ready_for_meeting(
|
||||
selected_decision_book=decision_book,
|
||||
|
|
@ -1040,7 +1055,10 @@ class BuildDecisionBookProjects(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def select_action(cls, duty_id, token=None):
|
||||
|
||||
from databases import (
|
||||
Build,
|
||||
Companies,
|
||||
)
|
||||
related_companies = Companies.select_action(duty_id_list=[duty_id])
|
||||
related_companies_ids = list(
|
||||
related_.id for related_ in related_companies.all()
|
||||
|
|
@ -1073,11 +1091,15 @@ class BuildDecisionBookProjects(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def create_action(cls, data: InsertBuildDecisionBookProjects, token=None):
|
||||
from databases import (
|
||||
People,
|
||||
Companies,
|
||||
)
|
||||
data_dict = data.dump()
|
||||
BuildDecisionBookItems.pre_query = BuildDecisionBookItems.select_action(
|
||||
duty_id=token.duty_list["duty_id"]
|
||||
)
|
||||
People.pre_query = People.select_action(duty_id=token.duty_list["duty_id"])
|
||||
People.pre_query = People.select_action(duty_id_list=[token.duty_list["duty_id"]])
|
||||
decision_book_project_item = BuildDecisionBookItems.find_one_or_abort(
|
||||
uu_id=data_dict.get("build_decision_book_item_uu_id")
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,16 +1,12 @@
|
|||
from fastapi.exceptions import HTTPException
|
||||
|
||||
from databases import (
|
||||
Addresses,
|
||||
Duties,
|
||||
)
|
||||
from databases.sql_models.core_mixin import CrudCollection
|
||||
|
||||
from sqlalchemy import String, Integer, Boolean, ForeignKey, Index, Identity
|
||||
from sqlalchemy.orm import mapped_column, Mapped
|
||||
|
||||
from api_configs import RelationAccess
|
||||
from databases.extensions import SelectAction, Explanation
|
||||
from databases.extensions import SelectAction
|
||||
from api_validations.validations_request import (
|
||||
InsertCompany,
|
||||
UpdateCompany,
|
||||
|
|
@ -64,7 +60,9 @@ class RelationshipDutyCompany(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def match_company_to_company_commercial(cls, data: MatchCompany2Company, token):
|
||||
|
||||
from databases import (
|
||||
Duties,
|
||||
)
|
||||
token_duties_id, token_company_id = token.get("duty_id"), token.get(
|
||||
"company_id"
|
||||
)
|
||||
|
|
@ -103,7 +101,9 @@ class RelationshipDutyCompany(CrudCollection):
|
|||
|
||||
@classmethod
|
||||
def match_company_to_company_organization(cls, data: MatchCompany2Company, token):
|
||||
|
||||
from databases import (
|
||||
Duties,
|
||||
)
|
||||
token_duties_id, token_company_id = token.get("duty_id"), token.get(
|
||||
"company_id"
|
||||
)
|
||||
|
|
@ -157,152 +157,6 @@ class RelationshipDutyCompany(CrudCollection):
|
|||
)
|
||||
|
||||
|
||||
class AbstractCompany:
|
||||
"""
|
||||
Abstract and explanation of Company class for end-user guide
|
||||
"""
|
||||
|
||||
formal_name = Explanation(
|
||||
explanation="Devletin resmi kayıtlarında bulunan şirket ünvanıdır.",
|
||||
usage="Devletin resmi kayıtlarında bulunan şirket adı istendiğinde kullanılır.",
|
||||
alias="Resmi Ünvan",
|
||||
example=["X Şirketi LTD", "Y Şirketi A.Ş."],
|
||||
)
|
||||
company_type = Explanation(
|
||||
explanation="Şirketin türüdür.",
|
||||
usage="Şirketin türü istendiğinde kullanılır.",
|
||||
alias="Şirket Türü",
|
||||
example=[
|
||||
"Şahıs",
|
||||
"Limited",
|
||||
"Anonim",
|
||||
"Kolektif",
|
||||
"Komandit",
|
||||
"Kooperatif",
|
||||
"Serbest Meslek",
|
||||
"Adi Ortaklık",
|
||||
],
|
||||
)
|
||||
commercial_type = Explanation(
|
||||
explanation="Şirketin ticari türüdür.",
|
||||
usage="Şirketin ticari türü istendiğinde kullanılır.",
|
||||
alias="Ticari Tür",
|
||||
example=["Tüzel", "Birey"],
|
||||
)
|
||||
tax_no = Explanation(
|
||||
explanation="Şirketin vergi numarasıdır.",
|
||||
usage="Şirketin vergi numarası istendiğinde kullanılır.",
|
||||
alias="Vergi No",
|
||||
example=["1234567890"],
|
||||
)
|
||||
public_name = Explanation(
|
||||
explanation="Şirketin kamuoyunda bilinen adıdır.",
|
||||
usage="Şirketin kamuoyunda bilinen adı istendiğinde kullanılır.",
|
||||
alias="Piyasada Bilinen Adı",
|
||||
example=["X Şirketi", "Y Şirketi"],
|
||||
)
|
||||
company_tag = Explanation(
|
||||
explanation="Şirketin takma adı veya etiketidir.",
|
||||
usage="Şirketin yöneticisin karar verdiği takma adı veya etiketi istendiğinde kullanılır.",
|
||||
alias="Şirket Etiketi veya Takma Adı",
|
||||
example=["X", "Y"],
|
||||
)
|
||||
default_lang_type = Explanation(
|
||||
explanation="Şirketin varsayılan dil türüdür.",
|
||||
usage="Şirketin varsayılan dil türü istendiğinde kullanılır.",
|
||||
alias="Şirketin Dil Türü",
|
||||
example=["TR", "EN"],
|
||||
)
|
||||
default_money_type = Explanation(
|
||||
explanation="Şirketin varsayılan para birimi türüdür.",
|
||||
usage="Şirketin varsayılan para birimi türü istendiğinde kullanılır.",
|
||||
alias="Şirketin Para Birimi Türü",
|
||||
example=["TL", "USD", "EUR"],
|
||||
)
|
||||
is_commercial = Explanation(
|
||||
explanation="Şirketin ticari olup olmadığını belirtir.",
|
||||
usage="Şirketin ticari olup olmadığını applikasyonun anlaması için kullanılır.",
|
||||
condition=lambda commercial_type: True if commercial_type == "Şahıs" else False,
|
||||
alias="Şirket Ticari mi?",
|
||||
)
|
||||
is_blacklist = Explanation(
|
||||
explanation="Şirketin kara listeye alınıp alınmadığını belirtir.",
|
||||
usage="Şirketin kara listeye alınıp alınmadığını applikasyonun anlaması için kullanılır.",
|
||||
alias="Kara Listeye alınsın mı?",
|
||||
example=[True, False],
|
||||
)
|
||||
parent_id = Explanation(
|
||||
explanation="Şirketin sorumlu olduğu şirketin ID'sidir.",
|
||||
usage="Şirketin sorumlu olduğu şirketin ID'si istendiğinde kullanılır.",
|
||||
alias="Sorumlu Şirket",
|
||||
example=[
|
||||
"Bir şirketin sorumlu şirketi hangisi olduğunu bulmak için kullanılır.",
|
||||
],
|
||||
)
|
||||
workplace_no = Explanation(
|
||||
explanation="Şirketin iş yeri numarasıdır.",
|
||||
usage="Şirketin iş yeri numarası istendiğinde kullanılır.",
|
||||
alias="İş Yeri No",
|
||||
example=["1234567890"],
|
||||
)
|
||||
official_address_id = Explanation(
|
||||
explanation="Şirketin resmi adresidi.",
|
||||
usage="Şirketin resmi adresinin ne olduğunu bulmak için kullanılır.",
|
||||
alias="Resmi Adres",
|
||||
example=[
|
||||
"Bu şirketin adresi nedir sorusuna cevap vermek için kullanılır.",
|
||||
],
|
||||
)
|
||||
top_responsible_company_id = Explanation(
|
||||
explanation="Şirketin en üst sorumlu şirketin ID'sidir.",
|
||||
usage="Şirketin en üst sorumlu şirketin hangisi olduğunu bulmak için kullanılır.",
|
||||
alias="Ana Yetkili Şirket",
|
||||
example=[
|
||||
"Bölge veya ülke genelinde en üst sorumlu şirketin hangisi olduğunu belirtmek için kullanılır.",
|
||||
],
|
||||
)
|
||||
buildings = Explanation(
|
||||
explanation="Şirketin sahip olduğu binaların listesidir.",
|
||||
usage="Şirketin sahip olduğu binaların listesini bulmak için kullanılır.",
|
||||
alias="Sorumlu olduğu binalar Binalar",
|
||||
example=[
|
||||
"Şirketin sahip olduğu binaların listesini bulmak için kullanılır.",
|
||||
],
|
||||
)
|
||||
|
||||
def wag_create_company(self):
|
||||
"""
|
||||
Er kişiye wag_create_company fonksiyonu = fieldları manipule edebilir?
|
||||
78 ile oluşturulan bir user için wag_create_company fonksiyonu = fieldları manipule edebilir?
|
||||
"""
|
||||
return {
|
||||
"commercial_type": self.commercial_type,
|
||||
"formal_name": self.formal_name,
|
||||
"public_name": self.public_name,
|
||||
"company_type": self.company_type,
|
||||
"tax_no": self.tax_no,
|
||||
"workplace_no": self.workplace_no,
|
||||
"company_tag": self.company_tag,
|
||||
"default_lang_type": self.default_lang_type,
|
||||
"default_money_type": self.default_money_type,
|
||||
"official_address_id": self.official_address_id,
|
||||
}
|
||||
|
||||
def wag_update_company(self):
|
||||
return {
|
||||
"commercial_type": self.commercial_type,
|
||||
"formal_name": self.formal_name,
|
||||
"public_name": self.public_name,
|
||||
"company_type": self.company_type,
|
||||
"tax_no": self.tax_no,
|
||||
"workplace_no": self.workplace_no,
|
||||
"company_tag": self.company_tag,
|
||||
"default_lang_type": self.default_lang_type,
|
||||
"default_money_type": self.default_money_type,
|
||||
"official_address_id": self.official_address_id,
|
||||
}
|
||||
|
||||
|
||||
class Companies(CrudCollection, SelectAction):
|
||||
"""
|
||||
Company class based on declarative_base and CrudCollection via session
|
||||
|
|
@ -316,7 +170,7 @@ class Companies(CrudCollection, SelectAction):
|
|||
__exclude__fields__ = ["is_blacklist", "is_commercial"]
|
||||
__access_by__ = []
|
||||
__many__table__ = RelationshipDutyCompany
|
||||
__explain__ = AbstractCompany()
|
||||
# __explain__ = AbstractCompany()
|
||||
|
||||
formal_name: Mapped[str] = mapped_column(
|
||||
String, nullable=False, comment="Formal Name"
|
||||
|
|
@ -423,6 +277,9 @@ class Companies(CrudCollection, SelectAction):
|
|||
|
||||
@classmethod
|
||||
def update_action(cls, data: UpdateCompany, token):
|
||||
from databases import (
|
||||
Addresses,
|
||||
)
|
||||
data_dict = data.excluded_dump()
|
||||
duty_id = token.get("duty_id")
|
||||
company_id = token.get("company_id")
|
||||
|
|
@ -554,3 +411,151 @@ class Companies(CrudCollection, SelectAction):
|
|||
# back_populates="related_company",
|
||||
# foreign_keys="CompanyRelationship.related_company_id",
|
||||
# )
|
||||
|
||||
|
||||
#
|
||||
# class AbstractCompany:
|
||||
# """
|
||||
# Abstract and explanation of Company class for end-user guide
|
||||
# """
|
||||
#
|
||||
# formal_name = Explanation(
|
||||
# explanation="Devletin resmi kayıtlarında bulunan şirket ünvanıdır.",
|
||||
# usage="Devletin resmi kayıtlarında bulunan şirket adı istendiğinde kullanılır.",
|
||||
# alias="Resmi Ünvan",
|
||||
# example=["X Şirketi LTD", "Y Şirketi A.Ş."],
|
||||
# )
|
||||
# company_type = Explanation(
|
||||
# explanation="Şirketin türüdür.",
|
||||
# usage="Şirketin türü istendiğinde kullanılır.",
|
||||
# alias="Şirket Türü",
|
||||
# example=[
|
||||
# "Şahıs",
|
||||
# "Limited",
|
||||
# "Anonim",
|
||||
# "Kolektif",
|
||||
# "Komandit",
|
||||
# "Kooperatif",
|
||||
# "Serbest Meslek",
|
||||
# "Adi Ortaklık",
|
||||
# ],
|
||||
# )
|
||||
# commercial_type = Explanation(
|
||||
# explanation="Şirketin ticari türüdür.",
|
||||
# usage="Şirketin ticari türü istendiğinde kullanılır.",
|
||||
# alias="Ticari Tür",
|
||||
# example=["Tüzel", "Birey"],
|
||||
# )
|
||||
# tax_no = Explanation(
|
||||
# explanation="Şirketin vergi numarasıdır.",
|
||||
# usage="Şirketin vergi numarası istendiğinde kullanılır.",
|
||||
# alias="Vergi No",
|
||||
# example=["1234567890"],
|
||||
# )
|
||||
# public_name = Explanation(
|
||||
# explanation="Şirketin kamuoyunda bilinen adıdır.",
|
||||
# usage="Şirketin kamuoyunda bilinen adı istendiğinde kullanılır.",
|
||||
# alias="Piyasada Bilinen Adı",
|
||||
# example=["X Şirketi", "Y Şirketi"],
|
||||
# )
|
||||
# company_tag = Explanation(
|
||||
# explanation="Şirketin takma adı veya etiketidir.",
|
||||
# usage="Şirketin yöneticisin karar verdiği takma adı veya etiketi istendiğinde kullanılır.",
|
||||
# alias="Şirket Etiketi veya Takma Adı",
|
||||
# example=["X", "Y"],
|
||||
# )
|
||||
# default_lang_type = Explanation(
|
||||
# explanation="Şirketin varsayılan dil türüdür.",
|
||||
# usage="Şirketin varsayılan dil türü istendiğinde kullanılır.",
|
||||
# alias="Şirketin Dil Türü",
|
||||
# example=["TR", "EN"],
|
||||
# )
|
||||
# default_money_type = Explanation(
|
||||
# explanation="Şirketin varsayılan para birimi türüdür.",
|
||||
# usage="Şirketin varsayılan para birimi türü istendiğinde kullanılır.",
|
||||
# alias="Şirketin Para Birimi Türü",
|
||||
# example=["TL", "USD", "EUR"],
|
||||
# )
|
||||
# is_commercial = Explanation(
|
||||
# explanation="Şirketin ticari olup olmadığını belirtir.",
|
||||
# usage="Şirketin ticari olup olmadığını applikasyonun anlaması için kullanılır.",
|
||||
# condition=lambda commercial_type: True if commercial_type == "Şahıs" else False,
|
||||
# alias="Şirket Ticari mi?",
|
||||
# )
|
||||
# is_blacklist = Explanation(
|
||||
# explanation="Şirketin kara listeye alınıp alınmadığını belirtir.",
|
||||
# usage="Şirketin kara listeye alınıp alınmadığını applikasyonun anlaması için kullanılır.",
|
||||
# alias="Kara Listeye alınsın mı?",
|
||||
# example=[True, False],
|
||||
# )
|
||||
# parent_id = Explanation(
|
||||
# explanation="Şirketin sorumlu olduğu şirketin ID'sidir.",
|
||||
# usage="Şirketin sorumlu olduğu şirketin ID'si istendiğinde kullanılır.",
|
||||
# alias="Sorumlu Şirket",
|
||||
# example=[
|
||||
# "Bir şirketin sorumlu şirketi hangisi olduğunu bulmak için kullanılır.",
|
||||
# ],
|
||||
# )
|
||||
# workplace_no = Explanation(
|
||||
# explanation="Şirketin iş yeri numarasıdır.",
|
||||
# usage="Şirketin iş yeri numarası istendiğinde kullanılır.",
|
||||
# alias="İş Yeri No",
|
||||
# example=["1234567890"],
|
||||
# )
|
||||
# official_address_id = Explanation(
|
||||
# explanation="Şirketin resmi adresidi.",
|
||||
# usage="Şirketin resmi adresinin ne olduğunu bulmak için kullanılır.",
|
||||
# alias="Resmi Adres",
|
||||
# example=[
|
||||
# "Bu şirketin adresi nedir sorusuna cevap vermek için kullanılır.",
|
||||
# ],
|
||||
# )
|
||||
# top_responsible_company_id = Explanation(
|
||||
# explanation="Şirketin en üst sorumlu şirketin ID'sidir.",
|
||||
# usage="Şirketin en üst sorumlu şirketin hangisi olduğunu bulmak için kullanılır.",
|
||||
# alias="Ana Yetkili Şirket",
|
||||
# example=[
|
||||
# "Bölge veya ülke genelinde en üst sorumlu şirketin hangisi olduğunu belirtmek için kullanılır.",
|
||||
# ],
|
||||
# )
|
||||
# buildings = Explanation(
|
||||
# explanation="Şirketin sahip olduğu binaların listesidir.",
|
||||
# usage="Şirketin sahip olduğu binaların listesini bulmak için kullanılır.",
|
||||
# alias="Sorumlu olduğu binalar Binalar",
|
||||
# example=[
|
||||
# "Şirketin sahip olduğu binaların listesini bulmak için kullanılır.",
|
||||
# ],
|
||||
# )
|
||||
#
|
||||
# def wag_create_company(self):
|
||||
# """
|
||||
# Er kişiye wag_create_company fonksiyonu = fieldları manipule edebilir?
|
||||
# 78 ile oluşturulan bir user için wag_create_company fonksiyonu = fieldları manipule edebilir?
|
||||
# """
|
||||
# return {
|
||||
# "commercial_type": self.commercial_type,
|
||||
# "formal_name": self.formal_name,
|
||||
# "public_name": self.public_name,
|
||||
# "company_type": self.company_type,
|
||||
# "tax_no": self.tax_no,
|
||||
# "workplace_no": self.workplace_no,
|
||||
# "company_tag": self.company_tag,
|
||||
# "default_lang_type": self.default_lang_type,
|
||||
# "default_money_type": self.default_money_type,
|
||||
# "official_address_id": self.official_address_id,
|
||||
# }
|
||||
#
|
||||
# def wag_update_company(self):
|
||||
# return {
|
||||
# "commercial_type": self.commercial_type,
|
||||
# "formal_name": self.formal_name,
|
||||
# "public_name": self.public_name,
|
||||
# "company_type": self.company_type,
|
||||
# "tax_no": self.tax_no,
|
||||
# "workplace_no": self.workplace_no,
|
||||
# "company_tag": self.company_tag,
|
||||
# "default_lang_type": self.default_lang_type,
|
||||
# "default_money_type": self.default_money_type,
|
||||
# "official_address_id": self.official_address_id,
|
||||
# }
|
||||
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class EmployeesSalaries(CrudCollection):
|
|||
# )
|
||||
|
||||
__table_args__ = (
|
||||
Index("_employee_salaries_ndx_00", people_id, CrudCollection.expiry_starts),
|
||||
Index("_employee_salaries_ndx_00", people_id, "expiry_starts"),
|
||||
{"comment": "Employee Salaries Information"},
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -321,11 +321,11 @@ class CrudCollection(BaseMixin, SmartQueryMixin):
|
|||
__repr__ = ReprMixin.__repr__
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
uu_id: Mapped[UUID] = mapped_column(
|
||||
uu_id: Mapped[str] = mapped_column(
|
||||
UUID, server_default=text("gen_random_uuid()"), index=True, unique=True
|
||||
)
|
||||
|
||||
ref_id: Mapped[UUID] = mapped_column(String(100), nullable=True, index=True)
|
||||
ref_id: Mapped[str] = mapped_column(String(100), nullable=True, index=True)
|
||||
created_at: Mapped[TIMESTAMP] = mapped_column(
|
||||
"created_at",
|
||||
TIMESTAMP(timezone=True),
|
||||
|
|
@ -342,7 +342,7 @@ class CrudCollection(BaseMixin, SmartQueryMixin):
|
|||
nullable=False,
|
||||
index=True,
|
||||
)
|
||||
cryp_uu_id: Mapped[UUID] = mapped_column(String, nullable=True, index=True)
|
||||
cryp_uu_id: Mapped[str] = mapped_column(String, nullable=True, index=True)
|
||||
|
||||
created_by: Mapped[str] = mapped_column(String, nullable=True)
|
||||
created_by_id: Mapped[int] = mapped_column(Integer, nullable=True)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from fastapi import HTTPException
|
|||
|
||||
from databases.sql_models.core_mixin import CrudCollection
|
||||
from databases.extensions import SelectAction, SelectActionWithEmployee
|
||||
from databases import Employees, Duties
|
||||
from databases.extensions.auth import UserLoginModule
|
||||
|
||||
from sqlalchemy import (
|
||||
String,
|
||||
|
|
@ -24,7 +24,6 @@ from sqlalchemy import (
|
|||
from sqlalchemy.orm import mapped_column, relationship, Mapped
|
||||
|
||||
from api_validations.validations_request import InsertUsers, InsertPerson
|
||||
from databases.extensions.auth import UserLoginModule
|
||||
|
||||
|
||||
class UsersTokens(CrudCollection):
|
||||
|
|
@ -219,7 +218,7 @@ class Users(CrudCollection, UserLoginModule, SelectAction):
|
|||
# }
|
||||
|
||||
def get_employee_and_duty_details(self):
|
||||
|
||||
from databases import Employees, Duties
|
||||
found_person = People.find_one(id=self.person_id)
|
||||
found_employees = Employees.filter_by_active(
|
||||
people_id=found_person.id, is_confirmed=True
|
||||
|
|
@ -381,6 +380,7 @@ class People(CrudCollection, SelectAction):
|
|||
|
||||
@classmethod
|
||||
def create_action(cls, data: InsertPerson, token):
|
||||
from databases import Employees, Duties
|
||||
token_duties_id, token_company_id = (
|
||||
token.selected_company.duty_id,
|
||||
token.selected_company.company_id,
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class ApiEnumDropdown(BaseCollection):
|
|||
__exclude__fields__ = ["enum_class"]
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
uu_id: Mapped[UUID] = mapped_column(
|
||||
uu_id: Mapped[str] = mapped_column(
|
||||
UUID, server_default=text("gen_random_uuid()"), index=True, unique=True
|
||||
)
|
||||
enum_class: Mapped[str] = mapped_column(
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ COPY ../api_objects ./service_app/api_objects
|
|||
COPY ../api_configs ./service_app/api_configs
|
||||
COPY ../api_events ./service_app/api_events
|
||||
COPY ../api_library ./service_app/api_library
|
||||
COPY ../api_validations ./service_app_init/api_validations
|
||||
COPY ../api_validations ./service_app/api_validations
|
||||
|
||||
WORKDIR /service_app
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,14 @@ from fastapi.exceptions import HTTPException
|
|||
|
||||
from middlewares.token_middleware import AuthHeaderMiddleware
|
||||
from application.create_file import create_app
|
||||
from application.app_runner_init import create_endpoints_from_api_functions
|
||||
from handlers_exception import (
|
||||
exception_handler_http,
|
||||
exception_handler_exception,
|
||||
)
|
||||
from prometheus_fastapi_instrumentator import Instrumentator
|
||||
|
||||
# from prometheus_client import Counter, Histogram
|
||||
|
||||
from .app_runner_init import create_endpoints_from_api_functions
|
||||
|
||||
app = create_app()
|
||||
Instrumentator().instrument(app=app).expose(app=app)
|
||||
|
|
|
|||
Loading…
Reference in New Issue