Advertisement
aivavic

prepare

Jun 19th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. return new Promise((resolve, reject) => {
  2.       if (!data.items) data.items = []
  3.       let items = data.items.filter(item => item.error_code === '0')
  4.       items = items.map(item => {
  5.         if (item.payment_tool_type === 'Готівка') {
  6.           item.terminal_id = (item.terminal_id === '- TERMINAL ID not found -' || !item.terminal_id) ? '' : item.terminal_id
  7.           item.bank_name = (item.bank_name === '- BANK NAME not found -' || !item.bank_name) ? '' : item.bank_name
  8.         }
  9.         return item
  10.       }).sort((a, b) => new Date(b.transaction_date) - new Date(a.transaction_date))
  11.  
  12.       const summary = {
  13.         all: {
  14.           sum_in: 0,
  15.           tax_in: 0,
  16.           sum_out: 0,
  17.           tax_out: 0,
  18.         },
  19.         cash: {
  20.           sum_in: 0,
  21.           sum_out: 0,
  22.           all: 0,
  23.         },
  24.         non_cash: {
  25.           sum_in: 0,
  26.           sum_out: 0,
  27.           all: 0,
  28.         },
  29.         cash_non_cash: {
  30.           sum_in: 0,
  31.           sum_out: 0,
  32.           all: 0,
  33.         },
  34.         sum: 0,
  35.       }
  36.       const sum_all = data.items.filter(item => item.error_code === '1')
  37.       summary.all.sum_in = sum_all[0].payment_amount_in ? Number(sum_all[0].payment_amount_in).toFixed(2) : '0.00'
  38.       summary.all.sum_out = sum_all[0].payment_amount_out ? Number(sum_all[0].payment_amount_out).toFixed(2) : '0.00'
  39.       summary.all.tax_in = sum_all[0].tax_amount_in ? Number(sum_all[0].tax_amount_in).toFixed(2) : '0.00'
  40.       summary.all.tax_out = sum_all[0].tax_amount_out ? Number(sum_all[0].tax_amount_out).toFixed(2) : '0.00'
  41.  
  42.       const cash = data.items.filter(item => item.error_code === '2')
  43.       summary.cash.sum_in = cash[0].payment_amount_in ? Number(cash[0].payment_amount_in).toFixed(2) : '0.00'
  44.       summary.cash.sum_out = cash[0].payment_amount_out ? Number(cash[0].payment_amount_out).toFixed(2) : '0.00'
  45.  
  46.       const non_cash = data.items.filter(item => item.error_code === '3')
  47.       summary.non_cash.sum_in = non_cash[0].payment_amount_in ? Number(non_cash[0].payment_amount_in).toFixed(2) : '0.00'
  48.       summary.non_cash.sum_out = non_cash[0].payment_amount_out ? Number(non_cash[0].payment_amount_out).toFixed(2) : '0.00'
  49.  
  50.       const cash_non_cash = data.items.filter(item => item.error_code === '4')
  51.       summary.cash_non_cash.sum_in = cash_non_cash[0].payment_amount_in ? Number(cash_non_cash[0].payment_amount_in).toFixed(2) : '0.00'
  52.       summary.cash_non_cash.sum_out = cash_non_cash[0].payment_amount_out ? Number(cash_non_cash[0].payment_amount_out).toFixed(2) : '0.00'
  53.  
  54.       const sum_cash = data.items.filter(item => item.error_code === '5')
  55.       summary.cash.all = sum_cash[0].payment_amount_in ? Number(sum_cash[0].payment_amount_in).toFixed(2) : '0.00'
  56.  
  57.       const sum_non_cash = data.items.filter(item => item.error_code === '6')
  58.       summary.non_cash.all = sum_non_cash[0].payment_amount_in ? Number(sum_non_cash[0].payment_amount_in).toFixed(2) : '0.00'
  59.  
  60.       const sum = data.items.filter(item => item.error_code === '7')
  61.       summary.sum = sum[0].payment_amount_in ? Number(sum[0].payment_amount_in).toFixed(2) : '0.00'
  62.  
  63.       data.fio = ''
  64.       if (data.cashier_name) {
  65.         const fio_arr = data.cashier_name.split(' ')
  66.         data.fio = `${fio_arr[0]} ${fio_arr[1].substr(0, 1).toUpperCase()}.${fio_arr[2].substr(0, 1).toUpperCase()}.`
  67.       }
  68.  
  69.       items = mock.items
  70.  
  71.       const PER_PAGE = 47
  72.       const HEADER_LENGTH = 4
  73.       const FOOTER_LENGTH = 14
  74.       const COUNT = items.length
  75.       const ROWS_COUNT = HEADER_LENGTH + COUNT + FOOTER_LENGTH
  76.       const REMAINDER = ROWS_COUNT % PER_PAGE
  77.       console.log('REMAINDER', REMAINDER)
  78.       const PAGE_FLOOR = Math.floor(ROWS_COUNT / PER_PAGE)
  79.       const FULL_PAGE_COUNT = REMAINDER > FOOTER_LENGTH ? PAGE_FLOOR : PER_PAGE + 1
  80.       console.log('PAGE_COUNT', FULL_PAGE_COUNT)
  81.       let GROUP = 0
  82.       const page = []
  83.       page[GROUP] = []
  84.       if (ROWS_COUNT <= PER_PAGE) {
  85.         page[0].first_page = true
  86.         for (let i = 0; i < COUNT; i += 1) {
  87.           page[0].push(items[i])
  88.         }
  89.       }
  90.  
  91.       if (ROWS_COUNT > PER_PAGE) {
  92.         for (let i = 0; i < (PER_PAGE - HEADER_LENGTH); i += 1) {
  93.           console.log('i fp', i)
  94.           page[0].push(items[i])
  95.         }
  96.         for (let i = (PER_PAGE - HEADER_LENGTH); i < COUNT; i += 1) {
  97.           if ((i - PER_PAGE + HEADER_LENGTH) % PER_PAGE === 0) {
  98.             GROUP += 1
  99.             page[GROUP] = []
  100.           }
  101.           console.log('i op', i)
  102.           console.log('GROUP op', GROUP)
  103.           page[GROUP].push(items[i])
  104.         }
  105.       }
  106.  
  107.       console.log(page)
  108.  
  109.       resolve({
  110.         page,
  111.         items,
  112.         summary,
  113.         date_from: data.date_from,
  114.         date_to: data.date_to,
  115.         pnfp_no: data.pnfp_no,
  116.         rro_num: data.rro_num,
  117.         reg_num: data.reg_num,
  118.         cashier_name: data.cashier_name,
  119.         cashier_fio: data.fio,
  120.       })
  121.     })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement