Quotes · Accounts

Teklif açıldığında bağlı firmanın fatura adresini teklifin Billing alanlarına kopyalar; teklif PDF'inde adres eksik çıkmaz, temsilci beş alanı elle doldurmaz.

Modül
Quotes · Accounts
Tetik
Workflow · On Create
Argüman
quoteId = Quote Id
Uzunluk
98 satır Deluge
Güncelleme

Ne yapar

Teklifin Account_Name lookup'ından firmayı okur, Billing_Street / City / State / Code / Country beşlisini alır ve teklife aynı adlarla yazar. Firma adreslerinin tamamı boşsa dokunmaz. Boş olan tek tek alanlar da yazılır (kaynak boşsa hedef boşalır).

Kurulum mantığı

  1. 01

    Workflow Rules altında modül Quotes, tetik On Create. Teklif üzerinde firma değiştirilebiliyorsa On Edit + Account_Name alanı koşulu da eklenir.

  2. 02

    Eylem Function, argüman quoteId, Quote Id alanına eşlenir.

  3. 03

    Teklif adres alanlarını layout'ta salt okunur yapmak isterseniz bu fonksiyon yine yazar; API layout kısıtından etkilenmez.

Alan eşlemesi

Koda yazılan alanlar ve kendi org'unuzda dikkat etmeniz gerekenler.

AlanDeğerNot
Billing_StreetBilling_Street
Billing_CityBilling_City
Billing_StateBilling_State
Billing_CodeBilling_CodePosta kodu.
Billing_CountryBilling_Country

Deluge kodu

Kodu olduğu gibi kopyalayın; değiştirmeniz gereken yerler yukarıdaki tabloda işaretli. İzle düğmesi, fonksiyonu adım adım okutur.

void automation.copyAccountBillingAddressToQuote(String quoteId)
void automation.copyAccountBillingAddressToQuote(String quoteId)
{
try
{
	info "===== Quote Fatura Adresi Kopyalama Başladı =====";
	info "Quote ID: " + quoteId;

	if(quoteId == null || quoteId.trim() == "")
	{
		info "Quote ID boş.";
		return;
	}

	quoteRecord = zoho.crm.getRecordById("Quotes",quoteId.toLong());

	if(quoteRecord == null || quoteRecord.isEmpty())
	{
		info "Quote bulunamadı.";
		return;
	}

	accountLookup = quoteRecord.get("Account_Name");

	if(accountLookup == null)
	{
		info "Quote'a bağlı firma yok.";
		return;
	}

	accountId = "";

	if(accountLookup.get("id") != null)
	{
		accountId = accountLookup.get("id").toString();
	}

	if(accountId == "")
	{
		info "Firma ID bulunamadı.";
		return;
	}

	accountRecord = zoho.crm.getRecordById("Accounts",accountId.toLong());

	if(accountRecord == null || accountRecord.isEmpty())
	{
		info "Firma bulunamadı.";
		return;
	}

	billingStreet = "";
	billingCity = "";
	billingState = "";
	billingCode = "";
	billingCountry = "";

	if(accountRecord.get("Billing_Street") != null)
	{
		billingStreet = accountRecord.get("Billing_Street").toString();
	}
	if(accountRecord.get("Billing_City") != null)
	{
		billingCity = accountRecord.get("Billing_City").toString();
	}
	if(accountRecord.get("Billing_State") != null)
	{
		billingState = accountRecord.get("Billing_State").toString();
	}
	if(accountRecord.get("Billing_Code") != null)
	{
		billingCode = accountRecord.get("Billing_Code").toString();
	}
	if(accountRecord.get("Billing_Country") != null)
	{
		billingCountry = accountRecord.get("Billing_Country").toString();
	}

	if(billingStreet == "" && billingCity == "" && billingState == "" && billingCode == "" && billingCountry == "")
	{
		info "Firma fatura adresi boş.";
		return;
	}

	updateMap = Map();
	updateMap.put("Billing_Street",billingStreet);
	updateMap.put("Billing_City",billingCity);
	updateMap.put("Billing_State",billingState);
	updateMap.put("Billing_Code",billingCode);
	updateMap.put("Billing_Country",billingCountry);

	updateResponse = zoho.crm.updateRecord("Quotes",quoteId.toLong(),updateMap);
	info "Güncelleme sonucu: " + updateResponse;
}
catch (e)
{
	info "Hata: " + e.toString();
}
}
5 ADIMİzle düğmesi fonksiyonu adım adım aydınlatır.

Dikkat edilecekler

  • Kaynak boşsa hedef boşalır

    Tek tek alanlar updateMap'e her durumda konur; firmada eyalet boşsa teklifte de boşalır. Bunu istemiyorsanız put satırlarını if(x != "") ile sarmalayın. Bu sarmal yalnız firmada boş olan alanları atlar; firmada dolu olanlar teklifte elle girilmiş değerin üstüne yine yazılır, çünkü fonksiyon teklifin mevcut adresini okumaz. Elle girilen adresi korumak için workflow koşuluna Billing_Street boş filtresi ekleyebilirsiniz; bu filtre yalnız sokak alanına bakar ve On Edit kurulumunda firma değiştiğinde önceki kopyadan dolu kalan adres yüzünden yeni firmanın adresi aktarılmaz.

  • Firma adresi sonradan değişirse

    Teklif güncellenmez; adres kopyası teklif açılış anına aittir. İstenen davranış budur: teklif bir belgedir, sonradan değişmemeli.

İlgili kayıtlar

  1. 01
    Quotes

    Teklif fatura adresini teslimat adresine kopyala

    Teklifin fatura adresini teslimat adresine kopyalar. Fatura adresi tamamen boşsa dokunmaz; dolu teslimat adresini korumaz, üstüne yazar.

    Workflow · On Create / On Edit69 satır Deluge
  2. 02
    Quotes

    Teklif başlığını müşteri ve üründen üret

    Teklif başlığını "Ahmet Yılmaz - FUE Standart" biçiminde otomatik yazar; teklif listesi, PDF adı ve e-posta konusu kim için hangi ürün olduğunu ilk bakışta söyler.

    Workflow · On Create / On Edit111 satır Deluge
  3. 13
    Contacts · Accounts

    Firma fatura adresini kişiye aktar

    Kişi kaydı bir firmaya bağlı açıldığında firmanın fatura adresini kişinin posta adresi (Mailing) alanlarına kopyalar; kişi kartında adres boş kalmaz, toplu posta ve fatura yazdırmada eksik adres çıkmaz.

    Workflow · On Create98 satır Deluge

30+

proje

%99

müşteri memnuniyeti

3 kanal

kurulum sonrası destek

İletişim

Mevcut sisteminiz, hedefiniz ve takviminize göre somut bir teklif ve canlı demo hazırlıyoruz. Sözleşme öncesi taahhüt yok.

Görüşme planla

Bilgileriniz KVKK Aydınlatma Metni kapsamında işlenir. 24 saat içinde dönüş yapıyoruz.