/**
 * Formats a number as Philippine Peso currency (PHP) with commas and optional decimals.
 *
 * @param {number} number - The numeric value to format
 * @param {boolean} [withDecimal=true] - Whether to include decimal places
 * @returns {string} - Formatted currency string (e.g., "P1,234.56")
 *
 * @example
 * formatCurrency(1234.56)      // "P1,234.56"
 * formatCurrency(1234.56, false) // "P1,234"
 */
export function formatCurrency(number, withDecimal = true) {
  if (isNaN(number)) return 'P0'

  let [integerPart, decimalPart] = Number(number)
    .toFixed(2)
    .toString()
    .split('.')

  if (!withDecimal) decimalPart = ''

  integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',')

  return `P${integerPart}${decimalPart ? '.' + decimalPart : ''}`
}
