CREATE FUNCTION calculatePricesAndQty(
    p_price DECIMAL(10,2), 
    p_corePrice DECIMAL(10,2), 
    p_weight DECIMAL(10,2), 
    p_sumPrice DECIMAL(10,2), 
    p_numberOfPieces INT, 
    p_quantityOnHand INT
) RETURNS VARCHAR(255) DETERMINISTIC
BEGIN
    DECLARE result VARCHAR(255);
    DECLARE ebay_price DECIMAL(10,2);
    DECLARE magento_price DECIMAL(10,2);
    DECLARE magento_qty INT;
    DECLARE ebay_qty INT;
    DECLARE numberOfPieces INT;
    
    SET numberOfPieces = IF(p_numberOfPieces = 0, 1, p_numberOfPieces);
    SET ebay_price = calculateEbayPrice(p_price, p_corePrice, p_weight, p_sumPrice, numberOfPieces);
    SET magento_price = CEILING((ebay_price - ((ebay_price * 15 / 100) + 0.30)) * 20) / 20;
    SET magento_qty = p_quantityOnHand DIV numberOfPieces;
    SET ebay_qty = IF(magento_qty - 1 > 3, 3, IF(magento_qty - 1 < 0, 0, magento_qty - 1));
    
     SET result = JSON_OBJECT(
        'ebay_price', ebay_price,
        'magento_price', magento_price,
        'magento_qty', magento_qty,
        'ebay_qty', ebay_qty
    );
    
    RETURN result;
END;
