// @ts-ignore
/* eslint-disable */

declare namespace Report {
  type RptProductionByDayHeader = {
    fevor: string;
    operation: string;
    dailyQuantity: number;
    totalQuantity: number;
  };

  type RptProductionByDayDetailGroup = {
    byDay: string;
    details: RptProductionByDayDetail[];
  };

  type RptProductionByDayDetail = {
    fevor: string;
    operation: string;
    byDay: string;
    sgNo: string;
    quantity: number;
    dailyQuantity: number;
    sgNos: string[];
  };

  type RptProductionByDayDto = {
    fevors: string;
    monthlyPlanQty: number;
    monthlyPlanRate: number;
    headers: RptProductionByDayHeader[];
    detailGroups: RptProductionByDayDetailGroup[];
    monthlyByFevor: MonthlhByFevor[];
  };

  type MonthlhByFevor = {
    werks: string;
    monthlyPlanQty: number;
    monthlyPlanRate: number;
    planQty: number;
  };

  type RptProductionByDayCriteria = {
    werks: string;
    fevor: string;
    month: string;
  };

  type RptProductionProgressDetail = {
    aufnr: string;
    partCode: string;
    partName: string;
    sapOrderQuantity: number;
    sgNo: string;
    plannedByDay: string;
    byDay: string;
    operation: string;
    plannedQuantity: number;
    finishedQuantity: number;
  };

  type RptProductionProgressGroupByDay = {
    key: string;
    aufnr: string;
    partCode: string;
    partName: string;
    sapOrderQuantity: number;
    sgNo: string;
    byDay: string;
    details: RptProductionProgressDetail[];
  };

  type RptProductionProgressGroupBySG = {
    key: string;
    aufnr: string;
    partName: string;
    sgNo: string;
    quantity: number;
    details: RptProductionProgressDetail[];
  };

  type RptProductionProgressOperation = {
    operation: string;
    ordinal: number;
    mesOperations: string[];
  };

  type RptProductionProgressDto = {
    fevor: string;
    operations: RptProductionProgressOperation[];
    groupByDays: RptProductionProgressGroupByDay[];
    groupBySGList: RptProductionProgressGroupBySG[];
  };

  type RptProductionProgressCriteria = {
    werks: string;
    fevor: string;
    sgNo: string;
    monthRange?: [string, string];
    dateFrom: string;
    dateTo: string;
    orderStatus?: string;
    orderFinished: boolean | undefined;
  };
}
