Source: https://platformazakupowa.pl/transakcja/253414
Timestamp: 2020-07-11 14:13:29+00:00
Document Index: 80030422

Matched Legal Cases: ['art. 4', 'art. 29', 'art. 30', 'art. 13', 'art. 14', 'art. 13']

Proceeding: Opracowanie dokumentacji projektowo – kosztorysowej dla zadania pn. Przebudowa budynku informacji turystycznej w Koronowie (ZP.271.2.1.2019) - Platforma Zakupowa
Proceeding ID 253414
Proceeding: Opracowanie dokumentacji projektowo – kosztorysowej dla zadania pn. Przebudowa budynku informacji turystycznej w Koronowie (ZP.271.2.1.2019)
Urząd Miejski Koronowo Department: Wydział Inwestycji i Planowania Przestrzennego
Posted : 05-09-2019 11:47:00
Placing offers: 16-09-2019 09:00:00
Zamówienie o wartości nie przekraczającej 30 000 euro (postępowanie nie podlega ustawie z dnia 29 stycznie 2004 r. Prawo zamówień publicznych (art. 4 pkt. 8 ustawy))
Gmina Koronowo zwraca się z zapytaniem ofertowym w przedmiocie Opracowania dokumentacji projektowo – kosztorysowej dla zadania pn. Przebudowa budynku informacji turystycznej w Koronowie.
Prosimy o złożenie oferty i dokonanie kalkulacji kosztów wynagrodzenia należnego wykonawcy za wykonanie usługi opracowania dokumentacji projektowo – kosztorysowej dotyczącej przebudowy budynku informacji turystycznej w Koronowie wraz ze zmianą sposobu użytkowania części mieszkalnej na pomieszczenia użyteczności publicznej.
- Istniejący budynek zlokalizowany jest na działce nr 838 obręb geodezyjny Koronowo.
- Budynek znajduje się na obszarze dzielnicy starego miasta, która wpisana jest do rejestru zabytków decyzją nr A/1418 z dnia 16.09.1957 r. Wszelkie prace prowadzone na tym terenie wymagają uzyskania pozwolenia w formie decyzji Wojewódzkiego Konserwatora Zabytków.
- Prace ziemne należy prowadzić sposobem ręcznym pod ścisłym nadzorem archeologicznym,a w przypadku odsłonięcia zabytków nawarstwień kulturowych należy przeprowadzić archeologiczne badania ratownicze zgodnie z obowiązującą procedurą.
- Budynek ujęty jest w wojewódzkiej ewidencji zabytków województwa kujawsko – pomorskiego.
- Uwzględnić należy nadanie historycznej formy elewacji frontowej,elewacje budynku wykończyć należy z użyciem materiałów historycznych.
- Budynek leży w Obszarze Krajobrazu Chronionego.
2. Zakres opracowania dokumentacji:
Opracowanie projektu budowlano - wykonawczego obejmującego:
- przebudowę istniejących pomieszczeń budynku informacji turystycznej w celu poprawy funkcjonalności i dostosowania do obowiązujących przepisów i norm,
- zmianę sposobu użytkowania pomieszczenia stanowiącego część lokalu mieszkalnego na pomieszczenia użyteczności publicznej z połączeniem funkcji z budynkiem informacji turystycznej,
- rozbiórkę części budynków mieszkalnych zlokalizowanych na działce od strony działki nr 839.
3. Opracowanie dokumentacji projektowo-kosztorysowej obejmuje wykonanie:
- Uzyskanie decyzji o warunkach zabudowy
- Wykonanie inwentaryzacji istniejącego stanu w zakresie niezbędnym doprojektowania
- Wykonanie mapy do celów projektowych oraz wypisów z rejestru gruntów
- Sporządzenie oceny technicznej elementów konstrukcji budynku
- Uzgodnienie projektu z Wojewódzkim Konserwatorem Zabytków
- Wykonanie projektu budowlano-wykonawczego oraz informacji bioz – 6kpl.
- Kosztorysu inwestorskiego, 2 kpl.
- Przedmiaru robót 2 kpl.
- Specyfikacji Technicznych Wykonania i Odbioru Robót 2 kpl.
- Zakres dokumentacji należy również wykonać na nośniku CD.
- Udzielenie co najmniej 24miesięcznego okresu gwarancji (okres gwarancji stanowi kryterium oceny ofert – patrz pkt 13 zapytania ofertowego).
Wspólny słownik zamówień (CPV): 71320000-7 - Usługi inżynieryjne w zakresie projektowania.
4. Wystąpić i uzyskać z organu administracji budowlanej decyzję o pozwoleniu na budowę.
5. Wykonawca zobowiązany będzie do pozyskania we własnym zakresie i na własny koszt wszystkich niezbędnych danych wyjściowych do projektowania, w tym np.: map do celów projektowych oraz innych pozwoleń i uzgodnień wynikających z przepisów prawa oraz wszelkich niezbędnych pozwoleń i uzgodnień projektu budowlanego z jednostkami opiniującymi i uzgadniającymi oraz uzyskanie zgody odpowiedniego organu administracji budowlanej.
6. Wykonawca zobowiązany będzie przed przystąpieniem do prac projektowych do uzgodnienia koncepcji projektu oraz uzyskania zatwierdzenia przez Wydział Inwestycji i Planowania Przestrzennego Urzędu Miejskiego w Koronowie.
7. W zakres przedmiotu zamówienia wchodzi również dokonanie przez Wykonawcę wszelkich poprawek, uzupełnień, modyfikacji w dokumentacji, których wykonanie będzie wymagane dla uzyskania pozytywnej oceny i przyjęcia dokumentacji przez instytucje dokonujące oceny i kwalifikacji, także w przypadku, gdy konieczność wprowadzenia takich poprawek, uzupełnień i modyfikacji wystąpi po przyjęciu przez Zamawiającego przedmiotu zamówienia i zapłacie za jego wykonanie.
8. Zamawiający udzieli wykonawcy zamówienia, pełnego pełnomocnictwa do reprezentowania przed organami opiniującymi, wydającymi decyzje oraz zgody.
9. Wynagrodzenie w formie ryczałtu rozliczonego na podstawie faktury – po wykonaniu i dostarczeniu do siedziby Zamawiającego kompletnej dokumentacji.
1) Przedmiot zamówienia w dokumentacji projektowo – przedmiarowej należy opisać uwzględniając zapisy art. 29 i art. 30 uPzp,
a) ustawy z dnia 7 lipca 1994 r. Prawo budowlane (t.j. Dz. U. z 2019 r. poz. 1186),
b) ustawy z dnia 29 stycznia 2004 r. Prawo zamówień publicznych (t.j. Dz.U. z 2018 r.,poz. 1986 z późn. zm.),
c) rozporządzenia Ministra Transportu,Budownictwa i Gospodarki Morskiej z dnia 27 kwietnia 2012 r. w sprawie szczegółowego zakresu i formy projektu budowlanego (Dz. U. z 2012 r. poz. 462ze zm.),
d) rozporządzenia Ministra Infrastruktury z dnia 2 września 2004r. w sprawie szczegółowego zakresu i formy dokumentacji projektowej, specyfikacji technicznych wykonania i odbioru robót budowlanych oraz programu funkcjonalno – użytkowego (Dz. U. z 2013 r. 1129),
e) rozporządzenia Ministra Infrastruktury z dnia 18 maja 2004 r. w sprawie określenia metod i podstaw sporządzania kosztorysu inwestorskiego, obliczania planowanych kosztów prac projektowych oraz planowanych kosztów robót budowlanych określonych w programie funkcjonalno- użytkowym (Dz. U. z 2004 r. Nr 130, poz. 1389).
Wykonawca ubiegający się o udzielenie zamówienia musi spełniać warunki dotyczące:
1) Kompetencji lub uprawnień do prowadzenia określonej działalności zawodowej,o ile wynika to z odrębnych przepisów,
- Warunek zostanie uznany za spełniony, jeżeli wykonawca wykaże, że dysponuje lub będzie dysponował osobami posiadającymi uprawnienia do projektowania bez ograniczeń w specjalności architektonicznej lub uprawnienia do projektowania bez ograniczeń w specjalności konstrukcyjno – budowlanej.
W celu wykonania spełnienia warunku Wykonawca dostarczy Zamawiającemu:
wykaz osób – które będą uczestniczyć w wykonywaniu zamówienia wraz z informacjami na temat ich kwalifikacji zawodowych, doświadczenia i wykształcenia niezbędnych do wykonywania zamówienia, a także zakresu wykonywanych przez nie czynności i informacją o podstawie dysponowania tymi osobami oraz dokumenty potwierdzające posiadanie uprawnień przez osoby wskazane w wykazie.
12. Kryteria oceny ofert wraz z wagami punktowymi lub procentowymi
Cena (C) – 90%Okres gwarancji (G) – 10%
13. Opis sposobu przyznawania punktacji za dane kryterium
1) Cena (C) – maksymalnie 90 punktów przy zastosowaniu poniższego wzoru:
C = --------------------------------------------------------------------------x 100 pkt x 90%
C – uzyskana ilość punktów badanej oferty w kryterium cena
2) Okres gwarancji (G) – 10% - wskaźnik
Zamawiający będzie przyznawał punkty w zakresie kryterium okres gwarancji. W tym kryterium Wykonawca może otrzymać max. 10 punktów. Wykonawca może wydłużyć termin gwarancji. Punktacja będzie przyznawana w następujący sposób:
a) za udzielony 24 miesięczny okres gwarancji Wykonawca otrzyma 0 punktów,
b) za udzielony 36 miesięczny okres gwarancji Wykonawca otrzyma 5 punktów,
c) za udzielony 48 miesięczny (lub więcej) okres gwarancji Wykonawca otrzyma10 punktów.
3) Zamawiający nie będzie przyznawał punktów częściowych. Oznacza to, ze Wykonawca w ramach kryteriów może otrzymać odpowiednio 0 albo 5 albo 10 punktów.
Udzielenie okresu gwarancji krótszego niż24 miesiące skutkować będzie odrzuceniem oferty.
4) Liczba punktów łącznie (Lp):
Lp – suma punktów łącznie
C – ilość punktów uzyskana w kryterium cena (max. 90 pkt)
G – ilość punktów uzyskana w kryterium okres gwarancji (max. 10 pkt)
O wyborze oferty zadecyduje największa liczba uzyskanych punktów.
14. Warunki wykluczenia
Z postępowania o udzielenie zamówienia wyklucza się wykonawców, którzy są powiązani osobowo lub kapitałowo z beneficjentem. Przez powiązania kapitałowe lub osobowe rozumie się wzajemne powiązania między beneficjentem lub osobami upoważnionymi do zaciągania zobowiązań w imieniu beneficjenta lub osobami wykonującymi w imieniu beneficjenta czynności związane z przygotowaniem i przeprowadzeniem procedury wyboru wykonawcy a wykonawcą, polegające w szczególności na:
W celu wykazania braku podstaw do wykluczenia Wykonawca złoży oświadczenie, o braku powiązań z Zamawiającym, stanowiące załącznik nr 2.
15. Termin realizacji zamówienia: do dnia 10 grudnia 2019 r.
16. Możliwość zmiany postanowień zawartej umowy.
Zmiana postanowień zawartej umowy w stosunku do treści zapytania ofertowego,na podstawie którego dokonano wyboru Wykonawcy, może nastąpić w przypadku wystąpienia jednej z następujących okoliczności:
1) Zmian stanu prawnego lub faktycznego,które mają wpływ na treść zawartej umowy, jeżeli taka zmiana leży w interesie publicznym, np. zmiany będące następstwem okoliczności leżących po stronie zamawiającego,w szczególności wstrzymanie realizacji umowy zawartej z wykonawcą robót przez Zamawiającego;
2) W sytuacji nieprzewidzianej i niezawinionej przez strony, której wypełnienia strony nie mogły przewidzieć pomimo zachowania należytej staranności:
- warunki atmosferyczne uniemożliwiające realizację usługi,
- siła wyższa uniemożliwiająca wykonanie umowy zawartej z wykonawcą robót,
- inne przyczyny zewnętrzne niezależne od Zamawiającego oraz Wykonawcy skutkujące niemożliwością prowadzenia działań w celu wykonania umowy,
- wystąpienia zmian powszechnie obowiązujących przepisów prawa w zakresie mającym wpływ na realizację przedmiotu umowy – w zakresie dostosowania postanowień umowy do zmian przepisów prawa,
- zmiany nazwy oraz formy prawnej stron –w zakresie dostosowania postanowień umowy do tych zmian.
17. Cenę należy obliczyć w sposób uwzględniający:
3) ryczałtową formę wynagrodzenia, a więc i jego ryzyko,
Cenę oferty należy podać w złotych polskich cyfrowo i słownie, z dokładnością do dwóch miejsc po przecinku oraz określić podatek od towarów i usług VAT.
20. Zamawiający nie dopuszcza udziału podwykonawców przy wykonaniu zamówienia.
21. Zamawiający nie przewiduje udzielania, w okresie 3 lat od udzielenia zamówienia podstawowego, zamówień polegających na powtórzeniu podobnych usług.
22. Ofertę należy złożyć wyłącznie poprzez platformę zakupową openNexus w terminie do dnia 16.09.2019 r. do godz. 09:00. Oferty złożone poza platformą nie będą rozpatrywane.
https://platformazakupowa.pl/koronowo/aukcje
23. Oferta musi zawierać niżej wymienione dokumenty:
1. Oświadczenie o spełnianiu warunków udziału w postępowaniu – załącznik 1.
2. Oświadczenie o braku powiązań z Zamawiającym stanowiące załącznik nr 2.
3. Wykaz osób, które będą uczestniczyć w wykonywaniu zamówienia – załącznik nr 3.
24. Informacji dodatkowych udziela Jolanta Dombrowska -Chmielek – nr tel. 52 3826 451.
zapytania ofertowe - dokumentacja PIT.pdf pdf 278.39 2019-09-05 11:47:00 Proceeding
Załącznik Nr 2.docx docx 13.92 2019-09-05 11:47:00 Proceeding
Załącznik Nr 3.docx docx 17.95 2019-09-05 11:47:00 Proceeding
umowa projekt.doc doc 59.5 2019-09-05 11:47:00 Proceeding
klauzula RODO.docx docx 16.26 2019-09-05 11:47:00 Proceeding
Załącznik Nr 1.docx docx 13.12 2019-09-05 11:47:00 Proceeding
Załącznik Nr 1.docx docx 13.12 2019-09-05 11:47:00 Criterium
Załącznik Nr 2.docx docx 13.92 2019-09-05 11:47:00 Criterium
Załącznik Nr 3.docx docx 17.95 2019-09-05 11:47:00 Criterium
umowa projekt.doc doc 59.5 2019-09-05 11:47:00 Criterium
klauzula RODO.docx docx 16.26 2019-09-05 11:47:00 Criterium
Zawiadomienie PIT.pdf pdf 60.91 2019-09-30 11:21:09 Public message
protokół z otwarcia - PIT.xlsx xlsx 54.05 2019-09-17 08:37:09 Public message
odpowiedzi PIT.pdf pdf 28.72 2019-09-06 12:49:31 Public message
2019-10-18 08:54 Maria Klapczyńska Wykonawca odmówił podpisania umowy
2019-09-30 11:21 Maria Klapczyńska Zawiadomienie o wyborze najkorzystniejszej oferty
Zawiadomienie PIT.pd [...].pdf
2019-09-17 08:37 Maria Klapczyńska Protokół z otwarcia ofert
protokół z otwarcia [...].xlsx
2019-09-06 12:50 Maria Klapczyńska Odpowiedzi na pytania złożone przez Wykonawcę
odpowiedzi PIT.pdf
1 Opracowanie dokumentacji projektowo – kosztorysowej dla zadania pn. Przebudowa budynku informacji turystycznej w Koronowie Zgodnie z zapisami zapytania ofertowego 1 service 0% 23% 5% 7% 8% Different VAT not taxable exempt PLN EUR - (0)
2 Okres gwarancji 10% Zgodnie z zapisami zapytania ofertowego, Punktacja będzie przyznawana w następujący sposób: a) za udzielony 24 miesięczny okres gwarancji Wykonawca otrzyma 0 punktów, b) za udzielony 36 miesięczny okres gwarancji Wykonawca otrzyma 5 punktów, c) za udzielony 48 miesięczny (lub więcej) okres gwarancji Wykonawca otrzyma 10 punktów (0)
3 Termin realizacji - Do dnia 10 grudnia 2019 r., proszę potwierdzić (0)
4 Spełnienia warunków udziału - Oświadczam, że spełniam warunki udziału określone w zapytaniu ofertowym, proszę potwierdzić oraz załączyć oświadczenie (Buyer requires the attachment of a file)
5 Niepodleganie wykluczeniu - Oświadczam, że nie podlegam wykluczeniu z postępowania, proszę potwierdzić oraz załączyć oświadczenie (Buyer requires the attachment of a file)
6 Dysponowanie osobami - Oświadczam, że dysponuję osobami posiadającymi uprawnienia do projektowania bez ograniczeń w specjalności architektonicznej lub uprawnienia do projektowania bez ograniczeń w specjalności konstrukcyjno – budowlanej, proszę potwierdzić oraz załączyć wykaz osób wraz z dokumentami potwierdzającymi posiadanie wymaganych uprawnień przez osoby wskazane w wykazie (Buyer requires the attachment of a file)
7 Warunki umowy - Oświadczam, że akceptuję warunki zawarte w załączonym wzorze umowy, proszę potwierdzić
umowa projekt.doc
8 Wypełnienie obowiązku informacyjnego - Oświadczam, że wypełniłem obowiązki informacyjne przewidziane w art. 13 lub art. 14 rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych) (Dz. Urz. U.E. L 119 z 04.05.2016) wobec osób fizycznych, od których dane osobowe bezpośrednio lub pośrednio pozyskałem w celu ubiegania się o udzielenie zamówienia publicznego w przedmiotowym postępowaniu, proszę potwierdzić jeżeli dotyczy (0)
9 Zapoznanie się z klauzulą informacyjną - Oświadczam, że zapoznałem się z klauzulą informacyjną z art. 13 rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych) (Dz. Urz. U.E. L 119 z 04.05.2016), przedstawioną przez Zamawiającego, w celu związanym z realizacją niniejszego postępowania o udzielenie zamówienia publicznego, proszę potwierdzić
The number of page views - 566
').insertBefore( "div.company-auction-section" ); window.scrollTo(0, 0); e.preventDefault(); resetClick("btn-submit"); return; } if(auctionHasEnded === false) { resetClick("btn-submit"); checkAddOnlyOneOffer(e) } else { resetClick("btn-submit"); auctionHasEndedModal(e, true); } } } }); $("select.vat-select").change(function() { setOfferValue(); $auctionLineId = $(this).attr('data-auction-line-id'); $priceGrossInput = $('input[name="price_gross['+$auctionLineId+']"]'); $priceNetInput = $('input[name="price['+$auctionLineId+']"]'); if($(this).val() == 8 && $priceNetInput.val().length > 0) { $priceGrossInput.removeAttr("disabled"); $priceGrossInput.attr("required", true).addClass("required"); } else { $priceGrossInput.val(''); $priceGrossInput.attr('disabled', true); $priceGrossInput.removeAttr("required").removeClass("required"); $('input[name="customVat['+ $auctionLineId +']"]').remove(); setGrossValuePlaceholder($priceGrossInput); } }); $("select.currency-select").change(function() { setOfferValue(); }); $("input.price").focusout(function() { $auctionLineId = $(this).attr('data-auction-line-id'); $priceGrossInput = $('input[name="price_gross['+$auctionLineId+']"]'); $priceNetInput = $('input[name="price['+$auctionLineId+']"]'); $select = $('select[name="vat['+ $auctionLineId +']"]'); if($select.val() == 8 && $priceNetInput.val().length > 0) { $priceGrossInput.removeAttr("disabled"); $priceGrossInput.attr("required", true).addClass("required"); } else { $priceGrossInput.val(''); $priceGrossInput.attr('disabled', true); $priceGrossInput.removeAttr("required").removeClass("required"); setGrossValuePlaceholder($priceGrossInput); } setCustomVat($priceGrossInput); setOfferValue(); }); $('body').on('change', '#select_show_how_many', function() { var limit = $(this).val(); window.location.href = "?page=1&limit=" + limit; }); $("a.close-modal, button.close-modal").click(function() { var modalId = $(this).data("modal-id"); $('#' + modalId + '').modal('hide'); }); $("a.cancel-offer").click(function() { $buttonYesContainer = $('#cancel_modal').find('.btn-cancel-offer'); $buttonYesContainer.attr('href', $(this).attr('data-cancel-offer-url')); }); $("a.place-again").click(function() { var disabled = $(this).attr('disabled'); if(typeof disabled !== typeof undefined && disabled !== false) { return false; } $("input.price").val(""); $("input.price-gross").val(""); $("input.criteriumAnswer").val(""); $("textarea.comment").val(""); var modalId = $(this).data("modal-id"); var historyModal = $('#' + modalId + ''); $("span.counter").text(0); historyModal.find("span.history-price").each(function () { var auctionLineId = $(this).data("auction-line-id"); var auctionLinePrice = $(this).data("price"); var auctionVatId = $(this).data("vat-id"); var auctionCurrencyId = $(this).data("currency-id"); var auctionLineBruttoPrice = $(this).data("brutto-price"); if(auctionVatId >= 8){ $('input[name="price_gross['+ auctionLineId + ']"').val(auctionLineBruttoPrice); $('input[name="price_gross['+ auctionLineId + ']"').attr("required", true).addClass("required"); $('input[name="price_gross['+ auctionLineId + ']"').removeAttr("disabled"); $('select[name="vat['+ auctionLineId +']"').val(8).selectpicker("refresh"); }else { $('input[name="price_gross['+ auctionLineId + ']"').val(''); $('input[name="price_gross['+ auctionLineId + ']"').attr({disabled: true, placeholder: auctionLineBruttoPrice }); $('input[name="price_gross['+ auctionLineId + ']"').removeAttr("required").removeClass("required"); $('select[name="vat['+ auctionLineId +']"').val(auctionVatId).selectpicker("refresh"); } $('input[name="price['+ auctionLineId +']"').val(auctionLinePrice); $('select[name="currency['+ auctionLineId +']"').val(auctionCurrencyId).selectpicker("refresh"); }); historyModal.find("span.history-answer").each(function () { var auctionCriteriumId = $(this).data("auction-criterium-id"); var answer = $(this).data("answer"); $('input[name="criteriumAnswer['+ auctionCriteriumId +']"').val(answer); }); var comment = historyModal.find("span.history-comment").data("comment"); $('textarea[name="comment"]').val(comment); setOfferValue(); var files = new Array(); var i = 1; historyModal.find("a.history-files").each(function() { var ident = $(this).data("ident"); var newIdent = $(this).data("new-ident"); var kind = $(this).data("kind"); var file = new Array(ident, newIdent, kind); var count = $("span#count-" + newIdent).text(); var newCount = parseInt(count) + 1; $("span#count-" + newIdent).text(newCount); files.push(file); i++; }); if(files.length > 0) { $.ajax({ type: "GET", async: false, url: "/place/files/from/history/offer", data: { 'files': files } }).success(function() { }); } else { var files = new Array(); $("span.counter").each(function() { var ident = $(this).data("ident"); var kind = $(this).data("kind"); var file = new Array(ident, kind); files.push(file); }); var filesToDelete = new Array() $.ajax({ type: "GET", async: false, url: "/delete/files/from/offer", data: { 'files': files } }).success(function() { }); } $('#' + modalId + '').modal('hide'); }); // client-side validation of numeric inputs, optionally replacing separator sign(s). $("input.number").on("keydown", function (e) { // allow function keys and decimal separators if ( // backspace, delete, tab, escape, enter, comma and . $.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 188, 190, 108]) !== -1 || // Ctrl/cmd+A, Ctrl/cmd+C, Ctrl/cmd+X ($.inArray(e.keyCode, [65, 67, 88]) !== -1 && (e.ctrlKey === true || e.metaKey === true)) || // home, end, left, right (e.keyCode >= 35 && e.keyCode <= 39)) { if($(this).val().indexOf('.') !== -1 && e.keyCode !== 8) { e.preventDefault(); return false; } // optional: replace commas with dots in real-time (for en-US locals) if (e.keyCode === 188 || e.keyCode === 108 || e.keyCode === 110) { e.preventDefault(); $(this).val($(this).val() + "."); } return; } // block any non-number if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); return false; } }); $("#unlockModalLink").click(function(e) { auctionHasEndedModal(e, false); }); $('body').on('click', '.btn-unlock-form', function() { $("#unlock-modal").modal('hide'); unlockForm(); }); $('body').on('click', '.btn-submit-place-one-offer', function(e) { incrementClick("btn-submit"); $("#offerForm").submit(); }); $('#only_one_offer_modal').on('hidden.bs.modal', function () { resetClick('btn-submit'); }); $('.submit').click(function(e) { incrementClick("btn-submit"); if($('input.price').filter(function () { return !!this.value; }).length == 0) { resetClick("btn-submit"); } else { $("input.price").each(function(index) { $auctionLineId = $(this).attr('data-auction-line-id'); $priceGross = parseFloat($('input[name="price_gross['+$auctionLineId+']"]').val()); $priceNet = parseFloat($('input[name="price['+$auctionLineId+']"]').val()); $vatSelect = ('select[name="vat['+ $auctionLineId +']"]'); $selectedOption = $('select[name="vat['+ $auctionLineId +']"]').find("option:selected"); if($selectedOption.val() == "8") { if($priceNet <= $priceGross) { $('input[name="customVat['+ $auctionLineId +']"]').remove(); $(this).after(" "); } } }); } }); $('body').on('click','#unlock-form', function(){ $('#unlockModalLink').attr('disabled',true); $('#unlockModalLink').addClass('disabled'); }); $("input.price-gross").focusout(function() { setCustomVat($(this)); setOfferValue(); }); var doNotshowAgainCookie = getCookie('doNotShowAgain'); $("#not-logged-message").on("hidden.bs.modal", function (){ doNotShowAgain(); }); $('.modal-attachments').on('show.bs.modal', function (e) { var button = e.relatedTarget; if($(button).hasClass('no-modal')) { e.stopPropegation(); } }); textareaCharachters(); $('#question_modal').on('hide.bs.modal', function (e) { var dismissApproval = $('#question_modal').attr('data-dismiss-approval'); if (dismissApproval === "false") { e.preventDefault(); $('#modalSupplierMessageDismiss').modal('show'); } else { $('#question_modal').attr('data-dismiss-approval', "false"); } }); $('body').on('click', '#new-message-supplier-dismiss', function(){ $('#question_modal').attr('data-dismiss-approval', "true"); $('#question_modal').modal('hide'); }) $('body').on('click', '#send-private-message-by-supplier', function(e){ var charLimit = $("#private-message-supplier").attr("data-charlimit"); var charLength = $("#private-message-supplier").val().length; if (charLength > charLimit) { e.preventDefault(); toastr.error('The messagcan not contain more than ' +charLimit+ ' characters'); } }); $('#xls_offer_form').on('submit', function(e){ e.preventDefault(); var url = "/parse-xls-with-offers"; $.ajax({ type: "POST", url: url, data: new FormData(this), contentType: false, cache: false, processData:false, beforeSend: function(){ $('.xls-import-submit').attr("disabled","disabled"); }, success: function(response) { var importData = response.importData; parsePositionLineData(importData.positions); var canAddTheCommentOffer = false; var hasOfferComment = importData.supplier_offer_comment === null ? false : true; var supplierOfferComment = $('textarea.comment'); if ((typeof supplierOfferComment.attr('disabled') === typeof undefiend) || (supplierOfferComment.attr('disabled') === false)){ canAddTheCommentOffer = true; supplierOfferComment.val(importData.supplier_offer_comment); } var hasAnyCriteriumAnswer = parseCriteriaLineData(importData.criteria, canAddTheCommentOffer); setOfferValue(); $('#xls_offer').modal('hide'); if ((hasAnyCriteriumAnswer || hasOfferComment) && !canAddTheCommentOffer) { toastr.error('The ordering party did not allow the possibility of entering a commentary on the offer in this proceeding'); } toastr.success("The data has been correctly imported"); $('.xls-import-submit').removeAttr("disabled"); }, error: function(xhr, ajaxOptions, thrownError){ var toastrError = null switch (xhr.status) { case 422: toastrError = "You are trying to upload an incorrect file"; break; case 401: toastrError = "You can not upload a file because you have not been invited to do so by the Ordering Party"; break; default: toastrError = "An unexpected error occurred. Please try again later"; } if (toastrError !== null) { toastr.error(toastrError); } $('.xls-import-submit').removeAttr("disabled"); }, }) }); }); function checkAddOnlyOneOffer(e) { switch('addOfferAsLoggedSupplier') { case 'addOfferAsBuyer': $supplierEmail = $('#supplier-data-email').val(); break; case 'editOfferAsBuyer': $supplierEmail = $('#supplier-data-email').val(); break; case 'addOfferAsLoggedSupplier': $supplierEmail = $('.supplier-email').val(); break; case 'addOfferAsNonLoggedSupplier': $supplierEmail = $('.supplier-email').val(); break; } $.ajax({ type: "POST", async: false, url: "/get/published/or/nonverified/auction/offer", data: { 'isLogged': 0, 'employeeId': null, 'auctionId': 253414, 'supplierEmail': $supplierEmail } }).success(function(response) { if(response.data.isExistsAuctionOffer == 1) { $emailContainer = $('#only_one_offer_modal').find('.modal-only-offer-supplier-email'); $emailContainer.text(response.data.supplierEmail); $statusContainer = $('#only_one_offer_modal').find('.modal-only-offer-status'); $statusContainer.text(response.data.status); $('#only_one_offer_modal').modal('show'); window.scrollTo(0, 0); e.preventDefault(); } }); } function cloneFiles() { var files = new Array(); var i = 1; $('body').find("span.clone-files").each(function() { var ident = $(this).data("ident"); var newIdent = $(this).data("new-ident"); var kind = $(this).data("kind"); var file = new Array(ident, newIdent, kind); var count = $("span#count-" + newIdent).text(); var newCount = parseInt(count) + 1; $("span#count-" + newIdent).text(newCount); files.push(file); i++; }); if(files.length > 0) { $.ajax({ type: "GET", async: false, url: "/place/files/from/history/offer", data: { 'files': files } }).success(function() { }); } } function uploadFiles(object, kind, modal) { var ident = object.data("ident"); var proposalDiv = $('div[id^="'+modal+'-'+ ident +'"]'); var esign = 0; var checksum = 0; if(kind === 'forum_message' || kind === 'forum_private_message' || kind === 'auction_offer_criterium' || kind === 'auction_offer_line' || kind === 'auction_offer') { esign = 0; } proposalDiv.find('div.modal-body').find('div.file-upload').html(""); proposalDiv.find('div.modal-body').find('div.progress').show(); var uploadUrl = "/upload-files?ident=" + ident + "&kind="+kind + "&esign=" + esign + "&checksum=" + checksum; $.ajax(uploadUrl).success(function(response) { proposalDiv.find('div.modal-body').find('div.progress').hide(); proposalDiv.find('div.modal-body').find('div.file-upload').html(response); }); } function convertPriceToDefault(originalCurrencyId, targetCurrencyId, price) { if (originalCurrencyId == targetCurrencyId) { return price; } var originalCurrencyRate = $('span.currency-rate[data-currency-id="'+originalCurrencyId+'"]').data('currency-rate'); var targetCurrencyRate = $('span.currency-rate[data-currency-id="'+targetCurrencyId+'"]').data('currency-rate'); if(targetCurrencyRate == "") { targetCurrencyRate = 1; } if(originalCurrencyRate == "") { price = price / targetCurrencyRate; } else { price = price * originalCurrencyRate; price = price / targetCurrencyRate; } return price; } function setOfferValue() { var sumNetto = 0; var sumBrutto = 0; $("span.value-netto").text(""); $("span.value-brutto").text(""); $("input.price").each(function() { var auctionLineId = $(this).data('auction-line-id'); var priceValue = $(this).val(); priceValue.replace(",", "."); var originalCurrencyId = $('select[name="currency['+ auctionLineId +']"]').val(); var targetCurrencyId = 17; var vatValue = $('select[name="vat['+ auctionLineId +']"]').find("option:selected").attr('data-vat-value'); var vatSource = $('select[name="vat['+ auctionLineId +']"]').find("option:selected").attr('data-vat-source'); var quantity = $('span.quantity[data-auction-line-id="'+ auctionLineId +'"]').text(); var price = priceValue * parseFloat(quantity); var priceBrutto = price + price * (vatValue/100); if(price !== "") { sumNetto += parseFloat(convertPriceToDefault(originalCurrencyId, targetCurrencyId, price)); } if(priceBrutto != "") { if(vatSource === 'different_vat'){ priceBrutto = $('input[name="price_gross['+ auctionLineId +']"]').val() * parseFloat(quantity); } sumBrutto += parseFloat(convertPriceToDefault(originalCurrencyId, targetCurrencyId, priceBrutto)); } }); $("span.value-netto").text(number_format (sumNetto, 2, '.', ' ')); $("span.value-brutto").text(number_format (sumBrutto, 2, '.', ' ')); } function setCustomVat(object) { $auctionLineId = object.attr('data-auction-line-id'); $priceGrossValue = object.val(); $priceNetValue = $('input[name="price['+ $auctionLineId +']"]').val(); $select = $('select[name="vat['+ $auctionLineId +']"]'); $selectedOption = $('select[name="vat['+ $auctionLineId +']"]').find("option:selected"); if($selectedOption.val() == "8") { $vat = (($priceGrossValue - $priceNetValue) / $priceNetValue)*100; $selectedOption.attr('data-vat-value', number_format(parseFloat($vat), 2, '.', '')); $select.selectpicker("refresh"); } } function setGrossValuePlaceholder($priceGrossInput) { $auctionLineId = $priceGrossInput.attr('data-auction-line-id'); $priceNetInput = $('input[name="price['+$auctionLineId+']"]'); $vatValue = $('select[name="vat['+ $auctionLineId +']"]').find("option:selected").attr('data-vat-value'); if($vatValue.toString().length === 1) { $vat = "1.0" + $vatValue; } else { $vat = "1." + $vatValue; } $priceGrossInput.attr('placeholder', number_format(parseFloat($priceNetInput.val())*parseFloat($vat), 2, '.', '')); } function onSubmit() { grecaptcha.render(); grecaptcha.execute(); $('form.offer-form').submit(); } function onSubmitForum() { grecaptcha.render(); grecaptcha.execute(); $('form#forum-form').submit(); } function proceedingHasEnded() { var result = null; $.ajax({ type: "POST", async: false, url: "/proceeding/has/ended/253414" }).success(function(response) { result = response; }); return result; } function auctionHasEndedModal(event, submit) { var text = "Do you want to unblock the form?"; var textSubmit = "Do you want to continue to submit an offer?"; $btnContainer = $('#unlock-modal').find('.btn-warning'); $textContainer = $('#unlock-modal').find('.unlock-form-info-3'); if(submit) { $btnContainer.removeClass('btn-unlock-form'); $btnContainer.addClass('btn-submit-place-one-offer'); $textContainer.html(textSubmit); } else { $btnContainer.removeClass('btn-submit-place-one-offer'); $textContainer.html(text); $btnContainer.addClass('btn-unlock-form'); } $('#unlock-modal').modal('show'); window.scrollTo(0, 0); event.preventDefault(); } function unlockForm() { $("input").each(function() { $(this).removeAttr("readonly"); $(this).removeAttr("disabled"); $(this).removeAttr("read"); if (typeof $(this).attr('is_required') !== typeof undefined && $(this).attr('is_required') !== false) { $(this).attr('required',true); } }); $("textarea").each(function() { if(!$(this).hasClass('no-modal')){ $(this).removeAttr("disabled"); } }); $("button").each(function() { $(this).removeAttr("disabled"); }); } function isIE() { var ua = window.navigator.userAgent; var msie = ua.indexOf('MSIE '); if (msie > 0) { return true; } var trident = ua.indexOf('Trident/'); if (trident > 0) { return true } var edge = ua.indexOf('Edge/'); if (edge > 0) { return true; } return false; } function doNotShowAgain() { if ($('#message-checkbox').is(":checked")){ document.cookie = "doNotShowAgain=true; expires=Fri, 31 Dec 2120 23:59:59 GMT"; } } function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); } function isDoubleClicked(element) { if (element.data("isclicked")) return true; element.data("isclicked", true); element.attr("data-isclicked", true); element.addClass('btn-default').removeClass('btn-warning'); return false; } function incrementClick(buttonClass) { if(clickbtn[buttonClass] === undefined) { clickbtn[buttonClass] = 0; } clickbtn[buttonClass]++; } function resetClick(buttonClass) { clickbtn[buttonClass] = 0; } function checkIsLockClick(buttonClass) { if(clickbtn[buttonClass] === undefined) { clickbtn[buttonClass] = 0; } if(clickbtn[buttonClass] > 1) { return true; } return false; } jQuery(function() { $("form").submit(function() { // submit more than once return false $(this).submit(function() { if(checkIsLockClick('btn-submit') || $(this).attr("id") == "xls-offer") { return false; } else { return true; } }); // submit once return true return true; }); }); function textareaCharachters() { $(".textarea-countable").keyup(function() { var charLimit = $(this).attr("data-charlimit"); var charCurrent = $(this).val().length; var charCounterText = charCurrent + " / " + charLimit; var counterId = $(this).attr("data-counterid"); $("#"+counterId+ " .textarea-counter").text(charCounterText); if (charCurrent > charLimit) { $("#"+counterId+ " .textarea-counter").css('color', 'red'); $("#"+counterId+ " .counter-alert").text("The messagcan not contain more than " +charLimit+ " characters"); } else { $("#"+counterId+ " .textarea-counter").css('color', '#666'); $("#"+counterId+ " .counter-alert").text(""); } }); } function parsePositionLineData(positions) { Object.keys(positions).forEach(function(auctionLinePositionId){ var auctionLinePosition = $('.auction_line_'+auctionLinePositionId); auctionLinePosition.find('.price').val(positions[auctionLinePositionId].price); auctionLinePosition.find('.vat-select option').each(function(){ if ($(this).text() == positions[auctionLinePositionId].vat){ $(this).attr('selected', true); } else { $(this).attr('selected', false); } }); auctionLinePosition.find('.vat-select').selectpicker('refresh'); auctionLinePosition.find('.currency-select option').each(function(){ if ($(this).text() == positions[auctionLinePositionId].currency){ $(this).attr('selected', true); } else { $(this).attr('selected', false); } }); auctionLinePosition.find('.currency-select').selectpicker('refresh'); var priceGrossInput = auctionLinePosition.find('.price-gross'); setGrossValuePlaceholder(priceGrossInput); }); } function parseCriteriaLineData(criteria, canAddTheCommentOffer) { var hasAnyCriteriumAnswer = false; Object.keys(criteria).forEach(function(auctionLineCriteriumId){ var auctionLineCriterium = $('.auction_criterium_'+auctionLineCriteriumId); if (criteria[auctionLineCriteriumId].answer !== null) { if (canAddTheCommentOffer) { auctionLineCriterium.find('.criteriumAnswer').val(criteria[auctionLineCriteriumId].answer); } hasAnyCriteriumAnswer = true; } }); return hasAnyCriteriumAnswer; } function getNumberEncryptedAttachments() { var totalFilesCount = 0; $("span.counter").each(function() { totalFilesCount += parseInt($(this).text()); }); return totalFilesCount; } function getTotalSizeEncryptedAttachments() { var totalFilesSize = 0; $("span.counter").each(function() { if(typeof($(this).data('sizer')) === 'number') { totalFilesSize += parseInt($(this).data('sizer')); } }); return totalFilesSize; } function getFilesEncryptedSize(files) { filesSize = 0; $.each(files, function (index, value) { filesSize += value.size; }); return filesSize; } function bytesToSize(bytes) { var i = Math.floor(Math.log(bytes) / Math.log(1024)), sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; return (bytes / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + sizes[i]; }