Migrated addConversion to new api schema
This commit is contained in:
parent
009e3b6b1d
commit
7c6846dd99
@ -411,6 +411,19 @@ class SKUPrefixPayload:
|
|||||||
self.description
|
self.description
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ConversionPayload:
|
||||||
|
item_id: int
|
||||||
|
uom_id: int
|
||||||
|
conv_factor: float
|
||||||
|
|
||||||
|
def payload(self):
|
||||||
|
return (
|
||||||
|
self.item_id,
|
||||||
|
self.uom_id,
|
||||||
|
self.conv_factor
|
||||||
|
)
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class SiteManager:
|
class SiteManager:
|
||||||
site_name: str
|
site_name: str
|
||||||
|
|||||||
@ -823,7 +823,7 @@ def insertItemTuple(site, payload, convert=True, conn=None):
|
|||||||
except Exception as error:
|
except Exception as error:
|
||||||
raise postsqldb.DatabaseError(error, payload, sql)
|
raise postsqldb.DatabaseError(error, payload, sql)
|
||||||
|
|
||||||
def insertSKUPrefixtuple(site, payload, convert=True, conn=None):
|
def insertSKUPrefixtuple(site:str, payload:tuple, convert=True, conn=None):
|
||||||
"""insert payload into zones table of site
|
"""insert payload into zones table of site
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -865,6 +865,48 @@ def insertSKUPrefixtuple(site, payload, convert=True, conn=None):
|
|||||||
except Exception as error:
|
except Exception as error:
|
||||||
raise postsqldb.DatabaseError(error, payload, sql)
|
raise postsqldb.DatabaseError(error, payload, sql)
|
||||||
|
|
||||||
|
def insertConversionTuple(site: str, payload: list, convert=True, conn=None):
|
||||||
|
"""insert into recipes table for site
|
||||||
|
|
||||||
|
Args:
|
||||||
|
conn (_T_connector@connect): Postgresql Connector
|
||||||
|
site (stre):
|
||||||
|
payload (tuple): (item_id, uom_id, conversion_factor)
|
||||||
|
convert (bool, optional): Determines if to return tuple as a dictionary. Defaults to False.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
DatabaseError:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
tuple or dict: inserted tuple
|
||||||
|
"""
|
||||||
|
record = ()
|
||||||
|
self_conn = False
|
||||||
|
with open(f"sql/INSERT/insertConversionsTuple.sql", "r+") as file:
|
||||||
|
sql = file.read().replace("%%site_name%%", site)
|
||||||
|
try:
|
||||||
|
if not conn:
|
||||||
|
database_config = config.config()
|
||||||
|
conn = psycopg2.connect(**database_config)
|
||||||
|
conn.autocommit = True
|
||||||
|
self_conn = True
|
||||||
|
|
||||||
|
with conn.cursor() as cur:
|
||||||
|
cur.execute(sql, payload)
|
||||||
|
rows = cur.fetchone()
|
||||||
|
if rows and convert:
|
||||||
|
record = postsqldb.tupleDictionaryFactory(cur.description, rows)
|
||||||
|
elif rows and not convert:
|
||||||
|
record = rows
|
||||||
|
|
||||||
|
if self_conn:
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
return record
|
||||||
|
|
||||||
|
except Exception as error:
|
||||||
|
raise postsqldb.DatabaseError(error, payload, sql)
|
||||||
|
|
||||||
def postDeleteCostLayer(site_name, payload, convert=True, conn=None):
|
def postDeleteCostLayer(site_name, payload, convert=True, conn=None):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -687,18 +687,45 @@ def addSKUPrefix():
|
|||||||
|
|
||||||
@items_api.route('/addConversion', methods=['POST'])
|
@items_api.route('/addConversion', methods=['POST'])
|
||||||
def addConversion():
|
def addConversion():
|
||||||
|
""" POST new conversion to the system given a item_id, uom_id, conv_factor
|
||||||
|
---
|
||||||
|
parameters:
|
||||||
|
- in: header
|
||||||
|
name: item_id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 1
|
||||||
|
required: true
|
||||||
|
description: item_id the conversion applies to
|
||||||
|
- in: header
|
||||||
|
name: uom_id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 1
|
||||||
|
required: true
|
||||||
|
description: uom_id to match item_id uom to convert to
|
||||||
|
- in: header
|
||||||
|
name: conv_factor
|
||||||
|
schema:
|
||||||
|
type: float
|
||||||
|
default: 1
|
||||||
|
required: true
|
||||||
|
description: item_id.uom -> uom_id amount
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: Prefix added successfully.
|
||||||
|
"""
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
item_id = request.get_json()['parent_id']
|
item_id = request.get_json()['parent_id']
|
||||||
uom_id = request.get_json()['uom_id']
|
uom_id = request.get_json()['uom_id']
|
||||||
conv_factor = request.get_json()['conv_factor']
|
conv_factor = request.get_json()['conv_factor']
|
||||||
|
|
||||||
database_config = config()
|
|
||||||
site_name = session['selected_site']
|
site_name = session['selected_site']
|
||||||
with psycopg2.connect(**database_config) as conn:
|
|
||||||
conversion = db.ConversionsTable.Payload(
|
conversion = dbPayloads.ConversionPayload(
|
||||||
item_id, uom_id, conv_factor
|
item_id, uom_id, conv_factor
|
||||||
)
|
)
|
||||||
db.ConversionsTable.insert_tuple(conn, site_name, conversion.payload())
|
|
||||||
|
database_items.insertConversionTuple(site_name, conversion.payload())
|
||||||
|
|
||||||
return jsonify(error=False, message="Conversion was added successfully")
|
return jsonify(error=False, message="Conversion was added successfully")
|
||||||
return jsonify(error=True, message="Unable to save this conversion, ERROR!")
|
return jsonify(error=True, message="Unable to save this conversion, ERROR!")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user