ekantin

edit order pelanggan

Feb 22nd, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.34 KB | None | 0 0
  1. static async editOrdersPelanggan(event, context) {
  2. let dataBody = JSON.parse(event.body)
  3. let orders = dataBody.orders
  4. let editedOrders = dataBody.editedOrders
  5. let token = dataBody.token
  6. let kode_pelanggan = dataBody.kode_pelanggan
  7. let url = process.env.TRANSACTION_URI + '/mutasiwallet/editorderspelanggan'
  8. let data = JSON.stringify({
  9. orders: orders,
  10. editedOrders: editedOrders,
  11. token: token,
  12. kode_pelanggan: kode_pelanggan
  13. })
  14. try {
  15. let temp = await axios.post(url, data, {
  16. headers: {
  17. 'Content-Type': 'application/json',
  18. apikey: process.env.APIKEY
  19. }
  20. })
  21. context.succeed({
  22. statusCode: 200,
  23. body: JSON.stringify(temp.data.body)
  24. })
  25. } catch (e) {
  26. console.log(e)
  27. console.log(e.response)
  28. context.succeed({
  29. statusCode: 400
  30. })
  31. }
  32. // let dataBody = JSON.parse(event.body)
  33. // // data Orderan dari client
  34. // let orders = dataBody.orders
  35. // let editedOrders = dataBody.editedOrders
  36. // // data pelanggan user, nanti convert nya dari token
  37. // let kode_pelanggan = ''
  38. // if (dataBody.kode_pelanggan) {
  39. // kode_pelanggan = dataBody.kode_pelanggan
  40. // } else {
  41. // // data pelanggan user, nanti convert nya dari token
  42. // kode_pelanggan = verifyTokenPelanggan(dataBody.token)
  43. // }
  44. // let hasilFilterOrdersYangBerubah = cariOrdersYangBerubah(editedOrders, orders)
  45. // let transaksiBaruId = []
  46. // let transaksiYgDiubah = []
  47. // let uangKeluar = []
  48. // let uangMasuk = []
  49. // let tanggalKembalianOrder = []
  50. // for (var i = 0; i < hasilFilterOrdersYangBerubah.bertambah.length; i++) {
  51. // hasilFilterOrdersYangBerubah.bertambah[i]
  52. // let pesananBaru = hasilFilterOrdersYangBerubah.bertambah[i].ordersBaru.jumlah_pesan - hasilFilterOrdersYangBerubah.bertambah[i].ordersBaru.jumlah_kembali
  53. // let pesananLama = hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.jumlah_pesan - hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.jumlah_kembali
  54. // let perbedaan = pesananBaru - pesananLama
  55. // uangKeluar.push(perbedaan * hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.harga_beli)
  56. // let kode_kantin = hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet[0] + hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet[1] + hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet[2] + hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet[3] + hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet[4]
  57. // try {
  58. // let transaksiDetail = {
  59. // kode_menu: hasilFilterOrdersYangBerubah.bertambah[i].kode_menu,
  60. // nama_menu: hasilFilterOrdersYangBerubah.bertambah[i].nama_menu,
  61. // jam_istirahat: hasilFilterOrdersYangBerubah.bertambah[i].ordersBaru.jam_istirahat,
  62. // jam_ambil: null,
  63. // jumlah_pesan: perbedaan,
  64. // jumlah_ambil: 0,
  65. // jumlah_kembali: 0,
  66. // harga_beli: hasilFilterOrdersYangBerubah.bertambah[i].ordersBaru.harga_beli
  67. // }
  68. // let objTransaksi = {
  69. // _id: await autoGenerateIdTransaksi(kode_kantin),
  70. // kode_pelanggan: kode_pelanggan,
  71. // kode_outlet: hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet,
  72. // tanggal_ambil: new Date(hasilFilterOrdersYangBerubah.bertambah[i].date),
  73. // jenis_transaksi: 0,
  74. // transaksi_detail: transaksiDetail
  75. // }
  76. // let selesaiCreateTransaksiBaru = await mongoModel.Transaksi.create(objTransaksi)
  77. // let updateSaldoKantin = await mongoModel.Outlet.update({
  78. // "_id": hasilFilterOrdersYangBerubah.bertambah[i].kode_outlet
  79. // }, {
  80. // $inc: {
  81. // saldo: (perbedaan * hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.harga_beli)
  82. // }
  83. // })
  84. // transaksiBaruId.push(objTransaksi._id)
  85. // let Sequelize = new sequelize(process.env.POSTGRE_DB, process.env.POSTGRE_USER, process.env.POSTGRE_PASSWORD, {
  86. // isolationLevel: sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE || "SERIALIZABLE",
  87. // host: process.env.POSTGRE_HOST,
  88. // dialect: process.env.POSTGRE_DIALECT
  89. // });
  90. // Sequelize.transaction().then(function(t) {
  91. // return model.Wallet.findOne({where: {kode_user: objTransaksi.kode_outlet}, transaction: t}).then(function(walletOutlet) {
  92. // return model.Wallet.findOne({where: {kode_user: objTransaksi.kode_pelanggan}, transaction: t}).then(function(walletPelanggan) {
  93. // return walletOutlet.increment({saldo: (perbedaan * hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.harga_beli)}, {transaction: t}).then(function(walletOutletBaru){
  94. // let saldoBaruOutlet = walletOutletBaru.dataValues.saldo
  95. // let saldoLamaOutlet = walletOutletBaru._previousDataValues.saldo
  96. // return model.MutasiWallet.create({
  97. // kode_wallet: walletOutlet.kode_wallet,
  98. // tanggal_mutasi: moment(),
  99. // jenis_mutasi: 1,
  100. // saldo_awal: saldoLamaOutlet,
  101. // saldo_akhir: saldoBaruOutlet,
  102. // jumlah: (perbedaan * hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.harga_beli),
  103. // keterangan: 'Pembayaran transaksi ' + objTransaksi._id + ' tanggal ' + new Date(moment())
  104. // }, {transaction: t}).then(function (mutasiWallet) {
  105. // return walletPelanggan.decrement({saldo: (perbedaan * hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.harga_beli)}, {transaction: t}).then(function(walletPelangganBaru) {
  106. // let saldoBaruPelanggan = walletPelangganBaru.dataValues.saldo
  107. // let saldoLamaPelanggan = walletPelangganBaru._previousDataValues.saldo
  108. // return model.MutasiWallet.create({
  109. // kode_wallet: walletPelanggan.kode_wallet,
  110. // tanggal_mutasi: moment(),
  111. // jenis_mutasi: 0,
  112. // saldo_awal: saldoLamaPelanggan,
  113. // saldo_akhir: saldoBaruPelanggan,
  114. // jumlah: (perbedaan * hasilFilterOrdersYangBerubah.bertambah[i].ordersLama.harga_beli),
  115. // keterangan: 'Pembayaran transaksi ' + objTransaksi._id + ' tanggal ' + new Date(moment())
  116. // }, {transaction: t})
  117. // })
  118. // })
  119. // })
  120. // })
  121. // }).then(function (transactionSequelize) {
  122. // t.commit()
  123. // }).catch((err) => {
  124. // t.rollback()
  125. // })
  126. // })
  127. // } catch (e) {
  128. // console.log(e);
  129. // context.fail({
  130. // statusCode: 400,
  131. // body: JSON.stringify('Error when add new transaction')
  132. // })
  133. // }
  134. // }
  135. // console.log(hasilFilterOrdersYangBerubah.berkurang[0])
  136. // for (var i = 0; i < hasilFilterOrdersYangBerubah.berkurang.length; i++) {
  137. // let pesananBaru = hasilFilterOrdersYangBerubah.berkurang[i].ordersBaru.jumlah_pesan - hasilFilterOrdersYangBerubah.berkurang[i].ordersBaru.jumlah_kembali
  138. // let pesananLama = hasilFilterOrdersYangBerubah.berkurang[i].ordersLama.jumlah_pesan - hasilFilterOrdersYangBerubah.berkurang[i].ordersLama.jumlah_kembali
  139. // let perbedaan = pesananLama - pesananBaru
  140. // uangMasuk.push(perbedaan * hasilFilterOrdersYangBerubah.berkurang[i].ordersBaru.harga_beli)
  141. // tanggalKembalianOrder.push(hasilFilterOrdersYangBerubah.berkurang[i].date)
  142. // let kode_transaksi = hasilFilterOrdersYangBerubah.berkurang[i].ordersBaru.kode_transaksi.split('#')
  143. // let dataOrdersBaru = hasilFilterOrdersYangBerubah.berkurang[i]
  144. // let kode_transaksiYgBerubah = []
  145. // let sudahDikembalikan = 0
  146. // for (var j = 0; j < kode_transaksi.length; j++) {
  147. // if (sudahDikembalikan == perbedaan) {
  148. // break;
  149. // }
  150. // try {
  151. // let dataTransaksiDariDB = await mongoModel.Transaksi.findById(kode_transaksi[j])
  152. // transaksiYgDiubah.push({_id: kode_transaksi[j], data: dataTransaksiDariDB})
  153. // let transaksiDetailAfterDiubah = []
  154. // for (var k = 0; k < dataTransaksiDariDB.transaksi_detail.length; k++) {
  155. // let detailTransaksi = dataTransaksiDariDB.transaksi_detail[k]
  156. // if (detailTransaksi.kode_menu == dataOrdersBaru.kode_menu && detailTransaksi.nama_menu == dataOrdersBaru.nama_menu && detailTransaksi.jam_istirahat == dataOrdersBaru.ordersBaru.jam_istirahat){
  157. // if ((perbedaan - sudahDikembalikan) > (detailTransaksi.jumlah_pesan - detailTransaksi.jumlah_kembali)) {
  158. // sudahDikembalikan += (detailTransaksi.jumlah_pesan - detailTransaksi.jumlah_kembali)
  159. // detailTransaksi.jumlah_kembali = detailTransaksi.jumlah_kembali + (detailTransaksi.jumlah_pesan - detailTransaksi.jumlah_kembali)
  160. // } else {
  161. // detailTransaksi.jumlah_kembali = detailTransaksi.jumlah_kembali + (perbedaan - sudahDikembalikan)
  162. // sudahDikembalikan = perbedaan
  163. // }
  164. // }
  165. // transaksiDetailAfterDiubah.push(detailTransaksi)
  166. // }
  167. // let selesaiUpdateTransaksiDetail = await mongoModel.Transaksi.findByIdAndUpdate(kode_transaksi[j], {transaksi_detail: transaksiDetailAfterDiubah})
  168. // kode_transaksiYgBerubah.push(kode_transaksi[j])
  169. // } catch (err) {
  170. // console.log(err);
  171. // context.fail({
  172. // statusCode: 400,
  173. // body: JSON.stringify('Error when edit transaction')
  174. // })
  175. // }
  176. // }
  177. // let updateSaldoKantin = await mongoModel.Outlet.update({
  178. // "_id": hasilFilterOrdersYangBerubah.berkurang[i].kode_outlet
  179. // }, {
  180. // $inc: {
  181. // saldo: (perbedaan * hasilFilterOrdersYangBerubah.berkurang[i].ordersBaru.harga_beli * -1)
  182. // }
  183. // })
  184. // let Sequelize = new sequelize(process.env.POSTGRE_DB, process.env.POSTGRE_USER, process.env.POSTGRE_PASSWORD, {
  185. // isolationLevel: sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE || "SERIALIZABLE",
  186. // host: process.env.POSTGRE_HOST,
  187. // dialect: process.env.POSTGRE_DIALECT
  188. // });
  189. // let kode_outletBuatSequelizeNih = hasilFilterOrdersYangBerubah.berkurang[i].kode_outlet
  190. // let totalBuatSequelizeNih = (perbedaan * hasilFilterOrdersYangBerubah.berkurang[i].ordersBaru.harga_beli)
  191. // Sequelize.transaction().then(function(t) {
  192. // return model.Wallet.findOne({where: {kode_user: kode_outletBuatSequelizeNih}, transaction: t}).then(function(walletOutlet) {
  193. // return model.Wallet.findOne({where: {kode_user: kode_pelanggan}, transaction: t}).then(function(walletPelanggan) {
  194. // return walletOutlet.decrement({saldo: totalBuatSequelizeNih}, {transaction: t}).then(function(walletOutletBaru){
  195. // let saldoBaruOutlet = walletOutletBaru.dataValues.saldo
  196. // let saldoLamaOutlet = walletOutletBaru._previousDataValues.saldo
  197. // return model.MutasiWallet.create({
  198. // kode_wallet: walletOutlet.kode_wallet,
  199. // tanggal_mutasi: moment(),
  200. // jenis_mutasi: 0,
  201. // saldo_awal: saldoLamaOutlet,
  202. // saldo_akhir: saldoBaruOutlet,
  203. // jumlah: totalBuatSequelizeNih,
  204. // keterangan: 'Pengembalian transaksi ' + kode_transaksiYgBerubah.join(',') + ' tanggal ' + new Date(moment())
  205. // }, {transaction: t}).then(function (mutasiWallet) {
  206. // return walletPelanggan.increment({saldo: totalBuatSequelizeNih}, {transaction: t}).then(function(walletPelangganBaru) {
  207. // let saldoBaruPelanggan = walletPelangganBaru.dataValues.saldo
  208. // let saldoLamaPelanggan = walletPelangganBaru._previousDataValues.saldo
  209. // return model.MutasiWallet.create({
  210. // kode_wallet: walletPelanggan.kode_wallet,
  211. // tanggal_mutasi: moment(),
  212. // jenis_mutasi: 1,
  213. // saldo_awal: saldoLamaPelanggan,
  214. // saldo_akhir: saldoBaruPelanggan,
  215. // jumlah: totalBuatSequelizeNih,
  216. // keterangan: 'Pengembalian transaksi ' + kode_transaksiYgBerubah.join(',') + ' tanggal ' + new Date(moment())
  217. // }, {transaction: t})
  218. // })
  219. // })
  220. // })
  221. // })
  222. // }).then(function (transactionSequelize) {
  223. // t.commit()
  224. // }).catch((err) => {
  225. // t.rollback()
  226. // })
  227. // })
  228. // }
  229. // // update saldo pelanggan
  230. // if (uangKeluar.length > 0) {
  231. // let tanggalUntukNotif = moment()
  232. // let jumlahUangKeluar = uangKeluar.reduce(function(acc, val) {return acc + val})
  233. // let updateSaldoPembelianBaru = await mongoModel.Pelanggan.update({
  234. // "_id": kode_pelanggan
  235. // }, {
  236. // $inc: {
  237. // saldo: (jumlahUangKeluar * -1)
  238. // },
  239. // $push: {
  240. // notifikasi: {
  241. // tanggal_waktu: new Date(),
  242. // notifikasi: 'Transaksi pemesanan via aplikasi pada ' + tanggalanConverter(new Date(tanggalUntukNotif), true) + ' telah berhasil dilakukan ' + rupiahConverter(jumlahUangKeluar),
  243. // baca: 0
  244. // }
  245. // }
  246. // })
  247. // }
  248. // if (uangMasuk.length > 0) {
  249. // let jumlahUangMasuk = uangMasuk.reduce(function(acc, val) {return acc + val})
  250. // let tanggalanOrder = []
  251. // tanggalKembalianOrder = tanggalKembalianOrder.filter(function(item, pos) {
  252. // return tanggalKembalianOrder.indexOf(item) == pos;
  253. // })
  254. // for (var i = 0; i < tanggalKembalianOrder.length; i++) {
  255. // tanggalanOrder.push(tanggalanConverter(new Date(tanggalKembalianOrder[i]), false))
  256. // }
  257. // tanggalanOrder.join(' & ')
  258. // let updateSaldoPengembalianBaru = await mongoModel.Pelanggan.update({
  259. // "_id": kode_pelanggan
  260. // }, {
  261. // $inc: {
  262. // saldo: (jumlahUangMasuk)
  263. // },
  264. // $push: {
  265. // notifikasi: {
  266. // tanggal_waktu: new Date(),
  267. // notifikasi: 'Saldo kamu sebanyak ' + rupiahConverter(jumlahUangMasuk) + ' untuk pembatalan pesanan pada order ' + tanggalanOrder + ' telah dikembalikan.',
  268. // baca: 0
  269. // }
  270. // }
  271. // })
  272. // }
  273. // // update saldo outlet
  274. // context.succeed({
  275. // statusCode: 200,
  276. // body: JSON.stringify({
  277. // orderBertambah: hasilFilterOrdersYangBerubah.bertambah,
  278. // orderBerkurang: hasilFilterOrdersYangBerubah.berkurang
  279. // })
  280. // })
  281. }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment