{"id":32236,"date":"2026-03-02T04:12:20","date_gmt":"2026-03-02T04:12:20","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=32236"},"modified":"2026-03-06T03:42:26","modified_gmt":"2026-03-06T03:42:26","slug":"purchase-requistion","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/","title":{"rendered":"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending"},"content":{"rendered":"<div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Contents\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Content Lists<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 20px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n  padding-top: 20px;\r\n  margin-top: 0px;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 84% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\/* \t\t\tright: 5%; *\/\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Function to handle click on all <a> elements with href starting with #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all <a> elements in toc-list and list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with class 'td-post-content'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within the article\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif(window.innerWidth < 767){\r\n\t\t\ttocTitle.textContent = 'Table of Contents'; \/\/ Selalu pertahankan judul ini di mobile\r\n\t\t} else {\r\n\t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n        tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        let headerCounter = 0; \/\/ Counter to generate unique IDs\r\n\r\n\t\t\/\/ Function to generate ID in header0, header1, etc. format\r\n\t\tfunction formatId() {\r\n\t\t\treturn `header-${headerCounter++}`; \/\/ ID format: header0, header1, etc.\r\n\t\t}\r\n\r\n\/\/ \t\tfunction formatId(text) {\r\n\/\/             return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n\/\/         }\r\n\t\r\n        \/\/ Function to create nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Object to store list of h2 and h3 with their titles\r\n        const headings = [];\r\n\r\n           \/\/ Get all h2 and h3 elements\r\n        \/\/ Get all h2 and h3 elements\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h2 element\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Hide Key Takeaways di ToC\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h3 element\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Create HTML list from headings object\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Use the newly generated ID\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Get ul element with id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Get content (child elements) from ul with id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Get ul element with id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Add content obtained from 'list_toc' to ul with id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Function to get navbar height\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Function to add scroll position offset\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Function to handle title link click\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all title links\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n    <\/script> -->\r\n\n<p>Most organizations have felt the pain of a bad purchase unnecessary equipment, vendors chosen without budget checks, or duplicate orders. These mistakes usually don\u2019t happen because employees are careless, but because there\u2019s no clear checkpoint between \u201cI need this\u201d and \u201cwe\u2019ve paid for it.\u201d That checkpoint is the purchase requisition, and understanding it is <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/e-procurement-software-philippines\/\">essential for effective procurement<\/a> and finance control.<\/p>\n<p>This article breaks down what a purchase requisition actually is, why it matters far more than most organizations give it credit for, and how to build a process around it that genuinely helps rather than creates bureaucratic headaches whether you&#8217;re establishing the process for the first time or trying to fix one that&#8217;s already causing frustration.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li>A purchase requisition <a href=\"#a\">isn\u2019t about paperwork<\/a> it\u2019s about creating a deliberate pause before spending. That pause forces justification, budget alignment, and review, which helps prevent costly mistakes, duplicate purchases, and unnecessary or poorly timed spending.<\/li>\n<li>Not all purchases <a href=\"#b\">need the same approval process<\/a>. Using lighter review for small, routine buys and stricter checks for large or risky purchases keeps spending under control without slowing everyone down.<\/li>\n<li>A purchase requisition process <a href=\"#c\">should grow with the company<\/a>. Informal methods work for small teams, but as volume and complexity increase, clear rules and automation become necessary to maintain spending control, visibility, and efficiency.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"what-this-form-actually-does-and-why-people-skip-it\"><strong><span id=\"a\">The Real Purpose of This Form<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone wp-image-32499 \" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-14-300x150.webp\" alt=\"Purchase-Requisitions-Meaning\" width=\"708\" height=\"354\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-14-300x150.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-14-768x384.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-14-150x75.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-14-696x348.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-14.webp 800w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/>A purchase requisition is an internal request for approval before a purchase is made. It records what is needed, why it\u2019s needed, the estimated cost, and who is requesting it, then moves through an approval process before any money is spent.<\/p>\n<p>Although it seems simple, many organizations skip or rush this step because urgent needs make approvals feel like a delay. But bypassing the process is often when costly purchasing mistakes happen.<\/p>\n<p>The real value of a purchase requisition isn\u2019t the form itself, it\u2019s the pause it creates. It forces employees to justify the need, link it to a budget, and get a second opinion. That moment of review helps prevent unnecessary spending, duplicate orders, and poorly timed purchases.<\/p>\n<h3><strong>The Real Difference Between a Request and an Order<\/strong><\/h3>\n<p>It&#8217;s worth being precise about terminology here because confusion between a <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-request-vs-purchase-order\/\">purchase requisition and a purchase order<\/a> is one of the most common sources of process breakdowns.<\/p>\n<ul>\n<li><strong>Purchase requisition<\/strong><\/li>\n<\/ul>\n<p>is an internal document. It stays inside the organization. No vendor ever sees it. It is a request made by someone within the company to the procurement or finance team, asking for permission to make a purchase. The requisition does not commit the company to any spending. It is a proposal waiting for approval.<\/p>\n<ul>\n<li><strong>Purchase order<\/strong><\/li>\n<\/ul>\n<p>Once a requisition is approved, the procurement team creates a purchase order and sends it to the selected vendor. The purchase order is a legally binding commitment when the vendor accepts it, both parties are obligated to follow through. The purchase order includes final pricing, delivery terms, and specific product or service details.<\/p>\n<p>The sequence matters: <em>requisition first<\/em>, <em>then approval<\/em>, <em>then purchase order<\/em>. Organizations that skip or collapse these steps often find that spending happens before it&#8217;s been properly authorized, which makes financial reporting unreliable, budget control nearly impossible, and audits uncomfortable.<\/p>\n<h3><strong>Who&#8217;s Involved and What Each Role Actually Decides<\/strong><\/h3>\n<p>A purchase requisition typically involves several people, each with a distinct responsibility. Understanding who does what eliminates a lot of the confusion that causes delays in the process.<\/p>\n<ul>\n<li><strong>The Requester<\/strong><\/li>\n<\/ul>\n<p>Is the employee or department manager who identifies a need. Their job is to provide enough detail for the approver to make an informed decision. This means specifying what they need, why they need it, when they need it by, and what they expect it to cost. Vague requests create back-and-forth that wastes everyone&#8217;s time.<\/p>\n<ul>\n<li><strong>The Budget Owner or Department Head<\/strong><\/li>\n<\/ul>\n<p>Is usually the first approver. They check whether the request fits within the team&#8217;s allocated budget and whether it aligns with departmental priorities. In smaller organizations, this step might be handled by a single manager. In larger ones, there may be multiple levels of approval depending on the purchase amount.<\/p>\n<ul>\n<li><strong>The Procurement Team<\/strong><\/li>\n<\/ul>\n<p>Takes over once a requisition is approved internally. Their role is to translate the approved request into an actual purchase finding the right vendor, negotiating terms if applicable, and generating the purchase order. In many organizations, procurement also plays a gatekeeping role, reviewing requisitions for compliance with company policies before they reach final approval.<\/p>\n<ul>\n<li><strong>Finance or Accounts Payable<\/strong><\/li>\n<\/ul>\n<p>May be involved at the approval stage for larger purchases, particularly when the spend requires budget reallocation or has implications for cash flow. They&#8217;re also involved at the back end, matching the purchase order and the eventual invoice to ensure payment accuracy.<\/p>\n<p>The clarity of these roles is what makes the process functional. When everyone knows what decision they&#8217;re responsible for and what decisions belong to someone else the process moves faster and produces better outcomes.<\/p>\n<h2><strong><span id=\"b\">Not All Purchases Need the Same Approval<\/span><\/strong><\/h2>\n<p>One common mistake companies make is treating every purchase the same way. Asking for the same paperwork and approvals for a $50 office supply order as for a $50,000 software contract doesn\u2019t make the process safer it just makes it slower. Employees get frustrated, approvers get overwhelmed, and the process starts to feel like pointless bureaucracy instead of a helpful control.<\/p>\n<p>A better approach is to use different levels of review. Small, routine purchases should be quick and simple to approve, while expensive or risky purchases should go through more careful checks. This keeps everyday buying fast and easy, while still protecting the company when the stakes are higher.<\/p>\n<h2><strong>Setting Smart Limits So Small Purchases Don\u2019t Get Stuck<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone wp-image-32495\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM-300x200.webp\" alt=\"Setting-Smart-Limits\" width=\"722\" height=\"481\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM-300x200.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM-768x512.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM-630x420.webp 630w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM-150x100.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM-696x464.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-Mar-2-2026-11_03_44-AM.webp 800w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/>Spend limits are the basis of a tiered approval system. The exact amounts will differ by company based on its size, industry, and budget, but the idea is the same: small purchases should be approved quickly with very little review, while larger purchases should trigger more detailed checks and higher-level approval.<\/p>\n<p>A common framework looks something like this:<\/p>\n<ul>\n<li><strong>Low-value purchases (e.g., under $500):<\/strong><\/li>\n<\/ul>\n<p>A simple notification or single-manager approval is sufficient. These are typically routine items office supplies, minor tools, software subscriptions at the individual level. The risk of a bad decision is low, and the cost of a slow process is high. In some organizations, recurring low value purchases from pre-approved vendors are handled through a petty cash or purchasing card system entirely, bypassing the requisition process.<\/p>\n<ul>\n<li><strong>Mid-range purchases (e.g., $500 to $10,000):<\/strong><\/li>\n<\/ul>\n<p>These warrant department head approval and a review by procurement for vendor selection. There should be some documentation of why this purchase is needed and some confirmation that it fits within the budget. A brief justification note alongside the requisition form is usually enough.<\/p>\n<ul>\n<li><strong>High-value purchases (e.g., above $10,000):<\/strong><\/li>\n<\/ul>\n<p>These require multilevel approval typically department head, finance, and possibly a senior executive or committee depending on the company&#8217;s governance structure. There should be a formal business case, at least a preliminary comparison of vendor options, and explicit budget confirmation before anyone proceeds.<\/p>\n<p>Setting these limits requires a conversation between procurement, finance, and leadership. They should reflect actual risk tolerance, not just convenience. And they should be reviewed periodically thresholds that made sense three years ago may be too tight or too loose given where the organization is today.<\/p>\n<h3><strong>When a Quick Approval Is Enough vs When You Need the Full Process<\/strong><\/h3>\n<p>Beyond spend limits, the type of purchase also determines how much review is needed. Some categories carry higher risk and deserve closer scrutiny regardless of cost. For example, IT purchases may require security or compliance review because even inexpensive software can create data or integration risks.<\/p>\n<p>At the same time, low risk, recurring purchases can move faster. Standard supplies, subscriptions under existing agreements, and purchases from approved vendors can follow simplified paths without losing control.<\/p>\n<p>The aim isn\u2019t to make approvals stricter or looser overall, but to apply scrutiny where it prevents real problems and reduce it where it only adds friction.<\/p>\n<h2 id=\"walking-through-the-flow-without-the-jargon\"><strong>How the Process Works (Without the Corporate Jargon)<\/strong><\/h2>\n<p>Understanding the purchase requisition process in the abstract is one thing. Seeing it in motion is more useful. Here is a clear walkthrough of how the process should work from start to finish, without the corporate jargon that usually makes these descriptions impenetrable.<\/p>\n<h3><strong>From &#8220;We Need This&#8221; to a Signed-Off Order<\/strong><\/h3>\n<ul>\n<li><strong>Step 1: The need is identified<\/strong><\/li>\n<\/ul>\n<p>An employee recognizes that something is required a piece of equipment, a service, a subscription, materials. This might come from a project requirement, an inventory shortfall, or simply a team deciding they need a new tool to do their job better.<\/p>\n<ul>\n<li><strong>Step 2: The requisition is submitted<\/strong><\/li>\n<\/ul>\n<p>The employee fills out a purchase requisition form. Good forms ask for: a description of what&#8217;s needed, the quantity, the estimated cost, the business justification, the required delivery date, and the budget or cost center to be charged. Some organizations also ask for vendor preferences or recommendations at this stage.<\/p>\n<ul>\n<li><strong>Step 3: Initial review by the department manager<\/strong><\/li>\n<\/ul>\n<p>The manager reviews the request for legitimacy and fit within the team&#8217;s budget. They&#8217;re not evaluating vendor selection at this point that&#8217;s procurement&#8217;s job. They&#8217;re asking: Is this a real need? Is the timing right? Do we have the budget for it? Do I have the authority to approve this, or does it need to go higher?<\/p>\n<ul>\n<li><strong>Step 4: Procurement review<\/strong><\/li>\n<\/ul>\n<p>Once internally approved, the requisition moves to procurement. The procurement team confirms that the request is complete and compliant with purchasing policies. They check whether an existing vendor relationship applies, <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/request-for-proposal\/\">whether competitive quotes are needed<\/a>, and whether the request triggers any additional review requirements (e.g., IT security for software, legal for service contracts).<\/p>\n<ul>\n<li><strong>Step 5: Finance or senior approval (if required)<\/strong><\/li>\n<\/ul>\n<p>For purchases above certain thresholds, finance reviews the request against budget availability and cash flow considerations. Senior leadership may approve large or strategically significant expenditures.<\/p>\n<ul>\n<li><strong>Step 6: Purchase order creation<\/strong><\/li>\n<\/ul>\n<p>Once fully approved, procurement converts the requisition into a purchase order and sends it to the selected vendor. The purchase order is the formal commitment it specifies exactly what is being ordered, at what price, with what delivery expectations, and under what payment terms.<\/p>\n<ul>\n<li><strong>Step 7: Receipt and matching<\/strong><\/li>\n<\/ul>\n<p>When the goods or services are delivered, the receiving party confirms receipt. Finance then <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/accounting-system\/\">performs a three way match<\/a> comparing the original purchase order, the supplier&#8217;s invoice, and the receiving record before authorizing payment. Any discrepancies trigger a resolution process before payment is released.<\/p>\n<p>This entire sequence, when it works well, provides a complete audit trail from the original need to the final payment. Every decision is documented, every authorization is traceable, and every invoice can be connected back to an approved business need.<\/p>\n<h2 id=\"growing-pains-adapting-the-process-as-your-company-scales\"><strong><span id=\"c\">Adapting the Process as Your Company Scales<\/span><\/strong><\/h2>\n<p>The purchase requisition process that works for a 20vperson startup will not work for a 500 person company. And the one that works at 500 will need to evolve again as the organization grows further. Treating the process as a static set of rules rather than a living system is one of the most common reasons procurement workflows become dysfunctional as companies scale.<\/p>\n<h3><strong>What Works for a 20 Person Team Won&#8217;t Work at 500<\/strong><\/h3>\n<p>In a 20-person company, purchasing is simple. Everyone knows the budget, a founder or senior manager approves most requests, and a quick message is often enough to move forward.<\/p>\n<p>As the company grows, that system breaks. Leaders can\u2019t approve everything, managers spend without seeing what other teams are buying, and there\u2019s no clear record of what\u2019s already been committed.<\/p>\n<p>By a few hundred employees, structure is no longer optional. Clear rules, defined approval levels, and a formal purchase requisition process become essential to keep spending visible and under control.<\/p>\n<h3><strong>Deciding When It&#8217;s Time to Automate<\/strong><\/h3>\n<p>Many organizations rely on email, spreadsheets, and paper forms for purchase requisitions longer than they should. This works at low volume, but as requests increase, problems appear: forms get lost, approvals are missed, there\u2019s no clear view of request status, and reporting depends on manual data collection from multiple sources.<\/p>\n<p>The decision to automate to move to a dedicated procurement or <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/what-is-erp\/\">ERP system with built in workflow management<\/a> should be based on a few clear signals:<\/p>\n<ul>\n<li><strong>Volume<\/strong><\/li>\n<\/ul>\n<p>If the team is processing dozens of requisitions per week and manually tracking status, automation will pay for itself quickly in time saved and errors avoided.<\/p>\n<ul>\n<li><strong>Visibility<\/strong><\/li>\n<\/ul>\n<p>If managers and finance teams regularly don&#8217;t know what&#8217;s been committed against their budgets, or if auditors struggle to trace spending decisions, the manual process has already become a liability.<\/p>\n<ul>\n<li><strong>Bottlenecks<\/strong><\/li>\n<\/ul>\n<p>If approval delays are consistently causing project delays or forcing employees into workarounds, the process needs structural improvement that manual systems can&#8217;t provide.<\/p>\n<ul>\n<li><strong>Growth rate<\/strong><\/li>\n<\/ul>\n<p>If the organization is growing rapidly, getting ahead of the automation need is far less disruptive than trying to implement it mid crisis. A company that automates its purchase requisition process at 150 employees will have a much smoother experience than one that waits until 400 employees are using a broken manual system.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>A purchase requisition isn\u2019t just paperwork. It\u2019s the point where spending slows down long enough for someone to ask, \u201cDo we really need this, and can we afford it?\u201d When it works well, it helps avoid budget surprises, duplicate purchases, and rushed decisions, without getting in the way of everyday work.<\/p>\n<p>The key is matching the process to the size of the company. What works for a small team won\u2019t hold up as the organization grows. Clear rules, different approval levels, and eventually automation help keep spending visible and under control. The goal isn\u2019t to add red tape, but to keep buying simple while protecting the company\u2019s money.<\/p>\n<h2><strong>FAQ About Purchase Requisitions<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is a purchase requisition and why is it important?<\/strong><\/summary>\n<p>A purchase requisition is an internal document submitted by an employee or department to formally request approval before making a purchase. It captures what is needed, why it is needed, the estimated cost, and who is requesting it. It is important because it creates a structured checkpoint between identifying a need and spending company funds, preventing unauthorized purchases, duplicate orders, and budget overruns.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the difference between a purchase requisition and a purchase order?<\/strong><\/summary>\n<p>A purchase requisition is an internal document that stays within the organization \u2014 no vendor ever sees it. It is a request for approval to make a purchase. A purchase order is an external document sent to a vendor after the requisition has been approved. The purchase order represents a legally binding commitment to buy specific goods or services at agreed terms. The correct sequence is: requisition first, then approval, then purchase order.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Who typically approves a purchase requisition?<\/strong><\/summary>\n<p>Approval typically involves the requester&#8217;s department manager or budget owner as the first reviewer, followed by the procurement team who handles vendor compliance and policy checks, and finance or senior leadership for high-value purchases. The specific approval chain depends on the purchase amount, category, and the organization&#8217;s governance structure.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How long should a purchase requisition approval take?<\/strong><\/summary>\n<p>For routine, low-value purchases, approval should ideally happen within one business day. Mid-range purchases may take two to three business days when additional review is needed. High-value or complex purchases requiring multi-level approval may take longer, but organizations should set clear service level agreements for each tier so requesters know what to expect and approvers are held accountable for timely decisions.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What happens if a purchase requisition is rejected?<\/strong><\/summary>\n<p>A rejected purchase requisition should always come with a clear explanation from the approver \u2014 whether the budget is unavailable, the timing is wrong, the justification is insufficient, or the need can be addressed another way. Rejection should not be a dead end. It should either lead to a revised resubmission, a deferral to a future period, or a redirect to an existing resource that already covers the need.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Do all purchases require a formal purchase requisition?<\/strong><\/summary>\n<p>Not necessarily. Most organizations establish spend thresholds and category rules that determine when a formal requisition is required. Very low-value or routine purchases from pre-approved vendors may be handled through a petty cash system or purchasing card without a formal requisition. The key is to define these exceptions clearly in policy so employees know exactly when the formal process applies.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>When should a company automate its purchase requisition process?<\/strong><\/summary>\n<p>Automation becomes worthwhile when the volume of requisitions is high enough that manual tracking creates errors or delays, when budget visibility is poor because commitments aren&#8217;t being captured in real time, when approval bottlenecks are regularly causing project delays, or when the organization is growing rapidly and manual processes cannot scale.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How can companies get employees to consistently follow the purchase requisition process?<\/strong><\/summary>\n<p>The most effective approach is to make compliance easier than non-compliance. This means designing simple, intuitive forms that don&#8217;t take excessive time to complete, publishing clear guidelines on when a requisition is required, committing to fast approval turnaround times, and enforcing consistent consequences for unauthorized purchases. Training and communication also play a critical role, especially for new employees who may not be aware of the process.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is a purchase requisition and why is it important?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A purchase requisition is an internal document submitted by an employee or department to formally request approval before making a purchase. It captures what is needed, why it is needed, the estimated cost, and who is requesting it. It is important because it creates a structured checkpoint between identifying a need and spending company funds, preventing unauthorized purchases, duplicate orders, and budget overruns.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the difference between a purchase requisition and a purchase order?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A purchase requisition is an internal document that stays within the organization and is a request for approval to make a purchase. A purchase order is an external document sent to a vendor after the requisition has been approved and represents a legally binding commitment to buy specific goods or services at agreed terms. The correct sequence is: requisition first, then approval, then purchase order.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Who typically approves a purchase requisition?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Approval typically involves the requester's department manager or budget owner as the first reviewer, followed by the procurement team who handles vendor compliance and policy checks, and finance or senior leadership for high-value purchases. The specific approval chain depends on the purchase amount, category, and the organization's governance structure.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How long should a purchase requisition approval take?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"For routine, low-value purchases, approval should ideally happen within one business day. Mid-range purchases may take two to three business days when additional review is needed. High-value or complex purchases requiring multi-level approval may take longer, but organizations should set clear service level agreements for each tier so requesters know what to expect and approvers are held accountable for timely decisions.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What happens if a purchase requisition is rejected?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A rejected purchase requisition should always come with a clear explanation from the approver \u2014 whether the budget is unavailable, the timing is wrong, the justification is insufficient, or the need can be addressed another way. Rejection should not be a dead end. It should either lead to a revised resubmission, a deferral to a future period, or a redirect to an existing resource that already covers the need.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Do all purchases require a formal purchase requisition?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Not necessarily. Most organizations establish spend thresholds and category rules that determine when a formal requisition is required. Very low-value or routine purchases from pre-approved vendors may be handled through a petty cash system or purchasing card without a formal requisition. The key is to define these exceptions clearly in policy so employees know exactly when the formal process applies.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"When should a company automate its purchase requisition process?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Automation becomes worthwhile when the volume of requisitions is high enough that manual tracking creates errors or delays, when budget visibility is poor because commitments are not being captured in real time, when approval bottlenecks are regularly causing project delays, or when the organization is growing rapidly and manual processes cannot scale.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How can companies get employees to consistently follow the purchase requisition process?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"The most effective approach is to make compliance easier than non-compliance. This means designing simple, intuitive forms that do not take excessive time to complete, publishing clear guidelines on when a requisition is required, committing to fast approval turnaround times, and enforcing consistent consequences for unauthorized purchases. Training and communication also play a critical role, especially for new employees who may not be aware of the process.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most organizations have felt the pain of a bad purchase unnecessary equipment, vendors chosen without budget checks, or duplicate orders. These mistakes usually don\u2019t happen because employees are careless, but because there\u2019s no clear checkpoint between \u201cI need this\u201d and \u201cwe\u2019ve paid for it.\u201d That checkpoint is the purchase requisition, and understanding it is essential [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":32493,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[156],"tags":[],"class_list":{"0":"post-32236","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Purchase Requisitions: The Approval Step That Saves You From Regretful Spending - HashMicro Philippine Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending\" \/>\n<meta property=\"og:description\" content=\"Most organizations have felt the pain of a bad purchase unnecessary equipment, vendors chosen without budget checks, or duplicate orders. These mistakes usually don\u2019t happen because employees are careless, but because there\u2019s no clear checkpoint between \u201cI need this\u201d and \u201cwe\u2019ve paid for it.\u201d That checkpoint is the purchase requisition, and understanding it is essential [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-02T04:12:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-06T03:42:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jose Bautista\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Bautista\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/\",\"name\":\"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending - HashMicro Philippine Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp\",\"datePublished\":\"2026-03-02T04:12:20+00:00\",\"dateModified\":\"2026-03-06T03:42:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/d7444f5c9f2bca7334bbac6101f8cb33\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp\",\"width\":800,\"height\":400,\"caption\":\"Purchase-Requisitions\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\",\"name\":\"HashMicro Philippine Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-PH\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/d7444f5c9f2bca7334bbac6101f8cb33\",\"name\":\"Jose Bautista\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Jose-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Jose-96x96.webp\",\"caption\":\"Jose Bautista\"},\"description\":\"Jose Bautista focuses on procurement processes, delivering content that explains sourcing strategies, supplier management, and cost optimization. He consistently writes with the reader in mind, making complex procedures easier to grasp.\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/jose-bautista\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending - HashMicro Philippine Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/","og_locale":"en_US","og_type":"article","og_title":"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending","og_description":"Most organizations have felt the pain of a bad purchase unnecessary equipment, vendors chosen without budget checks, or duplicate orders. These mistakes usually don\u2019t happen because employees are careless, but because there\u2019s no clear checkpoint between \u201cI need this\u201d and \u201cwe\u2019ve paid for it.\u201d That checkpoint is the purchase requisition, and understanding it is essential [&hellip;]","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2026-03-02T04:12:20+00:00","article_modified_time":"2026-03-06T03:42:26+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp","type":"image\/webp"}],"author":"Jose Bautista","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jose Bautista","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/","name":"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending - HashMicro Philippine Blog","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp","datePublished":"2026-03-02T04:12:20+00:00","dateModified":"2026-03-06T03:42:26+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/d7444f5c9f2bca7334bbac6101f8cb33"},"breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2026\/02\/Untitled-design-13-1.webp","width":800,"height":400,"caption":"Purchase-Requisitions"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/purchase-requistion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"Purchase Requisitions: The Approval Step That Saves You From Regretful Spending"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website","url":"https:\/\/www.hashmicro.com\/ph\/blog\/","name":"HashMicro Philippine Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-PH"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/d7444f5c9f2bca7334bbac6101f8cb33","name":"Jose Bautista","image":{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Jose-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Jose-96x96.webp","caption":"Jose Bautista"},"description":"Jose Bautista focuses on procurement processes, delivering content that explains sourcing strategies, supplier management, and cost optimization. He consistently writes with the reader in mind, making complex procedures easier to grasp.","url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/jose-bautista\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/32236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=32236"}],"version-history":[{"count":3,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/32236\/revisions"}],"predecessor-version":[{"id":32506,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/32236\/revisions\/32506"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/32493"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=32236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=32236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=32236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}