import React from "react";
import { formatJustDate } from "../../utils/formatTime";
import { ShieldCheckIcon } from "@heroicons/react/24/solid";
import { ShowWeight } from "../../components/ShowWeight/ShowWeight";
import ShowMoreInfo from "../../components/ShowMoreInfo/ShowMoreInfo";
import ShowStringList from "../../components/ShowStringList/ShowStringList";
import { Grid } from "../../components/Grid/Grid";

export interface PriceCalculationItem {
  id: number;
  pricing_type: number;
  pricing_type_name: string;
  name: string;
  value: number;
}

export interface QuotaTableConfig {
  pagesInfo: { page: number; page_size: number };
  includeRowNumber?: boolean;
  includeClosedDate?: boolean;
  renderOperations?: (item: any, index: number) => React.ReactNode;
  additionalColumnsBefore?: (item: any, index: number) => React.ReactNode[];
  additionalColumnsAfter?: (item: any, index: number) => React.ReactNode[];
}

export const getQuotaTableColumns = (config: {
  includeRowNumber?: boolean;
  includeClosedDate?: boolean;
  includeOperations?: boolean;
}): string[] => {
  const columns: string[] = [];

  if (config.includeRowNumber !== false) {
    columns.push("ردیف");
  }
  columns.push("شناسه سهمیه");
  columns.push("تاریخ ثبت");
  columns.push("محصول");
  columns.push("ایجاد کننده");
  columns.push("وزن محصول");
  columns.push("وزن توزیع شده");
  columns.push("وزن باقیمانده سهمیه");
  columns.push("وزن فروش رفته");
  columns.push("ورود به انبار");
  columns.push("مانده انبار");
  if (config.includeClosedDate) {
    columns.push("تاریخ بایگانی");
  }
  columns.push("واحد فروش");
  columns.push("گروه");
  columns.push("مبدا");
  columns.push("توزیع");
  // columns.push("سهمیه و مجوز");
  columns.push("نوع فروش");
  // columns.push("محدودیت توزیع دوره");
  // columns.push("سهمیه بندی");
  // columns.push("محدودیت ها");
  columns.push("نوع فروش در دستگاه");
  // columns.push("طرح های تشویقی");
  // columns.push("قیمت گذاری");
  columns.push("نوع سهمیه");
  if (config.includeOperations !== false) {
    columns.push("عملیات");
  }

  return columns;
};

const renderQuotaTypeBadge = (assigned?: boolean): React.ReactNode => {
  const isAssigned = Boolean(assigned);
  const iconColor = isAssigned
    ? "text-primary-500"
    : "text-slate-400 dark:text-slate-400";
  const textColor = isAssigned
    ? "text-primary-600"
    : "text-slate-500 dark:text-slate-400";

  return (
    <div className="flex items-center gap-1 justify-start w-full">
      <ShieldCheckIcon className={`w-4 h-4 ${iconColor}`} />
      <span className={`${textColor} text-xs font-medium text-nowrap`}>
        {isAssigned ? "اختصاصی" : "زیر مجموعه"}
      </span>
    </div>
  );
};

/*
const getFilteredPriceCalculationData = (
  priceCalculationItems: PriceCalculationItem[]
): PriceCalculationItem[] => {
  if (!priceCalculationItems) return [];

  return Object.values(
    priceCalculationItems.reduce(
      (
        acc: Record<number, PriceCalculationItem>,
        itm: PriceCalculationItem
      ) => {
        const key = itm.pricing_type;
        if (acc[key]) {
          acc[key].value += itm.value;
        } else {
          acc[key] = { ...itm };
        }
        return acc;
      },
      {} as Record<number, PriceCalculationItem>
    )
  );
};
*/

export const getQuotaTableRowData = (
  item: any,
  index: number,
  config: QuotaTableConfig
): any[] => {
  const rowData: any[] = [];
  const {
    pagesInfo,
    includeRowNumber = true,
    includeClosedDate = false,
    renderOperations,
    additionalColumnsBefore,
    additionalColumnsAfter,
  } = config;

  // ردیف
  if (includeRowNumber) {
    rowData.push(
      pagesInfo.page === 1
        ? index + 1
        : index + pagesInfo.page_size * (pagesInfo.page - 1) + 1
    );
  }

  // شناسه سهمیه
  rowData.push(item?.quota_id);

  // تاریخ ثبت
  rowData.push(formatJustDate(item?.create_date));

  // محصول
  rowData.push(item?.product?.product);

  // ایجاد کننده
  rowData.push(item?.creator_info);

  //کلید دلخواه
  if (additionalColumnsBefore) {
    const additionalBefore = additionalColumnsBefore(item, index);
    if (Array.isArray(additionalBefore)) {
      rowData.push(...additionalBefore);
    }
  }

  // وزن محصول
  rowData.push(
    <ShowWeight
      key={index}
      weight={item?.quota_weight}
      type={item?.sale_unit?.unit}
    />
  );

  // وزن توزیع شده
  rowData.push(
    <ShowWeight
      key={index}
      weight={item?.quota_distributed}
      type={item?.sale_unit?.unit}
    />
  );

  // وزن باقیمانده سهمیه
  rowData.push(
    <ShowWeight
      key={index}
      weight={item?.remaining_weight}
      type={item?.sale_unit?.unit}
    />
  );

  // وزن فروش رفته
  rowData.push(
    <ShowWeight
      key={index}
      weight={item?.been_sold}
      type={item?.sale_unit?.unit}
    />
  );

  // ورود به انبار
  rowData.push(
    <ShowWeight
      key={index}
      weight={item?.inventory_received}
      type={item?.sale_unit?.unit}
    />
  );

  // مانده انبار
  rowData.push(
    <ShowWeight
      key={index}
      weight={item?.pre_sale_balance}
      type={item?.sale_unit?.unit}
    />
  );

  // تاریخ بایگانی
  if (includeClosedDate) {
    rowData.push(formatJustDate(item?.closed_at));
  }

  // واحد فروش
  rowData.push(item?.sale_unit?.unit);

  // گروه
  rowData.push(
    item?.group
      ?.map((group: any) =>
        group === "rural"
          ? "روستایی"
          : group === "industrial"
          ? "صنعتی"
          : "عشایری"
      )
      .join(", ")
  );

  // مبدا
  rowData.push(
    <ShowMoreInfo
      key={item?.id}
      title="مبدا سهمیه"
      data={item?.distributions}
      columns={[
        "شناسه توزیع",
        "تخصیص دهنده",
        "تاریخ ثبت",
        "آخرین بروزرسانی",
        "وزن",
      ]}
      accessKeys={[
        ["distribution_id"],
        ["assigner_organization"],
        ["create_date"],
        ["modify_date"],
        ["weight"],
      ]}
      customFunction={[
        {
          for: 0,
          apply: (value: any) => {
            return value?.toString();
          },
        },
        {
          for: 2,
          apply: (value: any) => {
            return formatJustDate(value);
          },
        },
        {
          for: 3,
          apply: (value: any) => {
            return formatJustDate(value);
          },
        },
      ]}
    />
  );

  rowData.push(
    <ShowMoreInfo
      key={item?.id}
      title="توزیع"
      disabled={!item?.assigned_organizations?.length}
      counter={item?.assigned_organizations?.length}
    >
      <Grid container column className="gap-2 p-2 justify-start items-start">
        <ShowStringList
          strings={item?.assigned_organizations?.map((opt: any) => opt.name)}
          showSearch={false}
        />
      </Grid>
    </ShowMoreInfo>
  );

  // سهمیه و مجوز
  /*
  rowData.push(
    <ShowMoreInfo key={index} title="سهمیه و مجوز">
      <Grid container column className="gap-2 p-2 justify-start items-start">
        <Typography variant="body2" sign="info">
          سهمیه ماه
        </Typography>
        <ShowStringList
          strings={getPersianMonths(item?.month_choices)}
          showSearch={false}
        />
        <Divider />
        <Typography variant="body2" sign="info">
          مجوز فروش
        </Typography>
        <ShowStringList
          strings={getPersianMonths(item?.sale_license)}
          showSearch={false}
        />
      </Grid>
    </ShowMoreInfo>
  );
  */

  // نوع فروش
  rowData.push(item?.sale_type === "gov" ? "دولتی" : "آزاد");

  // محدودیت توزیع دوره
  // rowData.push(getPersianMonths(item?.distribution_mode).join("، "));

  // سهمیه بندی
  /*
  rowData.push(
    <ShowMoreInfo
      key={index}
      title="سهمیه بندی دام"
      data={item?.livestock_allocations}
      columns={["گروه", "حجم", "دسته", "محصول"]}
      accessKeys={[
        ["livestock_group"],
        ["quantity_kg"],
        ["livestock_type", "weight_type"],
        ["livestock_type", "name"],
      ]}
      conditions={[
        {
          for: 0,
          condition: "rural",
          apply: "روستایی",
          otherwise: "صنعتی",
        },
        {
          for: 2,
          condition: "L",
          apply: "سبک",
          otherwise: "سنگین",
        },
      ]}
    />
  );
  */

  // محدودیت ها
  /*
  rowData.push(
    <ShowMoreInfo key={index} title="محدودیت ها">
      <Grid container column className="gap-2 p-2 justify-start items-start">
        <Typography variant="body1" sign="info">
          محدودیت بر اساس تعداد راس دام:{" "}
          {item?.limit_by_herd_size ? "دارد" : "ندارد"}
        </Typography>

        <Typography variant="body1" sign="info">
          فروش مازاد به توزیع سهمیه: {item?.free_sale ? "دارد" : "ندارد"}
        </Typography>

        <Typography variant="body1" sign="info">
          پیش فروش به توزیع سهمیه: {item?.pre_sale ? "دارد" : "ندارد"}
        </Typography>
        <Divider />
        <Typography variant="body2" sign="info">
          محدودیت بر اساس شهرستان و تعاونی
        </Typography>
        <ShowStringList
          strings={item?.limit_by_organizations?.map(
            (opt: { name: string }) => opt?.name
          )}
        />

        <Divider />
        <Typography variant="body2" sign="info">
          محدودیت بر اساس بازه سنی دام
        </Typography>
        <ShowStringList
          showSearch={false}
          strings={item?.livestock_limitations?.map(
            (opt: {
              age_month: string;
              livestock_type: { name: string; weight_type: string };
            }) =>
              `${opt?.livestock_type?.name} (${
                opt?.livestock_type?.weight_type === "L" ? "سبک" : "سنگین"
              }) با سن ${opt?.age_month}`
          )}
        />

        <Divider />
        <Typography variant="body2" sign="info">
          محدودیت توزیع دوره
        </Typography>

        <ShowStringList strings={getPersianMonths(item?.distribution_mode)} />
      </Grid>
    </ShowMoreInfo>
  );
  */

  //محدود بر اساس تعداد راس دام
  // rowData.push(item?.limit_by_herd_size ? "دارد" : "ندارد");

  // نوع فروش در دستگاه
  rowData.push(
    item?.pos_sale_type === "all"
      ? "بر اساس تعداد راس دام و وزن"
      : item?.pos_sale_type === "weight"
      ? "بر اساس وزن"
      : item?.pos_sale_type === "count"
      ? "بر اساس تعداد راس دام"
      : "-"
  );

  // طرح های تشویقی
  /*
  rowData.push(
    <ShowMoreInfo
      key={index}
      title="طرح های تشویقی"
      disabled={!item?.incentive_plan?.length}
    >
      <div className="grid grid-cols-2 gap-1.5 p-2 max-h-[400px] overflow-y-auto w-full">
        {item?.incentive_plan?.map((itm: any, idx: number) => (
          <Grid
            container
            column
            key={idx}
            className="bg-gradient-to-br from-primary-50/50 to-primary-100/30 dark:from-dark-900 dark:to-dark-800 rounded-lg p-2 border border-primary-200/50 dark:border-dark-700 shadow-sm hover:shadow-md transition-all duration-200"
          >
            <Grid container className="items-center gap-1.5 mb-1.5">
              <div className="flex items-center justify-center w-6 h-6 rounded-full bg-primary-500 text-white font-semibold text-xs shadow-sm">
                {idx + 1}
              </div>
              <Typography
                variant="body1"
                fontWeight="semibold"
                className="text-primary-900 dark:text-primary-100"
              >
                {itm?.name}
              </Typography>
            </Grid>
            {itm?.live_stocks?.length > 0 && (
              <Grid container column className="gap-1 pr-2">
                {itm?.live_stocks?.map((liveStock: any, inidx: number) => (
                  <Grid
                    container
                    key={inidx}
                    className="items-center justify-between bg-white/60 dark:bg-dark-700/50 rounded-md px-2 py-1 border border-primary-100 dark:border-dark-600"
                  >
                    <Typography
                      variant="caption"
                      className="text-gray-700 dark:text-gray-200 font-medium"
                    >
                      {liveStock?.name}
                    </Typography>
                    <div className="flex items-center gap-1 px-1.5 py-0.5 rounded-full bg-primary-500/10 dark:bg-primary-500/20 border border-primary-300/30 dark:border-primary-500/30">
                      <Typography
                        variant="caption"
                        fontWeight="semibold"
                        className="text-primary-700 dark:text-primary-300"
                      >
                        {liveStock?.quantity?.toLocaleString()}
                      </Typography>
                    </div>
                  </Grid>
                ))}
              </Grid>
            )}
          </Grid>
        ))}
      </div>
    </ShowMoreInfo>
  );
  */

  // قیمت گذاری
  /*
  const filteredData = getFilteredPriceCalculationData(
    item?.price_calculation_items || []
  );

  rowData.push(
    <ShowMoreInfo
      disabled={!item?.price_calculation_items?.length}
      key={index}
      hideCounter={true}
      title="قیمت گذاری"
      data={item?.price_calculation_items}
      groupBy={["pricing_type_name"]}
      columns={["مولفه", "قیمت"]}
      accessKeys={[["name"], ["value"]]}
    >
      <Grid container className="w-full mt-2 gap-2">
        {filteredData.map(
          (priceItem: PriceCalculationItem, priceIndex: number) => (
            <Typography
              key={priceIndex}
              variant="body2"
              color="text-red-500 dark:text-red-200"
            >
              {priceItem?.pricing_type_name}:{" "}
              {priceItem?.value?.toLocaleString()}
            </Typography>
          )
        )}
      </Grid>
    </ShowMoreInfo>
  );
  */

  // نوع سهمیه
  rowData.push(renderQuotaTypeBadge(item?.assigned_to_me));

  // کلید دلخواه بعدی
  if (additionalColumnsAfter) {
    const additionalAfter = additionalColumnsAfter(item, index);
    if (Array.isArray(additionalAfter)) {
      rowData.push(...additionalAfter);
    }
  }

  // عملیات
  if (renderOperations) {
    rowData.push(renderOperations(item, index));
  }

  return rowData;
};

export const getQuotaDashboardRowData = (item: any): any[] => {
  const rowData: any[] = [];

  //شناسه سهمیه
  rowData.push(item?.quota_id);

  //	تاریخ ثبت
  rowData.push(formatJustDate(item?.create_date));

  // محصول
  rowData.push(item?.product?.product);

  // وزن محصول
  rowData.push(
    <ShowWeight
      key={item?.id}
      weight={item?.quota_weight}
      type={item?.sale_unit?.unit}
    />
  );

  // وزن توزیع شده
  rowData.push(
    <ShowWeight
      key={item?.id}
      weight={item?.quota_distributed}
      type={item?.sale_unit?.unit}
    />
  );

  //	وزن باقیمانده سهمیه
  rowData.push(
    <ShowWeight
      key={item?.id}
      weight={item?.remaining_weight}
      type={item?.sale_unit?.unit}
    />
  );

  //	وزن فروش رفته
  rowData.push(
    <ShowWeight
      key={item?.id}
      weight={item?.been_sold}
      type={item?.sale_unit?.unit}
    />
  );

  // ورود به انبار
  rowData.push(
    <ShowWeight
      key={item?.id}
      weight={item?.inventory_received}
      type={item?.sale_unit?.unit}
    />
  );

  // مانده انبار
  rowData.push(
    <ShowWeight
      key={item?.id}
      weight={item?.pre_sale_balance}
      type={item?.sale_unit?.unit}
    />
  );

  // واحد فروش
  rowData.push(item?.sale_unit?.unit);

  //گروه
  rowData.push(
    item?.group
      ?.map((group: any) =>
        group === "rural"
          ? "روستایی"
          : group === "industrial"
          ? "صنعتی"
          : "عشایری"
      )
      .join(", ")
  );

  // مبدا
  rowData.push(
    <ShowMoreInfo
      key={item?.id}
      title="مبدا سهمیه"
      data={item?.distributions}
      columns={[
        "شناسه توزیع",
        "تخصیص دهنده",
        "تاریخ ثبت",
        "آخرین بروزرسانی",
        "وزن",
      ]}
      accessKeys={[
        ["distribution_id"],
        ["assigner_organization"],
        ["create_date"],
        ["modify_date"],
        ["weight"],
      ]}
      customFunction={[
        {
          for: 0,
          apply: (value: any) => {
            return value?.toString();
          },
        },
        {
          for: 2,
          apply: (value: any) => {
            return formatJustDate(value);
          },
        },
        {
          for: 3,
          apply: (value: any) => {
            return formatJustDate(value);
          },
        },
      ]}
    />
  );

  // توزیع
  rowData.push(
    <ShowMoreInfo
      key={item?.id}
      title="توزیع"
      disabled={!item?.assigned_organizations?.length}
      counter={item?.assigned_organizations?.length}
    >
      <Grid container column className="gap-2 p-2 justify-start items-start">
        <ShowStringList
          strings={item?.assigned_organizations?.map((opt: any) => opt.name)}
          showSearch={false}
        />
      </Grid>
    </ShowMoreInfo>
  );

  // سهمیه و مجوز
  /*
  rowData.push(
    <ShowMoreInfo key={item?.id} title="سهمیه و مجوز">
      <Grid container column className="gap-2 p-2 justify-start items-start">
        <Typography variant="body2" sign="info">
          سهمیه ماه
        </Typography>
        <ShowStringList
          strings={getPersianMonths(item?.month_choices)}
          showSearch={false}
        />
        <Divider />
        <Typography variant="body2" sign="info">
          مجوز فروش
        </Typography>
        <ShowStringList
          strings={getPersianMonths(item?.sale_license)}
          showSearch={false}
        />
      </Grid>
    </ShowMoreInfo>
  );
  */

  // نوع فروش
  rowData.push(item?.sale_type === "gov" ? "دولتی" : "آزاد");

  // محدودیت توزیع دوره
  // rowData.push(getPersianMonths(item?.distribution_mode).join("، "));

  // سهمیه بندی
  /*
  rowData.push(
    <ShowMoreInfo
      key={item?.id}
      title="سهمیه بندی دام"
      data={item?.livestock_allocations}
      columns={["گروه", "حجم", "دسته", "محصول"]}
      accessKeys={[
        ["livestock_group"],
        ["quantity_kg"],
        ["livestock_type", "weight_type"],
        ["livestock_type", "name"],
      ]}
      conditions={[
        {
          for: 0,
          condition: "rural",
          apply: "روستایی",
          otherwise: "صنعتی",
        },
        {
          for: 2,
          condition: "L",
          apply: "سبک",
          otherwise: "سنگین",
        },
      ]}
    />
  );
  */

  // محدودیت ها
  /*
  rowData.push(
    <ShowMoreInfo key={item} title="محدودیت ها">
      <Grid container column className="gap-2 p-2 justify-start items-start">
        <Typography variant="body1" sign="info">
          محدودیت بر اساس تعداد راس دام:{" "}
          {item?.limit_by_herd_size ? "دارد" : "ندارد"}
        </Typography>

        <Typography variant="body1" sign="info">
          فروش مازاد به توزیع سهمیه: {item?.free_sale ? "دارد" : "ندارد"}
        </Typography>

        <Typography variant="body1" sign="info">
          پیش فروش به توزیع سهمیه: {item?.pre_sale ? "دارد" : "ندارد"}
        </Typography>
        <Divider />
        <Typography variant="body2" sign="info">
          محدودیت بر اساس شهرستان و تعاونی
        </Typography>
        <ShowStringList
          strings={item?.limit_by_organizations?.map(
            (opt: { name: string }) => opt?.name
          )}
        />

        <Divider />
        <Typography variant="body2" sign="info">
          محدودیت بر اساس بازه سنی دام
        </Typography>
        <ShowStringList
          showSearch={false}
          strings={item?.livestock_limitations?.map(
            (opt: {
              age_month: string;
              livestock_type: { name: string; weight_type: string };
            }) =>
              `${opt?.livestock_type?.name} (${
                opt?.livestock_type?.weight_type === "L" ? "سبک" : "سنگین"
              }) با سن ${opt?.age_month}`
          )}
        />

        <Divider />
        <Typography variant="body2" sign="info">
          محدودیت توزیع دوره
        </Typography>

        <ShowStringList strings={getPersianMonths(item?.distribution_mode)} />
      </Grid>
    </ShowMoreInfo>
  );
  */

  // محدود بر اساس تعداد راس دام
  // rowData.push(item?.limit_by_herd_size ? "دارد" : "ندارد");

  // نوع فروش در دستگاه
  rowData.push(
    item?.pos_sale_type === "all"
      ? "بر اساس تعداد راس دام و وزن"
      : item?.pos_sale_type === "weight"
      ? "بر اساس وزن"
      : item?.pos_sale_type === "count"
      ? "بر اساس تعداد راس دام"
      : "-"
  );

  // طرح های تشویقی
  /*
  rowData.push(
    <ShowMoreInfo
      key={item?.id}
      title="طرح های تشویقی"
      disabled={!item?.incentive_plan?.length}
    >
      <div className="grid grid-cols-2 gap-1.5 p-2 max-h-[400px] overflow-y-auto w-full">
        {item?.incentive_plan?.map((itm: any, idx: number) => (
          <Grid
            container
            column
            key={idx}
            className="bg-gradient-to-br from-primary-50/50 to-primary-100/30 dark:from-dark-900 dark:to-dark-800 rounded-lg p-2 border border-primary-200/50 dark:border-dark-700 shadow-sm hover:shadow-md transition-all duration-200"
          >
            <Grid container className="items-center gap-1.5 mb-1.5">
              <div className="flex items-center justify-center w-6 h-6 rounded-full bg-primary-500 text-white font-semibold text-xs shadow-sm">
                {idx + 1}
              </div>
              <Typography
                variant="body1"
                fontWeight="semibold"
                className="text-primary-900 dark:text-primary-100"
              >
                {itm?.name}
              </Typography>
            </Grid>
            {itm?.live_stocks?.length > 0 && (
              <Grid container column className="gap-1 pr-2">
                {itm?.live_stocks?.map((liveStock: any, inidx: number) => (
                  <Grid
                    container
                    key={inidx}
                    className="items-center justify-between bg-white/60 dark:bg-dark-700/50 rounded-md px-2 py-1 border border-primary-100 dark:border-dark-600"
                  >
                    <Typography
                      variant="caption"
                      className="text-gray-700 dark:text-gray-200 font-medium"
                    >
                      {liveStock?.name}
                    </Typography>
                    <div className="flex items-center gap-1 px-1.5 py-0.5 rounded-full bg-primary-500/10 dark:bg-primary-500/20 border border-primary-300/30 dark:border-primary-500/30">
                      <Typography
                        variant="caption"
                        fontWeight="semibold"
                        className="text-primary-700 dark:text-primary-300"
                      >
                        {liveStock?.quantity?.toLocaleString()}
                      </Typography>
                    </div>
                  </Grid>
                ))}
              </Grid>
            )}
          </Grid>
        ))}
      </div>
    </ShowMoreInfo>
  );
  */

  // قیمت گذاری
  /*
  const filteredData = getFilteredPriceCalculationData(
    item?.price_calculation_items || []
  );

  rowData.push(
    <ShowMoreInfo
      disabled={!item?.price_calculation_items?.length}
      key={item?.id}
      title="قیمت گذاری"
      hideCounter={true}
      data={item?.price_calculation_items}
      groupBy={["pricing_type_name"]}
      columns={["مولفه", "قیمت"]}
      accessKeys={[["name"], ["value"]]}
    >
      <Grid container className="w-full mt-2 gap-2">
        {filteredData.map(
          (priceItem: PriceCalculationItem, priceIndex: number) => (
            <Typography
              key={priceIndex}
              variant="body2"
              color="text-red-500 dark:text-red-200"
            >
              {priceItem?.pricing_type_name}:{" "}
              {priceItem?.value?.toLocaleString()}
            </Typography>
          )
        )}
      </Grid>
    </ShowMoreInfo>
  );
  */

  // نوع سهمیه
  rowData.push(renderQuotaTypeBadge(item?.assigned_to_me));

  return rowData;
};

export const getQuotaDashboardColumns = (): string[] => {
  return [
    "شناسه سهمیه",
    "تاریخ ثبت",
    "محصول",
    "وزن محصول",
    "وزن توزیع شده",
    "وزن باقیمانده سهمیه",
    "وزن فروش رفته",
    "ورود به انبار",
    "مانده انبار",
    "واحد فروش",
    "گروه",
    "مبدا",
    "توزیع",
    // "سهمیه و مجوز",
    "نوع فروش",
    // "محدودیت توزیع دوره",
    // "سهمیه بندی",
    // "محدودیت ها",
    // "محدود بر اساس تعداد راس دام",
    "نوع فروش در دستگاه",
    // "طرح های تشویقی",
    // "قیمت گذاری",
    "نوع سهمیه",
  ];
};
