diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md new file mode 100644 index 0000000..b9cec99 --- /dev/null +++ b/.agents/AGENTS.md @@ -0,0 +1,13 @@ +# Workspace Rules for PFM OCR App + +## OCR Post-Processing & Parsing Rules + +### 1. Table Column Shift Alignment Correction +When parsing OCR tables (e.g., columns like SKU, description, quantity): +- If the first row of a column is empty but has description/quantities in other columns, and a downstream row has a valid value in that column but is empty in other columns, this indicates a column shift. +- Scan for the shift boundary row. +- Shift the column values up by exactly one row to restore correct cell alignments. +- Clean the shifted boundary row value to prevent orphan rows from polluting the parsed output. + +### 2. Date Normalization +- Always ensure single digit days are normalized with a leading zero (e.g., `7 June` to `07 June`, `4 April` to `04 April`) in post-processing. diff --git a/backend/compare_sources_accuracy.py b/backend/compare_sources_accuracy.py new file mode 100644 index 0000000..de69ea5 --- /dev/null +++ b/backend/compare_sources_accuracy.py @@ -0,0 +1,451 @@ +import json +import os +import pandas as pd +from openpyxl.styles import Font, PatternFill, Alignment, Border, Side +from openpyxl.utils import get_column_letter + +def clean_val(val): + if val is None: + return "" + s = str(val).strip().upper() + if s in ["N/A", "NOT FOUND", "NOTFOUND", "EMPTY", "NONE", "-", "N / A"]: + return "" + s = " ".join(s.split()) + s = s.replace("PT. ", "PT.") + s = s.replace("✓", "").replace("✔", "").strip() + return s + +def main(): + ai_file = "sources/ai_results.json" + manual_file = "sources/manual_labels.json" + xlsx_file = "sources/comparison_report.xlsx" + images_dir = "sources/test-images" + + if not os.path.exists(ai_file): + # Fallback to backend/sources + ai_file = "backend/sources/ai_results.json" + manual_file = "backend/sources/manual_labels.json" + xlsx_file = "backend/sources/comparison_report.xlsx" + images_dir = "backend/sources/test-images" + + if not os.path.exists(ai_file): + print(f"Error: AI results file not found at {ai_file}") + return + + if not os.path.exists(manual_file): + print(f"Error: Manual labels file not found at {manual_file}") + return + + # Load data + with open(ai_file, "r", encoding="utf-8") as f: + ai_data = json.load(f) + + with open(manual_file, "r", encoding="utf-8") as f: + manual_data = json.load(f) + + # Convert to dict for lookup by filename + ai_dict = {item.get("filename"): item for item in ai_data if item.get("filename")} + manual_dict = {item.get("filename"): item for item in manual_data if item.get("filename")} + + print(f"Loaded {len(ai_dict)} AI results from file.") + print(f"Loaded {len(manual_dict)} manual labels from file.") + + # Scan for physical image files in test-images folder + existing_images = None + if os.path.exists(images_dir): + existing_images = set(os.listdir(images_dir)) + print(f"Found {len(existing_images)} physical images in '{images_dir}'.") + else: + print(f"Warning: Images directory not found at '{images_dir}'.") + + # Find mismatches in file lists + only_in_ai = set(ai_dict.keys()) - set(manual_dict.keys()) + only_in_manual = set(manual_dict.keys()) - set(ai_dict.keys()) + if only_in_ai: + print(f"Warning: {len(only_in_ai)} files exist only in AI results: {only_in_ai}") + if only_in_manual: + print(f"Warning: {len(only_in_manual)} files exist only in Manual labels: {only_in_manual}") + + # Determine files to compare (must exist in AI results, Manual labels, and physically as images if directory is available) + common_filenames = set(ai_dict.keys()) & set(manual_dict.keys()) + + if existing_images is not None: + deleted_images = common_filenames - existing_images + if deleted_images: + print(f"Info: Excluded {len(deleted_images)} files that were physically deleted from images folder: {deleted_images}") + all_filenames = sorted(list(common_filenames & existing_images)) + else: + all_filenames = sorted(list(common_filenames)) + + print(f"Comparing {len(all_filenames)} matching images.") + + header_fields = [ + ("noPO", "noPO", "PO Number"), + ("noSO", "noSO", "SO Number"), + ("noDO", "noDO", "DO Number"), + ("tanggal", "tanggal", "Date"), + ("plat", "platTruk", "Plat Nomor"), + ("customer", "customerInfo", "Customer Name"), + ("store", "orderUntuk", "Store Name"), + ("alamat", "alamat", "Alamat") + ] + + doc_comparison_rows = [] + item_comparison_rows = [] + + # Counters for accuracy calculation + stats = { + "PO Number": {"match": 0, "total": 0}, + "SO Number": {"match": 0, "total": 0}, + "DO Number": {"match": 0, "total": 0}, + "Date": {"match": 0, "total": 0}, + "Plat Nomor": {"match": 0, "total": 0}, + "Customer Name": {"match": 0, "total": 0}, + "Store Name": {"match": 0, "total": 0}, + "Alamat": {"match": 0, "total": 0}, + "Item SKU": {"match": 0, "total": 0}, + "Item Banyak": {"match": 0, "total": 0}, + "Item Jumlah": {"match": 0, "total": 0} + } + + # Document-level side-by-side rows + doc_side_by_side_rows = [] + + for filename in all_filenames: + manual = manual_dict.get(filename) + ai = ai_dict.get(filename) + + if not manual: + print(f"Warning: Manual label not found for {filename} (exists only in AI results)") + continue + if not ai: + print(f"Warning: AI result not found for {filename} (exists only in Manual labels)") + continue + + ai_meta = ai.get("layer3Final", {}) + + # 1. Compare header fields (Vertical format for filtering) + sxs_row = {"Filename": filename} + for manual_key, ai_key, field_label in header_fields: + m_val = clean_val(manual.get(manual_key)) + a_val = clean_val(ai_meta.get(ai_key)) + is_match = (m_val == a_val) + + doc_comparison_rows.append({ + "Filename": filename, + "Field": field_label, + "AI Value (OCR)": a_val if a_val else "(empty)", + "Manual Value (Ground Truth)": m_val if m_val else "(empty)", + "Match": "Match" if is_match else "Mismatch" + }) + + # Side-by-side + sxs_row[f"{field_label} (AI)"] = a_val if a_val else "" + sxs_row[f"{field_label} (Manual)"] = m_val if m_val else "" + sxs_row[f"{field_label} Status"] = "Match" if is_match else "Mismatch" + + stats[field_label]["total"] += 1 + if is_match: + stats[field_label]["match"] += 1 + + doc_side_by_side_rows.append(sxs_row) + + # 2. Compare items + m_items = manual.get("items", []) + ai_items = ai.get("items", []) + if not ai_items and "items" in ai_meta: + ai_items = ai_meta.get("items", []) + + # Create dictionaries of items indexed by codeBarang (SKU) + m_items_dict = {clean_val(item.get("kodeBarang")): item for item in m_items if clean_val(item.get("kodeBarang"))} + ai_items_dict = {clean_val(item.get("kodeBarang")): item for item in ai_items if clean_val(item.get("kodeBarang"))} + + # Check all unique SKUs across both manual and AI + all_skus = set(list(m_items_dict.keys()) + list(ai_items_dict.keys())) + + for sku in all_skus: + m_item = m_items_dict.get(sku) + ai_item = ai_items_dict.get(sku) + + # Check SKU existence match + sku_match = (m_item is not None) and (ai_item is not None) + stats["Item SKU"]["total"] += 1 + if sku_match: + stats["Item SKU"]["match"] += 1 + + m_banyak = clean_val(m_item.get("banyak")) if m_item else "" + ai_banyak = clean_val(ai_item.get("banyak")) if ai_item else "" + banyak_match = (m_banyak == ai_banyak) + + stats["Item Banyak"]["total"] += 1 + if banyak_match: + stats["Item Banyak"]["match"] += 1 + + m_jumlah = clean_val(m_item.get("jumlah")) if m_item else "" + ai_jumlah = clean_val(ai_item.get("jumlah")) if ai_item else "" + jumlah_match = (m_jumlah == ai_jumlah) + + stats["Item Jumlah"]["total"] += 1 + if jumlah_match: + stats["Item Jumlah"]["match"] += 1 + + # Log code comparison + item_comparison_rows.append({ + "Filename": filename, + "Kode Barang (SKU)": sku, + "Field": "SKU Existence", + "AI Value (OCR)": sku if ai_item else "(not found)", + "Manual Value (Ground Truth)": sku if m_item else "(not found)", + "Match": "Match" if sku_match else "Mismatch" + }) + + # Log Banyak comparison + item_comparison_rows.append({ + "Filename": filename, + "Kode Barang (SKU)": sku, + "Field": "Banyak (Qty Package)", + "AI Value (OCR)": ai_banyak if ai_banyak else "(empty)", + "Manual Value (Ground Truth)": m_banyak if m_banyak else "(empty)", + "Match": "Match" if banyak_match else "Mismatch" + }) + + # Log Jumlah comparison + item_comparison_rows.append({ + "Filename": filename, + "Kode Barang (SKU)": sku, + "Field": "Jumlah (Qty Unit)", + "AI Value (OCR)": ai_jumlah if ai_jumlah else "(empty)", + "Manual Value (Ground Truth)": m_jumlah if m_jumlah else "(empty)", + "Match": "Match" if jumlah_match else "Mismatch" + }) + + # Prepare summary data + summary_rows = [] + total_matches = 0 + total_fields = 0 + for field_label, counts in stats.items(): + match_cnt = counts["match"] + total_cnt = counts["total"] + pct = (match_cnt / total_cnt * 100.0) if total_cnt > 0 else 100.0 + summary_rows.append({ + "Field / Area": field_label, + "Total Checks": total_cnt, + "Matches": match_cnt, + "Mismatches": total_cnt - match_cnt, + "Accuracy (%)": round(pct, 2) + }) + total_matches += match_cnt + total_fields += total_cnt + + overall_accuracy = (total_matches / total_fields * 100.0) if total_fields > 0 else 100.0 + summary_rows.append({ + "Field / Area": "OVERALL TOTAL", + "Total Checks": total_fields, + "Matches": total_matches, + "Mismatches": total_fields - total_matches, + "Accuracy (%)": round(overall_accuracy, 2) + }) + + df_summary = pd.DataFrame(summary_rows) + df_docs = pd.DataFrame(doc_comparison_rows) + df_sxs = pd.DataFrame(doc_side_by_side_rows) + df_items = pd.DataFrame(item_comparison_rows) + + # Styling setup + font_family = "Segoe UI" + header_font = Font(name=font_family, size=11, bold=True, color="FFFFFF") + regular_font = Font(name=font_family, size=10) + bold_font = Font(name=font_family, size=10, bold=True) + title_font = Font(name=font_family, size=16, bold=True, color="1F4E78") + + header_fill = PatternFill(start_color="1F4E78", end_color="1F4E78", fill_type="solid") # Dark Blue + zebra_fill = PatternFill(start_color="F2F5F8", end_color="F2F5F8", fill_type="solid") # Zebra light blue-gray + match_fill = PatternFill(start_color="E2EFDA", end_color="E2EFDA", fill_type="solid") # Light green + mismatch_fill = PatternFill(start_color="FCE4D6", end_color="FCE4D6", fill_type="solid") # Light orange + + center_align = Alignment(horizontal="center", vertical="center") + left_align = Alignment(horizontal="left", vertical="center") + right_align = Alignment(horizontal="right", vertical="center") + + thin_side = Side(border_style="thin", color="D9D9D9") + cell_border = Border(left=thin_side, right=thin_side, top=thin_side, bottom=thin_side) + + # Save to Excel + os.makedirs(os.path.dirname(xlsx_file), exist_ok=True) + + writer = None + for attempt in range(1, 10): + try: + writer = pd.ExcelWriter(xlsx_file, engine='openpyxl') + break + except PermissionError: + base_dir = os.path.dirname(xlsx_file) + filename = os.path.basename(xlsx_file) + name, ext = os.path.splitext(filename) + if "_" in name and name.split("_")[-1].isdigit(): + name = "_".join(name.split("_")[:-1]) + xlsx_file = os.path.join(base_dir, f"{name}_{attempt}{ext}") + + if writer is None: + print("Error: Could not open the Excel writer because the file is locked.") + return + + with writer: + df_summary.to_excel(writer, sheet_name='Summary Accuracy', index=False, startrow=3) + df_sxs.to_excel(writer, sheet_name='Side-by-Side Comparison', index=False) + df_docs.to_excel(writer, sheet_name='Header Field Comparison', index=False) + df_items.to_excel(writer, sheet_name='Item SKU Comparison', index=False) + + # 1. Style Summary Sheet with a Title Banner + ws_sum = writer.sheets['Summary Accuracy'] + ws_sum.views.sheetView[0].showGridLines = True + ws_sum.cell(row=1, column=1, value="AI OCR vs. Manual Ground Truth Accuracy Report").font = title_font + ws_sum.row_dimensions[1].height = 30 + + # Style Summary Table Headers + max_col_sum = df_summary.shape[1] + for col in range(1, max_col_sum + 1): + cell = ws_sum.cell(row=4, column=col) + cell.font = header_font + cell.fill = header_fill + cell.alignment = center_align + cell.border = cell_border + + # Style Summary Data + max_row_sum = ws_sum.max_row + for row in range(5, max_row_sum + 1): + for col in range(1, max_col_sum + 1): + cell = ws_sum.cell(row=row, column=col) + cell.font = regular_font + cell.border = cell_border + if col == 1: + cell.alignment = left_align + else: + cell.alignment = right_align + + # Zebra style + if row % 2 == 0 and row != max_row_sum: + cell.fill = zebra_fill + + # Format percentage + if col == 5 and isinstance(cell.value, (int, float)): + cell.number_format = '0.00"%"' + + # Bold overall total row + if row == max_row_sum: + for col in range(1, max_col_sum + 1): + c = ws_sum.cell(row=row, column=col) + c.font = bold_font + c.fill = match_fill if overall_accuracy > 80 else mismatch_fill + + # Auto-adjust column width for Summary + for col in ws_sum.columns: + max_len = max(len(str(cell.value or '')) for cell in col) + col_letter = get_column_letter(col[0].column) + ws_sum.column_dimensions[col_letter].width = max(max_len + 4, 12) + + # Style detail worksheets + for sheet_name in ['Side-by-Side Comparison', 'Header Field Comparison', 'Item SKU Comparison']: + ws = writer.sheets[sheet_name] + ws.views.sheetView[0].showGridLines = True + max_row = ws.max_row + max_col = ws.max_column + + # Header row styling + for col in range(1, max_col + 1): + cell = ws.cell(row=1, column=col) + cell.font = header_font + cell.fill = header_fill + cell.alignment = center_align + cell.border = cell_border + + # Data rows styling + for row in range(2, max_row + 1): + is_zebra = (row % 2 == 0) + + # For Side-by-Side Comparison + if sheet_name == 'Side-by-Side Comparison': + for col in range(1, max_col + 1): + cell = ws.cell(row=row, column=col) + cell.font = regular_font + cell.border = cell_border + + if col == 1: + cell.alignment = left_align + if is_zebra: + cell.fill = zebra_fill + else: + # Apply alignments and color mismatch/match + # Format of headers: + # Col 1: Filename + # Col 2: PO AI, Col 3: PO Manual, Col 4: PO Status + # ... and so on + # So status is at index col where (col - 1) % 3 == 0 (4, 7, 10, 13, 16, 19, 22, 25) + col_pos = col - 1 + if col_pos % 3 == 0: # This is a Status column + status_val = cell.value + cell.alignment = center_align + if status_val == "Match": + cell.fill = match_fill + else: + cell.fill = mismatch_fill + else: # This is AI or Manual value column + cell.alignment = left_align + # Match background of the cell with its corresponding status cell (two columns to the right if AI, one if Manual) + status_col_idx = col + (2 if col_pos % 3 == 1 else 1) + status_val = ws.cell(row=row, column=status_col_idx).value + if status_val == "Match": + if is_zebra: + # Let's keep it subtle + pass + else: + # Highlight mismatches clearly + cell.fill = mismatch_fill + + # For vertical comparison sheets + else: + # Match column is the last column + match_cell = ws.cell(row=row, column=max_col) + match_val = match_cell.value + + for col in range(1, max_col + 1): + cell = ws.cell(row=row, column=col) + cell.font = regular_font + cell.border = cell_border + + # Apply alignments based on column + if col in [1, 2, 3, 4]: + cell.alignment = left_align + else: + cell.alignment = center_align + + # Color match / mismatch + if match_val == "Match": + cell.fill = match_fill + elif match_val == "Mismatch": + cell.fill = mismatch_fill + elif is_zebra: + cell.fill = zebra_fill + + # Auto-fit columns + for col in ws.columns: + max_len = 0 + for cell in col: + val_str = str(cell.value or '') + # Limit long text like Alamat from making column excessively wide + if sheet_name == 'Side-by-Side Comparison' and cell.column in [22, 23]: # Alamat + max_len = max(max_len, min(len(val_str), 30)) + elif sheet_name == 'Header Field Comparison' and cell.column in [3, 4]: # Values + max_len = max(max_len, min(len(val_str), 40)) + else: + max_len = max(max_len, len(val_str)) + col_letter = get_column_letter(col[0].column) + ws.column_dimensions[col_letter].width = max(max_len + 4, 12) + + print("\n=== Accuracy Report Summary ===") + print(df_summary.to_string(index=False)) + print("===============================\n") + print(f"Comparison report generated at {xlsx_file}") + +if __name__ == "__main__": + main() diff --git a/backend/pfm-web-app/next.config.ts b/backend/pfm-web-app/next.config.ts index 0a67d55..7ebd494 100644 --- a/backend/pfm-web-app/next.config.ts +++ b/backend/pfm-web-app/next.config.ts @@ -7,6 +7,7 @@ const nextConfig: NextConfig = { "*.trycloudflare.com", "*.ngrok.io", "*.ngrok-free.app", + "*.ngrok-free.dev", "*.ngrok.app", "*.loca.lt", "*.serveo.net", diff --git a/backend/pfm-web-app/public/comparison_report.xlsx b/backend/pfm-web-app/public/comparison_report.xlsx index 7ec489c..1112f99 100644 Binary files a/backend/pfm-web-app/public/comparison_report.xlsx and b/backend/pfm-web-app/public/comparison_report.xlsx differ diff --git a/backend/pfm-web-app/run_batch_test.js b/backend/pfm-web-app/run_batch_test.js index b3c839e..993709a 100644 --- a/backend/pfm-web-app/run_batch_test.js +++ b/backend/pfm-web-app/run_batch_test.js @@ -7,35 +7,19 @@ const BASE_URL = 'http://localhost:3000/api/parse'; const testFiles = [ "1782870899198-sample_do.jpeg", - "1782872141829-rotated_1782872118246_rotated_1782872112296_rotated_1782872107513_CAP3481952560331460805.jpg", - "1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg", "1782884664859-rotated_1782884661516_rotated_1782884658097_rotated_1782884654697_CAP5956452738616729026.jpg", "1782888127716-CAP6161747431193129837.jpg", "1782888211457-rotated_1782888204591_rotated_1782888199962_rotated_1782888195402_CAP7202641176939787142.jpg", "1782888609885-rotated_1782888593813_1000000454.jpg", "1782890303600-1000000465.jpg", "1782892728794-1000000466.jpg", - "1782909791970-sample_do.jpeg", "IMG_20260630_145445.jpg", "IMG_20260701_134446.jpg", "IMG_20260701_134504.jpg", - "IMG_20260701_134533.jpg", "IMG_20260701_134555.jpg", "IMG_20260701_134555~2.jpg", - "IMG_20260701_134635.jpg", - "IMG_20260701_134636.jpg", - "IMG_20260701_134646.jpg", "IMG_20260701_134646~2.jpg", - "IMG_20260701_134704.jpg", - "IMG_20260701_134704~2.jpg", - "IMG_20260701_134810.jpg", - "IMG_20260701_134817.jpg", - "IMG_20260701_135900.jpg", - "IMG_20260701_135910.jpg", - "IMG_20260701_135923.jpg", - "IMG_20260701_135938.jpg", - "IMG_20260701_135950.jpg", - "IMG_20260701_140005.jpg" + "IMG_20260701_134810.jpg" ]; function postJSON(url, body) { @@ -203,6 +187,10 @@ async function main() { status: 'Success', tilt: tiltStr, unwarped: unwarpedStr, + rawMarkdown: resData.postProcessingDetails?.rawMarkdown || "", + layer1RawRegex: resData.postProcessingDetails?.layer1RawRegex || {}, + layer2Sanitized: resData.postProcessingDetails?.layer2Sanitized || {}, + layer3Final: resData.postProcessingDetails?.layer3Final || {}, metadata: docMeta, items: resData.items || [] }) + '\n'); @@ -240,6 +228,16 @@ async function main() { console.error('Failed to combine test reports:', combineErr); } + // Compile JSONL into the final JSON v2 + try { + const lines = fs.readFileSync(jsonlFile, 'utf8').split('\n').filter(Boolean); + const results = lines.map(line => JSON.parse(line)); + fs.writeFileSync('/uploads/ai_results_v2.json', JSON.stringify(results, null, 2)); + console.log('Compiled results saved to /uploads/ai_results_v2.json'); + } catch (compileErr) { + console.error('Failed to compile results into JSON v2:', compileErr); + } + console.log('Batch test completed. Report written to /uploads/test_images_report.md'); } diff --git a/backend/pfm-web-app/run_full_test.js b/backend/pfm-web-app/run_full_test.js new file mode 100644 index 0000000..1a9f8fc --- /dev/null +++ b/backend/pfm-web-app/run_full_test.js @@ -0,0 +1,403 @@ +/** + * run_full_test.js + * + * Runs OCR parsing against ALL images in backend/sources/test-images/ + * and captures every pipeline stage for analysis: + * - rawMarkdown : raw text from PaddleOCR layout parser + * - layer1RawRegex: output of parseDOMetadata (regex extraction) + * - layer2Sanitized: output of sanitizeParsedMetadata (format checks) + * - layer3Final : final metadata after SKU triple-check + store resolution + * + * Outputs: + * backend/sources/ai_results.json — machine-readable per-file results + * backend/sources/ai_results.md — human-readable stage-by-stage breakdown + * + * Usage (from host machine, Docker must be running): + * node run_full_test.js + * + * The script talks to the nginx gateway on port 8000. + * To override: set env var BASE_URL=http://localhost:3000/api/parse + */ + +const fs = require('fs'); +const path = require('path'); +const http = require('http'); +const https = require('https'); + +// ─── Config ────────────────────────────────────────────────────────────────── + +const BASE_URL = process.env.BASE_URL || 'http://localhost:8000/api/parse'; +const TEST_IMAGES_DIR = path.resolve(__dirname, '../sources/test-images'); +const OUTPUT_JSON = path.resolve(__dirname, '../sources/ai_results.json'); +const OUTPUT_MD = path.resolve(__dirname, '../sources/ai_results.md'); +const REQUEST_TIMEOUT_MS = 20 * 60 * 1000; // 20 minutes per image + +// ─── HTTP Helper ───────────────────────────────────────────────────────────── + +function postJSON(url, body) { + return new Promise((resolve, reject) => { + const parsedUrl = new URL(url); + const bodyStr = JSON.stringify(body); + const lib = parsedUrl.protocol === 'https:' ? https : http; + + const options = { + hostname: parsedUrl.hostname, + port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80), + path: parsedUrl.pathname + parsedUrl.search, + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Content-Length': Buffer.byteLength(bodyStr), + }, + timeout: REQUEST_TIMEOUT_MS, + }; + + const req = lib.request(options, (res) => { + let data = ''; + res.on('data', (chunk) => { data += chunk; }); + res.on('end', () => { + resolve({ + ok: res.statusCode >= 200 && res.statusCode < 300, + status: res.statusCode, + body: data, + }); + }); + }); + + req.on('timeout', () => { + req.destroy(new Error(`Request timed out after ${REQUEST_TIMEOUT_MS / 60000}m`)); + }); + req.on('error', reject); + + req.write(bodyStr); + req.end(); + }); +} + +// ─── Markdown Helpers ───────────────────────────────────────────────────────── + +function mdSection(title, level = 2) { + return `${'#'.repeat(level)} ${title}\n\n`; +} + +function mdCode(content, lang = '') { + if (content === null || content === undefined) return '*null*\n\n'; + const str = typeof content === 'string' ? content : JSON.stringify(content, null, 2); + return `\`\`\`${lang}\n${str}\n\`\`\`\n\n`; +} + +function mdField(label, value) { + const display = (value === null || value === undefined || value === '') ? '*empty*' : `\`${value}\``; + return `- **${label}**: ${display}\n`; +} + +function mdTable(headers, rows) { + if (!rows || rows.length === 0) return '*No items.*\n\n'; + const sep = headers.map(() => '---'); + const lines = [ + `| ${headers.join(' | ')} |`, + `| ${sep.join(' | ')} |`, + ...rows.map(r => `| ${r.map(c => String(c ?? '').replace(/\|/g, '\\|')).join(' | ')} |`), + ]; + return lines.join('\n') + '\n\n'; +} + +// ─── Main ───────────────────────────────────────────────────────────────────── + +async function main() { + // Discover all image files + let files; + try { + files = fs.readdirSync(TEST_IMAGES_DIR).filter(f => + /\.(jpe?g|png|webp|bmp)$/i.test(f) + ).sort(); + } catch (e) { + console.error(`Cannot read test-images directory: ${TEST_IMAGES_DIR}`); + console.error(e.message); + process.exit(1); + } + + if (files.length === 0) { + console.error('No image files found in', TEST_IMAGES_DIR); + process.exit(1); + } + + console.log(`\n🚀 Starting batch test`); + console.log(` API endpoint : ${BASE_URL}`); + console.log(` Images found : ${files.length}`); + console.log(` Output JSON : ${OUTPUT_JSON}`); + console.log(` Output MD : ${OUTPUT_MD}`); + console.log('─'.repeat(60)); + + const jsonResults = []; + const mdParts = []; + const summaryRows = []; + + // ── Markdown document header ────────────────────────────────────────────── + mdParts.push( + `# OCR Batch Test Report\n\n`, + `> Generated: ${new Date().toISOString()}\n`, + `> API: \`${BASE_URL}\`\n`, + `> Images: **${files.length}** files from \`backend/sources/test-images/\`\n\n`, + `---\n\n`, + `## Summary\n\n`, + '\n\n', + `---\n\n`, + `## Stage-by-Stage Results\n\n`, + ); + const summaryPlaceholderIndex = mdParts.indexOf('\n\n'); + + // ── Process each file ──────────────────────────────────────────────────── + for (let idx = 0; idx < files.length; idx++) { + const file = files[idx]; + const num = `[${String(idx + 1).padStart(2, '0')}/${files.length}]`; + process.stdout.write(`${num} ${file} ... `); + + const entry = { + index: idx + 1, + filename: file, + status: 'pending', + tilt: null, + unwarped: null, + // pipeline stages + rawMarkdown: null, + layer1RawRegex: null, + layer2Sanitized: null, + layer3Final: null, + items: [], + error: null, + }; + + try { + const t0 = Date.now(); + const res = await postJSON(BASE_URL, { filename: file }); + const elapsed = ((Date.now() - t0) / 1000).toFixed(1); + + if (!res.ok) { + process.stdout.write(`❌ HTTP ${res.status} (${elapsed}s)\n`); + entry.status = 'http_error'; + entry.error = `HTTP ${res.status}: ${res.body}`; + } else { + let data; + try { + data = JSON.parse(res.body); + } catch (_) { + entry.status = 'json_parse_error'; + entry.error = 'Response is not valid JSON'; + process.stdout.write(`❌ JSON parse error (${elapsed}s)\n`); + data = null; + } + + if (data) { + if (data.error) { + process.stdout.write(`⚠️ API error: ${data.error} (${elapsed}s)\n`); + entry.status = 'api_error'; + entry.error = data.error; + } else { + const pipelineInfo = (data.result || {}).pipeline_info || {}; + entry.status = 'success'; + entry.tilt = pipelineInfo.tilt !== undefined ? +parseFloat(pipelineInfo.tilt).toFixed(2) : null; + entry.unwarped = pipelineInfo.unwarped ?? null; + + const ppd = data.postProcessingDetails || {}; + entry.rawMarkdown = ppd.rawMarkdown ?? null; + entry.layer1RawRegex = ppd.layer1RawRegex ?? null; + entry.layer2Sanitized = ppd.layer2Sanitized ?? null; + entry.layer3Final = ppd.layer3Final ?? null; + entry.items = data.items ?? []; + + const itemCount = entry.items.length; + process.stdout.write(`✅ ${itemCount} item(s), tilt=${entry.tilt ?? 'N/A'}° (${elapsed}s)\n`); + } + } + } + } catch (err) { + process.stdout.write(`💥 ${err.message}\n`); + entry.status = 'exception'; + entry.error = err.message; + } + + jsonResults.push(entry); + + // ── Build per-file markdown section ───────────────────────────────────── + const statusEmoji = { + success: '✅', + http_error: '❌', + api_error: '⚠️', + json_parse_error: '❌', + exception: '💥', + }[entry.status] || '❓'; + + let fileMd = ''; + fileMd += `### ${idx + 1}. \`${file}\`\n\n`; + fileMd += `**Status**: ${statusEmoji} \`${entry.status}\`\n\n`; + + if (entry.status !== 'success') { + fileMd += `> **Error**: ${entry.error}\n\n`; + fileMd += `---\n\n`; + summaryRows.push([idx + 1, `\`${file}\``, `${statusEmoji} ${entry.status}`, 'N/A', 'N/A', 'N/A', 'N/A']); + mdParts.push(fileMd); + continue; + } + + // ── Stage 0: Pipeline Info ──────────────────────────────────────────────── + fileMd += `#### 📐 Stage 0 — Pipeline Info\n\n`; + fileMd += mdField('Tilt detected', entry.tilt !== null ? `${entry.tilt}°` : 'N/A'); + fileMd += mdField('Auto-unwarped', entry.unwarped !== null ? (entry.unwarped ? 'Yes' : 'No') : 'N/A'); + fileMd += '\n'; + + // ── Stage 1: Raw Markdown from OCR ─────────────────────────────────────── + fileMd += `#### 📄 Stage 1 — Raw OCR Markdown\n\n`; + fileMd += `*This is the raw text extracted by PaddleOCR layout parser before any post-processing.*\n\n`; + if (entry.rawMarkdown) { + fileMd += mdCode(entry.rawMarkdown, 'markdown'); + } else { + fileMd += '*No raw markdown captured.*\n\n'; + } + + // ── Stage 2: Layer 1 — Regex Extraction ────────────────────────────────── + fileMd += `#### 🔍 Stage 2 — Layer 1: Regex Extraction (\`parseDOMetadata\`)\n\n`; + fileMd += `*Regex patterns are applied to raw markdown to extract header fields and item rows.*\n\n`; + if (entry.layer1RawRegex) { + const l1 = entry.layer1RawRegex; + fileMd += `**Header fields (raw regex output):**\n\n`; + fileMd += mdField('noDO', l1.noDO); + fileMd += mdField('noPO', l1.noPO); + fileMd += mdField('noSO', l1.noSO); + fileMd += mdField('tanggal', l1.tanggal); + fileMd += mdField('vendorInfo', l1.vendorInfo); + fileMd += mdField('customerInfo', l1.customerInfo); + fileMd += mdField('alamat', l1.alamat); + fileMd += mdField('orderUntuk', l1.orderUntuk); + fileMd += mdField('platTruk', l1.platTruk); + fileMd += '\n'; + + fileMd += `**Raw items (${(l1.items || []).length} row(s)):**\n\n`; + fileMd += mdTable( + ['kodeBarang', 'namaBarang', 'banyak', 'jumlah'], + (l1.items || []).map(it => [it.kodeBarang, it.namaBarang, it.banyak, it.jumlah]) + ); + } else { + fileMd += '*Layer 1 data not captured.*\n\n'; + } + + // ── Stage 3: Layer 2 — Sanitized ───────────────────────────────────────── + fileMd += `#### 🧹 Stage 3 — Layer 2: Sanitized (\`sanitizeParsedMetadata\`)\n\n`; + fileMd += `*Strict format enforcement: corrects date formats, trims whitespace, enforces field constraints.*\n\n`; + if (entry.layer2Sanitized) { + const l2 = entry.layer2Sanitized; + fileMd += `**Header fields (after sanitization):**\n\n`; + fileMd += mdField('noDO', l2.noDO); + fileMd += mdField('noPO', l2.noPO); + fileMd += mdField('noSO', l2.noSO); + fileMd += mdField('tanggal', l2.tanggal); + fileMd += mdField('vendorInfo', l2.vendorInfo); + fileMd += mdField('customerInfo', l2.customerInfo); + fileMd += mdField('alamat', l2.alamat); + fileMd += mdField('orderUntuk', l2.orderUntuk); + fileMd += mdField('platTruk', l2.platTruk); + fileMd += '\n'; + + fileMd += `**Sanitized items (${(l2.items || []).length} row(s)):**\n\n`; + fileMd += mdTable( + ['kodeBarang', 'namaBarang', 'banyak', 'jumlah'], + (l2.items || []).map(it => [it.kodeBarang, it.namaBarang, it.banyak, it.jumlah]) + ); + } else { + fileMd += '*Layer 2 data not captured.*\n\n'; + } + + // ── Stage 4: Layer 3 — Final (SKU triple-check + store resolution) ──────── + fileMd += `#### ✅ Stage 4 — Layer 3: Final (\`SKU triple-check + store resolution\`)\n\n`; + fileMd += `*SKU validated against master list (score ≥ 0.6 threshold). Items with noise SKU codes are filtered out. Store resolved from DB.*\n\n`; + if (entry.layer3Final) { + const l3 = entry.layer3Final; + fileMd += `**Final metadata:**\n\n`; + fileMd += mdField('noDO', l3.noDO); + fileMd += mdField('noPO', l3.noPO); + fileMd += mdField('noSO', l3.noSO); + fileMd += mdField('tanggal', l3.tanggal); + fileMd += mdField('vendorInfo', l3.vendorInfo); + fileMd += mdField('customerInfo', l3.customerInfo); + fileMd += mdField('alamat', l3.alamat); + fileMd += mdField('orderUntuk', l3.orderUntuk); + fileMd += mdField('platTruk', l3.platTruk); + fileMd += '\n'; + + fileMd += `**Final items after SKU validation (${(l3.items || []).length} row(s)):**\n\n`; + fileMd += mdTable( + ['kodeBarangOriginal', 'kodeBarang (corrected)', 'namaBarang', 'banyak', 'jumlah'], + (l3.items || []).map(it => [ + it.kodeBarangOriginal ?? it.kodeBarang, + it.kodeBarang, + it.namaBarang, + it.banyak, + it.jumlah + ]) + ); + } else { + fileMd += '*Layer 3 data not captured.*\n\n'; + } + + // ── Stage 5: Final submitted items (from root items[]) ─────────────────── + fileMd += `#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON)\n\n`; + fileMd += `*These are the items actually returned to the caller and saved to the database.*\n\n`; + fileMd += mdTable( + ['kodeBarangOriginal', 'kodeBarang', 'namaBarang', 'banyak', 'jumlah'], + (entry.items || []).map(it => [ + it.kodeBarangOriginal ?? it.kodeBarang, + it.kodeBarang, + it.namaBarang, + it.banyak, + it.jumlah + ]) + ); + + fileMd += `---\n\n`; + + // ── Summary row ────────────────────────────────────────────────────────── + const l3meta = entry.layer3Final || {}; + summaryRows.push([ + idx + 1, + `\`${file}\``, + `${statusEmoji} success`, + entry.tilt !== null ? `${entry.tilt}°` : 'N/A', + entry.unwarped !== null ? (entry.unwarped ? 'Yes' : 'No') : 'N/A', + `\`${l3meta.noDO ?? 'N/A'}\``, + `\`${l3meta.noPO ?? 'N/A'}\``, + `${entry.items.length}`, + ]); + + mdParts.push(fileMd); + } + + // ── Inject summary table ────────────────────────────────────────────────── + const summaryTable = mdTable( + ['#', 'Filename', 'Status', 'Tilt', 'Unwarped', 'DO', 'PO', 'Items'], + summaryRows + ); + mdParts[summaryPlaceholderIndex] = summaryTable; + + // ── Write outputs ───────────────────────────────────────────────────────── + const jsonOut = JSON.stringify(jsonResults, null, 2); + fs.writeFileSync(OUTPUT_JSON, jsonOut, 'utf8'); + console.log(`\n✅ JSON saved → ${OUTPUT_JSON}`); + + const mdOut = mdParts.join(''); + fs.writeFileSync(OUTPUT_MD, mdOut, 'utf8'); + console.log(`✅ MD saved → ${OUTPUT_MD}`); + + // ── Final stats ─────────────────────────────────────────────────────────── + const succeeded = jsonResults.filter(r => r.status === 'success').length; + const failed = jsonResults.length - succeeded; + console.log('\n─'.repeat(60)); + console.log(` Total : ${jsonResults.length}`); + console.log(` Success: ${succeeded}`); + console.log(` Failed : ${failed}`); + console.log('─'.repeat(60)); +} + +main().catch(err => { + console.error('Fatal error:', err); + process.exit(1); +}); diff --git a/backend/pfm-web-app/src/app/api/parse/route.ts b/backend/pfm-web-app/src/app/api/parse/route.ts index fa08b85..726aa7d 100644 --- a/backend/pfm-web-app/src/app/api/parse/route.ts +++ b/backend/pfm-web-app/src/app/api/parse/route.ts @@ -51,12 +51,15 @@ export async function POST(req: NextRequest) { let isSample = true; if (!fs.existsSync(filePath)) { - filePath = path.join("/uploads", safeFile); + filePath = path.join(process.cwd(), "public", "test-images", safeFile); if (!fs.existsSync(filePath)) { - return NextResponse.json({ error: "File not found" }, { status: 404 }); + filePath = path.join("/uploads", safeFile); + if (!fs.existsSync(filePath)) { + return NextResponse.json({ error: "File not found" }, { status: 404 }); + } + isUpload = true; + isSample = false; } - isUpload = true; - isSample = false; } // Read file and compute content hash @@ -156,6 +159,7 @@ export async function POST(req: NextRequest) { const rawMetadata = parseDOMetadata(markdownText); // Second-layer sanity check: enforces strict field formats and auto-corrects anomalies const docMetadata = sanitizeParsedMetadata(rawMetadata as any); + const docMetadataSanitized = JSON.parse(JSON.stringify(docMetadata)); // Load SKU Master list from DB (including new packaging details for triple check validation) const skuDbRes = await query("SELECT no_sku, nama_item, standar_jumlah, jenis_outer FROM sku_master"); @@ -256,15 +260,25 @@ export async function POST(req: NextRequest) { const numericQtyMatch = ocrQty.match(/[\d.,]+/); if (numericQtyMatch) { const numericQty = numericQtyMatch[0]; + const qtyUnitMatch = ocrQty.match(/[a-zA-Z]+/); + const parsedQtyUnit = qtyUnitMatch ? qtyUnitMatch[0].toUpperCase() : ""; + const isQtyUnitValid = ["KRG", "BOX", "BAG", "PAC", "PC", "KG", "PCS"].includes(parsedQtyUnit); + const standardOuter = bestMatch.jenis_outer || ""; - if (standardOuter.toLowerCase() === "karung") { - item.banyak = `${numericQty} KRG`; - } else if (standardOuter.toLowerCase() === "box") { - item.banyak = `${numericQty} BOX`; - } else if (standardOuter.toLowerCase() === "bag") { - item.banyak = `${numericQty} BAG`; + if (isQtyUnitValid) { + item.banyak = `${numericQty} ${parsedQtyUnit}`; + } else if (standardOuter) { + if (standardOuter.toLowerCase() === "karung") { + item.banyak = `${numericQty} KRG`; + } else if (standardOuter.toLowerCase() === "box") { + item.banyak = `${numericQty} BOX`; + } else if (standardOuter.toLowerCase() === "bag") { + item.banyak = `${numericQty} BAG`; + } else { + item.banyak = `${numericQty} ${standardOuter.toUpperCase()}`; + } } else { - item.banyak = `${numericQty} ${standardOuter.toUpperCase()}`; + item.banyak = ocrQty; } } @@ -272,8 +286,20 @@ export async function POST(req: NextRequest) { const numericPriceMatch = ocrPrice.match(/[\d.,]+/); if (numericPriceMatch) { const numericPrice = numericPriceMatch[0]; - const standardInner = (bestMatch.standar_jumlah || "").toUpperCase(); - item.jumlah = `${numericPrice} ${standardInner}`; + const priceUnitMatch = ocrPrice.match(/[a-zA-Z]+/); + const parsedPriceUnit = priceUnitMatch ? priceUnitMatch[0].toUpperCase() : ""; + const isPriceUnitValid = ["KRG", "BOX", "BAG", "PAC", "PC", "KG", "PCS"].includes(parsedPriceUnit); + + const standardInner = bestMatch.standar_jumlah || ""; + if (standardInner.toLowerCase() === "pc" || standardInner.toLowerCase() === "pcs") { + item.jumlah = `${numericPrice} ${standardInner.toUpperCase()}`; + } else if (isPriceUnitValid) { + item.jumlah = `${numericPrice} ${parsedPriceUnit}`; + } else if (standardInner) { + item.jumlah = `${numericPrice} ${standardInner.toUpperCase()}`; + } else { + item.jumlah = ocrPrice; + } } checkedItems.push(item); @@ -371,12 +397,18 @@ export async function POST(req: NextRequest) { ]); } - // Return wrapped success response with items, flagged, remarks + // Return wrapped success response with items, flagged, remarks, and intermediate post-processing details return NextResponse.json({ errorCode: 0, errorMsg: "Success", result: pipelineResult, items: docMetadata.items, + postProcessingDetails: { + rawMarkdown: markdownText, + layer1RawRegex: rawMetadata, + layer2Sanitized: docMetadataSanitized, + layer3Final: docMetadata + }, flagged: {}, remarks: {} }); diff --git a/backend/pfm-web-app/src/utils/parser.test.ts b/backend/pfm-web-app/src/utils/parser.test.ts index d371d88..056c558 100644 --- a/backend/pfm-web-app/src/utils/parser.test.ts +++ b/backend/pfm-web-app/src/utils/parser.test.ts @@ -29,19 +29,43 @@ function runTests() { { name: "Date (Asli/Copy) prefix noise", markdown: "Tanggal: (Asli/Copy) 15 May 2026\nNo. PO : PO/26/0000178435", expected: { tanggal: "15 May 2026" } }, { name: "Date junk suffix cut", markdown: "Tanggal: 25 May 2020 (Printed by system)", expected: { tanggal: "25 May 2020" } }, { name: "Date bad OCR month Hv -> Not Found", markdown: "Tanggal:25 Hv 2024\nNo.SO : 1601001206", expected: { tanggal: "Not Found" } }, + { name: "Date single digit 7 May 2026 -> 07 May 2026", markdown: "Tanggal: 7 May 2026\nNo. PO : PO/26/0000178435", expected: { tanggal: "07 May 2026" } }, + { name: "Date single digit 4 Apr 2026 -> 04 April 2026", markdown: "Tanggal: 4 Apr 2026\nNo. PO : PO/26/0000178435", expected: { tanggal: "04 April 2026" } }, { name: "00117709 before Tanggal must not pollute date", markdown: "00117709\nTanggal:25May2020\nNo.SO : 1091721200\nNo. DO : 1657943004\nNo. PO : F0/26/0000190929", expected: { tanggal: "25 May 2020" } }, { name: "Plate B 9427 UXT", markdown: "Truck No. B 9427 UXT\nNo. PO : PO/26/0000178435", expected: { platTruk: "B 9427 UXT" } }, { name: "Plate B-9999-XYZ dash", markdown: "No. Polisi: B-9999-XYZ\nNo. PO : PO/26/0000178435", expected: { platTruk: "B 9999 XYZ" } }, { name: "Plate ignore PO/SO prefix", markdown: "Plate is PO 1234 SO but real truck is A 123 B\nNo. PO : PO/26/0000178435", expected: { platTruk: "A 123 B" } }, { name: "Plate B9427UXT adjacent", markdown: "No Polisi B9427UXT\nNo. PO : PO/26/0000178435", expected: { platTruk: "B 9427 UXT" } }, { name: "Plate real doc B 9723 CXS", markdown: "Truck No.\nB 9723 CXS\nWH 01 / 01\nNo. PO : PO/26/0000178435", expected: { platTruk: "B 9723 CXS" } }, + { + name: "Table column shift alignment correction", + markdown: "No. PO : PO/26/0000178435\n" + + "" + + "" + + "" + + "" + + "" + + "" + + "
Kode BarangNama BarangBanyakJumlah
Item A2 KRG40 PC
11310014Item B2 KRG40 PC
11310024Item C1 BOX10 KG
11720055
", + expected: { + items: [ + { kodeBarang: "11310014", namaBarang: "Item A", banyak: "2 KRG", jumlah: "40 PC" }, + { kodeBarang: "11310024", namaBarang: "Item B", banyak: "2 KRG", jumlah: "40 PC" }, + { kodeBarang: "11720055", namaBarang: "Item C", banyak: "1 BOX", jumlah: "10 KG" } + ] + } as any + } ]; for (const t of parseTests) { try { const result = parseDOMetadata(t.markdown) as any; for (const [key, val] of Object.entries(t.expected)) { - assert.strictEqual(result[key], val, `field [${key}] expected "${val}" got "${result[key]}"`); + if (key === "items") { + assert.deepStrictEqual(result.items, val); + } else { + assert.strictEqual(result[key], val, `field [${key}] expected "${val}" got "${result[key]}"`); + } } console.log(`[PASS] ${t.name}`); } catch (err: any) { @@ -56,6 +80,7 @@ function runTests() { // tanggal valid { name: "sanitize: valid tanggal 30 June 2026 passes", input: { tanggal: "30 June 2026" }, expected: { tanggal: "30 June 2026" } }, { name: "sanitize: valid tanggal 25 May 2020 passes", input: { tanggal: "25 May 2020" }, expected: { tanggal: "25 May 2020" } }, + { name: "sanitize: single digit tanggal 4 April 2026 -> 04 April 2026", input: { tanggal: "4 April 2026" }, expected: { tanggal: "04 April 2026" } }, // tanggal invalid { name: "sanitize: tanggal bad month Hv -> Not Found", input: { tanggal: "25 Hv 2024" }, expected: { tanggal: "Not Found" } }, { name: "sanitize: tanggal as number 0011770 -> Not Found", input: { tanggal: "0011770" }, expected: { tanggal: "Not Found" } }, diff --git a/backend/pfm-web-app/src/utils/parser.ts b/backend/pfm-web-app/src/utils/parser.ts index 12886a8..38d5351 100644 --- a/backend/pfm-web-app/src/utils/parser.ts +++ b/backend/pfm-web-app/src/utils/parser.ts @@ -26,7 +26,7 @@ function cleanAndFormatPO(raw: string, currentYearLastTwo: string): string { // Pattern 1: Any form with at least one slash — PO/26/nnn, F0/20/nnn, PO120/nnn, 07/26/nnn // Structure: [PREFIX][optional_noise_digits][/][optional_year_segment][/]?[NUMBER] // We find the LAST slash and take everything after it as the real number - const withSlash = /^(?:[A-Z0-9]{1,4})[ \t]*[\/\-][ \t]*(?:\d{1,4}[ \t]*[\/\-][ \t]*)?(\d{4,})/i; + const withSlash = /^(?:[A-Z0-9]+)[ \t]*[\/\-][ \t]*(?:\d{1,4}[ \t]*[\/\-][ \t]*)?(\d{4,})/i; const m1 = stripped.match(withSlash); if (m1) { return `PO/${currentYearLastTwo}/${m1[1]}`; @@ -93,7 +93,20 @@ function cleanDateValue(raw: string): string { const cleaned = raw.trim(); if (cleaned === "Not Found" || cleaned === "") return "Not Found"; - const today = new Date(); + // Try unified regex first + const unifiedPattern = /(\d{1,2})[ \t\-\/]*(jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|maret|apr(?:il)?|may|mei|jun(?:[ei])?|jul(?:[ii])?|aug(?:ustus)?|agt|ags|sep(?:tember)?|oct(?:ober)?|okt|nov(?:ember)?|nop(?:ember)?|dec(?:ember)?|des(?:ember)?)[ \t\-\/]*(20\d{2})/i; + const match = cleaned.match(unifiedPattern); + if (match) { + const day = parseInt(match[1], 10); + const monthKey = match[2].toLowerCase(); + const year = parseInt(match[3], 10); + const month = MONTHS_MAP[monthKey] || monthKey; + if (day >= 1 && day <= 31 && year >= 2010 && year <= 2035) { + const paddedDay = day.toString().padStart(2, '0'); + return `${paddedDay} ${month} ${year}`; + } + } + let day: number | null = null; let monthStr: string | null = null; let year: number | null = null; @@ -119,12 +132,14 @@ function cleanDateValue(raw: string): string { } } + if (!monthStr) return "Not Found"; + // 3. Try to find 1 or 2 digit day (not part of the year) let textForDay = cleaned; if (year) { textForDay = textForDay.replace(year.toString(), ""); } - const dayMatches = textForDay.match(/\b(\d{1,2})\b/g); + const dayMatches = textForDay.match(/\b(\d{1,2})\b/g) || textForDay.match(/(\d{1,2})/g); if (dayMatches) { for (const matchStr of dayMatches) { const parsedDay = parseInt(matchStr, 10); @@ -135,17 +150,12 @@ function cleanDateValue(raw: string): string { } } - // 4. Fallback fill-in from current date - const currentYear = today.getFullYear(); - const currentMonthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - const currentMonth = currentMonthNames[today.getMonth()]; - const currentDay = today.getDate(); + if (day !== null && year !== null) { + const paddedDay = day.toString().padStart(2, '0'); + return `${paddedDay} ${monthStr} ${year}`; + } - const finalDay = day !== null ? day : currentDay; - const finalMonth = monthStr !== null ? monthStr : currentMonth; - const finalYear = year !== null ? year : currentYear; - - return `${finalDay} ${finalMonth} ${finalYear}`; + return "Not Found"; } export function parseDOMetadata(markdown: string) { @@ -317,25 +327,38 @@ export function parseDOMetadata(markdown: string) { metadata.tanggal = dateMatch[0]; } - // 2. Real SO is the value that was matched under No. DO - if (/^\d{10}$/.test(originalDO)) { - metadata.noSO = originalDO; - } else if (metadata.noSO === "Not Found" || isShortSO || isDateInSO) { - const tenDigitRegex = /\b\d{10}\b/g; - const m = cleanMarkdown.match(tenDigitRegex); - if (m && m.length > 0) { - metadata.noSO = m[0]; - } - } + // Only shift values if the PO field is shifted (i.e. PO field is a 10-digit number instead of PO format). + // If the PO field has a valid PO format (e.g. PO/26/...), PO and DO are in correct places and not shifted. + const isPoValid = /^PO\/[A-Z0-9\-\/]+\b/i.test(originalPO); - // 3. Real DO is the value that was matched under No. PO - if (/^\d{10}$/.test(originalPO)) { - metadata.noDO = originalPO; - } else if (metadata.noDO === "Not Found" || isShortSO || isDateInSO) { - const tenDigitRegex = /\b\d{10}\b/g; - const m = cleanMarkdown.match(tenDigitRegex); - if (m && m.length > 1) { - metadata.noDO = m[1]; + if (!isPoValid) { + // 2. Real SO is the value that was matched under No. DO + if (/^\d{10}$/.test(originalDO)) { + metadata.noSO = originalDO; + } else if (metadata.noSO === "Not Found" || isShortSO || isDateInSO) { + const tenDigitRegex = /\b\d{10}\b/g; + const m = cleanMarkdown.match(tenDigitRegex); + const cleanMatches = m ? m.filter(val => !originalPO.includes(val)) : []; + if (cleanMatches.length > 0) { + metadata.noSO = cleanMatches[0]; + } + } + + // 3. Real DO is the value that was matched under No. PO + if (/^\d{10}$/.test(originalPO)) { + metadata.noDO = originalPO; + } else if (metadata.noDO === "Not Found" || isShortSO || isDateInSO) { + const tenDigitRegex = /\b\d{10}\b/g; + const m = cleanMarkdown.match(tenDigitRegex); + const cleanMatches = m ? m.filter(val => !originalPO.includes(val)) : []; + if (cleanMatches.length > 1) { + metadata.noDO = cleanMatches[1]; + } + } + } else { + // PO is valid and NOT shifted. SO was just empty or noise. + if (isShortSO || isDateInSO) { + metadata.noSO = "Not Found"; } } @@ -420,7 +443,11 @@ export function parseDOMetadata(markdown: string) { metadata.noDO = cleanFinalValue(metadata.noDO); // Extract PO year dynamically from parsed document date (or default to current year if date not found) - const docYearLastTwo = getYearFromDate(metadata.tanggal); + const currentYY = new Date().getFullYear().toString().slice(-2); + let docYearLastTwo = getYearFromDate(metadata.tanggal); + if (docYearLastTwo !== currentYY) { + docYearLastTwo = currentYY; + } metadata.noPO = cleanAndFormatPO(cleanFinalValue(metadata.noPO), docYearLastTwo); // Parse HTML tables for items @@ -536,6 +563,45 @@ export function parseDOMetadata(markdown: string) { } if (isItemsTable) { + // Check for SKU column downward shift of 1 row: + // - First data row (r=1) has empty SKU, but has description + // - A downstream row (shiftBoundaryRow) has SKU, but description, banyak, jumlah are empty + if (numRows > 2 && kIdx !== -1 && nIdx !== -1) { + const firstRowSku = (grid[1][kIdx] || "").trim(); + const firstRowDesc = (grid[1][nIdx] || "").trim(); + + if (firstRowSku === "" && firstRowDesc !== "") { + let shiftBoundaryRow = -1; + for (let r = 2; r < numRows; r++) { + const skuVal = (grid[r][kIdx] || "").trim(); + + let othersEmpty = true; + for (let c = 0; c < maxCols; c++) { + if (c !== kIdx) { + const val = (grid[r][c] || "").trim(); + if (val !== "") { + othersEmpty = false; + break; + } + } + } + + if (skuVal !== "" && /^\d{8}$/.test(skuVal) && othersEmpty) { + shiftBoundaryRow = r; + break; + } + } + + if (shiftBoundaryRow !== -1) { + console.log(`Detected shifted SKU column in table. Shift boundary row: ${shiftBoundaryRow}. Correcting alignment...`); + for (let r = 1; r < shiftBoundaryRow; r++) { + grid[r][kIdx] = grid[r + 1][kIdx]; + } + grid[shiftBoundaryRow][kIdx] = ""; + } + } + } + for (let r = 1; r < numRows; r++) { const cells = grid[r]; const kodeCell = cells[kIdx] || ""; @@ -544,7 +610,7 @@ export function parseDOMetadata(markdown: string) { let jumlahCell = ""; // Check if there is an extra column before banyak that we should merge with banyak - if (bIdx > 2 && bIdx - 1 !== nIdx && bIdx - 1 !== kIdx) { + if (bIdx > 2 && bIdx - 1 !== nIdx && bIdx - 1 !== kIdx && headerCells[bIdx - 1] !== headerCells[nIdx]) { const qtyCell = cells[bIdx - 1] || ""; const unitCell = cells[bIdx] || ""; banyakCell = `${qtyCell} ${unitCell}`.trim(); @@ -612,6 +678,11 @@ export function parseDOMetadata(markdown: string) { // Clean checkmarks and extra spaces from banyak b = b.replace(/[✓☑]/g, "").replace(/\s+/g, " ").trim(); + b = b.replace(/\b80[xX]\b/g, "BOX") + .replace(/\bB0[xX]\b/g, "BOX") + .replace(/\b8[aA][gG]\b/g, "BAG") + .replace(/\b[pP][aA][iI]\b/g, "PAC") + .trim(); // Fallback for Banyak if empty or purely alphabetical unit if (!b) { @@ -626,11 +697,21 @@ export function parseDOMetadata(markdown: string) { const name = n.toLowerCase(); if (code === "11310024" || name.includes("griller")) { b = `${b} KRG`; - } else if (code === "11640053" || name.includes("bone in leg") || name.includes("pack")) { + } else if (code === "11640053" || name.includes("bone in leg")) { b = `${b} BAG`; + } else if (code.startsWith("21") || code.startsWith("12") || name.includes("nasi") || name.includes("rice") || name.includes("nugget") || name.includes("sosis") || name.includes("sausage") || name.includes("fiesta") || name.includes("champ")) { + b = `${b} BOX`; } } + // Clean checkmarks and extra spaces from jumlah + let cleanJ = j.replace(/[✓☑]/g, "").replace(/\s+/g, " ").trim(); + cleanJ = cleanJ.replace(/\b80[xX]\b/g, "BOX") + .replace(/\bB0[xX]\b/g, "BOX") + .replace(/\b8[aA][gG]\b/g, "BAG") + .replace(/\b[pP][aA][iI]\b/g, "PAC") + .trim(); + const cleanKode = k.trim(); const cleanNama = n.trim(); if (cleanKode === "" && cleanNama === "") { @@ -641,7 +722,7 @@ export function parseDOMetadata(markdown: string) { kodeBarang: k, namaBarang: n, banyak: b, - jumlah: j + jumlah: cleanJ }); } } @@ -671,6 +752,11 @@ export function extractPlatTruk(text: string): string { ]; const isValidPrefix = (p: string) => arrayPlat.includes(p.toUpperCase()); + const FORBIDDEN_SUFFIXES = [ + "BOX", "KRG", "BAG", "PAC", "KG", "PC", "PCS", "LGT", "K", "EKR", "LTR", "BKS", + "IDN", "WH", "PM", "TTD", "CPI", "HO", "NO", "GR", "G" + ]; + const isForbiddenSuffix = (s: string) => FORBIDDEN_SUFFIXES.includes(s.toUpperCase()); // 1. Look for explicit labels: No. Polisi, No. Pol, No. Polisi:, No. Kendaraan, Plat No, Plat, Truck No., etc. const labelRegex = /(?:No\.?\s*(?:Polisi|Pol|Kendaraan|Mobil|Truck|Pol\.?)|Plat(?:\s*No)?|Truck\s*No\.?)\s*[:\-.]?\s*\b([A-Z]{1,2})[ \t\-]*(\d{1,4})[ \t\-]*([A-Z]{1,3})\b/i; @@ -679,7 +765,7 @@ export function extractPlatTruk(text: string): string { const prefix = labelMatch[1].toUpperCase(); const num = labelMatch[2]; const suffix = labelMatch[3].toUpperCase(); - if (isValidPrefix(prefix)) { + if (isValidPrefix(prefix) && !isForbiddenSuffix(suffix)) { return `${prefix} ${num} ${suffix}`; } } @@ -692,7 +778,7 @@ export function extractPlatTruk(text: string): string { const num = match[2]; const suffix = match[3].toUpperCase(); - if (isValidPrefix(prefix)) { + if (isValidPrefix(prefix) && !isForbiddenSuffix(suffix)) { return `${prefix} ${num} ${suffix}`; } } @@ -771,9 +857,10 @@ export function sanitizeParsedMetadata(meta: ReturnType const day = parseInt(dm[1], 10); const year = parseInt(dm[3], 10); if (day >= 1 && day <= 31 && year >= 2010 && year <= currentFullYear + 1) { - // Valid — normalize capitalization + // Valid — normalize capitalization and pad day with leading zero const month = dm[2].charAt(0).toUpperCase() + dm[2].slice(1).toLowerCase(); - result.tanggal = `${dm[1]} ${month} ${dm[3]}`; + const paddedDay = dm[1].padStart(2, '0'); + result.tanggal = `${paddedDay} ${month} ${dm[3]}`; } else { result.tanggal = "Not Found"; } @@ -783,7 +870,10 @@ export function sanitizeParsedMetadata(meta: ReturnType // --- noPO --- // Get year from parsed date (or default to current year if date not found) - const docYY = result.tanggal && result.tanggal !== "Not Found" ? getYearFromDate(result.tanggal) : currentYY; + let docYY = result.tanggal && result.tanggal !== "Not Found" ? getYearFromDate(result.tanggal) : currentYY; + if (docYY !== currentYY) { + docYY = currentYY; + } // --- noPO --- // Must match PO/YY/NNNN+ where YY is the document-specific year segment, NNNN = 4+ digits diff --git a/backend/sources/Tabel Toko Aktif Juni 2026.xlsx b/backend/sources/Tabel Toko Aktif Juni 2026.xlsx deleted file mode 100644 index a735f25..0000000 Binary files a/backend/sources/Tabel Toko Aktif Juni 2026.xlsx and /dev/null differ diff --git a/backend/sources/accuracy_report.md b/backend/sources/accuracy_report.md new file mode 100644 index 0000000..b6892c3 --- /dev/null +++ b/backend/sources/accuracy_report.md @@ -0,0 +1,46 @@ +# AI OCR Accuracy & Performance Report + +This report summarizes the comparison of **AI OCR Extraction (Layer 3 Final)** against the **Manual Ground Truth Labels** across all **37 test images**. + +--- + +## 📊 Summary Accuracy + +| Field / Area | Total Checks | Matches | Mismatches | Accuracy (%) | +| :--- | :---: | :---: | :---: | :---: | +| **PO Number** | 37 | 33 | 4 | **89.19%** | +| **SO Number** | 37 | 31 | 6 | **83.78%** | +| **DO Number** | 37 | 32 | 5 | **86.49%** | +| **Date** | 37 | 20 | 17 | **54.05%** | +| **Plat Nomor** | 37 | 21 | 16 | **56.76%** | +| **Customer Name** | 37 | 37 | 0 | **100.00%** | +| **Store Name** | 37 | 11 | 26 | **29.73%** | +| **Alamat** | 37 | 12 | 25 | **32.43%** | +| **Item SKU** | 127 | 119 | 8 | **93.70%** | +| **Item Banyak (Qty Pkg)** | 127 | 100 | 27 | **78.74%** | +| **Item Jumlah (Qty Unit)**| 127 | 92 | 35 | **72.44%** | +| **OVERALL TOTAL** | **677** | **508** | **169** | **75.04%** | + +*Detailed, color-coded comparison results (including side-by-side matches/mismatches) are available in the generated Excel sheet: [sources/comparison_report.xlsx](file:///d:/Client/Data%20Bisnis%20Solusi/app-pfm-ocr-v2/backend/sources/comparison_report.xlsx).* + +--- + +## 🔍 Key Findings & Analysis + +### 🟢 What is Performing Well (High Accuracy) +1. **Customer Name (100.00%)**: Every customer name field matches perfectly, as it is standard and usually well-printed. +2. **Item SKU (93.70%)**: Outstanding performance on SKU extraction. This is boosted by the **SKU master list validation** (Levenshtein score threshold check), which dynamically corrects OCR recognition noise into actual valid database SKUs. +3. **DO, PO, and SO Numbers (83.78% - 89.19%)**: High accuracy for document tracking numbers, which is crucial for database consistency and mapping. + +### 🟡 Moderate Performance (Needs Tuning) +1. **Item Banyak (78.74%) & Item Jumlah (72.44%)**: Quantity parsing sometimes gets thrown off by OCR capturing checkmarks (`✓`, `✔`) or adjacent unit annotations (e.g. `PC`, `PAC`, `KG`) next to digits, leading to slight string mismatches. + +### 🔴 Opportunities for Improvement (Low Accuracy) +1. **Store Name (29.73%) & Alamat (32.43%)**: + - *Why it's low*: The manual labels for address and store name contain highly specific strings, while the AI OCR might extract partial address segments, omit specific keywords (like "DKI AREA", "KANTIN CPI"), or extract slightly different abbreviations. + - *Recommendation*: Introduce a fuzzy store-name and address resolution map against the database entries (using Levenshtein distance on store aliases) to dynamically map extracted text to clean master values. +2. **Date (54.05%)**: + - *Why it's low*: Differences in format normalization (e.g., raw text "23 June 2026" vs expected normalized representations, or OCR misreading text dates like "15 May 2026"). + - *Recommendation*: Enhance `sanitizeParsedMetadata` in [parser.ts](file:///d:/Client/Data%20Bisnis%20Solusi/app-pfm-ocr-v2/backend/pfm-web-app/src/utils/parser.ts) to parse multiple date format variations into a unified target format. +3. **Plat Nomor (56.76%)**: + - *Why it's low*: License plates on delivery orders are often stamped, handwritten, or placed in odd margins, which makes clean extraction difficult. diff --git a/backend/sources/ai_results.json b/backend/sources/ai_results.json index e4ad317..0cf38f2 100644 --- a/backend/sources/ai_results.json +++ b/backend/sources/ai_results.json @@ -1,56 +1,158 @@ [ { + "index": 1, "filename": "1782870899198-sample_do.jpeg", - "status": "Success", - "tilt": "1.29", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 1.29, + "unwarped": true, + "rawMarkdown": "
\"Image\"
\n\n\nterima oleh Disesahkan oleh\n\nESIA TDK\n\nKAWASHI BANTEN\n\nERN\n\n02:56:41\n\nKepada : Kepala Gudang\n\nTanggal:\n\nNo.SO : 23 June 2026\n\nNo. DO : 1691960321\n\n00168133\n\nNo. PO : 1659980277\n\n## DELIVERY ORDER\n\nP0/26/0000230828\n\nKepada Yth Order Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : DKI AREA\n\nJL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAM.\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 1430\\nJAKARTA UTA RA BanyakJumlah
Griller Size 2 ( 20 Ekor ) Frozen2 KRG40 PC
11310014Griller Size A Frozen (900-1000 g) PC2 KRG40 PC
11310024SBL Mitra 10 kg1 BOX10 KG
11620056SBB Mitra 10 kg1 BOX10 KG
11690053Full Wing Frozen Pack1 BOX10 KG
11720055
Barang dikirim dalam keadaan baikJumlah83 110
Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\nLembar 3 : Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas. kekurangan barang tidak dapat kami layani", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 June 2026", + "noSO": "1691960321", "noDO": "1659980277", "noPO": "PO/26/0000230828", - "noSO": "1691960321", "items": [ { - "banyak": "2 KRG", - "jumlah": "40 PC", "kodeBarang": "11310014", "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", "kodeBarangOriginal": "11310014" }, { - "banyak": "1 KRG", - "jumlah": "10 PC", "kodeBarang": "11310024", "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", "kodeBarangOriginal": "11310024" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11620056", "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11620056" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11690053", "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11690053" }, { - "banyak": "1 BOX", - "jumlah": "", "kodeBarang": "11720055", "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11720055" + }, + { + "kodeBarang": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "namaBarang": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "banyak": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "jumlah": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "kodeBarangOriginal": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN" + } + ], + "platTruk": "B 9427 UXT" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 June 2026", + "noSO": "1691960321", + "noDO": "1659980277", + "noPO": "PO/26/0000230828", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen (900-1000 g) PC", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL Mitra 10 kg", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB Mitra 10 kg", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11720055", + "namaBarang": "Full Wing Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "namaBarang": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "banyak": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN", + "jumlah": "Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN" + } + ], + "platTruk": "B 9427 UXT" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 June 2026", + "noSO": "1691960321", + "noDO": "1659980277", + "noPO": "PO/26/0000230828", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11620056" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11720055" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "23 June 2026", "platTruk": "B 9427 UXT", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -63,8 +165,8 @@ { "kodeBarang": "11310024", "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", - "banyak": "1 KRG", - "jumlah": "10 PC", + "banyak": "2 KRG", + "jumlah": "40 PC", "kodeBarangOriginal": "11310024" }, { @@ -85,210 +187,470 @@ "kodeBarang": "11720055", "namaBarang": "FULL WING FROZ PACK 1 KG(*)", "banyak": "1 BOX", - "jumlah": "", + "jumlah": "10 KG", "kodeBarangOriginal": "11720055" } - ] - }, - { - "filename": "1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg", - "status": "Success", - "tilt": "24.41", - "unwarped": "Yes", - "metadata": { - "noDO": "100043004", - "noPO": "PO/20/0000100029", - "noSO": "1011221200", - "items": [ - { - "banyak": "200 BOX", - "jumlah": "10 PAC", - "kodeBarang": "13030502", - "namaBarang": "CHAMP CHICK MEATBALL 500 GR", - "kodeBarangOriginal": "10030502" - } - ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "25 November 2020", - "platTruk": "", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" - }, - "items": [ - { - "kodeBarang": "13030502", - "namaBarang": "CHAMP CHICK MEATBALL 500 GR", - "banyak": "200 BOX", - "jumlah": "10 PAC", - "kodeBarangOriginal": "10030502" - } - ] + ], + "error": null }, { + "index": 2, "filename": "1782884664859-rotated_1782884661516_rotated_1782884658097_rotated_1782884654697_CAP5956452738616729026.jpg", - "status": "Success", - "tilt": "0.06", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0.06, + "unwarped": false, + "rawMarkdown": "Agnes 'Telco 23 Telkom fineshyt telco\nkmrn ngechat gue tp ga jwb Ig\n\nINDONESIA Tbk\n\nODERN,\n\n02:17:59 / 2 of Tanggal : 15 May 2026\n\nNo. SO : 1691908676\n\n
\"Image\"
\n\n\nNo. DO : 1659932080\n\nNo. PO : PO/26/0000178435\n\nKepada : Kepala Gudang\n\n## DELIVERY ORDER\n\n00671212\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL,\n\nPADEMANGAN, JAKARTA UTARA, 14430\n\n\n\nJAKARTA UTARA\n\n\n
Kode BarangNama BarangBanyakJumlah
13012205673 Asimo Sosis Ayam Kombinasi 375 Gr ASLI1 BOX15 PAC
Jumlah998
\n\nBarang dikirim dalam keadaan baik\n\nTruck No.\n\n
\"Image\"
\n\n\nPenerima Barang\n\nB 9723 CXS\n\nPM TAKTAKAN SERANG\n\nWH 01 / 01\n\nJL RAYA JAKTAKAN\n\n\n\n\n\nNO 1 G, LONTAN BARU, SERANG, BANTEN\n\n
\"Image\"
\n\n\nTanda Tangan Supir\n\n
\"Image\"
\n\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "15 May 2026", + "noSO": "1691908676", "noDO": "1659932080", "noPO": "PO/26/0000178435", - "noSO": "1691908676", "items": [ { - "banyak": "673 BOX", - "jumlah": "15 PAC", "kodeBarang": "13012205", "namaBarang": "ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC)", + "banyak": "1 BOX", + "jumlah": "15 PAC", "kodeBarangOriginal": "13012205" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "15 May 2026", - "platTruk": "B 9723 CXS", - "orderUntuk": "AYAM HITZ HO ANCOL", + "platTruk": "B 9723 CXS" + }, + "layer2Sanitized": { "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "15 May 2026", + "noSO": "1691908676", + "noDO": "1659932080", + "noPO": "PO/26/0000178435", + "items": [ + { + "kodeBarang": "13012205", + "namaBarang": "673 Asimo Sosis Ayam Kombinasi 375 Gr ASLI", + "banyak": "1 BOX", + "jumlah": "15 PAC" + } + ], + "platTruk": "B 9723 CXS" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "15 May 2026", + "noSO": "1691908676", + "noDO": "1659932080", + "noPO": "PO/26/0000178435", + "items": [ + { + "kodeBarang": "13012205", + "namaBarang": "ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC)", + "banyak": "1 BOX", + "jumlah": "15 PAC", + "kodeBarangOriginal": "13012205" + } + ], + "platTruk": "B 9723 CXS", + "orderUntuk": "", + "alamat": "" }, "items": [ { "kodeBarang": "13012205", "namaBarang": "ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC)", - "banyak": "673 BOX", + "banyak": "1 BOX", "jumlah": "15 PAC", "kodeBarangOriginal": "13012205" } - ] + ], + "error": null }, { + "index": 3, "filename": "1782888127716-CAP6161747431193129837.jpg", - "status": "Success", - "tilt": "7.14", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 7.14, + "unwarped": true, + "rawMarkdown": "
\"Image\"
\n\n\nJR OMEGA (PC)(*) 900 PC\n\nPOKPHAND INDONESIA TBK INDUSTRI MODERN\n\nAmount\n\nKepada : Kepala Gudang\n\n31945\n\n1,950.00\n\n00:21:27 No. SO : 30 June 2026\n\nTanggal :\n\nNo. DO : 1691972227\n\n## DELIVERY ORDER\n\nKepada Yth :\n\nNo. PO : 1659990561\n\nPO/26/0000241938\n\nOrder Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : DKI AREA\n\nJL.ANCOL BARAT VIII/1,ANCOL,PADEMANGAN,\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 14450 JAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN1 WH 01 / 01
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\nLember 3. Customer\n\nJika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami tayani\n\n07", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972227", "noDO": "1659990561", "noPO": "PO/26/0000241938", - "noSO": "1691972227", "items": [ { - "banyak": "1 80X", - "jumlah": "6 PAC", "kodeBarang": "21002601", "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "21002601" + }, + { + "kodeBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1 WH 01 / 01", + "jumlah": "1 WH 01 / 01", + "kodeBarangOriginal": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN" + } + ], + "platTruk": "B 9257 JXR" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972227", + "noDO": "1659990561", + "noPO": "PO/26/0000241938", + "items": [ + { + "kodeBarang": "21002601", + "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1 WH 01 / 01", + "jumlah": "1 WH 01 / 01" + } + ], + "platTruk": "B 9257 JXR" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972227", + "noDO": "1659990561", + "noPO": "PO/26/0000241938", + "items": [ + { + "kodeBarang": "21002601", + "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "21002601" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "30 June 2026", "platTruk": "B 9257 JXR", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { "kodeBarang": "21002601", "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", - "banyak": "1 80X", + "banyak": "1 BOX", "jumlah": "6 PAC", "kodeBarangOriginal": "21002601" } - ] + ], + "error": null }, { + "index": 4, "filename": "1782888211457-rotated_1782888204591_rotated_1782888199962_rotated_1782888195402_CAP7202641176939787142.jpg", - "status": "Success", - "tilt": "0.00", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "\n
000006 MA TELUR OMEGA (PC)(*)900PCH/PCS1.950.00Amount
Qty:9001.755.000.00
DEN POKPHAND INDONESIA Tbk00:21:27Tanggal :
IN INDUSTRI MODERN.No. SO : 30 June 2026
ENNo. DO : 1691972227
No. PO : 1659990561PO/26/0000241938
\n\nKepada : Kepala Gudang\n\n31945\n\nKepada Yth :\n\nOrder Untuk : PT_PRIMAFOOD INTERNATIONAL\n\nAlamat :\n\nDKI AREA\n\nJL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN,\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 14430\\nJAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC✓
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN16 WH 01 / 01 Bagian Penjualan
Penerima Barang Tanda Tangan SupirBag. Pengeluaran Barang
Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani
\n\nadidas\nDANG\nSA UDANG", + "layer1RawRegex": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972227", "noDO": "1659990561", "noPO": "PO/26/0000241938", - "noSO": "1691972227", "items": [ { - "banyak": "1 80X", - "jumlah": "6 PAC✓", "kodeBarang": "21002601", "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "21002601" + }, + { + "kodeBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1", + "jumlah": "6 WH 01 / 01 Bagian Penjualan", + "kodeBarangOriginal": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN" + }, + { + "kodeBarang": "Penerima Barang Tanda Tangan Supir", + "namaBarang": "Penerima Barang Tanda Tangan Supir", + "banyak": "Bag. Pengeluaran Barang Bag. Pengeluaran Barang", + "jumlah": "Bag. Pengeluaran Barang", + "kodeBarangOriginal": "Penerima Barang Tanda Tangan Supir" + }, + { + "kodeBarang": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "namaBarang": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "banyak": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "jumlah": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "kodeBarangOriginal": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani" + } + ], + "platTruk": "B 9257 JXR" + }, + "layer2Sanitized": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972227", + "noDO": "1659990561", + "noPO": "PO/26/0000241938", + "items": [ + { + "kodeBarang": "21002601", + "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1", + "jumlah": "6 WH 01 / 01 Bagian Penjualan" + }, + { + "kodeBarang": "Penerima Barang Tanda Tangan Supir", + "namaBarang": "Penerima Barang Tanda Tangan Supir", + "banyak": "Bag. Pengeluaran Barang Bag. Pengeluaran Barang", + "jumlah": "Bag. Pengeluaran Barang" + }, + { + "kodeBarang": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "namaBarang": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "banyak": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "jumlah": "Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani" + } + ], + "platTruk": "B 9257 JXR" + }, + "layer3Final": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972227", + "noDO": "1659990561", + "noPO": "PO/26/0000241938", + "items": [ + { + "kodeBarang": "21002601", + "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "21002601" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "30 June 2026", "platTruk": "B 9257 JXR", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "Not Found", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { "kodeBarang": "21002601", "namaBarang": "Prima Nasi Spicy Chick Sambal Geprek COPY", - "banyak": "1 80X", - "jumlah": "6 PAC✓", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "21002601" } - ] + ], + "error": null }, { + "index": 5, "filename": "1782888609885-rotated_1782888593813_1000000454.jpg", - "status": "Success", - "tilt": "22.84", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 22.84, + "unwarped": true, + "rawMarkdown": "
\"Image\"
\n\n\nKepala : Kepala Gudang\n\n00161083\n\n## DELIVERY ORDER\n\nNo. PO : PO/26/0000238723\n\n65-58\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\n\n\nOrder Untuk : DKI AREA\n\n61-50 Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADENANGAN.\n\nJAKARTA UTARA.14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11310014Griller Size 2 ( 20 Ekor ) Frozen360 PG
11310024Griller Size A Frozen ( 900-1000 G) PC240 PG
11660050Drumstick Frozen Pack110 KG
11690053SBB Mitra 10 Kg110 KG
11720055Full Wind Frozen Pack110 KG
11750050Fillet Mitra 10 Kg110 KG
Barang dikirim dalam keadaan baikJumlah104140
Truck No. B 9715 UXUWH Q1 / 01
PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 3 : Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", "noDO": "Not Found", "noPO": "PO/26/0000238723", - "noSO": "Not Found", "items": [ { - "banyak": "3 KRG", - "jumlah": "60 PC", "kodeBarang": "11310014", "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", "kodeBarangOriginal": "11310014" }, { - "banyak": "2 KRG", - "jumlah": "40 PC", "kodeBarang": "11310024", "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", "kodeBarangOriginal": "11310024" }, { - "banyak": "1 BOX", - "jumlah": "10 PAC", "kodeBarang": "11660050", "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11660050" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11690053", "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11690053" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11720055", "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11720055" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11750050", "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + }, + { + "kodeBarang": "Truck No. B 9715 UXU", + "namaBarang": "WH Q1 / 01", + "banyak": "WH Q1 / 01", + "jumlah": "WH Q1 / 01", + "kodeBarangOriginal": "Truck No. B 9715 UXU" + }, + { + "kodeBarang": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "namaBarang": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "banyak": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "jumlah": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "kodeBarangOriginal": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =" + } + ], + "platTruk": "B 9715 UXU" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", + "noDO": "Not Found", + "noPO": "PO/26/0000238723", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "3 KRG", + "jumlah": "60 PG" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen ( 900-1000 G) PC", + "banyak": "2 KRG", + "jumlah": "40 PG" + }, + { + "kodeBarang": "11660050", + "namaBarang": "Drumstick Frozen Pack", + "banyak": "1", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB Mitra 10 Kg", + "banyak": "1", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11720055", + "namaBarang": "Full Wind Frozen Pack", + "banyak": "1", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11750050", + "namaBarang": "Fillet Mitra 10 Kg", + "banyak": "1", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No. B 9715 UXU", + "namaBarang": "WH Q1 / 01", + "banyak": "WH Q1 / 01", + "jumlah": "WH Q1 / 01" + }, + { + "kodeBarang": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "namaBarang": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "banyak": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =", + "jumlah": "PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =" + } + ], + "platTruk": "B 9715 UXU" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", + "noDO": "Not Found", + "noPO": "PO/26/0000238723", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11720055" + }, + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11750050" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "Not Found", "platTruk": "B 9715 UXU", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -309,7 +671,7 @@ "kodeBarang": "11660050", "namaBarang": "PAHA BAWAH (1 KG)(*)", "banyak": "1 BOX", - "jumlah": "10 PAC", + "jumlah": "10 KG", "kodeBarangOriginal": "11660050" }, { @@ -333,81 +695,249 @@ "jumlah": "10 KG", "kodeBarangOriginal": "11750050" } - ] + ], + "error": null }, { + "index": 6, "filename": "1782890303600-1000000465.jpg", - "status": "Success", - "tilt": "17.41", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 17.41, + "unwarped": true, + "rawMarkdown": "\n
CHARDEN POKPHAND INDONESIA TBK06:28:48 / 1otTanggal :30 June 2026
AWASAM INDUSTRI MODERN.No. SO :1691972284
BANTENNo. DO :1659990583
No. PO :PO/26/0000241302
\n\n
\"Image\"
\n\n\n00088615\n\nKepada : Kepala Gudang\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN.\n\nJAKARTA UTARA. 14430\n\n\n\n\n
Kode BarangNama BarangBanyakJumlah
12010509829 Champ Crunchy Nugget 450 G1 BOX10 PAC
12010512888 Champ Naget Avam Kombinasi 900 G1 BOX6 PAC
12010519894 CHAMP NAGET KOMBINASI BENTUK STIK 901 BOX6 PAC
12012501600 Akumo Chicken Naget 250 Gr1 BOX20 PAC
12012503602 Akumo Chicken Naget 1 Ka1 BOX5 PAC
13010116692 Fiesta Original Sausage 300 GR1 BOX20 PAC
13010514299 Champ Chicken Sausage 1 Ka FR1 BOX10 PAC
13030502298 Champ Chicken Ball 500 GR Fr1 BOX10 PAC
Barang dikirim dalam keadaan baikJumlah
\"Image\"\"56 JXRWH 01 / 01
HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN \"Image\"\"
Bag. Pengeluaran Barang Bagian Peniualan
\n\nLembar3 : Customer\n\n3 : Customer", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972284", "noDO": "1659990583", "noPO": "PO/26/0000241302", - "noSO": "1691972284", "items": [ { - "banyak": "1 BOX", - "jumlah": "10 PAC", "kodeBarang": "12010509", "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", "kodeBarangOriginal": "12010509" }, { - "banyak": "1 BOX", - "jumlah": "6 PAC", "kodeBarang": "12010512", "namaBarang": "CHAMP NUGGET AYAM 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "12010512" }, { - "banyak": "1 BOX", - "jumlah": "6 PAC", "kodeBarang": "12010519", "namaBarang": "CHAMP NUGGET STICK 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "12010519" }, { - "banyak": "1 BOX", - "jumlah": "20 PAC", "kodeBarang": "12012501", "namaBarang": "AKUMO CHICKEN NAGET 250 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", "kodeBarangOriginal": "12012501" }, { - "banyak": "1 BOX", - "jumlah": "5 PAC", "kodeBarang": "12012503", "namaBarang": "AKUMO CHICKEN NUGGET 1000 GR", + "banyak": "1 BOX", + "jumlah": "5 PAC", "kodeBarangOriginal": "12012503" }, { - "banyak": "1 BOX", - "jumlah": "20 PAC", "kodeBarang": "13010116", "namaBarang": "FIESTA SSG ORIGINAL 300 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", "kodeBarangOriginal": "13010116" }, { - "banyak": "1 BOX", - "jumlah": "10 PAC", "kodeBarang": "13010514", "namaBarang": "CHAMP CHICK SSG 1000 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", "kodeBarangOriginal": "13010514" }, { - "banyak": "1 BOX", - "jumlah": "10 PAC", "kodeBarang": "13030502", "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13030502" + }, + { + "kodeBarang": "", + "namaBarang": "56 JXR", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "jumlah": "", + "kodeBarangOriginal": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang Bagian Peniualan", + "namaBarang": "Bag. Pengeluaran Barang Bagian Peniualan", + "banyak": "Bag. Pengeluaran Barang Bagian Peniualan", + "jumlah": "", + "kodeBarangOriginal": "Bag. Pengeluaran Barang Bagian Peniualan" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972284", + "noDO": "1659990583", + "noPO": "PO/26/0000241302", + "items": [ + { + "kodeBarang": "12010509", + "namaBarang": "829 Champ Crunchy Nugget 450 G", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "12010512", + "namaBarang": "888 Champ Naget Avam Kombinasi 900 G", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "12010519", + "namaBarang": "894 CHAMP NAGET KOMBINASI BENTUK STIK 90", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "12012501", + "namaBarang": "600 Akumo Chicken Naget 250 Gr", + "banyak": "1 BOX", + "jumlah": "20 PAC" + }, + { + "kodeBarang": "12012503", + "namaBarang": "602 Akumo Chicken Naget 1 Ka", + "banyak": "1 BOX", + "jumlah": "5 PAC" + }, + { + "kodeBarang": "13010116", + "namaBarang": "692 Fiesta Original Sausage 300 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC" + }, + { + "kodeBarang": "13010514", + "namaBarang": "299 Champ Chicken Sausage 1 Ka FR", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "13030502", + "namaBarang": "298 Champ Chicken Ball 500 GR Fr", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "", + "namaBarang": "56 JXR", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "jumlah": "" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang Bagian Peniualan", + "namaBarang": "Bag. Pengeluaran Barang Bagian Peniualan", + "banyak": "Bag. Pengeluaran Barang Bagian Peniualan", + "jumlah": "" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972284", + "noDO": "1659990583", + "noPO": "PO/26/0000241302", + "items": [ + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010512", + "namaBarang": "CHAMP NUGGET AYAM 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "12010512" + }, + { + "kodeBarang": "12010519", + "namaBarang": "CHAMP NUGGET STICK 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "12010519" + }, + { + "kodeBarang": "12012501", + "namaBarang": "AKUMO CHICKEN NAGET 250 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", + "kodeBarangOriginal": "12012501" + }, + { + "kodeBarang": "12012503", + "namaBarang": "AKUMO CHICKEN NUGGET 1000 GR", + "banyak": "1 BOX", + "jumlah": "5 PAC", + "kodeBarangOriginal": "12012503" + }, + { + "kodeBarang": "13010116", + "namaBarang": "FIESTA SSG ORIGINAL 300 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", + "kodeBarangOriginal": "13010116" + }, + { + "kodeBarang": "13010514", + "namaBarang": "CHAMP CHICK SSG 1000 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13010514" + }, + { + "kodeBarang": "13030502", + "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", "kodeBarangOriginal": "13030502" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "30 June 2026", "platTruk": "", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -466,32 +996,122 @@ "jumlah": "10 PAC", "kodeBarangOriginal": "13030502" } - ] + ], + "error": null }, { + "index": 7, "filename": "1782892728794-1000000466.jpg", - "status": "Success", - "tilt": "10.10", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 10.1, + "unwarped": true, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN.\n\nBANTEN\n\n06:28:48 / 2\n\n00088616\n\npada : Kepala Gudang\n\nof tanggal : 30 June 2026\n\nNo. SO : 1691972284\n\n
\"Image\"
\n\n\nNo. DO : 1659990583\n\nNo. PO : PO/26/0000241302\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat\n\nJL. ANCOL BARAT VIII/1. ANCOL.\n\nPADEMANGAN. JAKARTA UTARA. 14430\n\nJAKARTA UTARA\n\n\n
Kode BarangNama BarangBanyakJumlah
15040101903 Fiesta French F Batter Coated 500 GR1 BOX12 PAC
COPY
Barang dikirim dalam keadaan baikJumlah999
\"Image\"\"B 9256 JXR WH 01 / 01\\nPX HEAD OFFICE ANCOL ! JL. ANCOL BARAT\\nVIII NO. 1 JAKARTA UTARA IDN\\nTanda Tangan Supir Bag. Pengeluaran BarangJ
\n\nLembar 3: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\nJika D.O. ini telah ditanau\n\n-", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN.\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972284", "noDO": "1659990583", "noPO": "PO/26/0000241302", - "noSO": "1691972284", "items": [ { - "banyak": "1 BOX", - "jumlah": "12 PAC", "kodeBarang": "15040101", "namaBarang": "FIESTA BATTER COATED 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15040101" + }, + { + "kodeBarang": "", + "namaBarang": "B 9256 JXR WH 01 / 01", + "banyak": "1 J", + "jumlah": "", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "", + "namaBarang": "PX HEAD OFFICE ANCOL ! JL. ANCOL BARAT", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "", + "namaBarang": "VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "", + "namaBarang": "Tanda Tangan Supir Bag. Pengeluaran Barang", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "" + } + ], + "platTruk": "B 9256 JXR" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN.\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972284", + "noDO": "1659990583", + "noPO": "PO/26/0000241302", + "items": [ + { + "kodeBarang": "15040101", + "namaBarang": "903 Fiesta French F Batter Coated 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "", + "namaBarang": "B 9256 JXR WH 01 / 01", + "banyak": "1 J", + "jumlah": "" + }, + { + "kodeBarang": "", + "namaBarang": "PX HEAD OFFICE ANCOL ! JL. ANCOL BARAT", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "", + "namaBarang": "VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "", + "namaBarang": "Tanda Tangan Supir Bag. Pengeluaran Barang", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9256 JXR" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN.\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972284", + "noDO": "1659990583", + "noPO": "PO/26/0000241302", + "items": [ + { + "kodeBarang": "15040101", + "namaBarang": "FIESTA BATTER COATED 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", "kodeBarangOriginal": "15040101" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "30 June 2026", "platTruk": "B 9256 JXR", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN.\nBANTEN", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -501,32 +1121,70 @@ "jumlah": "12 PAC", "kodeBarangOriginal": "15040101" } - ] + ], + "error": null }, { + "index": 8, "filename": "IMG_20260630_145445.jpg", - "status": "Success", - "tilt": "10.71", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 10.71, + "unwarped": true, + "rawMarkdown": "☐ ☑ ☐ ☑\n\n.\n\n🔥 🌈 🔥 — ☕ ×\n\n
WhatsApp Image 2026-06-23 at 10.41.41.jpeg
\n\n\nLUIA TUR\n\n22222222\n\nepada : Kepala Gudang\n\n00117709\n\nTanggal:25 May 2026\n\nNo.SO : 1071721209\n\nNo. DO : 1057745004\n\n## DELIVERY ORDER\n\nNo. PO : PO/20/0000170727\n\nKepada Yth : PT.PRINHFOVO INTERNATIONAL\n\nOrder Untuk : FTM KU\n\nAlamat : JL. ANCOL BARAT VIII/1. ANCOL. PAOENANGAR.\n\nJAKARTA UTAHRA,19430\n\n\n
Kode BarangNama BarangJAKARTA UFARABanyakJumlah
13030502290 Champ Chicken Ball 500 GR Tr \"Image\"\"180%10 PAC
Barang dikirim dalam keadaan baikJumlah
\n\nTruck Nò. \" - \" B 9536 000\n\n期日/01\n\n2771\n\n1200×1600 192 KB\n\nin\n\n[ ] [ ]\n\n121%", + "layer1RawRegex": { + "vendorInfo": "PT.PRINHFOVO INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "25 May 2026", + "noSO": "1071721209", "noDO": "1057745004", "noPO": "PO/26/0000170727", - "noSO": "1071721209", "items": [ { - "banyak": "1 BOX", - "jumlah": "10 PAC", "kodeBarang": "13030502", "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", "kodeBarangOriginal": "13030502" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "25 May 2026", - "platTruk": "", - "orderUntuk": "PX HEAD OFFICE ANCOL", + "platTruk": "" + }, + "layer2Sanitized": { "vendorInfo": "PT.PRINHFOVO INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "25 May 2026", + "noSO": "1071721209", + "noDO": "1057745004", + "noPO": "PO/26/0000170727", + "items": [ + { + "kodeBarang": "13030502", + "namaBarang": "290 Champ Chicken Ball 500 GR Tr", + "banyak": "1 80%", + "jumlah": "10 PAC" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT.PRINHFOVO INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "25 May 2026", + "noSO": "1071721209", + "noDO": "1057745004", + "noPO": "PO/26/0000170727", + "items": [ + { + "kodeBarang": "13030502", + "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13030502" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -536,67 +1194,195 @@ "jumlah": "10 PAC", "kodeBarangOriginal": "13030502" } - ] + ], + "error": null }, { + "index": 9, "filename": "IMG_20260701_134446.jpg", - "status": "Success", - "tilt": "0.00", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "\n
Kode BarangNama Barang1.950.00Amount\n1.755.000.00
21002601Prima Nasi Spicy Chick Sambal Beprek COPY16 PAC✓
Barang dikirim dalam keadaan baikJumlah6
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan
Penerima Barang Lember 3 : CustomerTanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang
\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", "noDO": "Not Found", "noPO": "Not Found", - "noSO": "Not Found", "items": [ { - "banyak": "1", - "jumlah": "6 PAC✓", "kodeBarang": "21002601", "namaBarang": "Prima Nasi Spicy Chick Sambal Beprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "21002601" + }, + { + "kodeBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "namaBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "banyak": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "jumlah": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "kodeBarangOriginal": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan" + }, + { + "kodeBarang": "Penerima Barang Lember 3 : Customer", + "namaBarang": "Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang", + "banyak": "Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang", + "jumlah": "Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang", + "kodeBarangOriginal": "Penerima Barang Lember 3 : Customer" + } + ], + "platTruk": "B 9257 JXR" + }, + "layer2Sanitized": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", + "noDO": "Not Found", + "noPO": "Not Found", + "items": [ + { + "kodeBarang": "21002601", + "namaBarang": "Prima Nasi Spicy Chick Sambal Beprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "namaBarang": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "banyak": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan", + "jumlah": "Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan" + }, + { + "kodeBarang": "Penerima Barang Lember 3 : Customer", + "namaBarang": "Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang", + "banyak": "Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang", + "jumlah": "Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang" + } + ], + "platTruk": "B 9257 JXR" + }, + "layer3Final": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", + "noDO": "Not Found", + "noPO": "Not Found", + "items": [ + { + "kodeBarang": "21002601", + "namaBarang": "Prima Nasi Spicy Chick Sambal Beprek COPY", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "21002601" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "Not Found", "platTruk": "B 9257 JXR", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "Not Found", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { "kodeBarang": "21002601", "namaBarang": "Prima Nasi Spicy Chick Sambal Beprek COPY", - "banyak": "1", - "jumlah": "6 PAC✓", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "21002601" } - ] + ], + "error": null }, { + "index": 10, "filename": "IMG_20260701_134504.jpg", - "status": "Success", - "tilt": "14.75", - "unwarped": "Yes", - "metadata": { + "status": "success", + "tilt": 14.75, + "unwarped": true, + "rawMarkdown": "\n
70000006 PRIMA TELUR OMEGA (PC)(*) qty unitH/PCS1.950.001.755.000.00
Total qty :90006:28:57Tanggal : 30 June 2026\\nNo. SO : 1691972285\\nNo. DO : 1659990584\\nNo. PO : 07/26/0000241303
INDONESIA TbKRN.
\n\n## 00088617\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN.\n\nJAKARTA UTARA. 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
21010104Fiesta Beet Rendang W Rice 320G 6PC1 BOX6 PAC
COPY
Barang dikirim dalam keadaan baikJumlah16
\"Image\"\"\"Image\"\"WH 01 / 01
JAKARTA UTARA IDN
Bag. Pengeluaran BarangBagian Penjualan
\n\nLembar 3 : Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972285", "noDO": "1659990584", "noPO": "PO/26/0000241303", - "noSO": "1691972285", "items": [ { - "banyak": "1 BOX", - "jumlah": "6 PAC", "kodeBarang": "21010104", "namaBarang": "NEW FIESTA BEEF RENDANG W RICE 320GR (PAC)", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "21010104" + }, + { + "kodeBarang": "JAKARTA UTARA IDN", + "namaBarang": "JAKARTA UTARA IDN", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "JAKARTA UTARA IDN" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang", + "namaBarang": "Bagian Penjualan", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "Bag. Pengeluaran Barang" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972285", + "noDO": "1659990584", + "noPO": "PO/26/0000241303", + "items": [ + { + "kodeBarang": "21010104", + "namaBarang": "Fiesta Beet Rendang W Rice 320G 6PC", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "JAKARTA UTARA IDN", + "namaBarang": "JAKARTA UTARA IDN", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang", + "namaBarang": "Bagian Penjualan", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "1691972285", + "noDO": "1659990584", + "noPO": "PO/26/0000241303", + "items": [ + { + "kodeBarang": "21010104", + "namaBarang": "NEW FIESTA BEEF RENDANG W RICE 320GR (PAC)", + "banyak": "1 BOX", + "jumlah": "6 PAC", "kodeBarangOriginal": "21010104" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN, JAKARTA UTARA, DKI JAKARTA (KANTIN CPI)", - "tanggal": "30 June 2026", "platTruk": "", - "orderUntuk": "PRIMA XPRESS - TOWN HALL ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -606,130 +1392,413 @@ "jumlah": "6 PAC", "kodeBarangOriginal": "21010104" } - ] + ], + "error": null }, { + "index": 11, "filename": "IMG_20260701_134555.jpg", - "status": "Success", - "tilt": "0.15", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0.15, + "unwarped": false, + "rawMarkdown": "IDONESIA IDK\n\nNo.1.\n\n04:59:54\n\nTanggal :\n\n## DELIVERY ORDER\n\nNo.SO : 30 June 2026\n\nNo. DO : 2271289510\n\nKepada Yth :\n\nNo. PO : 2272290022\n\nPO/26/0000241304\n\nOrder Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : DKI AREA\n\nJL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN.\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 14430\\nJAKARTA UTARABanyakJumlah
11048006PARTING 150 - 160 GR FRZ PACK\\nCOPY2BOX30 PAC ✓
Barang dikirim dalam keadaan baikJumlah
Truck No.\"Image\"\"\"Image\"\"230
Lembar 3 - Customer\"Image\"\"Bag. Pengeluaran BarangUTARA IDNBagian Penjualan
\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "2271289510", "noDO": "2272290022", "noPO": "PO/26/0000241304", - "noSO": "2271289510", "items": [ { - "banyak": "2 ", - "jumlah": "30 ", "kodeBarang": "11048006", "namaBarang": "BEBEK PARTING-NEW(*)", + "banyak": "2 BOX", + "jumlah": "30 PAC", + "kodeBarangOriginal": "11048006" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "", + "banyak": "2", + "jumlah": "30", + "kodeBarangOriginal": "Truck No." + }, + { + "kodeBarang": "Lembar 3 - Customer", + "namaBarang": "", + "banyak": "Bag. Pengeluaran Barang UTARA IDN", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Lembar 3 - Customer" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "2271289510", + "noDO": "2272290022", + "noPO": "PO/26/0000241304", + "items": [ + { + "kodeBarang": "11048006", + "namaBarang": "PARTING 150 - 160 GR FRZ PACK", + "banyak": "2 BOX", + "jumlah": "30 PAC" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "", + "banyak": "2", + "jumlah": "30" + }, + { + "kodeBarang": "Lembar 3 - Customer", + "namaBarang": "", + "banyak": "Bag. Pengeluaran Barang UTARA IDN", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "2271289510", + "noDO": "2272290022", + "noPO": "PO/26/0000241304", + "items": [ + { + "kodeBarang": "11048006", + "namaBarang": "BEBEK PARTING-NEW(*)", + "banyak": "2 BOX", + "jumlah": "30 PAC", "kodeBarangOriginal": "11048006" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "30 June 2026", "platTruk": "", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { "kodeBarang": "11048006", "namaBarang": "BEBEK PARTING-NEW(*)", - "banyak": "2 ", - "jumlah": "30 ", + "banyak": "2 BOX", + "jumlah": "30 PAC", "kodeBarangOriginal": "11048006" } - ] + ], + "error": null }, { + "index": 12, "filename": "IMG_20260701_134555~2.jpg", - "status": "Success", - "tilt": "0.22", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0.22, + "unwarped": false, + "rawMarkdown": "IDONESIA IDK\n\nNO. 1.\n\n04:59:54\n\nTanggal:\n\n## DELIVERY ORDER\n\nNo.SO : 30 June 2026\n\nNo. DO : 2271289510\n\nKepada Yth\n\nNo. PO : 2272290022\n\nPO/26/0000241304\n\nOrder Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : DKI AREA\n\nJL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN.\n\n\n
Kode BarangNama BarangJAKARTA UTARA. 14430\\nJAKARTA UTARABanyakJumlah
11048000PARTING 150 - 160 GR FRZ PACK\\nCOPY2BOX30 PAC ✓
\"Image\"\"
Barang dikirim dalam keadaan baik
Truck NoBARAT230
\"Image\"\"\"Image\"\"\"Image\"\"UTARA IDN
Lembar 3 - CustomerBagian Penjualan
\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "2271289510", "noDO": "2272290022", "noPO": "PO/26/0000241304", - "noSO": "2271289510", "items": [ { - "banyak": "2 BOX", - "jumlah": "30 PAC ✓", "kodeBarang": "11048000", "namaBarang": "PARTING 150 - 160 GR FRZ PACK", + "banyak": "2 BOX", + "jumlah": "30 PAC", + "kodeBarangOriginal": "11048000" + }, + { + "kodeBarang": "Truck No", + "namaBarang": "BARAT", + "banyak": "2 30", + "jumlah": "30", + "kodeBarangOriginal": "Truck No" + }, + { + "kodeBarang": "Lembar 3 - Customer", + "namaBarang": "Lembar 3 - Customer", + "banyak": "Lembar 3 - Customer Bagian Penjualan", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Lembar 3 - Customer" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "2271289510", + "noDO": "2272290022", + "noPO": "PO/26/0000241304", + "items": [ + { + "kodeBarang": "11048000", + "namaBarang": "PARTING 150 - 160 GR FRZ PACK", + "banyak": "2 BOX", + "jumlah": "30 PAC" + }, + { + "kodeBarang": "Truck No", + "namaBarang": "BARAT", + "banyak": "2 30", + "jumlah": "30" + }, + { + "kodeBarang": "Lembar 3 - Customer", + "namaBarang": "Lembar 3 - Customer", + "banyak": "Lembar 3 - Customer Bagian Penjualan", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "30 June 2026", + "noSO": "2271289510", + "noDO": "2272290022", + "noPO": "PO/26/0000241304", + "items": [ + { + "kodeBarang": "11048000", + "namaBarang": "PARTING 150 - 160 GR FRZ PACK", + "banyak": "2 BOX", + "jumlah": "30 PAC", "kodeBarangOriginal": "11048000" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "30 June 2026", "platTruk": "", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { "kodeBarang": "11048000", "namaBarang": "PARTING 150 - 160 GR FRZ PACK", "banyak": "2 BOX", - "jumlah": "30 PAC ✓", + "jumlah": "30 PAC", "kodeBarangOriginal": "11048000" } - ] + ], + "error": null }, { + "index": 13, "filename": "IMG_20260701_134646~2.jpg", - "status": "Success", - "tilt": "0.57", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0.57, + "unwarped": false, + "rawMarkdown": "## Purchase Order\n\n\n
Nomor P.O: PO/26/0000230199
: 22/06/2026
KAWASAKI INDUSTRI MODERN. BANTEN02:56:41Tanggal :
No. SO : 23 June 2026
No. DO : 1691960321
DELIVERY ORDERNo. PO : 1659980277
\n\nKepala Gudang\n\n00169133\n\nKepada Yth :\n\nOrder Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : DKI AREA\n\nJL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN.\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 14430\\nJAKARTA UTA RABanyakJumlah
11310014\\n11310024\\n11620056\\n11690053\\n11720055✓ Griller Size 2 ( 20 Ekor ) Frozen\\n✓ Griller Size A Frozen (900-1000 G) PC\\n✓ SBL Mitra 10 Kg\\n✓ SBB Mitra 10 Kg\\n✓ Full Wing Frozen Pack2KRG40 PC
2KRG40 PC
1BOX10 KG
1BOX10 KG
1BOX10 KG
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9427 UXT\\nPX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
Penerima Barang Tanda Tangan Supir\\nBag. Pengeluaran Barang
3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani
\n\n\n
COPY P.O SELALUPPN254,000.00
Total
Menyetujui
", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 June 2026", + "noSO": "1691960321", "noDO": "1659980277", "noPO": "PO/26/0000230199", - "noSO": "1691960321", "items": [ { - "banyak": "2 KRG", - "jumlah": "40 PC", "kodeBarang": "11310014", "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", "kodeBarangOriginal": "11310014" }, { - "banyak": "2 KRG", - "jumlah": "40 PC", "kodeBarang": "11310024", "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", "kodeBarangOriginal": "11310024" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11620056", "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11620056" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11690053", "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11690053" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11720055", "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11720055" + }, + { + "kodeBarang": "Truck No. B 9427 UXT", + "namaBarang": "Truck No. B 9427 UXT", + "banyak": "Truck No. B 9427 UXT", + "jumlah": "", + "kodeBarangOriginal": "Truck No. B 9427 UXT" + }, + { + "kodeBarang": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Truck No. B 9427 UXT", + "jumlah": "", + "kodeBarangOriginal": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN" + }, + { + "kodeBarang": "Penerima Barang Tanda Tangan Supir", + "namaBarang": "Penerima Barang Tanda Tangan Supir", + "banyak": "Penerima Barang Tanda Tangan Supir", + "jumlah": "", + "kodeBarangOriginal": "Penerima Barang Tanda Tangan Supir" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bag. Pengeluaran Barang Penerima Barang Tanda Tangan Supir", + "jumlah": "", + "kodeBarangOriginal": "Bag. Pengeluaran Barang" + }, + { + "kodeBarang": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "namaBarang": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "banyak": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "jumlah": "", + "kodeBarangOriginal": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani" + } + ], + "platTruk": "B 9427 UXT" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 June 2026", + "noSO": "1691960321", + "noDO": "1659980277", + "noPO": "PO/26/0000230199", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "✓ Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "✓ Griller Size A Frozen (900-1000 G) PC", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11620056", + "namaBarang": "✓ SBL Mitra 10 Kg", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11690053", + "namaBarang": "✓ SBB Mitra 10 Kg", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11720055", + "namaBarang": "✓ Full Wing Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No. B 9427 UXT", + "namaBarang": "Truck No. B 9427 UXT", + "banyak": "Truck No. B 9427 UXT", + "jumlah": "" + }, + { + "kodeBarang": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "namaBarang": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN", + "banyak": "PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Truck No. B 9427 UXT", + "jumlah": "" + }, + { + "kodeBarang": "Penerima Barang Tanda Tangan Supir", + "namaBarang": "Penerima Barang Tanda Tangan Supir", + "banyak": "Penerima Barang Tanda Tangan Supir", + "jumlah": "" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bag. Pengeluaran Barang Penerima Barang Tanda Tangan Supir", + "jumlah": "" + }, + { + "kodeBarang": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "namaBarang": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "banyak": "3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "jumlah": "" + } + ], + "platTruk": "B 9427 UXT" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 June 2026", + "noSO": "1691960321", + "noDO": "1659980277", + "noPO": "PO/26/0000230199", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11620056" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11720055" } ], - "alamat": "JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA", - "tanggal": "23 June 2026", "platTruk": "B 9427 UXT", - "orderUntuk": "PX HEAD OFFICE ANCOL", - "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "orderUntuk": "", + "alamat": "" }, "items": [ { @@ -767,81 +1836,197 @@ "jumlah": "10 KG", "kodeBarangOriginal": "11720055" } - ] + ], + "error": null }, { + "index": 14, "filename": "IMG_20260701_134810.jpg", - "status": "Success", - "tilt": "0.00", - "unwarped": "No", - "metadata": { + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "-\n\n\n
Kode BarangNama BarangBanyakJumlah
11140062\\n11150064\\n11310014\\n11600053\\n11650053\\n11750050Ambela 1 KG Frozen\\nHati 1 KG Frozen\\nGriller Size 2 ( 20 Ekor ) Frozen\\nBL Mitra 10 Kq\\nThighstick Frozen Pack\\nFillet Mitra 10 Kq1 KRG\\n1 KRG\\n3 KRG\\n1 BOX\\n1 BOX20 KG\\n20 KG\\n60 KG\\n10 KG\\n10 KG\\n10 KG
Jumlah65130
", + "layer1RawRegex": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", "noDO": "Not Found", "noPO": "Not Found", - "noSO": "Not Found", "items": [ { - "banyak": "1 KRG", - "jumlah": "20 PAC", "kodeBarang": "11140062", "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", "kodeBarangOriginal": "11140062" }, { - "banyak": "1 KRG", - "jumlah": "20 PAC", "kodeBarang": "11150064", "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", "kodeBarangOriginal": "11150064" }, { - "banyak": "3 KRG", - "jumlah": "60 PC", "kodeBarang": "11310014", "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", "kodeBarangOriginal": "11310014" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11600053", "namaBarang": "BONELESS LEG FROZEN 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11600053" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11650053", "namaBarang": "PAHA ATAS 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11650053" }, { - "banyak": "1 BOX", - "jumlah": "10 KG", "kodeBarang": "11750050", "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + }, + { + "kodeBarang": "", + "namaBarang": "65", + "banyak": "130", + "jumlah": "", + "kodeBarangOriginal": "" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", + "noDO": "Not Found", + "noPO": "Not Found", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "Ambela 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11150064", + "namaBarang": "Hati 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "3 KRG", + "jumlah": "60 KG" + }, + { + "kodeBarang": "11600053", + "namaBarang": "BL Mitra 10 Kq", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11650053", + "namaBarang": "Thighstick Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11750050", + "namaBarang": "Fillet Mitra 10 Kq", + "banyak": "1", + "jumlah": "10 KG" + }, + { + "kodeBarang": "", + "namaBarang": "65", + "banyak": "130", + "jumlah": "" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "Not Found", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "Not Found", + "noDO": "Not Found", + "noPO": "Not Found", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11600053", + "namaBarang": "BONELESS LEG FROZEN 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11600053" + }, + { + "kodeBarang": "11650053", + "namaBarang": "PAHA ATAS 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11650053" + }, + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", "kodeBarangOriginal": "11750050" } ], - "alamat": "", - "tanggal": "Not Found", - "platTruk": "N 1 KRG", + "platTruk": "", "orderUntuk": "", - "vendorInfo": "Not Found", - "customerInfo": "PT.PRIMAFOOD INTERNATIONAL" + "alamat": "" }, "items": [ { "kodeBarang": "11140062", "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", "banyak": "1 KRG", - "jumlah": "20 PAC", + "jumlah": "20 KG", "kodeBarangOriginal": "11140062" }, { "kodeBarang": "11150064", "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", "banyak": "1 KRG", - "jumlah": "20 PAC", + "jumlah": "20 KG", "kodeBarangOriginal": "11150064" }, { @@ -872,6 +2057,4168 @@ "jumlah": "10 KG", "kodeBarangOriginal": "11750050" } - ] + ], + "error": null + }, + { + "index": 15, + "filename": "Sample DO PFM-page-00001.jpg", + "status": "success", + "tilt": 0.08, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN ROKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n00:25:03\n\n.\n\nTanggal : 23 April 2026\n\nNo.SO : 1691879196\n\nNo. DO : 1659905109\n\n# DELIVERY ORDER\n\nKepada : Kepala Gudang\n\n00194611\n\nNo. PO : PO/26/0000150175\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
17210109FIESTA RTS BEEF BULGOGI 300G SPAC1 BOX8 PAC
ASLI
Barang dikirim dalam keadaan baikJumlah18
Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I \"Image\"\"
Penerima BarangBag. Pengeluaran BarangBagian Penjualan
\n\n
\"Image\"
\n\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN ROKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 April 2026", + "noSO": "1691879196", + "noDO": "1659905109", + "noPO": "PO/26/0000150175", + "items": [ + { + "kodeBarang": "17210109", + "namaBarang": "FIESTA RTS B/BULGOGI 300GR/PAC", + "banyak": "1 BOX", + "jumlah": "8 PAC", + "kodeBarangOriginal": "17210109" + }, + { + "kodeBarang": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "namaBarang": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "banyak": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "jumlah": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "kodeBarangOriginal": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I" + }, + { + "kodeBarang": "", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "" + } + ], + "platTruk": "B 9948 VCC" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN ROKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 April 2026", + "noSO": "1691879196", + "noDO": "1659905109", + "noPO": "PO/26/0000150175", + "items": [ + { + "kodeBarang": "17210109", + "namaBarang": "FIESTA RTS BEEF BULGOGI 300G SPAC", + "banyak": "1 BOX", + "jumlah": "8 PAC" + }, + { + "kodeBarang": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "namaBarang": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "banyak": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I", + "jumlah": "Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I" + }, + { + "kodeBarang": "", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "B 9948 VCC" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN ROKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "23 April 2026", + "noSO": "1691879196", + "noDO": "1659905109", + "noPO": "PO/26/0000150175", + "items": [ + { + "kodeBarang": "17210109", + "namaBarang": "FIESTA RTS B/BULGOGI 300GR/PAC", + "banyak": "1 BOX", + "jumlah": "8 PAC", + "kodeBarangOriginal": "17210109" + } + ], + "platTruk": "B 9948 VCC", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "17210109", + "namaBarang": "FIESTA RTS B/BULGOGI 300GR/PAC", + "banyak": "1 BOX", + "jumlah": "8 PAC", + "kodeBarangOriginal": "17210109" + } + ], + "error": null + }, + { + "index": 16, + "filename": "Sample DO PFM-page-00002.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n06:50:01\n\nKepada : Kepala Gudang\n\n00527820\n\nTanggal : 17 April 2026\n\nNo. SO : 1691871022\n\n## DELIVERY ORDER\n\nNo. DO : 1659897809\n\nNo. PO : PO/26/0000142266\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11110074\\n11310021Ceker 1 KG Frozen\\nGriller Size B Frozen (1000-1100 G) PC\\nASLI1 KRG\\n1 KRG20 KG\\n20 PC
Barang dikirim dalam keadaan baikJumlah2140
Truck No. B 9599 CXS\\nP M NEW BINTARO :\\nJURANGMANGGU TI\\n\"Image\"\"NTARO U \"Image\"\" Bag. Pengekaran BarangWH 01 / 01\\nZA NO 17 RT 01 RW011 KEL. Baglan Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "17 April 2026", + "noSO": "1691871022", + "noDO": "1659897809", + "noPO": "PO/26/0000142266", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "1 KRG", + "jumlah": "20 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "Truck No. B 9599 CXS", + "namaBarang": "NTARO U Bag. Pengekaran Barang", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "Truck No. B 9599 CXS" + }, + { + "kodeBarang": "P M NEW BINTARO :", + "namaBarang": "", + "banyak": "ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan", + "jumlah": "ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan", + "kodeBarangOriginal": "P M NEW BINTARO :" + }, + { + "kodeBarang": "JURANGMANGGU TI", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "JURANGMANGGU TI" + } + ], + "platTruk": "B 9599 CXS" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "17 April 2026", + "noSO": "1691871022", + "noDO": "1659897809", + "noPO": "PO/26/0000142266", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "Ceker 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11310021", + "namaBarang": "Griller Size B Frozen (1000-1100 G) PC", + "banyak": "1 KRG", + "jumlah": "20 PC" + }, + { + "kodeBarang": "Truck No. B 9599 CXS", + "namaBarang": "NTARO U Bag. Pengekaran Barang", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "P M NEW BINTARO :", + "namaBarang": "", + "banyak": "ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan", + "jumlah": "ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan" + }, + { + "kodeBarang": "JURANGMANGGU TI", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9599 CXS" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "17 April 2026", + "noSO": "1691871022", + "noDO": "1659897809", + "noPO": "PO/26/0000142266", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "1 KRG", + "jumlah": "20 PC", + "kodeBarangOriginal": "11310021" + } + ], + "platTruk": "B 9599 CXS", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "1 KRG", + "jumlah": "20 PC", + "kodeBarangOriginal": "11310021" + } + ], + "error": null + }, + { + "index": 17, + "filename": "Sample DO PFM-page-00003.jpg", + "status": "success", + "tilt": 0.14, + "unwarped": false, + "rawMarkdown": "PI KAWASAN INDUSTRI MODERN, INDONESIA TBK\n\nBANTEN\n\n07:02:48\n\nTanggal : 17.A0511.2026\n\nNo. SO : 1691870689\n\nKepada :.Kepala Gudang\n\nNo. DO : 1659897396\n\n00527857\n\nNo. PO : PO/26/0000142693\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\nJAKARTA UTARA\n\n\n
Kode BarangNama BarangBanyakJumlah
11310024\\n11640053✓ Griller Size A Frozen (900-1000 G) PC\\n✓ Bone In Leg Frozen Pack\\nASLI2\\n1040 PC\\n10 KG
Barang dikirim dalam keadaan baik5050
Truck No.B 9254 SCG\\nP M TAMAN DUTA CIBODAS / JL. DUTA RAYA E NG JAYA, PRIUK TANGWH 01 / 01\\nPERUM TAMAN CIBODAS, SANGIA
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1691870689", + "noDO": "1659897396", + "noPO": "PO/26/0000142693", + "items": [ + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11640053", + "namaBarang": "PAHA UTUH (1 KG)(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11640053" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "B 9254 SCG", + "banyak": "WH 01 / 01 PERUM TAMAN CIBODAS, SANGIA", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "Truck No." + }, + { + "kodeBarang": "", + "namaBarang": "P M TAMAN DUTA CIBODAS / JL. DUTA RAYA E NG JAYA, PRIUK TANG", + "banyak": "1", + "jumlah": "PERUM TAMAN CIBODAS, SANGIA", + "kodeBarangOriginal": "" + } + ], + "platTruk": "B 9254 SCG" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1691870689", + "noDO": "1659897396", + "noPO": "PO/26/0000142693", + "items": [ + { + "kodeBarang": "11310024", + "namaBarang": "✓ Griller Size A Frozen (900-1000 G) PC", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11640053", + "namaBarang": "✓ Bone In Leg Frozen Pack", + "banyak": "10 BAG", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "B 9254 SCG", + "banyak": "WH 01 / 01 PERUM TAMAN CIBODAS, SANGIA", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "", + "namaBarang": "P M TAMAN DUTA CIBODAS / JL. DUTA RAYA E NG JAYA, PRIUK TANG", + "banyak": "1", + "jumlah": "PERUM TAMAN CIBODAS, SANGIA" + } + ], + "platTruk": "B 9254 SCG" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1691870689", + "noDO": "1659897396", + "noPO": "PO/26/0000142693", + "items": [ + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11640053", + "namaBarang": "PAHA UTUH (1 KG)(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11640053" + } + ], + "platTruk": "B 9254 SCG", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11640053", + "namaBarang": "PAHA UTUH (1 KG)(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11640053" + } + ], + "error": null + }, + { + "index": 18, + "filename": "Sample DO PFM-page-00004.jpg", + "status": "success", + "tilt": 0.02, + "unwarped": false, + "rawMarkdown": "
\"Image\"
\n\n\nPT. CHAROEN POKPHANO INDONESIA TBK\n\nKAWASAN INDUSTRI MOOERN,\n\nBANTEN\n\n06:29:25\n\nTanggal : 14 April 2026\n\nNo.SO : 1691865548\n\nNo. DO : 1659892421\n\n00005997\n\nKepada : Kepala Gudang\n\nNo.PO : PO/26/0000137547\n\n# DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN.\n\nJAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11310014\\n11310024\\n11710051Griller Size 2 ( 20 Ekor ) Frozen\\nGriller Size A Frozen (900-1000 G) PC\\nBone In Breast Frozen Pack3\\n7\\n1060 PC\\n140 PC\\n10 KG
Barang dikirim dalam keadaan baikJumlah210210
Truck No. B 9053 VCF\\nPANTASMITA | JL ARIA SANTIKA, SASHITA, KARA \"Image\"\"\\nTanda Tangan Supir Bag. Pengeluaran Barang\"Image\"\"WH 01 / 01\\nTANGERANG, IDN15113 IDNBagian Penjualan
\n\nLombar 1: Customer\n\nBagian Penjualan\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa senggahan, segala CLAIM atas kekurangan barang tidak dapat kami taryani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHANO INDONESIA TBK\nKAWASAN INDUSTRI MOOERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "14 April 2026", + "noSO": "1691865548", + "noDO": "1659892421", + "noPO": "PO/26/0000137547", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "7 KRG", + "jumlah": "140 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "Truck No. B 9053 VCF", + "namaBarang": "", + "banyak": "WH 01 / 01", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Truck No. B 9053 VCF" + }, + { + "kodeBarang": "PANTASMITA | JL ARIA SANTIKA, SASHITA, KARA", + "namaBarang": "", + "banyak": "TANGERANG, IDN15113 IDN", + "jumlah": "", + "kodeBarangOriginal": "PANTASMITA | JL ARIA SANTIKA, SASHITA, KARA" + }, + { + "kodeBarang": "Tanda Tangan Supir Bag. Pengeluaran Barang", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "Tanda Tangan Supir Bag. Pengeluaran Barang" + } + ], + "platTruk": "B 9053 VCF" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHANO INDONESIA TBK\nKAWASAN INDUSTRI MOOERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "14 April 2026", + "noSO": "1691865548", + "noDO": "1659892421", + "noPO": "PO/26/0000137547", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "3 KRG", + "jumlah": "60 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen (900-1000 G) PC", + "banyak": "7 KRG", + "jumlah": "140 PC" + }, + { + "kodeBarang": "11710051", + "namaBarang": "Bone In Breast Frozen Pack", + "banyak": "10", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No. B 9053 VCF", + "namaBarang": "", + "banyak": "WH 01 / 01", + "jumlah": "Bagian Penjualan" + }, + { + "kodeBarang": "PANTASMITA | JL ARIA SANTIKA, SASHITA, KARA", + "namaBarang": "", + "banyak": "TANGERANG, IDN15113 IDN", + "jumlah": "" + }, + { + "kodeBarang": "Tanda Tangan Supir Bag. Pengeluaran Barang", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9053 VCF" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHANO INDONESIA TBK\nKAWASAN INDUSTRI MOOERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "14 April 2026", + "noSO": "1691865548", + "noDO": "1659892421", + "noPO": "PO/26/0000137547", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "7 KRG", + "jumlah": "140 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + } + ], + "platTruk": "B 9053 VCF", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "7 KRG", + "jumlah": "140 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + } + ], + "error": null + }, + { + "index": 19, + "filename": "Sample DO PFM-page-00005.jpg", + "status": "success", + "tilt": 0.04, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n02:34:54\n\nTanggal : 09 April 2026\n\n\n\nNo. SO : 1691859106\n\n'No. DO : 1659886692\n\nNo. PO : P0/26/0000131178\n\n## DELIVERY ORDER\n\nKepada :.Kepala Gudang\n\n00506101\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL. BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
12010112865 Fiesta Chicken Nugget 400G ✓1BOX12 PAC
12010124913 FIESTA CHEESY CHICKEN WITH BROCCOLI ✓1BOX12 PAC
12010509829 Champ Crunchy Nugget 450 G ✓1BOX10 PAC
12010521927 CHAMP NUGGET HOTZZ LEVEL 5 450 G ✓1BOX12 PAC
12010606823 CHAMP CRUNCHY NUGGET 225G ✓1BOX25 PAC
12030101864 Fiesta Stikie 400G ✓1BOX12 PAC
13010514299 Champ Chicken Sausage 1 Kg FR ✓1BOX10 PAC
13070502302 Champ Beef Sausage 375 GR Fr ✓1BOX24 PAC
Barang dikirim dalam keadaan baikJumlah8117
Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN \"Image\"\"
Penerima BarangTanda Tangan SupirBag. Pengeluaran Baraijualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "09 April 2026", + "noSO": "1691859106", + "noDO": "1659886692", + "noPO": "PO/26/0000131178", + "items": [ + { + "kodeBarang": "12010112", + "namaBarang": "FIESTA CHICKEN NUGGET 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010112" + }, + { + "kodeBarang": "12010124", + "namaBarang": "FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010124" + }, + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010521", + "namaBarang": "CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010521" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12030101", + "namaBarang": "FIESTA STIKIE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12030101" + }, + { + "kodeBarang": "13010514", + "namaBarang": "CHAMP CHICK SSG 1000 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13010514" + }, + { + "kodeBarang": "13070502", + "namaBarang": "CHAMP BEEF SSG SERBAGUNA 375GR", + "banyak": "1 BOX", + "jumlah": "24 PAC", + "kodeBarangOriginal": "13070502" + }, + { + "kodeBarang": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "namaBarang": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "banyak": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "jumlah": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "kodeBarangOriginal": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN" + } + ], + "platTruk": "B 9260 BXT" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "09 April 2026", + "noSO": "1691859106", + "noDO": "1659886692", + "noPO": "PO/26/0000131178", + "items": [ + { + "kodeBarang": "12010112", + "namaBarang": "865 Fiesta Chicken Nugget 400G ✓", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010124", + "namaBarang": "913 FIESTA CHEESY CHICKEN WITH BROCCOLI ✓", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010509", + "namaBarang": "829 Champ Crunchy Nugget 450 G ✓", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "12010521", + "namaBarang": "927 CHAMP NUGGET HOTZZ LEVEL 5 450 G ✓", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010606", + "namaBarang": "823 CHAMP CRUNCHY NUGGET 225G ✓", + "banyak": "1 BOX", + "jumlah": "25 PAC" + }, + { + "kodeBarang": "12030101", + "namaBarang": "864 Fiesta Stikie 400G ✓", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "13010514", + "namaBarang": "299 Champ Chicken Sausage 1 Kg FR ✓", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "13070502", + "namaBarang": "302 Champ Beef Sausage 375 GR Fr ✓", + "banyak": "1 BOX", + "jumlah": "24 PAC" + }, + { + "kodeBarang": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "namaBarang": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "banyak": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN", + "jumlah": "Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN" + } + ], + "platTruk": "B 9260 BXT" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "09 April 2026", + "noSO": "1691859106", + "noDO": "1659886692", + "noPO": "PO/26/0000131178", + "items": [ + { + "kodeBarang": "12010112", + "namaBarang": "FIESTA CHICKEN NUGGET 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010112" + }, + { + "kodeBarang": "12010124", + "namaBarang": "FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010124" + }, + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010521", + "namaBarang": "CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010521" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12030101", + "namaBarang": "FIESTA STIKIE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12030101" + }, + { + "kodeBarang": "13010514", + "namaBarang": "CHAMP CHICK SSG 1000 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13010514" + }, + { + "kodeBarang": "13070502", + "namaBarang": "CHAMP BEEF SSG SERBAGUNA 375GR", + "banyak": "1 BOX", + "jumlah": "24 PAC", + "kodeBarangOriginal": "13070502" + } + ], + "platTruk": "B 9260 BXT", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "12010112", + "namaBarang": "FIESTA CHICKEN NUGGET 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010112" + }, + { + "kodeBarang": "12010124", + "namaBarang": "FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010124" + }, + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010521", + "namaBarang": "CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010521" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12030101", + "namaBarang": "FIESTA STIKIE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12030101" + }, + { + "kodeBarang": "13010514", + "namaBarang": "CHAMP CHICK SSG 1000 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13010514" + }, + { + "kodeBarang": "13070502", + "namaBarang": "CHAMP BEEF SSG SERBAGUNA 375GR", + "banyak": "1 BOX", + "jumlah": "24 PAC", + "kodeBarangOriginal": "13070502" + } + ], + "error": null + }, + { + "index": 20, + "filename": "Sample DO PFM-page-00006.jpg", + "status": "success", + "tilt": 3.25, + "unwarped": true, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK 6\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\nTbk 6 04:09:04\n\nKepada : Kepala Gudang\n\nTanggal : 16 April 2026\n\n00343957\n\nNo. SO : 1691868563\n\nNo. DO : 1659895333\n\n## DELIVERY ORDER\n\nNo. PO : PO/26/0000140625\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\nTAKARTA UTADA\n\n\n
Kode BarangNama BarangBanyakJumlah
11140062Ampela 1 KG Frozen2020 KG ✓
11310014Griller Size 2 ( 20 Ekor ) Frozen5100 PC ✓
11310024Griller Size A Frozen (900-1000 G) PC240 PC ✓
11660050Drumstick Frozen Pack1010 KG ✓
Barang dikirim dalam keadaan baikJumlah170170
B 9365 AI\\nTRUCK NO. PM REMPOA | JL. IDN \"Image\"\"REMPOA RAYA), C \"Image\"\"WH 01 / 01\\nG SELATAN, IDN15A12
Penerima BarangBag. Pengeluaran BarangBagian Penjualan
\n\n
\"Image\"
\n\n\nREMPOA\n\nembar 1 : Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\nDipindai dengan", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK 6\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691868563", + "noDO": "1659895333", + "noPO": "PO/26/0000140625", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "20 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "B 9365 AI", + "namaBarang": "REMPOA RAYA), C", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "B 9365 AI" + }, + { + "kodeBarang": "TRUCK NO. PM REMPOA | JL. IDN", + "namaBarang": "", + "banyak": "G SELATAN, IDN15A12", + "jumlah": "G SELATAN, IDN15A12", + "kodeBarangOriginal": "TRUCK NO. PM REMPOA | JL. IDN" + }, + { + "kodeBarang": "", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "" + } + ], + "platTruk": "B 9365 AI" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK 6\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691868563", + "noDO": "1659895333", + "noPO": "PO/26/0000140625", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "Ampela 1 KG Frozen", + "banyak": "20", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "5 KRG", + "jumlah": "100 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen (900-1000 G) PC", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11660050", + "namaBarang": "Drumstick Frozen Pack", + "banyak": "10", + "jumlah": "10 KG" + }, + { + "kodeBarang": "B 9365 AI", + "namaBarang": "REMPOA RAYA), C", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "TRUCK NO. PM REMPOA | JL. IDN", + "namaBarang": "", + "banyak": "G SELATAN, IDN15A12", + "jumlah": "G SELATAN, IDN15A12" + }, + { + "kodeBarang": "", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "B 9365 AI" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK 6\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691868563", + "noDO": "1659895333", + "noPO": "PO/26/0000140625", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "20 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + } + ], + "platTruk": "B 9365 AI", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "20 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + } + ], + "error": null + }, + { + "index": 21, + "filename": "Sample DO PFM-page-00007.jpg", + "status": "success", + "tilt": 0.18, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN\n\n05:54:31 / 1 of Tanggal : 16 April 2026\n\nNo. SO : 1691869400\n\nNo. DO : 1659896184\n\nNo. PO : PO/26/0000140731\n\nKepada : Kepala Gudang\n\n00527181\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
12010111\\n12010509\\n12010511\\n12010512\\n12010606\\n12012202\\n12030101\\n12060104830 Fiesta Crispy Bubble Nugget 400 G\\n829 Champ Crunchy Nugget 450 G\\n887 Champ Nagat Awam Kombinasi 450 G\\n888 Champ Nagat Ayah Kombinasi 900 G\\n823 CHAMP CRUNCHY NUGGET 225G\\n749 Asimo Nagat Kombinasi 1000 Gr\\n864 Fiesta Stikie 400G\\n868 FIESTA KARAGE 400Gr1 ✓ BOX\\n1 ✓ BOX\\n1 ✓ BOX\\n1 ✓ BOX\\n1 ✓ BOX\\n1 ✓ BOX12 PAC\\n10 PAC\\n12 PAC\\n6 PAC\\n25 PAC\\n5 PAC\\n12 PAC\\n12 PAC
Barang dikirim dalam keadaan baikJumlah
\"Image\"\"XT\\nTORE - PM WARUNG JATI TIMUR RAYA ; KALIBATA KEC\"Image\"\"WH 01 / 01\\nI TIMUR NO 26 RT.07 RM.
Tanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691869400", + "noDO": "1659896184", + "noPO": "PO/26/0000140731", + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "FIESTA CRISPY BUBBLE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010111" + }, + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010511", + "namaBarang": "CHAMP NUGGET AYAM 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010511" + }, + { + "kodeBarang": "12010512", + "namaBarang": "CHAMP NUGGET AYAM 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "12010512" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12012202", + "namaBarang": "ASIMO NUGGET KOMBINASI 1 KG/PAC", + "banyak": "1 BOX", + "jumlah": "5 PAC", + "kodeBarangOriginal": "12012202" + }, + { + "kodeBarang": "12030101", + "namaBarang": "FIESTA STIKIE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12030101" + }, + { + "kodeBarang": "12060104", + "namaBarang": "FIESTA KARAGE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12060104" + }, + { + "kodeBarang": "", + "namaBarang": "XT", + "banyak": "1", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "", + "namaBarang": "TORE - PM WARUNG JATI TIMUR RAYA ; KALIBATA KEC", + "banyak": "1", + "jumlah": "I TIMUR NO 26 RT.07 RM.", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "", + "kodeBarangOriginal": "" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691869400", + "noDO": "1659896184", + "noPO": "PO/26/0000140731", + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "830 Fiesta Crispy Bubble Nugget 400 G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010509", + "namaBarang": "829 Champ Crunchy Nugget 450 G", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "12010511", + "namaBarang": "887 Champ Nagat Awam Kombinasi 450 G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010512", + "namaBarang": "888 Champ Nagat Ayah Kombinasi 900 G", + "banyak": "1 BOX", + "jumlah": "6 PAC" + }, + { + "kodeBarang": "12010606", + "namaBarang": "823 CHAMP CRUNCHY NUGGET 225G", + "banyak": "1 BOX", + "jumlah": "25 PAC" + }, + { + "kodeBarang": "12012202", + "namaBarang": "749 Asimo Nagat Kombinasi 1000 Gr", + "banyak": "1 BOX", + "jumlah": "5 PAC" + }, + { + "kodeBarang": "12030101", + "namaBarang": "864 Fiesta Stikie 400G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12060104", + "namaBarang": "868 FIESTA KARAGE 400Gr", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "", + "namaBarang": "XT", + "banyak": "1", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "", + "namaBarang": "TORE - PM WARUNG JATI TIMUR RAYA ; KALIBATA KEC", + "banyak": "1", + "jumlah": "I TIMUR NO 26 RT.07 RM." + }, + { + "kodeBarang": "", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691869400", + "noDO": "1659896184", + "noPO": "PO/26/0000140731", + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "FIESTA CRISPY BUBBLE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010111" + }, + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010511", + "namaBarang": "CHAMP NUGGET AYAM 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010511" + }, + { + "kodeBarang": "12010512", + "namaBarang": "CHAMP NUGGET AYAM 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "12010512" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12012202", + "namaBarang": "ASIMO NUGGET KOMBINASI 1 KG/PAC", + "banyak": "1 BOX", + "jumlah": "5 PAC", + "kodeBarangOriginal": "12012202" + }, + { + "kodeBarang": "12030101", + "namaBarang": "FIESTA STIKIE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12030101" + }, + { + "kodeBarang": "12060104", + "namaBarang": "FIESTA KARAGE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12060104" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "FIESTA CRISPY BUBBLE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010111" + }, + { + "kodeBarang": "12010509", + "namaBarang": "CHAMP CRUNCHY NUGGET 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12010509" + }, + { + "kodeBarang": "12010511", + "namaBarang": "CHAMP NUGGET AYAM 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010511" + }, + { + "kodeBarang": "12010512", + "namaBarang": "CHAMP NUGGET AYAM 900 GR/PAC", + "banyak": "1 BOX", + "jumlah": "6 PAC", + "kodeBarangOriginal": "12010512" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12012202", + "namaBarang": "ASIMO NUGGET KOMBINASI 1 KG/PAC", + "banyak": "1 BOX", + "jumlah": "5 PAC", + "kodeBarangOriginal": "12012202" + }, + { + "kodeBarang": "12030101", + "namaBarang": "FIESTA STIKIE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12030101" + }, + { + "kodeBarang": "12060104", + "namaBarang": "FIESTA KARAGE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12060104" + } + ], + "error": null + }, + { + "index": 22, + "filename": "Sample DO PFM-page-00008.jpg", + "status": "success", + "tilt": 0.17, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN\n\n06:19:13\n\nTanggal : 11 May 2026\n\nNo. SO : 1691903313\n\n## DELIVERY ORDER\n\nNo. DO : 1659927197\n\n00194641\n\nNo. PO : PO/26/0000172403\n\nKepada : Kepala Gudang\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL. BARAT VIII/1, ANCOL, PADEMANGAN,\n\nJAKARTA UTARA, 14430\n\n\n\n\n
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
12012501\\n12030403\\n15010101600 Akumo Chicken Naget 250 Gr\\n065 Golden Fiesta Stikie w Swt Chl Sc 50\\n901 Fiesta Frenchy Shoestring 500 GR1\\n1\\n1BOX\\nBOX\\nBOX20 PAC\\n10 PAC\\n12 PAC
Barang dikirim dalam keadaan baikJumlah342
Truck No. B 9683 VCF\\nPM RAWA BUNTU | JL.F \"Image\"\" JTARA BLOK UA NO 16 PT. 2 \"Image\"\" N. SERP\\nPenerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "11 May 2026", + "noSO": "1691903313", + "noDO": "1659927197", + "noPO": "PO/26/0000172403", + "items": [ + { + "kodeBarang": "12012501", + "namaBarang": "AKUMO CHICKEN NAGET 250 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", + "kodeBarangOriginal": "12012501" + }, + { + "kodeBarang": "12030403", + "namaBarang": "GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12030403" + }, + { + "kodeBarang": "15010101", + "namaBarang": "FIESTA SHOESTRING 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15010101" + }, + { + "kodeBarang": "Truck No. B 9683 VCF", + "namaBarang": "", + "banyak": "Bag. Pengeluaran Barang Bagian Penjualan", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Truck No. B 9683 VCF" + }, + { + "kodeBarang": "PM RAWA BUNTU | JL.F JTARA BLOK UA NO 16 PT. 2 N. SERP", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "PM RAWA BUNTU | JL.F JTARA BLOK UA NO 16 PT. 2 N. SERP" + } + ], + "platTruk": "B 9683 VCF" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "11 May 2026", + "noSO": "1691903313", + "noDO": "1659927197", + "noPO": "PO/26/0000172403", + "items": [ + { + "kodeBarang": "12012501", + "namaBarang": "600 Akumo Chicken Naget 250 Gr", + "banyak": "1 BOX", + "jumlah": "20 PAC" + }, + { + "kodeBarang": "12030403", + "namaBarang": "065 Golden Fiesta Stikie w Swt Chl Sc 50", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "15010101", + "namaBarang": "901 Fiesta Frenchy Shoestring 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "Truck No. B 9683 VCF", + "namaBarang": "", + "banyak": "Bag. Pengeluaran Barang Bagian Penjualan", + "jumlah": "Bagian Penjualan" + }, + { + "kodeBarang": "PM RAWA BUNTU | JL.F JTARA BLOK UA NO 16 PT. 2 N. SERP", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9683 VCF" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "11 May 2026", + "noSO": "1691903313", + "noDO": "1659927197", + "noPO": "PO/26/0000172403", + "items": [ + { + "kodeBarang": "12012501", + "namaBarang": "AKUMO CHICKEN NAGET 250 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", + "kodeBarangOriginal": "12012501" + }, + { + "kodeBarang": "12030403", + "namaBarang": "GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12030403" + }, + { + "kodeBarang": "15010101", + "namaBarang": "FIESTA SHOESTRING 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15010101" + } + ], + "platTruk": "B 9683 VCF", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "12012501", + "namaBarang": "AKUMO CHICKEN NAGET 250 GR", + "banyak": "1 BOX", + "jumlah": "20 PAC", + "kodeBarangOriginal": "12012501" + }, + { + "kodeBarang": "12030403", + "namaBarang": "GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12030403" + }, + { + "kodeBarang": "15010101", + "namaBarang": "FIESTA SHOESTRING 500 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15010101" + } + ], + "error": null + }, + { + "index": 23, + "filename": "Sample DO PFM-page-00009.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA\n\nKAWASAN INDUSTRI KODERN, BANTEN\n\n05:05:45\n\nKepada : Kepala Gudang\n\n00222419\n\nTanggal : 05 May 2026\n\nNo. SO : 1691895167\n\nNo. DO : 1659919748\n\n## DELIVERY ORDER\n\nNo. PO : PO/26/0000164942\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA. 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
12010111\\n12010129\\n12010606\\n12060104\\n15040102830 Fiesta Crispy Bubble Mugget 400 G\\n947 Fiesta Cheesy Bambo Chicken Mugget 4\\n823 CHAMP CRUMING COUT 225G\\n868 FIESTA KAMAL ACOU1 BOX\\n1 BOX\\n1 BOX\\n1 BOX12 PAC\\n12 PAC\\n25 PAC\\n12 PAC\\n12 PAC
Barang dikirim dalam keadaan baikJumlah573
Truck No. B 9042 VCC\\nMOTHER STORE - PM WARUNG JATI TIMUR R\\n04 KEL. KALIBATA KEC\\nMURK KIDS UNGGAS\\nHargas\\nRenerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA\nKAWASAN INDUSTRI KODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "05 May 2026", + "noSO": "1691895167", + "noDO": "1659919748", + "noPO": "PO/26/0000164942", + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "FIESTA CRISPY BUBBLE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010111" + }, + { + "kodeBarang": "12010129", + "namaBarang": "FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010129" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12060104", + "namaBarang": "FIESTA KARAGE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12060104" + }, + { + "kodeBarang": "15040102", + "namaBarang": "FIESTA BATTER COATED 1000 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15040102" + }, + { + "kodeBarang": "Truck No. B 9042 VCC", + "namaBarang": "", + "banyak": "Bag. Pengeluaran Barang", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Truck No. B 9042 VCC" + }, + { + "kodeBarang": "MOTHER STORE - PM WARUNG JATI TIMUR R", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "MOTHER STORE - PM WARUNG JATI TIMUR R" + }, + { + "kodeBarang": "04 KEL. KALIBATA KEC", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "04 KEL. KALIBATA KEC" + }, + { + "kodeBarang": "MURK KIDS UNGGAS", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "MURK KIDS UNGGAS" + }, + { + "kodeBarang": "Hargas", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "Hargas" + }, + { + "kodeBarang": "Renerima Barang", + "namaBarang": "", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "Renerima Barang" + } + ], + "platTruk": "B 9042 VCC" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA\nKAWASAN INDUSTRI KODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "05 May 2026", + "noSO": "1691895167", + "noDO": "1659919748", + "noPO": "PO/26/0000164942", + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "830 Fiesta Crispy Bubble Mugget 400 G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010129", + "namaBarang": "947 Fiesta Cheesy Bambo Chicken Mugget 4", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12010606", + "namaBarang": "823 CHAMP CRUMING COUT 225G", + "banyak": "1 BOX", + "jumlah": "25 PAC" + }, + { + "kodeBarang": "12060104", + "namaBarang": "868 FIESTA KAMAL ACOU", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "15040102", + "namaBarang": "", + "banyak": "1", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "Truck No. B 9042 VCC", + "namaBarang": "", + "banyak": "Bag. Pengeluaran Barang", + "jumlah": "Bagian Penjualan" + }, + { + "kodeBarang": "MOTHER STORE - PM WARUNG JATI TIMUR R", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "04 KEL. KALIBATA KEC", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "MURK KIDS UNGGAS", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "Hargas", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "Renerima Barang", + "namaBarang": "", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9042 VCC" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA\nKAWASAN INDUSTRI KODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "05 May 2026", + "noSO": "1691895167", + "noDO": "1659919748", + "noPO": "PO/26/0000164942", + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "FIESTA CRISPY BUBBLE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010111" + }, + { + "kodeBarang": "12010129", + "namaBarang": "FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010129" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12060104", + "namaBarang": "FIESTA KARAGE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12060104" + }, + { + "kodeBarang": "15040102", + "namaBarang": "FIESTA BATTER COATED 1000 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15040102" + } + ], + "platTruk": "B 9042 VCC", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "12010111", + "namaBarang": "FIESTA CRISPY BUBBLE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010111" + }, + { + "kodeBarang": "12010129", + "namaBarang": "FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010129" + }, + { + "kodeBarang": "12010606", + "namaBarang": "CHAMP CRUNCHY NUGGET 225 GR/PAC", + "banyak": "1 BOX", + "jumlah": "25 PAC", + "kodeBarangOriginal": "12010606" + }, + { + "kodeBarang": "12060104", + "namaBarang": "FIESTA KARAGE 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12060104" + }, + { + "kodeBarang": "15040102", + "namaBarang": "FIESTA BATTER COATED 1000 GR", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "15040102" + } + ], + "error": null + }, + { + "index": 24, + "filename": "Sample DO PFM-page-00010.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHARQEN WOKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n00:11:04\n\nTanggal : 06 May 2026\n\n\n\nNo. SO : 1691895765\n\nKepada : Kepala Gudang\n\nNo. DO : 1659920402\n\n00118887\n\nNo. PO : PO/26/0000166040\n\n# DELIVERY ORDER\n\nKepada Yth : PT PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN; JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
11310013\\n11310014\\n11310021\\n11310024Griller Size 1 ( 30 Ekor ) Frozen\\nGriller Size 2 ( 20 Ekor ) Frozen\\nGriller Size B ( Frozen (1000-1100 G) PC\\nGriller Size A (Frozen (900-1000 G) PC)3\\n3\\n5\\n10KRG\\nKRG\\nKRG90 PC\\n60 PC\\n100 PC\\n200 PC
Barang dikirim dalam keadaan baikJumlah450450
Truck No. B 9260 VCF\\nPASAR PARUNG BOGOR | JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K\\nWARU KEC, PARUNG \"Image\"\"\\nTanda Tangan SupirBag. Pengeluaran Barang01\\n01\\n01\\nBagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layar\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHARQEN WOKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "06 May 2026", + "noSO": "1691895765", + "noDO": "1659920402", + "noPO": "PO/26/0000166040", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "3 KRG", + "jumlah": "90 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "10 KRG", + "jumlah": "200 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "Truck No. B 9260 VCF", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "01", + "jumlah": "01", + "kodeBarangOriginal": "Truck No. B 9260 VCF" + }, + { + "kodeBarang": "PASAR PARUNG BOGOR | JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K", + "namaBarang": "", + "banyak": "01", + "jumlah": "01", + "kodeBarangOriginal": "PASAR PARUNG BOGOR | JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K" + }, + { + "kodeBarang": "WARU KEC, PARUNG", + "namaBarang": "", + "banyak": "01", + "jumlah": "01", + "kodeBarangOriginal": "WARU KEC, PARUNG" + } + ], + "platTruk": "B 9260 VCF" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHARQEN WOKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "06 May 2026", + "noSO": "1691895765", + "noDO": "1659920402", + "noPO": "PO/26/0000166040", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "Griller Size 1 ( 30 Ekor ) Frozen", + "banyak": "3 KRG", + "jumlah": "90 PC" + }, + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "3 KRG", + "jumlah": "60 PC" + }, + { + "kodeBarang": "11310021", + "namaBarang": "Griller Size B ( Frozen (1000-1100 G) PC", + "banyak": "5 KRG", + "jumlah": "100 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A (Frozen (900-1000 G) PC)", + "banyak": "10 KRG", + "jumlah": "200 PC" + }, + { + "kodeBarang": "Truck No. B 9260 VCF", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "01", + "jumlah": "01" + }, + { + "kodeBarang": "PASAR PARUNG BOGOR | JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K", + "namaBarang": "", + "banyak": "01", + "jumlah": "01" + }, + { + "kodeBarang": "WARU KEC, PARUNG", + "namaBarang": "", + "banyak": "01", + "jumlah": "01" + } + ], + "platTruk": "B 9260 VCF" + }, + "layer3Final": { + "vendorInfo": "PT. CHARQEN WOKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "06 May 2026", + "noSO": "1691895765", + "noDO": "1659920402", + "noPO": "PO/26/0000166040", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "3 KRG", + "jumlah": "90 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "10 KRG", + "jumlah": "200 PC", + "kodeBarangOriginal": "11310024" + } + ], + "platTruk": "B 9260 VCF", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "3 KRG", + "jumlah": "90 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "10 KRG", + "jumlah": "200 PC", + "kodeBarangOriginal": "11310024" + } + ], + "error": null + }, + { + "index": 25, + "filename": "Sample DO PFM-page-00011.jpg", + "status": "success", + "tilt": 15.19, + "unwarped": true, + "rawMarkdown": "KAWASAN INDUSTRI MODERN.\n\nKepada : Kepala Gudang\n\n00202207\n\n## DELIVERY ORDER\n\nTanggal : 3.2019.007731\n\nNo. SO : 1691896671\n\nNo. DO : 1659921089\n\nNo. PO : PO/26/0000166510\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\nJAKARTA UTADA\n\n\n
Kode BarangNama BarangBanyakJumlah
11310014✓ Griller Size 2 ( 20 Ekor ) Frozen5 KRG100 PC
11310018✓ Griller (PR) Size 1 Friz1 KRG30 PC
11310024✓ Griller Size A Frozen (900-1000 G) PC5 KRG100 PC
11640053✓ Bone In Leg ASLI1 80X10 KG
11660050✓ Drumstick Frozen Pack1 80X10 KG
11710051✓ Bone In Breast Frozen Pack1 80X10 KG
11750050✓ fillet Mitra 10 Kg1 80X10 KG
Barang dikirim dalam keadaan baikJumlah234270
\"Image\"\" ENTRA \"Image\"\" \"Image\"\" WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan
\n\nembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\nDinindoi dengan", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1691896671", + "noDO": "1659921089", + "noPO": "PO/26/0000166510", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310018", + "namaBarang": "AYAM SIZE 1 PR FROZEN(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11310018" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11640053", + "namaBarang": "PAHA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11640053" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + }, + { + "kodeBarang": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "namaBarang": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "banyak": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "jumlah": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "kodeBarangOriginal": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1691896671", + "noDO": "1659921089", + "noPO": "PO/26/0000166510", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "✓ Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "5 KRG", + "jumlah": "100 PC" + }, + { + "kodeBarang": "11310018", + "namaBarang": "✓ Griller (PR) Size 1 Friz", + "banyak": "1 KRG", + "jumlah": "30 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "✓ Griller Size A Frozen (900-1000 G) PC", + "banyak": "5 KRG", + "jumlah": "100 PC" + }, + { + "kodeBarang": "11640053", + "namaBarang": "✓ Bone In Leg ASLI", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11660050", + "namaBarang": "✓ Drumstick Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11710051", + "namaBarang": "✓ Bone In Breast Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11750050", + "namaBarang": "✓ fillet Mitra 10 Kg", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "namaBarang": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "banyak": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan", + "jumlah": "ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1691896671", + "noDO": "1659921089", + "noPO": "PO/26/0000166510", + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310018", + "namaBarang": "AYAM SIZE 1 PR FROZEN(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11310018" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11640053", + "namaBarang": "PAHA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11640053" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310018", + "namaBarang": "AYAM SIZE 1 PR FROZEN(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11310018" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11640053", + "namaBarang": "PAHA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11640053" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + } + ], + "error": null + }, + { + "index": 26, + "filename": "Sample DO PFM-page-00012.jpg", + "status": "success", + "tilt": 0.15, + "unwarped": false, + "rawMarkdown": "DI CHARGEN IDKCHANO INDONESIA TBK KAMASIN INDUSTRI AODERN BANTEN\n\n02:06:08\n\nKepada : Kepala Gudang\n\n## DELIVERY ORDER\n\nTanggal :\n\nNo. SO : 06 No. 2026\n\n00222864\n\nNo. DO : 1659920441\n\nNo. PO : PO/26/0000166127\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\n√\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANCAW, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangJAKARIA UTIABanyakJumlah
11140062Ampela 1 KG Frozen1KRG20 KG
11310014Griller Size 2 ( 20 Ekor ) Frozen4KRG80 PC
11310024Griller Size ( 900-1000 G) PC20KRG400 PC
11660050Drumstick Frozen Pack1BOX10 KG
Barang dikirim dalam keadaan baikJu482510
Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO \"Image\"\"WH 01 / 01\\nNO 16 KEL. PUTAT NUTU
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1659920441", + "noDO": "1659920441", + "noPO": "PO/26/0000166127", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "4 KRG", + "jumlah": "80 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "20 KRG", + "jumlah": "400 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "", + "namaBarang": "Ju", + "banyak": "482", + "jumlah": "510", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO", + "namaBarang": "Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO" + } + ], + "platTruk": "B 9417 VOC" + }, + "layer2Sanitized": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1659920441", + "noDO": "1659920441", + "noPO": "PO/26/0000166127", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "Ampela 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11310014", + "namaBarang": "Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "4 KRG", + "jumlah": "80 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size ( 900-1000 G) PC", + "banyak": "20 KRG", + "jumlah": "400 PC" + }, + { + "kodeBarang": "11660050", + "namaBarang": "Drumstick Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "", + "namaBarang": "Ju", + "banyak": "482", + "jumlah": "510" + }, + { + "kodeBarang": "Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO", + "namaBarang": "Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01" + } + ], + "platTruk": "B 9417 VOC" + }, + "layer3Final": { + "vendorInfo": "PT.PRIMAFOOD INTERNATIONAL", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "Not Found", + "noSO": "1659920441", + "noDO": "1659920441", + "noPO": "PO/26/0000166127", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "4 KRG", + "jumlah": "80 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "20 KRG", + "jumlah": "400 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + } + ], + "platTruk": "B 9417 VOC", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "4 KRG", + "jumlah": "80 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "20 KRG", + "jumlah": "400 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + } + ], + "error": null + }, + { + "index": 27, + "filename": "Sample DO PFM-page-00013.jpg", + "status": "success", + "tilt": 0.06, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN\n\n05:51:51 / 1 of Tanggal : 07 May 2026\n\nNo. SO : 1691898090\n\nNo. DO : 1659922449\n\nNo.PO : PO/26/0000168198\n\n## DELIVERY ORDER\n\nKepada : Kepala Gudang\n\n00202815\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFH-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11310013\\n11310014\\n11310024\\n11650053\\n11660050\\n11690053\\n11710051\\n11720055✓Griller Size 1 ( 30 Ekor ) Frozen\\n~Griller Size 2 ( 20 Ekor ) Frozen\\n-Griller Size A Frozen (900-1000 G) PC\\n~Thighstick Frozen Pack\\n✓Drumstick Frozen Pack\\n✓SBB Mitra 10 Kg\\n✓Bone In Breast Frozen Pack\\nFull Wing Frozen Pack1 KRG\\n5 KRG\\n5 KRG\\n1 BOX\\n1 BOX\\n1 BOX\\n1 BOX\\n2 BOX\\n1 BOX30 PC\\n100 PC\\n100 PC\\n10 KG\\n10 KG\\n10 KG\\n10 KG\\n20 KG\\n20 KG\\n10 KG
Barang dikirim dalam keadaan baikJumlah
B 9259 BCU\\nTruck No. PM KARANG BOLONG SERANG | JL RAYA KARA\\nW 01, BANDULU - ANYA \"Image\"\" \"Image\"\"WH 01 / 01\\nKP SEMPUR) NO 22 RT04 R\\nBagian Penjualan
Penerima Barang
\n\n
\"Image\"
\n\n\nLember 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "07 May 2026", + "noSO": "1691898090", + "noDO": "1659922449", + "noPO": "PO/26/0000168198", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11650053", + "namaBarang": "PAHA ATAS 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11650053" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "2 BOX", + "jumlah": "20 KG", + "kodeBarangOriginal": "11720055" + }, + { + "kodeBarang": "B 9259 BCU", + "namaBarang": "B 9259 BCU", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "B 9259 BCU" + }, + { + "kodeBarang": "Truck No. PM KARANG BOLONG SERANG | JL RAYA KARA", + "namaBarang": "Truck No. PM KARANG BOLONG SERANG | JL RAYA KARA", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "Truck No. PM KARANG BOLONG SERANG | JL RAYA KARA" + }, + { + "kodeBarang": "W 01, BANDULU - ANYA", + "namaBarang": "W 01, BANDULU - ANYA", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "W 01, BANDULU - ANYA" + } + ], + "platTruk": "B 9259 BCU" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "07 May 2026", + "noSO": "1691898090", + "noDO": "1659922449", + "noPO": "PO/26/0000168198", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "✓Griller Size 1 ( 30 Ekor ) Frozen", + "banyak": "1 KRG", + "jumlah": "30 PC" + }, + { + "kodeBarang": "11310014", + "namaBarang": "~Griller Size 2 ( 20 Ekor ) Frozen", + "banyak": "5 KRG", + "jumlah": "100 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "-Griller Size A Frozen (900-1000 G) PC", + "banyak": "5 KRG", + "jumlah": "100 PC" + }, + { + "kodeBarang": "11650053", + "namaBarang": "~Thighstick Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11660050", + "namaBarang": "✓Drumstick Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11690053", + "namaBarang": "✓SBB Mitra 10 Kg", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11710051", + "namaBarang": "✓Bone In Breast Frozen Pack", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11720055", + "namaBarang": "Full Wing Frozen Pack", + "banyak": "2 BOX", + "jumlah": "20 KG" + }, + { + "kodeBarang": "B 9259 BCU", + "namaBarang": "B 9259 BCU", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "Truck No. PM KARANG BOLONG SERANG | JL RAYA KARA", + "namaBarang": "Truck No. PM KARANG BOLONG SERANG | JL RAYA KARA", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "W 01, BANDULU - ANYA", + "namaBarang": "W 01, BANDULU - ANYA", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9259 BCU" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "07 May 2026", + "noSO": "1691898090", + "noDO": "1659922449", + "noPO": "PO/26/0000168198", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11650053", + "namaBarang": "PAHA ATAS 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11650053" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "2 BOX", + "jumlah": "20 KG", + "kodeBarangOriginal": "11720055" + } + ], + "platTruk": "B 9259 BCU", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310014", + "namaBarang": "AYAM SIZE 2 FROZEN (0.8-0.9)KG(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310014" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "5 KRG", + "jumlah": "100 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11650053", + "namaBarang": "PAHA ATAS 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11650053" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "11710051", + "namaBarang": "DADA UTUH (1 KG)(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11710051" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "2 BOX", + "jumlah": "20 KG", + "kodeBarangOriginal": "11720055" + } + ], + "error": null + }, + { + "index": 28, + "filename": "Sample DO PFM-page-00014.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n05:48:57\n\nTanggal : 06 April 2026\n\n\n\nNo. SO : 1691853079\n\nNo. DO : 1659881372\n\n## DELIVERY ORDER\n\nNo. PO : PO/26/0000125459\n\nKepada : Kepala Gudang\n\n00629253\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
12010515\\n12012502\\n12240102\\n12240103891 CHAMP KOIN KOMBINASI 450 G\\n601 Akumo Chicken Naget 500 Gr\\n935 FIESTA CHEESY ITALIAN RICE BITES 400\\n936 Fiesta Yakiniku Rice Bites 400 G1 BOX\\n1 BOX\\n1 BOX\\n1 BOX12 PAC\\n10 PAC\\n12 PAC\\n12 PAC
Barang dikirim dalam keadaan baikJumlah446
\"Image\"\"I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA\\nIDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layar\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "06 April 2026", + "noSO": "1691853079", + "noDO": "1659881372", + "noPO": "PO/26/0000125459", + "items": [ + { + "kodeBarang": "12010515", + "namaBarang": "CHAMP KOIN KOMBINASI 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010515" + }, + { + "kodeBarang": "12012502", + "namaBarang": "AKUMO CHICKEN NUGGET 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12012502" + }, + { + "kodeBarang": "12240102", + "namaBarang": "FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12240102" + }, + { + "kodeBarang": "12240103", + "namaBarang": "FIESTA YAKINIKU R/BITES 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12240103" + }, + { + "kodeBarang": "", + "namaBarang": "I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA", + "banyak": "I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA", + "jumlah": "I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "", + "namaBarang": "IDN", + "banyak": "1 IDN", + "jumlah": "IDN", + "kodeBarangOriginal": "" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "06 April 2026", + "noSO": "1691853079", + "noDO": "1659881372", + "noPO": "PO/26/0000125459", + "items": [ + { + "kodeBarang": "12010515", + "namaBarang": "891 CHAMP KOIN KOMBINASI 450 G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12012502", + "namaBarang": "601 Akumo Chicken Naget 500 Gr", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "12240102", + "namaBarang": "935 FIESTA CHEESY ITALIAN RICE BITES 400", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "12240103", + "namaBarang": "936 Fiesta Yakiniku Rice Bites 400 G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "", + "namaBarang": "I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA", + "banyak": "I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA", + "jumlah": "I | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA" + }, + { + "kodeBarang": "", + "namaBarang": "IDN", + "banyak": "1 IDN", + "jumlah": "IDN" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "06 April 2026", + "noSO": "1691853079", + "noDO": "1659881372", + "noPO": "PO/26/0000125459", + "items": [ + { + "kodeBarang": "12010515", + "namaBarang": "CHAMP KOIN KOMBINASI 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010515" + }, + { + "kodeBarang": "12012502", + "namaBarang": "AKUMO CHICKEN NUGGET 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12012502" + }, + { + "kodeBarang": "12240102", + "namaBarang": "FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12240102" + }, + { + "kodeBarang": "12240103", + "namaBarang": "FIESTA YAKINIKU R/BITES 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12240103" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "12010515", + "namaBarang": "CHAMP KOIN KOMBINASI 450 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12010515" + }, + { + "kodeBarang": "12012502", + "namaBarang": "AKUMO CHICKEN NUGGET 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "12012502" + }, + { + "kodeBarang": "12240102", + "namaBarang": "FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12240102" + }, + { + "kodeBarang": "12240103", + "namaBarang": "FIESTA YAKINIKU R/BITES 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12240103" + } + ], + "error": null + }, + { + "index": 29, + "filename": "Sample DO PFM-page-00015.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN\n\n01:42:41\n\nTanggal : 02 April 2026\n\nNo. SO : 1691848409\n\nNo. DO : 1659876922\n\nKepada : Kepala Gudang\n\n00614967\n\n## DELIVERY ORDER\n\nNo. PO : PO/26/0000120972\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11110074\\n11620056\\n11690053Ceker 1 KG Frozen\\nSBL Mitra 10 Kg\\nSBB Mitra 10 Kg\\nASLI1 ✓\\n10 ✓\\n10 ✓\\nKRG\\nBAG\\nBAG20 KG\\n10 KG\\n10 KG
Barang dikirim dalam keadaan baikJumlah2140
Truck No. B 9260 BXT\\nPM TANAH KUSIR | JL RC VEZERAN NO 17 F\\nRTA SELATAN, IDN1233 \"Image\"\"WH 01 / 01\\nO KEC PESANGGAHAN JAKA
Penetima Barang TANAH KUSIRTanda Tangan SupirBagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "1691848409", + "noDO": "1659876922", + "noPO": "PO/26/0000120972", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11620056" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + }, + { + "kodeBarang": "Truck No. B 9260 BXT", + "namaBarang": "Truck No. B 9260 BXT", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01", + "kodeBarangOriginal": "Truck No. B 9260 BXT" + }, + { + "kodeBarang": "PM TANAH KUSIR | JL RC VEZERAN NO 17 F", + "namaBarang": "PM TANAH KUSIR | JL RC VEZERAN NO 17 F", + "banyak": "O KEC PESANGGAHAN JAKA", + "jumlah": "O KEC PESANGGAHAN JAKA", + "kodeBarangOriginal": "PM TANAH KUSIR | JL RC VEZERAN NO 17 F" + }, + { + "kodeBarang": "RTA SELATAN, IDN1233", + "namaBarang": "RTA SELATAN, IDN1233", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "RTA SELATAN, IDN1233" + }, + { + "kodeBarang": "Penetima Barang TANAH KUSIR", + "namaBarang": "", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Penetima Barang TANAH KUSIR" + } + ], + "platTruk": "B 9260 BXT" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "1691848409", + "noDO": "1659876922", + "noPO": "PO/26/0000120972", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "Ceker 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL Mitra 10 Kg", + "banyak": "10 BAG", + "jumlah": "10 KG" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB Mitra 10 Kg", + "banyak": "10 BAG", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No. B 9260 BXT", + "namaBarang": "Truck No. B 9260 BXT", + "banyak": "WH 01 / 01", + "jumlah": "WH 01 / 01" + }, + { + "kodeBarang": "PM TANAH KUSIR | JL RC VEZERAN NO 17 F", + "namaBarang": "PM TANAH KUSIR | JL RC VEZERAN NO 17 F", + "banyak": "O KEC PESANGGAHAN JAKA", + "jumlah": "O KEC PESANGGAHAN JAKA" + }, + { + "kodeBarang": "RTA SELATAN, IDN1233", + "namaBarang": "RTA SELATAN, IDN1233", + "banyak": "1", + "jumlah": "" + }, + { + "kodeBarang": "Penetima Barang TANAH KUSIR", + "namaBarang": "", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "B 9260 BXT" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "1691848409", + "noDO": "1659876922", + "noPO": "PO/26/0000120972", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11620056" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + } + ], + "platTruk": "B 9260 BXT", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11620056", + "namaBarang": "SBL (FILLET PAHA) 1 KG(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11620056" + }, + { + "kodeBarang": "11690053", + "namaBarang": "SBB (FILLET DADA )1 KG(*)", + "banyak": "10 BAG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11690053" + } + ], + "error": null + }, + { + "index": 30, + "filename": "Sample DO PFM-page-00016.jpg", + "status": "success", + "tilt": 0.06, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n05:53:26\n\nNo. SO : 1691850584\n\nTanggal : 03 April 2026\n\nNo. DO : 1659878594\n\nKepada : Kepala Gudang\n\n00641729\n\nNo. PO : PO/26/0000122470\n\n# DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\nJAKARTA UTARA\n\n\n
Kode BarangNama BarangBanyakJumlah
17210106\\n21200107FIESTA RTS BEEF YAKINIKU 300G 8PAC\\nFiesta Spaghetti Carbonara 300g 6 PC\\n\"Image\"\"1\\n1BOX\\nBOX\\n8 PAC\\n6 PAC
Barang dikirim dalam keadaan baikJumlah214
Truck No. B 9308 BXT\\nP M KAMPUNG TENGAH | JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja\\n\"Image\"\" \"Image\"\"WH 01 / 01\\n\"Image\"\" \"Image\"\" Bag. Pengeluaran BarangNGAH KEC. KRAMAT JATI JA\\nBagian Penjualan
\n\n
\"Image\"
\n\n\nLembera: Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "03 April 2026", + "noSO": "1691850584", + "noDO": "1659878594", + "noPO": "PO/26/0000122470", + "items": [ + { + "kodeBarang": "17210106", + "namaBarang": "FIESTA RTS B/YAKINIKU 300GR/PAC", + "banyak": "1 BOX", + "jumlah": "BOX", + "kodeBarangOriginal": "17210106" + }, + { + "kodeBarang": "21200107", + "namaBarang": "NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC)", + "banyak": "1 BOX", + "jumlah": "BOX", + "kodeBarangOriginal": "21200107" + }, + { + "kodeBarang": "Truck No. B 9308 BXT", + "namaBarang": "WH 01 / 01", + "banyak": "NGAH KEC. KRAMAT JATI JA", + "jumlah": "NGAH KEC. KRAMAT JATI JA", + "kodeBarangOriginal": "Truck No. B 9308 BXT" + }, + { + "kodeBarang": "P M KAMPUNG TENGAH | JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "P M KAMPUNG TENGAH | JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja" + } + ], + "platTruk": "B 9308 BXT" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "03 April 2026", + "noSO": "1691850584", + "noDO": "1659878594", + "noPO": "PO/26/0000122470", + "items": [ + { + "kodeBarang": "17210106", + "namaBarang": "FIESTA RTS BEEF YAKINIKU 300G 8PAC", + "banyak": "1 BOX", + "jumlah": "BOX" + }, + { + "kodeBarang": "21200107", + "namaBarang": "Fiesta Spaghetti Carbonara 300g 6 PC", + "banyak": "1 BOX", + "jumlah": "BOX" + }, + { + "kodeBarang": "Truck No. B 9308 BXT", + "namaBarang": "WH 01 / 01", + "banyak": "NGAH KEC. KRAMAT JATI JA", + "jumlah": "NGAH KEC. KRAMAT JATI JA" + }, + { + "kodeBarang": "P M KAMPUNG TENGAH | JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja", + "namaBarang": "Bag. Pengeluaran Barang", + "banyak": "Bagian Penjualan", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "B 9308 BXT" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "03 April 2026", + "noSO": "1691850584", + "noDO": "1659878594", + "noPO": "PO/26/0000122470", + "items": [ + { + "kodeBarang": "17210106", + "namaBarang": "FIESTA RTS B/YAKINIKU 300GR/PAC", + "banyak": "1 BOX", + "jumlah": "BOX", + "kodeBarangOriginal": "17210106" + }, + { + "kodeBarang": "21200107", + "namaBarang": "NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC)", + "banyak": "1 BOX", + "jumlah": "BOX", + "kodeBarangOriginal": "21200107" + } + ], + "platTruk": "B 9308 BXT", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "17210106", + "namaBarang": "FIESTA RTS B/YAKINIKU 300GR/PAC", + "banyak": "1 BOX", + "jumlah": "BOX", + "kodeBarangOriginal": "17210106" + }, + { + "kodeBarang": "21200107", + "namaBarang": "NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC)", + "banyak": "1 BOX", + "jumlah": "BOX", + "kodeBarangOriginal": "21200107" + } + ], + "error": null + }, + { + "index": 31, + "filename": "Sample DO PFM-page-00017.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN\n\n11:59:34\n\nKepada : Kepala Gudang\n\n00641400\n\n## DELIVERY ORDER\n\nTanggal : 02 April 2026\n\nNo. SO : 191848878\n\nNo. DO : 1659877509\n\nNo. PO : PO/26/0000121957\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11310013\\n11310024Griller Size 1 ( 30 Ekor ) Frozen\\nGriller Size A Frozen (900-1000 G) PC\\nASLI4 KRG\\n10 KRG120 PC ADA\\n200 PC ✓
Barang dikirim dalam keadaan baikJumlah320320
Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID \"Image\"\"\"Image\"\"
Penerima BarangTanda Tangan SupirBag. Pengeluaran Barangjualan
\n\n
\"Image\"
\n\n\nTurun banne\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "191848878", + "noDO": "1659877509", + "noPO": "PO/26/0000121957", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "4 KRG", + "jumlah": "120 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "10 KRG", + "jumlah": "200 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID", + "namaBarang": "Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID" + } + ], + "platTruk": "B 9767 NCD" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "191848878", + "noDO": "1659877509", + "noPO": "PO/26/0000121957", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "Griller Size 1 ( 30 Ekor ) Frozen", + "banyak": "4 KRG", + "jumlah": "120 PC ADA" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen (900-1000 G) PC", + "banyak": "10 KRG", + "jumlah": "200 PC" + }, + { + "kodeBarang": "Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID", + "namaBarang": "Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9767 NCD" + }, + "layer3Final": { + "vendorInfo": "PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "191848878", + "noDO": "1659877509", + "noPO": "PO/26/0000121957", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "4 KRG", + "jumlah": "120 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "10 KRG", + "jumlah": "200 PC", + "kodeBarangOriginal": "11310024" + } + ], + "platTruk": "B 9767 NCD", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "4 KRG", + "jumlah": "120 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "10 KRG", + "jumlah": "200 PC", + "kodeBarangOriginal": "11310024" + } + ], + "error": null + }, + { + "index": 32, + "filename": "Sample DO PFM-page-00018.jpg", + "status": "success", + "tilt": 3.11, + "unwarped": true, + "rawMarkdown": "PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00\n\nKAWASAN, INDUSTRI MODERN, BANTEN\n\n# DELIVERY ORDER\n\ntanggai:\n\nNo. SO : 18 April 2026/\n\nKepada : Kepala Gudang\n\n00706237\n\nNo. DO : 1691872559\n\nNo. PO : 1659898844 PO/26/0000143236\n\nKepada Yth :\n\nOrder Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : PFM-KU\n\n把\n\nJL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN,\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 14430\\nJAKARTA UTARA BanyakJumlah
Hati 1 KG Frozen1 KRG20 KG ✓
11150064Griller (PR) Size 1, Erz1 KRG30 PC ✓
11310018Griller (PR) Size 2, Erz3 KRG60 PC ✓
11310019Griller (PR) Size 2, Erz3 KRG80 PC ✓
11310024Griller Size A Frozen (900-1000 G) PC20 KRG20 KG ✓
11660050Drumstick Frozen Pack20 BAG
Barang dikirim dalam keadaan baikJumlah
Truck No.251270
\"Image\"\"\"Image\"\"Bag. Pengeluaran BarangBagian Penjualan
Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani
\n\n
\"Image\"
\n\n\nembar 1.: Customer\n\nDipindai dengan", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00\nKAWASAN, INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "18 April 2026", + "noSO": "1691872559", + "noDO": "1659898844", + "noPO": "PO/26/0000143236", + "items": [ + { + "kodeBarang": "", + "namaBarang": "Hati 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "" + }, + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310018", + "namaBarang": "AYAM SIZE 1 PR FROZEN(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310018" + }, + { + "kodeBarang": "11310019", + "namaBarang": "AYAM SIZE 2 PR FROZEN(*)", + "banyak": "3 KRG", + "jumlah": "80 PC", + "kodeBarangOriginal": "11310019" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "20 KRG", + "jumlah": "20 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "20 BAG", + "jumlah": "", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "251", + "banyak": "270", + "jumlah": "", + "kodeBarangOriginal": "Truck No." + }, + { + "kodeBarang": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "namaBarang": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "banyak": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "jumlah": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "kodeBarangOriginal": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00\nKAWASAN, INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "18 April 2026", + "noSO": "1691872559", + "noDO": "1659898844", + "noPO": "PO/26/0000143236", + "items": [ + { + "kodeBarang": "", + "namaBarang": "Hati 1 KG Frozen", + "banyak": "1 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11150064", + "namaBarang": "Griller (PR) Size 1, Erz", + "banyak": "1 KRG", + "jumlah": "30 PC" + }, + { + "kodeBarang": "11310018", + "namaBarang": "Griller (PR) Size 2, Erz", + "banyak": "3 KRG", + "jumlah": "60 PC" + }, + { + "kodeBarang": "11310019", + "namaBarang": "Griller (PR) Size 2, Erz", + "banyak": "3 KRG", + "jumlah": "80 PC" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen (900-1000 G) PC", + "banyak": "20 KRG", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11660050", + "namaBarang": "Drumstick Frozen Pack", + "banyak": "20 BAG", + "jumlah": "" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "251", + "banyak": "270", + "jumlah": "" + }, + { + "kodeBarang": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "namaBarang": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "banyak": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani", + "jumlah": "Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00\nKAWASAN, INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "18 April 2026", + "noSO": "1691872559", + "noDO": "1659898844", + "noPO": "PO/26/0000143236", + "items": [ + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310018", + "namaBarang": "AYAM SIZE 1 PR FROZEN(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310018" + }, + { + "kodeBarang": "11310019", + "namaBarang": "AYAM SIZE 2 PR FROZEN(*)", + "banyak": "3 KRG", + "jumlah": "80 PC", + "kodeBarangOriginal": "11310019" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "20 KRG", + "jumlah": "20 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "20 BAG", + "jumlah": "", + "kodeBarangOriginal": "11660050" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "30 PC", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310018", + "namaBarang": "AYAM SIZE 1 PR FROZEN(*)", + "banyak": "3 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310018" + }, + { + "kodeBarang": "11310019", + "namaBarang": "AYAM SIZE 2 PR FROZEN(*)", + "banyak": "3 KRG", + "jumlah": "80 PC", + "kodeBarangOriginal": "11310019" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "20 KRG", + "jumlah": "20 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "20 BAG", + "jumlah": "", + "kodeBarangOriginal": "11660050" + } + ], + "error": null + }, + { + "index": 33, + "filename": "Sample DO PFM-page-00019.jpg", + "status": "success", + "tilt": 4.31, + "unwarped": true, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK\n\nKAWASAN INDUSTPI MODER\n\n
\"Image\"
\n\n\nNTEN\n\nKepada : Kepala Gudang\n\n00637619\n\nTanggal : 06:13:02 04 April 2026\n\n\n\nNo. SO : 1691852095\n\nNo. DO : 1659880471\n\nNo. PO : PO/26/0000124386\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nThe\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11140062Ampela 1 KG Frozen2020 KG
11150064Hati 1 KG Frozen120 KG
11310024Griller Size A Frozen (900-1000 G) PC240 PC
11660050Drumstick Frozen Pack1010 KG
Size A tidak datang.
Barang dikirim dalam keadaan baik7190
B 9402 SCH\\nPM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI\\nTANGERANG, IDN15413 \"Image\"\"WH 01 /01\\n1 RW.04, SAWAH, CIPUTAT
Penerima BarangTanda Tangan SupirBagian Penjualan
\n\n
\"Image\"
\n\n\n
\"Image\"
\n\n\n
\"Image\"
\n\n\nembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\nOsto dei donno", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTPI MODER\nNTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "04 April 2026", + "noSO": "1691852095", + "noDO": "1659880471", + "noPO": "PO/26/0000124386", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "20 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + }, + { + "kodeBarang": "Size A tidak datang.", + "namaBarang": "Size A tidak datang.", + "banyak": "Size A tidak datang.", + "jumlah": "Size A tidak datang.", + "kodeBarangOriginal": "Size A tidak datang." + }, + { + "kodeBarang": "B 9402 SCH", + "namaBarang": "B 9402 SCH", + "banyak": "WH 01 /01", + "jumlah": "WH 01 /01", + "kodeBarangOriginal": "B 9402 SCH" + }, + { + "kodeBarang": "PM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI", + "namaBarang": "PM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI", + "banyak": "1 RW.04, SAWAH, CIPUTAT", + "jumlah": "1 RW.04, SAWAH, CIPUTAT", + "kodeBarangOriginal": "PM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI" + }, + { + "kodeBarang": "TANGERANG, IDN15413", + "namaBarang": "TANGERANG, IDN15413", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "TANGERANG, IDN15413" + } + ], + "platTruk": "B 9402 SCH" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTPI MODER\nNTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "04 April 2026", + "noSO": "1691852095", + "noDO": "1659880471", + "noPO": "PO/26/0000124386", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "Ampela 1 KG Frozen", + "banyak": "20", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11150064", + "namaBarang": "Hati 1 KG Frozen", + "banyak": "1", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11310024", + "namaBarang": "Griller Size A Frozen (900-1000 G) PC", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11660050", + "namaBarang": "Drumstick Frozen Pack", + "banyak": "10", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Size A tidak datang.", + "namaBarang": "Size A tidak datang.", + "banyak": "Size A tidak datang.", + "jumlah": "Size A tidak datang." + }, + { + "kodeBarang": "B 9402 SCH", + "namaBarang": "B 9402 SCH", + "banyak": "WH 01 /01", + "jumlah": "WH 01 /01" + }, + { + "kodeBarang": "PM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI", + "namaBarang": "PM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI", + "banyak": "1 RW.04, SAWAH, CIPUTAT", + "jumlah": "1 RW.04, SAWAH, CIPUTAT" + }, + { + "kodeBarang": "TANGERANG, IDN15413", + "namaBarang": "TANGERANG, IDN15413", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9402 SCH" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTPI MODER\nNTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "04 April 2026", + "noSO": "1691852095", + "noDO": "1659880471", + "noPO": "PO/26/0000124386", + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "20 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + } + ], + "platTruk": "B 9402 SCH", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11140062", + "namaBarang": "AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "20 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11140062" + }, + { + "kodeBarang": "11150064", + "namaBarang": "HATI 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11150064" + }, + { + "kodeBarang": "11310024", + "namaBarang": "AYAM SIZE A FROZEN (0.9-1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310024" + }, + { + "kodeBarang": "11660050", + "namaBarang": "PAHA BAWAH (1 KG)(*)", + "banyak": "10 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11660050" + } + ], + "error": null + }, + { + "index": 34, + "filename": "Sample DO PFM-page-00020.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n300000000000\n\n06:34:00\n\n
\"Image\"
\n\n\nelarm\n\nTanggal : 11 April 2026\n\nNo. SO : 1691863154\n\n00727524\n\nKepada : Kepala Gudang\n\nNo. DO : 1659889989\n\n## DELIVERY ORDER\n\nNo. PO : PO/26/0000135032\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat\n\nAPS\n\nJL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN,\n\nJAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
11310013Griller Size 1 ( 30 Ekor ) Frozen2)KRG-60- PC 30 PC-
ASLI
Barang dikirim dalam keadaan baikJumlah6060
\"Image\"\" [F6]
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n1621886257\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN\n300000000000", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "11 April 2026", + "noSO": "1691863154", + "noDO": "1659889989", + "noPO": "PO/26/0000135032", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "2 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310013" + }, + { + "kodeBarang": "", + "namaBarang": "[F6]", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN\n300000000000", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "11 April 2026", + "noSO": "1691863154", + "noDO": "1659889989", + "noPO": "PO/26/0000135032", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "Griller Size 1 ( 30 Ekor ) Frozen", + "banyak": "2) KRG", + "jumlah": "-60- PC 30 PC-" + }, + { + "kodeBarang": "", + "namaBarang": "[F6]", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK\nKAWASAN INDUSTRI MODERN,\nBANTEN\n300000000000", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "11 April 2026", + "noSO": "1691863154", + "noDO": "1659889989", + "noPO": "PO/26/0000135032", + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "2 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310013" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11310013", + "namaBarang": "AYAM SIZE1 FROZEN (0.75-0.8) KG(*)", + "banyak": "2 KRG", + "jumlah": "60 PC", + "kodeBarangOriginal": "11310013" + } + ], + "error": null + }, + { + "index": 35, + "filename": "Sample DO PFM-page-00021.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT., CHAROEN POKPHAND INDONESIA TDK\n\nKAWASAN INDUSTRI MODERN,\n\nBANTEN\n\n05:32:27\n\n\n\nKepada : Kepala Gudang\n\n## DELIVERY ORDER\n\nNo. DO : 1691848523\n\n00641246\n\nTanggal:\n\nNo. SO : 02 April 2026\n\nNo. PO : 1659877015\n\nPO/26/0000121086\n\nKepada Yth :\n\nOrder Untuk : PT.PRIMAFOOD INTERNATIONAL\n\nAlamat : DKI AREA\n\nJL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN,\n\n\n
Kode BarangNama BarangJAKARTA UTARA, 14430\\nJAKARTA UTARABanyakJumlah
11110074\\n11310021\\n11720055Ceker 1 KG Frozen ✓\\nGriller Size B Frozen (1000-1100 G) PC ✓\\nFull Wing Frozen-Pack ✓1\\n2\\n10KRG\\nKRG\\nBAG20 KG\\n40 PC\\n10 KG
Barang dikirim dalam keadaan baik
Truck No.B 9726 UCT\\nPM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN\"Image\"\"51 WH 01 EC JAGAKARSA JAKARTA SE\\nBagian Penjualan
Penerima BarangTanda Tangan SupirBagí
\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT., CHAROEN POKPHAND INDONESIA TDK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "1691848523", + "noDO": "1659877015", + "noPO": "PO/26/0000121086", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "10 KRG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11720055" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "B 9726 UCT", + "banyak": "B 9726 UCT PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN", + "jumlah": "51 WH 01 EC JAGAKARSA JAKARTA SE", + "kodeBarangOriginal": "Truck No." + }, + { + "kodeBarang": "", + "namaBarang": "PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN", + "banyak": "1", + "jumlah": "", + "kodeBarangOriginal": "" + } + ], + "platTruk": "B 9726 UCT" + }, + "layer2Sanitized": { + "vendorInfo": "PT., CHAROEN POKPHAND INDONESIA TDK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "1691848523", + "noDO": "1659877015", + "noPO": "PO/26/0000121086", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "Ceker 1 KG Frozen ✓", + "banyak": "1", + "jumlah": "20 KG" + }, + { + "kodeBarang": "11310021", + "namaBarang": "Griller Size B Frozen (1000-1100 G) PC ✓", + "banyak": "2 KRG", + "jumlah": "40 PC" + }, + { + "kodeBarang": "11720055", + "namaBarang": "Full Wing Frozen-Pack ✓", + "banyak": "10 KRG", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "B 9726 UCT", + "banyak": "B 9726 UCT PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN", + "jumlah": "51 WH 01 EC JAGAKARSA JAKARTA SE" + }, + { + "kodeBarang": "", + "namaBarang": "PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN", + "banyak": "1", + "jumlah": "" + } + ], + "platTruk": "B 9726 UCT" + }, + "layer3Final": { + "vendorInfo": "PT., CHAROEN POKPHAND INDONESIA TDK\nKAWASAN INDUSTRI MODERN,\nBANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "02 April 2026", + "noSO": "1691848523", + "noDO": "1659877015", + "noPO": "PO/26/0000121086", + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "10 KRG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11720055" + } + ], + "platTruk": "B 9726 UCT", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11110074", + "namaBarang": "CEKER 1 KG FROZEN (20 PAC/KARUNG)(*)", + "banyak": "1 KRG", + "jumlah": "20 KG", + "kodeBarangOriginal": "11110074" + }, + { + "kodeBarang": "11310021", + "namaBarang": "AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*)", + "banyak": "2 KRG", + "jumlah": "40 PC", + "kodeBarangOriginal": "11310021" + }, + { + "kodeBarang": "11720055", + "namaBarang": "FULL WING FROZ PACK 1 KG(*)", + "banyak": "10 KRG", + "jumlah": "10 KG", + "kodeBarangOriginal": "11720055" + } + ], + "error": null + }, + { + "index": 36, + "filename": "Sample DO PFM-page-00022.jpg", + "status": "success", + "tilt": 0, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN\n\n05:54:31 / 2\n\nofTanggal : 16 April 2026\n\n\n\nNo. SO : 1691869400\n\nNo. DO : 1659896184\n\nNo. PO : P0/26/0000140731\n\nKepada : Kepala Gudang\n\n00527182\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : DKI AREA\n\n√\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL,\n\nPADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
12080101\\n13010513\\n13030502920 FIESTA SPICY CHICK 400 G\\n304 Champ Chicken Sausage 375 Gr 15 Pack\\n298 Champ Chicken Ball 500 GR Fr1 ✓ BOX\\n1 ✓ BOX\\n1 ✓ BOX12 PAC\\n15 PAC\\n10 PAC
Barang dikirim dalam keadaan baikJumlah11131
Truck No. \"Image\"\" \"Image\"\"Bagian Penjualan
Penerima Barang HUB WARUNG JATI
Tanda Tangan Supir
Bag. Pengeluaran Barang
\n\n
\"Image\"
\n\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691869400", + "noDO": "1659896184", + "noPO": "PO/26/0000140731", + "items": [ + { + "kodeBarang": "12080101", + "namaBarang": "FIESTA SPICY CHICK 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12080101" + }, + { + "kodeBarang": "13010513", + "namaBarang": "CHAMP CHICK SSG 375 GR", + "banyak": "1 BOX", + "jumlah": "15 PAC", + "kodeBarangOriginal": "13010513" + }, + { + "kodeBarang": "13030502", + "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13030502" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "Truck No.", + "banyak": "Truck No.", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Truck No." + }, + { + "kodeBarang": "Penerima Barang HUB WARUNG JATI", + "namaBarang": "", + "banyak": "1", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Penerima Barang HUB WARUNG JATI" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang", + "namaBarang": "", + "banyak": "1", + "jumlah": "Bagian Penjualan", + "kodeBarangOriginal": "Bag. Pengeluaran Barang" + } + ], + "platTruk": "" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691869400", + "noDO": "1659896184", + "noPO": "PO/26/0000140731", + "items": [ + { + "kodeBarang": "12080101", + "namaBarang": "920 FIESTA SPICY CHICK 400 G", + "banyak": "1 BOX", + "jumlah": "12 PAC" + }, + { + "kodeBarang": "13010513", + "namaBarang": "304 Champ Chicken Sausage 375 Gr 15 Pack", + "banyak": "1 BOX", + "jumlah": "15 PAC" + }, + { + "kodeBarang": "13030502", + "namaBarang": "298 Champ Chicken Ball 500 GR Fr", + "banyak": "1 BOX", + "jumlah": "10 PAC" + }, + { + "kodeBarang": "Truck No.", + "namaBarang": "Truck No.", + "banyak": "Truck No.", + "jumlah": "Bagian Penjualan" + }, + { + "kodeBarang": "Penerima Barang HUB WARUNG JATI", + "namaBarang": "", + "banyak": "1", + "jumlah": "Bagian Penjualan" + }, + { + "kodeBarang": "Bag. Pengeluaran Barang", + "namaBarang": "", + "banyak": "1", + "jumlah": "Bagian Penjualan" + } + ], + "platTruk": "" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "16 April 2026", + "noSO": "1691869400", + "noDO": "1659896184", + "noPO": "PO/26/0000140731", + "items": [ + { + "kodeBarang": "12080101", + "namaBarang": "FIESTA SPICY CHICK 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12080101" + }, + { + "kodeBarang": "13010513", + "namaBarang": "CHAMP CHICK SSG 375 GR", + "banyak": "1 BOX", + "jumlah": "15 PAC", + "kodeBarangOriginal": "13010513" + }, + { + "kodeBarang": "13030502", + "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13030502" + } + ], + "platTruk": "", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "12080101", + "namaBarang": "FIESTA SPICY CHICK 400 GR/PAC", + "banyak": "1 BOX", + "jumlah": "12 PAC", + "kodeBarangOriginal": "12080101" + }, + { + "kodeBarang": "13010513", + "namaBarang": "CHAMP CHICK SSG 375 GR", + "banyak": "1 BOX", + "jumlah": "15 PAC", + "kodeBarangOriginal": "13010513" + }, + { + "kodeBarang": "13030502", + "namaBarang": "CHAMP CHICK MEATBALL 500 GR", + "banyak": "1 BOX", + "jumlah": "10 PAC", + "kodeBarangOriginal": "13030502" + } + ], + "error": null + }, + { + "index": 37, + "filename": "Sample DO PFM-page-00023.jpg", + "status": "success", + "tilt": 0.05, + "unwarped": false, + "rawMarkdown": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN\n\n05:51:51 / 2 of Tanggal : 07 May 2026\n\nNo. SO : 1691898090\n\n00202816\n\nNo. DO : 1659922449\n\nNo. PO : PO/26/0000168198\n\nKepada : Kepala Gudang\n\n## DELIVERY ORDER\n\nKepada Yth : PT.PRIMAFOOD INTERNATIONAL\n\nOrder Untuk : PFM-KU\n\nAlamat : JL. ANCOL BARAT VIII/1, ANCOL,\n\nPADEMANGAN, JAKARTA UTARA, 14430\n\n\n
Kode BarangNama BarangBanyakJumlah
11750050☑Fillet Mitra 10 Kg ASLI1 BOX10 KG
Barang dikirim dalam keadaan baikJL 237300
Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU \"Image\"\")
Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan
\n\n
\"Image\"
\n\n\nLembar 1: Customer\n\nJika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani\n\n
\"Image\"
\n", + "layer1RawRegex": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "07 May 2026", + "noSO": "1691898090", + "noDO": "1659922449", + "noPO": "PO/26/0000168198", + "items": [ + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + }, + { + "kodeBarang": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "namaBarang": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "banyak": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "jumlah": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "kodeBarangOriginal": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )" + }, + { + "kodeBarang": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "namaBarang": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "banyak": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "jumlah": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "kodeBarangOriginal": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan" + } + ], + "platTruk": "B 9259 BCU" + }, + "layer2Sanitized": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "07 May 2026", + "noSO": "1691898090", + "noDO": "1659922449", + "noPO": "PO/26/0000168198", + "items": [ + { + "kodeBarang": "11750050", + "namaBarang": "☑Fillet Mitra 10 Kg ASLI", + "banyak": "1 BOX", + "jumlah": "10 KG" + }, + { + "kodeBarang": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "namaBarang": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "banyak": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )", + "jumlah": "Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU )" + }, + { + "kodeBarang": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "namaBarang": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "banyak": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan", + "jumlah": "Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan" + } + ], + "platTruk": "B 9259 BCU" + }, + "layer3Final": { + "vendorInfo": "PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN", + "customerInfo": "PT.PRIMAFOOD INTERNATIONAL", + "tanggal": "07 May 2026", + "noSO": "1691898090", + "noDO": "1659922449", + "noPO": "PO/26/0000168198", + "items": [ + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + } + ], + "platTruk": "B 9259 BCU", + "orderUntuk": "", + "alamat": "" + }, + "items": [ + { + "kodeBarang": "11750050", + "namaBarang": "FILLET MITRA 1 KG(*)", + "banyak": "1 BOX", + "jumlah": "10 KG", + "kodeBarangOriginal": "11750050" + } + ], + "error": null } ] \ No newline at end of file diff --git a/backend/sources/ai_results.md b/backend/sources/ai_results.md new file mode 100644 index 0000000..4c0aacc --- /dev/null +++ b/backend/sources/ai_results.md @@ -0,0 +1,5068 @@ +# OCR Batch Test Report + +> Generated: 2026-07-03T08:59:19.013Z +> API: `reparsed-via-new-algorithm` +> Images: **37** files from `backend/sources/test-images/` + +--- + +## Summary + +| # | Filename | Status | Tilt | Unwarped | DO | PO | Items | +| --- | --- | --- | --- | --- | --- | --- | --- | +| 1 | `1782870899198-sample_do.jpeg` | ✅ success | 1.29° | Yes | `1659980277` | `PO/26/0000230828` | 5 | +| 2 | `1782884664859-rotated_1782884661516_rotated_1782884658097_rotated_1782884654697_CAP5956452738616729026.jpg` | ✅ success | 0.06° | No | `1659932080` | `PO/26/0000178435` | 1 | +| 3 | `1782888127716-CAP6161747431193129837.jpg` | ✅ success | 7.14° | Yes | `1659990561` | `PO/26/0000241938` | 1 | +| 4 | `1782888211457-rotated_1782888204591_rotated_1782888199962_rotated_1782888195402_CAP7202641176939787142.jpg` | ✅ success | 0° | No | `1659990561` | `PO/26/0000241938` | 1 | +| 5 | `1782888609885-rotated_1782888593813_1000000454.jpg` | ✅ success | 22.84° | Yes | `Not Found` | `PO/26/0000238723` | 6 | +| 6 | `1782890303600-1000000465.jpg` | ✅ success | 17.41° | Yes | `1659990583` | `PO/26/0000241302` | 8 | +| 7 | `1782892728794-1000000466.jpg` | ✅ success | 10.1° | Yes | `1659990583` | `PO/26/0000241302` | 1 | +| 8 | `IMG_20260630_145445.jpg` | ✅ success | 10.71° | Yes | `1057745004` | `PO/26/0000170727` | 1 | +| 9 | `IMG_20260701_134446.jpg` | ✅ success | 0° | No | `Not Found` | `Not Found` | 1 | +| 10 | `IMG_20260701_134504.jpg` | ✅ success | 14.75° | Yes | `1659990584` | `PO/26/0000241303` | 1 | +| 11 | `IMG_20260701_134555.jpg` | ✅ success | 0.15° | No | `2272290022` | `PO/26/0000241304` | 1 | +| 12 | `IMG_20260701_134555~2.jpg` | ✅ success | 0.22° | No | `2272290022` | `PO/26/0000241304` | 1 | +| 13 | `IMG_20260701_134646~2.jpg` | ✅ success | 0.57° | No | `1659980277` | `PO/26/0000230199` | 5 | +| 14 | `IMG_20260701_134810.jpg` | ✅ success | 0° | No | `Not Found` | `Not Found` | 6 | +| 15 | `Sample DO PFM-page-00001.jpg` | ✅ success | 0.08° | No | `1659905109` | `PO/26/0000150175` | 1 | +| 16 | `Sample DO PFM-page-00002.jpg` | ✅ success | 0° | No | `1659897809` | `PO/26/0000142266` | 2 | +| 17 | `Sample DO PFM-page-00003.jpg` | ✅ success | 0.14° | No | `1659897396` | `PO/26/0000142693` | 2 | +| 18 | `Sample DO PFM-page-00004.jpg` | ✅ success | 0.02° | No | `1659892421` | `PO/26/0000137547` | 3 | +| 19 | `Sample DO PFM-page-00005.jpg` | ✅ success | 0.04° | No | `1659886692` | `PO/26/0000131178` | 8 | +| 20 | `Sample DO PFM-page-00006.jpg` | ✅ success | 3.25° | Yes | `1659895333` | `PO/26/0000140625` | 4 | +| 21 | `Sample DO PFM-page-00007.jpg` | ✅ success | 0.18° | No | `1659896184` | `PO/26/0000140731` | 8 | +| 22 | `Sample DO PFM-page-00008.jpg` | ✅ success | 0.17° | No | `1659927197` | `PO/26/0000172403` | 3 | +| 23 | `Sample DO PFM-page-00009.jpg` | ✅ success | 0° | No | `1659919748` | `PO/26/0000164942` | 5 | +| 24 | `Sample DO PFM-page-00010.jpg` | ✅ success | 0° | No | `1659920402` | `PO/26/0000166040` | 4 | +| 25 | `Sample DO PFM-page-00011.jpg` | ✅ success | 15.19° | Yes | `1659921089` | `PO/26/0000166510` | 7 | +| 26 | `Sample DO PFM-page-00012.jpg` | ✅ success | 0.15° | No | `1659920441` | `PO/26/0000166127` | 4 | +| 27 | `Sample DO PFM-page-00013.jpg` | ✅ success | 0.06° | No | `1659922449` | `PO/26/0000168198` | 8 | +| 28 | `Sample DO PFM-page-00014.jpg` | ✅ success | 0° | No | `1659881372` | `PO/26/0000125459` | 4 | +| 29 | `Sample DO PFM-page-00015.jpg` | ✅ success | 0° | No | `1659876922` | `PO/26/0000120972` | 3 | +| 30 | `Sample DO PFM-page-00016.jpg` | ✅ success | 0.06° | No | `1659878594` | `PO/26/0000122470` | 2 | +| 31 | `Sample DO PFM-page-00017.jpg` | ✅ success | 0° | No | `1659877509` | `PO/26/0000121957` | 2 | +| 32 | `Sample DO PFM-page-00018.jpg` | ✅ success | 3.11° | Yes | `1659898844` | `PO/26/0000143236` | 5 | +| 33 | `Sample DO PFM-page-00019.jpg` | ✅ success | 4.31° | Yes | `1659880471` | `PO/26/0000124386` | 4 | +| 34 | `Sample DO PFM-page-00020.jpg` | ✅ success | 0° | No | `1659889989` | `PO/26/0000135032` | 1 | +| 35 | `Sample DO PFM-page-00021.jpg` | ✅ success | 0° | No | `1659877015` | `PO/26/0000121086` | 3 | +| 36 | `Sample DO PFM-page-00022.jpg` | ✅ success | 0° | No | `1659896184` | `PO/26/0000140731` | 3 | +| 37 | `Sample DO PFM-page-00023.jpg` | ✅ success | 0.05° | No | `1659922449` | `PO/26/0000168198` | 1 | + +--- + +## Stage-by-Stage Results + +### 1. `1782870899198-sample_do.jpeg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `1.29°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +
Image
+ + +terima oleh Disesahkan oleh + +ESIA TDK + +KAWASHI BANTEN + +ERN + +02:56:41 + +Kepada : Kepala Gudang + +Tanggal: + +No.SO : 23 June 2026 + +No. DO : 1691960321 + +00168133 + +No. PO : 1659980277 + +## DELIVERY ORDER + +P0/26/0000230828 + +Kepada Yth Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : DKI AREA + +JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAM. + + +
Kode BarangNama BarangJAKARTA UTARA, 1430\nJAKARTA UTA RA BanyakJumlah
Griller Size 2 ( 20 Ekor ) Frozen2 KRG40 PC
11310014Griller Size A Frozen (900-1000 g) PC2 KRG40 PC
11310024SBL Mitra 10 kg1 BOX10 KG
11620056SBB Mitra 10 kg1 BOX10 KG
11690053Full Wing Frozen Pack1 BOX10 KG
11720055
Barang dikirim dalam keadaan baikJumlah83 110
Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +Lembar 3 : Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas. kekurangan barang tidak dapat kami layani +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659980277` +- **noPO**: `PO/26/0000230828` +- **noSO**: `1691960321` +- **tanggal**: `23 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9427 UXT` + +**Raw items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 2 KRG | 40 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11620056 | SBL (FILLET PAHA) 1 KG(*) | 1 BOX | 10 KG | +| 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | +| Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659980277` +- **noPO**: `PO/26/0000230828` +- **noSO**: `1691960321` +- **tanggal**: `23 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9427 UXT` + +**Sanitized items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 2 KRG | 40 PC | +| 11310024 | Griller Size A Frozen (900-1000 g) PC | 2 KRG | 40 PC | +| 11620056 | SBL Mitra 10 kg | 1 BOX | 10 KG | +| 11690053 | SBB Mitra 10 kg | 1 BOX | 10 KG | +| 11720055 | Full Wing Frozen Pack | 1 BOX | 10 KG | +| Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659980277` +- **noPO**: `PO/26/0000230828` +- **noSO**: `1691960321` +- **tanggal**: `23 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9427 UXT` + +**Final items after SKU validation (5 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 2 KRG | 40 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11620056 | 11620056 | SBL (FILLET PAHA) 1 KG(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 2 KRG | 40 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11620056 | 11620056 | SBL (FILLET PAHA) 1 KG(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | + +--- + +### 2. `1782884664859-rotated_1782884661516_rotated_1782884658097_rotated_1782884654697_CAP5956452738616729026.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.06°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +Agnes 'Telco 23 Telkom fineshyt telco +kmrn ngechat gue tp ga jwb Ig + +INDONESIA Tbk + +ODERN, + +02:17:59 / 2 of Tanggal : 15 May 2026 + +No. SO : 1691908676 + +
Image
+ + +No. DO : 1659932080 + +No. PO : PO/26/0000178435 + +Kepada : Kepala Gudang + +## DELIVERY ORDER + +00671212 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, + +PADEMANGAN, JAKARTA UTARA, 14430 + + + +JAKARTA UTARA + + +
Kode BarangNama BarangBanyakJumlah
13012205673 Asimo Sosis Ayam Kombinasi 375 Gr ASLI1 BOX15 PAC
Jumlah998
+ +Barang dikirim dalam keadaan baik + +Truck No. + +
Image
+ + +Penerima Barang + +B 9723 CXS + +PM TAKTAKAN SERANG + +WH 01 / 01 + +JL RAYA JAKTAKAN + + + + + +NO 1 G, LONTAN BARU, SERANG, BANTEN + +
Image
+ + +Tanda Tangan Supir + +
Image
+ + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659932080` +- **noPO**: `PO/26/0000178435` +- **noSO**: `1691908676` +- **tanggal**: `15 May 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9723 CXS` + +**Raw items (1 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 13012205 | ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC) | 1 BOX | 15 PAC | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659932080` +- **noPO**: `PO/26/0000178435` +- **noSO**: `1691908676` +- **tanggal**: `15 May 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9723 CXS` + +**Sanitized items (1 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 13012205 | 673 Asimo Sosis Ayam Kombinasi 375 Gr ASLI | 1 BOX | 15 PAC | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659932080` +- **noPO**: `PO/26/0000178435` +- **noSO**: `1691908676` +- **tanggal**: `15 May 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9723 CXS` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 13012205 | 13012205 | ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC) | 1 BOX | 15 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 13012205 | 13012205 | ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC) | 1 BOX | 15 PAC | + +--- + +### 3. `1782888127716-CAP6161747431193129837.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `7.14°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +
Image
+ + +JR OMEGA (PC)(*) 900 PC + +POKPHAND INDONESIA TBK INDUSTRI MODERN + +Amount + +Kepada : Kepala Gudang + +31945 + +1,950.00 + +00:21:27 No. SO : 30 June 2026 + +Tanggal : + +No. DO : 1691972227 + +## DELIVERY ORDER + +Kepada Yth : + +No. PO : 1659990561 + +PO/26/0000241938 + +Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : DKI AREA + +JL.ANCOL BARAT VIII/1,ANCOL,PADEMANGAN, + + +
Kode BarangNama BarangJAKARTA UTARA, 14450 JAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN1 WH 01 / 01
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +Lember 3. Customer + +Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami tayani + +07 +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659990561` +- **noPO**: `PO/26/0000241938` +- **noSO**: `1691972227` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Raw items (2 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | +| Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1 WH 01 / 01 | 1 WH 01 / 01 | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659990561` +- **noPO**: `PO/26/0000241938` +- **noSO**: `1691972227` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Sanitized items (2 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | +| Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1 WH 01 / 01 | 1 WH 01 / 01 | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659990561` +- **noPO**: `PO/26/0000241938` +- **noSO**: `1691972227` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21002601 | 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21002601 | 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | + +--- + +### 4. `1782888211457-rotated_1782888204591_rotated_1782888199962_rotated_1782888195402_CAP7202641176939787142.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown + +
000006 MA TELUR OMEGA (PC)(*)900PCH/PCS1.950.00Amount
Qty:9001.755.000.00
DEN POKPHAND INDONESIA Tbk00:21:27Tanggal :
IN INDUSTRI MODERN.No. SO : 30 June 2026
ENNo. DO : 1691972227
No. PO : 1659990561PO/26/0000241938
+ +Kepada : Kepala Gudang + +31945 + +Kepada Yth : + +Order Untuk : PT_PRIMAFOOD INTERNATIONAL + +Alamat : + +DKI AREA + +JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, + + +
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC✓
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN16 WH 01 / 01 Bagian Penjualan
Penerima Barang Tanda Tangan SupirBag. Pengeluaran Barang
Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani
+ +adidas +DANG +SA UDANG +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659990561` +- **noPO**: `PO/26/0000241938` +- **noSO**: `1691972227` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Raw items (4 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | +| Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1 | 6 WH 01 / 01 Bagian Penjualan | +| Penerima Barang Tanda Tangan Supir | Penerima Barang Tanda Tangan Supir | Bag. Pengeluaran Barang Bag. Pengeluaran Barang | Bag. Pengeluaran Barang | +| Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659990561` +- **noPO**: `PO/26/0000241938` +- **noSO**: `1691972227` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Sanitized items (4 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | +| Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN 1 | 6 WH 01 / 01 Bagian Penjualan | +| Penerima Barang Tanda Tangan Supir | Penerima Barang Tanda Tangan Supir | Bag. Pengeluaran Barang Bag. Pengeluaran Barang | Bag. Pengeluaran Barang | +| Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659990561` +- **noPO**: `PO/26/0000241938` +- **noSO**: `1691972227` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21002601 | 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21002601 | 21002601 | Prima Nasi Spicy Chick Sambal Geprek COPY | 1 BOX | 6 PAC | + +--- + +### 5. `1782888609885-rotated_1782888593813_1000000454.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `22.84°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +
Image
+ + +Kepala : Kepala Gudang + +00161083 + +## DELIVERY ORDER + +No. PO : PO/26/0000238723 + +65-58 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + + + +Order Untuk : DKI AREA + +61-50 Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADENANGAN. + +JAKARTA UTARA.14430 + + +
Kode BarangNama BarangBanyakJumlah
11310014Griller Size 2 ( 20 Ekor ) Frozen360 PG
11310024Griller Size A Frozen ( 900-1000 G) PC240 PG
11660050Drumstick Frozen Pack110 KG
11690053SBB Mitra 10 Kg110 KG
11720055Full Wind Frozen Pack110 KG
11750050Fillet Mitra 10 Kg110 KG
Barang dikirim dalam keadaan baikJumlah104140
Truck No. B 9715 UXUWH Q1 / 01
PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +
Image
+ + +Lembar 3 : Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `Not Found` +- **noPO**: `PO/26/0000238723` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9715 UXU` + +**Raw items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | +| 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | +| Truck No. B 9715 UXU | WH Q1 / 01 | WH Q1 / 01 | WH Q1 / 01 | +| PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `Not Found` +- **noPO**: `PO/26/0000238723` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9715 UXU` + +**Sanitized items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 3 KRG | 60 PG | +| 11310024 | Griller Size A Frozen ( 900-1000 G) PC | 2 KRG | 40 PG | +| 11660050 | Drumstick Frozen Pack | 1 | 10 KG | +| 11690053 | SBB Mitra 10 Kg | 1 | 10 KG | +| 11720055 | Full Wind Frozen Pack | 1 | 10 KG | +| 11750050 | Fillet Mitra 10 Kg | 1 | 10 KG | +| Truck No. B 9715 UXU | WH Q1 / 01 | WH Q1 / 01 | WH Q1 / 01 | +| PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | PX HEAD OFFICE ANCOL \| JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. = | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `Not Found` +- **noPO**: `PO/26/0000238723` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9715 UXU` + +**Final items after SKU validation (6 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +--- + +### 6. `1782890303600-1000000465.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `17.41°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown + +
CHARDEN POKPHAND INDONESIA TBK06:28:48 / 1otTanggal :30 June 2026
AWASAM INDUSTRI MODERN.No. SO :1691972284
BANTENNo. DO :1659990583
No. PO :PO/26/0000241302
+ +
Image
+ + +00088615 + +Kepada : Kepala Gudang + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. + +JAKARTA UTARA. 14430 + + + + +
Kode BarangNama BarangBanyakJumlah
12010509829 Champ Crunchy Nugget 450 G1 BOX10 PAC
12010512888 Champ Naget Avam Kombinasi 900 G1 BOX6 PAC
12010519894 CHAMP NAGET KOMBINASI BENTUK STIK 901 BOX6 PAC
12012501600 Akumo Chicken Naget 250 Gr1 BOX20 PAC
12012503602 Akumo Chicken Naget 1 Ka1 BOX5 PAC
13010116692 Fiesta Original Sausage 300 GR1 BOX20 PAC
13010514299 Champ Chicken Sausage 1 Ka FR1 BOX10 PAC
13030502298 Champ Chicken Ball 500 GR Fr1 BOX10 PAC
Barang dikirim dalam keadaan baikJumlah
Image56 JXRWH 01 / 01
HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Image
Bag. Pengeluaran Barang Bagian Peniualan
+ +Lembar3 : Customer + +3 : Customer +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659990583` +- **noPO**: `PO/26/0000241302` +- **noSO**: `1691972284` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010512 | CHAMP NUGGET AYAM 900 GR/PAC | 1 BOX | 6 PAC | +| 12010519 | CHAMP NUGGET STICK 900 GR/PAC | 1 BOX | 6 PAC | +| 12012501 | AKUMO CHICKEN NAGET 250 GR | 1 BOX | 20 PAC | +| 12012503 | AKUMO CHICKEN NUGGET 1000 GR | 1 BOX | 5 PAC | +| 13010116 | FIESTA SSG ORIGINAL 300 GR | 1 BOX | 20 PAC | +| 13010514 | CHAMP CHICK SSG 1000 GR | 1 BOX | 10 PAC | +| 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | +| | 56 JXR | WH 01 / 01 | WH 01 / 01 | +| HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | | +| Bag. Pengeluaran Barang Bagian Peniualan | Bag. Pengeluaran Barang Bagian Peniualan | Bag. Pengeluaran Barang Bagian Peniualan | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659990583` +- **noPO**: `PO/26/0000241302` +- **noSO**: `1691972284` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010509 | 829 Champ Crunchy Nugget 450 G | 1 BOX | 10 PAC | +| 12010512 | 888 Champ Naget Avam Kombinasi 900 G | 1 BOX | 6 PAC | +| 12010519 | 894 CHAMP NAGET KOMBINASI BENTUK STIK 90 | 1 BOX | 6 PAC | +| 12012501 | 600 Akumo Chicken Naget 250 Gr | 1 BOX | 20 PAC | +| 12012503 | 602 Akumo Chicken Naget 1 Ka | 1 BOX | 5 PAC | +| 13010116 | 692 Fiesta Original Sausage 300 GR | 1 BOX | 20 PAC | +| 13010514 | 299 Champ Chicken Sausage 1 Ka FR | 1 BOX | 10 PAC | +| 13030502 | 298 Champ Chicken Ball 500 GR Fr | 1 BOX | 10 PAC | +| | 56 JXR | WH 01 / 01 | WH 01 / 01 | +| HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | | +| Bag. Pengeluaran Barang Bagian Peniualan | Bag. Pengeluaran Barang Bagian Peniualan | Bag. Pengeluaran Barang Bagian Peniualan | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659990583` +- **noPO**: `PO/26/0000241302` +- **noSO**: `1691972284` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (8 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010509 | 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010512 | 12010512 | CHAMP NUGGET AYAM 900 GR/PAC | 1 BOX | 6 PAC | +| 12010519 | 12010519 | CHAMP NUGGET STICK 900 GR/PAC | 1 BOX | 6 PAC | +| 12012501 | 12012501 | AKUMO CHICKEN NAGET 250 GR | 1 BOX | 20 PAC | +| 12012503 | 12012503 | AKUMO CHICKEN NUGGET 1000 GR | 1 BOX | 5 PAC | +| 13010116 | 13010116 | FIESTA SSG ORIGINAL 300 GR | 1 BOX | 20 PAC | +| 13010514 | 13010514 | CHAMP CHICK SSG 1000 GR | 1 BOX | 10 PAC | +| 13030502 | 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010509 | 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010512 | 12010512 | CHAMP NUGGET AYAM 900 GR/PAC | 1 BOX | 6 PAC | +| 12010519 | 12010519 | CHAMP NUGGET STICK 900 GR/PAC | 1 BOX | 6 PAC | +| 12012501 | 12012501 | AKUMO CHICKEN NAGET 250 GR | 1 BOX | 20 PAC | +| 12012503 | 12012503 | AKUMO CHICKEN NUGGET 1000 GR | 1 BOX | 5 PAC | +| 13010116 | 13010116 | FIESTA SSG ORIGINAL 300 GR | 1 BOX | 20 PAC | +| 13010514 | 13010514 | CHAMP CHICK SSG 1000 GR | 1 BOX | 10 PAC | +| 13030502 | 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +--- + +### 7. `1782892728794-1000000466.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `10.1°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN. + +BANTEN + +06:28:48 / 2 + +00088616 + +pada : Kepala Gudang + +of tanggal : 30 June 2026 + +No. SO : 1691972284 + +
Image
+ + +No. DO : 1659990583 + +No. PO : PO/26/0000241302 + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat + +JL. ANCOL BARAT VIII/1. ANCOL. + +PADEMANGAN. JAKARTA UTARA. 14430 + +JAKARTA UTARA + + +
Kode BarangNama BarangBanyakJumlah
15040101903 Fiesta French F Batter Coated 500 GR1 BOX12 PAC
COPY
Barang dikirim dalam keadaan baikJumlah999
ImageB 9256 JXR WH 01 / 01\nPX HEAD OFFICE ANCOL ! JL. ANCOL BARAT\nVIII NO. 1 JAKARTA UTARA IDN\nTanda Tangan Supir Bag. Pengeluaran BarangJ
+ +Lembar 3: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +Jika D.O. ini telah ditanau + +- +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659990583` +- **noPO**: `PO/26/0000241302` +- **noSO**: `1691972284` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN. +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9256 JXR` + +**Raw items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 15040101 | FIESTA BATTER COATED 500 GR | 1 BOX | 12 PAC | +| | B 9256 JXR WH 01 / 01 | 1 J | | +| | PX HEAD OFFICE ANCOL ! JL. ANCOL BARAT | 1 | | +| | VIII NO. 1 JAKARTA UTARA IDN | 1 | | +| | Tanda Tangan Supir Bag. Pengeluaran Barang | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659990583` +- **noPO**: `PO/26/0000241302` +- **noSO**: `1691972284` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN. +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9256 JXR` + +**Sanitized items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 15040101 | 903 Fiesta French F Batter Coated 500 GR | 1 BOX | 12 PAC | +| | B 9256 JXR WH 01 / 01 | 1 J | | +| | PX HEAD OFFICE ANCOL ! JL. ANCOL BARAT | 1 | | +| | VIII NO. 1 JAKARTA UTARA IDN | 1 | | +| | Tanda Tangan Supir Bag. Pengeluaran Barang | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659990583` +- **noPO**: `PO/26/0000241302` +- **noSO**: `1691972284` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN. +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9256 JXR` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 15040101 | 15040101 | FIESTA BATTER COATED 500 GR | 1 BOX | 12 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 15040101 | 15040101 | FIESTA BATTER COATED 500 GR | 1 BOX | 12 PAC | + +--- + +### 8. `IMG_20260630_145445.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `10.71°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +☐ ☑ ☐ ☑ + +. + +🔥 🌈 🔥 — ☕ × + +
WhatsApp Image 2026-06-23 at 10.41.41.jpeg
+ + +LUIA TUR + +22222222 + +epada : Kepala Gudang + +00117709 + +Tanggal:25 May 2026 + +No.SO : 1071721209 + +No. DO : 1057745004 + +## DELIVERY ORDER + +No. PO : PO/20/0000170727 + +Kepada Yth : PT.PRINHFOVO INTERNATIONAL + +Order Untuk : FTM KU + +Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PAOENANGAR. + +JAKARTA UTAHRA,19430 + + +
Kode BarangNama BarangJAKARTA UFARABanyakJumlah
13030502290 Champ Chicken Ball 500 GR Tr Image180%10 PAC
Barang dikirim dalam keadaan baikJumlah
+ +Truck Nò. " - " B 9536 000 + +期日/01 + +2771 + +1200×1600 192 KB + +in + +[ ] [ ] + +121% +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1057745004` +- **noPO**: `PO/26/0000170727` +- **noSO**: `1071721209` +- **tanggal**: `25 May 2026` +- **vendorInfo**: `PT.PRINHFOVO INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (1 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1057745004` +- **noPO**: `PO/26/0000170727` +- **noSO**: `1071721209` +- **tanggal**: `25 May 2026` +- **vendorInfo**: `PT.PRINHFOVO INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (1 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 13030502 | 290 Champ Chicken Ball 500 GR Tr | 1 80% | 10 PAC | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1057745004` +- **noPO**: `PO/26/0000170727` +- **noSO**: `1071721209` +- **tanggal**: `25 May 2026` +- **vendorInfo**: `PT.PRINHFOVO INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 13030502 | 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 13030502 | 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +--- + +### 9. `IMG_20260701_134446.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown + +
Kode BarangNama Barang1.950.00Amount +1.755.000.00
21002601Prima Nasi Spicy Chick Sambal Beprek COPY16 PAC✓
Barang dikirim dalam keadaan baikJumlah6
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan
Penerima Barang Lember 3 : CustomerTanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang
+ +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `Not Found` +- **noPO**: `Not Found` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21002601 | Prima Nasi Spicy Chick Sambal Beprek COPY | 1 BOX | 6 PAC | +| Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | +| Penerima Barang Lember 3 : Customer | Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang | Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang | Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `Not Found` +- **noPO**: `Not Found` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21002601 | Prima Nasi Spicy Chick Sambal Beprek COPY | 1 BOX | 6 PAC | +| Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan | +| Penerima Barang Lember 3 : Customer | Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang | Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang | Tanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `Not Found` +- **noPO**: `Not Found` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9257 JXR` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21002601 | 21002601 | Prima Nasi Spicy Chick Sambal Beprek COPY | 1 BOX | 6 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21002601 | 21002601 | Prima Nasi Spicy Chick Sambal Beprek COPY | 1 BOX | 6 PAC | + +--- + +### 10. `IMG_20260701_134504.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `14.75°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown + +
70000006 PRIMA TELUR OMEGA (PC)(*) qty unitH/PCS1.950.001.755.000.00
Total qty :90006:28:57Tanggal : 30 June 2026\nNo. SO : 1691972285\nNo. DO : 1659990584\nNo. PO : 07/26/0000241303
INDONESIA TbKRN.
+ +## 00088617 + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. + +JAKARTA UTARA. 14430 + + +
Kode BarangNama BarangBanyakJumlah
21010104Fiesta Beet Rendang W Rice 320G 6PC1 BOX6 PAC
COPY
Barang dikirim dalam keadaan baikJumlah16
ImageImageWH 01 / 01
JAKARTA UTARA IDN
Bag. Pengeluaran BarangBagian Penjualan
+ +Lembar 3 : Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659990584` +- **noPO**: `PO/26/0000241303` +- **noSO**: `1691972285` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21010104 | NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) | 1 BOX | 6 PAC | +| JAKARTA UTARA IDN | JAKARTA UTARA IDN | 1 | | +| Bag. Pengeluaran Barang | Bagian Penjualan | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659990584` +- **noPO**: `PO/26/0000241303` +- **noSO**: `1691972285` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 21010104 | Fiesta Beet Rendang W Rice 320G 6PC | 1 BOX | 6 PAC | +| JAKARTA UTARA IDN | JAKARTA UTARA IDN | 1 | | +| Bag. Pengeluaran Barang | Bagian Penjualan | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659990584` +- **noPO**: `PO/26/0000241303` +- **noSO**: `1691972285` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21010104 | 21010104 | NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) | 1 BOX | 6 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 21010104 | 21010104 | NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) | 1 BOX | 6 PAC | + +--- + +### 11. `IMG_20260701_134555.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.15°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +IDONESIA IDK + +No.1. + +04:59:54 + +Tanggal : + +## DELIVERY ORDER + +No.SO : 30 June 2026 + +No. DO : 2271289510 + +Kepada Yth : + +No. PO : 2272290022 + +PO/26/0000241304 + +Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : DKI AREA + +JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. + + +
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
11048006PARTING 150 - 160 GR FRZ PACK\nCOPY2BOX30 PAC ✓
Barang dikirim dalam keadaan baikJumlah
Truck No.ImageImage230
Lembar 3 - CustomerImageBag. Pengeluaran BarangUTARA IDNBagian Penjualan
+ +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `2272290022` +- **noPO**: `PO/26/0000241304` +- **noSO**: `2271289510` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11048006 | BEBEK PARTING-NEW(*) | 2 BOX | 30 PAC | +| Truck No. | | 2 | 30 | +| Lembar 3 - Customer | | Bag. Pengeluaran Barang UTARA IDN | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `2272290022` +- **noPO**: `PO/26/0000241304` +- **noSO**: `2271289510` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11048006 | PARTING 150 - 160 GR FRZ PACK | 2 BOX | 30 PAC | +| Truck No. | | 2 | 30 | +| Lembar 3 - Customer | | Bag. Pengeluaran Barang UTARA IDN | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `2272290022` +- **noPO**: `PO/26/0000241304` +- **noSO**: `2271289510` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11048006 | 11048006 | BEBEK PARTING-NEW(*) | 2 BOX | 30 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11048006 | 11048006 | BEBEK PARTING-NEW(*) | 2 BOX | 30 PAC | + +--- + +### 12. `IMG_20260701_134555~2.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.22°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +IDONESIA IDK + +NO. 1. + +04:59:54 + +Tanggal: + +## DELIVERY ORDER + +No.SO : 30 June 2026 + +No. DO : 2271289510 + +Kepada Yth + +No. PO : 2272290022 + +PO/26/0000241304 + +Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : DKI AREA + +JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. + + +
Kode BarangNama BarangJAKARTA UTARA. 14430\nJAKARTA UTARABanyakJumlah
11048000PARTING 150 - 160 GR FRZ PACK\nCOPY2BOX30 PAC ✓
Image
Barang dikirim dalam keadaan baik
Truck NoBARAT230
ImageImageImageUTARA IDN
Lembar 3 - CustomerBagian Penjualan
+ +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `2272290022` +- **noPO**: `PO/26/0000241304` +- **noSO**: `2271289510` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11048000 | PARTING 150 - 160 GR FRZ PACK | 2 BOX | 30 PAC | +| Truck No | BARAT | 2 30 | 30 | +| Lembar 3 - Customer | Lembar 3 - Customer | Lembar 3 - Customer Bagian Penjualan | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `2272290022` +- **noPO**: `PO/26/0000241304` +- **noSO**: `2271289510` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11048000 | PARTING 150 - 160 GR FRZ PACK | 2 BOX | 30 PAC | +| Truck No | BARAT | 2 30 | 30 | +| Lembar 3 - Customer | Lembar 3 - Customer | Lembar 3 - Customer Bagian Penjualan | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `2272290022` +- **noPO**: `PO/26/0000241304` +- **noSO**: `2271289510` +- **tanggal**: `30 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11048000 | 11048000 | PARTING 150 - 160 GR FRZ PACK | 2 BOX | 30 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11048000 | 11048000 | PARTING 150 - 160 GR FRZ PACK | 2 BOX | 30 PAC | + +--- + +### 13. `IMG_20260701_134646~2.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.57°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +## Purchase Order + + +
Nomor P.O: PO/26/0000230199
: 22/06/2026
KAWASAKI INDUSTRI MODERN. BANTEN02:56:41Tanggal :
No. SO : 23 June 2026
No. DO : 1691960321
DELIVERY ORDERNo. PO : 1659980277
+ +Kepala Gudang + +00169133 + +Kepada Yth : + +Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : DKI AREA + +JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. + + +
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTA RABanyakJumlah
11310014\n11310024\n11620056\n11690053\n11720055✓ Griller Size 2 ( 20 Ekor ) Frozen\n✓ Griller Size A Frozen (900-1000 G) PC\n✓ SBL Mitra 10 Kg\n✓ SBB Mitra 10 Kg\n✓ Full Wing Frozen Pack2KRG40 PC
2KRG40 PC
1BOX10 KG
1BOX10 KG
1BOX10 KG
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9427 UXT\nPX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
Penerima Barang Tanda Tangan Supir\nBag. Pengeluaran Barang
3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani
+ + +
COPY P.O SELALUPPN254,000.00
Total
Menyetujui
+``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659980277` +- **noPO**: `PO/26/0000230199` +- **noSO**: `1691960321` +- **tanggal**: `23 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9427 UXT` + +**Raw items (10 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 2 KRG | 40 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11620056 | SBL (FILLET PAHA) 1 KG(*) | 1 BOX | 10 KG | +| 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | +| Truck No. B 9427 UXT | Truck No. B 9427 UXT | Truck No. B 9427 UXT | | +| PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Truck No. B 9427 UXT | | +| Penerima Barang Tanda Tangan Supir | Penerima Barang Tanda Tangan Supir | Penerima Barang Tanda Tangan Supir | | +| Bag. Pengeluaran Barang | Bag. Pengeluaran Barang | Bag. Pengeluaran Barang Penerima Barang Tanda Tangan Supir | | +| 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659980277` +- **noPO**: `PO/26/0000230199` +- **noSO**: `1691960321` +- **tanggal**: `23 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9427 UXT` + +**Sanitized items (10 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | ✓ Griller Size 2 ( 20 Ekor ) Frozen | 2 KRG | 40 PC | +| 11310024 | ✓ Griller Size A Frozen (900-1000 G) PC | 2 KRG | 40 PC | +| 11620056 | ✓ SBL Mitra 10 Kg | 1 BOX | 10 KG | +| 11690053 | ✓ SBB Mitra 10 Kg | 1 BOX | 10 KG | +| 11720055 | ✓ Full Wing Frozen Pack | 1 BOX | 10 KG | +| Truck No. B 9427 UXT | Truck No. B 9427 UXT | Truck No. B 9427 UXT | | +| PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN | PX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Truck No. B 9427 UXT | | +| Penerima Barang Tanda Tangan Supir | Penerima Barang Tanda Tangan Supir | Penerima Barang Tanda Tangan Supir | | +| Bag. Pengeluaran Barang | Bag. Pengeluaran Barang | Bag. Pengeluaran Barang Penerima Barang Tanda Tangan Supir | | +| 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659980277` +- **noPO**: `PO/26/0000230199` +- **noSO**: `1691960321` +- **tanggal**: `23 June 2026` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9427 UXT` + +**Final items after SKU validation (5 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 2 KRG | 40 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11620056 | 11620056 | SBL (FILLET PAHA) 1 KG(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 2 KRG | 40 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11620056 | 11620056 | SBL (FILLET PAHA) 1 KG(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 1 BOX | 10 KG | + +--- + +### 14. `IMG_20260701_134810.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +- + + +
Kode BarangNama BarangBanyakJumlah
11140062\n11150064\n11310014\n11600053\n11650053\n11750050Ambela 1 KG Frozen\nHati 1 KG Frozen\nGriller Size 2 ( 20 Ekor ) Frozen\nBL Mitra 10 Kq\nThighstick Frozen Pack\nFillet Mitra 10 Kq1 KRG\n1 KRG\n3 KRG\n1 BOX\n1 BOX20 KG\n20 KG\n60 KG\n10 KG\n10 KG\n10 KG
Jumlah65130
+``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `Not Found` +- **noPO**: `Not Found` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11600053 | BONELESS LEG FROZEN 1 KG(*) | 1 BOX | 10 KG | +| 11650053 | PAHA ATAS 1 KG(*) | 1 BOX | 10 KG | +| 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | +| | 65 | 130 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `Not Found` +- **noPO**: `Not Found` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | Ambela 1 KG Frozen | 1 KRG | 20 KG | +| 11150064 | Hati 1 KG Frozen | 1 KRG | 20 KG | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 3 KRG | 60 KG | +| 11600053 | BL Mitra 10 Kq | 1 BOX | 10 KG | +| 11650053 | Thighstick Frozen Pack | 1 BOX | 10 KG | +| 11750050 | Fillet Mitra 10 Kq | 1 | 10 KG | +| | 65 | 130 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `Not Found` +- **noPO**: `Not Found` +- **noSO**: `Not Found` +- **tanggal**: `Not Found` +- **vendorInfo**: `Not Found` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (6 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11150064 | 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11600053 | 11600053 | BONELESS LEG FROZEN 1 KG(*) | 1 BOX | 10 KG | +| 11650053 | 11650053 | PAHA ATAS 1 KG(*) | 1 BOX | 10 KG | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11150064 | 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11600053 | 11600053 | BONELESS LEG FROZEN 1 KG(*) | 1 BOX | 10 KG | +| 11650053 | 11650053 | PAHA ATAS 1 KG(*) | 1 BOX | 10 KG | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +--- + +### 15. `Sample DO PFM-page-00001.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.08°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN ROKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +00:25:03 + +. + +Tanggal : 23 April 2026 + +No.SO : 1691879196 + +No. DO : 1659905109 + +# DELIVERY ORDER + +Kepada : Kepala Gudang + +00194611 + +No. PO : PO/26/0000150175 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
17210109FIESTA RTS BEEF BULGOGI 300G SPAC1 BOX8 PAC
ASLI
Barang dikirim dalam keadaan baikJumlah18
Truck No. B 9948 VCC PH PANDU RAYA | JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I Image
Penerima BarangBag. Pengeluaran BarangBagian Penjualan
+ +
Image
+ + +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659905109` +- **noPO**: `PO/26/0000150175` +- **noSO**: `1691879196` +- **tanggal**: `23 April 2026` +- **vendorInfo**: `PT. CHAROEN ROKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9948 VCC` + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 17210109 | FIESTA RTS B/BULGOGI 300GR/PAC | 1 BOX | 8 PAC | +| Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | +| | Bag. Pengeluaran Barang | Bagian Penjualan | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659905109` +- **noPO**: `PO/26/0000150175` +- **noSO**: `1691879196` +- **tanggal**: `23 April 2026` +- **vendorInfo**: `PT. CHAROEN ROKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9948 VCC` + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 17210109 | FIESTA RTS BEEF BULGOGI 300G SPAC | 1 BOX | 8 PAC | +| Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | Truck No. B 9948 VCC PH PANDU RAYA \| JL PANDU RAYA/H ACHMAD ADNAWIJIN Y NO.68 RT1/RW15, TEGAL GUNDIL B OGOR, IDN16152 I | +| | Bag. Pengeluaran Barang | Bagian Penjualan | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659905109` +- **noPO**: `PO/26/0000150175` +- **noSO**: `1691879196` +- **tanggal**: `23 April 2026` +- **vendorInfo**: `PT. CHAROEN ROKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9948 VCC` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 17210109 | 17210109 | FIESTA RTS B/BULGOGI 300GR/PAC | 1 BOX | 8 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 17210109 | 17210109 | FIESTA RTS B/BULGOGI 300GR/PAC | 1 BOX | 8 PAC | + +--- + +### 16. `Sample DO PFM-page-00002.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +06:50:01 + +Kepada : Kepala Gudang + +00527820 + +Tanggal : 17 April 2026 + +No. SO : 1691871022 + +## DELIVERY ORDER + +No. DO : 1659897809 + +No. PO : PO/26/0000142266 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11110074\n11310021Ceker 1 KG Frozen\nGriller Size B Frozen (1000-1100 G) PC\nASLI1 KRG\n1 KRG20 KG\n20 PC
Barang dikirim dalam keadaan baikJumlah2140
Truck No. B 9599 CXS\nP M NEW BINTARO :\nJURANGMANGGU TI\nImageNTARO U Image Bag. Pengekaran BarangWH 01 / 01\nZA NO 17 RT 01 RW011 KEL. Baglan Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659897809` +- **noPO**: `PO/26/0000142266` +- **noSO**: `1691871022` +- **tanggal**: `17 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9599 CXS` + +**Raw items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 1 KRG | 20 PC | +| Truck No. B 9599 CXS | NTARO U Bag. Pengekaran Barang | WH 01 / 01 | WH 01 / 01 | +| P M NEW BINTARO : | | ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan | ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan | +| JURANGMANGGU TI | | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659897809` +- **noPO**: `PO/26/0000142266` +- **noSO**: `1691871022` +- **tanggal**: `17 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9599 CXS` + +**Sanitized items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11110074 | Ceker 1 KG Frozen | 1 KRG | 20 KG | +| 11310021 | Griller Size B Frozen (1000-1100 G) PC | 1 KRG | 20 PC | +| Truck No. B 9599 CXS | NTARO U Bag. Pengekaran Barang | WH 01 / 01 | WH 01 / 01 | +| P M NEW BINTARO : | | ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan | ZA NO 17 RT 01 RW011 KEL. Baglan Penjualan | +| JURANGMANGGU TI | | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659897809` +- **noPO**: `PO/26/0000142266` +- **noSO**: `1691871022` +- **tanggal**: `17 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9599 CXS` + +**Final items after SKU validation (2 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11110074 | 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310021 | 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 1 KRG | 20 PC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11110074 | 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310021 | 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 1 KRG | 20 PC | + +--- + +### 17. `Sample DO PFM-page-00003.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.14°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PI KAWASAN INDUSTRI MODERN, INDONESIA TBK + +BANTEN + +07:02:48 + +Tanggal : 17.A0511.2026 + +No. SO : 1691870689 + +Kepada :.Kepala Gudang + +No. DO : 1659897396 + +00527857 + +No. PO : PO/26/0000142693 + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + +JAKARTA UTARA + + +
Kode BarangNama BarangBanyakJumlah
11310024\n11640053✓ Griller Size A Frozen (900-1000 G) PC\n✓ Bone In Leg Frozen Pack\nASLI2\n1040 PC\n10 KG
Barang dikirim dalam keadaan baik5050
Truck No.B 9254 SCG\nP M TAMAN DUTA CIBODAS / JL. DUTA RAYA E NG JAYA, PRIUK TANGWH 01 / 01\nPERUM TAMAN CIBODAS, SANGIA
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659897396` +- **noPO**: `PO/26/0000142693` +- **noSO**: `1691870689` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9254 SCG` + +**Raw items (4 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11640053 | PAHA UTUH (1 KG)(*) | 10 BAG | 10 KG | +| Truck No. | B 9254 SCG | WH 01 / 01 PERUM TAMAN CIBODAS, SANGIA | WH 01 / 01 | +| | P M TAMAN DUTA CIBODAS / JL. DUTA RAYA E NG JAYA, PRIUK TANG | 1 | PERUM TAMAN CIBODAS, SANGIA | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659897396` +- **noPO**: `PO/26/0000142693` +- **noSO**: `1691870689` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9254 SCG` + +**Sanitized items (4 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310024 | ✓ Griller Size A Frozen (900-1000 G) PC | 2 KRG | 40 PC | +| 11640053 | ✓ Bone In Leg Frozen Pack | 10 BAG | 10 KG | +| Truck No. | B 9254 SCG | WH 01 / 01 PERUM TAMAN CIBODAS, SANGIA | WH 01 / 01 | +| | P M TAMAN DUTA CIBODAS / JL. DUTA RAYA E NG JAYA, PRIUK TANG | 1 | PERUM TAMAN CIBODAS, SANGIA | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659897396` +- **noPO**: `PO/26/0000142693` +- **noSO**: `1691870689` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9254 SCG` + +**Final items after SKU validation (2 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11640053 | 11640053 | PAHA UTUH (1 KG)(*) | 10 BAG | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11640053 | 11640053 | PAHA UTUH (1 KG)(*) | 10 BAG | 10 KG | + +--- + +### 18. `Sample DO PFM-page-00004.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.02°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +
Image
+ + +PT. CHAROEN POKPHANO INDONESIA TBK + +KAWASAN INDUSTRI MOOERN, + +BANTEN + +06:29:25 + +Tanggal : 14 April 2026 + +No.SO : 1691865548 + +No. DO : 1659892421 + +00005997 + +Kepada : Kepala Gudang + +No.PO : PO/26/0000137547 + +# DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN. + +JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11310014\n11310024\n11710051Griller Size 2 ( 20 Ekor ) Frozen\nGriller Size A Frozen (900-1000 G) PC\nBone In Breast Frozen Pack3\n7\n1060 PC\n140 PC\n10 KG
Barang dikirim dalam keadaan baikJumlah210210
Truck No. B 9053 VCF\nPANTASMITA | JL ARIA SANTIKA, SASHITA, KARA Image\nTanda Tangan Supir Bag. Pengeluaran BarangImageWH 01 / 01\nTANGERANG, IDN15113 IDNBagian Penjualan
+ +Lombar 1: Customer + +Bagian Penjualan + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa senggahan, segala CLAIM atas kekurangan barang tidak dapat kami taryani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659892421` +- **noPO**: `PO/26/0000137547` +- **noSO**: `1691865548` +- **tanggal**: `14 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHANO INDONESIA TBK +KAWASAN INDUSTRI MOOERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9053 VCF` + +**Raw items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 7 KRG | 140 PC | +| 11710051 | DADA UTUH (1 KG)(*) | 10 BOX | 10 KG | +| Truck No. B 9053 VCF | | WH 01 / 01 | Bagian Penjualan | +| PANTASMITA \| JL ARIA SANTIKA, SASHITA, KARA | | TANGERANG, IDN15113 IDN | | +| Tanda Tangan Supir Bag. Pengeluaran Barang | | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659892421` +- **noPO**: `PO/26/0000137547` +- **noSO**: `1691865548` +- **tanggal**: `14 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHANO INDONESIA TBK +KAWASAN INDUSTRI MOOERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9053 VCF` + +**Sanitized items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 3 KRG | 60 PC | +| 11310024 | Griller Size A Frozen (900-1000 G) PC | 7 KRG | 140 PC | +| 11710051 | Bone In Breast Frozen Pack | 10 | 10 KG | +| Truck No. B 9053 VCF | | WH 01 / 01 | Bagian Penjualan | +| PANTASMITA \| JL ARIA SANTIKA, SASHITA, KARA | | TANGERANG, IDN15113 IDN | | +| Tanda Tangan Supir Bag. Pengeluaran Barang | | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659892421` +- **noPO**: `PO/26/0000137547` +- **noSO**: `1691865548` +- **tanggal**: `14 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHANO INDONESIA TBK +KAWASAN INDUSTRI MOOERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9053 VCF` + +**Final items after SKU validation (3 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 7 KRG | 140 PC | +| 11710051 | 11710051 | DADA UTUH (1 KG)(*) | 10 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 7 KRG | 140 PC | +| 11710051 | 11710051 | DADA UTUH (1 KG)(*) | 10 BOX | 10 KG | + +--- + +### 19. `Sample DO PFM-page-00005.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.04°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA + +KAWASAN INDUSTRI MODERN, + +BANTEN + +02:34:54 + +Tanggal : 09 April 2026 + + + +No. SO : 1691859106 + +'No. DO : 1659886692 + +No. PO : P0/26/0000131178 + +## DELIVERY ORDER + +Kepada :.Kepala Gudang + +00506101 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL. BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
12010112865 Fiesta Chicken Nugget 400G ✓1BOX12 PAC
12010124913 FIESTA CHEESY CHICKEN WITH BROCCOLI ✓1BOX12 PAC
12010509829 Champ Crunchy Nugget 450 G ✓1BOX10 PAC
12010521927 CHAMP NUGGET HOTZZ LEVEL 5 450 G ✓1BOX12 PAC
12010606823 CHAMP CRUNCHY NUGGET 225G ✓1BOX25 PAC
12030101864 Fiesta Stikie 400G ✓1BOX12 PAC
13010514299 Champ Chicken Sausage 1 Kg FR ✓1BOX10 PAC
13070502302 Champ Beef Sausage 375 GR Fr ✓1BOX24 PAC
Barang dikirim dalam keadaan baikJumlah8117
Truck No. B 9260 BXT PM SALAM RAYA | JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN Image
Penerima BarangTanda Tangan SupirBag. Pengeluaran Baraijualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659886692` +- **noPO**: `PO/26/0000131178` +- **noSO**: `1691859106` +- **tanggal**: `09 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 BXT` + +**Raw items (9 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010112 | FIESTA CHICKEN NUGGET 400 GR/PAC | 1 BOX | 12 PAC | +| 12010124 | FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC | 1 BOX | 12 PAC | +| 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010521 | CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC | 1 BOX | 12 PAC | +| 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12030101 | FIESTA STIKIE 400 GR/PAC | 1 BOX | 12 PAC | +| 13010514 | CHAMP CHICK SSG 1000 GR | 1 BOX | 10 PAC | +| 13070502 | CHAMP BEEF SSG SERBAGUNA 375GR | 1 BOX | 24 PAC | +| Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659886692` +- **noPO**: `PO/26/0000131178` +- **noSO**: `1691859106` +- **tanggal**: `09 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 BXT` + +**Sanitized items (9 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010112 | 865 Fiesta Chicken Nugget 400G ✓ | 1 BOX | 12 PAC | +| 12010124 | 913 FIESTA CHEESY CHICKEN WITH BROCCOLI ✓ | 1 BOX | 12 PAC | +| 12010509 | 829 Champ Crunchy Nugget 450 G ✓ | 1 BOX | 10 PAC | +| 12010521 | 927 CHAMP NUGGET HOTZZ LEVEL 5 450 G ✓ | 1 BOX | 12 PAC | +| 12010606 | 823 CHAMP CRUNCHY NUGGET 225G ✓ | 1 BOX | 25 PAC | +| 12030101 | 864 Fiesta Stikie 400G ✓ | 1 BOX | 12 PAC | +| 13010514 | 299 Champ Chicken Sausage 1 Kg FR ✓ | 1 BOX | 10 PAC | +| 13070502 | 302 Champ Beef Sausage 375 GR Fr ✓ | 1 BOX | 24 PAC | +| Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | Truck No. B 9260 BXT PM SALAM RAYA \| JL.SALAM RAYA RT.05 RW.03 KEL SUKABUMI ARTA BARAT,11540 IDN | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659886692` +- **noPO**: `PO/26/0000131178` +- **noSO**: `1691859106` +- **tanggal**: `09 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 BXT` + +**Final items after SKU validation (8 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010112 | 12010112 | FIESTA CHICKEN NUGGET 400 GR/PAC | 1 BOX | 12 PAC | +| 12010124 | 12010124 | FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC | 1 BOX | 12 PAC | +| 12010509 | 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010521 | 12010521 | CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC | 1 BOX | 12 PAC | +| 12010606 | 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12030101 | 12030101 | FIESTA STIKIE 400 GR/PAC | 1 BOX | 12 PAC | +| 13010514 | 13010514 | CHAMP CHICK SSG 1000 GR | 1 BOX | 10 PAC | +| 13070502 | 13070502 | CHAMP BEEF SSG SERBAGUNA 375GR | 1 BOX | 24 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010112 | 12010112 | FIESTA CHICKEN NUGGET 400 GR/PAC | 1 BOX | 12 PAC | +| 12010124 | 12010124 | FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC | 1 BOX | 12 PAC | +| 12010509 | 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010521 | 12010521 | CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC | 1 BOX | 12 PAC | +| 12010606 | 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12030101 | 12030101 | FIESTA STIKIE 400 GR/PAC | 1 BOX | 12 PAC | +| 13010514 | 13010514 | CHAMP CHICK SSG 1000 GR | 1 BOX | 10 PAC | +| 13070502 | 13070502 | CHAMP BEEF SSG SERBAGUNA 375GR | 1 BOX | 24 PAC | + +--- + +### 20. `Sample DO PFM-page-00006.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `3.25°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK 6 + +KAWASAN INDUSTRI MODERN, + +BANTEN + +Tbk 6 04:09:04 + +Kepada : Kepala Gudang + +Tanggal : 16 April 2026 + +00343957 + +No. SO : 1691868563 + +No. DO : 1659895333 + +## DELIVERY ORDER + +No. PO : PO/26/0000140625 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + +TAKARTA UTADA + + +
Kode BarangNama BarangBanyakJumlah
11140062Ampela 1 KG Frozen2020 KG ✓
11310014Griller Size 2 ( 20 Ekor ) Frozen5100 PC ✓
11310024Griller Size A Frozen (900-1000 G) PC240 PC ✓
11660050Drumstick Frozen Pack1010 KG ✓
Barang dikirim dalam keadaan baikJumlah170170
B 9365 AI\nTRUCK NO. PM REMPOA | JL. IDN ImageREMPOA RAYA), C ImageWH 01 / 01\nG SELATAN, IDN15A12
Penerima BarangBag. Pengeluaran BarangBagian Penjualan
+ +
Image
+ + +REMPOA + +embar 1 : Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +Dipindai dengan +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659895333` +- **noPO**: `PO/26/0000140625` +- **noSO**: `1691868563` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK 6 +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9365 AI` + +**Raw items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 20 KRG | 20 KG | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | PAHA BAWAH (1 KG)(*) | 10 BOX | 10 KG | +| B 9365 AI | REMPOA RAYA), C | WH 01 / 01 | WH 01 / 01 | +| TRUCK NO. PM REMPOA \| JL. IDN | | G SELATAN, IDN15A12 | G SELATAN, IDN15A12 | +| | Bag. Pengeluaran Barang | Bagian Penjualan | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659895333` +- **noPO**: `PO/26/0000140625` +- **noSO**: `1691868563` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK 6 +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9365 AI` + +**Sanitized items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | Ampela 1 KG Frozen | 20 | 20 KG | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 5 KRG | 100 PC | +| 11310024 | Griller Size A Frozen (900-1000 G) PC | 2 KRG | 40 PC | +| 11660050 | Drumstick Frozen Pack | 10 | 10 KG | +| B 9365 AI | REMPOA RAYA), C | WH 01 / 01 | WH 01 / 01 | +| TRUCK NO. PM REMPOA \| JL. IDN | | G SELATAN, IDN15A12 | G SELATAN, IDN15A12 | +| | Bag. Pengeluaran Barang | Bagian Penjualan | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659895333` +- **noPO**: `PO/26/0000140625` +- **noSO**: `1691868563` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK 6 +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9365 AI` + +**Final items after SKU validation (4 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 20 KRG | 20 KG | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 10 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 20 KRG | 20 KG | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 10 BOX | 10 KG | + +--- + +### 21. `Sample DO PFM-page-00007.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.18°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN + +05:54:31 / 1 of Tanggal : 16 April 2026 + +No. SO : 1691869400 + +No. DO : 1659896184 + +No. PO : PO/26/0000140731 + +Kepada : Kepala Gudang + +00527181 + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
12010111\n12010509\n12010511\n12010512\n12010606\n12012202\n12030101\n12060104830 Fiesta Crispy Bubble Nugget 400 G\n829 Champ Crunchy Nugget 450 G\n887 Champ Nagat Awam Kombinasi 450 G\n888 Champ Nagat Ayah Kombinasi 900 G\n823 CHAMP CRUNCHY NUGGET 225G\n749 Asimo Nagat Kombinasi 1000 Gr\n864 Fiesta Stikie 400G\n868 FIESTA KARAGE 400Gr1 ✓ BOX\n1 ✓ BOX\n1 ✓ BOX\n1 ✓ BOX\n1 ✓ BOX\n1 ✓ BOX12 PAC\n10 PAC\n12 PAC\n6 PAC\n25 PAC\n5 PAC\n12 PAC\n12 PAC
Barang dikirim dalam keadaan baikJumlah
ImageXT\nTORE - PM WARUNG JATI TIMUR RAYA ; KALIBATA KECImageWH 01 / 01\nI TIMUR NO 26 RT.07 RM.
Tanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659896184` +- **noPO**: `PO/26/0000140731` +- **noSO**: `1691869400` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010111 | FIESTA CRISPY BUBBLE 400 GR/PAC | 1 BOX | 12 PAC | +| 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010511 | CHAMP NUGGET AYAM 450 GR/PAC | 1 BOX | 12 PAC | +| 12010512 | CHAMP NUGGET AYAM 900 GR/PAC | 1 BOX | 6 PAC | +| 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12012202 | ASIMO NUGGET KOMBINASI 1 KG/PAC | 1 BOX | 5 PAC | +| 12030101 | FIESTA STIKIE 400 GR/PAC | 1 BOX | 12 PAC | +| 12060104 | FIESTA KARAGE 400 GR/PAC | 1 BOX | 12 PAC | +| | XT | 1 | WH 01 / 01 | +| | TORE - PM WARUNG JATI TIMUR RAYA ; KALIBATA KEC | 1 | I TIMUR NO 26 RT.07 RM. | +| | Bag. Pengeluaran Barang | Bagian Penjualan | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659896184` +- **noPO**: `PO/26/0000140731` +- **noSO**: `1691869400` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010111 | 830 Fiesta Crispy Bubble Nugget 400 G | 1 BOX | 12 PAC | +| 12010509 | 829 Champ Crunchy Nugget 450 G | 1 BOX | 10 PAC | +| 12010511 | 887 Champ Nagat Awam Kombinasi 450 G | 1 BOX | 12 PAC | +| 12010512 | 888 Champ Nagat Ayah Kombinasi 900 G | 1 BOX | 6 PAC | +| 12010606 | 823 CHAMP CRUNCHY NUGGET 225G | 1 BOX | 25 PAC | +| 12012202 | 749 Asimo Nagat Kombinasi 1000 Gr | 1 BOX | 5 PAC | +| 12030101 | 864 Fiesta Stikie 400G | 1 BOX | 12 PAC | +| 12060104 | 868 FIESTA KARAGE 400Gr | 1 BOX | 12 PAC | +| | XT | 1 | WH 01 / 01 | +| | TORE - PM WARUNG JATI TIMUR RAYA ; KALIBATA KEC | 1 | I TIMUR NO 26 RT.07 RM. | +| | Bag. Pengeluaran Barang | Bagian Penjualan | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659896184` +- **noPO**: `PO/26/0000140731` +- **noSO**: `1691869400` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (8 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010111 | 12010111 | FIESTA CRISPY BUBBLE 400 GR/PAC | 1 BOX | 12 PAC | +| 12010509 | 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010511 | 12010511 | CHAMP NUGGET AYAM 450 GR/PAC | 1 BOX | 12 PAC | +| 12010512 | 12010512 | CHAMP NUGGET AYAM 900 GR/PAC | 1 BOX | 6 PAC | +| 12010606 | 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12012202 | 12012202 | ASIMO NUGGET KOMBINASI 1 KG/PAC | 1 BOX | 5 PAC | +| 12030101 | 12030101 | FIESTA STIKIE 400 GR/PAC | 1 BOX | 12 PAC | +| 12060104 | 12060104 | FIESTA KARAGE 400 GR/PAC | 1 BOX | 12 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010111 | 12010111 | FIESTA CRISPY BUBBLE 400 GR/PAC | 1 BOX | 12 PAC | +| 12010509 | 12010509 | CHAMP CRUNCHY NUGGET 450 GR/PAC | 1 BOX | 10 PAC | +| 12010511 | 12010511 | CHAMP NUGGET AYAM 450 GR/PAC | 1 BOX | 12 PAC | +| 12010512 | 12010512 | CHAMP NUGGET AYAM 900 GR/PAC | 1 BOX | 6 PAC | +| 12010606 | 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12012202 | 12012202 | ASIMO NUGGET KOMBINASI 1 KG/PAC | 1 BOX | 5 PAC | +| 12030101 | 12030101 | FIESTA STIKIE 400 GR/PAC | 1 BOX | 12 PAC | +| 12060104 | 12060104 | FIESTA KARAGE 400 GR/PAC | 1 BOX | 12 PAC | + +--- + +### 22. `Sample DO PFM-page-00008.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.17°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN + +06:19:13 + +Tanggal : 11 May 2026 + +No. SO : 1691903313 + +## DELIVERY ORDER + +No. DO : 1659927197 + +00194641 + +No. PO : PO/26/0000172403 + +Kepada : Kepala Gudang + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL. BARAT VIII/1, ANCOL, PADEMANGAN, + +JAKARTA UTARA, 14430 + + + + +
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
12012501\n12030403\n15010101600 Akumo Chicken Naget 250 Gr\n065 Golden Fiesta Stikie w Swt Chl Sc 50\n901 Fiesta Frenchy Shoestring 500 GR1\n1\n1BOX\nBOX\nBOX20 PAC\n10 PAC\n12 PAC
Barang dikirim dalam keadaan baikJumlah342
Truck No. B 9683 VCF\nPM RAWA BUNTU | JL.F Image JTARA BLOK UA NO 16 PT. 2 Image N. SERP\nPenerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659927197` +- **noPO**: `PO/26/0000172403` +- **noSO**: `1691903313` +- **tanggal**: `11 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9683 VCF` + +**Raw items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12012501 | AKUMO CHICKEN NAGET 250 GR | 1 BOX | 20 PAC | +| 12030403 | GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR | 1 BOX | 10 PAC | +| 15010101 | FIESTA SHOESTRING 500 GR | 1 BOX | 12 PAC | +| Truck No. B 9683 VCF | | Bag. Pengeluaran Barang Bagian Penjualan | Bagian Penjualan | +| PM RAWA BUNTU \| JL.F JTARA BLOK UA NO 16 PT. 2 N. SERP | | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659927197` +- **noPO**: `PO/26/0000172403` +- **noSO**: `1691903313` +- **tanggal**: `11 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9683 VCF` + +**Sanitized items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12012501 | 600 Akumo Chicken Naget 250 Gr | 1 BOX | 20 PAC | +| 12030403 | 065 Golden Fiesta Stikie w Swt Chl Sc 50 | 1 BOX | 10 PAC | +| 15010101 | 901 Fiesta Frenchy Shoestring 500 GR | 1 BOX | 12 PAC | +| Truck No. B 9683 VCF | | Bag. Pengeluaran Barang Bagian Penjualan | Bagian Penjualan | +| PM RAWA BUNTU \| JL.F JTARA BLOK UA NO 16 PT. 2 N. SERP | | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659927197` +- **noPO**: `PO/26/0000172403` +- **noSO**: `1691903313` +- **tanggal**: `11 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9683 VCF` + +**Final items after SKU validation (3 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12012501 | 12012501 | AKUMO CHICKEN NAGET 250 GR | 1 BOX | 20 PAC | +| 12030403 | 12030403 | GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR | 1 BOX | 10 PAC | +| 15010101 | 15010101 | FIESTA SHOESTRING 500 GR | 1 BOX | 12 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12012501 | 12012501 | AKUMO CHICKEN NAGET 250 GR | 1 BOX | 20 PAC | +| 12030403 | 12030403 | GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR | 1 BOX | 10 PAC | +| 15010101 | 15010101 | FIESTA SHOESTRING 500 GR | 1 BOX | 12 PAC | + +--- + +### 23. `Sample DO PFM-page-00009.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA + +KAWASAN INDUSTRI KODERN, BANTEN + +05:05:45 + +Kepada : Kepala Gudang + +00222419 + +Tanggal : 05 May 2026 + +No. SO : 1691895167 + +No. DO : 1659919748 + +## DELIVERY ORDER + +No. PO : PO/26/0000164942 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA. 14430 + + +
Kode BarangNama BarangBanyakJumlah
12010111\n12010129\n12010606\n12060104\n15040102830 Fiesta Crispy Bubble Mugget 400 G\n947 Fiesta Cheesy Bambo Chicken Mugget 4\n823 CHAMP CRUMING COUT 225G\n868 FIESTA KAMAL ACOU1 BOX\n1 BOX\n1 BOX\n1 BOX12 PAC\n12 PAC\n25 PAC\n12 PAC\n12 PAC
Barang dikirim dalam keadaan baikJumlah573
Truck No. B 9042 VCC\nMOTHER STORE - PM WARUNG JATI TIMUR R\n04 KEL. KALIBATA KEC\nMURK KIDS UNGGAS\nHargas\nRenerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659919748` +- **noPO**: `PO/26/0000164942` +- **noSO**: `1691895167` +- **tanggal**: `05 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA +KAWASAN INDUSTRI KODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9042 VCC` + +**Raw items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010111 | FIESTA CRISPY BUBBLE 400 GR/PAC | 1 BOX | 12 PAC | +| 12010129 | FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR | 1 BOX | 12 PAC | +| 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12060104 | FIESTA KARAGE 400 GR/PAC | 1 BOX | 12 PAC | +| 15040102 | FIESTA BATTER COATED 1000 GR | 1 BOX | 12 PAC | +| Truck No. B 9042 VCC | | Bag. Pengeluaran Barang | Bagian Penjualan | +| MOTHER STORE - PM WARUNG JATI TIMUR R | | 1 | | +| 04 KEL. KALIBATA KEC | | 1 | | +| MURK KIDS UNGGAS | | 1 | | +| Hargas | | 1 | | +| Renerima Barang | | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659919748` +- **noPO**: `PO/26/0000164942` +- **noSO**: `1691895167` +- **tanggal**: `05 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA +KAWASAN INDUSTRI KODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9042 VCC` + +**Sanitized items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010111 | 830 Fiesta Crispy Bubble Mugget 400 G | 1 BOX | 12 PAC | +| 12010129 | 947 Fiesta Cheesy Bambo Chicken Mugget 4 | 1 BOX | 12 PAC | +| 12010606 | 823 CHAMP CRUMING COUT 225G | 1 BOX | 25 PAC | +| 12060104 | 868 FIESTA KAMAL ACOU | 1 BOX | 12 PAC | +| 15040102 | | 1 | 12 PAC | +| Truck No. B 9042 VCC | | Bag. Pengeluaran Barang | Bagian Penjualan | +| MOTHER STORE - PM WARUNG JATI TIMUR R | | 1 | | +| 04 KEL. KALIBATA KEC | | 1 | | +| MURK KIDS UNGGAS | | 1 | | +| Hargas | | 1 | | +| Renerima Barang | | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659919748` +- **noPO**: `PO/26/0000164942` +- **noSO**: `1691895167` +- **tanggal**: `05 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA +KAWASAN INDUSTRI KODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9042 VCC` + +**Final items after SKU validation (5 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010111 | 12010111 | FIESTA CRISPY BUBBLE 400 GR/PAC | 1 BOX | 12 PAC | +| 12010129 | 12010129 | FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR | 1 BOX | 12 PAC | +| 12010606 | 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12060104 | 12060104 | FIESTA KARAGE 400 GR/PAC | 1 BOX | 12 PAC | +| 15040102 | 15040102 | FIESTA BATTER COATED 1000 GR | 1 BOX | 12 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010111 | 12010111 | FIESTA CRISPY BUBBLE 400 GR/PAC | 1 BOX | 12 PAC | +| 12010129 | 12010129 | FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR | 1 BOX | 12 PAC | +| 12010606 | 12010606 | CHAMP CRUNCHY NUGGET 225 GR/PAC | 1 BOX | 25 PAC | +| 12060104 | 12060104 | FIESTA KARAGE 400 GR/PAC | 1 BOX | 12 PAC | +| 15040102 | 15040102 | FIESTA BATTER COATED 1000 GR | 1 BOX | 12 PAC | + +--- + +### 24. `Sample DO PFM-page-00010.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHARQEN WOKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +00:11:04 + +Tanggal : 06 May 2026 + + + +No. SO : 1691895765 + +Kepada : Kepala Gudang + +No. DO : 1659920402 + +00118887 + +No. PO : PO/26/0000166040 + +# DELIVERY ORDER + +Kepada Yth : PT PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN; JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
11310013\n11310014\n11310021\n11310024Griller Size 1 ( 30 Ekor ) Frozen\nGriller Size 2 ( 20 Ekor ) Frozen\nGriller Size B ( Frozen (1000-1100 G) PC\nGriller Size A (Frozen (900-1000 G) PC)3\n3\n5\n10KRG\nKRG\nKRG90 PC\n60 PC\n100 PC\n200 PC
Barang dikirim dalam keadaan baikJumlah450450
Truck No. B 9260 VCF\nPASAR PARUNG BOGOR | JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K\nWARU KEC, PARUNG Image\nTanda Tangan SupirBag. Pengeluaran Barang01\n01\n01\nBagian Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layar + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659920402` +- **noPO**: `PO/26/0000166040` +- **noSO**: `1691895765` +- **tanggal**: `06 May 2026` +- **vendorInfo**: `PT. CHARQEN WOKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 VCF` + +**Raw items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 3 KRG | 90 PC | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 5 KRG | 100 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 10 KRG | 200 PC | +| Truck No. B 9260 VCF | Bag. Pengeluaran Barang | 01 | 01 | +| PASAR PARUNG BOGOR \| JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K | | 01 | 01 | +| WARU KEC, PARUNG | | 01 | 01 | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659920402` +- **noPO**: `PO/26/0000166040` +- **noSO**: `1691895765` +- **tanggal**: `06 May 2026` +- **vendorInfo**: `PT. CHARQEN WOKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 VCF` + +**Sanitized items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | Griller Size 1 ( 30 Ekor ) Frozen | 3 KRG | 90 PC | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 3 KRG | 60 PC | +| 11310021 | Griller Size B ( Frozen (1000-1100 G) PC | 5 KRG | 100 PC | +| 11310024 | Griller Size A (Frozen (900-1000 G) PC) | 10 KRG | 200 PC | +| Truck No. B 9260 VCF | Bag. Pengeluaran Barang | 01 | 01 | +| PASAR PARUNG BOGOR \| JL. TULANG KUNING - PASAR PARUNG DEH KARANJ TEA 01 RW.05 K | | 01 | 01 | +| WARU KEC, PARUNG | | 01 | 01 | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659920402` +- **noPO**: `PO/26/0000166040` +- **noSO**: `1691895765` +- **tanggal**: `06 May 2026` +- **vendorInfo**: `PT. CHARQEN WOKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 VCF` + +**Final items after SKU validation (4 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 3 KRG | 90 PC | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310021 | 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 5 KRG | 100 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 10 KRG | 200 PC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 3 KRG | 90 PC | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 3 KRG | 60 PC | +| 11310021 | 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 5 KRG | 100 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 10 KRG | 200 PC | + +--- + +### 25. `Sample DO PFM-page-00011.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `15.19°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +KAWASAN INDUSTRI MODERN. + +Kepada : Kepala Gudang + +00202207 + +## DELIVERY ORDER + +Tanggal : 3.2019.007731 + +No. SO : 1691896671 + +No. DO : 1659921089 + +No. PO : PO/26/0000166510 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + +JAKARTA UTADA + + +
Kode BarangNama BarangBanyakJumlah
11310014✓ Griller Size 2 ( 20 Ekor ) Frozen5 KRG100 PC
11310018✓ Griller (PR) Size 1 Friz1 KRG30 PC
11310024✓ Griller Size A Frozen (900-1000 G) PC5 KRG100 PC
11640053✓ Bone In Leg ASLI1 80X10 KG
11660050✓ Drumstick Frozen Pack1 80X10 KG
11710051✓ Bone In Breast Frozen Pack1 80X10 KG
11750050✓ fillet Mitra 10 Kg1 80X10 KG
Barang dikirim dalam keadaan baikJumlah234270
Image ENTRA Image Image WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan
+ +embar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +Dinindoi dengan +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659921089` +- **noPO**: `PO/26/0000166510` +- **noSO**: `1691896671` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310018 | AYAM SIZE 1 PR FROZEN(*) | 1 KRG | 30 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 5 KRG | 100 PC | +| 11640053 | PAHA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11710051 | DADA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | +| ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659921089` +- **noPO**: `PO/26/0000166510` +- **noSO**: `1691896671` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310014 | ✓ Griller Size 2 ( 20 Ekor ) Frozen | 5 KRG | 100 PC | +| 11310018 | ✓ Griller (PR) Size 1 Friz | 1 KRG | 30 PC | +| 11310024 | ✓ Griller Size A Frozen (900-1000 G) PC | 5 KRG | 100 PC | +| 11640053 | ✓ Bone In Leg ASLI | 1 BOX | 10 KG | +| 11660050 | ✓ Drumstick Frozen Pack | 1 BOX | 10 KG | +| 11710051 | ✓ Bone In Breast Frozen Pack | 1 BOX | 10 KG | +| 11750050 | ✓ fillet Mitra 10 Kg | 1 BOX | 10 KG | +| ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | ENTRA WH 01 / 01 IL DANAU KELAPA DUA ( Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659921089` +- **noPO**: `PO/26/0000166510` +- **noSO**: `1691896671` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (7 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310018 | 11310018 | AYAM SIZE 1 PR FROZEN(*) | 1 KRG | 30 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 5 KRG | 100 PC | +| 11640053 | 11640053 | PAHA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11710051 | 11710051 | DADA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310018 | 11310018 | AYAM SIZE 1 PR FROZEN(*) | 1 KRG | 30 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 5 KRG | 100 PC | +| 11640053 | 11640053 | PAHA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11710051 | 11710051 | DADA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +--- + +### 26. `Sample DO PFM-page-00012.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.15°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +DI CHARGEN IDKCHANO INDONESIA TBK KAMASIN INDUSTRI AODERN BANTEN + +02:06:08 + +Kepada : Kepala Gudang + +## DELIVERY ORDER + +Tanggal : + +No. SO : 06 No. 2026 + +00222864 + +No. DO : 1659920441 + +No. PO : PO/26/0000166127 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +√ + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANCAW, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangJAKARIA UTIABanyakJumlah
11140062Ampela 1 KG Frozen1KRG20 KG
11310014Griller Size 2 ( 20 Ekor ) Frozen4KRG80 PC
11310024Griller Size ( 900-1000 G) PC20KRG400 PC
11660050Drumstick Frozen Pack1BOX10 KG
Barang dikirim dalam keadaan baikJu482510
Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR | PANORAMA E KEC. CISEENG BOGO ImageWH 01 / 01\nNO 16 KEL. PUTAT NUTU
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659920441` +- **noPO**: `PO/26/0000166127` +- **noSO**: `1659920441` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9417 VOC` + +**Raw items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 4 KRG | 80 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 20 KRG | 400 PC | +| 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| | Ju | 482 | 510 | +| Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR \| PANORAMA E KEC. CISEENG BOGO | Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR \| PANORAMA E KEC. CISEENG BOGO | WH 01 / 01 | WH 01 / 01 | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659920441` +- **noPO**: `PO/26/0000166127` +- **noSO**: `1659920441` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9417 VOC` + +**Sanitized items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | Ampela 1 KG Frozen | 1 KRG | 20 KG | +| 11310014 | Griller Size 2 ( 20 Ekor ) Frozen | 4 KRG | 80 PC | +| 11310024 | Griller Size ( 900-1000 G) PC | 20 KRG | 400 PC | +| 11660050 | Drumstick Frozen Pack | 1 BOX | 10 KG | +| | Ju | 482 | 510 | +| Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR \| PANORAMA E KEC. CISEENG BOGO | Truck No. B 9417 VOC DM PANORANA BALI RESIDENCE BGR \| PANORAMA E KEC. CISEENG BOGO | WH 01 / 01 | WH 01 / 01 | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659920441` +- **noPO**: `PO/26/0000166127` +- **noSO**: `1659920441` +- **tanggal**: `Not Found` +- **vendorInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9417 VOC` + +**Final items after SKU validation (4 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 4 KRG | 80 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 20 KRG | 400 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 4 KRG | 80 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 20 KRG | 400 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | + +--- + +### 27. `Sample DO PFM-page-00013.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.06°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN + +05:51:51 / 1 of Tanggal : 07 May 2026 + +No. SO : 1691898090 + +No. DO : 1659922449 + +No.PO : PO/26/0000168198 + +## DELIVERY ORDER + +Kepada : Kepala Gudang + +00202815 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFH-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11310013\n11310014\n11310024\n11650053\n11660050\n11690053\n11710051\n11720055✓Griller Size 1 ( 30 Ekor ) Frozen\n~Griller Size 2 ( 20 Ekor ) Frozen\n-Griller Size A Frozen (900-1000 G) PC\n~Thighstick Frozen Pack\n✓Drumstick Frozen Pack\n✓SBB Mitra 10 Kg\n✓Bone In Breast Frozen Pack\nFull Wing Frozen Pack1 KRG\n5 KRG\n5 KRG\n1 BOX\n1 BOX\n1 BOX\n1 BOX\n2 BOX\n1 BOX30 PC\n100 PC\n100 PC\n10 KG\n10 KG\n10 KG\n10 KG\n20 KG\n20 KG\n10 KG
Barang dikirim dalam keadaan baikJumlah
B 9259 BCU\nTruck No. PM KARANG BOLONG SERANG | JL RAYA KARA\nW 01, BANDULU - ANYA Image ImageWH 01 / 01\nKP SEMPUR) NO 22 RT04 R\nBagian Penjualan
Penerima Barang
+ +
Image
+ + +Lember 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659922449` +- **noPO**: `PO/26/0000168198` +- **noSO**: `1691898090` +- **tanggal**: `07 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9259 BCU` + +**Raw items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 1 KRG | 30 PC | +| 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 5 KRG | 100 PC | +| 11650053 | PAHA ATAS 1 KG(*) | 1 BOX | 10 KG | +| 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11710051 | DADA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11720055 | FULL WING FROZ PACK 1 KG(*) | 2 BOX | 20 KG | +| B 9259 BCU | B 9259 BCU | WH 01 / 01 | WH 01 / 01 | +| Truck No. PM KARANG BOLONG SERANG \| JL RAYA KARA | Truck No. PM KARANG BOLONG SERANG \| JL RAYA KARA | 1 | | +| W 01, BANDULU - ANYA | W 01, BANDULU - ANYA | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659922449` +- **noPO**: `PO/26/0000168198` +- **noSO**: `1691898090` +- **tanggal**: `07 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9259 BCU` + +**Sanitized items (11 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | ✓Griller Size 1 ( 30 Ekor ) Frozen | 1 KRG | 30 PC | +| 11310014 | ~Griller Size 2 ( 20 Ekor ) Frozen | 5 KRG | 100 PC | +| 11310024 | -Griller Size A Frozen (900-1000 G) PC | 5 KRG | 100 PC | +| 11650053 | ~Thighstick Frozen Pack | 1 BOX | 10 KG | +| 11660050 | ✓Drumstick Frozen Pack | 1 BOX | 10 KG | +| 11690053 | ✓SBB Mitra 10 Kg | 1 BOX | 10 KG | +| 11710051 | ✓Bone In Breast Frozen Pack | 1 BOX | 10 KG | +| 11720055 | Full Wing Frozen Pack | 2 BOX | 20 KG | +| B 9259 BCU | B 9259 BCU | WH 01 / 01 | WH 01 / 01 | +| Truck No. PM KARANG BOLONG SERANG \| JL RAYA KARA | Truck No. PM KARANG BOLONG SERANG \| JL RAYA KARA | 1 | | +| W 01, BANDULU - ANYA | W 01, BANDULU - ANYA | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659922449` +- **noPO**: `PO/26/0000168198` +- **noSO**: `1691898090` +- **tanggal**: `07 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN. BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9259 BCU` + +**Final items after SKU validation (8 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 1 KRG | 30 PC | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 5 KRG | 100 PC | +| 11650053 | 11650053 | PAHA ATAS 1 KG(*) | 1 BOX | 10 KG | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11710051 | 11710051 | DADA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 2 BOX | 20 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 1 KRG | 30 PC | +| 11310014 | 11310014 | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | 5 KRG | 100 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 5 KRG | 100 PC | +| 11650053 | 11650053 | PAHA ATAS 1 KG(*) | 1 BOX | 10 KG | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 1 BOX | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 1 BOX | 10 KG | +| 11710051 | 11710051 | DADA UTUH (1 KG)(*) | 1 BOX | 10 KG | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 2 BOX | 20 KG | + +--- + +### 28. `Sample DO PFM-page-00014.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +05:48:57 + +Tanggal : 06 April 2026 + + + +No. SO : 1691853079 + +No. DO : 1659881372 + +## DELIVERY ORDER + +No. PO : PO/26/0000125459 + +Kepada : Kepala Gudang + +00629253 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
12010515\n12012502\n12240102\n12240103891 CHAMP KOIN KOMBINASI 450 G\n601 Akumo Chicken Naget 500 Gr\n935 FIESTA CHEESY ITALIAN RICE BITES 400\n936 Fiesta Yakiniku Rice Bites 400 G1 BOX\n1 BOX\n1 BOX\n1 BOX12 PAC\n10 PAC\n12 PAC\n12 PAC
Barang dikirim dalam keadaan baikJumlah446
ImageI | JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA\nIDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layar + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659881372` +- **noPO**: `PO/26/0000125459` +- **noSO**: `1691853079` +- **tanggal**: `06 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010515 | CHAMP KOIN KOMBINASI 450 GR/PAC | 1 BOX | 12 PAC | +| 12012502 | AKUMO CHICKEN NUGGET 500 GR | 1 BOX | 10 PAC | +| 12240102 | FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC | 1 BOX | 12 PAC | +| 12240103 | FIESTA YAKINIKU R/BITES 400 GR/PAC | 1 BOX | 12 PAC | +| | I \| JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA | I \| JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA | I \| JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA | +| | IDN | 1 IDN | IDN | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659881372` +- **noPO**: `PO/26/0000125459` +- **noSO**: `1691853079` +- **tanggal**: `06 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12010515 | 891 CHAMP KOIN KOMBINASI 450 G | 1 BOX | 12 PAC | +| 12012502 | 601 Akumo Chicken Naget 500 Gr | 1 BOX | 10 PAC | +| 12240102 | 935 FIESTA CHEESY ITALIAN RICE BITES 400 | 1 BOX | 12 PAC | +| 12240103 | 936 Fiesta Yakiniku Rice Bites 400 G | 1 BOX | 12 PAC | +| | I \| JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA | I \| JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA | I \| JL. H. MUHI NO. 14 KEL. PONDOK, PINANG KEC KBY LANA JAKARTA SELATA | +| | IDN | 1 IDN | IDN | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659881372` +- **noPO**: `PO/26/0000125459` +- **noSO**: `1691853079` +- **tanggal**: `06 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (4 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010515 | 12010515 | CHAMP KOIN KOMBINASI 450 GR/PAC | 1 BOX | 12 PAC | +| 12012502 | 12012502 | AKUMO CHICKEN NUGGET 500 GR | 1 BOX | 10 PAC | +| 12240102 | 12240102 | FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC | 1 BOX | 12 PAC | +| 12240103 | 12240103 | FIESTA YAKINIKU R/BITES 400 GR/PAC | 1 BOX | 12 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12010515 | 12010515 | CHAMP KOIN KOMBINASI 450 GR/PAC | 1 BOX | 12 PAC | +| 12012502 | 12012502 | AKUMO CHICKEN NUGGET 500 GR | 1 BOX | 10 PAC | +| 12240102 | 12240102 | FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC | 1 BOX | 12 PAC | +| 12240103 | 12240103 | FIESTA YAKINIKU R/BITES 400 GR/PAC | 1 BOX | 12 PAC | + +--- + +### 29. `Sample DO PFM-page-00015.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN + +01:42:41 + +Tanggal : 02 April 2026 + +No. SO : 1691848409 + +No. DO : 1659876922 + +Kepada : Kepala Gudang + +00614967 + +## DELIVERY ORDER + +No. PO : PO/26/0000120972 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11110074\n11620056\n11690053Ceker 1 KG Frozen\nSBL Mitra 10 Kg\nSBB Mitra 10 Kg\nASLI1 ✓\n10 ✓\n10 ✓\nKRG\nBAG\nBAG20 KG\n10 KG\n10 KG
Barang dikirim dalam keadaan baikJumlah2140
Truck No. B 9260 BXT\nPM TANAH KUSIR | JL RC VEZERAN NO 17 F\nRTA SELATAN, IDN1233 ImageWH 01 / 01\nO KEC PESANGGAHAN JAKA
Penetima Barang TANAH KUSIRTanda Tangan SupirBagian Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659876922` +- **noPO**: `PO/26/0000120972` +- **noSO**: `1691848409` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 BXT` + +**Raw items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11620056 | SBL (FILLET PAHA) 1 KG(*) | 10 BAG | 10 KG | +| 11690053 | SBB (FILLET DADA )1 KG(*) | 10 BAG | 10 KG | +| Truck No. B 9260 BXT | Truck No. B 9260 BXT | WH 01 / 01 | WH 01 / 01 | +| PM TANAH KUSIR \| JL RC VEZERAN NO 17 F | PM TANAH KUSIR \| JL RC VEZERAN NO 17 F | O KEC PESANGGAHAN JAKA | O KEC PESANGGAHAN JAKA | +| RTA SELATAN, IDN1233 | RTA SELATAN, IDN1233 | 1 | | +| Penetima Barang TANAH KUSIR | | Bagian Penjualan | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659876922` +- **noPO**: `PO/26/0000120972` +- **noSO**: `1691848409` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 BXT` + +**Sanitized items (7 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11110074 | Ceker 1 KG Frozen | 1 KRG | 20 KG | +| 11620056 | SBL Mitra 10 Kg | 10 BAG | 10 KG | +| 11690053 | SBB Mitra 10 Kg | 10 BAG | 10 KG | +| Truck No. B 9260 BXT | Truck No. B 9260 BXT | WH 01 / 01 | WH 01 / 01 | +| PM TANAH KUSIR \| JL RC VEZERAN NO 17 F | PM TANAH KUSIR \| JL RC VEZERAN NO 17 F | O KEC PESANGGAHAN JAKA | O KEC PESANGGAHAN JAKA | +| RTA SELATAN, IDN1233 | RTA SELATAN, IDN1233 | 1 | | +| Penetima Barang TANAH KUSIR | | Bagian Penjualan | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659876922` +- **noPO**: `PO/26/0000120972` +- **noSO**: `1691848409` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9260 BXT` + +**Final items after SKU validation (3 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11110074 | 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11620056 | 11620056 | SBL (FILLET PAHA) 1 KG(*) | 10 BAG | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 10 BAG | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11110074 | 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11620056 | 11620056 | SBL (FILLET PAHA) 1 KG(*) | 10 BAG | 10 KG | +| 11690053 | 11690053 | SBB (FILLET DADA )1 KG(*) | 10 BAG | 10 KG | + +--- + +### 30. `Sample DO PFM-page-00016.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.06°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +05:53:26 + +No. SO : 1691850584 + +Tanggal : 03 April 2026 + +No. DO : 1659878594 + +Kepada : Kepala Gudang + +00641729 + +No. PO : PO/26/0000122470 + +# DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + +JAKARTA UTARA + + +
Kode BarangNama BarangBanyakJumlah
17210106\n21200107FIESTA RTS BEEF YAKINIKU 300G 8PAC\nFiesta Spaghetti Carbonara 300g 6 PC\nImage1\n1BOX\nBOX\n8 PAC\n6 PAC
Barang dikirim dalam keadaan baikJumlah214
Truck No. B 9308 BXT\nP M KAMPUNG TENGAH | JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja\nImage ImageWH 01 / 01\nImage Image Bag. Pengeluaran BarangNGAH KEC. KRAMAT JATI JA\nBagian Penjualan
+ +
Image
+ + +Lembera: Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659878594` +- **noPO**: `PO/26/0000122470` +- **noSO**: `1691850584` +- **tanggal**: `03 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9308 BXT` + +**Raw items (4 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 17210106 | FIESTA RTS B/YAKINIKU 300GR/PAC | 1 BOX | BOX | +| 21200107 | NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC) | 1 BOX | BOX | +| Truck No. B 9308 BXT | WH 01 / 01 | NGAH KEC. KRAMAT JATI JA | NGAH KEC. KRAMAT JATI JA | +| P M KAMPUNG TENGAH \| JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja | Bag. Pengeluaran Barang | Bagian Penjualan | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659878594` +- **noPO**: `PO/26/0000122470` +- **noSO**: `1691850584` +- **tanggal**: `03 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9308 BXT` + +**Sanitized items (4 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 17210106 | FIESTA RTS BEEF YAKINIKU 300G 8PAC | 1 BOX | BOX | +| 21200107 | Fiesta Spaghetti Carbonara 300g 6 PC | 1 BOX | BOX | +| Truck No. B 9308 BXT | WH 01 / 01 | NGAH KEC. KRAMAT JATI JA | NGAH KEC. KRAMAT JATI JA | +| P M KAMPUNG TENGAH \| JL. RAYA TENGAH RT.04 A TIMUR 13540 Ja | Bag. Pengeluaran Barang | Bagian Penjualan | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659878594` +- **noPO**: `PO/26/0000122470` +- **noSO**: `1691850584` +- **tanggal**: `03 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9308 BXT` + +**Final items after SKU validation (2 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 17210106 | 17210106 | FIESTA RTS B/YAKINIKU 300GR/PAC | 1 BOX | BOX | +| 21200107 | 21200107 | NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC) | 1 BOX | BOX | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 17210106 | 17210106 | FIESTA RTS B/YAKINIKU 300GR/PAC | 1 BOX | BOX | +| 21200107 | 21200107 | NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC) | 1 BOX | BOX | + +--- + +### 31. `Sample DO PFM-page-00017.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN + +11:59:34 + +Kepada : Kepala Gudang + +00641400 + +## DELIVERY ORDER + +Tanggal : 02 April 2026 + +No. SO : 191848878 + +No. DO : 1659877509 + +No. PO : PO/26/0000121957 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11310013\n11310024Griller Size 1 ( 30 Ekor ) Frozen\nGriller Size A Frozen (900-1000 G) PC\nASLI4 KRG\n10 KRG120 PC ADA\n200 PC ✓
Barang dikirim dalam keadaan baikJumlah320320
Truck No. B 9767 NCD / PM CIPETE RAYA | JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID ImageImage
Penerima BarangTanda Tangan SupirBag. Pengeluaran Barangjualan
+ +
Image
+ + +Turun banne + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659877509` +- **noPO**: `PO/26/0000121957` +- **noSO**: `191848878` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9767 NCD` + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 4 KRG | 120 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 10 KRG | 200 PC | +| Truck No. B 9767 NCD / PM CIPETE RAYA \| JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID | Truck No. B 9767 NCD / PM CIPETE RAYA \| JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659877509` +- **noPO**: `PO/26/0000121957` +- **noSO**: `191848878` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9767 NCD` + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | Griller Size 1 ( 30 Ekor ) Frozen | 4 KRG | 120 PC ADA | +| 11310024 | Griller Size A Frozen (900-1000 G) PC | 10 KRG | 200 PC | +| Truck No. B 9767 NCD / PM CIPETE RAYA \| JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID | Truck No. B 9767 NCD / PM CIPETE RAYA \| JL CIPETE RAYA NO 15F, KEL CIPETE SELATAN, SELATAN, IDN12410 ID | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659877509` +- **noPO**: `PO/26/0000121957` +- **noSO**: `191848878` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT. CHARGEN POKPIAND INDONESIA T KAWASAN, INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9767 NCD` + +**Final items after SKU validation (2 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 4 KRG | 120 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 10 KRG | 200 PC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 4 KRG | 120 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 10 KRG | 200 PC | + +--- + +### 32. `Sample DO PFM-page-00018.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `3.11°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00 + +KAWASAN, INDUSTRI MODERN, BANTEN + +# DELIVERY ORDER + +tanggai: + +No. SO : 18 April 2026/ + +Kepada : Kepala Gudang + +00706237 + +No. DO : 1691872559 + +No. PO : 1659898844 PO/26/0000143236 + +Kepada Yth : + +Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : PFM-KU + +把 + +JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, + + +
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARA BanyakJumlah
Hati 1 KG Frozen1 KRG20 KG ✓
11150064Griller (PR) Size 1, Erz1 KRG30 PC ✓
11310018Griller (PR) Size 2, Erz3 KRG60 PC ✓
11310019Griller (PR) Size 2, Erz3 KRG80 PC ✓
11310024Griller Size A Frozen (900-1000 G) PC20 KRG20 KG ✓
11660050Drumstick Frozen Pack20 BAG
Barang dikirim dalam keadaan baikJumlah
Truck No.251270
ImageImageBag. Pengeluaran BarangBagian Penjualan
Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit |ayani
+ +
Image
+ + +embar 1.: Customer + +Dipindai dengan +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659898844` +- **noPO**: `PO/26/0000143236` +- **noSO**: `1691872559` +- **tanggal**: `18 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00 +KAWASAN, INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| | Hati 1 KG Frozen | 1 KRG | 20 KG | +| 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 30 PC | +| 11310018 | AYAM SIZE 1 PR FROZEN(*) | 3 KRG | 60 PC | +| 11310019 | AYAM SIZE 2 PR FROZEN(*) | 3 KRG | 80 PC | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 20 KRG | 20 PC | +| 11660050 | PAHA BAWAH (1 KG)(*) | 20 BAG | | +| Truck No. | 251 | 270 | | +| Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659898844` +- **noPO**: `PO/26/0000143236` +- **noSO**: `1691872559` +- **tanggal**: `18 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00 +KAWASAN, INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| | Hati 1 KG Frozen | 1 KRG | 20 KG | +| 11150064 | Griller (PR) Size 1, Erz | 1 KRG | 30 PC | +| 11310018 | Griller (PR) Size 2, Erz | 3 KRG | 60 PC | +| 11310019 | Griller (PR) Size 2, Erz | 3 KRG | 80 PC | +| 11310024 | Griller Size A Frozen (900-1000 G) PC | 20 KRG | 20 KG | +| 11660050 | Drumstick Frozen Pack | 20 BAG | | +| Truck No. | 251 | 270 | | +| Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | Jika D.O. Ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kimit \|ayani | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659898844` +- **noPO**: `PO/26/0000143236` +- **noSO**: `1691872559` +- **tanggal**: `18 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPUAND INDONESIA T5K 03:28:00 +KAWASAN, INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (5 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11150064 | 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 30 PC | +| 11310018 | 11310018 | AYAM SIZE 1 PR FROZEN(*) | 3 KRG | 60 PC | +| 11310019 | 11310019 | AYAM SIZE 2 PR FROZEN(*) | 3 KRG | 80 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 20 KRG | 20 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 20 BAG | | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11150064 | 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 30 PC | +| 11310018 | 11310018 | AYAM SIZE 1 PR FROZEN(*) | 3 KRG | 60 PC | +| 11310019 | 11310019 | AYAM SIZE 2 PR FROZEN(*) | 3 KRG | 80 PC | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 20 KRG | 20 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 20 BAG | | + +--- + +### 33. `Sample DO PFM-page-00019.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `4.31°` +- **Auto-unwarped**: `Yes` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK + +KAWASAN INDUSTPI MODER + +
Image
+ + +NTEN + +Kepada : Kepala Gudang + +00637619 + +Tanggal : 06:13:02 04 April 2026 + + + +No. SO : 1691852095 + +No. DO : 1659880471 + +No. PO : PO/26/0000124386 + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +The + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11140062Ampela 1 KG Frozen2020 KG
11150064Hati 1 KG Frozen120 KG
11310024Griller Size A Frozen (900-1000 G) PC240 PC
11660050Drumstick Frozen Pack1010 KG
Size A tidak datang.
Barang dikirim dalam keadaan baik7190
B 9402 SCH\nPM KAMPUNG SAWAH 2 | JL. KI HAJAR DEWAI\nTANGERANG, IDN15413 ImageWH 01 /01\n1 RW.04, SAWAH, CIPUTAT
Penerima BarangTanda Tangan SupirBagian Penjualan
+ +
Image
+ + +
Image
+ + +
Image
+ + +embar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +Osto dei donno +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659880471` +- **noPO**: `PO/26/0000124386` +- **noSO**: `1691852095` +- **tanggal**: `04 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTPI MODER +NTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9402 SCH` + +**Raw items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 20 KRG | 20 KG | +| 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | PAHA BAWAH (1 KG)(*) | 10 BOX | 10 KG | +| Size A tidak datang. | Size A tidak datang. | Size A tidak datang. | Size A tidak datang. | +| B 9402 SCH | B 9402 SCH | WH 01 /01 | WH 01 /01 | +| PM KAMPUNG SAWAH 2 \| JL. KI HAJAR DEWAI | PM KAMPUNG SAWAH 2 \| JL. KI HAJAR DEWAI | 1 RW.04, SAWAH, CIPUTAT | 1 RW.04, SAWAH, CIPUTAT | +| TANGERANG, IDN15413 | TANGERANG, IDN15413 | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659880471` +- **noPO**: `PO/26/0000124386` +- **noSO**: `1691852095` +- **tanggal**: `04 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTPI MODER +NTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9402 SCH` + +**Sanitized items (8 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11140062 | Ampela 1 KG Frozen | 20 | 20 KG | +| 11150064 | Hati 1 KG Frozen | 1 | 20 KG | +| 11310024 | Griller Size A Frozen (900-1000 G) PC | 2 KRG | 40 PC | +| 11660050 | Drumstick Frozen Pack | 10 | 10 KG | +| Size A tidak datang. | Size A tidak datang. | Size A tidak datang. | Size A tidak datang. | +| B 9402 SCH | B 9402 SCH | WH 01 /01 | WH 01 /01 | +| PM KAMPUNG SAWAH 2 \| JL. KI HAJAR DEWAI | PM KAMPUNG SAWAH 2 \| JL. KI HAJAR DEWAI | 1 RW.04, SAWAH, CIPUTAT | 1 RW.04, SAWAH, CIPUTAT | +| TANGERANG, IDN15413 | TANGERANG, IDN15413 | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659880471` +- **noPO**: `PO/26/0000124386` +- **noSO**: `1691852095` +- **tanggal**: `04 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTPI MODER +NTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9402 SCH` + +**Final items after SKU validation (4 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 20 KRG | 20 KG | +| 11150064 | 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 10 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11140062 | 11140062 | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | 20 KRG | 20 KG | +| 11150064 | 11150064 | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310024 | 11310024 | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | 2 KRG | 40 PC | +| 11660050 | 11660050 | PAHA BAWAH (1 KG)(*) | 10 BOX | 10 KG | + +--- + +### 34. `Sample DO PFM-page-00020.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +300000000000 + +06:34:00 + +
Image
+ + +elarm + +Tanggal : 11 April 2026 + +No. SO : 1691863154 + +00727524 + +Kepada : Kepala Gudang + +No. DO : 1659889989 + +## DELIVERY ORDER + +No. PO : PO/26/0000135032 + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat + +APS + +JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, + +JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangJAKARTA UTARABanyakJumlah
11310013Griller Size 1 ( 30 Ekor ) Frozen2)KRG-60- PC 30 PC-
ASLI
Barang dikirim dalam keadaan baikJumlah6060
Image [F6]
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +1621886257 + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659889989` +- **noPO**: `PO/26/0000135032` +- **noSO**: `1691863154` +- **tanggal**: `11 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN +300000000000` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (2 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 2 KRG | 60 PC | +| | [F6] | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659889989` +- **noPO**: `PO/26/0000135032` +- **noSO**: `1691863154` +- **tanggal**: `11 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN +300000000000` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (2 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11310013 | Griller Size 1 ( 30 Ekor ) Frozen | 2) KRG | -60- PC 30 PC- | +| | [F6] | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659889989` +- **noPO**: `PO/26/0000135032` +- **noSO**: `1691863154` +- **tanggal**: `11 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK +KAWASAN INDUSTRI MODERN, +BANTEN +300000000000` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 2 KRG | 60 PC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11310013 | 11310013 | AYAM SIZE1 FROZEN (0.75-0.8) KG(*) | 2 KRG | 60 PC | + +--- + +### 35. `Sample DO PFM-page-00021.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT., CHAROEN POKPHAND INDONESIA TDK + +KAWASAN INDUSTRI MODERN, + +BANTEN + +05:32:27 + + + +Kepada : Kepala Gudang + +## DELIVERY ORDER + +No. DO : 1691848523 + +00641246 + +Tanggal: + +No. SO : 02 April 2026 + +No. PO : 1659877015 + +PO/26/0000121086 + +Kepada Yth : + +Order Untuk : PT.PRIMAFOOD INTERNATIONAL + +Alamat : DKI AREA + +JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, + + +
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
11110074\n11310021\n11720055Ceker 1 KG Frozen ✓\nGriller Size B Frozen (1000-1100 G) PC ✓\nFull Wing Frozen-Pack ✓1\n2\n10KRG\nKRG\nBAG20 KG\n40 PC\n10 KG
Barang dikirim dalam keadaan baik
Truck No.B 9726 UCT\nPM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDNImage51 WH 01 EC JAGAKARSA JAKARTA SE\nBagian Penjualan
Penerima BarangTanda Tangan SupirBagí
+ +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659877015` +- **noPO**: `PO/26/0000121086` +- **noSO**: `1691848523` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT., CHAROEN POKPHAND INDONESIA TDK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9726 UCT` + +**Raw items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 2 KRG | 40 PC | +| 11720055 | FULL WING FROZ PACK 1 KG(*) | 10 KRG | 10 KG | +| Truck No. | B 9726 UCT | B 9726 UCT PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN | 51 WH 01 EC JAGAKARSA JAKARTA SE | +| | PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN | 1 | | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659877015` +- **noPO**: `PO/26/0000121086` +- **noSO**: `1691848523` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT., CHAROEN POKPHAND INDONESIA TDK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9726 UCT` + +**Sanitized items (5 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11110074 | Ceker 1 KG Frozen ✓ | 1 | 20 KG | +| 11310021 | Griller Size B Frozen (1000-1100 G) PC ✓ | 2 KRG | 40 PC | +| 11720055 | Full Wing Frozen-Pack ✓ | 10 KRG | 10 KG | +| Truck No. | B 9726 UCT | B 9726 UCT PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN | 51 WH 01 EC JAGAKARSA JAKARTA SE | +| | PM TIMBUL ! JL. TIMBUL NO. 1 RT 07 RW 04, LATAN, IDN 12630 IDN | 1 | | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659877015` +- **noPO**: `PO/26/0000121086` +- **noSO**: `1691848523` +- **tanggal**: `02 April 2026` +- **vendorInfo**: `PT., CHAROEN POKPHAND INDONESIA TDK +KAWASAN INDUSTRI MODERN, +BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9726 UCT` + +**Final items after SKU validation (3 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11110074 | 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310021 | 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 2 KRG | 40 PC | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 10 KRG | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11110074 | 11110074 | CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) | 1 KRG | 20 KG | +| 11310021 | 11310021 | AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) | 2 KRG | 40 PC | +| 11720055 | 11720055 | FULL WING FROZ PACK 1 KG(*) | 10 KRG | 10 KG | + +--- + +### 36. `Sample DO PFM-page-00022.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN + +05:54:31 / 2 + +ofTanggal : 16 April 2026 + + + +No. SO : 1691869400 + +No. DO : 1659896184 + +No. PO : P0/26/0000140731 + +Kepada : Kepala Gudang + +00527182 + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : DKI AREA + +√ + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, + +PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
12080101\n13010513\n13030502920 FIESTA SPICY CHICK 400 G\n304 Champ Chicken Sausage 375 Gr 15 Pack\n298 Champ Chicken Ball 500 GR Fr1 ✓ BOX\n1 ✓ BOX\n1 ✓ BOX12 PAC\n15 PAC\n10 PAC
Barang dikirim dalam keadaan baikJumlah11131
Truck No. Image ImageBagian Penjualan
Penerima Barang HUB WARUNG JATI
Tanda Tangan Supir
Bag. Pengeluaran Barang
+ +
Image
+ + +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659896184` +- **noPO**: `PO/26/0000140731` +- **noSO**: `1691869400` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Raw items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12080101 | FIESTA SPICY CHICK 400 GR/PAC | 1 BOX | 12 PAC | +| 13010513 | CHAMP CHICK SSG 375 GR | 1 BOX | 15 PAC | +| 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | +| Truck No. | Truck No. | Truck No. | Bagian Penjualan | +| Penerima Barang HUB WARUNG JATI | | 1 | Bagian Penjualan | +| Bag. Pengeluaran Barang | | 1 | Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659896184` +- **noPO**: `PO/26/0000140731` +- **noSO**: `1691869400` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Sanitized items (6 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 12080101 | 920 FIESTA SPICY CHICK 400 G | 1 BOX | 12 PAC | +| 13010513 | 304 Champ Chicken Sausage 375 Gr 15 Pack | 1 BOX | 15 PAC | +| 13030502 | 298 Champ Chicken Ball 500 GR Fr | 1 BOX | 10 PAC | +| Truck No. | Truck No. | Truck No. | Bagian Penjualan | +| Penerima Barang HUB WARUNG JATI | | 1 | Bagian Penjualan | +| Bag. Pengeluaran Barang | | 1 | Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659896184` +- **noPO**: `PO/26/0000140731` +- **noSO**: `1691869400` +- **tanggal**: `16 April 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK RAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: *empty* + +**Final items after SKU validation (3 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12080101 | 12080101 | FIESTA SPICY CHICK 400 GR/PAC | 1 BOX | 12 PAC | +| 13010513 | 13010513 | CHAMP CHICK SSG 375 GR | 1 BOX | 15 PAC | +| 13030502 | 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 12080101 | 12080101 | FIESTA SPICY CHICK 400 GR/PAC | 1 BOX | 12 PAC | +| 13010513 | 13010513 | CHAMP CHICK SSG 375 GR | 1 BOX | 15 PAC | +| 13030502 | 13030502 | CHAMP CHICK MEATBALL 500 GR | 1 BOX | 10 PAC | + +--- + +### 37. `Sample DO PFM-page-00023.jpg` + +**Status**: ✅ `success` + +#### 📐 Stage 0 — Pipeline Info + +- **Tilt detected**: `0.05°` +- **Auto-unwarped**: `No` + +#### 📄 Stage 1 — Raw OCR Markdown + +```markdown +PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN + +05:51:51 / 2 of Tanggal : 07 May 2026 + +No. SO : 1691898090 + +00202816 + +No. DO : 1659922449 + +No. PO : PO/26/0000168198 + +Kepada : Kepala Gudang + +## DELIVERY ORDER + +Kepada Yth : PT.PRIMAFOOD INTERNATIONAL + +Order Untuk : PFM-KU + +Alamat : JL. ANCOL BARAT VIII/1, ANCOL, + +PADEMANGAN, JAKARTA UTARA, 14430 + + +
Kode BarangNama BarangBanyakJumlah
11750050☑Fillet Mitra 10 Kg ASLI1 BOX10 KG
Barang dikirim dalam keadaan baikJL 237300
Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG | JL RA KARANG BOLONG BANDULU (KP SEMPU Image)
Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan
+ +
Image
+ + +Lembar 1: Customer + +Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani + +
Image
+ +``` + +#### 🔍 Stage 2 — Layer 1: Regex Extraction (`parseDOMetadata`) + +**Header fields (raw regex output):** + +- **noDO**: `1659922449` +- **noPO**: `PO/26/0000168198` +- **noSO**: `1691898090` +- **tanggal**: `07 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9259 BCU` + +**Raw items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | +| Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | +| Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | + +#### 🧹 Stage 3 — Layer 2: Sanitized (`sanitizeParsedMetadata`) + +**Header fields (after sanitization):** + +- **noDO**: `1659922449` +- **noPO**: `PO/26/0000168198` +- **noSO**: `1691898090` +- **tanggal**: `07 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9259 BCU` + +**Sanitized items (3 row(s)):** + +| kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | +| 11750050 | ☑Fillet Mitra 10 Kg ASLI | 1 BOX | 10 KG | +| Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | Truck No. B 9259 BCU WH 01 / 01 PM KARANG BOLONG SERANG \| JL RA KARANG BOLONG BANDULU (KP SEMPU ) | +| Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan | + +#### ✅ Stage 4 — Layer 3: Final (`SKU triple-check + store resolution`) + +**Final metadata:** + +- **noDO**: `1659922449` +- **noPO**: `PO/26/0000168198` +- **noSO**: `1691898090` +- **tanggal**: `07 May 2026` +- **vendorInfo**: `PT. CHAROEN POKPHAND INDONESIA TBK KAWASAN INDUSTRI MODERN, BANTEN` +- **customerInfo**: `PT.PRIMAFOOD INTERNATIONAL` +- **alamat**: *empty* +- **orderUntuk**: *empty* +- **platTruk**: `B 9259 BCU` + +**Final items after SKU validation (1 row(s)):** + +| kodeBarangOriginal | kodeBarang (corrected) | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +#### 🗃️ Stage 5 — Submitted Items (ready-to-use JSON) + +| kodeBarangOriginal | kodeBarang | namaBarang | banyak | jumlah | +| --- | --- | --- | --- | --- | +| 11750050 | 11750050 | FILLET MITRA 1 KG(*) | 1 BOX | 10 KG | + +--- + diff --git a/backend/sources/comparison_report.xlsx b/backend/sources/comparison_report.xlsx new file mode 100644 index 0000000..390670f Binary files /dev/null and b/backend/sources/comparison_report.xlsx differ diff --git a/backend/sources/sku_master.tsv b/backend/sources/sku_master.tsv deleted file mode 100644 index df619a9..0000000 --- a/backend/sources/sku_master.tsv +++ /dev/null @@ -1,230 +0,0 @@ -PT. Primafood International-PFM Jakarta -Rekap SKU Aktif CPI Cikande -Per April 2026 - -No No SKU Nama Item Standar Jumlah Berat per kemasan (kg) Isi per outer (kg) Isi per outer (pac) Jenis Outer (karung/box) -1 11110059 CEKER BERKUKU FROZEN PACK 1 KG(*) bag 1 10 10 Box -2 11110074 CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) PAC 1 20 20 Karung -3 11140051 AMPELA FROZEN PACK 1 KG(*) kg 1 10 10 Box -4 11140062 AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) PAC 1 20 20 Karung -5 11150052 HATI FROZEN PACK 1 KG(*) kg 1 10 10 Karung -6 11150055 JANTUNG FROZEN PACK 1 KG(*) kg 1 10 10 Karung -7 11150064 HATI 1 KG FROZEN (20 PAC/KARUNG)(*) PAC 1 20 20 Karung -8 11150065 JANTUNG 1 KG FROZEN (20 PAC/KARUNG)(*) PAC 1 20 20 Karung -9 11310012 AYAM SIZE 0 (0.6-0.7)KG(*) PC 0.65 26 40 Karung -10 11310013 AYAM SIZE1 FROZEN (0.75-0.8) KG(*) PC 0.75 22.5 30 Karung -11 11310014 AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) PC 0.85 17 20 Karung -12 11310016 AYAM SIZE Z PR FROZ(*) PC 0.58 23.2 40 Karung -13 11310017 AYAM SIZE 0 PR FROZEN(*) PC 0.65 26 40 Karung -14 11310018 AYAM SIZE 1 PR FROZEN(*) PC 0.75 22.5 30 Karung -15 11310019 AYAM SIZE 2 PR FROZEN(*) PC 0.85 17 20 Karung -16 11310021 AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) PC 1.05 21 20 Karung -17 11310022 AYAM SIZE A PR (0.9-1)KG/PC(*) PC 0.95 19 20 Karung -18 11310024 AYAM SIZE A FROZEN (0.9-1)KG/PC(*) PC 0.95 19 20 Karung -19 11310025 AYAM SIZE SUPER (C) FROZ(1.1-1.2)KG/ PC(*) PC 1.15 23 20 Karung -20 11310026 AYAM SIZE JUMBO (D) FROZ (1.2- 1.3)KG/PC(*) pc 1.25 20 16 Karung -21 11410043 PARTING 10 SIZE D FRESH BENSU 1.25 KG/PAC(*) PAC 1.25 12.5 10 Bag -22 11420055 PARTING 12 ALL SIZE FROZ/PAC(*) PAC 1 10 10 Box -23 11600053 BONELESS LEG FROZEN 1 KG(*) kg 1 10 10 Box -24 11620056 SBL (FILLET PAHA) 1 KG(*) kg 1 10 10 Box -25 11640053 PAHA UTUH (1 KG)(*) PAC 1 10 10 Box -26 11650053 PAHA ATAS 1 KG(*) kg 1 10 10 Box -27 11660050 PAHA BAWAH (1 KG)(*) PAC 1 10 10 Box -28 11690053 SBB (FILLET DADA )1 KG(*) kg 1 10 10 Box -29 11690081 SBB JUMBO FZ (2.0 - 2.2 KG/PAC)(*) PAC 2 20 10 Karung -30 11710051 DADA UTUH (1 KG)(*) kg 1 10 10 Box -31 11720055 FULL WING FROZ PACK 1 KG(*) kg 1 10 10 Box -32 11730050 MIDDLE WING FROZ PACK 1 KG(*) PAC 1 10 10 Box -33 11750050 FILLET MITRA 1 KG(*) KG 1 10 10 Box -34 11840002 AYAM JANTAN BKKL SZ 0 (600-700) GR/PC(*) PC 0 0 0 Karung -35 11959937 SATE AYAM FRESHMART 360 GR (PAC) PAC 0.36 7.2 20 Box -36 12010111 FIESTA CRISPY BUBBLE 400 GR/PAC PAC 0.4 4.8 12 Box -37 12010112 FIESTA CHICKEN NUGGET 400 GR/PAC PAC 0.4 4.8 12 Box -38 12010113 FIESTA CHICKEN NUGGET 200 GR/PAC PAC 0.2 4.8 24 Box -39 12010115 FIESTA NUGGET ZOO 400 GR/PAC PAC 0.4 4.8 12 Box -40 12010116 FIESTA NUGGET DINO 400 GR/PAC PAC 0.4 4.8 12 Box -41 12010117 FIESTA NUGGET HAPPY STAR 400 GR/PAC PAC 0.4 4.8 12 Box -42 12010119 FIESTA NUGGET CHEESE 123 400 GR/PAC PAC 0.4 4.8 12 Box -43 12010121 FIESTA NUGGET PIZZABC 400 GR/PAC PAC 0.4 4.8 12 Box -44 12010122 FIESTA CHEESY LOVER 400 GR/PAC PAC 0.4 4.8 12 Box -45 12010123 FIESTA GARLIC CHEESE 400 GR/PAC PAC 0.4 4.8 12 Box -46 12010124 FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC PAC 0.4 4.8 12 Box -47 12010127 FIESTA SPICY NUGGET 400 GR/PAC PAC 0.4 4.8 12 Box -48 12010128 FIESTA VOLCANO CHEESE 400 GR/PAC PAC 0.4 4.8 12 Box -49 12010129 FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR PAC 0.4 4.8 12 Box -50 12010402 GOLDEN FIESTA NUGGET W/PINEAPPLE SAUCE 500 GR PAC 0.5 5 10 Box -51 12010509 CHAMP CRUNCHY NUGGET 450 GR/PAC PAC 0.45 4.5 10 Box -52 12010510 CHAMP NUGGET AYAM 225 GR/PAC PAC 0.225 4.95 22 Box -53 12010511 CHAMP NUGGET AYAM 450 GR/PAC PAC 0.45 5.4 12 Box -54 12010512 CHAMP NUGGET AYAM 900 GR/PAC PAC 0.9 5.4 6 Box -55 12010513 CHAMP NUGGET ABC KOMBINASI 225 GR/PAC PAC 0.225 4.95 22 Box -56 12010514 CHAMP NUGGET ABC KOMBINASI 450 GR/PAC PAC 0.45 5.4 12 Box -57 12010515 CHAMP KOIN KOMBINASI 450 GR/PAC PAC 0.45 5.4 12 Box -58 12010516 CHAMP KOIN KOMBINASI 200 GR/PAC PAC 0.2 6 30 Box -59 12010517 CHAMP NUGGET STICK 225 GR/PAC PAC 0.225 4.95 22 Box -60 12010518 CHAMP NUGGET STICK 450 GR/PAC PAC 0.45 5.4 12 Box -61 12010519 CHAMP NUGGET STICK 900 GR/PAC PAC 0.9 5.4 6 Box -62 12010520 CHAMP CHICKEN NUGGET BENTUK 123 450 GR/PAC PAC 0.45 5.4 12 Box -63 12010521 CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC PAC 0.45 5.4 12 Box -64 12010606 CHAMP CRUNCHY NUGGET 225 GR/PAC PAC 0.225 5.625 25 Box -65 12010707 CHAMP MITRA NUGGET COIN 200 GR (NEW) PAC 0.2 6 30 Box -66 12010801 OKEY NUGGET 500GR PAC 0.5 5 10 Box -67 12012201 ASIMO NUGGET KOMBINASI 500 GR/PAC PAC 0.5 5 10 Box -68 12012202 ASIMO NUGGET KOMBINASI 1 KG/PAC PAC 1 5 5 Box -69 12012203 ASIMO NUGGET KOMBINASI 250 GR/PAC PAC 0.25 5 20 Box -70 12012501 AKUMO CHICKEN NAGET 250 GR PAC 0.25 5 20 Box -71 12012502 AKUMO CHICKEN NUGGET 500 GR PAC 0.5 5 10 Box -72 12012503 AKUMO CHICKEN NUGGET 1000 GR PAC 1 5 5 Box -73 12012504 AKUMO COIN 200 GR/PAC pack 0.2 6 30 Box -74 12012505 AKUMO KOIN 400 GR/PAC PAC 0.4 6 15 Box -75 12020102 FIESTA SPICY WING 400 GR/PAC PAC 0.4 4.8 12 Box -76 12020401 GOLDEN FIESTA SP WING 500 GR PAC 0.5 5 10 Box -77 12030101 FIESTA STIKIE 400 GR/PAC PAC 0.4 4.8 12 Box -78 12030102 FIESTA STIKIE 200 GR/PAC PAC 0.2 4.8 24 Box -79 12030403 GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR PAC 0.5 5 10 Box -80 12030801 OKEY STICK 1000 GR PAC 1 5 5 Box -81 12030802 OKEY STICK 500GR PAC 0.5 5 10 Box -82 12032201 ASIMO STICK KOMBINASI 500 GR/PAC PAC 0.5 5 10 Box -83 12032202 ASIMO STICK KOMBINASI 1000 GR/PAC PAC 1 5 5 Box -84 12032203 ASIMO STIK KOMBINASI 250 GR/PAC PAC 0.25 5 20 Box -85 12032501 AKUMO CHICKEN STICK 250 GR PAC 0.25 5 20 Box -86 12032502 AKUMO CHICKEN STIK 500 GR PAC 0.5 5 10 Box -87 12032503 AKUMO CHICKEN STICK 1000 GR PAC 1 5 5 Box -88 12040101 FIESTA SCHNITZEL 400 GR/PAC PAC 0.4 4.8 12 Box -89 12040102 FIESTA CRISPY BUBBLE KATSU 400 GR/PAC PAC 0.4 4.8 12 Box -90 12040404 GOLDEN FIESTA CORDON BLEU BBQ SAUCE 500 GR PAC 0.5 5 10 Box -91 12040406 GOLDEN FIESTA KATSU W/CHEESE SAUCE 500 GR/PAC PAC 0.5 5 10 Box -92 12050103 FIESTA FRIED CHICKEN 400 GR/PAC PAC 0.4 4.8 12 Box -93 12050104 FIESTA HOT & CRISPY FRIED CHICKEN 400 GR/PAC PAC 0.4 4.8 12 Box -94 12050401 GOLDEN FIESTA CRISPY WING W/SP GLAZ SC 500 GR/PAC PAC 0.5 5 10 Box -95 12060103 FIESTA KARAGE 200 GR/PAC PAC 0.2 4.8 24 Box -96 12060104 FIESTA KARAGE 400 GR/PAC PAC 0.4 4.8 12 Box -97 12060105 FIESTA SPICY KARAGE 400 GR/PAC PAC 0.4 4.8 12 Box -98 12060402 GOLDEN FIESTA KARAGE CHILI SAUCE 500GR PAC 0.5 5 10 Box -99 12070101 FIESTA POK-POK 400 GR/PAC (NEW) PAC 0.4 4.8 12 Box -100 12080101 FIESTA SPICY CHICK 400 GR/PAC PAC 0.4 4.8 12 Box -101 12130102 FIESTA CRISPY BURGER 360 GR (NEW) PAC 0.36 7.2 20 Box -102 12130504 CHAMP BURGER 315 GR (NEW) PAC 0.315 6.3 20 Box -103 12140105 FIESTA CHICK TOFU 400 GR/PAC PAC 0.4 4.8 12 Box -104 12150201 FIESTA DS CRISPY CRUNCH 300 GR/PAC PAC 0.3 3 10 Box -105 12150501 CHAMP CRUNCHY HOTZZ 300 GR/PAC PAC 0.3 3 10 Box -106 12190103 FIESTA DELISTRIPE 400 GR/PAC PAC 0.4 4.8 12 Box -107 12240102 FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC PAC 0.4 4.8 12 Box -108 12240103 FIESTA YAKINIKU R/BITES 400 GR/PAC PAC 0.4 4.8 12 Box -109 13010101 FIESTA CHICK SSG 300 GR PAC 0.3 6 20 Box -110 13010102 FIESTA CHICK SSG 500 GR PAC 0.5 5 10 Box -111 13010103 FIESTA CHICK SSG 200 GR/PAC PAC 0.2 5 25 Box -112 13010111 FIESTA SOSIS BRATWURST 300 GR PAC 0.3 6 20 Box -113 13010112 FIESTA CHEESE SSG 300 GR PAC 0.3 6 20 Box -114 13010113 FIESTA SOSIS CURRYWURST 300 GR PAC 0.3 6 20 Box -115 13010114 FIESTA SSG BOCKWURST 300GR PAC 0.3 6 20 Box -116 13010115 FIESTA SSG WIENER 300GR PAC 0.3 6 20 Box -117 13010116 FIESTA SSG ORIGINAL 300 GR PAC 0.3 6 20 Box -118 13010117 FIESTA SSG FRANKFURTER 300GR PAC 0.3 6 20 Box -119 13010118 FIESTA RTG SSG 65 GR/PAC PAC 0.065 4.68 72 Box -120 13010119 FIESTA RTG C/SPICY KOREAN 60 GR/PAC PAC 0.06 4.32 72 Box -121 13010120 FIESTA RTG C/CHEESY MELTS 65 GR/PAC PAC 0.065 4.68 72 Box -122 13010122 FIESTA RTG SAUSAGE WITH HOT LAVA 60G PAC 0.06 4.32 72 Box -123 13010123 FIESTA RTG SAUSAGE WITH CHEESE LAVA 60G PAC 0.06 4.32 72 Box -124 13010124 FIESTA RTG SAUSAGE HICKORY SAUCE 60GR PAC 0.06 4.32 72 Box -125 13010125 FIESTA RTG SAUSAGE WITH MENTAI LAVA 60GR PAC 0.06 4.32 72 Box -126 13010510 CHAMP CHICK SSG 75 GR PAC 0.075 6 80 Box -127 13010513 CHAMP CHICK SSG 375 GR PAC 0.375 5.625 15 Box -128 13010514 CHAMP CHICK SSG 1000 GR PAC 1 10 10 Box -129 13010518 CHAMP SSG JUMBO BAKAR 500 GR/PAC PAC 0.5 5 10 Box -130 13010519 CHAMP SSG BAKAR MINI 500 GR/PAC-INACT PAC 0.5 5 10 Box -131 13010521 CHAMP CHICK SSG 150 GR/PAC (NEW) PAC 0.15 6.75 45 Box -132 13010523 CHAMP CHICK SSG AYAM MADU 300 GR/PAC PAC 0.3 6 20 Box -133 13010524 CHAMP SSG JUMBO BAKAR 500 GR/PAC (NEW) PAC 0.5 5 10 Box -134 13010525 CHAMP SSG BAKAR MINI 500 GR/PAC (NEW) PAC 0.5 5 10 Box -135 13010809 OKEY CHICK SSG 500GR-INACT PAC 0.5 10 20 Box -136 13010815 OKEY SSG BAKAR JUMBO 500 GR/PAC (NEW) PAC 0.5 5 10 Box -137 13010816 OKEY SSG BAKAR MINI 500 GR/PAC (NEW) PAC 0.5 5 10 Box -138 13010817 OKEY SSG CHICK KOMBINASI 500 GR (EXTRA1) PAC 0.5 10 20 Box -139 13010818 OKEY SSG CHICK KOMBINASI 1 KG (EXTR$A2) PAC 1 10 10 Box -140 13012205 ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC) PAC 0.375 5.625 15 Box -141 13012206 ASIMO SOSIS AYAM KOMBINASI 500 GR PAC 0.5 10 20 Box -142 13012207 ASIMO SOSIS AYAM KOMBINASI 750 GR PAC 0.75 6 8 Box -143 13012208 ASIMO SOSIS AYAM KOMBINASI 1000 GR PAC 1 10 10 Box -144 13012209 ASIMO SSG CHICK KOMBINASI 500 GR (EXTRA1) PAC 0.5 10 20 Box -145 13012210 ASIMO SSG CHICK KOMBINASI 1 KG (EXTR$A2) PAC 1 10 10 Box -146 13030101 FIESTA CHICK MEAT BALL 300 GR PAC 0.3 6 20 Box -147 13030102 FIESTA CHICK MEATBALL 500 GR PAC 0.5 5 10 Box -148 13030501 CHAMP CHICK MEATBALL 200 GR PAC 0.2 5 25 Box -149 13030502 CHAMP CHICK MEATBALL 500 GR PAC 0.5 5 10 Box -150 13050101 FIESTA SCB 250 GR PAC 0.25 5 20 Box -151 13050105 FIESTA CHICKEN SLICE 300 GR PAC 0.3 6 20 Box -152 13050106 FIESTA BEEF SLICE 300 GR PAC 0.3 6 20 Box -153 13070501 CHAMP BEEF SSG SERBAGUNA 150 GR PAC 0.15 6.75 45 Box -154 13070502 CHAMP BEEF SSG SERBAGUNA 375GR PAC 0.375 9 24 Box -155 13070505 CHAMP BEEF SSG GORENG 375 GR PAC 0.375 5.625 15 Box -156 13070506 CHAMP FRANKFURTER SSG 375GR PAC 0.375 5.625 15 Box -157 13100512 CHAMP CHICK SSG S/SANTAP ORIG 546GR (CAN) can 0.546 3.276 6 Box -158 13110504 CHAMP BEEF BALL 500GR PAC 0.5 5 10 Box -159 13170510 CHAMP BEEF BBQ SSG S/SANTAP 546GR (CAN) can 0.546 3.276 6 Box -160 15010101 FIESTA SHOESTRING 500 GR PAC 0.5 6 12 Box -161 15010102 FIESTA SHOESTRING 1000 GR PAC 1 12 12 Box -162 15010107 FIESTA FRENCH F SHOESTRING INSTITUSI 2KG PAC 2 12 6 Box -163 15020101 FIESTA STRAIGHT CUT 500 GR PAC 0.5 6 12 Box -164 15020102 FIESTA STRAIGHT CUT 1000 GR PAC 1 12 12 Box -165 15030101 FIESTA CRINKLE CUT 500 GR PAC 0.5 6 12 Box -166 15030102 FIESTA CRINKLE CUT 1000 GR PAC 1 12 12 Box -167 15040101 FIESTA BATTER COATED 500 GR PAC 0.5 6 12 Box -168 15040102 FIESTA BATTER COATED 1000 GR PAC 1 12 12 Box -169 16060103 FIESTA CHICK SIOMAY 900GR PAC 0.9 10.8 12 Box -170 16060113 FIESTA CHICK SIOMAY 180GR (NEW) PAC 0.18 5.4 30 Box -171 16060114 FIESTA GYOZA 180 GR (NEW) PAC 0.18 5.4 30 Box -172 16060119 FIESTA RTG SIOMAY 54 GR/PAC PAC 0.054 3.888 72 Box -173 16060120 FIESTA KEECHO 400 GR/PAC PAC 0.4 4.8 12 Box -174 16060121 FIESTA CHICKEN TOFU 400 GR/PAC (NEW) PAC 0.4 4.8 12 Box -175 16060503 CHAMP CHICK&FISH SIOMAY 180 GR (NEW) PAC 0.18 5.4 30 Box -176 17200109 FIESTA RTS C/TERIYAKI 300GR/PAC PAC 0.3 2.4 8 Box -177 17200110 FIESTA RTS C/RENDANG 300GR/PAC PAC 0.3 2.4 8 Box -178 17200111 FIESTA RTS C/W RUJAK SC 300GR/PAC PAC 0.3 2.4 8 Box -179 17200112 FIESTA RTS C/W S/MATAH 300GR/PAC PAC 0.3 2.4 8 Box -180 17210106 FIESTA RTS B/YAKINIKU 300GR/PAC PAC 0.3 2.4 8 Box -181 17210107 FIESTA RTS B/RENDANG 300GR/PAC PAC 0.3 2.4 8 Box -182 17210108 FIESTA RTS B/BLACKPEPPER 300GR/PAC PAC 0.3 2.4 8 Box -183 17210109 FIESTA RTS B/BULGOGI 300GR/PAC PAC 0.3 2.4 8 Box -184 18050102 FIESTA RTG BAKSO KEJU 60 GR/PAC PAC 0.06 4.32 72 Box -185 18050103 FIESTA RTG BAKSO BAKAR BBQ 60 GR/PAC PAC 0.06 4.32 72 Box -186 18050104 FIESTA RTG BEEF BALL WITH MENTAI LAVA 55GR PAC 0.055 3.96 72 Box -187 18050105 FIESTA RTG BEEF BALL WITH CHEESE LAVA 55GR PAC 0.055 3.96 72 Box -188 20010101 FIESTA CRISPY CRUMBS 200 GR PAC 0.2 4.8 24 Box -189 20010102 FIESTA TP ROTI PUTIH 200 GR PAC 0.2 4.8 24 Box -190 20040101 FIESTA RAMEN BEKU 570 GR/PAC PAC 0.57 6.84 12 Box -191 20120102 FIESTA T/B AYAM GORENG 80 GR PAC 0.08 3.2 40 Box -192 20120105 FIESTA T/B SERBAGUNA  80 GR PAC 0.08 3.2 40 Box -193 20120106 FIESTA T/B KREMES 80 GR PAC 0.08 3.2 40 Box -194 20120115 FIESTA RACIK AYAM GORENG 20 GR/PAC PAC 0.02 1.6 80 Box -195 20120116 FIESTA RACIK NASI GORENG 20 GR/PAC PAC 0.02 1.6 80 Box -196 21000123 FIESTA RICE W/GEPREK CHICKEN 320GR/PAC PAC 0.32 1.92 6 Box -197 21000124 FIESTA RICE W/CHICK RUJAK 320 GR/PAC PAC 0.32 1.92 6 Box -198 21000125 FIESTA RICE W/KOREAN BBQ CHICK 320 GR/PAC PAC 0.32 1.92 6 Box -199 21000126 NEW FIESTA CHICK RENDANG W RICE 320GR (PAC) PAC 0.32 1.92 6 Box -200 21000127 NEW FIESTA CHICK TERIYAKI W RICE 320GR (PAC) PAC 0.32 1.92 6 Box -201 21000128 NEW FIESTA CHICK TANDORI W RICE 320GR (PAC) PAC 0.32 1.92 6 Box -202 21000129 NEW FIESTA RICE W KARAGE&SSS 320GR (PAC) PAC 0.32 1.92 6 Box -203 21000130 NEW FIESTA RICE W/C CHEESE BULDAK 320GR (PAC) PAC 0.32 1.92 6 Box -204 21000131 NEW FIESTA RICE W CHIC CURRY 320GR (PAC) PAC 0.32 1.92 6 Box -205 21000132 NEW FIESTA RICE W CHICK DONBURI 320GR (PAC) PAC 0.32 1.92 6 Box -206 21000133 NEW FIESTA RICE W CHICK SATAY 320GR (PAC) PAC 0.32 1.92 6 Box -207 21000134 NEW FIESTA COCONUT RICE W SPICY CHICK 320GR (PAC) PAC 0.32 1.92 6 Box -208 21000135 NEW FIESTA RICE W POPBITES S/MATAH 320GR (PAC) PAC 0.32 1.92 6 Box -209 21000136 NEW FIESTA TUMERIC W POPBITES 320GR (PAC) PAC 0.32 1.92 6 Box -210 21000137 FIESTA HAINAMESE CHICKEN RICE 320GR (PAC) PAC 0.32 1.92 6 Box -211 21010101 FIESTA TRUFFLE GYUDON 320 GR/PAC PAC 0.32 1.92 6 Box -212 21010102 NEW FIESTA BEEF YAKINIKU W RICE 320GR (PAC) PAC 0.32 1.92 6 Box -213 21010103 NEW FIESTA BEEF BULGOGI W RICE 320GR (PAC) PAC 0.32 1.92 6 Box -214 21010104 NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) PAC 0.32 1.92 6 Box -215 21010105 NEW FIESTA RICE W BEEF BLACKPEPPER 320GR (PAC) PAC 0.32 1.92 6 Box -216 21200107 NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC) PAC 0.3 1.8 6 Box -217 21200108 NEW FIESTA SPAGHETTI CHIC BOLOGNESE 320GR (PAC) PAC 0.32 1.92 6 Box -218 21200109 NEW FIESTA ITALIAN MEATBALL SPAGHETTI 320GR (PAC) PAC 0.32 1.92 6 Box -219 21310103 NEW FIESTA SCB&S/SSG FRIED RICE 320GR (PAC) PAC 0.32 1.92 6 Box -220 21500101 FIESTA CHICK SSG & C. BALL PIZZA 230GR/PAC PAC 0.23 1.15 5 Box -221 21500102 FIESTA CHEESY BEEF PIZZA 230GR/PAC PAC 0.23 1.15 5 Box -222 1188002W PAHA ATAS 25-30 G FZ (*) PAC 1 10 10 Box -223 1195008A RTC CHICKEN KALASAN 400 GR (PAC) PAC 0.41 4.1 10 Box -224 1195008E RTC CHICKEN TERIYAKI 400 GR (PAC) PAC 0.4 3.2 8 Box -225 1195008X RTC CHICKEN SPICY 400 GR (PAC) PAC 0.4 3.2 8 Box \ No newline at end of file diff --git a/backend/sources/sku_master_old.csv b/backend/sources/sku_master_old.csv deleted file mode 100644 index 788b26d..0000000 --- a/backend/sources/sku_master_old.csv +++ /dev/null @@ -1,233 +0,0 @@ -sku,nama_barang -11048006,BEBEK PARTING-NEW(*) -11110059,CEKER BERKUKU FROZEN PACK 1 KG(*) -11110074,CEKER 1 KG FROZEN (20 PAC/KARUNG)(*) -11140051,AMPELA FROZEN PACK 1 KG(*) -11140062,AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) -11148002,AMPELA BEBEK FROZEN 1 KG/PACK (NEW)(*) -11150052,HATI FROZEN PACK 1 KG(*) -11150055,JANTUNG FROZEN PACK 1 KG(*) -11150064,HATI 1 KG FROZEN (20 PAC/KARUNG)(*) -11150065,JANTUNG 1 KG FROZEN (20 PAC/KARUNG)(*) -11310012,AYAM SIZE 0 (0.6-0.7)KG(*) -11310013,AYAM SIZE1 FROZEN (0.75-0.8) KG(*) -11310014,AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) -11310016,AYAM SIZE Z PR FROZ(*) -11310017,AYAM SIZE 0 PR FROZEN(*) -11310018,AYAM SIZE 1 PR FROZEN(*) -11310019,AYAM SIZE 2 PR FROZEN(*) -11310021,AYAM SIZE BESAR (B) FROZ (1-1.1)KG/PC(*) -11310022,AYAM SIZE A PR (0.9-1)KG/PC(*) -11310024,AYAM SIZE A FROZEN (0.9-1)KG/PC(*) -11310025,AYAM SIZE SUPER (C) FROZ(1.1-1.2)KG/ PC(*) -11310026,AYAM SIZE JUMBO (D) FROZ (1.2- 1.3)KG/PC(*) -11318301,BEBEK MUDA-BD1(1.0-1.1 KG)-NEW(*) -11318306,CP DUCK PEKING 1.5-1.6 KG/PC(*) -11318308,BEBEK PEKING SPR BD5(1.7 -1.8 )Kg-NEW(*) -11410043,PARTING 10 SIZE D FRESH BENSU 1.25 KG/PAC(*) -11420055,PARTING 12 ALL SIZE FROZ/PAC(*) -11600053,BONELESS LEG FROZEN 1 KG(*) -11620056,SBL (FILLET PAHA) 1 KG(*) -11640053,PAHA UTUH (1 KG)(*) -11650053,PAHA ATAS 1 KG(*) -11660050,PAHA BAWAH (1 KG)(*) -11690053,SBB (FILLET DADA )1 KG(*) -11690081,SBB JUMBO FZ (2.0 - 2.2 KG/PAC)(*) -11710051,DADA UTUH (1 KG)(*) -11720055,FULL WING FROZ PACK 1 KG(*) -11730050,MIDDLE WING FROZ PACK 1 KG(*) -11750050,FILLET MITRA 1 KG(*) -11818300,CP-BEBEK GORENG 400GR/PAC -11840002,AYAM JANTAN BKKL SZ 0 (600-700) GR/PC(*) -11959937,SATE AYAM FRESHMART 360 GR (PAC) -12010111,FIESTA CRISPY BUBBLE 400 GR/PAC -12010112,FIESTA CHICKEN NUGGET 400 GR/PAC -12010113,FIESTA CHICKEN NUGGET 200 GR/PAC -12010115,FIESTA NUGGET ZOO 400 GR/PAC -12010116,FIESTA NUGGET DINO 400 GR/PAC -12010117,FIESTA NUGGET HAPPY STAR 400 GR/PAC -12010119,FIESTA NUGGET CHEESE 123 400 GR/PAC -12010121,FIESTA NUGGET PIZZABC 400 GR/PAC -12010122,FIESTA CHEESY LOVER 400 GR/PAC -12010123,FIESTA GARLIC CHEESE 400 GR/PAC -12010124,FIESTA CHEESY CHIC W/BROCCOLI 400 GR/PAC -12010127,FIESTA SPICY NUGGET 400 GR/PAC -12010128,FIESTA VOLCANO CHEESE 400 GR/PAC -12010129,FIESTA CHEESY BOMBS CHICKEN NUGGET 400 GR -12010402,GOLDEN FIESTA NUGGET W/PINEAPPLE SAUCE 500 GR -12010509,CHAMP CRUNCHY NUGGET 450 GR/PAC -12010510,CHAMP NUGGET AYAM 225 GR/PAC -12010511,CHAMP NUGGET AYAM 450 GR/PAC -12010512,CHAMP NUGGET AYAM 900 GR/PAC -12010513,CHAMP NUGGET ABC KOMBINASI 225 GR/PAC -12010514,CHAMP NUGGET ABC KOMBINASI 450 GR/PAC -12010515,CHAMP KOIN KOMBINASI 450 GR/PAC -12010516,CHAMP KOIN KOMBINASI 200 GR/PAC -12010517,CHAMP NUGGET STICK 225 GR/PAC -12010518,CHAMP NUGGET STICK 450 GR/PAC -12010519,CHAMP NUGGET STICK 900 GR/PAC -12010520,CHAMP CHICKEN NUGGET BENTUK 123 450 GR/PAC -12010521,CHAMP NUGGET HOTZZ LEVEL 5 450 GR/PAC -12010606,CHAMP CRUNCHY NUGGET 225 GR/PAC -12010707,CHAMP MITRA NUGGET COIN 200 GR (NEW) -12010801,OKEY NUGGET 500GR -12012201,ASIMO NUGGET KOMBINASI 500 GR/PAC -12012202,ASIMO NUGGET KOMBINASI 1 KG/PAC -12012203,ASIMO NUGGET KOMBINASI 250 GR/PAC -12012501,AKUMO CHICKEN NAGET 250 GR -12012502,AKUMO CHICKEN NUGGET 500 GR -12012503,AKUMO CHICKEN NUGGET 1000 GR -12012504,AKUMO COIN 200 GR/PAC -12012505,AKUMO KOIN 400 GR/PAC -12020102,FIESTA SPICY WING 400 GR/PAC -12020401,GOLDEN FIESTA SP WING 500 GR -12030101,FIESTA STIKIE 400 GR/PAC -12030102,FIESTA STIKIE 200 GR/PAC -12030403,GOLDEN FIESTA STIKIE W/ SWEET CHILLI SAUCE 500GR -12030801,OKEY STICK 1000 GR -12030802,OKEY STICK 500GR -12032201,ASIMO STICK KOMBINASI 500 GR/PAC -12032202,ASIMO STICK KOMBINASI 1000 GR/PAC -12032203,ASIMO STIK KOMBINASI 250 GR/PAC -12032501,AKUMO CHICKEN STICK 250 GR -12032502,AKUMO CHICKEN STIK 500 GR -12032503,AKUMO CHICKEN STICK 1000 GR -12040101,FIESTA SCHNITZEL 400 GR/PAC -12040102,FIESTA CRISPY BUBBLE KATSU 400 GR/PAC -12040404,GOLDEN FIESTA CORDON BLEU BBQ SAUCE 500 GR -12040406,GOLDEN FIESTA KATSU W/CHEESE SAUCE 500 GR/PAC -12050103,FIESTA FRIED CHICKEN 400 GR/PAC -12050104,FIESTA HOT & CRISPY FRIED CHICKEN 400 GR/PAC -12050401,GOLDEN FIESTA CRISPY WING W/SP GLAZ SC 500 GR/PAC -12060103,FIESTA KARAGE 200 GR/PAC -12060104,FIESTA KARAGE 400 GR/PAC -12060105,FIESTA SPICY KARAGE 400 GR/PAC -12060402,GOLDEN FIESTA KARAGE CHILI SAUCE 500GR -12070101,FIESTA POK-POK 400 GR/PAC (NEW) -12080101,FIESTA SPICY CHICK 400 GR/PAC -12130102,FIESTA CRISPY BURGER 360 GR (NEW) -12130504,CHAMP BURGER 315 GR (NEW) -12140105,FIESTA CHICK TOFU 400 GR/PAC -12150201,FIESTA DS CRISPY CRUNCH 300 GR/PAC -12150501,CHAMP CRUNCHY HOTZZ 300 GR/PAC -12190103,FIESTA DELISTRIPE 400 GR/PAC -12240102,FIESTA CHEESY ITALIAN R/BITES 400 GR/PAC -12240103,FIESTA YAKINIKU R/BITES 400 GR/PAC -13010101,FIESTA CHICK SSG 300 GR -13010102,FIESTA CHICK SSG 500 GR -13010103,FIESTA CHICK SSG 200 GR/PAC -13010111,FIESTA SOSIS BRATWURST 300 GR -13010112,FIESTA CHEESE SSG 300 GR -13010113,FIESTA SOSIS CURRYWURST 300 GR -13010114,FIESTA SSG BOCKWURST 300GR -13010115,FIESTA SSG WIENER 300GR -13010116,FIESTA SSG ORIGINAL 300 GR -13010117,FIESTA SSG FRANKFURTER 300GR -13010118,FIESTA RTG SSG 65 GR/PAC -13010119,FIESTA RTG C/SPICY KOREAN 60 GR/PAC -13010120,FIESTA RTG C/CHEESY MELTS 65 GR/PAC -13010122,FIESTA RTG SAUSAGE WITH HOT LAVA 60G -13010123,FIESTA RTG SAUSAGE WITH CHEESE LAVA 60G -13010124,FIESTA RTG SAUSAGE HICKORY SAUCE 60GR -13010125,FIESTA RTG SAUSAGE WITH MENTAI LAVA 60GR -13010510,CHAMP CHICK SSG 75 GR -13010513,CHAMP CHICK SSG 375 GR -13010514,CHAMP CHICK SSG 1000 GR -13010518,CHAMP SSG JUMBO BAKAR 500 GR/PAC -13010519,CHAMP SSG BAKAR MINI 500 GR/PAC-INACT -13010521,CHAMP CHICK SSG 150 GR/PAC (NEW) -13010523,CHAMP CHICK SSG AYAM MADU 300 GR/PAC -13010524,CHAMP SSG JUMBO BAKAR 500 GR/PAC (NEW) -13010525,CHAMP SSG BAKAR MINI 500 GR/PAC (NEW) -13010809,OKEY CHICK SSG 500GR-INACT -13010815,OKEY SSG BAKAR JUMBO 500 GR/PAC (NEW) -13010816,OKEY SSG BAKAR MINI 500 GR/PAC (NEW) -13010817,OKEY SSG CHICK KOMBINASI 500 GR (EXTRA1) -13010818,OKEY SSG CHICK KOMBINASI 1 KG (EXTR$A2) -13012205,ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC) -13012206,ASIMO SOSIS AYAM KOMBINASI 500 GR -13012207,ASIMO SOSIS AYAM KOMBINASI 750 GR -13012208,ASIMO SOSIS AYAM KOMBINASI 1000 GR -13012209,ASIMO SSG CHICK KOMBINASI 500 GR (EXTRA1) -13012210,ASIMO SSG CHICK KOMBINASI 1 KG (EXTR$A2) -13030101,FIESTA CHICK MEAT BALL 300 GR -13030102,FIESTA CHICK MEATBALL 500 GR -13030501,CHAMP CHICK MEATBALL 200 GR -13030502,CHAMP CHICK MEATBALL 500 GR -13050101,FIESTA SCB 250 GR -13050105,FIESTA CHICKEN SLICE 300 GR -13050106,FIESTA BEEF SLICE 300 GR -13070501,CHAMP BEEF SSG SERBAGUNA 150 GR -13070502,CHAMP BEEF SSG SERBAGUNA 375GR -13070505,CHAMP BEEF SSG GORENG 375 GR -13070506,CHAMP FRANKFURTER SSG 375GR -13100512,CHAMP CHICK SSG S/SANTAP ORIG 546GR (CAN) -13110504,CHAMP BEEF BALL 500GR -13170510,CHAMP BEEF BBQ SSG S/SANTAP 546GR (CAN) -15010101,FIESTA SHOESTRING 500 GR -15010102,FIESTA SHOESTRING 1000 GR -15010107,FIESTA FRENCH F SHOESTRING INSTITUSI 2KG -15020101,FIESTA STRAIGHT CUT 500 GR -15020102,FIESTA STRAIGHT CUT 1000 GR -15030101,FIESTA CRINKLE CUT 500 GR -15030102,FIESTA CRINKLE CUT 1000 GR -15040101,FIESTA BATTER COATED 500 GR -15040102,FIESTA BATTER COATED 1000 GR -16060103,FIESTA CHICK SIOMAY 900GR -16060113,FIESTA CHICK SIOMAY 180GR (NEW) -16060114,FIESTA GYOZA 180 GR (NEW) -16060119,FIESTA RTG SIOMAY 54 GR/PAC -16060120,FIESTA KEECHO 400 GR/PAC -16060121,FIESTA CHICKEN TOFU 400 GR/PAC (NEW) -16060503,CHAMP CHICK&FISH SIOMAY 180 GR (NEW) -17200109,FIESTA RTS C/TERIYAKI 300GR/PAC -17200110,FIESTA RTS C/RENDANG 300GR/PAC -17200111,FIESTA RTS C/W RUJAK SC 300GR/PAC -17200112,FIESTA RTS C/W S/MATAH 300GR/PAC -17210106,FIESTA RTS B/YAKINIKU 300GR/PAC -17210107,FIESTA RTS B/RENDANG 300GR/PAC -17210108,FIESTA RTS B/BLACKPEPPER 300GR/PAC -17210109,FIESTA RTS B/BULGOGI 300GR/PAC -18050102,FIESTA RTG BAKSO KEJU 60 GR/PAC -18050103,FIESTA RTG BAKSO BAKAR BBQ 60 GR/PAC -18050104,FIESTA RTG BEEF BALL WITH MENTAI LAVA 55GR -18050105,FIESTA RTG BEEF BALL WITH CHEESE LAVA 55GR -20010101,FIESTA CRISPY CRUMBS 200 GR -20010102,FIESTA TP ROTI PUTIH 200 GR -20040101,FIESTA RAMEN BEKU 570 GR/PAC -20120102,FIESTA T/B AYAM GORENG 80 GR -20120105,FIESTA T/B SERBAGUNA  80 GR -20120106,FIESTA T/B KREMES 80 GR -20120115,FIESTA RACIK AYAM GORENG 20 GR/PAC -20120116,FIESTA RACIK NASI GORENG 20 GR/PAC -21000123,FIESTA RICE W/GEPREK CHICKEN 320GR/PAC -21000124,FIESTA RICE W/CHICK RUJAK 320 GR/PAC -21000125,FIESTA RICE W/KOREAN BBQ CHICK 320 GR/PAC -21000126,NEW FIESTA CHICK RENDANG W RICE 320GR (PAC) -21000127,NEW FIESTA CHICK TERIYAKI W RICE 320GR (PAC) -21000128,NEW FIESTA CHICK TANDORI W RICE 320GR (PAC) -21000129,NEW FIESTA RICE W KARAGE&SSS 320GR (PAC) -21000130,NEW FIESTA RICE W/C CHEESE BULDAK 320GR (PAC) -21000131,NEW FIESTA RICE W CHIC CURRY 320GR (PAC) -21000132,NEW FIESTA RICE W CHICK DONBURI 320GR (PAC) -21000133,NEW FIESTA RICE W CHICK SATAY 320GR (PAC) -21000134,NEW FIESTA COCONUT RICE W SPICY CHICK 320GR (PAC) -21000135,NEW FIESTA RICE W POPBITES S/MATAH 320GR (PAC) -21000136,NEW FIESTA TUMERIC W POPBITES 320GR (PAC) -21000137,FIESTA HAINAMESE CHICKEN RICE 320GR (PAC) -21010101,FIESTA TRUFFLE GYUDON 320 GR/PAC -21010102,NEW FIESTA BEEF YAKINIKU W RICE 320GR (PAC) -21010103,NEW FIESTA BEEF BULGOGI W RICE 320GR (PAC) -21010104,NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) -21010105,NEW FIESTA RICE W BEEF BLACKPEPPER 320GR (PAC) -21200107,NEW FIESTA SPAGHETTI CARBONARA 300GR (PAC) -21200108,NEW FIESTA SPAGHETTI CHIC BOLOGNESE 320GR (PAC) -21200109,NEW FIESTA ITALIAN MEATBALL SPAGHETTI 320GR (PAC) -21310103,NEW FIESTA SCB&S/SSG FRIED RICE 320GR (PAC) -21500101,FIESTA CHICK SSG & C. BALL PIZZA 230GR/PAC -21500102,FIESTA CHEESY BEEF PIZZA 230GR/PAC -91000012,PHOTOCARD RTG -1188002W,PAHA ATAS 25-30 G FZ (*) -1195008A,RTC CHICKEN KALASAN 400 GR (PAC) -1195008E,RTC CHICKEN TERIYAKI 400 GR (PAC) -1195008X,RTC CHICKEN SPICY 400 GR (PAC) diff --git a/backend/sources/test-images/1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg b/backend/sources/test-images/1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg deleted file mode 100644 index 03f45a2..0000000 Binary files a/backend/sources/test-images/1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg and /dev/null differ diff --git a/backend/sources/test-images/1782888127716-CAP6161747431193129837.jpg b/backend/sources/test-images/1782888127716-CAP6161747431193129837.jpg index 9654a00..0344594 100644 Binary files a/backend/sources/test-images/1782888127716-CAP6161747431193129837.jpg and b/backend/sources/test-images/1782888127716-CAP6161747431193129837.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00001.jpg b/backend/sources/test-images/Sample DO PFM-page-00001.jpg new file mode 100644 index 0000000..211690a Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00001.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00002.jpg b/backend/sources/test-images/Sample DO PFM-page-00002.jpg new file mode 100644 index 0000000..644265b Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00002.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00003.jpg b/backend/sources/test-images/Sample DO PFM-page-00003.jpg new file mode 100644 index 0000000..029bc17 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00003.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00004.jpg b/backend/sources/test-images/Sample DO PFM-page-00004.jpg new file mode 100644 index 0000000..0d1c314 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00004.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00005.jpg b/backend/sources/test-images/Sample DO PFM-page-00005.jpg new file mode 100644 index 0000000..6b89d97 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00005.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00006.jpg b/backend/sources/test-images/Sample DO PFM-page-00006.jpg new file mode 100644 index 0000000..b6da251 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00006.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00007.jpg b/backend/sources/test-images/Sample DO PFM-page-00007.jpg new file mode 100644 index 0000000..1e7cfd2 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00007.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00008.jpg b/backend/sources/test-images/Sample DO PFM-page-00008.jpg new file mode 100644 index 0000000..b74dbf3 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00008.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00009.jpg b/backend/sources/test-images/Sample DO PFM-page-00009.jpg new file mode 100644 index 0000000..d6ca714 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00009.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00010.jpg b/backend/sources/test-images/Sample DO PFM-page-00010.jpg new file mode 100644 index 0000000..4c2438f Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00010.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00011.jpg b/backend/sources/test-images/Sample DO PFM-page-00011.jpg new file mode 100644 index 0000000..5f191f1 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00011.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00012.jpg b/backend/sources/test-images/Sample DO PFM-page-00012.jpg new file mode 100644 index 0000000..696e39c Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00012.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00013.jpg b/backend/sources/test-images/Sample DO PFM-page-00013.jpg new file mode 100644 index 0000000..35a4775 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00013.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00014.jpg b/backend/sources/test-images/Sample DO PFM-page-00014.jpg new file mode 100644 index 0000000..1217cfd Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00014.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00015.jpg b/backend/sources/test-images/Sample DO PFM-page-00015.jpg new file mode 100644 index 0000000..c27be2e Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00015.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00016.jpg b/backend/sources/test-images/Sample DO PFM-page-00016.jpg new file mode 100644 index 0000000..aed4300 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00016.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00017.jpg b/backend/sources/test-images/Sample DO PFM-page-00017.jpg new file mode 100644 index 0000000..563a522 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00017.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00018.jpg b/backend/sources/test-images/Sample DO PFM-page-00018.jpg new file mode 100644 index 0000000..ede6829 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00018.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00019.jpg b/backend/sources/test-images/Sample DO PFM-page-00019.jpg new file mode 100644 index 0000000..0727674 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00019.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00020.jpg b/backend/sources/test-images/Sample DO PFM-page-00020.jpg new file mode 100644 index 0000000..2e56710 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00020.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00021.jpg b/backend/sources/test-images/Sample DO PFM-page-00021.jpg new file mode 100644 index 0000000..41343f1 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00021.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00022.jpg b/backend/sources/test-images/Sample DO PFM-page-00022.jpg new file mode 100644 index 0000000..1834864 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00022.jpg differ diff --git a/backend/sources/test-images/Sample DO PFM-page-00023.jpg b/backend/sources/test-images/Sample DO PFM-page-00023.jpg new file mode 100644 index 0000000..7498b32 Binary files /dev/null and b/backend/sources/test-images/Sample DO PFM-page-00023.jpg differ diff --git a/backend/sources/test_images_report.md b/backend/sources/test_images_report.md deleted file mode 100644 index 03ecbfc..0000000 --- a/backend/sources/test_images_report.md +++ /dev/null @@ -1,1905 +0,0 @@ -# Batch OCR Parsing Test Report - -Processed **30** file from `backend/sources/test-images`. - -## Summary Table - -| No | Filename | Status | Tilt | Auto-Rotated | PO | SO | DO | Date | Store Match | Items Count | -|---|---|---|---|---|---|---|---|---|---|---| -| 1 | `1782870899198-sample_do.jpeg` | **Success** | 1.29° | Yes | `PO/26/0000230828` | `1691960321` | `1659980277` | `23 June 2026` | PX HEAD OFFICE ANCOL | 5 | -| 2 | `1782872141829-rotated_1782872118246_rotated_1782872112296_rotated_1782872107513_CAP3481952560331460805.jpg` | **Success** | 0.16° | No | `PO/26/0000230828` | `1691960321` | `1659980277` | `23 June 2026` | PX HEAD OFFICE ANCOL | 2 | -| 3 | `1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg` | **Success** | 24.41° | Yes | `PO/20/0000100029` | `1011221200` | `100043004` | `25 November 2020` | PX HEAD OFFICE ANCOL | 1 | -| 4 | `1782884664859-rotated_1782884661516_rotated_1782884658097_rotated_1782884654697_CAP5956452738616729026.jpg` | **Success** | 0.06° | No | `PO/26/0000178435` | `1691908676` | `1659932080` | `15 May 2026` | AYAM HITZ HO ANCOL | 1 | -| 5 | `1782888127716-CAP6161747431193129837.jpg` | **Success** | 7.14° | Yes | `PO/26/0000241938` | `1691972227` | `1659990561` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 6 | `1782888211457-rotated_1782888204591_rotated_1782888199962_rotated_1782888195402_CAP7202641176939787142.jpg` | **Success** | 0.00° | No | `PO/26/0000241938` | `1691972227` | `1659990561` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 7 | `1782888609885-rotated_1782888593813_1000000454.jpg` | **Success** | 22.84° | Yes | `PO/26/0000238723` | `Not Found` | `Not Found` | `Not Found` | PX HEAD OFFICE ANCOL | 6 | -| 8 | `1782890303600-1000000465.jpg` | **Success** | 17.41° | Yes | `PO/26/0000241302` | `1691972284` | `1659990583` | `30 June 2026` | PX HEAD OFFICE ANCOL | 8 | -| 9 | `1782892728794-1000000466.jpg` | **Success** | 10.10° | Yes | `PO/26/0000241302` | `1691972284` | `1659990583` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 10 | `1782909791970-sample_do.jpeg` | **Success** | 1.29° | Yes | `PO/26/0000230828` | `1691960321` | `1659980277` | `23 June 2026` | PX HEAD OFFICE ANCOL | 5 | -| 11 | `IMG_20260630_145445.jpg` | **Success** | 10.71° | Yes | `PO/26/0000170727` | `1071721209` | `1057745004` | `25 May 2026` | PX HEAD OFFICE ANCOL | 1 | -| 12 | `IMG_20260701_134446.jpg` | **Success** | 0.00° | No | `Not Found` | `Not Found` | `Not Found` | `Not Found` | PX HEAD OFFICE ANCOL | 1 | -| 13 | `IMG_20260701_134504.jpg` | **Success** | 14.75° | Yes | `PO/26/0000241303` | `1691972285` | `1659990584` | `30 June 2026` | PRIMA XPRESS - TOWN HALL ANCOL | 1 | -| 14 | `IMG_20260701_134533.jpg` | **Success** | 16.06° | Yes | `PO/26/0000241302` | `1691972284` | `1659990583` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 15 | `IMG_20260701_134555.jpg` | **Success** | 0.15° | No | `PO/26/0000241304` | `2271289510` | `2272290022` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 16 | `IMG_20260701_134555~2.jpg` | **Success** | 0.22° | No | `PO/26/0000241304` | `2271289510` | `2272290022` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 17 | `IMG_20260701_134635.jpg` | **Success** | 7.31° | Yes | `PO/26/00002334` | `6451012981` | `6452013068` | `24 June 2026` | PX HEAD OFFICE ANCOL | 0 | -| 18 | `IMG_20260701_134636.jpg` | **Success** | 13.63° | Yes | `Not Found` | `6451012981` | `6452013068` | `24 June 2026` | PX HEAD OFFICE ANCOL | 0 | -| 19 | `IMG_20260701_134646.jpg` | **Success** | 2.44° | Yes | `PO/26/0000230199` | `1691960321` | `1659980277` | `23 June 2026` | PX HEAD OFFICE ANCOL | 5 | -| 20 | `IMG_20260701_134646~2.jpg` | **Success** | 0.57° | No | `PO/26/0000230199` | `1691960321` | `1659980277` | `23 June 2026` | PX HEAD OFFICE ANCOL | 5 | -| 21 | `IMG_20260701_134704.jpg` | **Success** | 15.16° | Yes | `Not Found` | `Not Found` | `Not Found` | `Not Found` | PX HEAD OFFICE ANCOL | 6 | -| 22 | `IMG_20260701_134704~2.jpg` | **Success** | 16.36° | Yes | `PO/26/0000238723` | `Not Found` | `Not Found` | `Not Found` | PX HEAD OFFICE ANCOL | 6 | -| 23 | `IMG_20260701_134810.jpg` | **Success** | 0.00° | No | `Not Found` | `Not Found` | `Not Found` | `Not Found` | N/A | 6 | -| 24 | `IMG_20260701_134817.jpg` | **Success** | 5.81° | Yes | `PO/26/0000241303` | `1691972285` | `1659990584` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 25 | `IMG_20260701_135900.jpg` | **Success** | 15.54° | Yes | `PO/26/0000241304` | `2271289510` | `2272290022` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 26 | `IMG_20260701_135910.jpg` | **Success** | 4.51° | Yes | `PO/26/0000241938` | `1691972227` | `1659990561` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 27 | `IMG_20260701_135923.jpg` | **Success** | 30.66° | Yes | `PO/26/0000241303` | `1691972285` | `1659990584` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | -| 28 | `IMG_20260701_135938.jpg` | **Success** | 27.40° | Yes | `PO/26/000024` | `1659990664` | `1659990664` | `30 June 2026` | PX HEAD OFFICE ANCOL | 6 | -| 29 | `IMG_20260701_135950.jpg` | **Success** | 17.41° | Yes | `PO/26/0000241302` | `1691972284` | `1659990583` | `30 June 2026` | PX HEAD OFFICE ANCOL | 8 | -| 30 | `IMG_20260701_140005.jpg` | **Success** | 10.10° | Yes | `PO/26/0000241302` | `1691972284` | `1659990583` | `30 June 2026` | PX HEAD OFFICE ANCOL | 1 | - - - -## Detailed Results per Image - -### 1. `1782870899198-sample_do.jpeg` -- **Status**: Success -- **Tilt Detected**: 1.29° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000230828` - * **SO**: `1691960321` - * **DO**: `1659980277` - * **Tanggal**: `23 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9427 UXT` -- **Raw Layout Markdown**: -```markdown -
Image
- - -terima oleh Disesahkan oleh - -ESIA TDK - -KAWASHI BANTEN - -ERN - -02:56:41 - -Kepada : Kepala Gudang - -Tanggal: - -No.SO : 23 June 2026 - -No. DO : 1691960321 - -00168133 - -No. PO : 1659980277 - -## DELIVERY ORDER - -P0/26/0000230828 - -Kepada Yth Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAM. - - -
Kode BarangNama BarangJAKARTA UTARA, 1430\nJAKARTA UTA RA BanyakJumlah
Griller Size 2 ( 20 Ekor ) Frozen2 KRG40 PC
11310014Griller Size A Frozen (900-1000 g) PC2 KRG40 PC
11310024SBL Mitra 10 kg1 BOX10 KG
11620056SBB Mitra 10 kg1 BOX10 KG
11690053Full Wing Frozen Pack1 BOX10 KG
11720055
Barang dikirim dalam keadaan baikJumlah83 110
Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas. kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (5)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `2 KRG` | `40 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `1 KRG` | `10 PC` | - | `11620056` | SBL (FILLET PAHA) 1 KG(*) | `1 BOX` | `10 KG` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `` | - ---- - -### 2. `1782872141829-rotated_1782872118246_rotated_1782872112296_rotated_1782872107513_CAP3481952560331460805.jpg` -- **Status**: Success -- **Tilt Detected**: 0.16° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `PO/26/0000230828` - * **SO**: `1691960321` - * **DO**: `1659980277` - * **Tanggal**: `23 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N 2 KRG` -- **Raw Layout Markdown**: -```markdown -Otterland Oleh - Dissekankan Oleh - -ESIA TDK - -KAWASHI BANTEN - -02:56:41 - -ERN. - -Tanggal: - -No.SO : 23 June 2026 - -No.DO : 1691960321 - -No.PO : 1659980277 - -## DELIVERY ORDER - -Kepada: Kepala Gudang - -P0/26/0000230828 - -00168133 - -Kepada Yth : - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARA BanyakJumlah
11310014\n11310024\n11620056\n11690053\n11720055✓ Griller Size 2 ( 20 Ekor ) Frozen\n✓ Griller Size A Frozen ( 900-1000 g ) PC\n✓ SBL Mitra 10 Kg\n✓ SBB Mitra 10 Kg\n✓ Full Wing Frozen Pack2 KRG\n2 KRG\n1 BOX\n1 BOX\n1 BOX\n1 BOX
Jumlah
Barang dikirim dalam keadaan baik83110
- -Truck No. - -TO TO WH - -
Image
- - -B 9427 UXT - -B 9427 UXT - -PX HEAD OFFICE ANCOL : JL ANCOL BARAT VIII NO 1 JAKARTA UTARA ION - - - -Penerima Barang - -Tanda Tangan Supir - -Bag. Pengeluaran Barang - -Bagian Penjualan - -Lember 3 Customer - -Jika D O ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani. - -Activate W -``` -- **Parsed Items (2)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `2 KRG` | `` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `1 KRG` | `` | - ---- - -### 3. `1782875271815-rotated_1782875258464_rotated_1782875254091_rotated_1782875250123_CAP1599226410575173446.jpg` -- **Status**: Success -- **Tilt Detected**: 24.41° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/20/0000100029` - * **SO**: `1011221200` - * **DO**: `100043004` - * **Tanggal**: `25 November 2020` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -pada : Kepala Gudang - -Tanggal: 25 Nov 2020 - -No.SO : 1011221200 - -00117709 - -No. DO : 100043004 - -## DEL1VERY ORDER - -No.PO:7012010000100029 - -Kepada Yth - -PT.PRIMAFOOD INTERNATIONAL - -Order Untuk - -Alamat - -PFK KV - -3L. ANCOL BARAT VIII/1. ARCOL. PROCHNIGAN. - -JAKARTA UTARA. 14430 - - - - -
Kode BarangNama BarangBanyakJumlah
10030502200 Chama Chicken Dail 500 CR FF110 PAI
ASLI
Barang dikirim dalam keadaan baikJumlah
- -Truck Nó. - -600 9536 8 7 - -
Image
- - -PH NUSTIKA MEDIA I N. ORANIA NUSTIKA MEDIA JL. KP LUDANG GUALHILA LUSO. LUDANG O - -Penerima Barang - -
Image
- - -Bag. Pengeluaran Barang - -
Image
- - -Lember 1: Customer - -Bagiah Penjualan - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `13030502` | CHAMP CHICK MEATBALL 500 GR | `200 BOX` | `10 PAC` | - ---- - -### 4. `1782884664859-rotated_1782884661516_rotated_1782884658097_rotated_1782884654697_CAP5956452738616729026.jpg` -- **Status**: Success -- **Tilt Detected**: 0.06° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `PO/26/0000178435` - * **SO**: `1691908676` - * **DO**: `1659932080` - * **Tanggal**: `15 May 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `AYAM HITZ HO ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9723 CXS` -- **Raw Layout Markdown**: -```markdown -Agnes 'Telco 23 Telkom fineshyt telco -kmrn ngechat gue tp ga jwb Ig - -INDONESIA Tbk - -ODERN, - -02:17:59 / 2 of Tanggal : 15 May 2026 - -No. SO : 1691908676 - -
Image
- - -No. DO : 1659932080 - -No. PO : PO/26/0000178435 - -Kepada : Kepala Gudang - -## DELIVERY ORDER - -00671212 - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : PFM-KU - -Alamat : JL. ANCOL BARAT VIII/1, ANCOL, - -PADEMANGAN, JAKARTA UTARA, 14430 - - - -JAKARTA UTARA - - -
Kode BarangNama BarangBanyakJumlah
13012205673 Asimo Sosis Ayam Kombinasi 375 Gr ASLI1 BOX15 PAC
Jumlah998
- -Barang dikirim dalam keadaan baik - -Truck No. - -
Image
- - -Penerima Barang - -B 9723 CXS - -PM TAKTAKAN SERANG - -WH 01 / 01 - -JL RAYA JAKTAKAN - - - - - -NO 1 G, LONTAN BARU, SERANG, BANTEN - -
Image
- - -Tanda Tangan Supir - -
Image
- - -
Image
- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `13012205` | ASIMO SOSIS AYAM KOMBINASI 375 GR (PAC) | `673 BOX` | `15 PAC` | - ---- - -### 5. `1782888127716-CAP6161747431193129837.jpg` -- **Status**: Success -- **Tilt Detected**: 7.14° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241938` - * **SO**: `1691972227` - * **DO**: `1659990561` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9257 JXR` -- **Raw Layout Markdown**: -```markdown -
Image
- - -JR OMEGA (PC)(*) 900 PC - -POKPHAND INDONESIA TBK INDUSTRI MODERN - -Amount - -Kepada : Kepala Gudang - -31945 - -1,950.00 - -00:21:27 No. SO : 30 June 2026 - -Tanggal : - -No. DO : 1691972227 - -## DELIVERY ORDER - -Kepada Yth : - -No. PO : 1659990561 - -PO/26/0000241938 - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL.ANCOL BARAT VIII/1,ANCOL,PADEMANGAN, - - -
Kode BarangNama BarangJAKARTA UTARA, 14450 JAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN1 WH 01 / 01
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -Lember 3. Customer - -Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami tayani - -07 -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21002601` | Prima Nasi Spicy Chick Sambal Geprek COPY | `1 80X` | `6 PAC` | - ---- - -### 6. `1782888211457-rotated_1782888204591_rotated_1782888199962_rotated_1782888195402_CAP7202641176939787142.jpg` -- **Status**: Success -- **Tilt Detected**: 0.00° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `PO/26/0000241938` - * **SO**: `1691972227` - * **DO**: `1659990561` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9257 JXR` -- **Raw Layout Markdown**: -```markdown - -
000006 MA TELUR OMEGA (PC)(*)900PCH/PCS1.950.00Amount
Qty:9001.755.000.00
DEN POKPHAND INDONESIA Tbk00:21:27Tanggal :
IN INDUSTRI MODERN.No. SO : 30 June 2026
ENNo. DO : 1691972227
No. PO : 1659990561PO/26/0000241938
- -Kepada : Kepala Gudang - -31945 - -Kepada Yth : - -Order Untuk : PT_PRIMAFOOD INTERNATIONAL - -Alamat : - -DKI AREA - -JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC✓
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN16 WH 01 / 01 Bagian Penjualan
Penerima Barang Tanda Tangan SupirBag. Pengeluaran Barang
Lembar 3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima Barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani
- -adidas -DANG -SA UDANG -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21002601` | Prima Nasi Spicy Chick Sambal Geprek COPY | `1 80X` | `6 PAC✓` | - ---- - -### 7. `1782888609885-rotated_1782888593813_1000000454.jpg` -- **Status**: Success -- **Tilt Detected**: 22.84° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000238723` - * **SO**: `Not Found` - * **DO**: `Not Found` - * **Tanggal**: `Not Found` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9715 UXU` -- **Raw Layout Markdown**: -```markdown -
Image
- - -Kepala : Kepala Gudang - -00161083 - -## DELIVERY ORDER - -No. PO : PO/26/0000238723 - -65-58 - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - - - -Order Untuk : DKI AREA - -61-50 Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADENANGAN. - -JAKARTA UTARA.14430 - - -
Kode BarangNama BarangBanyakJumlah
11310014Griller Size 2 ( 20 Ekor ) Frozen360 PG
11310024Griller Size A Frozen ( 900-1000 G) PC240 PG
11660050Drumstick Frozen Pack110 KG
11690053SBB Mitra 10 Kg110 KG
11720055Full Wind Frozen Pack110 KG
11750050Fillet Mitra 10 Kg110 KG
Barang dikirim dalam keadaan baikJumlah104140
Truck No. B 9715 UXUWH Q1 / 01
PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. =
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -
Image
- - -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (6)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `3 KRG` | `60 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `2 KRG` | `40 PC` | - | `11660050` | PAHA BAWAH (1 KG)(*) | `1 BOX` | `10 PAC` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `10 KG` | - | `11750050` | FILLET MITRA 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 8. `1782890303600-1000000465.jpg` -- **Status**: Success -- **Tilt Detected**: 17.41° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241302` - * **SO**: `1691972284` - * **DO**: `1659990583` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown - -
CHARDEN POKPHAND INDONESIA TBK06:28:48 / 1otTanggal :30 June 2026
AWASAM INDUSTRI MODERN.No. SO :1691972284
BANTENNo. DO :1659990583
No. PO :PO/26/0000241302
- -
Image
- - -00088615 - -Kepada : Kepala Gudang - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - -JAKARTA UTARA. 14430 - - - - -
Kode BarangNama BarangBanyakJumlah
12010509 -12010512 -12010519 -12012501 -12012503 -13010116 -13010514 -13030502829 Champ Crunchy Nugget 450 G -888 Champ Naget Avam Kombinasi 900 G -894 CHAMP NAGET KOMBINASI BENTUK STIK 90 -600 AKumo Chicken Naget 250 Gr -602 AKumo Chicken Naget 1 Ka -692 Fiesta Original Sausage 300 GR -299 Champ Chicken Sausage 1 Ka FR -298 Champ Chicken Ball 500 GR Fr1 BOX -1 BOX -1 BOX -1 BOX -1 BOX -1 BOX -1 BOX10 PAC -6 PAC -6 PAC -20 PAC -5 PAC -20 PAC -10 PAC -10 PAC
Barang dikirim dalam keadaan baikJumlah
ImageImageWH 01 / 01 -HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
- -Lembar3 : Customer - -3 : Customer -``` -- **Parsed Items (8)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `12010509` | CHAMP CRUNCHY NUGGET 450 GR/PAC | `1 BOX` | `10 PAC` | - | `12010512` | CHAMP NUGGET AYAM 900 GR/PAC | `1 BOX` | `6 PAC` | - | `12010519` | CHAMP NUGGET STICK 900 GR/PAC | `1 BOX` | `6 PAC` | - | `12012501` | AKUMO CHICKEN NAGET 250 GR | `1 BOX` | `20 PAC` | - | `12012503` | AKUMO CHICKEN NUGGET 1000 GR | `1 BOX` | `5 PAC` | - | `13010116` | FIESTA SSG ORIGINAL 300 GR | `1 BOX` | `20 PAC` | - | `13010514` | CHAMP CHICK SSG 1000 GR | `1 BOX` | `10 PAC` | - | `13030502` | CHAMP CHICK MEATBALL 500 GR | `1 BOX` | `10 PAC` | - ---- - -### 9. `1782892728794-1000000466.jpg` -- **Status**: Success -- **Tilt Detected**: 10.10° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241302` - * **SO**: `1691972284` - * **DO**: `1659990583` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9256 JXR` -- **Raw Layout Markdown**: -```markdown -PT. CHAROEN POKPHAND INDONESIA TBK - -KAWASAN INDUSTRI MODERN. - -BANTEN - -06:28:48 / 2 - -00088616 - -pada : Kepala Gudang - -of tanggal : 30 June 2026 - -No. SO : 1691972284 - -
Image
- - -No. DO : 1659990583 - -No. PO : PO/26/0000241302 - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat - -JL. ANCOL BARAT VIII/1. ANCOL. - -PADEMANGAN. JAKARTA UTARA. 14430 - -JAKARTA UTARA - - -
Kode BarangNama BarangBanyakJumlah
15040101903 Fiesta French F Batter Coated 500 GR1 BOX12 PAC
COPY
Barang dikirim dalam keadaan baikJumlah999
ImageB 9256 JXR WH 01 / 01\nPX HEAD OFFICE ANCOL ! JL. ANCOL BARAT\nVIII NO. 1 JAKARTA UTARA IDN\nTanda Tangan Supir Bag. Pengeluaran BarangJ
- -Lembar 3: Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani - -Jika D.O. ini telah ditanau - -- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `15040101` | FIESTA BATTER COATED 500 GR | `1 BOX` | `12 PAC` | - ---- - -### 10. `1782909791970-sample_do.jpeg` -- **Status**: Success -- **Tilt Detected**: 1.29° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000230828` - * **SO**: `1691960321` - * **DO**: `1659980277` - * **Tanggal**: `23 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9427 UXT` -- **Raw Layout Markdown**: -```markdown -
Image
- - -terima oleh Disesahkan oleh - -ESIA TDK - -KAWASHI BANTEN - -ERN - -02:56:41 - -Kepada : Kepala Gudang - -Tanggal: - -No.SO : 23 June 2026 - -No. DO : 1691960321 - -00168133 - -No. PO : 1659980277 - -## DELIVERY ORDER - -P0/26/0000230828 - -Kepada Yth Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAM. - - -
Kode BarangNama BarangJAKARTA UTARA, 1430\nJAKARTA UTA RA BanyakJumlah
Griller Size 2 ( 20 Ekor ) Frozen2 KRG40 PC
11310014Griller Size A Frozen (900-1000 g) PC2 KRG40 PC
11310024SBL Mitra 10 kg1 BOX10 KG
11620056SBB Mitra 10 kg1 BOX10 KG
11690053Full Wing Frozen Pack1 BOX10 KG
11720055
Barang dikirim dalam keadaan baikJumlah83 110
Truck No. B 9427 UXT PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTA RA IDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas. kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (5)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `2 KRG` | `40 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `1 KRG` | `10 PC` | - | `11620056` | SBL (FILLET PAHA) 1 KG(*) | `1 BOX` | `10 KG` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `` | - ---- - -### 11. `IMG_20260630_145445.jpg` -- **Status**: Success -- **Tilt Detected**: 10.71° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000170727` - * **SO**: `1071721209` - * **DO**: `1057745004` - * **Tanggal**: `25 May 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -☐ ☑ ☐ ☑ - -. - -🔥 🌈 🔥 — ☕ × - -
WhatsApp Image 2026-06-23 at 10.41.41.jpeg
- - -LUIA TUR - -22222222 - -epada : Kepala Gudang - -00117709 - -Tanggal:25 May 2026 - -No.SO : 1071721209 - -No. DO : 1057745004 - -## DELIVERY ORDER - -No. PO : PO/20/0000170727 - -Kepada Yth : PT.PRINHFOVO INTERNATIONAL - -Order Untuk : FTM KU - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PAOENANGAR. - -JAKARTA UTAHRA,19430 - - -
Kode BarangNama BarangJAKARTA UFARABanyakJumlah
13030502290 Champ Chicken Ball 500 GR Tr Image180%10 PAC
Barang dikirim dalam keadaan baikJumlah
- -Truck Nò. " - " B 9536 000 - -期日/01 - -2771 - -1200×1600 192 KB - -in - -[ ] [ ] - -121% -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `13030502` | CHAMP CHICK MEATBALL 500 GR | `1 BOX` | `10 PAC` | - ---- - -### 12. `IMG_20260701_134446.jpg` -- **Status**: Success -- **Tilt Detected**: 0.00° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `Not Found` - * **SO**: `Not Found` - * **DO**: `Not Found` - * **Tanggal**: `Not Found` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9257 JXR` -- **Raw Layout Markdown**: -```markdown - -
Kode BarangNama Barang1.950.00Amount -1.755.000.00
21002601Prima Nasi Spicy Chick Sambal Beprek COPY16 PAC✓
Barang dikirim dalam keadaan baikJumlah6
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL JL ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Bagian Penjualan
Penerima Barang Lember 3 : CustomerTanda Tangan Supir Jika D.D. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani Bag. Pengeluaran Barang
- -
Image
- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21002601` | Prima Nasi Spicy Chick Sambal Beprek COPY | `1` | `6 PAC✓` | - ---- - -### 13. `IMG_20260701_134504.jpg` -- **Status**: Success -- **Tilt Detected**: 14.75° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241303` - * **SO**: `1691972285` - * **DO**: `1659990584` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PRIMA XPRESS - TOWN HALL ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN, JAKARTA UTARA, DKI JAKARTA (KANTIN CPI)` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown - -
70000006 PRIMA TELUR OMEGA (PC)(*) qty unitH/PCS1.950.001.755.000.00
Total qty :90006:28:57Tanggal : 30 June 2026\nNo. SO : 1691972285\nNo. DO : 1659990584\nNo. PO : 07/26/0000241303
INDONESIA TbKRN.
- -## 00088617 - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - -JAKARTA UTARA. 14430 - - -
Kode BarangNama BarangBanyakJumlah
21010104Fiesta Beet Rendang W Rice 320G 6PC1 BOX6 PAC
COPY
Barang dikirim dalam keadaan baikJumlah16
ImageImageWH 01 / 01
JAKARTA UTARA IDN
Bag. Pengeluaran BarangBagian Penjualan
- -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21010104` | NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) | `1 BOX` | `6 PAC` | - ---- - -### 14. `IMG_20260701_134533.jpg` -- **Status**: Success -- **Tilt Detected**: 16.06° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241302` - * **SO**: `1691972284` - * **DO**: `1659990583` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9256 JXR` -- **Raw Layout Markdown**: -```markdown - -
PT. CHAROEN POKPHAND INDOONESIA Tbk06:28:48 / 2of Tanggal :30 June 2026
KAWASAN INDUSTRI MODERN.No. SO :1691972284
BANTENNo. DO :1659990583
No. PO :PO/26/0000241302
- -00088616 - -pada : Kepala Gudang - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat - -JL. ANCOL BARAT VIII/1. ANCOL. - -PADEMANGAN. JAKARTA UTARA. 14430 - -JAKARTA UTARA - - -
Kode BarangNama BarangBanyakJumlah
15040101903 Fiesta French F Batter Coated 500 GR1 BOX12 PAC
Barang dikirim dalam keadaan baikJumlah999
Truck No. B 9256 JXR WH 01 / 01 PX HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
Penerima Barang Tanda Tangan Supir Bag. Pengeluaran Barang Bagian Penjualan
- -
Image
- - -Lernbar 3 Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `15040101` | FIESTA BATTER COATED 500 GR | `1 BOX` | `12 PAC` | - ---- - -### 15. `IMG_20260701_134555.jpg` -- **Status**: Success -- **Tilt Detected**: 0.15° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `PO/26/0000241304` - * **SO**: `2271289510` - * **DO**: `2272290022` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -IDONESIA IDK - -No.1. - -04:59:54 - -Tanggal : - -## DELIVERY ORDER - -No.SO : 30 June 2026 - -No. DO : 2271289510 - -Kepada Yth : - -No. PO : 2272290022 - -PO/26/0000241304 - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
11048006PARTING 150 - 160 GR FRZ PACK\nCOPY2BOX30 PAC ✓
Barang dikirim dalam keadaan baikJumlah
Truck No.ImageImage230
Lembar 3 - CustomerImageBag. Pengeluaran BarangUTARA IDNBagian Penjualan
- -
Image
- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11048006` | BEBEK PARTING-NEW(*) | `2 ` | `30 ` | - ---- - -### 16. `IMG_20260701_134555~2.jpg` -- **Status**: Success -- **Tilt Detected**: 0.22° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `PO/26/0000241304` - * **SO**: `2271289510` - * **DO**: `2272290022` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -IDONESIA IDK - -NO. 1. - -04:59:54 - -Tanggal: - -## DELIVERY ORDER - -No.SO : 30 June 2026 - -No. DO : 2271289510 - -Kepada Yth - -No. PO : 2272290022 - -PO/26/0000241304 - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. - - -
Kode BarangNama BarangJAKARTA UTARA. 14430\nJAKARTA UTARABanyakJumlah
11048000PARTING 150 - 160 GR FRZ PACK\nCOPY2BOX30 PAC ✓
Image
Barang dikirim dalam keadaan baik
Truck NoBARAT230
ImageImageImageUTARA IDN
Lembar 3 - CustomerBagian Penjualan
- -
Image
- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11048000` | PARTING 150 - 160 GR FRZ PACK | `2 BOX` | `30 PAC ✓` | - ---- - -### 17. `IMG_20260701_134635.jpg` -- **Status**: Success -- **Tilt Detected**: 7.31° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/00002334` - * **SO**: `6451012981` - * **DO**: `6452013068` - * **Tanggal**: `24 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -
Image
- - -Kepada : Kepala Gudang - -0015307 - - -
Tanggal:
ASIONAL11:29:03No. SO: 24 June 2026
No.1No. DO:6451012981
DELIVERY ORDERNo. PO: 6452013068
PO/26/00002334
- -Kepada Yth : - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : PRIMA FRESHMART HEAD OFFICE - -JL ANCOL BARAT VIII / 1. ANCOL PADEMANGAN - - -
Kode BarangNama BarangBanyakJumlah
220122Meiji 4.3 Deluxe Milk 946 ML1CAR 12 PC ✓
Barang dikirim dalam keadaan baikJumlah
Truck No.112
ImageTanda Tangan SopirImageBag. Pengeluaran Barang
- -
Image
- - -Lembar 3 : Expedisi - -Bagian Penjualan - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami lavani -``` -- **Parsed Items (0)**: - *No valid SKU items parsed.* - ---- - -### 18. `IMG_20260701_134636.jpg` -- **Status**: Success -- **Tilt Detected**: 13.63° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `Not Found` - * **SO**: `6451012981` - * **DO**: `6452013068` - * **Tanggal**: `24 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -
Image
- - -Kepada : Kepala Gudang - - -
Tanggal:
ASIONAL11:29:03No. SO: 24 June 2026
No.1DELIVERY ORDERNo. DO: 6451012981
No.1DELIVERY ORDERNo. PO: 6452013068
- -0015307 - -Kepada Yth : - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : PRIMA FRESHMART HEAD OFFICE - -JL.ANCOL BARAT VIII / 1. ANCOL PADEMANGAN - - - - -
Kode BarangNama BarangBanyakJumlah
220122Meiji 4.3 Deluxe Milk 946 ML1CAR 12 PC
Barang dikirim dalam keadaan baikJumlah
- -
Image
- - -Truck No. - -
Image
- - -Penerima Barang - -Lembar 3 : Expedisi - -Tanda Tangan Sopir - -
Image
- - -Bag. Pengeluaran Barang - -Bagian Penjualan - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CL AlM atas kekurangan barang tidak dapat kami layani. -``` -- **Parsed Items (0)**: - *No valid SKU items parsed.* - ---- - -### 19. `IMG_20260701_134646.jpg` -- **Status**: Success -- **Tilt Detected**: 2.44° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000230199` - * **SO**: `1691960321` - * **DO**: `1659980277` - * **Tanggal**: `23 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9427 UXT` -- **Raw Layout Markdown**: -```markdown -## l’arqueur - -Nomor P.O : PO/26/0000230199 - -KAWASAKI INDUSTRI MODERN. - -SANTEN - -Kepala Gudang - -00168133 - -:22/06/2026 - -02:56:41 - -Tanggal : - -No. SO : 23 June 2026 - -## DELIVERY ORDER - -No. DO : 1691960321 - -Kepada Yth : - -No. PO : 1659980277 - -PO/26/0000230828 - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
11310014\n11310024\n11620056\n11690053\n11720055✓ Griller Size 2 ( 20 Ekor ) Frozen\n✓ Griller Size A Frozen (900-1000 G) PC\n✓ SBL Mitra 10 Kg\n✓ SBB Mitrd 10 Kg\n✓ Full Wing Frozen Pack2KRG40 PC
2KRG40 PC
1BOX10 KG
1BOX10 KG
1BOX10 KG
Barang dikirim dalam keadaan baikJumlah
Truck No.83110
B 9427 UXTWH 01 / 01
PX, HEAD OFFICE ANCOL / JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani - -CODY PO SEIAU DI BAY - -pp.v -``` -- **Parsed Items (5)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `2 KRG` | `40 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `2 KRG` | `40 PC` | - | `11620056` | SBL (FILLET PAHA) 1 KG(*) | `1 BOX` | `10 KG` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 20. `IMG_20260701_134646~2.jpg` -- **Status**: Success -- **Tilt Detected**: 0.57° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `PO/26/0000230199` - * **SO**: `1691960321` - * **DO**: `1659980277` - * **Tanggal**: `23 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9427 UXT` -- **Raw Layout Markdown**: -```markdown -## Purchase Order - - -
Nomor P.O: PO/26/0000230199
: 22/06/2026
KAWASAKI INDUSTRI MODERN.02:56:41Tanggal :
BANTENNo. SO :23 June 2026
No. DO :1691960321
No. PO :1659980277
DELIVERY ORDERPO/26/0000230828
- -Kepala Gudang - -00169133 - -Kepada Yth : - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL.ANCOL BARAT VIII/1.ANCOL.PADEMANGAN. - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTA RABanyakJumlah
11310014\n11310024\n11620056\n11690053\n11720055✓ Griller Size 2 ( 20 Ekor ) Frozen\n✓ Griller Size A Frozen (900-1000 G) PC\n✓ SBL Mitra 10 Kg\n✓ SBB Mitra 10 Kg\n✓ Full Wing Frozen Pack2KRG40 PC
2KRG40 PC
1BOX10 KG
1BOX10 KG
1BOX10 KG
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9427 UXT\nPX, HEAD OFFICE ANCOL ; JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
Penerima Barang Tanda Tangan Supir\nBag. Pengeluaran Barang
3 : Customer Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani
- - -
COPY P.O SELALUPPN254,000.00
Total
Menyetujui
-``` -- **Parsed Items (5)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `2 KRG` | `40 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `2 KRG` | `40 PC` | - | `11620056` | SBL (FILLET PAHA) 1 KG(*) | `1 BOX` | `10 KG` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 21. `IMG_20260701_134704.jpg` -- **Status**: Success -- **Tilt Detected**: 15.16° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `Not Found` - * **SO**: `Not Found` - * **DO**: `Not Found` - * **Tanggal**: `Not Found` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9715 UXU` -- **Raw Layout Markdown**: -```markdown -
Image
- - -Kepala : Kepala Gudang - -00161083 - -05-50 - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - - - -Order Untuk : DKI AREA - -65-50 Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADENMANGAN. - -JAKARTA UTARA, 14430 - - -
Kode BarangNama BarangBanyakJumlah
11310014Griller Size 2 ( 20 Ekor ) Frozen360 PG
11310024Griller Size A Frozen ( 900-1000 G) PC240 PG
11660050Drumstick Frozen Pack110 KG
11690053SBB Mitra 10 Kg110 KG
11720055Full Wind Frozen Pack110 KG
11750050Fillet Mitra 10 Kg110 KG
Barang dikirim dalam keadaan baikJumlah104140
Truck No. B 9715 UXU PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN. 01 / 01
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -
Image
- - -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (6)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `3 KRG` | `60 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `2 KRG` | `40 PC` | - | `11660050` | PAHA BAWAH (1 KG)(*) | `1 BOX` | `10 PAC` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `10 KG` | - | `11750050` | FILLET MITRA 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 22. `IMG_20260701_134704~2.jpg` -- **Status**: Success -- **Tilt Detected**: 16.36° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000238723` - * **SO**: `Not Found` - * **DO**: `Not Found` - * **Tanggal**: `Not Found` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9715 UXU` -- **Raw Layout Markdown**: -```markdown -
Image
- - -Kepala : Kepala Gudang - -00161083 - -## DELIVERY ORDER - -No. PO : PO/26/0000238723 - -05:58 - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - - - -Order Untuk : DKI AREA - -65-50 Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADENANGAN. - -JAKARTA UTARA, 14430 - - -
Kode BarangNama BarangBanyakJumlah
11310014Griller Size 2 ( 20 Ekor ) Frozen360 PG
11310024Griller Size A Frozen ( 900-1000 G) PC240 PG
11660050Drumstick Frozen Pack110 KG
11690053SBB Mitra 10 Kg110 KG
11720055Full Wind Frozen Pack110 KG
11750050Fillet Mitra 10 Kg110 KG
Barang dikirim dalam keadaan baikJumlah104140
Truck No. B 9715 UXUWH Q1 / 01
PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -
Image
- - -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (6)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `3 KRG` | `60 PC` | - | `11310024` | AYAM SIZE A FROZEN (0.9-1)KG/PC(*) | `2 KRG` | `40 PC` | - | `11660050` | PAHA BAWAH (1 KG)(*) | `1 BOX` | `10 PAC` | - | `11690053` | SBB (FILLET DADA )1 KG(*) | `1 BOX` | `10 KG` | - | `11720055` | FULL WING FROZ PACK 1 KG(*) | `1 BOX` | `10 KG` | - | `11750050` | FILLET MITRA 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 23. `IMG_20260701_134810.jpg` -- **Status**: Success -- **Tilt Detected**: 0.00° -- **Auto-Rotated/Unwarped**: No -- **Extracted Metadata**: - * **PO**: `Not Found` - * **SO**: `Not Found` - * **DO**: `Not Found` - * **Tanggal**: `Not Found` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `N/A` - * **Alamat**: `N/A` - * **Plat Nomor**: `N 1 KRG` -- **Raw Layout Markdown**: -```markdown -- - - -
Kode BarangNama BarangBanyakJumlah
11140062\n11150064\n11310014\n11600053\n11650053\n11750050Ambela 1 KG Frozen\nHati 1 KG Frozen\nGriller Size 2 ( 20 Ekor ) Frozen\nBL Mitra 10 Kq\nThighstick Frozen Pack\nFillet Mitra 10 Kq1 KRG\n1 KRG\n3 KRG\n1 BOX\n1 BOX20 KG\n20 KG\n60 KG\n10 KG\n10 KG\n10 KG
Jumlah65130
-``` -- **Parsed Items (6)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11140062` | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | `1 KRG` | `20 PAC` | - | `11150064` | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | `1 KRG` | `20 PAC` | - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `3 KRG` | `60 PC` | - | `11600053` | BONELESS LEG FROZEN 1 KG(*) | `1 BOX` | `10 KG` | - | `11650053` | PAHA ATAS 1 KG(*) | `1 BOX` | `10 KG` | - | `11750050` | FILLET MITRA 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 24. `IMG_20260701_134817.jpg` -- **Status**: Success -- **Tilt Detected**: 5.81° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241303` - * **SO**: `1691972285` - * **DO**: `1659990584` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9256 JXR` -- **Raw Layout Markdown**: -```markdown - -
Total Qty900Tanggal :30 June 2026
CHAROEM DOKPHAND INDOMESIA TbK06:28:57No. SO :1691972285
AWASAN INDUSTRI MODERM.No. DO :1659990584
LANTENNo. PO :PO/26/0000241303
- -Kepada : Kepala Gudang - -00088617 - -
Image
- - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - -JAKARTA UTARA. 14430 - - -
Kode BarangNama BarangBanyakJumlah
21010104Fiesta Beet Rendang W Rice 320G 6PC1 BOX6 PAC
Jumlah16
Barang dikirim dalam keadaan baik
Truck No. B 9256 JXR PX HEAD OFFICE ANCOL : JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Image
Penerima BarangBag. Pengeluaran BarangBagian Penjualan
- -Lemibar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani - -
Image
- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21010104` | NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) | `1 BOX` | `6 PAC` | - ---- - -### 25. `IMG_20260701_135900.jpg` -- **Status**: Success -- **Tilt Detected**: 15.54° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241304` - * **SO**: `2271289510` - * **DO**: `2272290022` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -KPHAND INDONESIA TBK - -Industri VI NO. 1. - -04:59:54 - -
Image
- - -la: Kepala Gudang - -254227 - -Tanggal : - -No.SO : 30 June 2026 - -## DELIVERY ORDER - -No. DO : 2271289510 - -No. PO : 2272290022 - -PO/26/0000241304 - -Kepada Yth : - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
11048006PARTING 150 - 160 GR FRZ PACK\nCOPY2BOX30 PAC ✓
Barang dikirim dalam keadaan baikJumlah
Truk NImage2\nUTARA IDN30\nBagian Penjualan
ImageTanda Tangan Supir\nCHAROBag. Pengeluaran Barang
- -
Image
- - -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11048006` | BEBEK PARTING-NEW(*) | `2 ` | `30 ` | - ---- - -### 26. `IMG_20260701_135910.jpg` -- **Status**: Success -- **Tilt Detected**: 4.51° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241938` - * **SO**: `1691972227` - * **DO**: `1659990561` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9257 JXR` -- **Raw Layout Markdown**: -```markdown -JEN POKPHAND INDONESIA TBK INDUSTRI MODERN. - -
Image
- - -00:21:27 - -Kepada : Kepala Gudang - -31945 - -Tanggal : - -No.SO : 30 June 2026 - -## DELIVERY ORDER - -No. DO : 1691972227 - -No. PO : 1659990561 - -PO/26/0000241938 - -Kepada Yth : - -Order Untuk : PT.PRIMAFOOD INTERNATIONAL - -Alamat : DKI AREA - -JL. ANCOL BARAT VIII/1, ANCOL, PADEMANGAN, - - -
Kode BarangNama BarangJAKARTA UTARA, 14430\nJAKARTA UTARABanyakJumlah
21002601Prima Nasi Spicy Chick Sambal Geprek COPY180X6 PAC✓
Barang dikirim dalam keadaan baikJumlah
Truck No. B 9257 JXR PX HEAD OFFICE ANCOL | JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN1 WH 01 / 01
Penerima BarangTanda Tangan SupirBag. Pengeluaran BarangBagian Penjualan
- -
Image
- - -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tanganj oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani - -CAUCA -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21002601` | Prima Nasi Spicy Chick Sambal Geprek COPY | `1 80X` | `6 PAC✓` | - ---- - -### 27. `IMG_20260701_135923.jpg` -- **Status**: Success -- **Tilt Detected**: 30.66° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241303` - * **SO**: `1691972285` - * **DO**: `1659990584` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `N/A` -- **Raw Layout Markdown**: -```markdown -
Image
- - -CHAROEN POKPHAND INDONESIA TBK - -WASAN INDUSTRI MODERN. - -LANTEN - -06:28:57 - -Kepada : Kepala Gudang - -Tanggal : 30 June 2026 - -No. SO : 1691972285 - -
Image
- - -00088617 - -No. DO : 1659990584 - -No. PO : PO/26/0000241303 - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - -JAKARTA UTARA. 14430 - - -
Kode BarangJAKARTA UTARA
Nama BarangBanyakJumlah
21010104Fiesta Beet Rendang W Rice 320G 6PC1 BOX6 PAC
COPY
Imageeadaan baikJumlah16
256 JXR -HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN ImageWH 01 / 01 -Bagian Penjualan
- -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `21010104` | NEW FIESTA BEEF RENDANG W RICE 320GR (PAC) | `320 BOX` | `1 PAC` | - ---- - -### 28. `IMG_20260701_135938.jpg` -- **Status**: Success -- **Tilt Detected**: 27.40° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/000024` - * **SO**: `1659990664` - * **DO**: `1659990664` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9256 JXR` -- **Raw Layout Markdown**: -```markdown -CHAROEN POKPHAND INDONESI - -ANASAN INDUSTRI MODERN. - -BANTEN - -
Image
- - -Kepada : Kepala Gudang - -00088633 - - -
TDKTanggal30 June 2026
No. SO1691972419
No. DO1659990664
No. POPO/26/000024
- -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - -JAKARTA UTARA. 14430 - - -
Kode BarangNama BarangBanyakJumlah
11140062Ampela 1 KG Frozen120 KG ✓
11150064Hati 1 KG Frozen120 KG ✓
11310014Griller Size 2 ( 20 Ekor ) Frozen360 KG ✓
11600053BL Mitra 10 Kq110 KG ✓
11650053Thighstick Frozen Pack110 KG ✓
11750050Fillet Mitra 10 Kq110 KG ✓
Barang dikirim dalam keadaan baikJumlah65
Truck No. B-9256 JXR PX HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN ImageWH 01 / 01
Penerima BarangTanda Tangan SupitBag. Pengeluaran BarangBagian Penjualan
- -
Image
- - -Lembar 3 : Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani -``` -- **Parsed Items (6)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `11140062` | AMPELA 1 KG FROZEN (20 PAC/KARUNG)(*) | `1 KRG` | `20 PAC` | - | `11150064` | HATI 1 KG FROZEN (20 PAC/KARUNG)(*) | `1 KRG` | `20 PAC` | - | `11310014` | AYAM SIZE 2 FROZEN (0.8-0.9)KG(*) | `3 KRG` | `60 PC` | - | `11600053` | BONELESS LEG FROZEN 1 KG(*) | `1 BOX` | `10 KG` | - | `11650053` | PAHA ATAS 1 KG(*) | `1 BOX` | `10 KG` | - | `11750050` | FILLET MITRA 1 KG(*) | `1 BOX` | `10 KG` | - ---- - -### 29. `IMG_20260701_135950.jpg` -- **Status**: Success -- **Tilt Detected**: 17.41° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241302` - * **SO**: `1691972284` - * **DO**: `1659990583` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `G 1 BOX` -- **Raw Layout Markdown**: -```markdown - -
CHARDEN POKPHAND INDONESIA TBK06:28:48 / 1otTanggal :30 June 2026
AWASAM INDUSTRI MODERN.No. SO :1691972284
BANTENNo. DO :1659990583
No. PO :PO/26/0000241302
- -
Image
- - -00088615 - -Kepada : Kepala Gudang - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat : JL. ANCOL BARAT VIII/1. ANCOL. PADEMANGAN. - -JAKARTA UTARA. 14430 - - - - -
Kode BarangNama BarangBanyakJumlah
12010509829 Champ Crunchy Nugget 450 G1 BOX10 PAC
12010512888 Champ Naget Avam Kombinasi 900 G1 BOX6 PAC
12010519894 CHAMP NAGET KOMBINASI BENTUK STIK 901 BOX6 PAC
12012501600 Akumo Chicken Naget 250 Gr1 BOX20 PAC
12012503602 Akumo Chicken Naget 1 Ka1 BOX5 PAC
13010116692 Fiesta Original Sausage 300 GR1 BOX20 PAC
13010514299 Champ Chicken Sausage 1 Ka FR1 BOX10 PAC
13030502298 Champ Chicken Ball 500 GR Fr1 BOX10 PAC
Barang dikirim dalam keadaan baikJumlah
Image56 JXRWH 01 / 01
HEAD OFFICE ANCOL ! JL. ANCOL BARAT VIII NO. 1 JAKARTA UTARA IDN Image
Bag. Pengeluaran Barang Bagian Peniualan
- -Lembar3 : Customer - -3 : Customer -``` -- **Parsed Items (8)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `12010509` | CHAMP CRUNCHY NUGGET 450 GR/PAC | `1 BOX` | `10 PAC` | - | `12010512` | CHAMP NUGGET AYAM 900 GR/PAC | `1 BOX` | `6 PAC` | - | `12010519` | CHAMP NUGGET STICK 900 GR/PAC | `1 BOX` | `6 PAC` | - | `12012501` | AKUMO CHICKEN NAGET 250 GR | `1 BOX` | `20 PAC` | - | `12012503` | AKUMO CHICKEN NUGGET 1000 GR | `1 BOX` | `5 PAC` | - | `13010116` | FIESTA SSG ORIGINAL 300 GR | `1 BOX` | `20 PAC` | - | `13010514` | CHAMP CHICK SSG 1000 GR | `1 BOX` | `10 PAC` | - | `13030502` | CHAMP CHICK MEATBALL 500 GR | `1 BOX` | `10 PAC` | - ---- - -### 30. `IMG_20260701_140005.jpg` -- **Status**: Success -- **Tilt Detected**: 10.10° -- **Auto-Rotated/Unwarped**: Yes -- **Extracted Metadata**: - * **PO**: `PO/26/0000241302` - * **SO**: `1691972284` - * **DO**: `1659990583` - * **Tanggal**: `30 June 2026` - * **Customer**: `PT.PRIMAFOOD INTERNATIONAL` - * **Store**: `PX HEAD OFFICE ANCOL` - * **Alamat**: `JL. ANCOL BARAT VIII/1 KEL. ANCOL, KEC. PADEMANGAN JAKARTA UTARA, DKI JAKARTA` - * **Plat Nomor**: `B 9256 JXR` -- **Raw Layout Markdown**: -```markdown -PT. CHAROEN POKPHAND INDONESIA TBK - -KAWASAN INDUSTRI MODERN. - -BANTEN - -06:28:48 / 2 - -00088616 - -pada : Kepala Gudang - -of tanggal : 30 June 2026 - -No. SO : 1691972284 - -
Image
- - -No. DO : 1659990583 - -No. PO : PO/26/0000241302 - -## DELIVERY ORDER - -Kepada Yth : PT.PRIMAFOOD INTERNATIONAL - -Order Untuk : DKI AREA - -Alamat - -JL. ANCOL BARAT VIII/1. ANCOL. - -PADEMANGAN. JAKARTA UTARA. 14430 - -JAKARTA UTARA - - -
Kode BarangNama BarangBanyakJumlah
15040101903 Fiesta French F Batter Coated 500 GR1 BOX12 PAC
COPY
Barang dikirim dalam keadaan baikJumlah999
ImageB 9256 JXR WH 01 / 01\nPX HEAD OFFICE ANCOL ! JL. ANCOL BARAT\nVIII NO. 1 JAKARTA UTARA IDN\nTanda Tangan Supir Bag. Pengeluaran BarangJ
- -Lembar 3: Customer - -Jika D.O. ini telah ditanda tangan oleh Penerima barang tanpa sanggahan, segala CLAIM atas kekurangan barang tidak dapat kami layani - -Jika D.O. ini telah ditanau - -- -``` -- **Parsed Items (1)**: - | Code (SKU) | Name | Qty | Price | - |---|---|---|---| - | `15040101` | FIESTA BATTER COATED 500 GR | `1 BOX` | `12 PAC` | - ---- - diff --git a/backend/sources/test_images_report.xlsx b/backend/sources/test_images_report.xlsx deleted file mode 100644 index 425e5af..0000000 Binary files a/backend/sources/test_images_report.xlsx and /dev/null differ diff --git a/backend/sources/~$Tabel Toko Aktif Juni 2026.xlsx b/backend/sources/~$Tabel Toko Aktif Juni 2026.xlsx deleted file mode 100644 index 602929e..0000000 Binary files a/backend/sources/~$Tabel Toko Aktif Juni 2026.xlsx and /dev/null differ diff --git a/docs/workflow_detail_aplikasi.md b/docs/workflow_detail_aplikasi.md index 6f20fa6..39423d7 100644 --- a/docs/workflow_detail_aplikasi.md +++ b/docs/workflow_detail_aplikasi.md @@ -11,7 +11,7 @@ Asumsi analisis ini didasarkan sepenuhnya pada peniadaan antarmuka web (*web int Berikut adalah diagram alur kerja yang menggambarkan interaksi ujung-ke-ujung (*end-to-end*) antara aplikasi mobile Flutter dan komponen backend: ```mermaid -graph TD +graph TD %% Sisi Client (Flutter) subgraph Client [Aplikasi Mobile Flutter] Start([Mulai: Supir/Operator Scan DO]) --> Capture[Ambil Foto via Camera API] diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index debd0cf..fbdc86a 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -14,7 +14,7 @@ class AppConfig { // - Physical Device on same Wi-Fi: use 'http://192.168.70.7:8000/api/v1' // - Android Emulator: use 'http://10.0.2.2:8000/api/v1' // - iOS Simulator: use 'http://localhost:8000/api/v1' - static const String _lanBaseUrl = 'http://192.168.70.7:8000/api/v1'; + static const String _lanBaseUrl = 'http://192.168.70.5:8000/api/v1'; // Ngrok public tunnel URL (update ini setiap ngrok di-restart) static const String _ngrokBaseUrl = 'https://unlocated-waylon-potently.ngrok-free.dev/api/v1'; diff --git a/start-dev-tunnel.ps1 b/start-dev-tunnel.ps1 new file mode 100644 index 0000000..b02bfa7 --- /dev/null +++ b/start-dev-tunnel.ps1 @@ -0,0 +1,51 @@ +# Get the active network interface IP address (excluding virtual and loopback adapters) +Write-Host "Checking active network adapters..." -ForegroundColor Cyan + +$ipAddress = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { + $_.IPAddress -notlike "127.*" -and + $_.IPAddress -notlike "169.254.*" -and + $_.InterfaceAlias -notlike "*vEthernet*" -and + $_.InterfaceAlias -notlike "*WSL*" -and + $_.IPAddress -notlike "192.168.56.*" +} | Select-Object -ExpandProperty IPAddress -First 1) + +if (-not $ipAddress) { + Write-Host "[-] No active LAN IP address found! Falling back to 127.0.0.1" -ForegroundColor Yellow + $ipAddress = "127.0.0.1" +} else { + Write-Host "[+] Found active Host IP: $ipAddress" -ForegroundColor Green +} + +# Update Flutter Configuration +$configFile = "lib/config/app_config.dart" +if (Test-Path $configFile) { + $content = Get-Content $configFile -Raw + $pattern = "(static const String _lanBaseUrl = 'http://)([^:]+)(:8000/api/v1';)" + if ($content -match $pattern) { + $content = $content -replace $pattern, ('${1}' + $ipAddress + '${3}') + Set-Content $configFile $content -NoNewline + Write-Host "[+] Synchronized local IP address ($ipAddress) to Flutter configuration." -ForegroundColor Green + } else { + Write-Host "[-] Warning: _lanBaseUrl pattern not found in $configFile." -ForegroundColor Yellow + } +} else { + Write-Host "[-] Warning: Flutter config file '$configFile' not found. Skip updating local IP." -ForegroundColor Yellow +} + +# Start ngrok +Write-Host "`nStarting Ngrok tunnel..." -ForegroundColor Cyan +Write-Host "Exposing: http://localhost:8000" -ForegroundColor Cyan +Write-Host "Public URL: https://unlocated-waylon-potently.ngrok-free.dev" -ForegroundColor Cyan + +# Check if ngrok is available +$ngrokCmd = Get-Command ngrok -ErrorAction SilentlyContinue +if ($ngrokCmd) { + Write-Host "[+] Launching ngrok in a new window..." -ForegroundColor Green + Start-Process ngrok -ArgumentList "http", "--domain=unlocated-waylon-potently.ngrok-free.dev", "8000" + Write-Host "[+] Tunnel launched successfully!" -ForegroundColor Green +} else { + Write-Host "[-] Error: 'ngrok' command not found in your system PATH." -ForegroundColor Red + Write-Host " Please ensure ngrok is installed and added to your environment variables." -ForegroundColor Yellow +} + +Write-Host "`nDone! Your Flutter app can now connect locally via WiFi ($ipAddress) or publicly via Ngrok." -ForegroundColor Green