feat: printing uploaded product barcode images
This commit is contained in:
@ -4,6 +4,7 @@ from io import BytesIO
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from modules.fulfillment_base.barcodes_pdf_gen import BarcodePdfGenerator, BarcodeData
|
||||
from modules.fulfillment_base.barcodes_pdf_gen.types import PdfBarcodeImageGenData
|
||||
from modules.fulfillment_base.models import Product
|
||||
from modules.fulfillment_base.repositories import ProductRepository
|
||||
from modules.fulfillment_base.schemas.product import GetProductBarcodePdfRequest
|
||||
@ -21,17 +22,24 @@ class BarcodePrinterService:
|
||||
product: Product = await ProductRepository(self.session).get_by_id(
|
||||
request.product_id
|
||||
)
|
||||
barcode_data: BarcodeData = {
|
||||
"barcode": request.barcode,
|
||||
"template": product.barcode_template,
|
||||
"product": product,
|
||||
"num_duplicates": request.quantity,
|
||||
}
|
||||
if product.barcode_image:
|
||||
barcode_data: PdfBarcodeImageGenData = {
|
||||
"barcode_image_url": product.barcode_image.image_url,
|
||||
"num_duplicates": request.quantity,
|
||||
}
|
||||
else:
|
||||
barcode_data: BarcodeData = {
|
||||
"barcode": request.barcode,
|
||||
"template": product.barcode_template,
|
||||
"product": product,
|
||||
"num_duplicates": request.quantity,
|
||||
}
|
||||
|
||||
filename = f"{product.id}_barcode.pdf"
|
||||
|
||||
size = product.barcode_template.size
|
||||
generator = BarcodePdfGenerator(size.width, size.height)
|
||||
return filename, generator.generate([barcode_data])
|
||||
return filename, await generator.generate([barcode_data])
|
||||
|
||||
async def generate_base64(
|
||||
self, request: GetProductBarcodePdfRequest
|
||||
|
||||
Reference in New Issue
Block a user