diff --git a/AppCode/Global/Global_Classes.cs b/AppCode/Global/Global_Classes.cs
index 71147bf..fb92f9f 100644
--- a/AppCode/Global/Global_Classes.cs
+++ b/AppCode/Global/Global_Classes.cs
@@ -29,6 +29,5 @@ namespace VSERVERWS.Global {
}
-
}
}
diff --git a/Pages/Puce.cshtml b/Pages/Puce.cshtml
new file mode 100644
index 0000000..ce5c0b0
--- /dev/null
+++ b/Pages/Puce.cshtml
@@ -0,0 +1,67 @@
+@page "/Puce"
+@model PuceModel
+@{
+ ViewData["Title"] = "Puce Listing";
+ Layout = "";
+}
+
+
+
+
@ViewData["Title"]
+
+
+
+ Anything not listed in the table(s) below are out of stock and no longer available.
+
+
+@{
+ List prefixkeys = new();
+
+
+ if (Model.PuceCVINV.Count > 0)
+ {
+ prefixkeys = Model.PuceCVINV.Keys.ToList();
+ prefixkeys.Sort();
+ }
+
+}
+
+
+
+@foreach(var PREFIX in prefixkeys) {
+
+ var tCVINV = Model.PuceCVINV[PREFIX];
+
+ List CVI_KEYS = tCVINV.Keys.ToList();
+ CVI_KEYS.Sort();
+
+ var firstCVI = tCVINV.ToListofCVITEMS().First();
+
+ @firstCVI.VENDOR_NAME - @firstCVI.SCALE
+
+
+
+
+ | Item Code |
+ Description |
+ Quantity |
+ Price |
+
+
+
+ @foreach (var CVI_KEY in CVI_KEYS) {
+ CVRLIB.Inventory.CVITEM CVI = tCVINV[CVI_KEY];
+
+ var PCOST = CVI.PRODUCT_COST == 0 ? CVI.PRICE : CVI.PRODUCT_COST * 1.05m;
+
+
+ | @CVI.ITEM_UID |
+ @CVI.PRODUCT_DESCRIPTION |
+ @CVI.STOCK_RAW |
+ @PCOST.ToString("c") |
+
+ }
+
+
+}
+
diff --git a/Pages/Puce.cshtml.cs b/Pages/Puce.cshtml.cs
new file mode 100644
index 0000000..824ef12
--- /dev/null
+++ b/Pages/Puce.cshtml.cs
@@ -0,0 +1,72 @@
+
+using System.IO;
+
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+using CVRLIB.Inventory;
+
+namespace VSERVERWS.Pages;
+
+
+public class PuceModel : PageModel {
+ private readonly ILogger _logger;
+
+
+ public Dictionary PuceCVINV = new Dictionary();
+
+
+ public PuceModel(ILogger logger) {
+ _logger = logger;
+ }
+
+
+
+
+
+
+
+ public async Task OnGet() {
+
+ var tCVINV = await PuceListINV();
+
+ PuceCVINV = tCVINV.ParseByCodePrefix();
+
+
+
+ }
+
+
+ public async Task PuceListINV() {
+
+ CVINVENTORY rCVI;
+
+ var PCODES = new SortedSet();
+
+
+ var pcodefiles = Directory.GetFiles(Program.AppData + @"\Puce", "*.csv");
+
+ foreach ( var filepath in pcodefiles ) {
+
+ var LINES = await System.IO.File.ReadAllLinesAsync(filepath);
+
+ foreach (var line in LINES) {
+
+ if (string.IsNullOrWhiteSpace(line)) continue;
+
+ string PCODE = line.Split(',')[0].Trim(['"']);
+
+ PCODES.Add(PCODE);
+ }
+ }
+
+ rCVI = await CVINVENTORY.LoadItemsAsync(PCODES);
+ rCVI.RemoveZeroQTY();
+
+
+ return rCVI;
+ }
+
+
+
+}
diff --git a/Program.cs b/Program.cs
index 445cda9..2a4c4f7 100644
--- a/Program.cs
+++ b/Program.cs
@@ -44,6 +44,8 @@ var env = builder.Environment;
//X:\CVRCO\C#\VSERVERWS\VSERVERWS\wwwroot
AppPath = env.WebRootPath;
+AppData = env.ContentRootPath + @"\AppData";
+
//X:\CVRCO\C#\VSERVERWS\VSERVERWS\
HTTPROOT = env.ContentRootPath;
@@ -88,6 +90,7 @@ public partial class Program {
public static CVSECRETS? CVS { get; set; } = null;
public static string AppPath { get; set; } = "";
public static string HTTPROOT { get; set; } = "";
+ public static string AppData { get; set; } = "";
public static bool IsDevMode { get; set; } = false;
diff --git a/VSERVERWS.csproj b/VSERVERWS.csproj
index c995d3b..b92795e 100644
--- a/VSERVERWS.csproj
+++ b/VSERVERWS.csproj
@@ -21,6 +21,12 @@
+
+
+
+
+
+