Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function sync_customer_simple($invoice)
- {
- // Jika customer sudah ada Jurnal ID, pakai yang ada
- if (!empty($invoice->pelanggan_jurnal_id)) {
- return [
- 'success' => true,
- 'jurnal_id' => $invoice->pelanggan_jurnal_id
- ];
- }
- // Cek apakah customer sudah ada di Mekari
- $customer_name = trim($invoice->pelanggan_nama);
- try {
- $response = $this->mekari_jurnal->request(
- 'GET',
- '/public/jurnal/api/v1/contacts',
- ['type' => 'customer', 'name' => urlencode($customer_name)]
- );
- $contacts = $response['response']['contact_list']['contact_data'] ?? [];
- if (!empty($contacts)) {
- // Customer sudah ada, update database
- $jurnal_id = $contacts[0]['id'];
- $jurnal_name = $contacts[0]['display_name'];
- $this->db->where('pelanggan_id', $invoice->pelanggan_id)->update('sid_pelanggan', [
- 'pelanggan_jurnal_id' => $jurnal_id,
- 'pelanggan_jurnal_nama' => $jurnal_name
- ]);
- return ['success' => true, 'jurnal_id' => $jurnal_id];
- }
- // Buat customer baru
- $payload = [
- 'person' => [
- 'display_name' => $customer_name,
- 'is_customer' => true,
- 'people_type' => 'customer',
- 'phone' => $invoice->pelanggan_telp ?? '',
- 'address' => $invoice->pelanggan_alamat ?? ''
- ]
- ];
- $create = $this->mekari_jurnal->request(
- 'POST',
- '/public/jurnal/api/v1/contacts',
- $payload
- );
- if (isset($create['response']['person']['id'])) {
- $jurnal_id = $create['response']['person']['id'];
- $jurnal_name = $create['response']['person']['display_name'];
- $this->db->where('pelanggan_id', $invoice->pelanggan_id)->update('sid_pelanggan', [
- 'pelanggan_jurnal_id' => $jurnal_id,
- 'pelanggan_jurnal_nama' => $jurnal_name
- ]);
- return ['success' => true, 'jurnal_id' => $jurnal_id];
- } else {
- return ['success' => false, 'message' => 'Gagal membuat customer di Mekari'];
- }
- } catch (Exception $e) {
- return ['success' => false, 'message' => 'Customer sync error: ' . $e->getMessage()];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment