feat: BOM과 구매관리 페이지 엑셀 통합 및 완전 동일화
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
엑셀 내보내기 통합: - BOM 페이지: 구매신청 시 백엔드에서 엑셀 파일 생성 및 저장 - 구매관리 페이지: 저장된 엑셀 파일 직접 다운로드 (재생성 안 함) - 두 페이지에서 완전히 동일한 엑셀 파일 제공 백엔드 엑셀 생성: - openpyxl 사용하여 서버에서 엑셀 생성 - 카테고리별 시트 구성 - 헤더 스타일링 (연파랑 배경) - 컬럼 너비 자동 조정 FLANGE 품목명 개선: - 품목명: FLANGE (간단) - 상세내역: WELD NECK RF, SLIP-ON RF 등 (전체 이름) - 특수 플랜지: ORIFICE FLANGE, SPECTACLE BLIND 등 구분 구매신청 관리 API 개선: - 상세 정보 포함 (pipe_details, fitting_details, flange_details 등) - BOM 형식과 동일한 데이터 구조 - 수량 정수 변환 (3.000 → 3) 에러 수정: - fileName 중복 선언 해결 - flange_details.connection_method 컬럼 제거 (존재하지 않음) - Python 문법 오류 수정 (new Date() → datetime.now()) DB 스키마 개선: - revision_status 컬럼 추가 및 크기 조정 (VARCHAR(30)) - 리비전 변경사항 추적 지원
This commit is contained in:
@@ -51,9 +51,13 @@ async def create_purchase_request(
|
|||||||
count = db.execute(count_query, {"pattern": f"PR-{today}%"}).fetchone().count
|
count = db.execute(count_query, {"pattern": f"PR-{today}%"}).fetchone().count
|
||||||
request_no = f"PR-{today}-{str(count + 1).zfill(3)}"
|
request_no = f"PR-{today}-{str(count + 1).zfill(3)}"
|
||||||
|
|
||||||
# 자재 데이터를 JSON 파일로 저장 (나중에 재다운로드 시 사용)
|
# 자재 데이터를 JSON과 엑셀 파일로 저장
|
||||||
json_filename = f"{request_no}.json"
|
json_filename = f"{request_no}.json"
|
||||||
|
excel_filename = f"{request_no}.xlsx"
|
||||||
json_path = os.path.join(EXCEL_DIR, json_filename)
|
json_path = os.path.join(EXCEL_DIR, json_filename)
|
||||||
|
excel_path = os.path.join(EXCEL_DIR, excel_filename)
|
||||||
|
|
||||||
|
# JSON 저장
|
||||||
save_materials_data(
|
save_materials_data(
|
||||||
request_data.materials_data,
|
request_data.materials_data,
|
||||||
json_path,
|
json_path,
|
||||||
@@ -62,6 +66,14 @@ async def create_purchase_request(
|
|||||||
request_data.grouped_materials # 그룹화 정보 추가
|
request_data.grouped_materials # 그룹화 정보 추가
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 엑셀 파일 생성 및 저장
|
||||||
|
create_excel_file(
|
||||||
|
request_data.grouped_materials or request_data.materials_data,
|
||||||
|
excel_path,
|
||||||
|
request_no,
|
||||||
|
request_data.job_no
|
||||||
|
)
|
||||||
|
|
||||||
# 구매신청 레코드 생성
|
# 구매신청 레코드 생성
|
||||||
insert_request = text("""
|
insert_request = text("""
|
||||||
INSERT INTO purchase_requests (
|
INSERT INTO purchase_requests (
|
||||||
@@ -79,7 +91,7 @@ async def create_purchase_request(
|
|||||||
"job_no": request_data.job_no,
|
"job_no": request_data.job_no,
|
||||||
"category": request_data.category,
|
"category": request_data.category,
|
||||||
"material_count": len(request_data.material_ids),
|
"material_count": len(request_data.material_ids),
|
||||||
"excel_path": json_filename,
|
"excel_path": excel_filename, # 엑셀 파일명 저장 (JSON 대신)
|
||||||
"requested_by": 1 # current_user.get("user_id")
|
"requested_by": 1 # current_user.get("user_id")
|
||||||
})
|
})
|
||||||
request_id = result.fetchone().request_id
|
request_id = result.fetchone().request_id
|
||||||
@@ -276,12 +288,30 @@ async def get_request_materials(
|
|||||||
m.original_description,
|
m.original_description,
|
||||||
m.classified_category,
|
m.classified_category,
|
||||||
m.size_spec,
|
m.size_spec,
|
||||||
|
m.main_nom,
|
||||||
|
m.red_nom,
|
||||||
m.schedule,
|
m.schedule,
|
||||||
m.material_grade,
|
m.material_grade,
|
||||||
|
m.full_material_grade,
|
||||||
m.quantity as original_quantity,
|
m.quantity as original_quantity,
|
||||||
m.unit as original_unit
|
m.unit as original_unit,
|
||||||
|
m.classification_details,
|
||||||
|
pd.outer_diameter, pd.schedule as pipe_schedule, pd.material_spec, pd.manufacturing_method,
|
||||||
|
pd.end_preparation, pd.length_mm,
|
||||||
|
fd.fitting_type, fd.fitting_subtype, fd.connection_method as fitting_connection,
|
||||||
|
fd.pressure_rating as fitting_pressure, fd.schedule as fitting_schedule,
|
||||||
|
fld.flange_type, fld.facing_type,
|
||||||
|
fld.pressure_rating as flange_pressure,
|
||||||
|
gd.gasket_type, gd.gasket_subtype, gd.material_type as gasket_material,
|
||||||
|
gd.filler_material, gd.pressure_rating as gasket_pressure, gd.thickness as gasket_thickness,
|
||||||
|
bd.bolt_type, bd.material_standard as bolt_material, bd.length as bolt_length
|
||||||
FROM purchase_request_items pri
|
FROM purchase_request_items pri
|
||||||
JOIN materials m ON pri.material_id = m.id
|
JOIN materials m ON pri.material_id = m.id
|
||||||
|
LEFT JOIN pipe_details pd ON m.id = pd.material_id
|
||||||
|
LEFT JOIN fitting_details fd ON m.id = fd.material_id
|
||||||
|
LEFT JOIN flange_details fld ON m.id = fld.material_id
|
||||||
|
LEFT JOIN gasket_details gd ON m.id = gd.material_id
|
||||||
|
LEFT JOIN bolt_details bd ON m.id = bd.material_id
|
||||||
WHERE pri.request_id = :request_id
|
WHERE pri.request_id = :request_id
|
||||||
ORDER BY m.classified_category, m.original_description
|
ORDER BY m.classified_category, m.original_description
|
||||||
""")
|
""")
|
||||||
@@ -297,20 +327,68 @@ async def get_request_materials(
|
|||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
qty_int = 0
|
qty_int = 0
|
||||||
|
|
||||||
materials.append({
|
# BOM 페이지와 동일한 형식으로 데이터 구성
|
||||||
|
material_dict = {
|
||||||
"item_id": row.item_id,
|
"item_id": row.item_id,
|
||||||
"material_id": row.material_id,
|
"material_id": row.material_id,
|
||||||
"description": row.original_description,
|
"id": row.material_id,
|
||||||
"category": row.classified_category,
|
"original_description": row.original_description,
|
||||||
"size": row.size_spec,
|
"classified_category": row.classified_category,
|
||||||
|
"size_spec": row.size_spec,
|
||||||
|
"size_inch": row.main_nom,
|
||||||
|
"main_nom": row.main_nom,
|
||||||
|
"red_nom": row.red_nom,
|
||||||
"schedule": row.schedule,
|
"schedule": row.schedule,
|
||||||
"material_grade": row.material_grade,
|
"material_grade": row.material_grade,
|
||||||
"quantity": qty_int, # 정수로 변환
|
"full_material_grade": row.full_material_grade,
|
||||||
|
"quantity": qty_int,
|
||||||
"unit": row.requested_unit or row.original_unit,
|
"unit": row.requested_unit or row.original_unit,
|
||||||
"user_requirement": row.user_requirement,
|
"user_requirement": row.user_requirement,
|
||||||
"is_ordered": row.is_ordered,
|
"is_ordered": row.is_ordered,
|
||||||
"is_received": row.is_received
|
"is_received": row.is_received,
|
||||||
})
|
"classification_details": row.classification_details
|
||||||
|
}
|
||||||
|
|
||||||
|
# 카테고리별 상세 정보 추가
|
||||||
|
if row.classified_category == 'PIPE' and row.manufacturing_method:
|
||||||
|
material_dict["pipe_details"] = {
|
||||||
|
"manufacturing_method": row.manufacturing_method,
|
||||||
|
"schedule": row.pipe_schedule,
|
||||||
|
"material_spec": row.material_spec,
|
||||||
|
"end_preparation": row.end_preparation,
|
||||||
|
"length_mm": row.length_mm
|
||||||
|
}
|
||||||
|
elif row.classified_category == 'FITTING' and row.fitting_type:
|
||||||
|
material_dict["fitting_details"] = {
|
||||||
|
"fitting_type": row.fitting_type,
|
||||||
|
"fitting_subtype": row.fitting_subtype,
|
||||||
|
"connection_method": row.fitting_connection,
|
||||||
|
"pressure_rating": row.fitting_pressure,
|
||||||
|
"schedule": row.fitting_schedule
|
||||||
|
}
|
||||||
|
elif row.classified_category == 'FLANGE' and row.flange_type:
|
||||||
|
material_dict["flange_details"] = {
|
||||||
|
"flange_type": row.flange_type,
|
||||||
|
"facing_type": row.facing_type,
|
||||||
|
"pressure_rating": row.flange_pressure
|
||||||
|
}
|
||||||
|
elif row.classified_category == 'GASKET' and row.gasket_type:
|
||||||
|
material_dict["gasket_details"] = {
|
||||||
|
"gasket_type": row.gasket_type,
|
||||||
|
"gasket_subtype": row.gasket_subtype,
|
||||||
|
"material_type": row.gasket_material,
|
||||||
|
"filler_material": row.filler_material,
|
||||||
|
"pressure_rating": row.gasket_pressure,
|
||||||
|
"thickness": row.gasket_thickness
|
||||||
|
}
|
||||||
|
elif row.classified_category == 'BOLT' and row.bolt_type:
|
||||||
|
material_dict["bolt_details"] = {
|
||||||
|
"bolt_type": row.bolt_type,
|
||||||
|
"material_standard": row.bolt_material,
|
||||||
|
"length": row.bolt_length
|
||||||
|
}
|
||||||
|
|
||||||
|
materials.append(material_dict)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
@@ -334,8 +412,10 @@ async def download_request_excel(
|
|||||||
db: Session = Depends(get_db)
|
db: Session = Depends(get_db)
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
구매신청 자재 데이터 조회 (프론트엔드에서 엑셀 생성용)
|
구매신청 엑셀 파일 직접 다운로드 (BOM 페이지에서 생성한 파일 그대로)
|
||||||
"""
|
"""
|
||||||
|
from fastapi.responses import FileResponse
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 구매신청 정보 조회
|
# 구매신청 정보 조회
|
||||||
query = text("""
|
query = text("""
|
||||||
@@ -351,25 +431,20 @@ async def download_request_excel(
|
|||||||
detail="구매신청을 찾을 수 없습니다"
|
detail="구매신청을 찾을 수 없습니다"
|
||||||
)
|
)
|
||||||
|
|
||||||
file_path = os.path.join(EXCEL_DIR, result.excel_file_path)
|
excel_file_path = os.path.join(EXCEL_DIR, result.excel_file_path)
|
||||||
|
|
||||||
if not os.path.exists(file_path):
|
if not os.path.exists(excel_file_path):
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
detail="데이터 파일을 찾을 수 없습니다"
|
detail="엑셀 파일을 찾을 수 없습니다"
|
||||||
)
|
)
|
||||||
|
|
||||||
# JSON 파일 읽기
|
# 엑셀 파일 직접 다운로드
|
||||||
with open(file_path, 'r', encoding='utf-8') as f:
|
return FileResponse(
|
||||||
data = json.load(f)
|
path=excel_file_path,
|
||||||
|
filename=f"{result.job_no}_{result.request_no}.xlsx",
|
||||||
return {
|
media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||||
"success": True,
|
)
|
||||||
"request_no": result.request_no,
|
|
||||||
"job_no": result.job_no,
|
|
||||||
"materials": data.get("materials", []),
|
|
||||||
"grouped_materials": data.get("grouped_materials", []) # 그룹화 정보도 반환
|
|
||||||
}
|
|
||||||
|
|
||||||
except HTTPException:
|
except HTTPException:
|
||||||
raise
|
raise
|
||||||
@@ -418,3 +493,85 @@ def save_materials_data(materials_data: List[Dict], file_path: str, request_no:
|
|||||||
|
|
||||||
with open(file_path, 'w', encoding='utf-8') as f:
|
with open(file_path, 'w', encoding='utf-8') as f:
|
||||||
json.dump(data_to_save, f, ensure_ascii=False, indent=2)
|
json.dump(data_to_save, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
|
||||||
|
def create_excel_file(materials_data: List[Dict], file_path: str, request_no: str, job_no: str):
|
||||||
|
"""
|
||||||
|
자재 데이터로 엑셀 파일 생성 (BOM 페이지와 동일한 형식)
|
||||||
|
"""
|
||||||
|
import openpyxl
|
||||||
|
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
|
||||||
|
|
||||||
|
# 새 워크북 생성
|
||||||
|
wb = openpyxl.Workbook()
|
||||||
|
wb.remove(wb.active) # 기본 시트 제거
|
||||||
|
|
||||||
|
# 카테고리별 그룹화
|
||||||
|
category_groups = {}
|
||||||
|
for material in materials_data:
|
||||||
|
category = material.get('category', 'UNKNOWN')
|
||||||
|
if category not in category_groups:
|
||||||
|
category_groups[category] = []
|
||||||
|
category_groups[category].append(material)
|
||||||
|
|
||||||
|
# 각 카테고리별 시트 생성
|
||||||
|
for category, items in category_groups.items():
|
||||||
|
if not items:
|
||||||
|
continue
|
||||||
|
|
||||||
|
ws = wb.create_sheet(title=category)
|
||||||
|
|
||||||
|
# 헤더 정의
|
||||||
|
headers = ['TAGNO', '품목명', '수량', '통화구분', '단가', '크기', '압력등급', '스케줄',
|
||||||
|
'재질', '상세내역', '사용자요구', '관리항목1', '관리항목7', '관리항목8',
|
||||||
|
'관리항목9', '관리항목10', '납기일(YYYY-MM-DD)']
|
||||||
|
|
||||||
|
# 헤더 작성
|
||||||
|
for col, header in enumerate(headers, 1):
|
||||||
|
cell = ws.cell(row=1, column=col, value=header)
|
||||||
|
cell.font = Font(bold=True, color="000000", size=12, name="맑은 고딕")
|
||||||
|
cell.fill = PatternFill(start_color="B3D9FF", end_color="B3D9FF", fill_type="solid")
|
||||||
|
cell.alignment = Alignment(horizontal="center", vertical="center")
|
||||||
|
cell.border = Border(
|
||||||
|
top=Side(style="thin", color="666666"),
|
||||||
|
bottom=Side(style="thin", color="666666"),
|
||||||
|
left=Side(style="thin", color="666666"),
|
||||||
|
right=Side(style="thin", color="666666")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 데이터 작성
|
||||||
|
for row_idx, material in enumerate(items, 2):
|
||||||
|
data = [
|
||||||
|
'', # TAGNO
|
||||||
|
category, # 품목명
|
||||||
|
material.get('quantity', 0), # 수량
|
||||||
|
'KRW', # 통화구분
|
||||||
|
1, # 단가
|
||||||
|
material.get('size', '-'), # 크기
|
||||||
|
'-', # 압력등급 (추후 개선)
|
||||||
|
material.get('schedule', '-'), # 스케줄
|
||||||
|
material.get('material_grade', '-'), # 재질
|
||||||
|
'-', # 상세내역 (추후 개선)
|
||||||
|
material.get('user_requirement', ''), # 사용자요구
|
||||||
|
'', '', '', '', '', # 관리항목들
|
||||||
|
datetime.now().strftime('%Y-%m-%d') # 납기일
|
||||||
|
]
|
||||||
|
|
||||||
|
for col, value in enumerate(data, 1):
|
||||||
|
ws.cell(row=row_idx, column=col, value=value)
|
||||||
|
|
||||||
|
# 컬럼 너비 자동 조정
|
||||||
|
for column in ws.columns:
|
||||||
|
max_length = 0
|
||||||
|
column_letter = column[0].column_letter
|
||||||
|
for cell in column:
|
||||||
|
try:
|
||||||
|
if len(str(cell.value)) > max_length:
|
||||||
|
max_length = len(str(cell.value))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
adjusted_width = min(max(max_length + 2, 10), 50)
|
||||||
|
ws.column_dimensions[column_letter].width = adjusted_width
|
||||||
|
|
||||||
|
# 파일 저장
|
||||||
|
wb.save(file_path)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,745 +1,101 @@
|
|||||||
{
|
{
|
||||||
"request_no": "PR-20251014-002",
|
"request_no": "PR-20251014-002",
|
||||||
"job_no": "TKG-25000P",
|
"job_no": "TKG-25000P",
|
||||||
"created_at": "2025-10-14T06:14:58.376128",
|
"created_at": "2025-10-14T06:54:44.585437",
|
||||||
"materials": [
|
"materials": [
|
||||||
{
|
{
|
||||||
"material_id": 1075,
|
"material_id": 5552,
|
||||||
"description": "(4) 0.5, 75 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
"description": "SIGHT GLASS, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "1\"",
|
"size": "1\"",
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
"material_grade": "SS",
|
||||||
"quantity": 51,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1079,
|
|
||||||
"description": "(4) 0.5, 80 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 32,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1083,
|
|
||||||
"description": "(4) 0.625, 100 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 4,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1085,
|
|
||||||
"description": "(4) 0.75, 105 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1086,
|
|
||||||
"description": "(8) 0.75, 125 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1087,
|
|
||||||
"description": "(8) 0.75, 140 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 4,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1088,
|
|
||||||
"description": "(4) 0.5, 65 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 36,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1124,
|
|
||||||
"description": "(4) 0.5, 65 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1131,
|
|
||||||
"description": "(4) 0.5, 70 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 11,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1142,
|
|
||||||
"description": "(4) 0.5, 70 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 4,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1193,
|
|
||||||
"description": "(4) 0.5, 75 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1226,
|
|
||||||
"description": "(4) 0.5, 80 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1234,
|
|
||||||
"description": "(4) 0.5, 90 LG, 150LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1239,
|
|
||||||
"description": "(4) 0.5, 95 LG, 150LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1247,
|
|
||||||
"description": "(4) 0.75, 120 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1252,
|
|
||||||
"description": "(4) 0.75, 125 LG, 300LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1254,
|
|
||||||
"description": "(8) 0.75, 115 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1259,
|
|
||||||
"description": "(8) 0.75, 120 LG, 150LB, WOOD OR, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1261,
|
|
||||||
"description": "(8) 0.75, 120 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1263,
|
|
||||||
"description": "(8) 0.75, 140 CK, 600LB, PSV, ASTM A320M/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A320M/A194M GR B8/8",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1267,
|
|
||||||
"description": "(8) 0.75, 145 LG, 600LB, WOOD OR, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1268,
|
|
||||||
"description": "(4) 0.625, 100 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1275,
|
|
||||||
"description": "(4) 0.625, 100 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 6,
|
"quantity": 6,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"material_id": 1283,
|
"material_id": 5558,
|
||||||
"description": "(4) 0.625, 100 LG, 600LB, ASTM A320M/A194M GR B8/8",
|
"description": "SIGHT GLASS, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "1\"",
|
"size": "1/2\"",
|
||||||
"material_grade": "ASTM A320M/A194M GR B8/8",
|
"material_grade": "SS",
|
||||||
"quantity": 1,
|
"quantity": 5,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"material_id": 1284,
|
"material_id": 5563,
|
||||||
"description": "(4) 0.625, 105 LG, 600LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
"description": "SIGHT GLASS, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "3/4\"",
|
"size": "2\"",
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
"material_grade": "SS",
|
||||||
"quantity": 2,
|
"quantity": 2,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"material_id": 1286,
|
"material_id": 5566,
|
||||||
"description": "(4) 0.625, 90 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
"description": "STRAINER, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "2\"",
|
"size": "2\"",
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
"material_grade": "-",
|
||||||
"quantity": 25,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1311,
|
|
||||||
"description": "(4) 0.625, 90 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1317,
|
|
||||||
"description": "(4) 0.625, 95 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1319,
|
|
||||||
"description": "(4) 0.625, 95 LG, 600LB, ASTM A320M/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A320M/A194M GR B8/8",
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1320,
|
|
||||||
"description": "(8) 0.625, 95 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1321,
|
|
||||||
"description": "(12) 0.875, 130 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1322,
|
|
||||||
"description": "(12) 0.875, 140 LG, 150LB, TS, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"grouped_materials": [
|
"grouped_materials": [
|
||||||
{
|
{
|
||||||
"group_key": "(4) 0.5, 75 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|1\"|undefined|ASTM A193/A194 GR B7/2H",
|
"group_key": "SIGHT GLASS, FLG, 150LB|1\"|undefined|SS",
|
||||||
"material_ids": [
|
"material_ids": [
|
||||||
1075
|
5552
|
||||||
],
|
],
|
||||||
"description": "(4) 0.5, 75 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
"description": "SIGHT GLASS, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "1\"",
|
"size": "1\"",
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
"material_grade": "SS",
|
||||||
"quantity": 51,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 80 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|1 1/2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1079
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 80 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 32,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.625, 100 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|1\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1083
|
|
||||||
],
|
|
||||||
"description": "(4) 0.625, 100 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 4,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.75, 105 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|1 1/2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1085
|
|
||||||
],
|
|
||||||
"description": "(4) 0.75, 105 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 125 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|4\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1086
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 125 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 140 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|3\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1087
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 140 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 4,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 65 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|1/2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1088
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 65 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 36,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 65 LG, 150LB, ASTM A320/A194M GR B8/8|1/2\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1124
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 65 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 70 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|3/4\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1131
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 70 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 11,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 70 LG, 150LB, ASTM A320/A194M GR B8/8|3/4\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1142
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 70 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 4,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 75 LG, 150LB, ASTM A320/A194M GR B8/8|1\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1193
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 75 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 80 LG, 150LB, ASTM A320/A194M GR B8/8|1 1/2\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1226
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 80 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 90 LG, 150LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV|3/4\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1234
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 90 LG, 150LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.5, 95 LG, 150LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV|1 1/2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1239
|
|
||||||
],
|
|
||||||
"description": "(4) 0.5, 95 LG, 150LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.75, 120 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|1 1/2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1247
|
|
||||||
],
|
|
||||||
"description": "(4) 0.75, 120 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.75, 125 LG, 300LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV|1 1/2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1252
|
|
||||||
],
|
|
||||||
"description": "(4) 0.75, 125 LG, 300LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 115 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|6\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1254
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 115 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 120 LG, 150LB, WOOD OR, ASTM A193/A194 GR B7/2H, ELEC.GALV|6\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1259
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 120 LG, 150LB, WOOD OR, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 120 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|3\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1261
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 120 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 140 CK, 600LB, PSV, ASTM A320M/A194M GR B8/8|3\"|undefined|ASTM A320M/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1263
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 140 CK, 600LB, PSV, ASTM A320M/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A320M/A194M GR B8/8",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.75, 145 LG, 600LB, WOOD OR, ASTM A193/A194 GR B7/2H, ELEC.GALV|3\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1267
|
|
||||||
],
|
|
||||||
"description": "(8) 0.75, 145 LG, 600LB, WOOD OR, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.625, 100 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|3\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1268
|
|
||||||
],
|
|
||||||
"description": "(4) 0.625, 100 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.625, 100 LG, 150LB, ASTM A320/A194M GR B8/8|3\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1275
|
|
||||||
],
|
|
||||||
"description": "(4) 0.625, 100 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 6,
|
"quantity": 6,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"group_key": "(4) 0.625, 100 LG, 600LB, ASTM A320M/A194M GR B8/8|1\"|undefined|ASTM A320M/A194M GR B8/8",
|
"group_key": "SIGHT GLASS, FLG, 150LB|1/2\"|undefined|SS",
|
||||||
"material_ids": [
|
"material_ids": [
|
||||||
1283
|
5558
|
||||||
],
|
],
|
||||||
"description": "(4) 0.625, 100 LG, 600LB, ASTM A320M/A194M GR B8/8",
|
"description": "SIGHT GLASS, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "1\"",
|
"size": "1/2\"",
|
||||||
"material_grade": "ASTM A320M/A194M GR B8/8",
|
"material_grade": "SS",
|
||||||
"quantity": 1,
|
"quantity": 5,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"group_key": "(4) 0.625, 105 LG, 600LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV|3/4\"|undefined|ASTM A193/A194 GR B7/2H",
|
"group_key": "SIGHT GLASS, FLG, 150LB|2\"|undefined|SS",
|
||||||
"material_ids": [
|
"material_ids": [
|
||||||
1284
|
5563
|
||||||
],
|
],
|
||||||
"description": "(4) 0.625, 105 LG, 600LB, PSV, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
"description": "SIGHT GLASS, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "3/4\"",
|
"size": "2\"",
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
"material_grade": "SS",
|
||||||
"quantity": 2,
|
"quantity": 2,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"group_key": "(4) 0.625, 90 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|2\"|undefined|ASTM A193/A194 GR B7/2H",
|
"group_key": "STRAINER, FLG, 150LB|2\"|undefined|-",
|
||||||
"material_ids": [
|
"material_ids": [
|
||||||
1286
|
5566
|
||||||
],
|
],
|
||||||
"description": "(4) 0.625, 90 LG, 150LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
"description": "STRAINER, FLG, 150LB",
|
||||||
"category": "BOLT",
|
"category": "FLANGE",
|
||||||
"size": "2\"",
|
"size": "2\"",
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
"material_grade": "-",
|
||||||
"quantity": 25,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.625, 90 LG, 150LB, ASTM A320/A194M GR B8/8|2\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1311
|
|
||||||
],
|
|
||||||
"description": "(4) 0.625, 90 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.625, 95 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|3/4\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1317
|
|
||||||
],
|
|
||||||
"description": "(4) 0.625, 95 LG, 600LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(4) 0.625, 95 LG, 600LB, ASTM A320M/A194M GR B8/8|3/4\"|undefined|ASTM A320M/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1319
|
|
||||||
],
|
|
||||||
"description": "(4) 0.625, 95 LG, 600LB, ASTM A320M/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A320M/A194M GR B8/8",
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"unit": "EA",
|
"unit": "EA",
|
||||||
"user_requirement": ""
|
"user_requirement": ""
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(8) 0.625, 95 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV|2\"|undefined|ASTM A193/A194 GR B7/2H",
|
|
||||||
"material_ids": [
|
|
||||||
1320
|
|
||||||
],
|
|
||||||
"description": "(8) 0.625, 95 LG, 300LB, ASTM A193/A194 GR B7/2H, ELEC.GALV",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A193/A194 GR B7/2H",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(12) 0.875, 130 LG, 150LB, ASTM A320/A194M GR B8/8|10\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1321
|
|
||||||
],
|
|
||||||
"description": "(12) 0.875, 130 LG, 150LB, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "(12) 0.875, 140 LG, 150LB, TS, ASTM A320/A194M GR B8/8|10\"|undefined|ASTM A320/A194M GR B8/8",
|
|
||||||
"material_ids": [
|
|
||||||
1322
|
|
||||||
],
|
|
||||||
"description": "(12) 0.875, 140 LG, 150LB, TS, ASTM A320/A194M GR B8/8",
|
|
||||||
"category": "BOLT",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A320/A194M GR B8/8",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,929 +0,0 @@
|
|||||||
{
|
|
||||||
"request_no": "PR-20251014-003",
|
|
||||||
"job_no": "TKG-25000P",
|
|
||||||
"created_at": "2025-10-14T06:15:45.368700",
|
|
||||||
"materials": [
|
|
||||||
{
|
|
||||||
"material_id": 723,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 728,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "12\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 729,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 36,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 765,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 771,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 779,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 784,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 786,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 12,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 798,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 803,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 812,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 815,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 10,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 825,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 14,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 837,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 15,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 841,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 842,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 66,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 846,
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 848,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 856,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 40,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 892,
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 913,
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 986,
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 991,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 57,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1048,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1055,
|
|
||||||
"description": "FLG SWRF SCH 40S, 300LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1056,
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1068,
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1070,
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1874,
|
|
||||||
"description": "ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1876,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1878,
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1879,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1881,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1882,
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1883,
|
|
||||||
"description": "WOOD ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 1885,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "8\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 2013,
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 2019,
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 2024,
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 2027,
|
|
||||||
"description": "STRAINER, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"grouped_materials": [
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|10\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
723
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|12\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
728
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "12\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105|2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
729
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 36,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105|2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
765
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|2\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
771
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 600LB, ASTM A105|3\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
779
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 600LB, ASTM A182 F304|3\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
784
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105|3\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
786
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 12,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105|3\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
798
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|3\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
803
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105|4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
812
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105|6\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
815
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 10,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|1/2\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
825
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 14,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|3/4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
837
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 15,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|1\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
841
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|1\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
842
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 66,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 600LB, ASTM A105|1\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
846
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|1 1/2\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
848
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|1 1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
856
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 40,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 600LB, ASTM A105|1 1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
892
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304|1\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
913
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 300LB, ASTM A105|1 1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
986
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
991
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 57,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|3/4\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
1048
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 300LB, ASTM A182 F304|3/4\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
1055
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 300LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304|3/4\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
1056
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 300LB, ASTM A105|3/4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
1068
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 600LB, ASTM A105|3/4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
1070
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "ORIFICE, 150LB|10\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1874
|
|
||||||
],
|
|
||||||
"description": "ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|10\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1876
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 600LB|3\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1878
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|4\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1879
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|5\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1881
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 600LB|5\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1882
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 150LB|6\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1883
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|8\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
1885
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "8\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "SIGHT GLASS, FLG, 150LB|1\"|undefined|SS",
|
|
||||||
"material_ids": [
|
|
||||||
2013
|
|
||||||
],
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "SIGHT GLASS, FLG, 150LB|1/2\"|undefined|SS",
|
|
||||||
"material_ids": [
|
|
||||||
2019
|
|
||||||
],
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "SIGHT GLASS, FLG, 150LB|2\"|undefined|SS",
|
|
||||||
"material_ids": [
|
|
||||||
2024
|
|
||||||
],
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "STRAINER, FLG, 150LB|2\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
2027
|
|
||||||
],
|
|
||||||
"description": "STRAINER, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,929 +0,0 @@
|
|||||||
{
|
|
||||||
"request_no": "PR-20251014-004",
|
|
||||||
"job_no": "TK-MP-DEV-001",
|
|
||||||
"created_at": "2025-10-14T06:20:42.821334",
|
|
||||||
"materials": [
|
|
||||||
{
|
|
||||||
"material_id": 4262,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4267,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "12\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4268,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 36,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4304,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4310,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4318,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4323,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4325,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 12,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4337,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4342,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4351,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4354,
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 10,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4364,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 14,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4376,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 15,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4380,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4381,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 66,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4385,
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4387,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4395,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 40,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4431,
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4452,
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4525,
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4530,
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 57,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4587,
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4594,
|
|
||||||
"description": "FLG SWRF SCH 40S, 300LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4595,
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4607,
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 4609,
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5413,
|
|
||||||
"description": "ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5415,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5417,
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5418,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5420,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5421,
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5422,
|
|
||||||
"description": "WOOD ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5424,
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "8\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5552,
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5558,
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5563,
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5566,
|
|
||||||
"description": "STRAINER, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"grouped_materials": [
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|10\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4262
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|12\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4267
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "12\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105|2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4268
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 36,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105|2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4304
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|2\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4310
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 600LB, ASTM A105|3\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4318
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 600LB, ASTM A182 F304|3\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4323
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105|3\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4325
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 12,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105|3\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4337
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304|3\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4342
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105|4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4351
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105|6\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4354
|
|
||||||
],
|
|
||||||
"description": "FLG WELD NECK RF SCH 40, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 10,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|1/2\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4364
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 14,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|3/4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4376
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 15,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|1\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4380
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 9,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|1\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4381
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 66,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 600LB, ASTM A105|1\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4385
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|1 1/2\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4387
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 8,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|1 1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4395
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 40,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 600LB, ASTM A105|1 1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4431
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304|1\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4452
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 300LB, ASTM A105|1 1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4525
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 3,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 150LB, ASTM A105|1/2\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4530
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 150LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 57,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304|3/4\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4587
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 150LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 7,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 300LB, ASTM A182 F304|3/4\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4594
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 300LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304|3/4\"|undefined|ASTM A182 F304",
|
|
||||||
"material_ids": [
|
|
||||||
4595
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 40S, 600LB, ASTM A182 F304",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A182 F304",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 300LB, ASTM A105|3/4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4607
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 300LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "FLG SWRF SCH 80, 600LB, ASTM A105|3/4\"|undefined|ASTM A105",
|
|
||||||
"material_ids": [
|
|
||||||
4609
|
|
||||||
],
|
|
||||||
"description": "FLG SWRF SCH 80, 600LB, ASTM A105",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3/4\"",
|
|
||||||
"material_grade": "ASTM A105",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "ORIFICE, 150LB|10\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5413
|
|
||||||
],
|
|
||||||
"description": "ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|10\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5415
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "10\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 600LB|3\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5417
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "3\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|4\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5418
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "4\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|5\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5420
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 600LB|5\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5421
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 600LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "5\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 150LB|6\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5422
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "6\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "WOOD ORIFICE, 300LB|8\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5424
|
|
||||||
],
|
|
||||||
"description": "WOOD ORIFICE, 300LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "8\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "SIGHT GLASS, FLG, 150LB|1\"|undefined|SS",
|
|
||||||
"material_ids": [
|
|
||||||
5552
|
|
||||||
],
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 6,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "SIGHT GLASS, FLG, 150LB|1/2\"|undefined|SS",
|
|
||||||
"material_ids": [
|
|
||||||
5558
|
|
||||||
],
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "1/2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 5,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "SIGHT GLASS, FLG, 150LB|2\"|undefined|SS",
|
|
||||||
"material_ids": [
|
|
||||||
5563
|
|
||||||
],
|
|
||||||
"description": "SIGHT GLASS, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "SS",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "STRAINER, FLG, 150LB|2\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5566
|
|
||||||
],
|
|
||||||
"description": "STRAINER, FLG, 150LB",
|
|
||||||
"category": "FLANGE",
|
|
||||||
"size": "2\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
{
|
|
||||||
"request_no": "PR-20251014-005",
|
|
||||||
"job_no": "TK-MP-DEV-001",
|
|
||||||
"created_at": "2025-10-14T06:23:18.137603",
|
|
||||||
"materials": [
|
|
||||||
{
|
|
||||||
"material_id": 5450,
|
|
||||||
"description": "ON/OFF VALVE, FLG, 600LB",
|
|
||||||
"category": "VALVE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"material_id": 5451,
|
|
||||||
"description": "CHECK VALVE, LIFT, SW, 800LB",
|
|
||||||
"category": "VALVE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"grouped_materials": [
|
|
||||||
{
|
|
||||||
"group_key": "ON/OFF VALVE, FLG, 600LB|1\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5450
|
|
||||||
],
|
|
||||||
"description": "ON/OFF VALVE, FLG, 600LB",
|
|
||||||
"category": "VALVE",
|
|
||||||
"size": "1\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 1,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"group_key": "CHECK VALVE, LIFT, SW, 800LB|1 1/2\"|undefined|-",
|
|
||||||
"material_ids": [
|
|
||||||
5451
|
|
||||||
],
|
|
||||||
"description": "CHECK VALVE, LIFT, SW, 800LB",
|
|
||||||
"category": "VALVE",
|
|
||||||
"size": "1 1/2\"",
|
|
||||||
"material_grade": "-",
|
|
||||||
"quantity": 2,
|
|
||||||
"unit": "EA",
|
|
||||||
"user_requirement": ""
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1382,6 +1382,20 @@ const NewMaterialsPage = ({
|
|||||||
user_requirement: userRequirements[material.id] || ''
|
user_requirement: userRequirements[material.id] || ''
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// 1단계: 엑셀 파일 생성
|
||||||
|
const timestamp = new Date().toISOString().split('T')[0];
|
||||||
|
const fileName = `${jobNo}_${selectedCategory}_${timestamp}.xlsx`;
|
||||||
|
|
||||||
|
// BOM 페이지에서 사용하는 엑셀 내보내기 함수 사용
|
||||||
|
await exportCategoryToExcel(
|
||||||
|
selectedCategory,
|
||||||
|
dataWithRequirements,
|
||||||
|
jobNo,
|
||||||
|
fileName,
|
||||||
|
userRequirements
|
||||||
|
);
|
||||||
|
|
||||||
|
// 2단계: 생성된 엑셀을 서버에 업로드 (구매신청과 함께)
|
||||||
// 서버에 구매신청 생성
|
// 서버에 구매신청 생성
|
||||||
try {
|
try {
|
||||||
// 그룹화된 데이터를 구매신청 형식으로 변환
|
// 그룹화된 데이터를 구매신청 형식으로 변환
|
||||||
@@ -1472,9 +1486,9 @@ const NewMaterialsPage = ({
|
|||||||
uploadDate: new Date().toLocaleDateString()
|
uploadDate: new Date().toLocaleDateString()
|
||||||
};
|
};
|
||||||
|
|
||||||
const fileName = `${selectedCategory}_${jobNo || 'export'}_${new Date().toISOString().split('T')[0]}.xlsx`;
|
const excelFileName = `${selectedCategory}_${jobNo || 'export'}_${new Date().toISOString().split('T')[0]}.xlsx`;
|
||||||
|
|
||||||
exportMaterialsToExcel(dataWithRequirements, fileName, additionalInfo);
|
exportMaterialsToExcel(dataWithRequirements, excelFileName, additionalInfo);
|
||||||
|
|
||||||
console.log('✅ 엑셀 내보내기 성공');
|
console.log('✅ 엑셀 내보내기 성공');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -54,81 +54,27 @@ const PurchaseRequestPage = ({ onNavigate, fileId, jobNo, selectedProject }) =>
|
|||||||
const handleDownloadExcel = async (requestId, requestNo) => {
|
const handleDownloadExcel = async (requestId, requestNo) => {
|
||||||
try {
|
try {
|
||||||
console.log('📥 엑셀 다운로드 시작:', requestId, requestNo);
|
console.log('📥 엑셀 다운로드 시작:', requestId, requestNo);
|
||||||
// 서버에서 자재 데이터 가져오기
|
|
||||||
const response = await api.get(`/purchase-request/${requestId}/download-excel`);
|
|
||||||
console.log('📦 서버 응답:', response.data);
|
|
||||||
|
|
||||||
if (response.data.success) {
|
// 서버에서 생성된 엑셀 파일 직접 다운로드 (BOM 페이지와 동일한 파일)
|
||||||
const materials = response.data.materials;
|
const response = await api.get(`/purchase-request/${requestId}/download-excel`, {
|
||||||
const groupedMaterials = response.data.grouped_materials || [];
|
responseType: 'blob' // 파일 다운로드용
|
||||||
const jobNo = response.data.job_no;
|
|
||||||
|
|
||||||
console.log('📊 materials:', materials.length, '개');
|
|
||||||
console.log('📊 groupedMaterials:', groupedMaterials.length, '개');
|
|
||||||
|
|
||||||
// 사용자 요구사항 매핑
|
|
||||||
const userRequirements = {};
|
|
||||||
materials.forEach(material => {
|
|
||||||
if (material.user_requirement) {
|
|
||||||
userRequirements[material.material_id || material.id] = material.user_requirement;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 개별 자재 사용 (BOM 페이지와 동일하게)
|
// 파일 다운로드 처리
|
||||||
// groupedMaterials는 일부 자재가 누락될 수 있으므로 materials 사용
|
const blob = new Blob([response.data], {
|
||||||
const dataToExport = materials;
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
||||||
|
|
||||||
// 파일명 생성
|
|
||||||
const timestamp = new Date().toISOString().split('T')[0];
|
|
||||||
const fileName = `${jobNo}_${requestNo}_${timestamp}.xlsx`;
|
|
||||||
|
|
||||||
console.log('📄 내보낼 데이터:', dataToExport.length, '개');
|
|
||||||
console.log('📄 첫 번째 자재:', dataToExport[0]);
|
|
||||||
|
|
||||||
// materials 데이터를 BOM 형식으로 변환
|
|
||||||
const materialsForExport = materials.map(m => {
|
|
||||||
// description에서 품목명 추출 (NIPPLE, ELBOW, TEE 등)
|
|
||||||
const desc = m.description || '';
|
|
||||||
const category = m.category || 'UNKNOWN';
|
|
||||||
|
|
||||||
return {
|
|
||||||
...m,
|
|
||||||
classified_category: category,
|
|
||||||
original_description: desc,
|
|
||||||
size_spec: m.size,
|
|
||||||
size_inch: m.size,
|
|
||||||
material_grade: m.material_grade,
|
|
||||||
full_material_grade: m.material_grade,
|
|
||||||
schedule: m.schedule,
|
|
||||||
quantity: m.quantity,
|
|
||||||
unit: m.unit,
|
|
||||||
// FITTING의 경우 타입 정보 추가
|
|
||||||
fitting_details: category === 'FITTING' ? {
|
|
||||||
fitting_type: desc.includes('NIPPLE') ? 'NIPPLE' :
|
|
||||||
desc.includes('ELBOW') ? 'ELBOW' :
|
|
||||||
desc.includes('TEE') ? 'TEE' :
|
|
||||||
desc.includes('REDUCER') ? 'REDUCER' :
|
|
||||||
desc.includes('CAP') ? 'CAP' :
|
|
||||||
desc.includes('PLUG') ? 'PLUG' :
|
|
||||||
desc.includes('COUPLING') ? 'COUPLING' : 'FITTING'
|
|
||||||
} : undefined
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('🔄 BOM 형식으로 변환 완료:', materialsForExport.length, '개');
|
const url = window.URL.createObjectURL(blob);
|
||||||
|
const link = document.createElement('a');
|
||||||
|
link.href = url;
|
||||||
|
link.download = `${requestNo}_재다운로드.xlsx`;
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
window.URL.revokeObjectURL(url);
|
||||||
|
|
||||||
// 기존 엑셀 유틸리티 사용
|
console.log('✅ 엑셀 파일 다운로드 완료');
|
||||||
exportMaterialsToExcel(materialsForExport, fileName, {
|
|
||||||
jobNo,
|
|
||||||
requestNo,
|
|
||||||
userRequirements
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('✅ 엑셀 내보내기 완료');
|
|
||||||
} else {
|
|
||||||
console.error('❌ 서버 응답 실패:', response.data);
|
|
||||||
alert('데이터를 가져올 수 없습니다');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 엑셀 다운로드 실패:', error);
|
console.error('❌ 엑셀 다운로드 실패:', error);
|
||||||
alert('엑셀 다운로드 실패: ' + error.message);
|
alert('엑셀 다운로드 실패: ' + error.message);
|
||||||
|
|||||||
@@ -150,24 +150,21 @@ const formatMaterialForExcel = (material, includeComparison = false) => {
|
|||||||
// 구매 수량 계산
|
// 구매 수량 계산
|
||||||
const purchaseInfo = calculatePurchaseQuantity(material);
|
const purchaseInfo = calculatePurchaseQuantity(material);
|
||||||
|
|
||||||
// 품목명 생성 (카테고리별 상세 처리)
|
// 변수 선언 (먼저 선언)
|
||||||
let itemName = '';
|
let itemName = '';
|
||||||
|
let detailInfo = '';
|
||||||
|
let gasketMaterial = '';
|
||||||
|
let gasketThickness = '';
|
||||||
if (category === 'PIPE') {
|
if (category === 'PIPE') {
|
||||||
itemName = material.pipe_details?.manufacturing_method || 'PIPE';
|
itemName = material.pipe_details?.manufacturing_method || 'PIPE';
|
||||||
} else if (category === 'FITTING') {
|
} else if (category === 'FITTING') {
|
||||||
itemName = material.fitting_details?.fitting_type || 'FITTING';
|
itemName = material.fitting_details?.fitting_type || 'FITTING';
|
||||||
} else if (category === 'FLANGE') {
|
} else if (category === 'FLANGE') {
|
||||||
// 플랜지 타입 추출
|
// 플랜지는 품목명만 간단하게 (상세내역에 타입 정보)
|
||||||
|
itemName = 'FLANGE';
|
||||||
|
|
||||||
|
// 특수 플랜지는 구분
|
||||||
const desc = cleanDescription.toUpperCase();
|
const desc = cleanDescription.toUpperCase();
|
||||||
console.log('🔍 FLANGE 품목명 추출:', cleanDescription);
|
|
||||||
|
|
||||||
if (material.flange_details) {
|
|
||||||
console.log(' flange_details:', material.flange_details);
|
|
||||||
const flangeType = material.flange_details.flange_type || '';
|
|
||||||
const originalFlangeType = material.flange_details.original_flange_type || '';
|
|
||||||
const facingType = material.flange_details.facing_type || '';
|
|
||||||
|
|
||||||
// 특수 플랜지 타입 우선
|
|
||||||
if (desc.includes('ORIFICE')) {
|
if (desc.includes('ORIFICE')) {
|
||||||
itemName = 'ORIFICE FLANGE';
|
itemName = 'ORIFICE FLANGE';
|
||||||
} else if (desc.includes('SPECTACLE')) {
|
} else if (desc.includes('SPECTACLE')) {
|
||||||
@@ -178,38 +175,18 @@ const formatMaterialForExcel = (material, includeComparison = false) => {
|
|||||||
itemName = 'SPACER';
|
itemName = 'SPACER';
|
||||||
} else if (desc.includes('BLIND')) {
|
} else if (desc.includes('BLIND')) {
|
||||||
itemName = 'BLIND FLANGE';
|
itemName = 'BLIND FLANGE';
|
||||||
} else {
|
|
||||||
// 일반 플랜지: flange_type 사용 (WN RF, SO RF 등)
|
|
||||||
itemName = flangeType || 'FLANGE';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 상세내역에 플랜지 타입 정보 저장 (줄임말 사용)
|
||||||
|
if (material.flange_details && material.flange_details.flange_type) {
|
||||||
|
detailInfo = material.flange_details.flange_type; // WN RF, SO RF 등
|
||||||
} else {
|
} else {
|
||||||
console.log(' flange_details 없음, description에서 추출');
|
// description에서 추출 (전체 이름 그대로 사용)
|
||||||
// flange_details가 없으면 description에서 추출
|
const flangeTypeMatch = cleanDescription.match(/FLG\s+([^,]+?)(?=\s*SCH|\s*,\s*\d+LB|$)/i);
|
||||||
if (desc.includes('ORIFICE')) {
|
if (flangeTypeMatch) {
|
||||||
itemName = 'ORIFICE FLANGE';
|
detailInfo = flangeTypeMatch[1].trim(); // WELD NECK RF 등 그대로
|
||||||
} else if (desc.includes('SPECTACLE') || desc.includes('SPEC')) {
|
|
||||||
itemName = 'SPECTACLE BLIND';
|
|
||||||
} else if (desc.includes('PADDLE')) {
|
|
||||||
itemName = 'PADDLE BLIND';
|
|
||||||
} else if (desc.includes('SPACER')) {
|
|
||||||
itemName = 'SPACER';
|
|
||||||
} else if (desc.includes('BLIND')) {
|
|
||||||
itemName = 'BLIND FLANGE';
|
|
||||||
} else if (desc.includes(' SW') || desc.includes(',SW') || desc.includes(', SW')) {
|
|
||||||
itemName = 'FLANGE SW';
|
|
||||||
} else if (desc.includes(' BW') || desc.includes(',BW') || desc.includes(', BW')) {
|
|
||||||
itemName = 'FLANGE BW';
|
|
||||||
} else if (desc.includes('RTJ')) {
|
|
||||||
itemName = 'FLANGE RTJ';
|
|
||||||
} else if (desc.includes(' FF') || desc.includes('FULL FACE')) {
|
|
||||||
itemName = 'FLANGE FF';
|
|
||||||
} else if (desc.includes(' RF') || desc.includes('RAISED')) {
|
|
||||||
itemName = 'FLANGE RF';
|
|
||||||
} else {
|
|
||||||
itemName = 'FLANGE';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(' → 품목명:', itemName);
|
|
||||||
} else if (category === 'VALVE') {
|
} else if (category === 'VALVE') {
|
||||||
itemName = 'VALVE';
|
itemName = 'VALVE';
|
||||||
} else if (category === 'GASKET') {
|
} else if (category === 'GASKET') {
|
||||||
@@ -379,10 +356,7 @@ const formatMaterialForExcel = (material, includeComparison = false) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 카테고리별 상세 정보 추출
|
// 카테고리별 상세 정보 추출 (이미 위에서 선언됨)
|
||||||
let detailInfo = '';
|
|
||||||
let gasketMaterial = '';
|
|
||||||
let gasketThickness = '';
|
|
||||||
|
|
||||||
if (category === 'BOLT') {
|
if (category === 'BOLT') {
|
||||||
// 볼트의 경우 표면처리 정보 추출
|
// 볼트의 경우 표면처리 정보 추출
|
||||||
|
|||||||
Reference in New Issue
Block a user