Erkan Eser

AKTARILAN FATURANIN İŞLEM DÖVİZ KURUNU DEĞİŞTİRME

  Tiger/Logo Objects

Merhaba,

Orderbilling ve dispatch billing methodlarıyla logo ya sipariş ve irsaliye faturalandırma yapıyorum.

faturalandırma yaptıktan sonra faturayı read() ile okuyup faturanın işlem dövizi ve raporlama döviz kurlarını güncelleyip post() ediyorum. fakat bu işlemi yaptıktan sonra,  faturanın satırda ki dovizli birim fiyatını değiştiriyor doğal olarak tl karşılığı ve dövizli toplamıda yanlış oluyor.

Örnek olarak ;  tek satırlık bir sipariş ve siparişin tek satır birim fiyatı 1750.00$

1750.00$ olan bir siparişi orderbilling ile faturalandıp daha sonra işlem dövizini güncellediğimde faturanın satırda ki doviz birim fiyatını 1759.60151$  yapıp dip toplamıda yanlış getiriyor.

olmasını istediğim ; aktardığım faturada ki birim fiyatı 1750.00$ kalıp  güncellediğim işlem döviz kuruna göre tl karşılığını yazması. 


Orderbilling dispatchbilling döviz fatura aktarım


1923 Plus

Onaylanmış Cevap

merhaba, kolay bir yolu var mıdır hocalarımız bizi aydınlatacaktır ama naçizane benim aklıma gelen çözüm faturayı okuduktan sonra satırdaki EDT_PRICE değerini bir değişkene almak, yeni kuru set ettikten sonra EDT_PRICE alanını değişkenle yeniden doldurmak.

yani kabaca 

float f=(float)invoiceLine[invoiceLine.Count - 1].FieldByName("EDT_PRICE").Value;

invoiceLine[invoiceLine.Count - 1].FieldByName("TC_XRATE").Value=6.02; //yeni kur

invoiceLine[invoiceLine.Count - 1].FieldByName("EDT_PRICE").Value=f;


17/05/19 00:38


Furkan Kaya



Merhaba LOGO içerisinde böyle bir parametre var. Buradaki parametrenin değerine göre işlem dövizi güncellendiği durumlarda, o kur bilgisine göre yerel para birimi sabit kalıp, işlem dövizi güncellenebiliyor ya da işlem dövizi sabit kalıp, yerel para birimi güncellenebiliyor.


Set kurulduğunda default olarak sizin ilk anlattığınız sonucu veren şekliyle yani İşlem Dövizi Tutarları güncellenecek şekilde oluyor.


LOGO OBJECTS DLL bu parametreyi, görmüyor. 

Ben buradaki değere göre şu şekilde atamalar yapıyorum.


If updlocalortramnt = "1" Then
 ul(stfichehelno - 1).FieldByName("PRICE").Value = dbltostr((CDbl(birimfiyat) / CDbl(beforetrrate)) * CDbl(trrate))
Else
 ul(stfichehelno - 1).FieldByName("PRICE").Value = dbltostr(birimfiyat)
End If
ul(stfichehelno - 1).FieldByName("CURR_PRICE").Value = prcurr


İlgili parametrenin değerini şuradan okuyabilirsiniz.


SELECT [VALUE] FROM L_FIRMPARAMS WHERE FIRMNR = 1 AND CODE = 'SALES_UPDLOCALORTRAMNT'


yukarıdaki sorgu 0 ise işlem dövizi bilgisi güncellensin, 1 ise yerel para birimi güncellensin.


Bu parametrenin aldığı değere göre kur güncellendiğinde yerel para birimi cinsinden birim fiyatı sabit tutup, dövizli birim fiyatı ona göre güncelliyor ya da dövizli birim fiyatı sabit tutup yerel para biriminden birim fiyatı dövizli birim fiyata göre yeni kurdan hesaplıyor.

Ben hareketi atmadan önce siparişteki kur bilgisini alıp, ardından hareketin yapıldığı tarihte günlük kur tablosunda satış için kullanılan döviz tipi hangisi ise oradan kuru alıp birim fiyat atamasında matematiksel işlemlerde kullanıyorum.


Gönül isterdi ki LOGO OBJECTS DLL tüm bu parametreleri görüyor tüm işlemleri LOGO' daki parametrelere göre otomatik yapsın.


18/05/19 11:27

Cevap vermek için giriş yapmanız gerekmektedir.