17b08c7a09
- backend purchaseOrderMailService 신설 — getOrderMailInfo / getPartnerManagerList / sendOrderMail (SMTP PURCHASE, 발송 성공 시 mail_send_yn='Y'/mail_send_date 갱신) - backend routes — GET /order-form/mail-info/:objid, POST /order-form/mail, GET /options/partner-managers/:partnerObjid - frontend lib/utils/purchaseOrderPdf — html2canvas-pro + jsPDF (A4, scale=2, input/textarea → 텍스트 변환). download:true 면 파일 저장, 아니면 base64 반환 - PurchaseOrderMailDialog 신설 — EstimateMailDialog 패턴 단순화 (한글/영문 본문 분기, 공급업체 단일 email 자동 채움) - 3개 양식 다이얼로그 — 읽기전용 + 저장된 발주서일 때 "메일 발송" + "PDF 다운로드" 버튼 노출. window.print 간이판 제거 - 3개 양식 다이얼로그 — "행 추가"/"선택 행 삭제" 버튼 + 그리드 체크박스 컬럼 제거 (wace 운영판은 모두 주석 처리/부재. 발주서는 품의서에서 자동 채움된 품목 그대로 사용)
39 lines
2.3 KiB
TypeScript
39 lines
2.3 KiB
TypeScript
// ============================================================
|
|
// 구매관리 — 7개 메뉴 + 공통 옵션 라우트.
|
|
// app.ts: app.use("/api/purchase", purchaseRoutes)
|
|
// ============================================================
|
|
|
|
import { Router } from "express";
|
|
import { authenticateToken } from "../middleware/authMiddleware";
|
|
import * as ctrl from "../controllers/purchaseController";
|
|
|
|
const router = Router();
|
|
router.use(authenticateToken);
|
|
|
|
// 그리드 7종
|
|
router.get("/purchase-request", ctrl.getPurchaseRequest); // 구매리스트관리
|
|
router.get("/quotation-request", ctrl.getQuotationRequest); // 견적요청서관리
|
|
router.get("/proposal", ctrl.getProposal); // 품의서관리
|
|
router.get("/inbound", ctrl.getInbound); // 입고관리
|
|
router.get("/inbound-by-item", ctrl.getInboundByItem); // 품목별 입고관리
|
|
router.get("/inbound-by-date", ctrl.getInboundByDate); // 입고일별 입고관리
|
|
router.get("/project-status", ctrl.getProjectStatus); // 프로젝트별 발주/입고 현황
|
|
router.get("/order-list", ctrl.getPurchaseOrderList); // 발주서관리 (wace purchaseOrderMasterList_new 1:1)
|
|
|
|
// 발주서 폼 (general / outsourcing / english 양식, wace purchaseOrderFormPopup_*.do 1:1)
|
|
router.get ("/order-form/init", ctrl.getPurchaseOrderFormInit); // 품의서에서 자동 채움
|
|
router.post ("/order-form/save", ctrl.savePurchaseOrderForm); // 마스터+파트 UPSERT
|
|
router.post ("/order-form/mail", ctrl.sendPurchaseOrderMail); // 메일 발송 (PDF 첨부)
|
|
router.get ("/order-form/mail-info/:objid", ctrl.getPurchaseOrderMailInfo); // 메일 다이얼로그 자동 채움
|
|
router.get ("/order-form/:objid", ctrl.getPurchaseOrderForm); // 수정/조회
|
|
router.delete("/order-form/:objid", ctrl.deletePurchaseOrderForm); // 삭제 cascade
|
|
|
|
// 공통 옵션
|
|
router.get("/options/suppliers", ctrl.getSuppliers);
|
|
router.get("/options/vendors", ctrl.getVendors); // wace client_mng 기반
|
|
router.get("/options/users", ctrl.getUsers);
|
|
router.get("/options/projects", ctrl.getProjects);
|
|
router.get("/options/partner-managers/:partnerObjid", ctrl.getPartnerManagers); // 발주서 메일 담당자
|
|
|
|
export default router;
|