# Cara Membuat Model Template

Setelah file berhasil diimpor ke dalam sistem, data akan langsung diproses. Namun, karena tiap distributor bisa menggunakan sistem eksternal dengan format Excel yang berbeda-beda—baik dari segi struktur maupun nama kolom—sistem perlu solusi yang fleksibel. Tentunya, portal tidak bisa membatasi pengguna dengan format file tertentu seperti pada SAP atau DMS karena hal itu akan menyulitkan proses integrasi.

Begitu pula saat pengguna ingin mengekspor data: mereka harus bisa menentukan sendiri format Excel yang dibutuhkan, terutama jika data tersebut akan digunakan di sistem lain.

Sebagai solusinya, portal menghadirkan fitur **ModelMapper** atau **ModelTemplate**. Fitur ini bisa diakses melalui menu **Model Templates**.

## **Cara Membuat Model Template Baru**

**Step 1.** Buka menu **Model Templates.**

**Step 2.** Pilih **Add New Model Template.**

<figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2FDFDsmZ5EQlPgF6tbUFgB%2Fimage.png?alt=media&#x26;token=6987b843-faae-4cf5-85d5-339d3a49397f" alt=""><figcaption></figcaption></figure>

**Step 3.** Isi data mengenai model template baru yang akan dibuat seperti :&#x20;

* Integrasi
* Module&#x20;
* Metode
* Json Format
* Response Keys

<figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2FUqlcwlrEhaJ5clGsqfvu%2Fimage.png?alt=media&#x26;token=d1aeaf6f-0003-46d3-bb9d-0ce2bc4cfeb3" alt=""><figcaption></figcaption></figure>

### Beberapa hal penting yang perlu diperhatikan saat membuat Model Template:

1. *Field* yang ditandai dengan tanda <mark style="color:red;">\*</mark> wajib diisi.
2. Distributor harus sudah memiliki minimal satu integrasi aktif sebelum dapat membuat template.
3. Model Template dibedakan berdasarkan kombinasi **Integration**, **Module**, dan **Method**. Sistem tidak mengizinkan pembuatan template dengan kombinasi yang sama lebih dari satu kali.
4. Setiap integrasi (aplikasi) memiliki Model Template-nya sendiri, meskipun modul dan metodenya sama.
   * **Contoh**: Jika integrasi DMS sudah memiliki template untuk *SalesOrder-Export*, maka integrasi lain seperti *External* harus membuat template *SalesOrder-Export*-nya sendiri.
5. Setelah template dibuat, nilai **Integration**, **Module**, dan **Method** tidak bisa diubah untuk mencegah duplikasi.
6. **Response Keys** selalu diisi dengan:

   ```json
   jsonSalinEdit{"MappingResultType":"List","RootProperty":"data"}
   ```
7. Cara membuat format JSON klik disini.

***

### **Mengelola Template yang Sudah Dibuat**

* Untuk mengedit JSON pada template yang sudah ada, pengguna bisa klik ikon **edit/pensil** pada daftar Model Template.<br>

  <figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2F9rCyOj9sgeeZxxrRh2DD%2Fimage.png?alt=media&#x26;token=c0e23c07-9ec1-41d4-8100-368e6f614c50" alt=""><figcaption><p>Tombol Edit Model Template</p></figcaption></figure>

  <figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2FvIXHGJUojp244rqWD6JH%2Fimage.png?alt=media&#x26;token=13e0477a-4005-4720-9d89-4850e0e1baae" alt=""><figcaption><p>Edit Model Template</p></figcaption></figure>

* Untuk melihat detail lengkap sebuah template, cukup klik barisnya di daftar template.<br>

  <figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2F57byYrSQyGubjD94aCM6%2Fimage.png?alt=media&#x26;token=16f26c1c-a2c7-4679-8304-1cd8f7eb6d6e" alt=""><figcaption><p>Daftar Model Template</p></figcaption></figure>

  <figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2F4Q14YxpRn9H8fbO2GbVu%2Fimage.png?alt=media&#x26;token=0f090da6-d3de-4b51-b69a-c42af6c22f66" alt=""><figcaption><p>Detail Model Template</p></figcaption></figure>

* Untuk menghapus model template yang sudah dibuat, dapat dilakukan dari beberapa laman yaitu:
  * Delete dari Daftar Model Template<br>

    <figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2FO8So0RdEKOo6S9ZNRBae%2Fimage.png?alt=media&#x26;token=ecf32240-71e8-4054-a03b-6d60fc04c65c" alt=""><figcaption></figcaption></figure>

  * Delete dari Detail Model Template<br>

    <figure><img src="https://3837174706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-ML6LhsHx5TJpV4GOuvJ%2Fuploads%2FXVggoNEdOXU23YtwQ1If%2Fimage.png?alt=media&#x26;token=81bea6fe-4961-45f0-8212-f29e121f76e0" alt=""><figcaption></figcaption></figure>

## Cara Membuat Model Template (JsonFormat)

### 1. SalesOrder(Item)&#xD;

Berikut adalah tabel penjelasan property SalesOrder(Item) yang dibutuhkan dan dapat digunakan pada saat membuat Model Template.

| Nama Property     | Tipe Data | Penjelasan                                                                                        | Dibutuhkan/Wajib |
| ----------------- | --------- | ------------------------------------------------------------------------------------------------- | ---------------- |
| OriginId          | STRING    | Id dari data. Jika tidak ada id, maka dapat menggabungkan beberapa data pada excel sehingga unik. | YA               |
| OrderNo           | STRING    | Nomor pesanan penjualan                                                                           | YA               |
| OrderDate         | Date      | Tanggal pesanan penjualan                                                                         | YA               |
| Status            | STRING    | Status pesanan penjualan                                                                          | YA               |
| CustomerId        | STRING    | Id Pelanggan                                                                                      | YA               |
| CustomerCode      | STRING    | Kode pelanggan                                                                                    | YA               |
| CustomerName      | STRING    | Nama pelanggan                                                                                    | YA               |
| ProductCode       | STRING    | Kode produk                                                                                       | YA               |
| ProductName       | STRING    | Nama produk                                                                                       | YA               |
| Price             | FLOAT     | Harga produk                                                                                      | YA               |
| TotalQuantity     | FLOAT     | Total kuantitas                                                                                   | YA               |
| LineTotal         | FLOAT     | Total penjualan                                                                                   | YA               |
| SupplierId        | STRING    | Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.              | YA               |
| DailyVisitItemId  | STRING    | Id DailyVisit untuk menandakan bahwa pesanan penjualan ini efective call atau tidak               | TIDAK            |
| CustomerLatitude  | STRING    | Latitude lokasi pelanggan                                                                         | TIDAK            |
| CustomerLongitude | STRING    | Longitude lokasi pelanggan                                                                        | TIDAK            |
| Channel           | STRING    | Nama channel pelanggan                                                                            | TIDAK            |
| City              | STRING    | Kota                                                                                              | TIDAK            |
| District          | STRING    | Kecamatan                                                                                         | TIDAK            |
| Province          | STRING    | Provinsi                                                                                          | TIDAK            |
| QuantityL         | FLOAT     | Kuantitas L                                                                                       | TIDAK            |
| QuantityM         | FLOAT     | Kuantitas M                                                                                       | TIDAK            |
| QuantityS         | FLOAT     | Kuantitas S                                                                                       | TIDAK            |
| UnitL             | STRING    | Nama satuan L                                                                                     | TIDAK            |
| UnitM             | STRING    | Nama satuan M                                                                                     | TIDAK            |
| UnitS             | STRING    | Nama satuan S                                                                                     | TIDAK            |
| DiscountItem      | FLOAT     | Diskon item (nominal)                                                                             | TIDAK            |
| DiscountOrder     | FLOAT     | Diskon order (nominal)                                                                            | TIDAK            |
| Tax               | FLOAT     | Pajak (nominal)                                                                                   | TIDAK            |

#### 📌 ModelMapper Import (SalesOrder)

Pada proses import menggunakan ModelMapper, kolom di sebelah kiri menunjukkan nama **property pada sistem portal (konsolidasi data)**, sedangkan bagian kanan dengan format `$.data[#].` mengacu pada **property dari file Excel** yang diimpor.

{% hint style="warning" %}
🔔 **Catatan Penting:**\
Selain property-property yang sudah disebutkan, **property `SupplierId` wajib ditambahkan** ke dalam mapping, seperti yang ditunjukkan pada contoh. Property ini bersifat **mandatory** dan tidak boleh diabaikan.
{% endhint %}

{% code lineNumbers="true" %}

```
 { 
   "OriginId": {
     "JsonPath": "$.data[#].Id"
   },
   "OrderNo": {
     "JsonPath": "$.data[#].OrderNumber"
   },
   "OrderDate": {
     "JsonPath": "$.data[#].Tanggal",
     "Type": "DateTime",
     "DateFormatFrom": "d/M/yyyy",
     "DateFormatTo": "MM/dd/yyyy"
   },
   "CustomerId": {
     "JsonPath": "$.data[#].C_Id"
   },
   "DailyVisitItemId": {
     "JsonPath": "$.data[#].DailyVisitItemId"
   },
   "CustomerCode": {
     "JsonPath": "$.data[#].C_Code"
   },
   "CustomerName": {
     "JsonPath": "$.data[#].C_Name"
   },
   "CustomerLatitude": {
     "JsonPath": "$.data[#].C_Latitude",
     "DefaultValue": 0
   },
   "CustomerLongitude": {
     "JsonPath": "$.data[#].C_Longitude",
     "DefaultValue": 0
   },
   "City": {
     "JsonPath": "$.data[#].Kota"
   },
   "District": {
     "JsonPath": "$.data[#].Kecamatan"
   },
   "Province": {
     "JsonPath": "$.data[#].Provinsi"
   },
   "ProductCode": {
     "JsonPath": "$.data[#].P_Code"
   },
   "ProductName": {
     "JsonPath": "$.data[#].P_Name"
   },
   "Price": {
     "JsonPath": "$.data[#].P_Price",
     "DefaultValue": 0
   },
   "TotalQuantity": {
     "JsonPath": "$.data[#].TotalQuantity",
    "DefaultValue": 0
   },
   "QuantityL": {
     "JsonPath": "$.data[#].QL",
     "DefaultValue": 0
   },
   "QuantityM": {
     "JsonPath": "$.data[#].QM",
     "DefaultValue": 0
   },
   "QuantityS": {
     "JsonPath": "$.data[#].QS",
     "DefaultValue": 0
   },
   "UnitL": {
     "JsonPath": "$.data[#].UnitL"
   },
   "UnitM": {
     "JsonPath": "$.data[#].UnitM"
   },
   "UnitS": {
     "JsonPath": "$.data[#].UnitS"
   },
   "DiscountItem": {
     "JsonPath": "$.data[#].DiscountItem",
     "DefaultValue": 0
   },
   "DiscountOrder": {
     "JsonPath": "$.data[#].DiscountOrder",
     "DefaultValue": 0
   },
   "Tax": {
     "JsonPath": "$.data[#].Pajak",
     "DefaultValue": 0
   },
   "LineTotal": {
     "JsonPath": "$.data[#].Linetotal",
     "DefaultValue": 0
   },
   "StatusOrder": {
     "JsonPath": "$.data[#].Status",
     "DefaultValue": "Active"
   },
   "Status": {
     "DataExpression": "StatusOrder",
     "FormatExpression": "\"[0]\"!=\"Active\"?\"Cancelled\":\"Active\""
   },
   "SupplierId": {
     "JsonPath": "$.data[#].SupplierId"
   }
 }
```

{% endcode %}

📌 **ModelMapper Export (SalesOrder)**\
Dalam proses ekspor, properti di sisi kiri mengacu pada kolom Excel yang akan dihasilkan, sedangkan properti di sisi kanan setelah “`$.data[#].`” merujuk pada sumber data dari portal (data yang telah dikonsolidasikan).

{% code lineNumbers="true" %}

```
 { 
   "Id": {
     "JsonPath": "$.data[#].OriginId"
   },
   "NomorOrder": {
     "JsonPath": "$.data[#].OrderNo"
   },
   "TanggalPesanan": {
     "JsonPath": "$.data[#].OrderDate"
  },
  "IdPelanggan": {
    "JsonPath": "$.data[#].CustomerId"
  },
  "KodePelanggan": {
    "JsonPath": "$.data[#].CustomerCode"
  },
  "NamaPelanggan": {
    "JsonPath": "$.data[#].CustomerName"
  },
  "Latitude": {
    "JsonPath": "$.data[#].CustomerLatitude"
  },
  "Longitude": {
    "JsonPath": "$.data[#].CustomerLongitude"
  }
 }
```

{% endcode %}

### 2. DailyVisit(Item)

Berikut adalah tabel penjelasan property DailyVisit(Item) yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

| Nama Property    | Tipe Data | Penjelasan                                                                                        | Dibutuhkan/Wajib |
| ---------------- | --------- | ------------------------------------------------------------------------------------------------- | ---------------- |
| OriginId         | STRING    | Id dari data. Jika tidak ada id, maka dapat menggabungkan beberapa data pada excel sehingga unik. | YA               |
| Date             | DATE      | Tanggal kunjungan                                                                                 | YA               |
| EmployeeId       | STRING    | Id pegawai                                                                                        | YA               |
| EmployeeName     | STRING    | Nama pegawai                                                                                      | YA               |
| CustomerId       | STRING    | Id Pelanggan                                                                                      | YA               |
| CustomerName     | STRING    | Nama pelanggan                                                                                    | YA               |
| CheckInLatitude  | FLOAT     | Latitude lokasi kunjungan                                                                         | YA               |
| CheckInLongitude | FLOAT     | Longitude lokasi kunjunga                                                                         | YA               |
| TotalSales       | FLOAT     | Total penjualan                                                                                   | YA               |
| SupplierId       | STRING    | Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.              | YA               |
| Planned          | INTEGER   |                                                                                                   | TIDAK            |
| Pseq             | INTEGER   | Urutan kunjungan                                                                                  | TIDAK            |
| CheckInTime      | DATETIME  | Waktu check in kunjungan                                                                          | TIDAK            |
| CheckOutTime     | DATETIME  | Waktu check out kunjungan                                                                         | TIDAK            |

{% hint style="warning" %}

Proses/Cara pembuatan model mapper DailyVisit sama saja dengan contoh SalesOrder di atas. Sesuaikan nama-nama propertynya&#x20;dengan tabel di atas.\\

\
**NB**: Selain property-property yang sudah dijelaskan, pada modelmapper import harus ditambahkan property SupplierId seperti&#x20;pada contoh. Ini WAJIB
{% endhint %}

### 3. PurchaseInvoice(Item)

Berikut adalah tabel penjelasan property PurchaseInvoice(Item) yang dibutuhkan dan dapat digunakan pada saat membuat Model Template.

| Nama Property  | Tipe Data | Penjelasan                                                                                        | Dibutuhkan/Wajib |
| -------------- | --------- | ------------------------------------------------------------------------------------------------- | ---------------- |
| OriginId       | STRING    | Id dari data. Jika tidak ada id, maka dapat menggabungkan beberapa data pada excel sehingga unik. | YA               |
| PurchaseNo     | STRING    | Nomor pembelian                                                                                   | YA               |
| Status         | STRING    | Status pembelian                                                                                  | YA               |
| PurchaseDate   | DATE      | Tanggal pembelian                                                                                 | YA               |
| PaymentDueDate | DATE      | Tanggal jatuh tempo pembayaran                                                                    | YA               |
| ProductCode    | STRING    | Kode produk                                                                                       | YA               |
| ProductName    | STRING    | Nama produk                                                                                       | YA               |
| Price          | FLOAT     | Longitude lokasi kunjunga                                                                         | YA               |
| TotalQuantity  | FLOAT     | Total penjualan                                                                                   | YA               |
| LineTotal      | FLOAT     | Total pembelian                                                                                   | YA               |
| TotalPayment   | FLOAT     | Total pembayaran                                                                                  | YA               |
| SupplierId     | STRING    | Urutan kunjungan                                                                                  | YA               |
| QuantityL      | FLOAT     | Kuantitas L                                                                                       | TIDAK            |
| QuantityM      | FLOAT     | Kuantitas L                                                                                       | TIDAK            |
| QuantityS      | FLOAT     | Kuantitas L                                                                                       | TIDAK            |
| UnitL          | STRING    | Nama satuan L                                                                                     | TIDAK            |
| UnitM          | STRING    | Nama satuan M                                                                                     | TIDAK            |
| UnitS          | STRING    | Nama satuan S                                                                                     | TIDAK            |
| DiscountItem   | FLOAT     | Diskon item (nominal)                                                                             | TIDAK            |
| Discount       | FLOAT     | Diskon pembelian (nominal)                                                                        | TIDAK            |
| Tax            | FLOAT     | Pajak (nominal)                                                                                   | TIDAK            |
| ReferenceNo.   | STRING    | Nomor referensi                                                                                   | TIDAK            |

#### 📌 **ModelMapper Import & Export (PurchaseInvoice)**

Pembuatan model mapper untuk **PurchaseInvoice** mengikuti alur yang sama seperti pada contoh **SalesOrder** sebelumnya. Cukup sesuaikan nama-nama propertinya dengan struktur data yang digunakan untuk PurchaseInvoice.

{% hint style="warning" %}
**Catatan:**\
Untuk proses **import**, pastikan menambahkan properti `SupplierId` seperti pada contoh.\
Properti ini **WAJIB** ada agar proses import dapat berjalan dengan benar.
{% endhint %}

### 4. SalesInvoice(Item)&#xD;

Berikut adalah tabel penjelasan property SalesInvoice(Item) yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

| Nama Property     | Tipe Data | Penjelasan                                                                                   | Dibutuhkan/Wajib |
| ----------------- | --------- | -------------------------------------------------------------------------------------------- | ---------------- |
| OriginId          | STRING    | Id dari data. Kalau tidak ada id dapat menggabungkan beberapa data pada excel sehingga unik. | YA               |
| InvoiceNo         | STRING    | Nomor fakturpenjualan                                                                        | YA               |
| InvoiceDate       | DATE      | Tanggal fakturpenjualan                                                                      | YA               |
| Status            | STRING    | Status faktur penjualan                                                                      | YA               |
| CustomerId        | STRING    | Id Pelanggan                                                                                 | YA               |
| CustomerCode      | STRING    | Kode Pelanggan                                                                               | YA               |
| CustomerName      | STRING    | Nama Pelanggan                                                                               | YA               |
| ProductCode       | STRING    | Kode Produk                                                                                  | YA               |
| ProductName       | STRING    | Nama Produk                                                                                  | YA               |
| Price             | FLOAT     | Harga Produk                                                                                 | YA               |
| TotalQuantity     | FLOAT     | Total kuantitas                                                                              | YA               |
| LineTotal         | FLOAT     | Total penjualan                                                                              | YA               |
| SupplierId        | STRING    | Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.         | YA               |
| CustomerLatitude  | FLOAT     | Latitude lokasi pelanggan                                                                    | TIDAK            |
| CustomerLongitude | FLOAT     | Longitude lokasi pelanggan                                                                   | TIDAK            |
| City              | STRING    | Kota                                                                                         | TIDAK            |
| District          | STRING    | Kecamatan                                                                                    | TIDAK            |
| Province          | STRING    | Provinsi                                                                                     | TIDAK            |
| QuantityL         | FLOAT     | Kuantitas L                                                                                  | TIDAK            |
| QuantityM         | FLOAT     | Kuantitas M                                                                                  | TIDAK            |
| QuantityS         | FLOAT     | Kuantitas S                                                                                  | TIDAK            |
| UnitL             | STRING    | Nama satuan L                                                                                | TIDAK            |
| UnitM             | STRING    | Nama satuan M                                                                                | TIDAK            |
| UnitS             | STRING    | Nama satuan S                                                                                | TIDAK            |
| DiscountItem      | FLOAT     | Diskon item (nominal)                                                                        | TIDAK            |
| DiscountInvoice   | FLOAT     | Diskon faktur (nominal)                                                                      | TIDAK            |
| Tax               | FLOAT     | Pajak (nominal)                                                                              | TIDAK            |
| DailyVisitItemId  | STRING    | Id DailyVisit untuk menandakan bahwa pesanan penjualan ini efective call atau tidak          | TIDAK            |

#### 📌 **ModelMapper Import & Export (SalesInvoice)**

Pembuatan model mapper untuk **SalesInvoice** mengikuti langkah yang sama seperti pada contoh **SalesOrder**.\
Kamu hanya perlu menyesuaikan nama-nama properti sesuai dengan struktur data yang digunakan untuk SalesInvoice.

{% hint style="warning" %}
**Catatan:**\
Dalam proses **import**, jangan lupa menambahkan properti `SupplierId` seperti yang ditunjukkan pada contoh.\
Properti ini **WAJIB** disertakan agar proses import berjalan dengan lancar.
{% endhint %}

### 5. Product

Berikut adalah tabel penjelasan property Product yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

| Nama Property  | Tipe Data | Penjelasan                                                                                   | Dibutuhkan/Wajib |
| -------------- | --------- | -------------------------------------------------------------------------------------------- | ---------------- |
| OriginId       | STRING    | Id dari data. Kalau tidak ada id dapat menggabungkan beberapa data pada excel sehingga unik. | YA               |
| Name           | STRING    | Nama                                                                                         | YA               |
| Code           | STRING    | Kode                                                                                         | YA               |
| SupplierId     | STRING    | Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.         | YA               |
| Category       | STRING    | Kategori                                                                                     | TIDAK            |
| Division       | STRING    | Divisi                                                                                       | TIDAK            |
| Supplier       | STRING    | Nama Supplier                                                                                | TIDAK            |
| Brand          | STRING    | Merek                                                                                        | TIDAK            |
| UnitL          | INTEGER   | Nama satuan unit L                                                                           | TIDAK            |
| ConvertionL    | STRING    | Konversi L terhadap satuan terkecil                                                          | TIDAK            |
| UnitM          | STRING    | Nama satuan unit M                                                                           | TIDAK            |
| ConvertionM    | INTEGER   | Konversi M terhadap satuan terkecil                                                          | TIDAK            |
| UnitS          | STRING    | Nama satuan unit S                                                                           | TIDAK            |
| ConvertionS    | INTEGER   | Konversi S terhadap satuan terkecil                                                          | TIDAK            |
| IsActive       | BOOLEAN   | Aktif atau tidak                                                                             | TIDAK            |
| IsTax          | BOOLEAN   | Kena Pajak atau tidak                                                                        | TIDAK            |
| IsProductFocus | BOOLEAN   |                                                                                              | TIDAK            |
| ImageURL       | STRING    | Link foto produk                                                                             | TIDAK            |
| Length         | INTEGER   | Panjang                                                                                      | TIDAK            |
| Width          | INTEGER   | Lebar                                                                                        | TIDAK            |
| Height         | INTEGER   | Tinggi                                                                                       | TIDAK            |
| CostPrice      | FLOAT     | Harga Beli                                                                                   | TIDAK            |
| PriceAverage   | FLOAT     | Harga Rata-rata                                                                              | TIDAK            |
| LatestPrice    | FLOAT     | Harga terbaru                                                                                | TIDAK            |

#### 📌 **ModelMapper Import & Export (Product)**

Pembuatan model mapper untuk **Product** memiliki alur yang sama seperti pada contoh **SalesOrder**.\
Cukup sesuaikan nama-nama propertinya dengan struktur data atau tabel yang digunakan untuk modul Product.

{% hint style="warning" %}
**Catatan:**\
Untuk keperluan **import**, pastikan menambahkan properti `SupplierId` sebagaimana dicontohkan.\
Properti ini **WAJIB** ada agar proses import dapat dilakukan dengan benar.
{% endhint %}

### 6. Customer

Berikut adalah tabel penjelasan property Customer yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

| Nama Property | Tipe Data | Penjelasan                                                                                   | Dibutuhkan/Wajib |
| ------------- | --------- | -------------------------------------------------------------------------------------------- | ---------------- |
| OriginId      | STRING    | Id dari data. Kalau tidak ada id dapat menggabungkan beberapa data pada excel sehingga unik. | YA               |
| Code          | STRING    | Kode                                                                                         | YA               |
| Name          | STRING    | Nama                                                                                         | YA               |
| Status        | STRING    | Status                                                                                       | YA               |
| CustomerGroup | STRING    | Nama kelompok pelanggan                                                                      | TIDAK            |
| PriceList     | STRING    | Nama daftar harga                                                                            | TIDAK            |
| PaymentTerm   | STRING    | Nama jangka waktu bayar                                                                      | TIDAK            |
| Telephone     | STRING    | Nomor telepon                                                                                | TIDAK            |
| Handphone     | STRING    | Nomor handphone                                                                              | TIDAK            |
| ContactPerson | STRING    | Nama kontak                                                                                  | TIDAK            |
| IdentityCard  | STRING    | Nomor KTP                                                                                    | TIDAK            |
| NPWP          | STRING    | NPWP                                                                                         | TIDAK            |
| NoKK          | STRING    | Nomor KK                                                                                     | TIDAK            |
| Latitude      | FLOAT     | Latitude lokasi pelanggan                                                                    | TIDAK            |
| Longitude     | FLOAT     | Longitude lokasi pelanggan                                                                   | TIDAK            |
| Address       | STRING    | Alamat                                                                                       | TIDAK            |
| Districts     | STRING    | Kecamatan                                                                                    | TIDAK            |
| City          | STRING    | Kota                                                                                         | TIDAK            |
| Province      | STRING    | Provinsi                                                                                     | TIDAK            |
| Village       | STRING    | Desa                                                                                         | TIDAK            |
| PostalCode    | STRING    | Kode Pos                                                                                     | TIDAK            |
| Channel       | STRING    | Nama channel                                                                                 | TIDAK            |
| IsTaxable     | BOOLEAN   | Kena pajak atau tidak                                                                        | TIDAK            |
| SupplierId    | STRING    | Id Supplier                                                                                  | TIDAK            |

**📌 ModelMapper Import & Export (Customer)**

\
Proses/Cara pembuatan model mapper Customer sama saja dengan contoh SalesOrder di atas. Sesuaikan saja nama-nama propertynya\
dengan tabel di atas. Namun, pada customer, SupplierId tidak wajib.
