dev_d #1
@@ -1,5 +1,4 @@
|
||||
from .database_engine import async_session_
|
||||
from .models import Worker,Component, Order
|
||||
from .models import Worker, Component, Order, job_title
|
||||
|
||||
|
||||
__all__ = ["Worker", "Component", "Order", "async_session_"]
|
||||
__all__ = ["Worker", "Component", "Order", "async_session_", "job_title"]
|
||||
|
@@ -1,8 +1,9 @@
|
||||
from sqlalchemy import Column, Integer, String, Date, ForeignKey, func, Null,BIGINT
|
||||
from sqlalchemy import Column, Integer, String, Date, ForeignKey, func, Null, BIGINT
|
||||
from sqlalchemy.dialects.postgresql import ENUM
|
||||
from sqlalchemy.orm import relationship, DeclarativeBase
|
||||
|
||||
status_enum = ENUM('Выполнено', 'В процессе', 'Создано', 'Ожидание комплектующих', name='status')
|
||||
job_title = ENUM('Начальник цеха', 'Мастер', 'Сборщик', name='job_title')
|
||||
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
@@ -25,7 +26,8 @@ class Worker(Base):
|
||||
telegram_id = Column(BIGINT, unique=True, nullable=False)
|
||||
name = Column(String, nullable=False)
|
||||
email = Column(String, nullable=True)
|
||||
phone_number = Column(String, nullable=False)
|
||||
phone_number = Column(String, default=None)
|
||||
job_title = Column(job_title, default='Сборщик'),
|
||||
created_at = Column(Date, server_default=func.now())
|
||||
updated_at = Column(Date, onupdate=func.now())
|
||||
|
||||
|
@@ -62,9 +62,8 @@ async def orders_menu(message: Message):
|
||||
async def get_order_worker_id(callback: CallbackQuery, state: FSMContext):
|
||||
await state.set_state(OrderForm.worker_id)
|
||||
async with async_session_() as session:
|
||||
async with session.begin():
|
||||
result = await session.execute(select(Worker.name, Worker.telegram_id))
|
||||
workers = result.all()
|
||||
result = await session.execute(select(Worker.name, Worker.telegram_id).where(Worker.job_title == "Сборщик"))
|
||||
workers = result.all()
|
||||
await callback.message.answer("Введите сборщика ответственного за заказ:",
|
||||
reply_markup=create_inline_kb(
|
||||
**{f"set_worker_in_order_{tg_id}": name for name, tg_id in workers}))
|
||||
|
@@ -1,15 +1,21 @@
|
||||
|
||||
CREATE TYPE job_title AS ENUM ('Начальник цеха','Мастер','Сборщик');
|
||||
CREATE TYPE status AS ENUM ('Выполнено','В процессе','Создано','Ожидание комплектующих');
|
||||
|
||||
|
||||
CREATE TABLE workers
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
telegram_id BIGINT UNIQUE NOT NULL,
|
||||
name VARCHAR NOT NULL,
|
||||
email VARCHAR(50),
|
||||
phone_number VARCHAR(20) NOT NULL,
|
||||
phone_number VARCHAR(20),
|
||||
job_title job_title default 'Сборщик',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TYPE status AS ENUM ('Выполнено','В процессе','Создано','Ожидание комплектующих');
|
||||
|
||||
|
||||
CREATE TABLE orders
|
||||
(
|
||||
|
Reference in New Issue
Block a user