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

+ + + + + + + + + + + + @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; + + + + + + + + } + +
Item CodeDescriptionQuantityPrice
@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 @@ + + + + + +