tabel pajak untuk ekspor Netsuite dalam format ramah Magento

Apakah Anda tahu bahwa Anda dapat mengekspor pajak adalah format Magento Netsuite? NO? READ ON!

Untuk menyelesaikan tugas ini, Anda harus membuat script server-side di Netsuite dan ‘mengatur’ ke url-nya. Netsuite script sisi server yang akan memiliki akses ke back-end Netsuite memungkinkan Anda untuk mengakses catatan pajak

Tapi pertama, catatan server-side Javascript. Jika Anda selalu lebih mengandalkan console.log () atau (ketika dramatis perasaan) alert (), Anda akan perlu untuk menyesuaikan. panah ini adalah Anda bergetar ketika sisi lokasi server. Dalam contoh ini, kita menghasilkan HTML untuk menguji dan melihat kesalahan tidak sulit. Tapi jika Anda berurusan dengan script suitescript lainnya, mereka tidak menghasilkan konten dari situs, saya sarankan Anda mengawasi nlapiLogExecution. Hal ini sangat berguna. Anda juga dapat menggunakan SuiteScript Debugger.

Konfigurasi Netsuite

Sebelum memulai kode, yang merupakan bagian utama dari blog ini Anda perlu menyiapkan script baru untuk beradaptasi dan menyebarkan. Saya kira kebanyakan orang membaca ini tahu bagaimana melakukan ini, tetapi hanya dalam kasus Anda tidak, saya akan menyarankan untuk menempatkan:

Buat script server-side yang baru

Mulailah dengan menjaga file js (menyebutnya “tax_export.js”) di suatu tempat pada hard drive Anda

Access Netsuite, kemudian pergi ke:. kustomisasi & amp; amp; gt; & Amp; amp; gt; script scripting. Klik “New Script” di bawah “Pilih jenis”, klik “suitelet.

Setelah itu, nama tulisan” tax_export “, klik panah bawah di” file script ” window data dan klik “New” (ini dapat dicapai dengan mengklik tanda plus yang muncul saat melayang “file script” dari jendela depan). Sebuah pop up akan muncul. klik “Pilih file” dari “Pilih file” data panel dan arahkan ke file yang dibuat Js earler (kami menyebutnya “tax_export.js”).

setelah selesai, klik tombol “Simpan” untuk menampilkan panel. Pop up harus pergi.

kembali jendela utama, ketik fungsi password “suitelet” di jendela masukan. nilai data ini jendela harus sesuai dengan nama fungsi dukungan js. Pastikan bahwa jika Anda mengubah nama fungsi di tax_export.js (yang tidak ditambahkan), Anda juga mengubah nama fungsi di bidang entri teks

Putuskan ditulis Netsuite:.

Hanya jika Anda berada di tempat lain di NetSuite, ikuti ini kustomisasi rantai baru & amp; amp; gt; scripting & amp; amp; gt; Skrip. Anda akan melihat artikel Anda dalam daftar pada halaman. Jika Anda tidak, perluasan “filter” dengan mengklik tanda plus di sebelah kata “filter” dan pilih “suitelet” dari “Type” drop. Harus ada sekarang.

Klik “lihat” di samping naskah Anda (yang harus disebut “tax_export”), maka ketika jendela skrip, klik “set Script”. Selamat datang di “Deployment Script!”

Beberapa parameter untuk cakupan. Klik “set” dan “masuk gratis.” Anda harus membuat penilaian, dengan beberapa pilihan lain. Tempatkan kursor pada “tingkat Log” dan melihat pilihan untuk melihat apa yang baik untuk Anda. Typicall “Error” adalah tingkat yang tepat, tetapi Anda mungkin ingin mengatur “debug”, sementara mengembangkan keluaran lihat debug. Lakukan hal yang sama dengan “Jalankan Peran” (saya menggunakan “Administrator”), dan window “Public” menggunakan penilaian Anda. Saya klik pada “Pilih Semua” di samping “peran”.

Kemudian klik “Save.” ! Kami sangat dekat dengan coding yang sebenarnya, melalui membaca di

Sekarang, untuk menemukan lokasi dari script set:

Sekali lagi, kunjungi: kustomisasi & amp; amp; gt; scripting & amp; amp; gt, skrip. Klik “Settings” di samping nama script ( “tax_export”) dan klik “view” di samping pengaturan.

Dan di sana, di bawah “URL eksternal” adalah produk dari semua pekerjaan sejauh ini. Ini akan menjadi alamat dari pajak ekspor. Jadi copy / paste di jendela baru, bookmark, bercinta dengan dia, menampar cincin di atasnya dan tahu bahwa Anda tidak akan pernah meninggalkannya, karena Anda bekerja untuk itu!

waktu coding!

Nah, hampir. Saya hanya ingin menunjukkan Anda di mana Anda akan menyisipkan script lagi menjadi, sekali lagi, pergi ke: kustomisasi & amp; amp; gt; scripting & amp; amp; gt; Skrip. Klik pada ‘melihat’ melalui tulisan Anda ( “tax_export”), kemudian klik “Edit” di samping nama file script ( “tax_export.js”). Ini adalah di mana Anda memotong dan menyisipkan kode Anda ketika selesai.

Ok, siap coding ?? !! Sangat baik – tax_export.js terbuka di komputer Anda. Tambahkan kode berikut:

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {// sinilah kami akan menempatkan kode kita}} 

ini adalah bagian dari Netsuite (suitelet) kode kita akan menulis. Pengaturan yang cukup jelas: “permintaan” adalah metode (GET atau POST) data fungsi masa depan “balasan” adalah produksi

Sekarang kita akan sampai di sana. Kode. Pertama versi sederhana:

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {var = searchresults nlapiSearchRecord ( 'taxgroup', null, [], []); jika (searchresults = nol & amp; amp; amp;! & amp; amp; amp; searchresults = '') {response.write ( '& amp; amp; lt; Tabel & amp; amp; gt; & amp; amp; lt; tbody & amp ; amp; gt; '); response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kabupaten & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; USA & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; AK & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kode pos (s) & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; tarif pajak dan amp ;; gt lt; / th & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; '); Hasil pencarian // loop untuk (var di searchresults kunci) {if (searchresults [key]) {// menarik catatan individu dari hasil pencarian: var = nlapiLoadRecord urut (searchresults dari taxgroup [utama]. getId ()); order.getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ 'standar']); order.getFieldValue countyString var = ([ 'county']); jika (countyString) countyString countyString.replace = (/ s / g, '_'); response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US-AK' + countyString + '& amp; amp; lt; / td & amp; amp ; gt; & amp; amp; lt; TD & amp; amp; gt; US & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; CA & amp; amp; lt ; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ newZipString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ rateString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; TD & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; ");}} Response.Write ( '& amp; amp; lt; / tbody & amp; amp; gt ;; gt; & amp; amp; lt; / meja & amp; amp "); } Lain {response.write ( "tidak ada hasil pencarian di sana.");}} Lain {response.write ( 'Error:. Situs ini hanya dapat diakses dengan metode GET');}} 

baris pertama kami kode dari metode baru yang disebut ” suitescript yang nlapiSearchRecord. Metode ini membutuhkan tipe record sebagai parameter pertama. tabel pajak disimpan dalam sebuah objek “Jenis taxgroups. Pada akhir posting ini, ada referensi tentang suitescript untuk lebih mengeksplorasi bahasa, jika Anda ingin. Tapi untuk saat ini, metode ini mengembalikan sebuah objek (yang kita cerdik disebut “searchresults”) yang berisi hasil pencarian. dalam hal ini, ringkasan dari semua data perpajakan kelompok.

Kami kemudian melintasi melalui penelitian hasil bertentangan, dan menarik data yang diinginkan dari yang diberikan. untuk setiap record, kami memeriksa yang tidak nol (mungkin terlalu banyak) dan menetapkan bidang minat untuk variabel lokal. tujuan kami di sini adalah untuk meniru format pajak Magento, yang harus mendapatkan kita data yang kita butuhkan.

sisa kode HTML untuk struktur tabel yang akan memberikan catatan pajak.

Jika Anda memuat URL yang Anda disalin, Anda akan melihat beberapa data. Jika situs tersebut tidak memuat, Anda dapat memilih untuk keluar dari loop setelah 50 entri.

Magento Format

Ada lagi, karena kita benar-benar belum mencapai tujuan kami. Kode di atas memberikan bukti bahwa Magento perlu, tetapi tidak dalam format Magento.

Format Magento memungkinkan kode kelompok pos berturut-turut dengan tarif pajak yang sama pada rentang (misalnya, 92.121-92.127 mewakili semua kode pos di kisaran ini), yang memungkinkan Anda untuk menurunkan pendapatan toko tunggal sejumlah pajak.

Saya kira Anda tahu JavaScript, jadi saya tidak akan menjelaskan kode di bawah secara lebih rinci.

Hal lain tentang kode di bawah ini:

Ada banyak data, jadi saya berbagi catatan ini halaman 50 masing-masing. Jangan ragu untuk mengubah “pertumbuhan” variabel dalam kode berikut untuk mengubah

 fungsi suitelet (permintaan, respon) {if {response.write ( '& amp; amp; lt; gaya & amp; amp; gt; # headTable meja {width (permintaan GetMethod () ==' GET '.). 600px; text-align: center; margin: 10px auto;} a {text-decoration: none;} yang {width: 200px; margin: 5px; height: 50px; text-decoration: none;} tabel # Data {border-collapse: collapse; width: 1000px; margin: 5px auto;} td, th {kata-break: break-semua; padding: 5px; border: 1px solid # 000000;}} & amp; amp; lt; amp / style & amp ;; gt; '); var pertumbuhan = 50; // String terintegrasi CURRENTURL var url = request.getURL saat ini () + '?'; request.getAllParameters parameter var = (); untuk (kunci var dalam pengaturan) {if (key = "startRecord!) CURRENTURL + = + '=' parameter kunci + [key] + '& amp; amp; amp;';} currentURL.substring CURRENTURL = (0, currentURL.length - 1); var = startRecord (request.getParameter ( 'startRecord startRecord')) ')) Nomor (request.getParameter (: 0; var endNumber = Jumlah (pertumbuhan startRecord +) previousNumber var = Jumlah (startRecord? - peningkatan); var = ENDRECORD (request.getParameter ( 'startRecord')) endNumber: peningkatan; var = searchresults nlapiSearchRecord ( 'dari taxgroup', null, [], []); endNumber = (endNumber & amp; amp; gt? ; searchresults.length) searchresults.length: endNumber; response.write ( '& amp; amp; lt; meja id =' headTable '& amp; amp; gt; & amp; amp; lt; tbody & amp; amp; gt; & amp ;? amp; lt; tr & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; menunjukkan catatan '+ startRecord +' untuk '+ endNumber +': & amp; amp; lt; / th & amp; amp ; gt; & amp; amp; lt; / tr & amp; amp; gt; & amp; amp; lt; tr & amp; amp; gt; & Amp; amp; lt; td & amp; amp; gt; '); jika (startRecord & amp; amp; gt; 0) response.write ( '& amp; amp; lt; a href =' '+ CURRENTURL +' & amp; amp; amp; startRecord = '+ previousNumber +' & amp; amp; gt; & amp; amp; lt; tombol & amp; amp; gt; sebelumnya & amp halaman; amp; lt; / tombol & amp; amp; gt; & amp; amp; lt; / a & amp; amp; gt; "); if (ENDRECORD & amp ; amp; lt; searchresults.length) response.write ( '& amp; amp; lt; a href =' + CURRENTURL + '& amp; amp; amp; startRecord =' ​​+ ENDRECORD + '& amp; amp; gt; & amp ; amp; lt; tombol & amp; amp; gt; halaman berikutnya & amp; amp; lt; / tombol & amp; amp; gt; & amp; amp; lt; / a & amp; amp; gt; "); response.write ( '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; & amp; amp; lt; / tbody & amp; amp; gt; & amp; amp ; lt; / meja & amp; amp; gt; "); response.write ( '& amp; amp; lt; meja id =' database 'border =' 0 '& amp; amp; gt; & amp; amp; lt; tbody & amp ; amp; gt; & amp; amp; lt; tr & amp; amp; gt; e & amp; amp ;; & amp; amp; lt gt; kode & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; negara & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; negara & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; Zip / Postal code & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; tingkat & amp; amp ; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; Zip / post adalah rentang & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; & berbagai amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kisaran & amp; amp; lt; / th & amp; amp; gt ; & amp; amp; lt; e & amp; amp; gt; bawaan & amp; amp; lt; / th & amp; amp; gt; & Amp; amp; lt; / Tr & amp; amp; gt; "); Jika (searchresults = null & amp; amp; amp;! & Amp; amp; amp; searchresults = '') {// lingkaran dengan hasil pencarian (Tombol var = startRecord ;! & Amp; amp; lt; = ENDRECORD; kunci ++) {if (searchresults [key]) {// menarik catatan individu dari hasil pencarian, peringkat var = nlapiLoadRecord (searchresults dari taxgroup [utama] .getId ()); order.getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ 'standar']); order.getFieldValue countyString var = ([ 'county']); if (countyString) countyString countyString.replace = (/ s / g, '_'); if (zipString & amp; amp; amp; & amp; amp; amp;! zipString.indexOf ( '') == -1) {// jika saya istirahat di zipArray var = array zipString. split ( ''); var InitialValue; var rangeFrom; var RangeTo; var counter = 0; newZipString var = ''; // loop melalui sistem dan melihat apakah masing-masing dari mereka adalah mantan ditambah satu for (var i = 0; i & amp; amp; lt; = zipArray.length ;! ++ a) {if (zipArray [i] = tidak terdefinisi) {if (InitialValue) {newZipString = '= InitialValue zipArray [i]!; newZipString + = InitialValue; rangeFrom = InitialValue; counter = 0; }; var j = i + 1; Plusone var = Jumlah (zipArray [i]) + 1; jika (Plusone == Number (zipArray [j])) {var = dasbor (newZipString.charAt (newZipString.length - 1) = "-")? '-': ''; newZipString + = dasbor; Kontra ++; } Lain {var = koma (newZipString.charAt (newZipString.length - 1) = "-")? '': ''; jika (newZipString.indexOf (zipArray [i]) == -1) {+ = + koma newZipString zipArray [i]; zipArray RangeTo = [i]; } IsRange = Var (melawan & amp; amp; gt; 0)? '1': ''; jika (isRange == '') {rangeFrom = ''; RangeTo = ''} response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US-AK' + countyString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; CA & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ newZipString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ rateString +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ isRange +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ rangeFrom +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp ; amp; gt; '+ RangeTo +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; TD & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp ; gt; & amp; amp; lt; / tr & amp; amp; gt; "); InitialValue = null; }}}}}}} Lain {response.write ( "tidak ada hasil pencarian di sana.");}} Lain {response.write ( "Error: Halaman ini tidak dapat langsung diakses.");}} 

dan di sana Anda memilikinya! Beberapa tabel pajak Netsuite ekspor kode segar, menempatkan pada format Magento dan memberikan Anda hanya 50 record per halaman! Dengan sedikit lebih banyak pekerjaan, Anda dapat membangun Magento Modul menarik tabel data dan secara berkala memperbarui Magento, tapi itu topik untuk hari lain.

Studi lain

Seperti yang dijanjikan, berikut adalah beberapa link SuiteScript

  • API SuiteScript
  • Grup Pajak

Proyek mata Pro dan tarif pajak

Jika OfficeMA waktu perekaman menggunakan mata uang di seluruh perusahaan dan tarif pajak dalam parameter window bisnis bersama. OfficeMA Timesheet akan menggunakan tarif pajak untuk perhitungan jumlah bruto di laporan penjualan. Uang digunakan untuk memformat nilai moneter.

mungkin ada permintaan untuk proyek tertentu untuk memiliki mata uang sendiri dan tarif pajak. Dalam hal ini, waktu perekaman OfficeMA menyediakan kemampuan untuk menentukan mata uang kustom dan tarif pajak per proyek. Hal ini disebabkan jendela dari Regional Settings Draft:

Set

tarif pajak untuk proyek dengan tarif pajak proyek besar daripada tarif pajak dari bisnis perusahaan. Hal ini berguna ketika proyek di daerah dengan tingkat pajak perusahaan adalah tingkat lebar dikenakan berbeda.

proyek mata uang

Jika Anda menentukan mata uang kustom untuk proyek, OfficeMA absen, semua nilai moneter pada proyek (tingkat, anggaran) dan tugas mereka didefinisikan dalam mata uang yang . Ketika laporan gabungan untuk menghasilkan proyek-proyek dengan mata uang campuran OfficeMA Timesheet menggunakan Konversi Mata Uang * mengkonversi semua nilai kotor dan bersih dalam mata uang utama perusahaan. jumlah kotor dan bersih ditampilkan dalam dua OfficeMA tabel waktu jendela:

  • jendela Dashboard : Semua nilai penjualan dalam laporan dashboard yang luas dalam mata uang dari perusahaan yang didefinisikan dalam tampilan pengaturan bisnis window. Jika salah satu mata uang kustom kemudian menggunakan proyek * konversi mata uang dilakukan sehingga semua nilai berada dalam bisnis uang besar.
  • Timesheet jendela pratinjau : Tinjauan Timesheet jendela menggunakan dua aturan berikut:.
    1. Jika nilai yang ditampilkan menggunakan mata uang yang sama mereka ditampilkan dalam mata uang
    2. Jika nilai yang ditampilkan campuran mata uang termasuk maka semua nilai * untuk kegiatan mata uang utama.

Contoh

untuk menjelaskan proyek dengan mata uang dan tarif pajak, lihat contoh. Pertimbangkan sebuah perusahaan dengan GBP sebagai mata uang utama dan 20% sebagai tarif pajak utama. Gunakan dua proyek dalam mata uang adat dan pajak tingkat:

  • Project 1 :. Diposting CNY (China Yuan) perubahan tarif pajak dan 0%

 tarif pajak proyek dan mata uang

  • proyek 2 :. Diposting EUR (€) sebagai nilai mata uang dan pajak dari 15%

 mata uang proyek dan tarif pajak

Ikhtisar Timesheet window view

Jika hanya satu proyek yang diposting di jendela Ikhtisar Timesheet, mata uang proyek digunakan seperti yang ditunjukkan pada screenshot ini:

Jika 2 dianggap salah satu proyek, mata uang proyek yang digunakan, seperti pada screen capture ini menolak:

 moto proyek

akan dipertimbangkan untuk proyek dengan nilai tukar campuran, mata uang asing OfficeMA Timesheet * menggunakan semua nilai mengkonversi uang ini tidak di GBP (mata uang utama ) untuk GBP, yang tercermin dalam screenshot ini:

 moto proyek

di semua skenario, kenaikan tarif pajak pada tingkat proyek didefinisikan menimpa satu didefinisikan dalam komunitas bisnis.

Dashboard jendela

Jendela dashboard berisi semua nilai moneter dalam mata uang utama toko. terjadi ketika masing-masing proyek mata uang sendiri, maka * Konversi ke mata uang utama. Hal ini tercermin pada gambar di bawah:

 laporan tabel tepi

& amp; amp; nbsp;

disclaimer

* OfficeMA absen digunakan kurs tukar terbuka. Jika mata uang asing yang digunakan, nilai-nilai yang ditampilkan / ekspor disediakan untuk tujuan informasi dan tidak merupakan nasihat keuangan apapun. Meskipun semua upaya untuk memastikan kualitas dibuat, tidak ada jaminan apapun presisi dapat diberikan validitas, ketersediaan atau kesesuaian untuk tujuan tertentu -. Anda menggunakan risiko Anda sendiri

nonton Bokep Indo Kode

Brexit tidak berpengaruh pada pajak korporasi

Hal ini juga diketahui bahwa, sebagai Irlandia Utara memilih untuk menurunkan kecepatan Pajak Perseroan, menderita sebagai akibatnya pengurangan pengeluaran publik untuk “up” untuk keuntungan ini dalam kaitannya dengan sisa Inggris.

Yang agak mengejutkan, hal ini internal untuk Inggris dan isu jauh dari pengadilan atas dasar bahwa nakal dalam perdebatan “Brexit” dengan beberapa Brexiteers dan tulus salah menunjukkan bahwa Uni Eropa atau cara lain untuk meninggalkan IMF mengatakan bahwa penurunan tidak akan diperlukan.

ini akan terus

kesepakatan mendahului panjang mutlak diperlukan di Uni Eropa. Bahkan, pra-kencan Perang Dunia. Pada tahun 1938, Menteri Inggris, Sir John Simon, sepakat untuk bertemu di Irlandia Utara selama Anda mempertahankan tingkat yang sama dari layanan sosial dan pajak utama setiap kekurangan dalam pengeluaran. Hal ini dikenal sebagai ‘kesetaraan’, dan itu adalah di bawah prinsip ini yang Irlandia Utara tidak akan memiliki perbedaan dalam pemberian bantuan sosial atau pajak (seperti pengurangan Corporation pajak) untuk membayar dari anggaran.

Sebagai Skotlandia dan Wales sekarang memiliki transfer, pentingnya prinsip ini kesetaraan lebih besar dari sebelumnya.

Jika pajak perusahaan akan menerima £ 250 juta dari anggaran NI dalam Uni Eropa, yang £ 250 juta dan akan berlangsung dari luar Uni Eropa. Ini adalah prinsip Inggris -.! Sesuatu Anda akan berpikir Brexiteers akan tahu

Jadi, mari kita mendengar tentang fantasi tertentu Brexit


Jual Nike olahraga

tabel pajak untuk ekspor Netsuite dalam format ramah Magento

Apakah Anda tahu bahwa Anda dapat mengekspor pajak merupakan format Magento Netsuite? NO? Baca terus!

Untuk menyelesaikan tugas ini, Anda harus membuat script server-side di Netsuite dan ‘mengatur’ ke url-nya. Netsuite script sisi server yang akan memiliki akses ke back-end Netsuite, yang memungkinkan Anda untuk mengakses catatan pajak

Tapi pertama, sisi server catatan Javascript:. Jika Anda selalu lebih mengandalkan console.log () atau (ketika dramatis perasaan) alert (), Anda akan perlu untuk menyesuaikan. panah ini adalah Anda bergetar ketika sisi lokasi server. Dalam contoh ini, kita menghasilkan HTML untuk menguji dan melihat kesalahan tidak sulit. Tapi jika Anda berurusan dengan script suitescript lainnya, mereka tidak menghasilkan konten dari situs, saya sarankan Anda mengawasi nlapiLogExecution. Hal ini sangat berguna. Anda juga dapat menggunakan SuiteScript debugger.

Konfigurasi Netsuite

Sebelum memulai kode, yang merupakan bagian utama dari blog ini Anda perlu menyiapkan script baru untuk beradaptasi dan menyebarkan. Saya kira kebanyakan orang membaca ini tahu bagaimana melakukan ini, tetapi hanya dalam kasus Anda tidak, saya akan menyarankan untuk menempatkan:

Buat script server-side yang baru

Mulailah dengan menjaga file js (menyebutnya “tax_export.js”) di suatu tempat pada hard drive Anda

Access Netsuite, kemudian pergi ke:. kustomisasi & amp; amp; gt; & Amp; amp; gt; script scripting. Klik “New Script” di bawah “Pilih jenis”, klik “suitelet.

Setelah itu, nama tulisan” tax_export “, klik panah bawah di” file script ” window data dan klik “New” (ini dapat dicapai dengan mengklik tanda plus yang muncul saat melayang “file script” dari jendela depan). muncul pop up window. klik “Pilih file” untuk “Pilih file” data panel dan arahkan ke file yang dibuat Js earler (kami menyebutnya “tax_export.js”).

Setelah selesai, klik tombol “Simpan” untuk menampilkan panel. Pop up harus pergi.

Kembali di jendela utama, ketik fungsi password “suitelet” di jendela masukan. Nilai jendela data ini harus sesuai dengan nama fungsi js bertanggung jawab. Membuat bahwa jika Anda mengubah nama fungsi di tax_export.js (yang tidak ditambahkan), Anda juga mengubah nama fungsi di bidang entri teks

Putuskan ditulis Netsuite .

Hanya jika Anda berada di tempat lain di NetSuite, ikuti ini rantai kustomisasi baru & amp; amp; gt; scripting & amp; amp; gt; Scripts Anda akan melihat artikel Anda dalam daftar di. halaman. Jika Anda tidak, perluasan “filter” dengan mengklik tanda plus di sebelah kata “filter” dan pilih “suitelet” “tipe” daftar drop-down. Harus ada sekarang.

Klik “View” di samping naskah Anda (yang harus disebut “tax_export”), maka ketika jendela skrip, klik “set Script”. Selamat datang di “Deployment Script!”

Beberapa pengaturan lebih untuk berlindung. Klik “set” dan “masuk gratis.” Anda harus membuat penilaian, dengan beberapa pilihan lain. Tempatkan kursor pada “tingkat Log” dan melihat pilihan untuk melihat apa yang baik untuk Anda. Typicall “kesalahan” adalah tingkat yang tepat, tapi Anda dapat mengatur “debug”, sementara mengembangkan keluaran lihat debug. Lakukan hal yang sama dengan “Run As Peran” (saya menggunakan “Administrator”) dan window “Public” Gunakan penilaian Anda. Saya klik pada “Pilih Semua” di samping “peran”.

Kemudian klik “Save.” ! Kami sangat dekat dengan coding yang sebenarnya, melalui membaca di

Sekarang, untuk menemukan lokasi dari script set:

Sekali lagi, pergi ke: kustomisasi & amp; amp; gt; scripting & amp; amp; gt, skrip. Klik “Settings” di samping nama script ( “tax_export”) dan klik “view” di samping pengaturan.

Dan di sana, di bawah “URL eksternal” adalah produk dari semua pekerjaan sejauh ini. Ini akan menjadi alamat dari pajak ekspor. Jadi copy / paste di jendela baru, bookmark, bercinta dengan dia, menampar cincin di atasnya dan saya tahu Anda tidak akan pernah keluar, karena Anda bekerja untuk itu!

waktu coding!

Nah, hampir. Saya hanya ingin menunjukkan Anda di mana Anda akan menyisipkan script lagi menjadi, sekali lagi, pergi ke: kustomisasi & amp; amp; gt; scripting & amp; amp; gt; Skrip. Klik pada ‘melihat’ melalui tulisan Anda ( “tax_export”), kemudian klik “Edit” di samping nama file script ( “tax_export.js”). Ini adalah di mana Anda memotong dan menyisipkan kode Anda ketika Anda selesai

Ok, siap coding ?? !! Excellent – tax_export.js terbuka di komputer Anda Tambahkan kode berikut: ..

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {// ini adalah di mana kita akan menempatkan kode kita}} 

Ini adalah bagian dari Netsuite (suitelet ) kode kita akan menulis parameter yang cukup jelas. “permintaan” adalah metode (GET atau POST) data yang akan datang pada “jawaban” adalah produksi

Sekarang kita Code’ll sana pertama versi sederhana: ..

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {var = searchresults nlapiSearchRecord ( 'taxgroup', null, [], []); if (nol searchresults = & amp; amp; amp;! & amp; amp; amp; searchresults = '') {response.write ( '& amp; amp; lt; Tabel & amp; amp; gt; & amp; amp; lt; tbody & amp; amp; gt;') ; response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kabupaten & amp; amp; lt; / th & amp; amp; gt; & amp; amp ; lt; e & amp; amp; gt; USA & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; AK & amp; amp; lt; / th & amp ; amp; gt; & amp; amp; lt; e & amp; amp; gt; kode pos (s) & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; tingkat pajak dan amp ;; gt lt; / th & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; '); // hasil pencarian loop untuk (var di searchresults kunci) {if (searchresults [key]) {// mendapatkan file individu dari hasil pencarian: var = nlapiLoadRecord urutan (searchresults dari taxgroup [utama]. getId ()); order.getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ "standar"]); order.getFieldValue countyString var = ([ 'umum']); jika (countyString) countyString countyString.replace = (/ s / g, '_'); response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US-AK' + countyString + '& amp; amp; lt; / td & amp; amp ; gt; & amp; amp; lt; TD & amp; amp; gt; US & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; CA & amp; amp; lt ; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ newZipString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ rateString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; TD & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; ");}} Response.Write ( '& amp; amp; lt; / tbody & amp; amp; gt ;; gt; & amp; amp; lt; / meja & amp; amp "); } Lain {response.write ( "tidak ada hasil pencarian di sana.");}} Lain {response.write ( 'Error:. Situs ini hanya dapat diakses dengan metode GET');}} 

kode pertama kami dari metode baru garis disebut ” suitescript yang nlapiSearchRecord. Metode ini membutuhkan tipe record sebagai parameter pertama. tabel pajak disimpan dalam sebuah objek “Jenis taxgroups. Pada akhir artikel ini, bahan referensi ini tentang suitescript untuk lebih mengeksplorasi bahasa, jika Anda mau. Tapi untuk saat ini, metode ini mengembalikan sebuah objek (apa yang kita sebut “searchresults pintar”) yang berisi hasil pencarian. Dalam hal ini, ringkasan dari semua data perpajakan kelompok.

Kemudian Kami melakukan perjalanan melalui hasil pencarian bertentangan, dan mendapatkan data yang diinginkan untuk data. Untuk setiap record, kami memeriksa yang tidak nol (mungkin terlalu banyak) dan menetapkan bidang minat untuk variabel lokal. Tujuan kami di sini adalah untuk meniru format pajak Magento, yang harus mendapatkan kita data yang kita butuhkan.

Sisa kode HTML untuk struktur tabel yang akan memberikan catatan pajak.

Jika Anda memuat URL yang Anda disalin, Anda akan melihat beberapa data. Jika situs tersebut tidak memuat, Anda dapat memilih untuk keluar dari loop setelah 50 entri.

ukuran Magento

Ada lebih, karena kita benar-benar belum mencapai tujuan kami. Kode di atas memberikan bukti bahwa Magento perlu, tetapi tidak dalam format Magento.

Format Magento memungkinkan kelompok kode pos berturut-turut dengan tarif pajak yang sama pada rentang (misalnya 92.121-92.127 mewakili semua kode pos di kisaran ini), yang memungkinkan Anda untuk menurunkan pendapatan untuk toko tunggal sejumlah pajak.

Saya kira Anda tahu JavaScript, jadi saya tidak akan menjelaskan kode di bawah secara lebih rinci.

Hal lain tentang kode berikut:

Ada banyak data, jadi saya berbagi catatan ini halaman 50 masing-masing. Jangan ragu untuk mengubah “pertumbuhan” variabel dalam kode berikut untuk mengubah

 suitelet fungsi (permintaan, respon) { jika (permintaan GetMethod () == 'GET'.) {response.write ( '& amp; amp; lt; gaya & amp; amp; gt; # headTable tabel {width:. 600px; text-align: center; margin: 10px auto;} a {text-decoration: none;} yang {width: 200px; margin: 5px; height: 50px; text-decoration: none;} tabel # Data {border-collapse: collapse; width: 1000px; margin: 5px auto;} td, th {kata-break: break-semua; padding: 5px; border: 1px solid # 000000;}} & amp; amp; lt; amp / style & amp ;; gt; '); var pertumbuhan = 50; // String var url = Dibangun CURRENTURL request.getURL saat ini () + "?"; request.getAllParameters parameter var = (); untuk (kunci var dalam pengaturan) {if (key = "startRecord!) kunci CURRENTURL + = + = '+ parameter [key] +' & amp; amp; amp; ';} currentURL.substring CURRENTURL = (0 , currentURL.length - 1); var = startRecord (request.getParameter ( 'startRecord startRecord')))) Nomor (request.getParameter (: 0; var endNumber = Jumlah (pertumbuhan startRecord +) previousNumber var = Jumlah (startRecord? - peningkatan); var = ENDRECORD (request.getParameter ( 'startRecord')) endNumber: peningkatan; var = searchresults nlapiSearchRecord ( 'dari taxgroup', null, [], []); endNumber = (endNumber & amp; amp; gt? ; searchresults.length) searchresults.length: endNumber; response.write ( '& amp; amp; lt; meja id =' headTable '& amp; amp; gt; & amp; amp; lt; tbody & amp; amp; gt; & amp ;? amp; lt; tr & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; menampilkan data '+ startRecord + "untuk" + endNumber +': & amp; amp; lt; / th & amp; amp ; gt; & amp; amp; lt; / tr & amp; amp; gt; & amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '); jika (startRecord & amp; amp; gt; 0) response.write ( '& amp; amp; lt; a href =' '+ CURRENTURL +' & amp; amp; amp; startRecord = '+ previousNumber +' & amp; amp; gt; & amp; amp; lt; tombol & amp; amp; gt; sebelumnya & amp halaman; amp; lt; / tombol & amp; amp; gt; & amp; amp; lt; / a & amp; amp; gt; "); if (ENDRECORD & amp ; amp; lt; searchresults.length) response.write ( '& amp; amp; lt; a href =' + CURRENTURL + '& amp; amp; amp; startRecord =' ​​+ ENDRECORD + '& amp; amp; gt; & amp ; amp; lt; tombol & amp; amp; gt; halaman berikutnya & amp; amp; lt; / tombol & amp; amp; gt; & amp; amp; lt; / a & amp; amp; gt; "); response.write ( '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; & amp; amp; lt; / tbody & amp; amp; gt; & amp; amp ; lt; / Table & amp; amp; gt; "); response.write ( '& amp; amp; lt; meja id =' database 'border =' 0 '& amp; amp; gt; & amp; amp; lt; tbody & amp; amp; gt; & amp; amp; lt; tr & amp; amp; gt; e & amp; amp ;; & amp; amp; lt gt; kode & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; negara & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; negara & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; Zip / Postal code & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; tingkat & amp ; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; Zip / post adalah rentang & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt e & amp; amp; gt; & amp kisaran; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kisaran & amp; amp; lt; / th & amp; amp ; gt; & amp; amp; lt; e & amp; amp; gt; bawaan & amp; amp; lt; / th & amp; amp; gt; & Amp; amp; lt; / Tr & amp; amp; gt; "); Jika (searchresults = null & amp; amp; amp;! & Amp; amp; amp; searchresults = '') {// lingkaran dengan hasil pencarian (Tombol var = startRecord ;! & Amp; amp; lt; = ENDRECORD; kunci ++) {if (searchresults [key]) {// mendapatkan file individual dari hasil pencarian, peringkat var = nlapiLoadRecord (searchresults dari taxgroup [utama] .getId ()); rangka .getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ 'norma']); order.getFieldValue countyString var = ([ 'umum']); if (countyString) countyString = countyString.replace (/ s / g, '_'); if (zipString & amp; amp; amp; & amp; amp; amp;! zipString.indexOf ( '') == -1) {// jika saya istirahat di zipArray var = array zipString.split ( ''); var InitialValue; var rangeFrom; var RangeTo; var counter = 0; newZipString var = ''; // loop melalui sistem dan melihat apakah masing-masing dari mereka adalah mantan ditambah satu untuk (var i = 0; i & amp; amp; lt; = zipArray.length; ++ a) {if (ZipArray [i] = tidak terdefinisi) {if (InitialValue) {newZipString = '= InitialValue zipArray [i]!;! newZipString + = InitialValue; rangeFrom = InitialValue; counter = 0; }; var j = i + 1; Plusone var = Jumlah (zipArray [i]) + 1; jika (Plusone == Number (zipArray [j])) {var = dasbor (newZipString.charAt (newZipString.length - 1) = "-")? '-': ''; newZipString + = dashboard; kontra ++; } Lain {var = koma (newZipString.charAt (newZipString.length - 1) = "-")? '': ''; jika (newZipString.indexOf (zipArray [i]) == -1) {+ = + koma newZipString zipArray [i]; zipArray RangeTo = [i]; } IsRange = Var (melawan & amp; amp; gt; 0)? '1': ''; jika (isRange == '') {rangeFrom = ''; RangeTo = ''} response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US-AK' + countyString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; CA & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ newZipString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ rateString +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ isRange +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ rangeFrom +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp ; amp; gt; '+ RangeTo +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; TD & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp ; gt; & amp; amp; lt; / tr & amp; amp; gt; "); InitialValue = null; }}}}}}} Lain {response.write ( "tidak ada hasil pencarian di sana.");}} Lain {response.write ( "Error: Halaman ini tidak dapat langsung diakses.");}} 

dan di sana Anda memilikinya! Beberapa tabel pajak Netsuite ekspor kode segar, menempatkan pada format Magento dan memberikan Anda hanya 50 record per halaman! Dengan sedikit lebih banyak pekerjaan, Anda dapat membangun Magento Modul menarik tabel data dan secara berkala memperbarui Magento, tapi itu topik untuk hari lain.

studi lebih lanjut

Seperti yang dijanjikan, berikut adalah beberapa link SuiteScript

  • API SuiteScript
  • Grup Pajak