161 lines
5.9 KiB
C#
161 lines
5.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CPRNIMS.Infrastructure.Dto.Inventory.Reports
|
|
{
|
|
public class RISReportDto
|
|
{
|
|
public string CompanyName { get; set; } = "Lloyd Laboratories Incorporated";
|
|
public string PreparedBy { get; set; } = "Finance Department";
|
|
public string ReportNo { get; set; } = string.Empty;
|
|
public DateTime DateFrom { get; set; }
|
|
public DateTime DateTo { get; set; }
|
|
|
|
public RISReportSummary Summary { get; set; } = new();
|
|
public List<RISReportRow> Rows { get; set; } = [];
|
|
public List<DisciplineCount> ByDiscipline { get; set; } = [];
|
|
public List<TopRecipient> TopRecipients { get; set; } = [];
|
|
}
|
|
|
|
public class RISReportSummary
|
|
{
|
|
public int TotalRIS { get; set; }
|
|
public int TotalApproved { get; set; }
|
|
public int TotalPending { get; set; }
|
|
public int TotalCancelled { get; set; }
|
|
public decimal TotalQtyIssued { get; set; }
|
|
public decimal TotalQtyReturned { get; set; }
|
|
public decimal TotalNetIssued { get; set; }
|
|
public decimal ApprovalRatePct { get; set; }
|
|
}
|
|
|
|
public class RISReportRow
|
|
{
|
|
public string RISNo { get; set; } = string.Empty;
|
|
public DateTime CreatedDate { get; set; }
|
|
public string ItemName { get; set; } = string.Empty;
|
|
public long ItemNo { get; set; }
|
|
public string DisciplineName { get; set; } = string.Empty;
|
|
public string ProjectName { get; set; } = string.Empty;
|
|
public decimal QtyIssued { get; set; }
|
|
public decimal TotalReturned { get; set; }
|
|
public decimal NetIssued { get; set; }
|
|
public short Status { get; set; }
|
|
public string StatusLabel { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class DisciplineCount
|
|
{
|
|
public string DisciplineName { get; set; } = string.Empty;
|
|
public int Count { get; set; }
|
|
}
|
|
|
|
public class TopRecipient
|
|
{
|
|
public string IssuedTo { get; set; } = string.Empty;
|
|
public int SlipCount { get; set; }
|
|
public decimal TotalQty { get; set; }
|
|
}
|
|
|
|
public class MRSReportDto
|
|
{
|
|
public string CompanyName { get; set; } = "Lloyd Laboratories Incorporated";
|
|
public string PreparedBy { get; set; } = "Finance Department";
|
|
public string ReportNo { get; set; } = string.Empty;
|
|
public DateTime DateFrom { get; set; }
|
|
public DateTime DateTo { get; set; }
|
|
|
|
public MRSReportSummary Summary { get; set; } = new();
|
|
public List<MRSReportRow> Rows { get; set; } = [];
|
|
public List<ConditionTotal> ByCondition { get; set; } = [];
|
|
}
|
|
|
|
public class MRSReportSummary
|
|
{
|
|
public int TotalMRS { get; set; }
|
|
public decimal TotalQtyReturned { get; set; }
|
|
public decimal TotalQtyIssuedRIS { get; set; }
|
|
public decimal NetQtyConsumed { get; set; }
|
|
public decimal ReturnRatePct { get; set; }
|
|
public decimal GoodConditionPct { get; set; }
|
|
}
|
|
|
|
public class MRSReportRow
|
|
{
|
|
public string MRSNo { get; set; } = string.Empty;
|
|
public DateTime CreatedDate { get; set; }
|
|
public string RISNo { get; set; } = string.Empty;
|
|
public string ItemName { get; set; } = string.Empty;
|
|
public string ReturnedBy { get; set; } = string.Empty;
|
|
public decimal QtyReturned { get; set; }
|
|
public string Condition { get; set; } = string.Empty;
|
|
public short Status { get; set; }
|
|
public string StatusLabel { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class ConditionTotal
|
|
{
|
|
public string Condition { get; set; } = string.Empty;
|
|
public decimal TotalQty { get; set; }
|
|
}
|
|
|
|
public class InventoryReportDto
|
|
{
|
|
public string CompanyName { get; set; } = "Lloyd Laboratories Incorporated";
|
|
public string PreparedBy { get; set; } = "Finance Department";
|
|
public string ReportNo { get; set; } = string.Empty;
|
|
public DateTime AsOf { get; set; }
|
|
public List<string> Departments { get; set; } = new();
|
|
public int Page { get; set; }
|
|
public int PageSize { get; set; }
|
|
public int TotalRows { get; set; }
|
|
public int TotalPages => PageSize > 0 ? (int)Math.Ceiling(TotalRows / (double)PageSize) : 0;
|
|
public InventoryReportSummary Summary { get; set; } = new();
|
|
public List<InventoryReportRow> Rows { get; set; } = [];
|
|
public List<CategoryStockLevel> ByCategory { get; set; } = [];
|
|
public List<InventoryAlert> Alerts { get; set; } = [];
|
|
}
|
|
|
|
public class InventoryReportSummary
|
|
{
|
|
public int TotalSKUs { get; set; }
|
|
public decimal TotalOnHand { get; set; }
|
|
public decimal TotalQtyIn { get; set; }
|
|
public decimal TotalQtyOut { get; set; }
|
|
public decimal TotalValue { get; set; }
|
|
public int LowStockCount { get; set; }
|
|
public int OutOfStockCount { get; set; }
|
|
}
|
|
|
|
public class InventoryReportRow
|
|
{
|
|
public string ItemName { get; set; } = string.Empty;
|
|
public long ItemNo { get; set; }
|
|
public string ItemCategoryName { get; set; } = string.Empty;
|
|
public string? LotNo { get; set; }
|
|
public decimal QtyIn { get; set; }
|
|
public decimal QtyOut { get; set; }
|
|
public decimal QtyOnHand { get; set; }
|
|
public decimal UnitPrice { get; set; }
|
|
public int StockPct { get; set; }
|
|
public string? Department { get; set; }
|
|
public string? CurrencyCode { get; set; }
|
|
}
|
|
|
|
public class CategoryStockLevel
|
|
{
|
|
public string CategoryName { get; set; } = string.Empty;
|
|
public int AvgStockPct { get; set; }
|
|
}
|
|
|
|
public class InventoryAlert
|
|
{
|
|
public string ItemName { get; set; } = string.Empty;
|
|
public decimal QtyOnHand { get; set; }
|
|
public string Severity { get; set; } = string.Empty; // "Critical" | "Low"
|
|
}
|
|
}
|