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ığı
- 01
Workflow Rules altında modül Quotes, tetik On Create. Teklif üzerinde firma değiştirilebiliyorsa On Edit +
Account_Namealanı koşulu da eklenir. - 02
Eylem Function, argüman
quoteId, Quote Id alanına eşlenir. - 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.
| Alan | Değer | Not |
|---|---|---|
| Billing_Street | Billing_Street | |
| Billing_City | Billing_City | |
| Billing_State | Billing_State | |
| Billing_Code | Billing_Code | Posta kodu. |
| Billing_Country | Billing_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)
{
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();
}
}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ızputsatı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şulunaBilling_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
- 01Quotes
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.
- 02Quotes
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.
- 13Contacts · 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.