Drupal 7: Sinkronisasi dengan Odoo 10

 

Pada project ini Anda diminta utk melakukan sinkronisasi satu arah antara Drupal 7 dan Odoo, dengan menggunakan API-nya Odoo.  Web API-nya Odoo bisa dibaca di sini:

https://www.odoo.com/documentation/10.0/api_integration.html

Proses sinkronisasi dimaksud harus menggunakan batch API drupal 7.  Contoh batch API Drupal 7 bisa dilihat di sini:

https://api.drupal.org/api/examples/batch_example%21batch_example.module/group/batch_example/7.x-1.x

Jika Anda berminat mengerjakan project ini, harap sertakan contoh module Drupal 7 yang pernah Anda buat; akan lebih baik jika ada yang berkaitan dengan EntityFieldQuery, Drupal Form API, Batch API, dan Web Service.

Source code Drupal 7 dan database-nya, dan database Odoo-nya, akan diberikan jika Anda terpilih utk mengerjakan project ini. Buat sinkronisasi batch untuk proses2 berikut:

Tugas 1: Sinkonisasi FEED dan Product

Sinkronisasi ini merupakan sinkronisasi satu arah yang membaca data Product di Odoo, utk kemudian di-sinkronkan dengan content type FEED di Drupal 7. Anda cukup membuatkan menu routing-nya di hook_menu.

Ketentuannya adalah sbb:
  • Yang disinkronkan ke content type FEED di Drupal 7 adalah product-produk di Odoo yang memiliki BoM dan Can be Sold dan Internal Category-nya Pakan Jadi (lihat bagian yang dilingkari pada gambar di bawah). 
  • Lakukan baik utk product Active maupun Archieve.
  • Mapping-nya sbb:
    • (Odoo) Product Name --> (D7) field_feed_name
    • (Odoo) Active jika Active, Inactive jika Archieve --> (D7) field_feed_status
  • Sebelum disinkronkan ke Drupal 7, check dulu apakah data product yang dimaksud sudah ada atau belum. Jangan sampai terjadi duplikasi.
  • Semua content di content type FEED yang tidak terdapat di Odoo dinonaktifkan.

201712085a2abe03aedde.jpg
201712085a2abe10aad99.jpg


Tugas 2: Sinkronisasi OVK dan Product

Sinkronisasi ini merupakan sinkronisasi satu arah yang membaca data Product di Odoo, utk kemudian di-sinkronkan dengan content type OVK di Drupal 7. Anda cukup membuatkan menu routing-nya di hook_menu.

Ketentuannya adalah sbb:
  • Yang disinkronkan ke content type OVK di Drupal 7 adalah product-produk di Odoo yang Internal Category-nya Obat-obatan (lihat bagian yang dilingkari di bawah). 
  • Lakukan baik utk product Active maupun Archieve.
  • Mapping-nya sbb:
    • (Odoo) Product Name --> (D7) field_ovk_product_name
    • (Odoo) Active jika Active, Inactive jika Archieve --> (D7) field_ovk_status
  • Sebelum disinkronkan ke Drupal 7, check dulu apakah data product yang dimaksud sudah ada atau belum. Jangan sampai terjadi duplikasi.
  • Semua content di content type OVK yang tidak terdapat di Odoo dinonaktifkan.
201712085a2abe2f852e8.jpg


Tugas 3: Sinkronisasi Invoice FEED dan PRICE LIST

Sinkronisasi ini merupakan sinkronisasi satu arah yang membaca data Invoice dari Sales Order product dengan Internal Category-nya Pakan Jadi di Odoo, utk kemudian di-sinkronkan dengan content type PRICE LIST di Drupal 7. Anda cukup membuatkan menu routing-nya di hook_menu.

Ketentuannya adalah sbb:
  • Cari Invoice product yang DIJUAL dengan Internal Category-nya Pakan Jadi di Odoo, yang statusnya Open atau Paid, untuk mendapatkan Amount-nya (harga product) untuk Invoice Date dalam kurun waktu 3 bulan terakhir.
201712095a2b5682efdad.jpg

  • Lakukan update content type PRICE LIST di Drupal 7 utk field_price_list_movement utk product di atas. field_price_list_movement merupakan field collection yang berisi tanggal dan harga.
  • Jika harga product suatu product sama dengan tanggal sebelumnya, maka content type PRICE LIST tidak perlu di-update.

Tugas 4: Sinkronisasi Bill OVK dan PRICE LIST

Sinkronisasi ini merupakan sinkronisasi satu arah yang membaca data Billing dari Purchase product dengan Internal Category-nya Obat-obatan di Odoo, utk kemudian di-sinkronkan dengan content type PRICE LIST di Drupal 7. Anda cukup membuatkan menu routing-nya di hook_menu.

Ketentuannya adalah sbb:
  • Cari Billing product yang DIBELI dengan Internal Category-nya Obat-obatan di Odoo, yang statusnya Open atau Paid, untuk mendapatkan Amount-nya (harga product) untuk Invoice Date dalam kurun waktu 3 bulan terakhir.
201712095a2b572375364.jpg

  • Lakukan update content type PRICE LIST di Drupal 7 utk field_price_list_movement utk product di atas. field_price_list_movement merupakan field collection yang berisi tanggal dan harga.
  • Jika harga product suatu product sama dengan tanggal sebelumnya, maka content type PRICE LIST tidak perlu di-update.

Tugas 5: Sinkronisasi Production dan Purchase Order (PO)

Buat dua halaman berikut menggunakan drupal form API:

201708155992610787686.jpg

API untuk mendapatkan data2 utk menyusun halaman di atas dapat kami disediakan.

Halaman Posting Production adalah halaman utk mem-posting produksi harian utk kemudian dibuatkan PO-nya di Odoo.

Ketentuannya adalah sbb:
  • Produksi yang di-posting bisa kg atau butir telur sesuai konfigurasi di halaman Setting
  • Jumlah kg atau butir yang dimunculkan di halaman Posting Production juga disesuaikan dengan konfigurasi di halaman Setting (apakah dimunculkan sebagai kg atau sebagai butir). 
  • Tanggal di datepicker maksium yang bisa dipilih adalah hari ini. 
  • Ketika di-tekan "Post", maka akan menjalankan batch API utk membuatkan PO di Odoo. Penjelasannya PO yang seperti apa yang dibuat akan dijelaskan di bawah. 
  • Setiap harinya hanya ada satu PO utk suatu kategori. Jadi jika ketika ditekan "Post" ternyata sudah ada PO sebelumnya utk suatu kategori di tanggal yang sama, PO yang sudah ada tsb di-update dengan baru. 
  • PO yang di-update sebagaimana di atas adalah jika status PO-nya masih RFQ. Jika status PO-nya sudah Purchase Order, proses "Post" tidak perlu melakukan apa2 karena sudah final PO-nya.
PO yang harus dibuat ketika ditekan "Post": 
  • PO yang dibuat adalah dalam status RFQ. Vendor, Order Date, Product, Quantity, dan Unit of Measurement-nya disesuaikan dengan konfigurasi di Setting (apakah kg atau butir telur) dan Lokasi yang di-post di halaman Posting ProductionUnit Price-nya dikosongkan. Lebih kurang spt gambar di bawah PO-nya nanti yang terbuat. 
  • Pastikan Delivery To bersesuaian dengan Warehouse/Location di Setting, contohnya sebagaimana gambar di bawah.
201712095a2c03882d353.jpg
201712095a2c0394e4863.jpg

PHP Drupal

Project Class: Small (500rb-5jt)
Published Date: 10/12/2017 11:48:54 WIB
Published Budget: Rp 1,000,000
Finish Days: 14
Project Status: Published
Bid Count: 3
Select Deadline: 24/01/2018 11:48:54 WIB
Need Weekly Report:

Project Owner

agungsuyono
    
9.50/10.00
1,209 Point
#118 dari 109,191

Accepted Worker

Bid masih terbuka.

  Place New Bid   Ask Owner   Chat

  User Bids

wanto21
    
7.00/10.00

rudi_weberman
    
0.00/10.00

wismbuh
    
0.00/10.00