Mitko_jos

delivery.js

Nov 8th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.20 KB | None | 0 0
  1. ///// <reference path="../jquery-3.1.1.min.js" />
  2. //var dataView = [];
  3. //var index = 0;
  4. var grid = [];
  5. var template = $('#DeliveryDinamicTableDivMs').html();
  6. //var selectedCell;
  7. //var data = [];
  8. //var searchCriteria = [];
  9. //var selectedRow = 0;
  10. //var validColumns = [];//"sifra","kolicina"
  11. //var robaUslugaOptions;
  12. //var currencyOptions;
  13. //var msanOptions;
  14. //var programOptions;
  15. //var backQueue = [];
  16. //var forwardQueue = [];
  17. //var gridName = "Dinamic_grid"; //grid
  18. //var columns = [];
  19. //var searchString = "";
  20. //var newGrid = [];
  21. //var NewComponent;
  22. //var calculationColumns;
  23. var radioButtonValueGlobal = " ";
  24. var date1 = " ";
  25. var date2 = " ";
  26. var as = [];
  27. var data;
  28. $(function () {
  29. $("#datepicker1").datepicker({
  30. //dateFormat: 'dd/mm/yy',
  31. showOn: "button",
  32. buttonImage: "images/calendar.gif",
  33. buttonImageOnly: true,
  34. buttonText: "Select date",
  35. onSelect: function (date) {
  36.  
  37. date1 = date;
  38.  
  39. }
  40. });
  41.  
  42. $("#datepicker2").datepicker({
  43. //dateFormat: 'dd/mm/yy',
  44. showOn: "button",
  45. buttonImage: "images/calendar.gif",
  46. buttonImageOnly: true,
  47. buttonText: "Select date",
  48. onSelect: function (date) {
  49. date2 = date;
  50. }
  51. });
  52.  
  53.  
  54. MakePlanDelivery();
  55.  
  56. getCheckedRadio();
  57.  
  58.  
  59. });
  60.  
  61. function TakeMonthFromDateString(date) {
  62. var tmp = date.split('/');
  63. var month = tmp[1];
  64. return month;
  65. }
  66.  
  67. function GenerateColumsMonthly(date1, date2) {
  68.  
  69. var split_date1 = date1.split("/");
  70. var split_date2 = date2.split("/");
  71.  
  72. var beginDate = moment("" + split_date1[0] + " " + "" + split_date1[1] + " " + "" + split_date1[2], "MM DD YYYY");
  73. var endDate = moment("" + split_date2[0] + " " + "" + split_date2[1] + " " + "" + split_date2[2], "MM DD YYYY");
  74. var MonthCount = Math.floor(endDate.diff(beginDate, "months"));
  75. var i = 1;
  76. while (i <= MonthCount) {
  77. appendColumn1Months(i);
  78. i++;
  79. }
  80.  
  81. }
  82.  
  83. function QuatersCountDiff(date1, date2) {
  84. var split_date1 = date1.split("/");
  85. var split_date2 = date2.split("/");
  86.  
  87. var beginDate = moment("" + split_date1[0] + " " + "" + split_date1[1] + " " + "" + split_date1[2], "DD MM YYYY");
  88. var endDate = moment("" + split_date2[0] + " " + "" + split_date2[1] + " " + "" + split_date2[2], "DD MM YYYY");
  89. var countDiff = Math.floor(endDate.diff(beginDate, "months") / 3);
  90. return countDiff;
  91. }
  92.  
  93. function GenerateColumsQuarterly(date1, date2) {
  94. var countQuaters = QuatersCountDiff(date1, date2);
  95. var i = 0;
  96. while (i < countQuaters) {
  97. appendColumn1();
  98. i++;
  99. }
  100. }
  101.  
  102. function DevidePeriodMode(date1, date2) {
  103. if (radioButtonValueGlobal == "monthly") {
  104. createMonths(new Date(date1), new Date(date2));
  105. } else {
  106. createQuartals(new Date(date1), new Date(date2));
  107. }
  108.  
  109. }
  110.  
  111.  
  112.  
  113. function RenderPlanDeal() {
  114.  
  115. InitMockData();
  116.  
  117.  
  118. // var parsered=Mustache.parse(template); // optional, speeds up future uses
  119. // var rendered = Mustache.render(template);
  120. //var to_Html1 = Mustache.to_html(data[index], template);
  121. //$('#template-container').html(template);
  122. //var to_Html1 = Mustache.to_html(data[index], template);
  123. var rendered = Mustache.render(template, data[index]);
  124. $('#template-container').html(rendered);
  125. console.log(typeof rendered);
  126. DevidePeriodMode(date1, date2);
  127. NextPreviousPeriod(date1, date2);
  128. //var template = $("#DeliveryDinamicTableDivMs").html();
  129. //var html = Mustache.to_html(template, data[index]);
  130. //$('#template-container').html(html);
  131. // console.log(QuatersCountDiff(date1, date2));
  132. // DevidePeriodMode(date1, date2);
  133.  
  134. // createQuartals(new Date(date1), new Date(date2));
  135.  
  136. // GenerateColumsMonthly(date1, date2);
  137.  
  138. //createMonths(new Date(date1), new Date(date2));
  139. }
  140.  
  141. function MakePlanDelivery() {
  142. $("#btnMakePlan").click(function () {
  143. RenderPlanDeal();
  144.  
  145. });
  146.  
  147.  
  148. }
  149.  
  150. function InitMockData() {
  151. data[index] = [];
  152. data[index].push(Mapping(CreateNewItem("ask169", "group69", "soft69", 9999.65, 55663.65)));
  153. data[index].push(Mapping(CreateNewItem("ask169", "group69", "soft69", 9999.65, 55663.65)));
  154. data[index].push(Mapping(CreateNewItem("ask169", "group69", "soft69", 9999.65, 55663.65)));
  155. data[index].push(Mapping(CreateNewItem("ask1", "group", "soft1", 55663.65, 55663.65)));
  156. data[index].push(Mapping(CreateNewItem("ask2", "group", "soft2", 55663.65, 55663.65)));
  157. data[index].push(Mapping(CreateNewItem("ask3", "group", "soft3", 556632.65, 556632.65)));
  158. data[index].push(Mapping(CreateNewItem("ask4", "group", "soft4", 556632.65, 556632.65)));
  159. data[index].push(Mapping(CreateNewItem("ask5", "group", "soft5", 556632.65, 556632.65)));
  160. data[index].push(Mapping(CreateNewItem("ask6", "group", "soft6", 556632.65, 556632.65)));
  161. data[index].push(Mapping(CreateNewItem("ask169", "group69", "soft69", 9999.65, 55663.65)));
  162.  
  163. data[index].push(Mapping(CreatePriceStructureNewItem("ask2", "group", "soft2", 55663.65, 55663.65)));
  164. data[index].push(Mapping(CreatePriceStructureNewItem("ask3", "group", "soft3", 556632.65, 556632.65)));
  165. data[index].push(Mapping(CreatePriceStructureNewItem("ask4", "group", "soft4", 556632.65, 556632.65)));
  166. data[index].push(Mapping(CreateNewItem("ask5", "group", "soft5", 556632.65, 556632.65)));
  167. data[index].push(Mapping(CreateNewItem("ask6", "group", "soft6", 556632.65, 556632.65)));
  168.  
  169. }
  170.  
  171. // var radioBtn_value = document.getElementById('radio1').value;
  172.  
  173. function getCheckedRadio() {
  174. // var radioButtons = document.getElementsByName('planning');
  175.  
  176. $('input[name=planning]').click(function () {
  177. var tmp = ($('input[name=planning]:checked').val());
  178. // console.log(tmp);
  179. radioButtonValueGlobal = tmp;
  180. console.log(radioButtonValueGlobal);
  181. //return radioButtonValueGlobal;
  182.  
  183. });
  184.  
  185. }
  186.  
  187.  
  188. function PreparingPlan(date1, date2) {
  189.  
  190. //if (tmp_global == "monthly") {
  191.  
  192. // var timeSpan = date2.val() - date1.val();
  193. // console(timeSpan);
  194.  
  195. //}
  196. //if (tmp_global == "quartarly") {
  197.  
  198.  
  199.  
  200.  
  201. //}
  202. var date11 = parseDate(date1);
  203. var date21 = parseDate(date2);
  204.  
  205. var timeDiff = 0;
  206.  
  207. timeDiff = daydiff(date11, date21);
  208. // console.log(timeDiff);
  209. for (var i = 0; i < timeDiff; i++) {
  210. if (i > 30)
  211. appendColumn1();
  212. }
  213. //var timeSpan = date2 - date1;
  214. //return timeSpan;
  215. }
  216.  
  217. function parseDate(str) {
  218. var mdy = str.split('/');
  219. return new Date(mdy[2], mdy[0] - 1, mdy[1]);
  220. }
  221.  
  222. function daydiff(first, second) {
  223. return Math.round((second - first) / (1000 * 60 * 60 * 24));
  224. }
  225.  
  226.  
  227.  
  228. function appendColumn1Months(number,year) {
  229. $('#table-resurse tr').append($("<td>"));
  230. $('#table-resurse thead tr>td:last').html("" + moment().month(number).format('MMM')+" "+year);
  231. $('#table-resurse tbody tr').each(function () { $(this).children('td:last').append($(' ')) });
  232. }
  233.  
  234.  
  235. function appendColumn1Quartals(number, year) {
  236. $('#table-resurse tr').append($("<td>"));
  237. $('#table-resurse thead tr>td:last').html("Q"+number+"/"+year);
  238. $('#table-resurse tbody tr').each(function () { $(this).children('td:last').append($(' ')) });
  239. }
  240.  
  241. function appendColumn1() {
  242. $('#table-resurse tr').append($("<td>"));
  243. $('#table-resurse thead tr>td:last').html("new col");
  244. $('#table-resurse tbody tr').each(function () { $(this).children('td:last').append($(' ')) });
  245. }
  246.  
  247. //$('#irow').click(function () {
  248. // if ($('#row').val()) {
  249. // $('#mtable tbody').append($("#mtable tbody tr:last").clone());
  250. // $('#mtable tbody tr:last :checkbox').attr('checked', false);
  251. // $('#mtable tbody tr:last td:first').html($('#row').val());
  252. // } else { alert('Enter Text'); }
  253. //});
  254.  
  255. function appendColumn() {
  256. var tbl = document.getElementById('table-resurse'), // table reference
  257. i;
  258. // open loop for each row and append cell
  259. for (i = 0; i < tbl.rows.length; i++) {
  260. createCell(tbl.rows[i].insertCell(tbl.rows[i].cells.length), " ", 'col');
  261. }
  262. }
  263.  
  264. // create DIV element and append to the table cell
  265. function createCell(cell, text, style) {
  266. var div = document.createElement('div'), // create DIV element
  267. txt = document.createTextNode(text); // create text node
  268. div.appendChild(txt); // append text node to the DIV
  269. div.setAttribute('class', style); // set DIV class attribute
  270. div.setAttribute('className', style); // set DIV class attribute for IE (?!)
  271. cell.appendChild(div); // append DIV to the table cell
  272. }
  273.  
  274. function NextPreviousPeriod(date1,date2) {
  275. if (radioButtonValueGlobal == "monthly") {
  276. $("#btnPreviousPeriod").click(function () {
  277.  
  278. var test_date1 = new Date(date1);
  279. test_date1.setMonth(test_date1.getMonth() - 1);
  280.  
  281. var test_date2 = new Date(date2);
  282. test_date2.setMonth(test_date2.getMonth() - 1);
  283. createMonths(new Date(test_date1), new Date(test_date2));
  284. });
  285.  
  286. $("#btnNextPeriod").click(function () {
  287.  
  288. var test_date1 = new Date(date1);
  289. test_date1.setMonth(test_date1.getMonth() + 1);
  290.  
  291. var test_date2 = new Date(date2);
  292. test_date2.setMonth(test_date2.getMonth() + 1);
  293. createMonths(new Date(test_date1), new Date(test_date2));
  294. });
  295. } else {
  296. $("#btnPreviousPeriod").click(function () {
  297.  
  298.  
  299. });
  300.  
  301. $("#btnNextPeriod").click(function () {
  302.  
  303.  
  304. });
  305. }
  306.  
  307.  
  308.  
  309. }
  310.  
  311.  
  312. //quartals
  313. function createQuartals(startDate, endDate) {
  314. var quartalList = [];
  315. //Calculate frst quartal containing start date.
  316. var currentDate = findQuartal(startDate, quartalList);
  317.  
  318. if (currentDate != null) {
  319. //Calculate other quartals in the interval.
  320. while (endDate > currentDate) {
  321. findQuartal(currentDate, quartalList);
  322. currentDate = new Date(currentDate.setMonth(currentDate.getMonth() + 3));
  323. }
  324. }
  325. console.log(quartalList);
  326. }
  327.  
  328. function createQuartal(year, number) {
  329. return { "year": year, "number": number };
  330. }
  331.  
  332. function createQuartalInitList(year) {
  333. var quartals = [];
  334. var startDate = new Date(parseInt(year), 0, 1);
  335. for (i = 3; i >= 0; i--) {
  336. var stdate = new Date(startDate);
  337. var endDate = new Date(startDate.setMonth(startDate.getMonth() + 3) + 1);
  338. quartals.push({
  339. "StartDate": stdate,
  340. "EndDate": endDate,
  341. "Number": i + 1
  342. });
  343.  
  344. startDate = new Date(startDate.setDate(startDate.getDate()));
  345. };
  346. return quartals;
  347. }
  348.  
  349. function findQuartal(currentDate, quartalList) {
  350. var quartal = createQuartalInitList(currentDate.getFullYear());
  351. for (i = 3; i >= 0; i--) {
  352. if (quartal[i].StartDate <= currentDate && quartal[i].EndDate >= currentDate) {
  353. var startQuartal = createQuartal(currentDate.getFullYear(), i + 1);
  354. quartalList.push(startQuartal);
  355. appendColumn1Quartals(i + 1, currentDate.getFullYear());
  356. return quartal[i].EndDate;
  357. }
  358. }
  359. return null;
  360. }
  361.  
  362. //months
  363.  
  364. function createMonths(startDate, endDate) {
  365. var monthsList = [];
  366. //Calculate frst quartal containing start date.
  367. var currentDate = findMonth(startDate, monthsList);
  368.  
  369. if (currentDate != null) {
  370. //Calculate other quartals in the interval.
  371. while (endDate > currentDate) {
  372. findMonth(currentDate, monthsList);
  373. currentDate = new Date(currentDate.setMonth(currentDate.getMonth() + 1));
  374. }
  375. }
  376. console.log(monthsList);
  377. }
  378.  
  379. function createMonth(year, number) {
  380. return { "year": year, "number": number };
  381. }
  382.  
  383. function createMonthInitList(year) {
  384. var months = [];
  385. var startDate = new Date(parseInt(year), 0, 1);
  386. for (i = 12; i >= 0; i--) {
  387. var stdate = new Date(startDate);
  388. var endDate = new Date(startDate.setMonth(startDate.getMonth() +1));
  389. months.push({
  390. "StartDate": stdate,
  391. "EndDate": endDate,
  392. "Number": i
  393. });
  394.  
  395. startDate = new Date(startDate.setDate(startDate.getDate()));
  396. }
  397. return months;
  398. }
  399.  
  400. function findMonth(currentDate, monthList) {
  401. var month = createMonthInitList(currentDate.getFullYear());
  402. for (i = 12; i >= 0; i--) {
  403. if (month[i].StartDate <= currentDate && month[i].EndDate >= currentDate) {
  404. var startMonth = createMonth(currentDate.getFullYear(), i);
  405. monthList.push(startMonth);
  406. appendColumn1Months(i, currentDate.getFullYear());
  407. return month[i].EndDate;
  408. }
  409. }
  410. return null;
  411. }
  412.  
  413.  
  414.  
  415. function GenerateMonths() {
  416. var d = new Date(2015, 11, 31);
  417. d.setDate(d.getDate() + 1);
  418. for (i = 1; i < 13; i++) {
  419. d.setMonth(d.getMonth() + 1);
  420. d.setDate(1);
  421. d.setDate(d.getDate() - 1);
  422. console.log(d.getDate() + "-" + ("0" + (d.getMonth() + 1)).slice(-2) + '-' + d.getFullYear());
  423. d.setDate(d.getDate() + 1);
  424. }
  425.  
  426. }
  427.  
  428.  
  429. function CheckInseredDataInQuartal(newItemDateQuartal, as) {
  430.  
  431. // var quarter = Math.floor((newItemDateQuartal.getMonth() + 3) / 3);
  432.  
  433.  
  434. var i = 0;
  435. while (Quartal[i].EndDate < newItemDateQuartal.EndDate) {
  436.  
  437. i++;
  438. }
  439. as.push(newItemDateQuartal);
  440.  
  441. }
  442.  
  443. /*
  444. while(lastQ.enddate < enddate) {
  445. lastQ=LastQ + 3*months(nextQ);
  446. as.add(lastQ);
  447. }
  448.  
  449. */
  450. function Mapping(item2) {
  451.  
  452. // var item1 = CustomPriceStructureNewItems(item2["id"], item2["naziv"], item2["program"], item2["rola"], item2["ukupniUlaz"], item2["ukupniUlazZT"]);
  453. var item1 = {
  454. "id": item2["id"],
  455. "ime_komponenta": item2["naziv"],
  456. "grupa": item2["program"],
  457. "rola": item2["rola"],
  458.  
  459. "izracunska": item2["ukupniUlaz"],
  460. "vkupno": item2["ukupniUlazZT"],
  461. "indent": item2["indent"],
  462. "parent": item2["parent"],
  463. "isPriceStructure": item2["isPriceStructure"]
  464. };
  465. //item1["id"] = item2["id"];
  466. //item1["grupa"] = item2["program"];
  467. //item1["rola"] = item2["rola"];
  468. //item1["ime_komponenta"] = item2["naziv"];
  469. //item1["izracunska"] = item2["ukupniUlaz"];
  470. //item1["vkupno"] = item2["ukupniUlazZT"];
  471. //item1["indent"] = item2["indent"];
  472. //item1["parent"] = item2["parent"];
  473. //item1["isPriceStructure"] = item2["isPriceStructure"];
  474. return item1;
  475. }
  476.  
  477. function CustomPriceStructureNewItems(id, name, group, role, calculation, sum) {
  478.  
  479. var item = {
  480. "id": id,
  481. "grupa": group,
  482. "rola": role,
  483. "ime_komponenta": name,
  484. "izracunska": calculation,
  485. "vkupno": sum,
  486. "indent": 0,
  487. "parent": null,
  488. "isPriceStructure": true
  489. };
  490.  
  491. return item;
  492. }
  493.  
  494.  
  495. function CreatePriceStructureNewItem(name, group, role, calculation, sum) {
  496. var item = {
  497. "id": 2,
  498. "naziv": name,
  499. "program": group,
  500. "rola": role,
  501. "jedinecniUlazLP": 0,
  502. "jedinecniUlaz": 0,
  503. "ukupniUlaz": calculation,
  504. "ukupniUlazZT": sum,
  505. "msanNabavnaJC": 0,
  506. "msanNabavna": 0,
  507. "jc": 0,
  508. "izlaz": 0,
  509. "kingRuc": 0,
  510. "rucNaUcSaZt": 0,
  511. "rucNaUcBezZt": 0,
  512. "msanRuc": 0,
  513. "rekapKol": 0,
  514. "totalKol": 0,
  515. "bundleIzlaz": 0,
  516. "bundleUlaz": 0,
  517. "bundleRuc": 0,
  518. "prgIzlaz": 0,
  519. "indent": 0,
  520. "parent": null,
  521. "isPriceStructure": true
  522. };
  523. return item;
  524. }
  525.  
  526. function CreateNewItem(name, group, role, calculation, sum) {
  527. var item = {
  528. "id": 1,
  529. "naziv": name,
  530. "program": group,
  531. "rola": role,
  532. "jedinecniUlazLP": 0,
  533. "jedinecniUlaz": 0,
  534. "ukupniUlaz": calculation,
  535. "ukupniUlazZT": sum,
  536. "msanNabavnaJC": 0,
  537. "msanNabavna": 0,
  538. "jc": 0,
  539. "izlaz": 0,
  540. "kingRuc": 0,
  541. "rucNaUcSaZt": 0,
  542. "rucNaUcBezZt": 0,
  543. "msanRuc": 0,
  544. "rekapKol": 0,
  545. "totalKol": 0,
  546. "bundleIzlaz": 0,
  547. "bundleUlaz": 0,
  548. "bundleRuc": 0,
  549. "prgIzlaz": 0,
  550. "indent": 0,
  551. "parent": 2,
  552. "isPriceStructure": false
  553. };
  554. return item;
  555. }
  556.  
  557. function initializeDinamicDeliveryColumns() {
  558. return [
  559. { id: "#", name: "", width: 40, behavior: "selectAndMove", selectable: false, resizable: true, cssClass: "cell-reorder dnd" },
  560. { id: "naziv", name: resource_PriceStructureTable_Grupa, field: "naziv", width: 220, cssClass: "cell-title ", formatter: TaskNameFormatter, editor: Slick.Editors.Text, validator: requiredFieldValidator },
  561. { id: "rola", name: resource_PriceStructureTable_Rola, width: 80, minWidth: 20, maxWidth: 80, cssClass: "cell-effort-driven", field: "rola", formatter: Slick.Formatters.Text, editor: Slick.Editors.Text, cannotTriggerInsert: true },
  562. { id: "ukupniUlaz", name: resource_PriceStructureTable_UkupniUlaz, field: "ukupniUlaz", minWidth: 60 }
  563. // { id: "ukupno", name: resource_PriceStructureTable_Ukupno, field: "ukupno", minWidth: 60 }
  564. ];
  565. }
  566.  
  567. // var NewDinamicDeliveryComponent = function (id, naziv, parent, indent, isPriceStructure) {
  568. // var newItem = {
  569. // "id": id,
  570. // "naziv": naziv,
  571. // "robausluga": '',
  572. // "ukupniUlaz": 0,
  573. // "ukupno": 0,
  574. // "indent": indent,
  575. // "parent": parent,
  576. // "isPriceStructure": isPriceStructure
  577. // };
  578. // return newItem;
  579. // }
  580.  
  581. // function calculateDinamicDeliveryPriceStructure(item) {
  582.  
  583. // item.ukupniUlaz = 0;
  584. // item.ukupniUlazZT = 0;
  585.  
  586. // for (var i = item.id; i < data[index].length; i++) {
  587. // if (item.id == data[index][i].parent) {
  588. // (item.ukupniUlaz) += parseDecimalComma(data[index][i].ukupniUlaz);
  589. // (item.ukupniUlazZT) += parseDecimalComma(data[index][i].ukupniUlazZT);
  590. // (item.msanNabavnaJC) += parseDecimalComma(data[index][i].msanNabavnaJC);
  591. // (item.msanNabavna) += parseDecimalComma(data[index][i].msanNabavna);
  592. // (item.izlaz) += parseDecimalComma(data[index][i].izlaz);
  593. // (item.kingRuc) += parseDecimalComma(data[index][i].kingRuc);
  594. // (item.rucNaUcSaZt) += parseDecimalComma(data[index][i].rucNaUcSaZt);
  595. // (item.rucNaUcBezZt) += parseDecimalComma(data[index][i].rucNaUcBezZt);
  596. // (item.msanRuc) += parseDecimalComma(data[index][i].msanRuc);
  597. // (item.rekapKol) += parseDecimalComma(data[index][i].rekapKol);
  598. // (item.totalKol) += parseDecimalComma(data[index][i].totalKol);
  599. // (item.bundleIzlaz) += parseDecimalComma(data[index][i].bundleIzlaz);
  600. // (item.bundleUlaz) += parseDecimalComma(data[index][i].bundleUlaz);
  601. // (item.bundleRuc) += parseDecimalComma(data[index][i].bundleRuc);
  602. // (item.prgIzlaz) += parseDecimalComma(data[index][i].prgIzlaz);
  603. // }
  604. // }
  605.  
  606. // item.jedinecniUlazLP = parseFloat(item.jedinecniUlazLP).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  607. // item.jedinecniUlaz = parseFloat(item.jedinecniUlaz).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  608. // item.ukupniUlaz = parseFloat(item.ukupniUlaz).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  609. // item.ukupniUlazZT = parseFloat(item.ukupniUlazZT).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  610. // item.msanNabavnaJC = parseFloat(item.msanNabavnaJC).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  611. // item.msanNabavna = parseFloat(item.msanNabavna).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  612. // item.jc = parseFloat(item.jc).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  613. // item.izlaz = parseFloat(item.izlaz).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  614. // item.kingRuc = parseFloat(item.kingRuc).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  615. // item.rucNaUcSaZt = parseFloat(item.rucNaUcSaZt).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  616. // item.rucNaUcBezZt = parseFloat(item.rucNaUcBezZt).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  617. // item.msanRuc = parseFloat(item.msanRuc).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  618. // item.rekapKol = parseFloat(item.rekapKol).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  619. // item.totalKol = parseFloat(item.totalKol).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  620. // item.bundleIzlaz = parseFloat(item.bundleIzlaz).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  621. // item.bundleUlaz = parseFloat(item.bundleUlaz).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  622. // item.bundleRuc = parseFloat(item.bundleRuc).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  623. // item.prgIzlaz = parseFloat(item.prgIzlaz).toLocaleString("HR-hr", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  624. // return item;
  625. // }
  626.  
  627. var Denamic_Delivery_options = {
  628. editable: true,
  629. enableAddRow: false,
  630. enableCellNavigation: true,
  631. asyncEditorLoading: false,
  632. forceFitColumns: false,
  633. autoHeight: true,
  634. autoEdit: false,
  635. editCommandHandler: queueAndExecuteCommand,
  636. frozenColumn: 3
  637. };
  638.  
  639.  
  640. // $(function () {
  641. // var windowSize = $(window).width() * 0.95;
  642. // $(".slickgrid_5209891").css('width', 3800);
  643. // DinamicDeliveryinitializeCachedData();
  644.  
  645. // $(".slickgrid_5209891").css('width', '');
  646. // });
  647.  
  648.  
  649. // function DinamicDeliveryinitializeCachedData() {
  650. // $.when(
  651. // $.ajax({
  652. // url: "CalculationTable/GetRobaUsluga",
  653. // type: "get",
  654. // success: function (data) {
  655. // robaUslugaOptions = data;
  656. // },
  657. // error: function () {
  658.  
  659. // }
  660. // }),
  661. // $.ajax({
  662. // url: "CalculationTable/GetCurrency",
  663. // type: "get",
  664. // success: function (data) {
  665. // currencyOptions = data;
  666. // },
  667. // error: function () {
  668.  
  669. // }
  670. // }),
  671.  
  672.  
  673. // //$.ajax({
  674. // // url: "CalculationTable/GetCurrencyRates",
  675. // // type: "get",
  676. // // success: function (data) {
  677. // // var result = JSON.parse(data);
  678. // // for (var i = 0; i < result.length; i++) {
  679. // // currency[result[i].Symbol] = result[i].ExchangeRate;
  680. // // };
  681.  
  682. // // },
  683. // // error: function () {
  684.  
  685. // // }
  686. // //}),
  687. // $.ajax({
  688. // url: "CalculationTable/GetDisabledColumns",
  689. // type: "get",
  690. // success: function (data) {
  691. // validColumns = data;
  692. // },
  693. // error: function () {
  694.  
  695. // }
  696. // })).done(function () {
  697. // if (gridName == "Dinamic_grid") {
  698. // calculationColumns = initializeDinamicDeliveryColumns();
  699. // columns = calculationColumns;
  700. // NewComponent = NewDinamicDeliveryComponent;
  701. // }
  702. // else if (gridName == "segrid") {
  703. // columns = smartColumns;
  704. // NewComponent = NewSmartComponent;
  705. // }
  706. // loadTempCalculations1();
  707. // });
  708. // }
  709.  
  710. //function loadTempCalculations1() {
  711. // $.ajax({
  712. // type: "POST",
  713. // url: domainUrl + "/calculation/OpenAllDraftCalculation",
  714. // success: function (data) {
  715. // if (data != null && data.length > 0) {
  716. // showCalculationTab();
  717. // for (i = 0; i < data.length; i++) {
  718. // data[i].index = i;
  719. // addCalculationTab1(data[i], "CalculationTabs", "CalculationTabsContent", data[i].index, data[i].Name + '*', 'tab' + data[i].index + ' content', 'fa-file-o');
  720. // }
  721. // $('#CalculationTabs li:eq(0) a').tab('show');
  722. // }
  723. // index = 0;
  724. // },
  725. // error: function (jqXhr, textStatus, errorThrown) {
  726. // console.log(textStatus);
  727. // }
  728. // });
  729. //}
  730.  
  731. //function addCalculationTab1(data, tabsContainerId, tabsContentContainerId, tabNumber, header, content, statusIconClass) {
  732.  
  733. // createTabContent(data, tabsContainerId, tabsContentContainerId, tabNumber, header, content, statusIconClass);
  734.  
  735. // loadTabData1(data, tabNumber);
  736. //}
  737.  
  738.  
  739. //function createTabContent(data, tabsContainerId, tabsContentContainerId, tabNumber, header, content, statusIconClass) {
  740. // var newTabId = 'calcTab' + tabNumber;
  741. // var newTabContentId = 'tab' + tabNumber;
  742.  
  743. // // create the tab
  744. // $('<li><a id="' + newTabId + '" href="#' + newTabContentId + '" data-toggle="tab" ><i class="fa ' + statusIconClass + '" style="margin-right:1em;"></i>' + header + '<i class="fa fa-close" style="margin-left:1em;" data-toggle="modal" data-target="#CLoseTabDialog"></i></a></li>').appendTo('#' + tabsContainerId);
  745.  
  746. // // create the tab content
  747. // $('<div class="tab-pane" id="' + newTabContentId + '">' + content + '</div>').appendTo('#' + tabsContentContainerId);
  748.  
  749. // var template = $("#DeliveryDinamicTableDivMs").html();
  750. // var html = Mustache.to_html(template, data);
  751. // $('#' + newTabContentId).html(html);
  752. //}
  753.  
  754.  
  755.  
  756.  
  757. // function initializeDinamicDeliveryGrid(nameGrid, newindex) {
  758. // if (newindex != null && newindex != undefined)
  759. // index = newindex;
  760. // var indent = 0;
  761. // var parents = [];
  762. // data.push([]);
  763. // data[index] = [];
  764.  
  765. // var editable = document.getElementById(nameGrid);
  766.  
  767.  
  768. // var pasteHandler1 = function (e, args) {
  769. // newGrid[index] = new Slick.Data.DataView({ inlineFilters: true });
  770. // var isIndent = 0;
  771. // var parentNum = null;
  772. // var indentNum = 0;
  773. // var strLength = 0;
  774. // var totalItems = 0;
  775. // var isNewPriceStructure = false;
  776. // var num = 0;
  777. // do {
  778. // if (num < selectedRow || num > selectedRow) {
  779. // var item = dataView[index].getItemById(num);
  780. // if (item.parent != null) {
  781. // item.parent = item.parent + strLength;
  782. // }
  783. // item.id = newGrid[index].getLength();
  784. // newGrid[index].addItem(item);
  785. // totalItems++;
  786. // }
  787. // else {
  788. // var pastedText = "";
  789. // if (dataView[index].getItems().length > 0) {
  790. // var item = dataView[index].getItemById(num);
  791. // newGrid[index].addItem(item);
  792. // totalItems++;
  793. // parentNum = num;
  794. // indentNum = item.indent + 1;
  795. // }
  796. // else {
  797. // isNewPriceStructure = true;
  798. // indentNum = 1;
  799. // }
  800. // if (window.clipboardData && window.clipboardData.getData) { // IE
  801. // pastedText = window.clipboardData.getData('Text');
  802. // }
  803. // else if (e.clipboardData && e.clipboardData.getData) {
  804. // pastedText = e.clipboardData.getData('text/plain');
  805. // }
  806. // var str = pastedText.split('\n');
  807.  
  808. // for (var i = 0; i < str.length - 1; i++) {
  809. // var attr = str[i].split('\t');
  810.  
  811. // var item = {
  812. // "id": newGrid[index].getLength(),
  813. // "naziv": attr[0],
  814. // "robausluga": attr[1],
  815. // "jedinecniUlaz": attr[12],
  816. // "ukupniUlaz": attr[13],
  817. // "indent": indentNum,
  818. // "parent": parentNum,
  819. // "isPriceStructure": false
  820. // };
  821. // if (item.naziv != '') {
  822. // if (isNewPriceStructure) {
  823. // var itemParent = NewComponent(newGrid[index].getLength(), attr[0], null, indentNum - 1, true);
  824. // newGrid[index].addItem(itemParent);
  825. // totalItems++;
  826. // item.parent = null;
  827. // parentNum = totalItems - 1;
  828. // strLength++;
  829. // }
  830. // item.parent = parentNum;
  831. // item.id = newGrid[index].getLength();
  832. // newGrid[index].addItem(item);
  833. // totalItems++;
  834. // isNewPriceStructure = false;
  835. // strLength++;
  836. // }
  837. // else {
  838. // isNewPriceStructure = true;
  839. // }
  840. // }
  841. // }
  842. // num++;
  843. // } while (num < dataView[index].getItems().length)
  844. // data[index] = newGrid[index].getItems();
  845. // newGrid[index].getItemMetadata = function (index) {
  846. // var item = newGrid[index].getItemById(index);
  847. // if (item.isPriceStructure === true) {
  848. // return { 'cssClasses': 'parentRow' }
  849. // }
  850. // else {
  851. // return { cssClasses: 'childRow' };
  852. // }
  853. // };
  854. // dataView[index].setItems(newGrid[index].getItems());
  855.  
  856. // newGrid[index].setFilter(myFilter);
  857. // grid[index].render();
  858. // $('.toggle.priceStructure1').parent().parent().addClass('parentRow');
  859.  
  860. // LoadComponentGrid(index);
  861. // };
  862. // editable.addEventListener('paste', pasteHandler1, false);
  863.  
  864. // removeHiddenColumns();
  865.  
  866. // // initialize the model
  867. // dataView[index] = new Slick.Data.DataView({ inlineFilters: true });
  868. // dataView[index].setFilter(myFilter);
  869.  
  870. // // initialize the grid
  871. // grid[index] = new Slick.Grid("#" + nameGrid, dataView[index], columns, options);
  872. // initSelectionModeCopyPaste(grid[index]);
  873. // grid[index].setSelectionModel(new Slick.RowSelectionModel());
  874.  
  875. // grid[index].onCellChange.subscribe(function (e, args) {
  876. // var selectedRows = grid[index].getSelectedRows();
  877. // var newValue = '';
  878. // var oldValue = commandQueue.pop();
  879. // for (var i = selectedRows.length - 1; i >= 0; i--) {
  880. // var item = dataView[index].getItem(selectedRows[i]);
  881.  
  882. // if (newValue == '')
  883. // newValue = item[columns[args.cell].id];
  884. // else {
  885. // item[columns[args.cell].id] = newValue;
  886. // }
  887. // dataView[index].updateItem(selectedRows[i], item);
  888. // var oldItem = $.extend(true, {}, item);
  889. // oldItem[columns[args.cell].id] = oldValue.prevSerializedValue;
  890. // backQueue.push([3, 1, oldItem]);
  891. // }
  892. // var parentDataContext = args.item;
  893. // while (parentDataContext.parent != null) {
  894. // var tmpDataContext = dataView[index].getItem(parentDataContext.parent);
  895. // parentDataContext = calculatePriceStructure(tmpDataContext);
  896. // dataView[index].updateItem(tmpDataContext.id, parentDataContext);
  897. // }
  898. // $('.toggle.priceStructure1').parent().parent().addClass('parentRow');
  899. // });
  900.  
  901. // grid[index].onAddNewRow.subscribe(function (e, args) {
  902. // var item = {
  903. // "id": dataView[index].getLength(),
  904. // "naziv": '',
  905. // "ukupniUlaz": 0,
  906. // "ukupno": 0,
  907. // "ukupniUlazZT": 0,
  908. // "msanNabavnaJC": 0,
  909. // "msanNabavna": 0,
  910. // "parent": null,
  911. // "isPriceStructure": true
  912. // };
  913. // newGrid[index] = new Slick.Data.DataView({ inlineFilters: true });
  914. // newGrid[index].setItems(data[index]);
  915. // $.extend(item, args.item);
  916. // dataView[index].addItem(item);
  917.  
  918. // $('.toggle.priceStructure1').parent().parent().addClass('parentRow');
  919. // });
  920.  
  921. // grid[index].onClick.subscribe(function (e, args) {
  922. // selectedRow = args.row;
  923. // selectedCell = args.cell;
  924. // if ($(e.target).hasClass("toggle")) {
  925. // var item = dataView[index].getItem(args.row);
  926. // if (item) {
  927. // if (!item._collapsed) {
  928. // item._collapsed = true;
  929. // } else {
  930. // item._collapsed = false;
  931. // }
  932.  
  933. // dataView[index].updateItem(item.id, item);
  934. // }
  935. // e.stopImmediatePropagation();
  936.  
  937. // RefreshGrid();
  938. // }
  939. // });
  940.  
  941. // // wire up model events to drive the grid[index]
  942. // dataView[index].onRowCountChanged.subscribe(function (e, args) {
  943. // grid[index].updateRowCount();
  944. // grid[index].render();
  945. // });
  946.  
  947. // dataView[index].onRowsChanged.subscribe(function (e, args) {
  948. // grid[index].invalidateRows(args.rows);
  949. // grid[index].render();
  950. // RefreshGrid();
  951. // LoadComponentGrid(index);
  952. // });
  953.  
  954. // var moveRowsPlugin = new Slick.RowMoveManager({
  955. // cancelEditOnDrag: true
  956. // });
  957.  
  958. // moveRowsPlugin.onBeforeMoveRows.subscribe(function (e, data) {
  959. // for (var i = 0; i < data.rows.length; i++) {
  960. // // no point in moving before or after itself
  961. // if (data.rows[i] == data.insertBefore || data.rows[i] == data.insertBefore - 1) {
  962. // e.stopPropagation();
  963. // return false;
  964. // }
  965. // }
  966. // return true;
  967. // });
  968.  
  969. // moveRowsPlugin.onMoveRows.subscribe(function (e, args) {
  970. // moveComponent(args.insertBefore, args.rows);
  971. // RefreshGrid();
  972. // var newRow = args.insertBefore < args.rows[0] ? args.rows[0] + 1 : args.rows[0];
  973. // var oldRow = args.insertBefore < args.rows[0] ? args.insertBefore : args.insertBefore - 1;
  974. // backQueue.push([4, newRow, $.extend(true, {}, dataView[index].getItem(oldRow))]);
  975. // });
  976.  
  977. // grid[index].registerPlugin(moveRowsPlugin);
  978.  
  979. // grid[index].onDragInit.subscribe(function (e, dd) {
  980. // // prevent the grid from cancelling drag'n'drop by default
  981. // e.stopImmediatePropagation();
  982. // });
  983.  
  984. // //$('.collapseAll').unbind('click').bind('click', function () {
  985. // // for (var i = 0; i < data[index].length; i++) {
  986. // // if (data[index][i].isPriceStructure)
  987. // // data[index][i]._collapsed = true;
  988. // // }
  989. // // dataView[index].collapseAllGroups();
  990. // // RefreshGrid();
  991. // //});
  992.  
  993. // }
  994.  
  995. // function loadTabData1(data, tabNumber) {
  996. // initializeGrid("Dinamic_grid" + data.index, data.index);
  997. // $('dinamic-cacl-container-' + data.index).enhsplitter({ position: "70%", vertical: false, collapse: "down", bottomMinSize: 0, rightMinSize: 0 });
  998.  
  999.  
  1000. // //fillData(data, tabNumber);
  1001. // LoadComponentGrid1(tabNumber);
  1002. // ChangeTab1();
  1003. // grid[index].render();
  1004. // AddCalculationId1(data.index, data.CalculationId);
  1005.  
  1006. // }
  1007.  
  1008. // function AddCalculationId1(index, calculationId) {
  1009. // data[index].CalculationId = calculationId;
  1010. // }
  1011.  
  1012.  
  1013. // function DinamicDeliveryInitSelectionModeCopyPaste(grid) {
  1014. // function FormulaEditor(args) {
  1015. // var _self = this;
  1016. // var _editor = new Slick.Editors.Text(args);
  1017. // var _selector;
  1018. // $.extend(this, _editor);
  1019. // function init() {
  1020. // // register a plugin to select a range and append it to the textbox
  1021. // // since events are fired in reverse order (most recently added are executed first),
  1022. // // this will override other plugins like moverows or selection model and will
  1023. // // not require the grid to not be in the edit mode
  1024. // _selector = new Slick.CellRangeSelector();
  1025. // _selector.onCellRangeSelected.subscribe(_self.handleCellRangeSelected);
  1026. // args.grid.registerPlugin(_selector);
  1027. // }
  1028. // this.destroy = function () {
  1029. // _selector.onCellRangeSelected.unsubscribe(_self.handleCellRangeSelected);
  1030. // grid.unregisterPlugin(_selector);
  1031. // _editor.destroy();
  1032. // };
  1033. // this.handleCellRangeSelected = function (e, args) {
  1034. // _editor.setValue(
  1035. // _editor.getValue() +
  1036. // grid.getColumns()[args.range.fromCell].name +
  1037. // args.range.fromRow +
  1038. // ":" +
  1039. // grid.getColumns()[args.range.toCell].name +
  1040. // args.range.toRow
  1041. // );
  1042. // };
  1043. // init();
  1044. // }
  1045.  
  1046.  
  1047. // // grid.setSelectionModel(new Slick.CellSelectionModel());
  1048. // grid.registerPlugin(new Slick.AutoTooltips());
  1049. // // set keyboard focus on the grid
  1050. // grid.getCanvasNode().focus();
  1051. // var copyManager = new Slick.CellCopyManager();
  1052. // grid.registerPlugin(copyManager);
  1053. // copyManager.onPasteCells.subscribe(function (e, args) {
  1054. // if (args.from.length !== 1 || args.to.length !== 1) {
  1055. // throw "This implementation only supports single range copy and paste operations";
  1056. // }
  1057. // var from = args.from[0];
  1058. // var to = args.to[0];
  1059. // var val;
  1060. // for (var i = 0; i <= from.toRow - from.fromRow; i++) {
  1061. // for (var j = 0; j <= from.toCell - from.fromCell; j++) {
  1062. // if (i <= to.toRow - to.fromRow && j <= to.toCell - to.fromCell) {
  1063. // val = data[from.fromRow + i][columns[from.fromCell + j].field];
  1064. // data[to.fromRow + i][columns[to.fromCell + j].field] = val;
  1065. // grid.invalidateRow(to.fromRow + i);
  1066. // }
  1067. // }
  1068. // }
  1069. // grid.render();
  1070. // });
  1071. // grid.onAddNewRow.subscribe(function (e, args) {
  1072. // var item = args.item;
  1073. // var column = args.column;
  1074. // grid.invalidateRow(data.length);
  1075. // data.push(item);
  1076. // grid.updateRowCount();
  1077. // grid.render();
  1078. // });
  1079.  
  1080. // };
Add Comment
Please, Sign In to add comment