Save file and upload file functions in vouchers de duplicated
This commit is contained in:
parent
d49be23056
commit
9a1844100f
@ -1,5 +1,6 @@
|
|||||||
import uuid
|
import uuid
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
from typing import List
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, Security
|
from fastapi import APIRouter, Depends, Security
|
||||||
from fastapi.responses import StreamingResponse
|
from fastapi.responses import StreamingResponse
|
||||||
@ -9,6 +10,7 @@ from ..core.security import get_user
|
|||||||
from ..models.voucher import DbImage
|
from ..models.voucher import DbImage
|
||||||
from ..db.session import SessionLocal
|
from ..db.session import SessionLocal
|
||||||
from ..schemas.auth import UserToken
|
from ..schemas.auth import UserToken
|
||||||
|
import brewman.schemas.voucher as output
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@ -34,3 +36,17 @@ def db_image(
|
|||||||
else:
|
else:
|
||||||
item = BytesIO(item.image)
|
item = BytesIO(item.image)
|
||||||
return StreamingResponse(item, media_type="image/jpeg")
|
return StreamingResponse(item, media_type="image/jpeg")
|
||||||
|
|
||||||
|
|
||||||
|
def save_files(voucher_id: uuid.UUID, i: List[bytes], t: List[bytes], db: Session):
|
||||||
|
for index, value in enumerate(i):
|
||||||
|
db.add(DbImage(voucher_id, "voucher", i[index], t[index]))
|
||||||
|
|
||||||
|
|
||||||
|
def update_files(voucher_id: uuid.UUID, data: List[output.ImageUpload], i: List[bytes], t: List[bytes], db: Session):
|
||||||
|
old = [f.id_ for f in data if f.id_]
|
||||||
|
images = db.query(DbImage).filter(DbImage.resource_id == voucher_id).all()
|
||||||
|
for image in [i for i in images if i.id not in old]:
|
||||||
|
db.delete(image)
|
||||||
|
for index, value in enumerate(i):
|
||||||
|
db.add(DbImage(voucher_id, "voucher", i[index], t[index]))
|
||||||
|
@ -9,13 +9,13 @@ from fastapi import (
|
|||||||
status,
|
status,
|
||||||
Depends,
|
Depends,
|
||||||
Security,
|
Security,
|
||||||
UploadFile,
|
|
||||||
File,
|
File,
|
||||||
Request,
|
Request,
|
||||||
)
|
)
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from .db_image import save_files, update_files
|
||||||
from .voucher import (
|
from .voucher import (
|
||||||
voucher_info,
|
voucher_info,
|
||||||
check_voucher_lock_info,
|
check_voucher_lock_info,
|
||||||
@ -53,13 +53,11 @@ def save_route(
|
|||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.EmployeeBenefitIn = Depends(schema_in.EmployeeBenefitIn.load_form),
|
data: schema_in.EmployeeBenefitIn = Depends(schema_in.EmployeeBenefitIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["employee-benefit"]),
|
user: UserToken = Security(get_user, scopes=["employee-benefit"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
dt = get_last_day(data.date_)
|
dt = get_last_day(data.date_)
|
||||||
days_in_month = dt.day
|
days_in_month = dt.day
|
||||||
item: Voucher = save(data, dt, user, db)
|
item: Voucher = save(data, dt, user, db)
|
||||||
@ -67,7 +65,7 @@ def save_route(
|
|||||||
item, data.employee_benefits, days_in_month, db
|
item, data.employee_benefits, days_in_month, db
|
||||||
)
|
)
|
||||||
save_journals(item, exp, total, db)
|
save_journals(item, exp, total, db)
|
||||||
save_files(i + t, db)
|
save_files(item.id, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
info = voucher_info(item, db)
|
info = voucher_info(item, db)
|
||||||
@ -170,25 +168,17 @@ def save_journals(voucher: Voucher, exp: int, total: int, db: Session):
|
|||||||
voucher.journals.append(journal)
|
voucher.journals.append(journal)
|
||||||
|
|
||||||
|
|
||||||
def save_files(files: List[UploadFile], db: Session):
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{id_}", response_model=output.Voucher)
|
@router.put("/{id_}", response_model=output.Voucher)
|
||||||
def update_route(
|
def update_route(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.EmployeeBenefitIn = Depends(schema_in.EmployeeBenefitIn.load_form),
|
data: schema_in.EmployeeBenefitIn = Depends(schema_in.EmployeeBenefitIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["employee-benefit"]),
|
user: UserToken = Security(get_user, scopes=["employee-benefit"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
dt = get_last_day(data.date_)
|
dt = get_last_day(data.date_)
|
||||||
days_in_month = dt.day
|
days_in_month = dt.day
|
||||||
item: Voucher = update(id_, data, user, db)
|
item: Voucher = update(id_, data, user, db)
|
||||||
@ -199,7 +189,7 @@ def update_route(
|
|||||||
)
|
)
|
||||||
update_journals(item, exp, total)
|
update_journals(item, exp, total)
|
||||||
# journals_valid(voucher)
|
# journals_valid(voucher)
|
||||||
update_files(data, i + t, db)
|
update_files(item.id, data.files, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
return voucher_info(item, db)
|
return voucher_info(item, db)
|
||||||
@ -267,18 +257,6 @@ def update_journals(voucher: Voucher, exp: int, total: int):
|
|||||||
journal.amount = total
|
journal.amount = total
|
||||||
|
|
||||||
|
|
||||||
def update_files(data: schema_in.VoucherIn, files: List[UploadFile], db: Session):
|
|
||||||
pass
|
|
||||||
# old_files = [
|
|
||||||
# uuid.UUID(f["id"]) for f in json["files"] if "id" in f and f["id"] is not None
|
|
||||||
# ]
|
|
||||||
# images = db.query(DbImage).filter(DbImage.resource_id == voucher.id).all()
|
|
||||||
# for image in [i for i in images if i.id not in old_files]:
|
|
||||||
# db.delete(image)
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{id_}", response_model=output.Voucher)
|
@router.get("/{id_}", response_model=output.Voucher)
|
||||||
def get_id(
|
def get_id(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
|
@ -10,13 +10,13 @@ from fastapi import (
|
|||||||
status,
|
status,
|
||||||
Depends,
|
Depends,
|
||||||
Security,
|
Security,
|
||||||
UploadFile,
|
|
||||||
File,
|
File,
|
||||||
Request,
|
Request,
|
||||||
)
|
)
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from .db_image import save_files, update_files
|
||||||
from .voucher import (
|
from .voucher import (
|
||||||
voucher_info,
|
voucher_info,
|
||||||
check_voucher_lock_info,
|
check_voucher_lock_info,
|
||||||
@ -49,17 +49,15 @@ def save_route(
|
|||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.IssueIn = Depends(schema_in.IssueIn.load_form),
|
data: schema_in.IssueIn = Depends(schema_in.IssueIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["issue"]),
|
user: UserToken = Security(get_user, scopes=["issue"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
item, batch_consumed = save(data, user, db)
|
item, batch_consumed = save(data, user, db)
|
||||||
amount = save_inventories(item, data.inventories, batch_consumed, db)
|
amount = save_inventories(item, data.inventories, batch_consumed, db)
|
||||||
save_journals(item, data.source, data.destination, amount, db)
|
save_journals(item, data.source, data.destination, amount, db)
|
||||||
save_files(i + t, db)
|
save_files(item.id, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
info = voucher_info(item, db)
|
info = voucher_info(item, db)
|
||||||
@ -169,29 +167,21 @@ def save_journals(
|
|||||||
db.add(d)
|
db.add(d)
|
||||||
|
|
||||||
|
|
||||||
def save_files(files: List[UploadFile], db: Session):
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{id_}", response_model=output.Voucher)
|
@router.put("/{id_}", response_model=output.Voucher)
|
||||||
def update_route(
|
def update_route(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.IssueIn = Depends(schema_in.IssueIn.load_form),
|
data: schema_in.IssueIn = Depends(schema_in.IssueIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["issue"]),
|
user: UserToken = Security(get_user, scopes=["issue"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
item, batch_consumed = update(id_, data, user, db)
|
item, batch_consumed = update(id_, data, user, db)
|
||||||
amount = update_inventories(item, data.inventories, batch_consumed, db)
|
amount = update_inventories(item, data.inventories, batch_consumed, db)
|
||||||
update_journals(item, data.source, data.destination, amount)
|
update_journals(item, data.source, data.destination, amount)
|
||||||
update_files(data, i + t, db)
|
update_files(item.id, data.files, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
# item: Voucher = db.query(Voucher).filter(Voucher.id == item.id).first()
|
# item: Voucher = db.query(Voucher).filter(Voucher.id == item.id).first()
|
||||||
@ -333,18 +323,6 @@ def update_journals(
|
|||||||
item.amount = amount
|
item.amount = amount
|
||||||
|
|
||||||
|
|
||||||
def update_files(data: schema_in.IssueIn, files: List[UploadFile], db: Session):
|
|
||||||
pass
|
|
||||||
# old_files = [
|
|
||||||
# uuid.UUID(f["id"]) for f in json["files"] if "id" in f and f["id"] is not None
|
|
||||||
# ]
|
|
||||||
# images = db.query(DbImage).filter(DbImage.resource_id == voucher.id).all()
|
|
||||||
# for image in [i for i in images if i.id not in old_files]:
|
|
||||||
# db.delete(image)
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{id_}", response_model=output.Voucher)
|
@router.get("/{id_}", response_model=output.Voucher)
|
||||||
def get_id(
|
def get_id(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
|
@ -8,13 +8,13 @@ from fastapi import (
|
|||||||
status,
|
status,
|
||||||
Depends,
|
Depends,
|
||||||
Security,
|
Security,
|
||||||
UploadFile,
|
|
||||||
File,
|
File,
|
||||||
Request,
|
Request,
|
||||||
)
|
)
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from .db_image import save_files, update_files
|
||||||
from .voucher import (
|
from .voucher import (
|
||||||
voucher_info,
|
voucher_info,
|
||||||
check_voucher_lock_info,
|
check_voucher_lock_info,
|
||||||
@ -26,7 +26,7 @@ from ..models import AccountBase
|
|||||||
from ..schemas.auth import UserToken
|
from ..schemas.auth import UserToken
|
||||||
from ..core.security import get_current_active_user as get_user
|
from ..core.security import get_current_active_user as get_user
|
||||||
from ..db.session import SessionLocal
|
from ..db.session import SessionLocal
|
||||||
from ..models.voucher import Voucher, VoucherType, Journal, DbImage
|
from ..models.voucher import Voucher, VoucherType, Journal
|
||||||
import brewman.schemas.voucher as output
|
import brewman.schemas.voucher as output
|
||||||
import brewman.schemas.input as schema_in
|
import brewman.schemas.input as schema_in
|
||||||
|
|
||||||
@ -93,11 +93,6 @@ def save(data: schema_in.JournalIn, user: UserToken, db: Session) -> Voucher:
|
|||||||
return voucher
|
return voucher
|
||||||
|
|
||||||
|
|
||||||
def save_files(voucher_id: uuid.UUID, i: List[bytes], t: List[bytes], db: Session):
|
|
||||||
for index, value in enumerate(i):
|
|
||||||
db.add(DbImage(voucher_id, "voucher", i[index], t[index]))
|
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{id_}", response_model=output.Voucher)
|
@router.put("/{id_}", response_model=output.Voucher)
|
||||||
def update_route(
|
def update_route(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
@ -175,15 +170,6 @@ def update(
|
|||||||
return voucher
|
return voucher
|
||||||
|
|
||||||
|
|
||||||
def update_files(voucher_id: uuid.UUID, data: List[output.ImageUpload], i: List[bytes], t: List[bytes], db: Session):
|
|
||||||
old = [f.id_ for f in data if f.id_]
|
|
||||||
images = db.query(DbImage).filter(DbImage.resource_id == voucher_id).all()
|
|
||||||
for image in [i for i in images if i.id not in old]:
|
|
||||||
db.delete(image)
|
|
||||||
for index, value in enumerate(i):
|
|
||||||
db.add(DbImage(voucher_id, "voucher", i[index], t[index]))
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{id_}", response_model=output.Voucher)
|
@router.get("/{id_}", response_model=output.Voucher)
|
||||||
def get_id(
|
def get_id(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
|
@ -9,7 +9,6 @@ from fastapi import (
|
|||||||
status,
|
status,
|
||||||
Depends,
|
Depends,
|
||||||
Security,
|
Security,
|
||||||
UploadFile,
|
|
||||||
File,
|
File,
|
||||||
Request,
|
Request,
|
||||||
)
|
)
|
||||||
@ -17,6 +16,7 @@ from sqlalchemy import func
|
|||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from .db_image import save_files, update_files
|
||||||
from .voucher import (
|
from .voucher import (
|
||||||
voucher_info,
|
voucher_info,
|
||||||
check_voucher_lock_info,
|
check_voucher_lock_info,
|
||||||
@ -49,17 +49,15 @@ def save_route(
|
|||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["purchase"]),
|
user: UserToken = Security(get_user, scopes=["purchase"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
item: Voucher = save(data, user, db)
|
item: Voucher = save(data, user, db)
|
||||||
save_inventories(item, data.inventories, db)
|
save_inventories(item, data.inventories, db)
|
||||||
save_journals(item, data.vendor, db)
|
save_journals(item, data.vendor, db)
|
||||||
save_files(i + t, db)
|
save_files(item.id, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
info = voucher_info(item, db)
|
info = voucher_info(item, db)
|
||||||
@ -147,30 +145,22 @@ def save_journals(voucher: Voucher, ven: schema_in.AccountLink, db: Session):
|
|||||||
db.add(item)
|
db.add(item)
|
||||||
|
|
||||||
|
|
||||||
def save_files(files: List[UploadFile], db: Session):
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{id_}", response_model=output.Voucher)
|
@router.put("/{id_}", response_model=output.Voucher)
|
||||||
def update_route(
|
def update_route(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["purchase"]),
|
user: UserToken = Security(get_user, scopes=["purchase"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
item: Voucher = update(id_, data, user, db)
|
item: Voucher = update(id_, data, user, db)
|
||||||
update_inventory(item, data.inventories, db)
|
update_inventory(item, data.inventories, db)
|
||||||
update_journals(item, data.vendor, db)
|
update_journals(item, data.vendor, db)
|
||||||
# journals_valid(voucher)
|
# journals_valid(voucher)
|
||||||
update_files(data, i + t, db)
|
update_files(item.id, data.files, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
return voucher_info(item, db)
|
return voucher_info(item, db)
|
||||||
@ -330,18 +320,6 @@ def update_journals(voucher: Voucher, ven: schema_in.AccountLink, db):
|
|||||||
db.add(item)
|
db.add(item)
|
||||||
|
|
||||||
|
|
||||||
def update_files(data: schema_in.PurchaseIn, files: List[UploadFile], db: Session):
|
|
||||||
pass
|
|
||||||
# old_files = [
|
|
||||||
# uuid.UUID(f["id"]) for f in json["files"] if "id" in f and f["id"] is not None
|
|
||||||
# ]
|
|
||||||
# images = db.query(DbImage).filter(DbImage.resource_id == voucher.id).all()
|
|
||||||
# for image in [i for i in images if i.id not in old_files]:
|
|
||||||
# db.delete(image)
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{id_}", response_model=output.Voucher)
|
@router.get("/{id_}", response_model=output.Voucher)
|
||||||
def get_id(
|
def get_id(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
|
@ -9,13 +9,13 @@ from fastapi import (
|
|||||||
status,
|
status,
|
||||||
Depends,
|
Depends,
|
||||||
Security,
|
Security,
|
||||||
UploadFile,
|
|
||||||
File,
|
File,
|
||||||
Request,
|
Request,
|
||||||
)
|
)
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from .db_image import save_files, update_files
|
||||||
from .voucher import (
|
from .voucher import (
|
||||||
voucher_info,
|
voucher_info,
|
||||||
check_voucher_lock_info,
|
check_voucher_lock_info,
|
||||||
@ -48,8 +48,8 @@ def save_route(
|
|||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["purchase-return"]),
|
user: UserToken = Security(get_user, scopes=["purchase-return"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
@ -58,7 +58,7 @@ def save_route(
|
|||||||
item: Voucher = save(data, user, db)
|
item: Voucher = save(data, user, db)
|
||||||
save_inventories(item, data.inventories, db)
|
save_inventories(item, data.inventories, db)
|
||||||
save_journals(item, data.vendor, db)
|
save_journals(item, data.vendor, db)
|
||||||
save_files(i + t, db)
|
save_files(item.id, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
info = voucher_info(item, db)
|
info = voucher_info(item, db)
|
||||||
@ -143,30 +143,22 @@ def save_journals(voucher: Voucher, ven: schema_in.AccountLink, db: Session):
|
|||||||
db.add(item)
|
db.add(item)
|
||||||
|
|
||||||
|
|
||||||
def save_files(files: List[UploadFile], db: Session):
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{id_}", response_model=output.Voucher)
|
@router.put("/{id_}", response_model=output.Voucher)
|
||||||
def update_route(
|
def update_route(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
request: Request,
|
request: Request,
|
||||||
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
data: schema_in.PurchaseIn = Depends(schema_in.PurchaseIn.load_form),
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
i: List[UploadFile] = File(None),
|
i: List[bytes] = File(None),
|
||||||
t: List[UploadFile] = File(None),
|
t: List[bytes] = File(None),
|
||||||
user: UserToken = Security(get_user, scopes=["purchase-return"]),
|
user: UserToken = Security(get_user, scopes=["purchase-return"]),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
i = i or []
|
|
||||||
t = t or []
|
|
||||||
item: Voucher = update(id_, data, user, db)
|
item: Voucher = update(id_, data, user, db)
|
||||||
update_inventory(item, data.inventories, db)
|
update_inventory(item, data.inventories, db)
|
||||||
update_journals(item, data.vendor, db)
|
update_journals(item, data.vendor, db)
|
||||||
# journals_valid(voucher)
|
# journals_valid(voucher)
|
||||||
update_files(data, i + t, db)
|
update_files(item.id, data.files, i, t, db)
|
||||||
db.commit()
|
db.commit()
|
||||||
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
set_date(data.date_.strftime("%d-%b-%Y"), request.session)
|
||||||
return voucher_info(item, db)
|
return voucher_info(item, db)
|
||||||
@ -273,18 +265,6 @@ def update_journals(voucher: Voucher, ven: schema_in.AccountLink, db):
|
|||||||
db.add(item)
|
db.add(item)
|
||||||
|
|
||||||
|
|
||||||
def update_files(data: schema_in.PurchaseIn, files: List[UploadFile], db: Session):
|
|
||||||
pass
|
|
||||||
# old_files = [
|
|
||||||
# uuid.UUID(f["id"]) for f in json["files"] if "id" in f and f["id"] is not None
|
|
||||||
# ]
|
|
||||||
# images = db.query(DbImage).filter(DbImage.resource_id == voucher.id).all()
|
|
||||||
# for image in [i for i in images if i.id not in old_files]:
|
|
||||||
# db.delete(image)
|
|
||||||
# for key, value in files.items():
|
|
||||||
# db.add(DbImage(voucher.id, "voucher", value["f"], value["t"]))
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{id_}", response_model=output.Voucher)
|
@router.get("/{id_}", response_model=output.Voucher)
|
||||||
def get_id(
|
def get_id(
|
||||||
id_: uuid.UUID,
|
id_: uuid.UUID,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user