[object Object]

← back to Vendor Price Requests

VPR: exclude skip-own-brand (Hollywood) from letter list

a3a5713163f2a9739cefd835461ebec4ae61aabb · 2026-06-17 10:39:39 -0700 · Steve Abrams

Files touched

Diff

commit a3a5713163f2a9739cefd835461ebec4ae61aabb
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Jun 17 10:39:39 2026 -0700

    VPR: exclude skip-own-brand (Hollywood) from letter list
---
 server.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server.js b/server.js
index 1c6e8a9..958597b 100644
--- a/server.js
+++ b/server.js
@@ -40,7 +40,7 @@ app.get('/api/vendors', async (req, res) => {
              max(vc.email) AS email,
              max(ps.letter_status) AS letter_status
       FROM price_sourcing ps LEFT JOIN vendor_contacts vc ON vc.vendor=ps.vendor
-      WHERE ps.crawl_status <> 'found' AND COALESCE(ps.has_price,false)=false
+      WHERE ps.crawl_status <> 'found' AND COALESCE(ps.has_price,false)=false AND COALESCE(ps.letter_status,'none') <> 'skip-own-brand'
       GROUP BY ps.vendor ORDER BY count(*) DESC`);
     res.json({ vendors: q.rows });
   } catch (e) { res.status(500).json({ error: e.message }); }
@@ -49,7 +49,7 @@ app.get('/api/vendors', async (req, res) => {
 app.get('/api/letter/:vendor', async (req, res) => {
   try {
     const v = req.params.vendor;
-    const rows = (await pool.query(`SELECT dw_sku, mfr_sku, pattern, color FROM price_sourcing WHERE vendor=$1 AND crawl_status<>'found' AND COALESCE(has_price,false)=false ORDER BY pattern, mfr_sku`, [v])).rows;
+    const rows = (await pool.query(`SELECT dw_sku, mfr_sku, pattern, color FROM price_sourcing WHERE vendor=$1 AND crawl_status<>'found' AND COALESCE(has_price,false)=false AND COALESCE(letter_status,'none')<>'skip-own-brand' ORDER BY pattern, mfr_sku`, [v])).rows;
     const email = (await pool.query(`SELECT email FROM vendor_contacts WHERE vendor=$1`, [v])).rows[0]?.email || '';
     res.json({ vendor: v, count: rows.length, email, subject: `Trade pricing request — ${v} (${rows.length} patterns)`, body: letterBody(v, rows), skus: rows.slice(0, 500) });
   } catch (e) { res.status(500).json({ error: e.message }); }

← 589e3fa Crawl viability finding: Tier-B prices not in static HTML (J  ·  back to Vendor Price Requests  ·  Add state-sync: detect showroom SKUs that got a roll/price → 075fd33 →