{"id":3082,"date":"2026-01-23T12:46:34","date_gmt":"2026-01-23T09:46:34","guid":{"rendered":"https:\/\/www.astoryas.com\/?page_id=3082"},"modified":"2026-01-24T01:00:11","modified_gmt":"2026-01-23T22:00:11","slug":"manuel-operasyon-roi-hesaplayici","status":"publish","type":"page","link":"https:\/\/www.astoryas.com\/en\/manuel-operasyon-roi-hesaplayici\/","title":{"rendered":"MANUAL OPERATION"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3082\" class=\"elementor elementor-3082\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f31aca6 e-flex e-con-boxed e-con e-parent\" data-id=\"f31aca6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-73ffda5 elementor-widget elementor-widget-text-editor\" data-id=\"73ffda5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"tr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Astoryas Manuel Kaynak ROI<\/title>\n<link rel=\"icon\" type=\"image\/x-icon\" href=\"https:\/\/www.astoryas.com\/favicon.ico\">\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf-autotable\/3.5.28\/jspdf.plugin.autotable.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n\n<style>\n  \/* TASARIM DE\u011e\u0130\u015eKENLER\u0130 *\/\n  :root { --primary: #FF4A00; --primary-glow: rgba(255, 74, 0, 0.4); --dark: #0F1729; --blue-glow: rgba(56, 189, 248, 0.5); --light-bg: #F8FAFC; --border: #E2E8F0; --text-main: #334155; --text-muted: #94a3b8; --focus-border: #cbd5e1; --neon-bg: linear-gradient(145deg, rgba(255,74,0,0.2), rgba(255,255,255,0.05)); --neon-border: 1px solid var(--primary); --neon-shadow: 0 0 10px rgba(255, 74, 0, 0.15); }\n  \n  .astoryas-calc { font-family: 'Inter', system-ui, -apple-system, sans-serif; max-width: 1200px; margin: 0 auto; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.08); display: flex; flex-wrap: wrap; border: 1px solid var(--border); overflow: hidden; width: 100%; box-sizing: border-box; }\n  .calc-config { flex: 7; padding: 30px; background: #fff; min-width: 450px; box-sizing: border-box; }\n  .calc-results { flex: 3; background: var(--dark); color: #fff; padding: 30px; min-width: 300px; border-left: 4px solid var(--primary); position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; box-sizing: border-box; }\n  \n  h2 { font-family: 'Exo 2', sans-serif; color: var(--dark); margin-top: 0; line-height: 1.2; }\n  h4 { font-family: 'Exo 2', sans-serif; margin: 0 0 10px 0; color: var(--primary); text-transform: uppercase; font-size: 14px; border-bottom: 2px solid var(--light-bg); padding-bottom: 5px; }\n  \n  .step-header { font-size: 12px; font-weight: 800; color: #94a3b8; text-transform: uppercase; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; margin-top: 20px; }\n  .step-number { background: var(--dark); color: #fff; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; }\n  \n  \/* SWITCH ST\u0130L\u0130 *\/\n  .switch { position: relative; display: inline-block; width: 34px; height: 18px; flex-shrink: 0; }\n  .switch input { opacity: 0; width: 0; height: 0; }\n  .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 34px; }\n  .slider:before { position: absolute; content: \"\"; height: 14px; width: 14px; left: 2px; bottom: 2px; background-color: white; transition: .4s; border-radius: 50%; }\n  input:checked + .slider { background-color: var(--primary); }\n  input:checked + .slider:before { transform: translateX(16px); }\n\n  .global-settings { background: #f1f5f9; padding: 15px; border-radius: 8px; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 15px; margin-bottom: 25px; border: 1px solid var(--border); }\n  \n  \/* --- H\u0130ZALAMA KODLARI --- *\/\n  .label-fix {\n      min-height: 40px; \n      display: flex;\n      align-items: end; \n      justify-content: center;\n      margin-bottom: 5px;\n      width: 100%;\n  }\n  \n  \/* Masa\u00fcst\u00fc i\u00e7in Switch Container *\/\n  .label-fix.switch-container {\n      align-items: center; \n      justify-content: space-between; \/* Masa\u00fcst\u00fcnde ayr\u0131k durabilir *\/\n      flex-direction: row; \n  }\n\n  .alert-box { background: #fff7ed; border-left: 4px solid #FF4A00; padding: 15px; margin-bottom: 25px; border-radius: 4px; display: flex; align-items: center; }\n  .product-row { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 15px; align-items: end; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px dashed var(--border); }\n  .product-row:last-child { border-bottom: none; }\n  label { display: block; font-size: 11px; font-weight: 700; color: var(--text-main); margin-bottom: 4px; text-align: center; }\n  \n  \/* INPUT ST\u0130LLER\u0130 *\/\n  .astoryas-calc select, .astoryas-calc input { \n      width: 100%; \n      padding: 12px; \n      border: 1px solid var(--border); \n      border-radius: 6px; \n      font-size: 13px; \n      transition: all 0.3s ease; \n      box-sizing: border-box; \n  }\n  \n  \/* Placeholder (\u00d6rn: yaz\u0131s\u0131) K\u00fc\u00e7\u00fcltme *\/\n  .astoryas-calc input::placeholder {\n      font-size: 11px !important;\n      opacity: 0.6;\n      letter-spacing: 0.5px;\n      font-weight: 400;\n  }\n  \n  .guidance-input { color: var(--text-main); font-weight: 500; border: 1px solid var(--border) !important; text-align: center; background: #fff; }\n  .competitor-input { border: 1px solid var(--primary) !important; background: #fffaf7; color: var(--text-main); font-weight: 700; text-align: center; }\n  select:focus, input:focus { border-color: var(--primary) !important; box-shadow: 0 0 0 3px rgba(255, 74, 0, 0.15) !important; outline: none; }\n  \n  .missing-field { border: 2px solid #ef4444 !important; background-color: #fff1f2 !important; box-shadow: 0 0 8px rgba(239, 68, 68, 0.2) !important; }\n  \n  .highlight-box { background: rgba(255, 74, 0, 0.03); border: 1px solid rgba(255, 74, 0, 0.2); padding: 15px; border-radius: 8px; margin-bottom: 20px; }\n  .metric-box { width: 100%; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,0.1); }\n  .metric-label { font-size: 12px; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.5px; display: block;}\n  .metric-val { font-size: 24px; font-weight: 700; color: #fff; display: block; margin-top: 5px; }\n  .metric-sub { font-size: 11px; color: #4ade80; margin-top: 2px; display: block;}\n  .consumption-table { width: 100%; border-collapse: collapse; margin-top: 10px; }\n  .consumption-table td { padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }\n  .cons-header { font-size: 10px; color: #94a3b8; text-transform: uppercase; }\n  .cons-val-comp { font-size: 16px; font-weight: 700; color: #cbd5e1; }\n  .cons-val-tbi { font-size: 16px; font-weight: 700; color: #4ade80; }\n  .cons-row-label { font-size: 11px; color: var(--primary); font-weight: 600; text-align: left; }\n  .neon-style-box { width: 100%; background: var(--neon-bg); border: var(--neon-border); box-shadow: var(--neon-shadow); border-radius: 10px; padding: 20px; text-align: center; box-sizing: border-box; margin-top: 20px; transition: all 0.3s ease; }\n  .neon-style-box:hover { box-shadow: 0 0 20px rgba(255, 74, 0, 0.3); }\n  .profit-val { font-size: 38px; font-weight: 900; color: var(--primary); word-wrap: break-word; }\n  .investment-wrapper { width: 100%; background: #fff; border: 2px solid var(--primary); border-radius: 8px; margin-bottom: 25px; overflow: hidden; box-shadow: 0 0 15px rgba(255, 74, 0, 0.15); }\n  .investment-header { background: var(--primary); color: white; padding: 12px 20px; font-size: 13px; font-weight: 700; font-family: 'Exo 2', sans-serif; display: flex; justify-content: flex-start; align-items: center; gap: 10px; letter-spacing: 0.5px; }\n  .investment-input-area { padding: 20px; }\n  .investment-toggle-area { background: var(--dark); border-top: 1px solid rgba(56, 189, 248, 0.3); padding: 12px 20px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: all 0.3s ease; font-size: 12px; font-weight: 700; color: #ffffff; box-shadow: 0 0 15px rgba(56, 189, 248, 0.15) inset; text-shadow: 0 0 5px rgba(255, 255, 255, 0.3); }\n  .investment-toggle-area:hover { background: #1e293b; box-shadow: 0 0 20px rgba(56, 189, 248, 0.4) inset; color: #fff; border-color: rgba(56, 189, 248, 0.8); }\n  .investment-toggle-area span:last-child { transition: transform 0.3s; }\n  .investment-toggle-area.open span:last-child { transform: rotate(180deg); }\n  .investment-details-content { display: none; padding: 20px; background: #fff; border-top: 1px solid #e2e8f0; }\n  .simulation-header { cursor: pointer; display: flex; justify-content: space-between; align-items: center; color: var(--primary); font-weight: 700; font-size: 13px; text-shadow: 0 0 5px rgba(255, 74, 0, 0.2); }\n  .simulation-header span:last-child { transition: transform 0.3s; }\n  .simulation-header.open span:last-child { transform: rotate(180deg); }\n  .simulation-content { display: none; margin-top: 15px; padding-top: 15px; border-top: 1px solid rgba(255, 255, 255, 0.2); }\n  .scenario-controls { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }\n  .preset-btn { background: transparent; border: 1px solid #94a3b8; color: #94a3b8; padding: 5px 8px; border-radius: 4px; font-size: 11px; cursor: pointer; transition: 0.2s; }\n  .preset-btn:hover, .preset-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 0 8px var(--primary-glow); }\n  input[type=range] { -webkit-appearance: none; width: 100%; background: transparent; margin: 15px 0; }\n  input[type=range]:focus { outline: none; }\n  input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 6px; cursor: pointer; background: #334155; border-radius: 3px; }\n  input[type=range]::-webkit-slider-thumb { height: 20px; width: 20px; border-radius: 50%; background: var(--primary); cursor: pointer; -webkit-appearance: none; margin-top: -7px; box-shadow: 0 0 10px var(--primary-glow); border: 2px solid #fff; }\n  .scenario-result-val { font-size: 20px; font-weight: 700; color: #fbbf24; display: block; margin-top: 5px; }\n  .investment-result-line { width: 100%; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,0.1); }\n  .btn-pdf { width: 100%; padding: 15px; background: var(--primary); color: white; border: none; border-radius: 6px; font-weight: 700; cursor: pointer; font-size: 15px; margin-top: 30px; transition: 0.2s; }\n  .btn-pdf:hover { background: #e04100; }\n  .timer-row { display: grid; grid-template-columns: 6fr 1fr; gap: 15px; }\n  \n  \/* --- MOB\u0130L UYUMLULUK AYARLARI --- *\/\n  @media (max-width: 900px) {\n    .astoryas-calc { flex-direction: column; border-radius: 0; border: none; }\n    .calc-config { min-width: 100% !important; padding: 20px 15px; }\n    .calc-results { min-width: 100% !important; border-left: none; border-top: 4px solid var(--primary); padding: 40px 20px; }\n    .product-row { grid-template-columns: 1fr; gap: 12px; background: #f8fafc; padding: 15px; border-radius: 8px; border-bottom: 1px solid #e2e8f0; }\n    .global-settings { grid-template-columns: 1fr; }\n    h2 { font-size: 22px; }\n    .profit-val { font-size: 32px; }\n    .timer-row { grid-template-columns: 1.5fr 1fr !important; }\n    .timer-row input { padding: 10px 5px !important; font-size: 13px !important; text-align: center; }\n\n    \/* Mobilde Temizlik K\u0131sm\u0131n\u0131 Alt Alta Diz *\/\n    .product-row[style*=\"grid-template-columns: 1fr 1fr 1fr;\"] {\n        grid-template-columns: 1fr !important;\n        gap: 15px;\n    }\n\n    \/* --- D\u00dcZELT\u0130LEN KISIM: MOB\u0130LDE DURU\u015e MAL\u0130YET\u0130 ORTALAMA --- *\/\n    .label-fix.switch-container {\n        \/* Mobilde yanlara yaslamak yerine ORTADA B\u0130RLE\u015eT\u0130R\u0130YORUZ *\/\n        justify-content: center !important; \n        gap: 10px !important; \/* Aralar\u0131nda bo\u015fluk *\/\n    }\n    \n    .label-fix.switch-container label {\n        text-align: right !important; \/* Yaz\u0131 sa\u011fa (switch'e do\u011fru) yaslans\u0131n *\/\n        width: auto !important; \/* Geni\u015flik serbest olsun *\/\n        flex: 0 1 auto !important;\n        font-size: 11px !important;\n    }\n    \n    .switch {\n        margin-left: 0 !important; \/* Sa\u011fa itmeyi iptal et *\/\n    }\n    \/* --------------------------------------------------------- *\/\n  }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"astoryas-calc\">\n  <div class=\"calc-config\">\n    <h2>MANUEL OPERASYON <br>YATIRIM GET\u0130R\u0130S\u0130 <span style=\"color: var(--primary);\">(ROI) HESAPLAYICI<\/span><\/h2>\n    <p style=\"font-size:13px; color:#64748b; margin-bottom:20px;\">\n      TBi \u00fcr\u00fcnlerinin \u00fcst\u00fcn ala\u015f\u0131m teknolojisi, manuel kaynak operasyonlar\u0131nda tor\u00e7 so\u011futmas\u0131n\u0131 iyile\u015ftirir, \u00e7apak temizli\u011fi ve sprey kullan\u0131m\u0131n\u0131 azalt\u0131r.\n    <\/p>\n\n    <div class=\"step-header\" style=\"margin-top:0;\">\n        <span class=\"step-number\">1<\/span>\n        <span>TES\u0130S VE \u00dcRET\u0130M VER\u0130LER\u0130 (Zorunlu)<\/span>\n    <\/div>\n\n    <div class=\"global-settings\">\n      <div>\n        <div class=\"label-fix\">\n            <label style=\"margin:0;\">Kaynak \u0130stasyonu Say\u0131s\u0131<\/label>\n        <\/div>\n        <input type=\"text\" inputmode=\"decimal\" id=\"robot-count\" placeholder=\"\u00d6rn: 5 \u0130stasyon\" class=\"guidance-input\" \n               onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Adet')\" oninput=\"formatInput(this); calc()\">\n      <\/div>\n      \n      <div>\n        <div class=\"label-fix\">\n            <label style=\"margin:0;\">Vardiya Say\u0131s\u0131<\/label>\n        <\/div>\n        <input type=\"text\" inputmode=\"decimal\" id=\"shift-count\" placeholder=\"\u00d6rn: 1 Vardiya\" class=\"guidance-input\" \n               onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Vardiya')\" oninput=\"formatInput(this); calc()\">\n      <\/div>\n      \n      <div>\n        <div class=\"label-fix switch-container\">\n            <label style=\"margin: 0; font-size:10px; line-height:1.2;\">Duru\u015f Maliyeti<br><span style=\"font-weight:400; color:#64748b;\">(\u0130\u015f\u00e7ilik + \u00dcretim Kayb\u0131)<\/span><\/label>\n            <label class=\"switch\">\n                <input type=\"checkbox\" id=\"downtime-toggle\" checked=\"checked\" onchange=\"toggleDowntime()\">\n                <span class=\"slider\"><\/span>\n            <\/label>\n        <\/div>\n        <input type=\"text\" inputmode=\"decimal\" id=\"hourly-cost\" placeholder=\"\u00d6rn: 7 \u20ac\" class=\"competitor-input\" \n               onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\">\n        \n        <div id=\"downtime-status\" style=\"font-size: 9px; color: #16a34a; font-weight: bold; margin-top: 4px; text-align: center;\">\n            \u0130\u015f\u00e7ilik Kayb\u0131 Hesaplan\u0131yor\n        <\/div>\n      <\/div>\n      \n      <div>\n        <div class=\"label-fix\">\n            <label style=\"margin:0;\">Y\u0131ll\u0131k \u00c7al\u0131\u015fma G\u00fcn\u00fc<\/label>\n        <\/div>\n        <input type=\"text\" inputmode=\"decimal\" id=\"work-days\" placeholder=\"\u00d6rn: 260 G\u00fcn\" class=\"guidance-input\" \n               onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' G\u00fcn')\" oninput=\"formatInput(this); calc()\">\n      <\/div>\n    <\/div>\n\n    <div class=\"alert-box\">\n        <div style=\"font-size:24px; margin-right:15px;\">\ud83d\udce2<\/div>\n        <div>\n            <p style=\"margin:0; font-size:13px; color:#c2410c; font-weight:700;\">\n                D\u0130KKAT: L\u00fctfen a\u015fa\u011f\u0131daki t\u00fcketim de\u011ferlerini <span style=\"text-decoration:underline;\">TEK B\u0130R \u0130STASYON<\/span> i\u00e7in giriniz.\n            <\/p>\n            <p style=\"margin:4px 0 0 0; font-size:11px; color:#ea580c;\">\n                (Sa\u011f panelde g\u00f6rece\u011finiz <strong>TOPLAM YILLIK K\u00c2R<\/strong>, girdi\u011finiz \u0130stasyon Say\u0131s\u0131 ile \u00e7arp\u0131larak hesaplanmaktad\u0131r.)\n            <\/p>\n        <\/div>\n    <\/div>\n\n    <div class=\"step-header\">\n        <span class=\"step-number\">2<\/span>\n        <span>SARF MALZEME ANAL\u0130Z\u0130 (Kontak Meme)<\/span>\n    <\/div>\n\n    <div class=\"highlight-box\">\n      <h4>1. Kontak Meme (Kritik Sarf Malzeme)<\/h4>\n      <div class=\"product-row\" style=\"border:none; margin:0; padding:0;\">\n        <div>\n          <label>Astoryas \u00d6nerisi<\/label>\n          <select id=\"tip-type\" onchange=\"updateDefaultPrice('tip')\" style=\"font-weight:bold; color:var(--dark); font-size:11px;\">\n            <option value=\"1.50|1.60\" selected>Performans &#8211; M8 1.0 mm<\/option>\n            <option value=\"1.50|1.60\">Performans &#8211; M8 1.2 mm <\/option>\n          <\/select>\n        <\/div>\n        <div>\n          <label>TBi Fiyat (\u20ac)<\/label>\n          <input type=\"text\" inputmode=\"decimal\" id=\"tip-tbi-price\" placeholder=\"\u00d6rn: 1,50 \u20ac\" class=\"guidance-input\" \n                 onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\">\n        <\/div>\n        <div>\n          <label>Rakip Fiyat (\u20ac)<\/label>\n          <input type=\"text\" inputmode=\"decimal\" id=\"tip-comp-price\" placeholder=\"\u00d6rn: 1,50 \u20ac\" class=\"competitor-input\" \n                 onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\">\n        <\/div>\n        <div>\n          <label>Vardiya Ba\u015f\u0131 T\u00fcketim <br> <span style=\"color:#ef4444; font-size:9px;\">(Tek Bir \u0130stasyon \u0130\u00e7in)<\/span><\/label>\n          <input type=\"text\" inputmode=\"decimal\" id=\"tip-usage\" placeholder=\"\u00d6rn: 5 Adet\" class=\"guidance-input\" \n                 onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Adet')\" oninput=\"formatInput(this); calc()\">\n        <\/div>\n      <\/div>\n      \n      <div class=\"timer-row\" style=\"margin-top:15px; padding-top:12px; border-top:1px dashed rgba(255, 74, 0, 0.2); align-items: center;\">\n          <label style=\"text-align:right; font-size:12px; color:#d97706; margin:0; line-height:1.2;\">\n              \u23f1\ufe0f Kontak Meme De\u011fi\u015ftirme:<br> S\u00fcresi (Saniye)\n          <\/label>\n          <input type=\"text\" inputmode=\"decimal\" id=\"tip-change-time\" class=\"guidance-input\" placeholder=\"\u00d6rn: 120 sn\" \n                 onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' sn')\" oninput=\"formatInput(this); calc()\">\n      <\/div>\n\n      <div style=\"margin-top: 20px; padding-top: 15px; border-top: 1px solid #e2e8f0;\">\n        <h4 style=\"font-size: 12px; color: #64748b; margin-bottom: 10px;\">EKSTRA: TEM\u0130ZL\u0130K VE K\u0130MYASAL G\u0130DER\u0130 <span style=\"color:#ef4444; font-size:10px;\">(Doldurulmas\u0131 Zorunludur)<\/span><\/h4>\n        \n        <div class=\"product-row\" style=\"grid-template-columns: 1fr 1fr 1fr;\">\n            <div>\n                <label>Nozul Temizleme S\u0131kl\u0131\u011f\u0131<br> (Vardiya ba\u015f\u0131na ka\u00e7 defa?)<\/label>\n                <input type=\"text\" inputmode=\"decimal\" id=\"cleaning-frequency\" placeholder=\"\u00d6rn: 20 Kez\" class=\"guidance-input\"\n                       onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Kez')\" oninput=\"formatInput(this); calc()\">\n            <\/div>\n            <div>\n                <label>Nozzle Temizleme S\u00fcresi<br> (Ort. bir temizlik ka\u00e7 sn?)<\/label>\n                <input type=\"text\" inputmode=\"decimal\" id=\"cleaning-time\" placeholder=\"\u00d6rn: 30 sn\" class=\"guidance-input\"\n                       onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' sn')\" oninput=\"formatInput(this); calc()\">\n            <\/div>\n            <div>\n                <label>Nozzle Sprey Maliyeti<br> (Ayl\u0131k ort. ka\u00e7 \u20ac t\u00fcketiliyor?)<\/label>\n                <input type=\"text\" inputmode=\"decimal\" id=\"spray-cost\" placeholder=\"\u00d6rn: 50 \u20ac\" class=\"competitor-input\"\n                       onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\">\n            <\/div>\n        <\/div>\n      <\/div>\n      <div style=\"font-size:11px; color:#d97706; margin-top:15px; padding-top:10px; border-top:1px dashed rgba(255, 74, 0, 0.2);\">\n        \ud83d\ude80 <strong>TBi Fark\u0131:<\/strong> CuCrZr + Nikel ala\u015f\u0131m\u0131 sayesinde \u0131s\u0131ya %60&#8217;a kadar daha dayan\u0131kl\u0131d\u0131r. \u00c7apak (spatter) yap\u0131\u015fmas\u0131 minimumdur, bu sayede <strong>nozul temizleme ihtiyac\u0131 ve sprey kullan\u0131m\u0131<\/strong> ciddi oranda d\u00fc\u015fer.<br><br>\n        \u26a0\ufe0f <strong>Hesaplama Notu:<\/strong> Bu analiz, standart sanayi ortalamalar\u0131 baz al\u0131narak haz\u0131rlanm\u0131\u015ft\u0131r. Ger\u00e7ek tasarruf; operat\u00f6r\u00fcn kaynak tekni\u011fi, tel kalitesi, gaz kar\u0131\u015f\u0131m\u0131 ve amper seviyelerine g\u00f6re de\u011fi\u015fiklik g\u00f6sterebilir. Sahadaki ger\u00e7ek durumu yans\u0131tmak i\u00e7in sa\u011f alttaki <strong>Sim\u00fclasyon \u00c7ubu\u011funu<\/strong> kullanabilirsiniz.<br><br>\n        \ud83e\uddea <strong>Kimyasal &#038; Temizlik:<\/strong> TBi Nikel \u00fcr\u00fcnleri kullan\u0131ld\u0131\u011f\u0131nda, \u00e7apak \u00f6nleyici sprey\/macun ihtiyac\u0131 ve mekanik temizlik s\u00fcresi ortalama <strong>%40-%50<\/strong> azalmaktad\u0131r (Konservatif Tahmin). Bu de\u011ferler &#8220;\u0130\u015f\u00e7ilik ve Temizlik Tasarrufu&#8221; kalemine yans\u0131t\u0131lm\u0131\u015ft\u0131r.\n      <\/div>\n      <\/div>\n\n    <div class=\"step-header\">\n        <span class=\"step-number\" style=\"background:#475569;\">3<\/span>\n        <span>TOR\u00c7 SET\u0130 D\u00d6N\u00dc\u015e\u00dcM\u00dc (Opsiyonel Yat\u0131r\u0131m)<\/span>\n    <\/div>\n\n    <div class=\"investment-wrapper\">\n        <div class=\"investment-header\">\n            <span style=\"font-size:18px;\">\ud83d\udcb0<\/span>\n            <span>MANUEL TOR\u00c7 D\u00d6N\u00dc\u015e\u00dcM TEKL\u0130F\u0130<\/span>\n        <\/div>\n\n        <div class=\"investment-input-area\">\n            <label style=\"text-align:left; font-size:13px; color:#0F1729; margin-bottom:5px; font-weight:700;\">\u0130lk Yat\u0131r\u0131m Maliyeti (Teklif Tutar\u0131)<\/label>\n            <input type=\"text\" inputmode=\"decimal\" id=\"initial-investment\" placeholder=\"\u00d6rn: 250 \u20ac\" class=\"guidance-input\" style=\"font-size:14px; font-weight:bold; color:var(--primary); text-align:left; border:1px solid #cbd5e1;\" \n                   onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\">\n            <p style=\"margin:5px 0 0 0; font-size:10px; color:#94a3b8;\">* Buraya girece\u011finiz toplam teklif tutar\u0131, y\u0131ll\u0131k net k\u00e2r hesab\u0131ndan d\u00fc\u015f\u00fclecektir.<\/p>\n        <\/div>\n\n        <div class=\"investment-toggle-area\" onclick=\"toggleInvestmentDetails(this)\">\n            <span>\ud83d\udee0\ufe0f YATIRIM VE DONANIM DETAYLARI (G\u00f6r\u00fcnt\u00fcle)<\/span>\n            <span>\u25bc<\/span>\n        <\/div>\n\n        <div id=\"hardware-details\" class=\"investment-details-content\">\n            <div style=\"margin-bottom: 20px;\">\n              <h4>2. Contact Tip Holder (Meme Tutucu)<\/h4>\n              <div class=\"product-row\">\n                <div>\n                  <label>Model Se\u00e7imi<\/label>\n                  <select id=\"holder-type\" onchange=\"updateDefaultPrice('holder')\">\n                    <option value=\"8.00\">M8 Standart Tutucu<\/option>\n                    <option value=\"6.00\">M6 Standart Tutucu<\/option>\n                  <\/select>\n                <\/div>\n                <div><label>TBi Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"holder-tbi-price\" placeholder=\"\u00d6rn: 8,00 \u20ac\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Rakip Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"holder-comp-price\" placeholder=\"\u00d6rn: 10,00 \u20ac\" class=\"competitor-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Ayl\u0131k T\u00fcketim<br>(\u0130stasyon Ba\u015f\u0131na)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"holder-usage\" placeholder=\"\u00d6rn: 3 Adet\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Adet')\" oninput=\"formatInput(this); calc()\"><\/div>\n              <\/div>\n            <\/div>\n\n            <div style=\"margin-bottom: 20px;\">\n              <h4>3. Gas Nozzle (Gaz Nozulu)<\/h4>\n              <div class=\"product-row\">\n                <div>\n                  <label>Model Se\u00e7imi<\/label>\n                  <select id=\"nozzle-type\" onchange=\"updateDefaultPrice('nozzle')\">\n                    <option value=\"12.00\">Konik Gaz Nozulu (Standart)<\/option>\n                    <option value=\"12.00\">Dar Gaz Nozulu<\/option>\n                    <option value=\"15.00\">A\u011f\u0131r Hizmet (Heavy Duty)<\/option>\n                  <\/select>\n                <\/div>\n                <div><label>TBi Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"nozzle-tbi-price\" placeholder=\"\u00d6rn: 12,00 \u20ac\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Rakip Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"nozzle-comp-price\" placeholder=\"\u00d6rn: 15,00 \u20ac\" class=\"competitor-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Ayl\u0131k T\u00fcketim <br>(\u0130stasyon Ba\u015f\u0131na)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"nozzle-usage\" placeholder=\"\u00d6rn: 5 Adet\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Adet')\" oninput=\"formatInput(this); calc()\"><\/div>\n              <\/div>\n            <\/div>\n\n            <div style=\"margin-bottom: 20px;\">\n              <h4>4. Swan Neck (Tor\u00e7 Boynu)<\/h4>\n              <div class=\"product-row\">\n                <div>\n                  <label>Model Se\u00e7imi<\/label>\n                  <select id=\"neck-type\" onchange=\"updateDefaultPrice('neck')\">\n                    <option value=\"120.00\">45\u00b0 Hava So\u011futmal\u0131<\/option>\n                    <option value=\"120.00\">60\u00b0 Hava So\u011futmal\u0131<\/option>\n                    <option value=\"150.00\">D\u00f6ner Boyunlu (Rotatable)<\/option>\n                    <option value=\"180.00\">Su So\u011futmal\u0131 Boyun<\/option>\n                  <\/select>\n                <\/div>\n                <div><label>TBi Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"neck-tbi-price\" placeholder=\"\u00d6rn: 120,00 \u20ac\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Rakip Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"neck-comp-price\" placeholder=\"\u00d6rn: 150,00 \u20ac\" class=\"competitor-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Y\u0131ll\u0131k De\u011fi\u015fim (Toplam)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"neck-usage\" placeholder=\"\u00d6rn: 2 Adet\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Adet')\" oninput=\"formatInput(this); calc()\"><\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"product-group\">\n              <h4>5. Manuel Tor\u00e7 Kablosu (Hortum Paketi)<\/h4>\n              <div class=\"product-row\" style=\"border:none;\">\n                <div>\n                  <label>Hose Package (Kablo Boyu)<\/label>\n                  <select id=\"hose-type\" onchange=\"updateDefaultPrice('hose')\">\n                    <option value=\"150\">Hava So\u011futmal\u0131 &#8211; 3 Metre<\/option>\n                    <option value=\"170\">Hava So\u011futmal\u0131 &#8211; 4 Metre<\/option>\n                    <option value=\"190\">Hava So\u011futmal\u0131 &#8211; 5 Metre<\/option>\n                    <option value=\"250\">Su So\u011futmal\u0131 &#8211; 3 Metre<\/option>\n                    <option value=\"280\">Su So\u011futmal\u0131 &#8211; 4 Metre<\/option>\n                  <\/select>\n                <\/div>\n                <div><label>TBi Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"hose-tbi-price\" placeholder=\"\u00d6rn: 150 \u20ac\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Rakip Fiyat (\u20ac)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"hose-comp-price\" placeholder=\"\u00d6rn: 180 \u20ac\" class=\"competitor-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' \u20ac')\" oninput=\"formatInput(this); calc()\"><\/div>\n                <div><label>Y\u0131ll\u0131k Adet (Toplam)<\/label><input type=\"text\" inputmode=\"decimal\" id=\"hose-usage\" placeholder=\"\u00d6rn: 1 Adet\" class=\"guidance-input\" onfocus=\"cleanInput(this)\" onblur=\"addSuffix(this, ' Adet')\" oninput=\"formatInput(this); calc()\"><\/div>\n              <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"calc-results\">\n    <h3 style=\"color:#fff; border-bottom:1px solid #ffffff30; padding-bottom:15px; margin-bottom:25px;\">YILLIK T\u00dcKET\u0130M<br>PROJEKS\u0130YONU<\/h3>\n\n    <div class=\"metric-box\" style=\"background: rgba(255, 255, 255, 0.05); border-radius:8px; padding:15px; border:1px solid rgba(255,255,255,0.1);\">\n      <span class=\"metric-label\" style=\"color:var(--primary); border:none; margin-bottom:10px;\">\ud83d\udce6 F\u0130Z\u0130KSEL T\u00dcKET\u0130M (KONTAK MEME)<\/span>\n      <table class=\"consumption-table\">\n          <thead>\n              <tr><th style=\"width:30%;\"><\/th><th class=\"cons-header\" style=\"text-align:center;\">MEVCUT (RAK\u0130P)<\/th><th class=\"cons-header\" style=\"text-align:center; color:#4ade80;\">HEDEF (TBi)<\/th><\/tr>\n          <\/thead>\n          <tbody>\n              <tr><td class=\"cons-row-label\">YILLIK TOPLAM<\/td><td id=\"val-annual-comp\" style=\"text-align:center;\" class=\"cons-val-comp\">0<\/td><td id=\"val-annual-tbi\" style=\"text-align:center;\" class=\"cons-val-tbi\">0<\/td><\/tr>\n              <tr><td class=\"cons-row-label\">AYLIK ORTALAMA<\/td><td id=\"val-monthly-comp\" style=\"text-align:center;\" class=\"cons-val-comp\">0<\/td><td id=\"val-monthly-tbi\" style=\"text-align:center;\" class=\"cons-val-tbi\">0<\/td><\/tr>\n          <\/tbody>\n      <\/table>\n    <\/div>\n\n    <div class=\"metric-box\"><span class=\"metric-label\">SARF MALZEME F\u0130YAT KAZANCI<\/span><span class=\"metric-val\" id=\"res-price-diff\">\u20ac0.00<\/span><span class=\"metric-sub\">Birim Fiyat Fark\u0131<\/span><span style=\"font-size:10px; color:rgba(255,255,255,0.5); display:block; margin-top:3px; font-style:italic;\">(Rakip ile TBi aras\u0131ndaki birim liste fiyat\u0131 fark\u0131 + Sprey Kazanc\u0131)<\/span><\/div>\n    <div class=\"metric-box\"><span class=\"metric-label\">KULLANIM \u00d6MR\u00dc KAZANCI<\/span><span class=\"metric-val\" id=\"res-lifetime\">\u20ac0.00<\/span><span class=\"metric-sub\">Daha Az T\u00fcketimden Gelen K\u00e2r<\/span><span style=\"font-size:10px; color:rgba(255,255,255,0.5); display:block; margin-top:3px; font-style:italic;\">(Daha uzun \u00f6m\u00fcr sayesinde sat\u0131n al\u0131nmayan ekstra malzeme bedeli)<\/span><\/div>\n    <div class=\"metric-box\"><span class=\"metric-label\">\u0130\u015e\u00c7\u0130L\u0130K VE TEM\u0130ZL\u0130K TASARRUFU<\/span><span class=\"metric-val\" id=\"res-operational\">\u20ac0.00<\/span><span class=\"metric-sub\">Operat\u00f6r Verimlilik Kazanc\u0131<\/span><span style=\"font-size:10px; color:rgba(255,255,255,0.5); display:block; margin-top:3px; font-style:italic;\">(De\u011fi\u015fim + Temizlik i\u00e7in harcanan zaman\u0131n i\u015f\u00e7ilik kar\u015f\u0131l\u0131\u011f\u0131)<\/span><\/div>\n    <div class=\"metric-box\"><span class=\"metric-label\">DONANIM FARKI<\/span><span class=\"metric-val\" id=\"res-hardware\">\u20ac0.00<\/span><span class=\"metric-sub\">Tor\u00e7 Boynu ve Hortum Paketi<\/span><span style=\"font-size:10px; color:rgba(255,255,255,0.5); display:block; margin-top:3px; font-style:italic;\">(Yat\u0131r\u0131m maliyeti fark\u0131)<\/span><\/div>\n\n    <div class=\"investment-result-line\"><span class=\"metric-label\" style=\"color:#ef4444;\">\u0130LK YATIRIM MAL\u0130YET\u0130<\/span><span class=\"metric-val\" id=\"res-investment\" style=\"color:#ef4444;\">-\u20ac0.00<\/span><span class=\"metric-sub\" style=\"color:#fca5a5;\">(Teklif Tutar\u0131)<\/span><\/div>\n\n    <div class=\"neon-style-box\">\n      <span style=\"font-size:12px; opacity:0.8; display:block; margin-bottom:5px;\">TOPLAM YILLIK K\u00c2R (NET)<\/span>\n      <span class=\"profit-val\" id=\"res-total\">\u20ac0<\/span>\n      <div id=\"missing-data-msg\" style=\"display:none; color:#facc15; font-size:11px; margin-top:5px; font-style:italic;\">\u26a0\ufe0f Hesaplama ba\u015flatmak i\u00e7in sol paneldeki <strong>1. Ad\u0131m<\/strong> ve <strong>Temizlik\/Kimyasal<\/strong> verilerini giriniz.<\/div>\n    <\/div>\n\n    <div class=\"neon-style-box\" style=\"padding:0; margin-top:20px; overflow:hidden;\">\n        <div class=\"simulation-header\" style=\"padding:15px;\" onclick=\"toggleSimulation(this)\"><span>\ud83d\udcc9 OPERASYONEL VER\u0130ML\u0130L\u0130K S\u0130M\u00dcLASYONU<\/span><span>\u25bc<\/span><\/div>\n        <div id=\"scenario-box\" class=\"simulation-content\" style=\"padding:15px; margin:0;\">\n            <div style=\"font-size:12px; color:#cbd5e1; margin-bottom:10px;\">HAT VER\u0130ML\u0130L\u0130\u011e\u0130: <strong id=\"efficiency-label\" style=\"color:#fff;\">%100<\/strong><\/div>\n            <input type=\"range\" id=\"efficiency-slider\" min=\"50\" max=\"100\" value=\"100\" step=\"1\" oninput=\"updateEfficiency(this.value)\">\n            <div class=\"scenario-controls\">\n                <button class=\"preset-btn\" onclick=\"updateEfficiency(50)\">%50<\/button><button class=\"preset-btn\" onclick=\"updateEfficiency(75)\">%75<\/button><button class=\"preset-btn\" onclick=\"updateEfficiency(80)\">%80<\/button><button class=\"preset-btn\" onclick=\"updateEfficiency(85)\">%85<\/button><button class=\"preset-btn\" onclick=\"updateEfficiency(90)\">%90<\/button><button class=\"preset-btn\" onclick=\"updateEfficiency(95)\">%95<\/button>\n            <\/div>\n            <div style=\"margin-top:15px; border-top:1px solid rgba(255,255,255,0.1); padding-top:10px;\"><span style=\"font-size:11px; color:#94a3b8; display:block;\">REAL\u0130ZE ED\u0130LEN TAHM\u0130N\u0130 K\u00c2R<\/span><span id=\"scenario-val\" class=\"scenario-result-val\">\u20ac0<\/span><\/div>\n        <\/div>\n    <\/div>\n\n    <button class=\"btn-pdf\" onclick=\"alert('Raporu PDF format\u0131nda indirmek i\u00e7in \u00fcye olman\u0131z gerekmektedir...')\">DETAYLI TEKL\u0130F \u0130ND\u0130R<\/button>\n  <\/div>\n<\/div>\n\n<script>\n  let currentGrandTotal = 0; \n\n  function toggleInvestmentDetails(btn) {\n      let content = document.getElementById('hardware-details');\n      if (content.style.display === \"none\" || content.style.display === \"\") {\n          content.style.display = \"block\";\n          btn.classList.add(\"open\");\n      } else {\n          content.style.display = \"none\";\n          btn.classList.remove(\"open\");\n      }\n  }\n\n  function toggleSimulation(btn) {\n      let box = document.getElementById('scenario-box');\n      if (box.style.display === \"none\" || box.style.display === \"\") {\n          box.style.display = \"block\";\n          btn.classList.add(\"open\");\n      } else {\n          box.style.display = \"none\";\n          btn.classList.remove(\"open\");\n      }\n  }\n\n  function updateEfficiency(val) {\n      document.getElementById('efficiency-slider').value = val;\n      document.getElementById('efficiency-label').innerText = \"%\" + val;\n      let btns = document.querySelectorAll('.scenario-controls .preset-btn');\n      btns.forEach(btn => {\n          if(btn.innerText === \"%\" + val) btn.classList.add('active');\n          else btn.classList.remove('active');\n      });\n      let efficiency = parseInt(val) \/ 100;\n      let realizedProfit = currentGrandTotal * efficiency;\n      let el = document.getElementById('scenario-val');\n      el.innerText = formatEuro(realizedProfit);\n      el.style.color = realizedProfit >= 0 ? '#fbbf24' : '#ef4444';\n  }\n\n  function toggleDowntime() {\n      let isChecked = document.getElementById('downtime-toggle').checked;\n      let inputField = document.getElementById('hourly-cost');\n      let statusText = document.getElementById('downtime-status');\n\n      if(isChecked) {\n          inputField.disabled = false;\n          inputField.style.opacity = \"1\";\n          inputField.style.backgroundColor = \"#fffaf7\"; \n          statusText.innerText = \"\u0130\u015f\u00e7ilik Kayb\u0131 Hesaplan\u0131yor\";\n          statusText.style.color = \"#16a34a\"; \n      } else {\n          inputField.disabled = true;\n          inputField.style.opacity = \"0.6\";\n          inputField.style.backgroundColor = \"#e2e8f0\"; \n          statusText.innerText = \"Mola\/Vardiya De\u011fi\u015fimi (Maliyet Yok)\";\n          statusText.style.color = \"#94a3b8\"; \n      }\n      calc();\n  }\n\n  function cleanInput(el) {\n      if(el.disabled) return;\n      let val = el.value.replace(\/\\.\/g, '').replace(\/[^0-9,]\/g, '');\n      el.value = val;\n  }\n\n  function addSuffix(el, suffix) {\n      if(el.disabled) return;\n      let val = el.value.replace(\/\\.\/g, '').replace(\/[^0-9,]\/g, '');\n      if(val === '') return;\n      let parts = val.split(',');\n      let integerPart = parts[0];\n      let decimalPart = parts.length > 1 ? ',' + parts[1] : '';\n      integerPart = integerPart.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \".\");\n      el.value = integerPart + decimalPart + suffix;\n  }\n\n  function formatInput(el) {\n    let val = el.value.replace(\/\\.\/g, ',');\n    val = val.replace(\/[^0-9,]\/g, '');\n    if ((val.match(\/,\/g) || []).length > 1) {\n        let parts = val.split(',');\n        val = parts[0] + ',' + parts.slice(1).join('');\n    }\n    el.value = val;\n  }\n\n  function getNum(id) {\n    let el = document.getElementById(id);\n    if (!el || el.value.trim() === '' || el.disabled) return 0; \n    let val = el.value.replace(\/[^0-9,]\/g, '').replace(\/\\,\/g, '.');\n    return parseFloat(val) || 0;\n  }\n\n  function updateDefaultPrice(part) {\n    let select = document.getElementById(part + '-type');\n    let priceInput = document.getElementById(part + '-tbi-price');\n    if(part === 'tip') {\n        let values = select.value.split('|');\n        priceInput.value = values[0].replace('.', ',');\n    } else {\n        priceInput.value = select.value.replace('.', ',');\n    }\n    addSuffix(priceInput, ' \u20ac'); \n    calc();\n  }\n\n  \/\/ --- EKS\u0130K VER\u0130 KONTROL\u00dc ---\n  function checkAndHighlight(id) {\n      let el = document.getElementById(id);\n      let val = getNum(id);\n      \n      \/\/ E\u011fer eleman devre d\u0131\u015f\u0131ysa (\u00f6rn: saatlik maliyet) ve de\u011feri 0 olsa bile hata verme\n      if(id === 'hourly-cost' && el.disabled) {\n          el.classList.remove('missing-field');\n          return true;\n      }\n      \n      if(val <= 0) {\n          el.classList.add('missing-field');\n          return false;\n      } else {\n          el.classList.remove('missing-field');\n          return true;\n      }\n  }\n\n  \/\/ --- HESAPLAMA FONKS\u0130YONU ---\n  function calc() {\n    let robotCount = getNum('robot-count'); \/\/ \u0130stasyon Say\u0131s\u0131\n    let shiftCount = getNum('shift-count'); \n    let isDowntimeActive = document.getElementById('downtime-toggle').checked;\n    let hourlyDowntimeCost = isDowntimeActive ? getNum('hourly-cost') : 0;\n    let wdVal = getNum('work-days');\n    const workDays = wdVal; \n    const downtimeCostPerMin = hourlyDowntimeCost \/ 60; \n    let initialInvestment = getNum('initial-investment');\n\n    \/\/ --- ZORUNLU ALAN KONTROLLER\u0130 ---\n    let isRobotOk = checkAndHighlight('robot-count');\n    let isShiftOk = checkAndHighlight('shift-count');\n    let isCostOk = isDowntimeActive ? checkAndHighlight('hourly-cost') : true; \n    let isDaysOk = checkAndHighlight('work-days');\n    \n    \/\/ YEN\u0130 ZORUNLU ALANLAR: Temizlik ve Sprey\n    let isCleanFreqOk = checkAndHighlight('cleaning-frequency');\n    let isCleanTimeOk = checkAndHighlight('cleaning-time');\n    let isSprayCostOk = checkAndHighlight('spray-cost');\n    \n    let msgEl = document.getElementById('missing-data-msg');\n    \n    \/\/ E\u011fer herhangi biri eksikse UYARI G\u00d6STER ve i\u015flemi durdurma\n    if(!isRobotOk || !isShiftOk || !isCostOk || !isDaysOk || !isCleanFreqOk || !isCleanTimeOk || !isSprayCostOk) {\n        msgEl.style.display = 'block';\n    } else {\n        msgEl.style.display = 'none';\n    }\n\n    let totalConsumablePriceSavings = 0; \n    let totalConsumableLifeSavings = 0;  \n    let totalOperationalSavings = 0;     \n    let totalHardwareSavings = 0;        \n    let displayCompAnnualQty = 0;\n    let displayTbiAnnualQty = 0;\n\n    \/\/ --- TEMEL SARF MALZEME (TIP) ---\n    const tipTbiP = getNum('tip-tbi-price');\n    const tipCompP = getNum('tip-comp-price');\n    const tipInputQty = getNum('tip-usage');\n    const tipDailyQty = tipInputQty * shiftCount; \n    let tipLifeFactor = 1.0; \n    let tipSelect = document.getElementById('tip-type');\n    if(tipSelect.value.includes('|')) {\n        tipLifeFactor = parseFloat(tipSelect.value.split('|')[1]);\n    }\n    let tipChangeSec = getNum('tip-change-time');\n    let tipChangeMin = tipChangeSec \/ 60;\n\n    if(tipDailyQty > 0) {\n        let annualCompQtySingle = tipDailyQty * workDays;\n        let annualTbiQtySingle = annualCompQtySingle \/ tipLifeFactor;\n        displayCompAnnualQty = annualCompQtySingle * robotCount;\n        displayTbiAnnualQty = annualTbiQtySingle * robotCount;\n        let lifeSaving = (displayCompAnnualQty - displayTbiAnnualQty) * tipCompP;\n        totalConsumableLifeSavings += lifeSaving;\n        let priceSaving = (tipCompP - tipTbiP) * displayTbiAnnualQty;\n        totalConsumablePriceSavings += priceSaving;\n        if(tipLifeFactor > 1.0) {\n            totalOperationalSavings += (displayCompAnnualQty - displayTbiAnnualQty) * tipChangeMin * downtimeCostPerMin;\n        }\n    }\n\n    \/\/ --- TEM\u0130ZL\u0130K VE SPREY MAL\u0130YET\u0130 ---\n    let cleanFreq = getNum('cleaning-frequency'); \n    let cleanTime = getNum('cleaning-time') \/ 60; \n    let sprayCost = getNum('spray-cost'); \n\n    \/\/ KONSERVAT\u0130F YAKLA\u015eIM: TASARRUF ORANLARI D\u00dc\u015e\u00dcR\u00dcLD\u00dc\n    \/\/ Eski: %70 Temizlik Tasarrufu -> Yeni: %40 (Katsay\u0131 0.60)\n    \/\/ Eski: %80 Sprey Tasarrufu -> Yeni: %50 (Katsay\u0131 0.50)\n\n    if (cleanFreq > 0) {\n        let tbiCleanFreq = cleanFreq * 0.60;  \/\/ %40 \u0130yile\u015fme (Eskisi 0.30 idi)\n        let savedCleanCount = (cleanFreq - tbiCleanFreq) * workDays * robotCount; \n        let cleaningSavings = savedCleanCount * cleanTime * downtimeCostPerMin;\n        totalOperationalSavings += cleaningSavings; \n    }\n\n    if (sprayCost > 0) {\n        let annualSprayCost = sprayCost * 12 * robotCount;\n        let savedSprayCost = annualSprayCost * 0.50; \/\/ %50 \u0130yile\u015fme (Eskisi 0.80 idi)\n        totalConsumablePriceSavings += savedSprayCost; \n    }\n    \/\/ ------------------------------------------------\n\n    const holderTbiP = getNum('holder-tbi-price');\n    const holderCompP = getNum('holder-comp-price');\n    const holderInputQty = getNum('holder-usage');\n    if(holderInputQty > 0) {\n        let annual = holderInputQty * 12 * robotCount;\n        totalConsumablePriceSavings += (holderCompP - holderTbiP) * annual;\n    }\n\n    const nozzleTbiP = getNum('nozzle-tbi-price');\n    const nozzleCompP = getNum('nozzle-comp-price');\n    const nozzleInputQty = getNum('nozzle-usage');\n    if(nozzleInputQty > 0) {\n        let annual = nozzleInputQty * 12 * robotCount;\n        totalConsumablePriceSavings += (nozzleCompP - nozzleTbiP) * annual;\n    }\n\n    const neckTbiP = getNum('neck-tbi-price');\n    const neckCompP = getNum('neck-comp-price');\n    const neckQtyComp = getNum('neck-usage'); \n    if(neckQtyComp > 0) {\n        let neckLifeFactor = 1.30;\n        let totalNeckComp = neckQtyComp * robotCount;\n        let totalNeckTbi = totalNeckComp \/ neckLifeFactor;\n        totalConsumableLifeSavings += (totalNeckComp - totalNeckTbi) * neckCompP;\n        totalHardwareSavings += (neckCompP - neckTbiP) * totalNeckTbi;\n        \/\/ G\u0130ZL\u0130 SAB\u0130T KALDIRILDI: totalOperationalSavings += (12 * 45...) sat\u0131r\u0131 silindi.\n    }\n\n    const hoseTbiP = getNum('hose-tbi-price');\n    const hoseCompP = getNum('hose-comp-price');\n    const hoseQty = getNum('hose-usage'); \n    if(hoseQty > 0) {\n        totalHardwareSavings += (hoseCompP - hoseTbiP) * hoseQty * robotCount;\n    }\n\n    let grossSavings = totalConsumablePriceSavings + totalConsumableLifeSavings + totalOperationalSavings + totalHardwareSavings;\n    currentGrandTotal = grossSavings - initialInvestment;\n\n    document.getElementById('res-price-diff').innerText = formatEuro(totalConsumablePriceSavings);\n    document.getElementById('res-lifetime').innerText = formatEuro(totalConsumableLifeSavings);\n    document.getElementById('res-operational').innerText = formatEuro(totalOperationalSavings);\n    document.getElementById('res-hardware').innerText = formatEuro(totalHardwareSavings);\n    document.getElementById('res-investment').innerText = \"-\" + formatEuro(initialInvestment);\n    let totalEl = document.getElementById('res-total');\n    totalEl.innerText = formatEuro(currentGrandTotal);\n    totalEl.style.color = currentGrandTotal >= 0 ? '#FF4A00' : '#ef4444';\n    let currentSliderVal = document.getElementById('efficiency-slider').value;\n    updateEfficiency(currentSliderVal);\n    document.getElementById('val-annual-comp').innerText = Math.round(displayCompAnnualQty).toLocaleString('tr-TR');\n    document.getElementById('val-annual-tbi').innerText = Math.round(displayTbiAnnualQty).toLocaleString('tr-TR');\n    let moComp = Math.round(displayCompAnnualQty \/ 12);\n    let moTbi = Math.round(displayTbiAnnualQty \/ 12);\n    document.getElementById('val-monthly-comp').innerText = moComp.toLocaleString('tr-TR');\n    document.getElementById('val-monthly-tbi').innerText = moTbi.toLocaleString('tr-TR');\n  }\n\n  function formatEuro(num) {\n    return \"\u20ac\" + num.toLocaleString('tr-TR', {minimumFractionDigits: 2, maximumFractionDigits: 2});\n  }\n\n  window.onload = function() {\n      calc();\n      toggleDowntime(); \n  };\n<\/script>\n\n<\/body>\n<\/html>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Astoryas Manuel Kaynak ROI MANUEL OPERASYON YATIRIM GET\u0130R\u0130S\u0130 (ROI) HESAPLAYICI TBi \u00fcr\u00fcnlerinin \u00fcst\u00fcn ala\u015f\u0131m teknolojisi, manuel kaynak operasyonlar\u0131nda tor\u00e7 so\u011futmas\u0131n\u0131 iyile\u015ftirir, \u00e7apak temizli\u011fi ve sprey kullan\u0131m\u0131n\u0131 azalt\u0131r. 1 TES\u0130S VE \u00dcRET\u0130M VER\u0130LER\u0130 (Zorunlu) Kaynak \u0130stasyonu Say\u0131s\u0131 Vardiya Say\u0131s\u0131 Duru\u015f Maliyeti(\u0130\u015f\u00e7ilik + \u00dcretim Kayb\u0131) \u0130\u015f\u00e7ilik Kayb\u0131 Hesaplan\u0131yor Y\u0131ll\u0131k \u00c7al\u0131\u015fma G\u00fcn\u00fc \ud83d\udce2 D\u0130KKAT: L\u00fctfen a\u015fa\u011f\u0131daki t\u00fcketim de\u011ferlerini [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3082","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/pages\/3082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/comments?post=3082"}],"version-history":[{"count":108,"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/pages\/3082\/revisions"}],"predecessor-version":[{"id":3262,"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/pages\/3082\/revisions\/3262"}],"wp:attachment":[{"href":"https:\/\/www.astoryas.com\/en\/wp-json\/wp\/v2\/media?parent=3082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}