FPSMS-frontend
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

73 líneas
1.8 KiB

  1. "use client";
  2. import { InventoryResult } from "@/app/api/inventory";
  3. import { useMemo } from "react";
  4. import { useTranslation } from "react-i18next";
  5. import { Column } from "../SearchResults";
  6. import SearchResults, {
  7. defaultPagingController,
  8. defaultSetPagingController,
  9. } from "../SearchResults/SearchResults";
  10. interface Props {
  11. inventories: InventoryResult[];
  12. setPagingController: defaultSetPagingController;
  13. pagingController: typeof defaultPagingController;
  14. totalCount: number;
  15. onRowClick: (item: InventoryResult) => void;
  16. }
  17. const StockIssueInventoryTable: React.FC<Props> = ({
  18. inventories,
  19. pagingController,
  20. setPagingController,
  21. totalCount,
  22. onRowClick,
  23. }) => {
  24. const { t } = useTranslation(["inventory", "common"]);
  25. const columns = useMemo<Column<InventoryResult>[]>(
  26. () => [
  27. { name: "itemCode", label: t("Code") },
  28. { name: "itemName", label: t("Name") },
  29. {
  30. name: "itemType",
  31. label: t("Type"),
  32. renderCell: (params) => {
  33. const code = params.itemType?.trim() ?? "";
  34. if (!code) return "—";
  35. const fromCommon = t(code, { ns: "common", defaultValue: code });
  36. return fromCommon !== code ? fromCommon : t(code, { defaultValue: code });
  37. },
  38. },
  39. {
  40. name: "availableQty",
  41. label: t("Available Qty"),
  42. align: "right",
  43. headerAlign: "right",
  44. type: "integer",
  45. },
  46. {
  47. name: "uomUdfudesc",
  48. label: t("Stock UoM"),
  49. align: "left",
  50. headerAlign: "left",
  51. },
  52. ],
  53. [t],
  54. );
  55. return (
  56. <SearchResults<InventoryResult>
  57. items={inventories}
  58. columns={columns}
  59. pagingController={pagingController}
  60. setPagingController={setPagingController}
  61. totalCount={totalCount}
  62. onRowClick={onRowClick}
  63. />
  64. );
  65. };
  66. export default StockIssueInventoryTable;