Fixing string padding in import
This commit is contained in:
1 parent
a0bd7f2c27
commit
aca15db9bf
3 files changed
+21
-43
No files matched your search
@@ -21,14 +21,9 @@ async def get(db: AsyncSession, inventory_id: str) -> ImportedPart | None:
|
||||
return await db.get(ImportedPart, inventory_id)
|
||||
|
||||
|
||||
async def list_all(
|
||||
db: AsyncSession, skip: int = 0, limit: int = 500
|
||||
) -> list[ImportedPart]:
|
||||
async def list_all(db: AsyncSession, skip: int = 0, limit: int = 500) -> list[ImportedPart]:
|
||||
result = await db.execute(
|
||||
select(ImportedPart)
|
||||
.order_by(ImportedPart.InventoryID)
|
||||
.offset(skip)
|
||||
.limit(limit)
|
||||
select(ImportedPart).order_by(ImportedPart.InventoryID).offset(skip).limit(limit)
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
@@ -42,9 +37,7 @@ async def list_filtered(
|
||||
q = select(ImportedPart)
|
||||
if description.strip():
|
||||
q = q.where(ImportedPart.Description.ilike(f"%{description.strip()}%"))
|
||||
result = await db.execute(
|
||||
q.order_by(ImportedPart.InventoryID).offset(skip).limit(limit)
|
||||
)
|
||||
result = await db.execute(q.order_by(ImportedPart.InventoryID).offset(skip).limit(limit))
|
||||
return list(result.scalars().all())
|
||||
|
||||
|
||||
@@ -85,7 +78,7 @@ async def upsert_bulk(db: AsyncSession, records: list[dict]) -> tuple[int, int]:
|
||||
return 0, 0
|
||||
|
||||
clean = [
|
||||
{k: str(v) if v is not None else None for k, v in r.items() if k in _FIELDS}
|
||||
{k: str(v).strip() if v is not None else None for k, v in r.items() if k in _FIELDS}
|
||||
for r in records
|
||||
if r.get("InventoryID")
|
||||
]
|
||||
@@ -95,9 +88,7 @@ async def upsert_bulk(db: AsyncSession, records: list[dict]) -> tuple[int, int]:
|
||||
incoming_ids = {r["InventoryID"] for r in clean}
|
||||
|
||||
result = await db.execute(
|
||||
select(ImportedPart.InventoryID).where(
|
||||
ImportedPart.InventoryID.in_(incoming_ids)
|
||||
)
|
||||
select(ImportedPart.InventoryID).where(ImportedPart.InventoryID.in_(incoming_ids))
|
||||
)
|
||||
existing_ids = {row[0] for row in result.all()}
|
||||
|
||||
@@ -112,9 +103,7 @@ async def upsert_bulk(db: AsyncSession, records: list[dict]) -> tuple[int, int]:
|
||||
vals = {k: v for k, v in record.items() if k != "InventoryID"}
|
||||
if vals:
|
||||
await db.execute(
|
||||
update(ImportedPart)
|
||||
.where(ImportedPart.InventoryID == inv_id)
|
||||
.values(vals)
|
||||
update(ImportedPart).where(ImportedPart.InventoryID == inv_id).values(vals)
|
||||
)
|
||||
|
||||
await db.commit()
|
||||
|
||||
Reference in new issue
Block a user