Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var showReference = document.getElementById('show-reference'),
- firstDateInput = document.getElementById('firstDate'),
- table = document.getElementById('table'),
- secDateInput = document.getElementById('secDate'),
- output = [],
- cells = [];
- document.getElementById('save').onclick = function () {
- saveFile(output.join(''));
- }
- function sendRequestToServer(arr, wanted) {
- var request = new XMLHttpRequest();
- request.onreadystatechange = function () {
- if (request.readyState == 4 && request.status == 200) {
- if (wanted == 'documents') {
- wanted = request.responseText;
- wanted = wanted.replace(/,\s+}|,}/g, '}');
- wanted = JSON.parse(wanted);
- console.log(wanted);
- wanted.sort(function (a, b) { return a.date - b.date });
- fillArray(wanted);
- }
- }
- }
- request.open("POST", "http://192.168.1.184:8000/pm", true);
- request.send(JSON.stringify(arr));
- }
- function fillArray(arr) {
- var strArray = [],
- footerArray = [],
- footerFullSum = document.getElementById('footerFullSum');
- output = [];
- for (var i = 0; i < arr.length; i++) {
- var client = arr[i].partner.slice(arr[i].partner.lastIndexOf(':') + 1),
- date = arr[i].date.slice(6, 8) + '/' + arr[i].date.slice(4, 6) + '/' + arr[i].date.slice(0, 4),
- vat = Number(arr[i].vat).toFixed(2) || ' ',
- sumWithoutVat = ((Number(arr[i].sum) - Number(arr[i].vat)).toFixed(2)) || ' ';
- cells[i] = [];
- cells[i][0] = i + 1;
- cells[i][1] = '';
- cells[i][2] = arr[i].ВИДДОК;
- cells[i][3] = arr[i].docNumber;
- cells[i][4] = date;
- cells[i][5] = 'Идент. номер';
- cells[i][6] = client;
- cells[i][7] = arr[i].comment || '';
- cells[i][8] = '';
- cells[i][9] = (arr[i].type == 3) ? sumWithoutVat : '';
- cells[i][10] = (arr[i].type == 1) ? sumWithoutVat : '';
- cells[i][11] = (arr[i].type == 1) ? vat : '';
- cells[i][12] = (arr[i].type == 2) ? sumWithoutVat : '';
- cells[i][13] = (arr[i].type == 2) ? vat : '';
- cells[i][14] = '';
- cells[i][15] = (arr[i].type == 4) ? sumWithoutVat : '';
- footerArray[0] = (arr[i].type == 4) ? (footerArray[0]) ? footerArray[0] + Number(sumWithoutVat) : 0 + Number(sumWithoutVat) : footerArray[0];
- footerArray[1] = (arr[i].type == 1) ? (footerArray[1]) ? footerArray[1] + Number(sumWithoutVat) : 0 + Number(sumWithoutVat) : footerArray[1];
- footerArray[2] = (arr[i].type == 1) ? (footerArray[2]) ? footerArray[2] + Number(vat) : 0 + Number(vat) : footerArray[2];
- footerArray[3] = (arr[i].type == 2) ? (footerArray[3]) ? footerArray[3] + Number(sumWithoutVat) : 0 + Number(sumWithoutVat) : footerArray[3];
- footerArray[4] = (arr[i].type == 2) ? (footerArray[4]) ? footerArray[4] + Number(vat) : 0 + Number(vat) : footerArray[4];
- filloutput(cells[i]);
- strArray.push('<div class="table-row">')
- for (var a = 0; a < cells[i].length; a++) {
- strArray.push('<div class="table-cell">' + cells[i][a] + '</div>');
- }
- strArray.push('</div>');
- }
- for (var f = 3; f < footerFullSum.childElementCount; f++) {
- footerFullSum.children[f].innerHTML = (footerArray[f - 3]) ? (footerArray[f - 3]).toFixed(2) : ' ';
- }
- table.innerHTML = strArray.join('');
- }
- function filloutput(arr) {
- var NumberZDDS = document.getElementById('InZDDS').innerHTML;
- output.push(addingSymbol(NumberZDDS, 15) + addingSymbol(arr[1], 4) + addingSymbol(arr[0], 15) + addingSymbol(arr[2], 2) + addingSymbol(arr[3], 20) + addingSymbol(arr[4], 8) +
- addingSymbol(arr[5], 15) + addingSymbol(arr[6], 50) + addingSymbol(arr[7], 30) + addingSymbol(Number(arr[9]).toFixed(2), 15) + addingSymbol(Number(arr[10]).toFixed(2), 15) +
- addingSymbol(Number(arr[11]).toFixed(2), 15) + addingSymbol(Number(arr[12]).toFixed(2), 15) + addingSymbol(Number(arr[13]).toFixed(2), 15) + addingSymbol(Number(arr[14]).toFixed(2), 15) +
- addingSymbol(Number(arr[15]).toFixed(2), 15) + addingSymbol(arr[8], 2) + '\r\n');
- //(NumberZDDS.length < 15) ? output.push(NumberZDDS + addingSymbol(15 - NumberZDDS).length, ' ') : NumberZDDS; // ИН по ЗДДС
- //output.push(document.getElementById('DanPer').innerHTML); // Данъчен период
- //(String(arr[1]).length < 4) ? output.push(arr[1] + addingSymbol(4 - String(arr[1].length), ' ')) : output.push(arr[1]); // клон
- //(String(arr[0]).length < 15) ? output.push(arr[0] + addingSymbol(15 - String(arr[0]).length, ' ')) : output.push(arr[0]); // пореден номер
- //output.push(arr[2]); // вид на документа
- //(String(arr[3]).length < 20) ? output.push(arr[3] + addingSymbol(20 - String(arr[3].length), ' ')) : output.push(arr[3]); // Номер на документа
- //output.push(arr[4]); // дата на документа
- //(String(arr[5]).length < 15) ? output.push(arr[5] + addingSymbol(15 - String(arr[5].length), ' ')) : output.push(arr[5]); // ИН на лицето
- //(String(arr[6]).length < 50) ? output.push(arr[6] + addingSymbol(50 - String(arr[6].length), ' ')) : output.push(arr[6]); // Име на лицето
- //(String(arr[7]).length < 30) ? output.push(arr[7] + addingSymbol(30 - String(arr[7].length), ' ')) : output.push(arr[7]);// Вид на стоката
- //(String(arr[9]).length < 15 && String(arr[9]) == '') ? output.push(Number(arr[9].toFixed(2)) + addingSymbol(11 - String(arr[9].length), ' ')) : (String(arr[9]).length < 15 && String(arr[9]) != '')? output.push(arr[9] + addingSymbol(12 - String(arr[9].length))) : output.push(arr[9]) // ДО без ПДК
- //(String(arr[10]).length < 15) ? output.push(arr[10] + addingSymbol(15 - String(arr[10].length), ' ')) : output.push(arr[10]); // ДО с ПДК
- //(String(arr[11]).length < 15) ? output.push(arr[11] + addingSymbol(15 - String(arr[11].length), ' ')) : output.push(arr[11]); // ДДЗ с ПДК
- //(String(arr[12]).length < 15) ? output.push(arr[12] + addingSymbol(15 - String(arr[12].length), ' ')) : output.push(arr[12]); // ДО с ЧДК
- //(String(arr[13]).length < 15) ? output.push(arr[13] + addingSymbol(15 - String(arr[13].length), ' ')) : output.push(arr[13]); // ДДЗ с ЧДК
- //(String(arr[14]).length < 15) ? output.push(arr[14] + addingSymbol(15 - String(arr[14].length), ' ')) : output.push(arr[14]); // Годишни корекции по член 73
- //(String(arr[15]).length < 15) ? output.push(arr[15] + addingSymbol(15 - String(arr[15].length), ' ')) : output.push(arr[15]); // ДО тристранни операции
- //(String(arr[8]).length < 2) ? output.push(arr[8] + addingSymbol(2 - String(arr[8].length), ' ')) : output.push(arr[8]);// Доставка по чл. 163а
- //output.push('\r\n');
- }
- showReference.onclick = checkIfDatesInputAreActive;
- function checkIfDatesInputAreActive() {
- var firstDateArr = (firstDateInput.value).split('-'),
- secDateArr = (secDateInput.value).split('-');
- if (firstDateInput.value && secDateInput.value) {
- document.getElementById('DanPer').innerHTML = secDateArr[2] + secDateArr[1];
- //sending request for documents at given
- sendRequestToServer(['documents', 'ЛЕЙДИ СОФИЯ АД', firstDateArr.reverse().join(''), secDateArr.reverse().join(''), '', 'forward', '{"doc":"+ФЕ"}', 'false'], 'documents');
- }
- }
- function saveFile(obj) {
- var filename = 'POKUPKI.txt',
- blob = new Blob([obj], { type: 'text/plain' }),
- a = document.getElementById('a');
- a.href = webkitURL.createObjectURL(blob);
- a.download = filename;
- a.click();
- }
- function addingSymbol(str, num) {
- if (typeof str != 'string') str = String(str);
- var len = num - str.length,
- spaceArray = [str];
- for (var i = 0; i < len; i++) spaceArray.push(' ');
- return spaceArray.join('');
- }
- var datePickerBtns = document.querySelectorAll('.open-date-picker');
- for (var i = 0; i < datePickerBtns.length; i++) {
- datePickerBtns[i].onclick = generateDateForm;
- }
- function generateDateForm(ev) {
- var datePicker = document.getElementById('date-picker');
- //Set the main structure of the date-picker element;
- datePicker.innerHTML = '<div><button>◄</button><span></span><button>►</button></div><span class="hor-line"></span><div id="date-picker-week"><span>Sun</span>' +
- '<span>Mon</span><span>Tue</span><span>Wed</span><span>Thu</span><span>Fri</span><span>Sat</span></div><span class="hor-line"></span><div id="date-picker-days"></div>';
- var monthNames = ["January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"],
- month = datePicker.querySelectorAll('span')[0],
- startOrEndDate = this.previousSibling,
- currentMonth = Number(startOrEndDate.value.substr(3, 2)) - 1,
- currentYear = Number(startOrEndDate.value.substr(6, 4));
- if (datePicker.style.display == 'inline-block' && datePicker.style.left == Math.floor(this.offsetLeft - datePicker.offsetWidth / 2) + 'px') {
- datePicker.style.display = 'none';
- return;
- }
- datePicker.style.display = 'inline-block';
- datePicker.style.left = Math.floor(this.offsetLeft - (datePicker.offsetWidth / 2)) + 'px';
- datePicker.style.top = (this.offsetTop + 23) + 'px';
- month.innerHTML = monthNames[currentMonth] + ' - ' + currentYear;
- //Change months
- document.querySelectorAll('#date-picker button')[0].onclick = function () {
- if (currentMonth > 0) {
- currentMonth -= 1;
- }
- else {
- currentMonth = 11;
- currentYear -= 1;
- }
- month.innerHTML = monthNames[currentMonth] + ' - ' + currentYear;
- generateDays(currentMonth, currentYear);
- }
- document.querySelectorAll('#date-picker button')[1].onclick = function () {
- if (currentMonth < 11) {
- currentMonth += 1;
- }
- else {
- currentMonth = 0;
- currentYear += 1;
- }
- month.innerHTML = monthNames[currentMonth] + ' - ' + currentYear;
- generateDays(currentMonth, currentYear);
- }
- //Click on day to pick date
- datePicker.onclick = function (ev) {
- var target = (typeof (event) != 'undefined') ? event.srcElement : ev.target;
- if (target.className == 'active-day') {
- var inputMonth = (Number(currentMonth) + 1 > 9) ? Number(currentMonth) + 1 : 0 + '' + (Number(currentMonth) + 1),
- inputDay = (target.innerHTML > 9) ? target.innerHTML : 0 + '' + target.innerHTML;
- startOrEndDate.value = inputDay + '-' + inputMonth + '-' + currentYear;
- datePicker.style.display = 'none';
- }
- }
- //Add days from current month, previous month (if current month starts from week day different from Sunday)
- //and next month (if there is empty space at the end of the last row with days)
- function generateDays(chosenMonth, chosenYear) {
- var activeMonth = new Date(chosenYear, chosenMonth),
- currentMonthDays = getDaysInMonth(chosenMonth, chosenYear).length,
- prevMonthDays = getDaysInMonth(chosenMonth - 1, chosenYear).length,
- wrapper = [],
- nextMonthDays = 0;
- for (var z = 0; z < activeMonth.getDay() ; z++) {
- wrapper.push('<span class="inactive-day">' + ((prevMonthDays + 1) - (activeMonth.getDay() - z)) + '</span>');
- nextMonthDays++;
- }
- for (var i = 1; i <= currentMonthDays; i++) {
- wrapper.push('<span class="active-day">' + i + '</span>');
- nextMonthDays++;
- }
- lastDaysLength = (nextMonthDays <= 35) ? 35 : 42;
- lastDaysLength = ((nextMonthDays + activeMonth.getDay()) == 28) ? 28 : lastDaysLength;
- for (var h = 1; h <= lastDaysLength - nextMonthDays; h++) {
- wrapper.push('<span class="inactive-day">' + h + '</span>');
- }
- document.getElementById('date-picker-days').innerHTML = wrapper.join('');
- }
- generateDays(currentMonth, currentYear);
- //Get the number of days in month
- function getDaysInMonth(month, year) {
- var month = month;
- if (month < 0) {
- month = 11;
- year -= year;
- }
- var date = new Date(year, month, 1),
- days = [];
- while (date.getMonth() === month) {
- days.push(new Date(date));
- date.setDate(date.getDate() + 1);
- }
- return days;
- }
- document.onclick = function (ev) {
- var target = (typeof (event) != 'undefined') ? event.srcElement : ev.target;
- while (target) {
- if (target.id == 'date-picker' || target.className == 'open-date-picker') {
- return;
- };
- target = target.parentNode
- }
- datePicker.style.display = 'none';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement