Ne yapar
Teklifin Billing_* beşlisini okur, Shipping_* beşlisine yazar. Fatura adresi tamamen boşsa dokunmaz. Kısmen doluysa beş alanın beşini de yazar; faturada boş olan alanlar teslimata boş değer olarak gider ve teslimattaki karşılıkları boşalır. Teslimat alanlarının dolu olup olmadığına bakmaz; her tetiklemede fatura adresini teslimata basar.
Kurulum mantığı
- 01
Workflow Rules altında modül Quotes, tetik On Create. Fatura adresi sonradan giriliyorsa On Edit +
Billing_Streetalanı koşulu. - 02
Eylem Function, argüman
quoteId, Quote Id alanına eşlenir. - 03
Teslimat adresi farklı olabilen teklifler için (depoya sevk gibi) tetik koşuluna
Shipping_Street boşfiltresi koyun; aksi halde elle girilen teslimat adresi ezilir.
Alan eşlemesi
Koda yazılan alanlar ve kendi org'unuzda dikkat etmeniz gerekenler.
| Alan | Değer | Not |
|---|---|---|
| Billing_Street | Shipping_Street | |
| Billing_City | Shipping_City | |
| Billing_State | Shipping_State | |
| Billing_Code | Shipping_Code | |
| Billing_Country | Shipping_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.copyQuoteBillingAddressToShipping(String quoteId)
{
try
{
info "===== Quote Teslimat 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;
}
billingStreet = "";
billingCity = "";
billingState = "";
billingCode = "";
billingCountry = "";
if(quoteRecord.get("Billing_Street") != null)
{
billingStreet = quoteRecord.get("Billing_Street").toString();
}
if(quoteRecord.get("Billing_City") != null)
{
billingCity = quoteRecord.get("Billing_City").toString();
}
if(quoteRecord.get("Billing_State") != null)
{
billingState = quoteRecord.get("Billing_State").toString();
}
if(quoteRecord.get("Billing_Code") != null)
{
billingCode = quoteRecord.get("Billing_Code").toString();
}
if(quoteRecord.get("Billing_Country") != null)
{
billingCountry = quoteRecord.get("Billing_Country").toString();
}
if(billingStreet == "" && billingCity == "" && billingState == "" && billingCode == "" && billingCountry == "")
{
info "Fatura adresi boş.";
return;
}
updateMap = Map();
updateMap.put("Shipping_Street",billingStreet);
updateMap.put("Shipping_City",billingCity);
updateMap.put("Shipping_State",billingState);
updateMap.put("Shipping_Code",billingCode);
updateMap.put("Shipping_Country",billingCountry);
updateResponse = zoho.crm.updateRecord("Quotes",quoteId.toLong(),updateMap);
info "Güncelleme sonucu: " + updateResponse;
}
catch (e)
{
info "Hata: " + e.toString();
}
}Dikkat edilecekler
- Teslimat ezilir
Fonksiyon teslimat alanlarını kontrol etmez; koşulsuz On Edit'e bağlanırsa her fatura değişikliği teslimatı ezer. Filtreyi workflow tarafında kurun.
- Aynı modül içi kopya
copyAccountBillingAddressToQuoteile birlikte kullanılabilir: önce firmadan faturaya, sonra faturadan teslimata. İki fonksiyonu aynı On Create kuralına bağlamak sırayı garanti etmez; teslimat fonksiyonu fatura adresi yazılmadan önce çalışırsa kopya yapmaz. Firma fonksiyonunun güncellemesi workflow tetiklemediği için teslimat kopyasını ayrı bir On Edit kuralına bağlamak da zinciri kurmaz. Sıranın kesin olması gerekiyorsa iki adımı tek fonksiyonda art arda çalıştırın.
İlgili kayıtlar
- 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.
- 12Quotes · Accounts
Firma fatura adresini teklife aktar
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.
- 03Leads
Mükerrer lead'leri telefondan birleştir
Aynı telefon numarasıyla ikinci kez gelen lead'leri elle karşılaştırmadan tek kayda indirir; reklam formu, WhatsApp ve web sitesinden ayrı ayrı gelen kayıtlar tek lead'de toplanır.