{"id":88,"date":"2023-03-03T12:31:27","date_gmt":"2023-03-03T12:31:27","guid":{"rendered":"https:\/\/sklepyprestashop.kylos.pl\/alfaserwis\/?page_id=88"},"modified":"2024-01-17T09:19:49","modified_gmt":"2024-01-17T08:19:49","slug":"wyslij-zgloszenie","status":"publish","type":"page","link":"https:\/\/alfawatch.pl\/serwis\/wyslij-zgloszenie\/","title":{"rendered":"Wy\u015blij zg\u0142oszenie"},"content":{"rendered":"\n\n    <div id=\"formula-one\" class=\"flex flex-col gap-y-4\">\n        <div class=\"row\">\n            <div class=\"col-md-6\">\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"watch-brand-model\" name=\"watch-brand-model\" placeholder=\"Marka i model zegarka\" required v-model=\"watchBrandModel\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"watch-sku\" name=\"watch-sku\" placeholder=\"SKU\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"tel\" id=\"phone-number\" name=\"phone-number\" placeholder=\"Numer telefonu\" required v-model=\"phoneNumber\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"full-name\" name=\"full-name\" placeholder=\"Imi\u0119 i nazwisko\" required v-model=\"fullName\" class=\"form-control\" value=\"\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"email\" id=\"email-address\" name=\"email-address\" placeholder=\"Adres e-mail\" required v-model=\"emailAddress\" class=\"form-control\" value=\"\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"postal-code\" name=\"postal-code\" placeholder=\"Kod pocztowy\" required v-model=\"postalCode\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"city\" name=\"city\" placeholder=\"Miejscowo\u015b\u0107\" required v-model=\"city\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"street\" name=\"street\" placeholder=\"Ulica i numer budynku\" required v-model=\"street\" class=\"form-control\">\n                <\/div>\n            <\/div>\n\n            <div class=\"col-md-6\">\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"reason-for-complaint\" name=\"reason-for-complaint\" placeholder=\"Pow\u00f3d reklamacji\" required v-model=\"reasonForComplaint\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"number\" id=\"shipping-cost\" name=\"shipping-cost\" placeholder=\"Warto\u015b\u0107 przesy\u0142ki\" required v-model=\"shippingCost\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"shop-name\" name=\"shop-name\" placeholder=\"Nazwa sklepu\" v-model=\"shopName\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"shop-address\" name=\"shop-address\" placeholder=\"Adres sklepu\" v-model=\"shopAddress\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <label for=\"proof-of-purchase\">Dow\u00f3d zakupu<\/label>\n                    <input type=\"file\" id=\"proof-of-purchase\" name=\"proof-of-purchase\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <textarea id=\"message\" name=\"message\" placeholder=\"Wiadomo\u015b\u0107:\" required v-model=\"message\" class=\"form-control\"><\/textarea>\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"addressOne\" v-model=\"address\" placeholder=\"Wybierz paczkomat nadania\" class=\"form-control\">\n                <\/div>\n\n                <div class=\"single-question mb-4\">\n                    <input type=\"text\" id=\"addressSecond\" v-model=\"secondAddress\" placeholder=\"Wybierz paczkomat zwrotny\" class=\"form-control\">\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <button id=\"submit\" type=\"submit\" @click=\"submitForm\" class=\"btn btn-primary\">Wy\u015blij zg\u0142oszenie<\/button>\n    <\/div>\n\n    <link rel=\"stylesheet\" href=\"https:\/\/geowidget.inpost.pl\/inpost-geowidget.css\" \/>\n     <script src='https:\/\/geowidget.inpost.pl\/inpost-geowidget.js' defer><\/script>\n\n    <script>\n        (function($) {\n        const apiToken = 'eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJzQlpXVzFNZzVlQnpDYU1XU3JvTlBjRWFveFpXcW9Ua2FuZVB3X291LWxvIn0.eyJleHAiOjIwMDI0NTM2NTcsImlhdCI6MTY4NzA5MzY1NywianRpIjoiZmMwOGJjYzctYTQ0YS00MzcxLWE0M2QtOWM4ZmZkMTYwMzkyIiwiaXNzIjoiaHR0cHM6Ly9sb2dpbi5pbnBvc3QucGwvYXV0aC9yZWFsbXMvZXh0ZXJuYWwiLCJzdWIiOiJmOjEyNDc1MDUxLTFjMDMtNGU1OS1iYTBjLTJiNDU2OTVlZjUzNTpIX3ZMSUUzcUE2cTltbDVCLVJHVlA1LWRsdFVXSFZ0RjFGa09zNmxVdzA4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoic2hpcHgiLCJzZXNzaW9uX3N0YXRlIjoiYzZkYzVmMTgtYzM3Mi00MTBmLTg0MGEtYjFlOTkwZDYzMzVkIiwic2NvcGUiOiJvcGVuaWQgYXBpOmFwaXBvaW50cyBhcGk6c2hpcHgiLCJzaWQiOiJjNmRjNWYxOC1jMzcyLTQxMGYtODQwYS1iMWU5OTBkNjMzNWQiLCJhbGxvd2VkX3JlZmVycmVycyI6IiIsInV1aWQiOiJjMmVhYjViZS1kM2ZjLTQ1ZmItOTMxZi0zYTIxN2FhNjU0YTQiLCJlbWFpbCI6InplZ2FybWlzdHJ6QGNsYXNzaWN3YXRjaC5jb20ucGwifQ.PMKlpPUPlmGVnz4nOULf8GEBGHk-eR2pPDOv_t0kUNKS06KCfKsplwjXKoaU5yRCNAfeMSSQK7oN40aNVuzuy_deo_Kk9L05vLyWv2pxeyc8vwbq7Ie-KcevGegWcwbpU4tY3scDaUHStuhMkr-A7PBoc13J58dgp0EJzsA9MacgNn5ZSXLlVsfmlCWKpUJTI9GwzIVtp3zeaSaqNnqoErjpwi1tBzLhUKd04xN_bZYv-SkvWHLpzwW6Pz65DVD5SUbrk6q4-JKZVUftnzHN-q3RGtA79qSU9ztc1D8hAlpXe5aifLpyxmPuz1Zk89cnDXD154WjOtDFRm9w86Z32A';\n        const apiEndpoint = 'https:\/\/api-shipx-pl.easypack24.net';\n        const apiOrganization = 69332;\n        const apiGeoToken = 'eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJzQlpXVzFNZzVlQnpDYU1XU3JvTlBjRWFveFpXcW9Ua2FuZVB3X291LWxvIn0.eyJleHAiOjE5OTQ5MzIxNTQsImlhdCI6MTY3OTU3MjE1NCwianRpIjoiMzA1YzhjNDgtOTRiMC00NzZmLWI0MDEtZGI1Zjc5OTgxMGYyIiwiaXNzIjoiaHR0cHM6Ly9sb2dpbi5pbnBvc3QucGwvYXV0aC9yZWFsbXMvZXh0ZXJuYWwiLCJzdWIiOiJmOjEyNDc1MDUxLTFjMDMtNGU1OS1iYTBjLTJiNDU2OTVlZjUzNTpIX3ZMSUUzcUE2cTltbDVCLVJHVlA1LWRsdFVXSFZ0RjFGa09zNmxVdzA4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoic2hpcHgiLCJzZXNzaW9uX3N0YXRlIjoiYjIwN2E0NjAtNzk5Yi00Njc5LTkzZGUtZGQ5ZDNhMjJiYjIyIiwic2NvcGUiOiJvcGVuaWQgYXBpOmFwaXBvaW50cyIsInNpZCI6ImIyMDdhNDYwLTc5OWItNDY3OS05M2RlLWRkOWQzYTIyYmIyMiIsImFsbG93ZWRfcmVmZXJyZXJzIjoiYWxmYXdhdGNoLnBsIiwidXVpZCI6ImMyZWFiNWJlLWQzZmMtNDVmYi05MzFmLTNhMjE3YWE2NTRhNCJ9.EXD19tcx3zIycRKPEo54AdCEH2k6YscM97GILopH9I5w3cvyCkSo32WpLAkPVX-zrSHbqfXYP7NlOKOse0OzzCCJGF6DyOq9Qc0BJd8mkra3clxFJbaWrBG1RPmjmEUHr6Tz9IH-pO9C4e3sL9PZ9zQC3hctbLnWL61TNEzuTwCpVsdZq7D_7-BcfywPIEDTFJcg8ZyfzKtWZJxLSjdFF2lMhULVbdsnNm2nQPLOU3ddECu1UqBxmoBrcW_02sjSNFqxN3Ang1CFuJpjSBvS-HZCzv8vXOBoJqvJw88Uy5P2ANAKfpw2ZtNtulipwYQNoWui_6VmsXBxVlomWXNTzw';\n        const targetPoint = 'MKW02M';\n        $(document).ready(function() {\n        $('#submit').click(function(e) {\n\n        $(this).prop('disabled', true);\n        $(this).html(' <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"><\/span>  Wysy\u0142anie...');\n        e.preventDefault();\n        const watchBrandModel = $('#watch-brand-model').val().trim();\n        const reason = $('#reason-for-complaint').val().trim();\n        const watchSKU = $('#watch-sku').val().trim();\n        const phoneNumber = $('#phone-number').val().trim();\n        const fullName = $('#full-name').val().trim();\n        const emailAddress = $('#email-address').val().trim();\n        const postalCode = $('#postal-code').val().trim();\n        const city = $('#city').val().trim();\n        const street = $('#street').val().trim();\n        const shippingCost = $('#shipping-cost').val().trim();\n        const message = $('#message').val().trim();\n        const addressOne = $('#addressOne').val().trim();\n        const addressSecond = $('#addressSecond').val().trim();\n        const shopName = $('#shop-name').val().trim();\n        const shopAddress = $('#shop-address').val().trim();\n        const requiredFields = [\n                watchBrandModel, reason, phoneNumber, fullName,\n                emailAddress, postalCode, city, street,\n                shippingCost, message, addressOne, addressSecond\n        ];\n        if (requiredFields.some(field => field === '')) {\n        Swal.fire({\n        position: 'top-end',\n                icon: 'error',\n                title: 'Uzupe\u0142nij wszystkie pola',\n                showConfirmButton: false,\n                timer: 10000\n        });\n        jQuery('#submit').prop('disabled', false).html('Wy\u015blij zg\u0142oszenie');\n        return;\n        }\n\n        const requestData = {\n        \"sender\": {\n        \"name\": fullName,\n                \"company_name\": fullName,\n                \"first_name\": fullName.split(' ')[0],\n                \"last_name\": fullName.split(' ')[1],\n                \"email\": emailAddress,\n                \"phone\": phoneNumber\n        },\n                \"receiver\": {\n                \"company_name\": \"ALFA WATCH Sp. z .o.o. Rzepakowa 2A\",\n                        \"email\": \"serwis@alfawatch.pl\",\n                        \"phone\": \"731091304\"\n                },\n                \"parcels\": {\n                \"template\": \"medium\"\n                },\n\n                \"custom_attributes\": {\n                \"sending_method\": \"parcel_locker\",\n                        \"target_point\": targetPoint,\n                        \"dropoff_point\": addressOne,\n                },\n                \"service\": \"inpost_locker_standard\",\n                \"reference\": '',\n                \"external_customer_id\": \"\"\n        };\n        $.ajax({\n        url: `${apiEndpoint}\/v1\/organizations\/${apiOrganization}\/shipments`,\n                type: 'POST',\n                headers: {\n                'Authorization': 'Bearer ' + apiToken,\n                        'Content-Type': 'application\/json',\n                        'Accept-Language':'pl_PL'\n                },\n                data: JSON.stringify(requestData),\n                success: function(response) {\n                const id = response.id;\n                setTimeout(function() {\n                $.ajax({\n                url: `${apiEndpoint}\/v1\/shipments\/${id}\/label?format=zpl`,\n                        type: 'GET',\n                        headers: {\n                        'Authorization': `Bearer ${apiToken}`,\n                                'Content-Type': 'application\/json'\n                        },\n                        success: function(response) {\n                        const zplCode = response;\n                        const apiUrl = \"https:\/\/api.labelary.com\/v1\/printers\/8dpmm\/labels\/4x6\/0\/\";\n                        fetch(apiUrl, {\n                        method: \"POST\",\n                                headers: {\n                                'Accept': 'image\/png'\n                                },\n                                body: new Blob([zplCode], { type: 'application\/x-www-form-urlencoded' })\n                        })\n                                .then(response => response.blob())\n                                .then(async blob => { \/\/ Dodaj async tutaj\n                                const imageUrl = URL.createObjectURL(blob);\n                                const downloadLink = document.createElement(\"a\");\n                                downloadLink.href = imageUrl;\n                                downloadLink.download = \"Etykieta.png\";\n                                downloadLink.click();\n                                URL.revokeObjectURL(imageUrl);\n                                const formData = new FormData();\n                                const fileInput = $('#proof-of-purchase')[0];\n                                if (fileInput && fileInput.files && fileInput.files.length > 0) {\n                                formData.append('file', fileInput.files[0]);\n                                }\n                                formData.append('etykieta', blob, 'screenshot.png');\n                                \/\/ Czekamy na rozwi\u0105zanie Promise\n                                const trackingNumber = await getTrackingNumber(id); \/\/ Dodaj await tutaj\n\n                                const dataToSend = {\n                                'watch-brand-model': watchBrandModel,\n                                        'watch-sku': watchSKU,\n                                        'reason': reason,\n                                        'phone-number': phoneNumber,\n                                        'full-name': fullName,\n                                        'email-address': emailAddress,\n                                        'postal-code': postalCode,\n                                        'city': city,\n                                        'street': street,\n                                        'shipping-cost': shippingCost,\n                                        'shop-address': shopAddress,\n                                        'shop-name': shopName,\n                                        'message': message,\n                                        'userid': '0',\n                                        'updatedat': '2026-07-01 23:35:34',\n                                        'createdat': '2026-07-01 23:35:34',\n                                        'secondaddress': addressSecond,\n                                        'trackingNumber': trackingNumber \/\/ Teraz przekazujemy rzeczywisty numer\n                                };\n                                Object.entries(dataToSend).forEach(([key, value]) => {\n                                formData.append(key, value);\n                                });\n                                $.ajax({\n                                url: 'https:\/\/alfawatch.pl\/serwis\/sendQuery.php',\n                                        type: 'POST',\n                                        data: formData,\n                                        processData: false,\n                                        contentType: false,\n                                        success: function(response) {\n                                        console.log(response);\n                                        },\n                                        error: function(xhr, status, error) {\n                                        console.log(error);\n                                        }\n                                });\n                                Swal.fire({\n                                position: 'top-end',\n                                        icon: 'success',\n                                        title: 'Forumalarz zosta\u0142 przes\u0142any, prosz\u0119 oczekiwa\u0107 na pobranie etykiety.',\n                                        showConfirmButton: false,\n                                        timer: 10000\n                                });\n                                 window.location.reload();\n\n                                })\n                                .catch(error => {\n                                console.log(\"Wyst\u0105pi\u0142 b\u0142\u0105d:\", error);\n                                });\n                        },\n                        error: function(error) {\n                        console.error(error);\n                        }\n                });\n                }, 3000);\n                },\n                error:  function(jqXHR, textStatus, errorThrown) {\n\n                var response = JSON.parse(jqXHR.responseText);\n                \/\/ Podstawowy komunikat b\u0142\u0119du\n                var errorMessage = response.message || 'Wyst\u0105pi\u0142 b\u0142\u0105d.';\n                \/\/ Parsowanie szczeg\u00f3\u0142\u00f3w b\u0142\u0119d\u00f3w\n                if (response.details) {\n                errorMessage += '\\n\\n';\n                for (var field in response.details) {\n                if (Array.isArray(response.details[field])) {\n                response.details[field].forEach(function(entry) {\n                for (var subfield in entry) {\n                var errors = entry[subfield];\n                errors.forEach(function(error) {\n                errorMessage += `- ${field}.${subfield}: ${error}\\n`;\n                });\n                }\n                });\n                }\n                }\n                }\n\n\n\n\n\n                Swal.fire({\n                position: 'top-end',\n                        icon: 'error',\n                        title: 'Wyst\u0105pi\u0142 b\u0142\u0105d!',\n                        text: errorMessage,\n                        showConfirmButton: false,\n                        timer: 10000\n                });\n                }\n        });\n        });\n        $('#addressOne').click(function() {\n        Swal.fire({\n        title: 'Wybierz paczkomat, z kt\u00f3rego chcesz nada\u0107 paczk\u0119. Nast\u0119pnie kliknij przycisk Gotowe, pod mapk\u0105.',\n                icon: 'info',\n                width: 600,\n                html: `<inpost-geowidget onpoint=\"onpointselect\" token=\"${apiGeoToken}\" language=\"pl\" config=\"parcelCollect\"><\/inpost-geowidget>`,\n                confirmButtonText: 'Gotowe'\n        });\n        });\n        $('#addressSecond').click(function() {\n        Swal.fire({\n        title: 'Wybierz paczkomat, do kt\u00f3rego chcesz otrzyma\u0107 paczk\u0119 od serwisu. Nast\u0119pnie kliknij przycisk Gotowe pod mapk\u0105.',\n                icon: 'info',\n                width: 600,\n                html: `<inpost-geowidget onpoint=\"onpointselecttwo\" token=\"${apiGeoToken}\" language=\"pl\" config=\"parcelCollect\"><\/inpost-geowidget>`,\n                confirmButtonText: 'Gotowe'\n        });\n        });\n        });\n        async function getTrackingNumber(id) {\n        return fetch(`${apiEndpoint}\/v1\/organizations\/${apiOrganization}\/shipments?id=${id}`, {\n        method: 'GET',\n                headers: {\n                'Authorization': `Bearer ${apiToken}`,\n                        'Accept': 'application\/json'\n                }\n        })\n                .then(response => {\n                if (!response.ok) {\n                throw new Error(`HTTP error! status: ${response.status}`);\n                }\n                return response.json();\n                })\n                .then(data => {\n                const trackingNumber = data?.items?.[0]?.tracking_number;\n                if (!trackingNumber) {\n                throw new Error('No tracking number found in the response');\n                }\n                console.log('Tracking number:', trackingNumber);\n                return trackingNumber;\n                })\n                .catch(error => {\n                console.error('Error fetching tracking number:', error);\n                throw error;\n                });\n        }\n\n\n        })(jQuery);\n        document.addEventListener('onpointselect', (event) => {\n        const point = event.detail;\n        jQuery('#addressOne').val(point.name);\n        });\n        document.addEventListener('onpointselecttwo', (event) => {\n        const point = event.detail;\n        jQuery('#addressSecond').val(point.name);\n        });\n        jQuery(document).ajaxComplete(function() {\n        \/\/ jQuery('#submit').prop('disabled', false).html('Wy\u015blij zg\u0142oszenie');\n        });\n        \/\/ Alternatywnie, je\u015bli chcesz obs\u0142u\u017cy\u0107 b\u0142\u0119dy:\n        jQuery(document).ajaxError(function() {\n        jQuery('#submit').prop('disabled', false).html('Wy\u015blij zg\u0142oszenie');\n        });\n\n\n    <\/script>\n\n    <style>\n        #geowidget-v5-iframe-render {\n            height: 50vh;\n        }\n        .single-question {\n            margin-bottom: 1cm;\n        }\n    <\/style>\n\n    \n","protected":false},"excerpt":{"rendered":"<p> [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/alfawatch.pl\/serwis\/wyslij-zgloszenie\/\">Czytaj dalej\u2026<span class=\"screen-reader-text\"> from Wy\u015blij zg\u0142oszenie<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/reklamacje.php","meta":{"footnotes":""},"class_list":["post-88","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/pages\/88","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/comments?post=88"}],"version-history":[{"count":4,"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/pages\/88\/revisions"}],"predecessor-version":[{"id":6027,"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/pages\/88\/revisions\/6027"}],"wp:attachment":[{"href":"https:\/\/alfawatch.pl\/serwis\/wp-json\/wp\/v2\/media?parent=88"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}