Open serkankayaoglu opened 1 month ago
Merhabalar,
Rica ederim yorumunuz beni mutlu etti.
Etiket derken bir firmanın birdan fazla vergi nosunu mu kast ediyor dökümanda bulamadım etiket diye bir şey.
Evet vergi numarasını sorgulattığımız zaman birden fazla sonuç dönüyor. Bu gibi durumlarda da "Etiket gönderilmesi zorunludur" diye hata dönüyor.
$musteri_bilgi = $elogo->musteri_bilgisi_getir($vergi_no);
Şeklinde sorgulattığım zaman aşağıdaki gibi bir sonuç geliyor. Büyük ihtimalle buradaki Alias bilgilerinden bir tanesini seçip göndermemiz gerekiyor ama buna dair bir bilgi bulamadım bende.
stdClass Object
(
[DespatchAdvice] => 0
[DespatchAdviceGbList] => stdClass Object
(
)
[DespatchAdvicePkList] => stdClass Object
(
)
[Identifier] => XXXXXXXXXX
[Invoice] => 4
[InvoiceGbList] => stdClass Object
(
[GibUserInfoType] => Array
(
[0] => stdClass Object
(
[Alias] => urn:mail:defaultgb@XXXXXXXXXX.com
[AliasRegisterTime] => 2022-07-06T20:24:45
[FirstCreationTime] => 2022-07-06T20:24:45
[Identifier] => XXXXXXXXXX
[Title] => XXXXXXXXXX ANONİM ŞİRKETİ
[Type] => OZEL
)
[1] => stdClass Object
(
[Alias] => urn:mail:merkezgb@XXXXXXXXXX.com
[AliasRegisterTime] => 2022-10-21T14:32:17
[FirstCreationTime] => 2022-07-06T20:24:45
[Identifier] => XXXXXXXXXX
[Title] => XXXXXXXXXX ANONİM ŞİRKETİ
[Type] => OZEL
)
)
)
[InvoicePkList] => stdClass Object
(
[GibUserInfoType] => Array
(
[0] => stdClass Object
(
[Alias] => urn:mail:defaultpk@XXXXXXXXXX.com
[AliasRegisterTime] => 2022-07-06T20:24:45
[FirstCreationTime] => 2022-07-06T20:24:45
[Identifier] => XXXXXXXXXX
[Title] => XXXXXXXXXX ANONİM ŞİRKETİ
[Type] => OZEL
)
[1] => stdClass Object
(
[Alias] => urn:mail:merkezpk@XXXXXXXXXX.com
[AliasRegisterTime] => 2022-10-21T14:32:17
[FirstCreationTime] => 2022-07-06T20:24:45
[Identifier] => XXXXXXXXXX
[Title] => XXXXXXXXXX ANONİM ŞİRKETİ
[Type] => OZEL
)
)
)
)
elogo_doc/webservices.pdf => içinde 7. sayfada var sanırım bu bilgi.
ALIAS : Belgenin gönderileceği alıcı etiketi ( Bu bilgi boşsa ve sistemde bir tane kullanıcı etiketi varsa, sistemdeki etiket kullanılır. Sistemde birden fazla etiket varsa ve bu alan boşsa yanıt olarak hata mesajı verilir. )
Örnek Format : ALIAS:urn:mail:defaultpk@firma.com.tr
Merhaba. Etiket göndermenizi gerektirecek kısım tam olarak neresi? Vergi no gönderip bilgiyi alamıyormusunuz?14 Eki 2024 12:01 tarihinde serkankayaoglu @.> yazdı: elogo_doc/webservices.pdf => içinde 7. sayfada var sanırım bu bilgi. ALIAS : Belgenin gönderileceği alıcı etiketi ( Bu bilgi boşsa ve sistemde bir tane kullanıcı etiketi varsa, sistemdeki etiket kullanılır. Sistemde birden fazla etiket varsa ve bu alan boşsa yanıt olarak hata mesajı verilir. ) Örnek Format : @.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>
Fatura kesim aşamasına geçmeden önce aşağıdaki kod ile bir sorgu yapıyorum. Bu sorgunun sonucuna göre de senaryoyu belirliyorum. TEMELFATURA yada EARSIVFATURA olarak. Anca fatura kesme işlemini yapmaya çalıştığımda yukarıdaki belirttiğim hatayı alıyorum. Benim anladığım kadarıyla, müşteri vergi numarasına ait birden fazla ALIAS dönüyorsa, hangi ALIAS a fatura kesileceğini belirtmek gerekiyor.
Yukarıda belirttiğim gibi GibUserInfoType dizisi birden fazla sonuç döndürüyor bazı vergi numaralarında.
`$musteri_bilgi = $elogo->musteri_bilgisi_getir($sorgu_deger);
if( $musteri_bilgi->Invoice < 1 ) {
$fatura->setFaturaSenaryo('EARSIVFATURA');
$einvoice = $elogo->earsiv_gonder($fatura, $benim_firmam, $musteri_firmasi);
} else {
$fatura->setFaturaSenaryo('TEMELFATURA');
$einvoice = $elogo->efatura_gonder($fatura, $benim_firmam, $musteri_firmasi);
}`
Eğer etiket boşsa e arşiv. Doluysa efatura. Şu an kullandığım kodları size göndereyim onun üzerinden istediğiniz gibi devam edin14 Eki 2024 12:53 tarihinde Serkan Kayaoğlu @.***> yazdı: Fatura kesim aşamasına geçmeden önce aşağıdaki kod ile bir sorgu yapıyorum. Bu sorgunun sonucuna göre de senaryoyu belirliyorum. TEMELFATURA yada EARSIVFATURA olarak. Anca fatura kesme işlemini yapmaya çalıştığımda yukarıdaki belirttiğim hatayı alıyorum. Benim anladığım kadarıyla, müşteri vergi numarasına ait birden fazla ALIAS dönüyorsa, hangi ALIAS a fatura kesileceğini belirtmek gerekiyor. `$musteri_bilgi = $elogo->musteri_bilgisi_getir($sorgu_deger); if( $musteri_bilgi->Invoice < 1 ) {
$fatura->setFaturaSenaryo('EARSIVFATURA');
$einvoice = $elogo->earsiv_gonder($fatura, $benim_firmam, $musteri_firmasi);
} else {
$fatura->setFaturaSenaryo('TEMELFATURA');
$einvoice = $elogo->efatura_gonder($fatura, $benim_firmam, $musteri_firmasi);
}`
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>
Gönderdiğim kod yaptığım işleme ait. Ancak dediğim gibi $musteri_bilgi->InvoiceGbList->GibUserInfoType içerisindeki dizide birden fazla sonuç dönüyorsa o zaman etiket seçmek zorunludur hatası dönüyor.
elogo_doc/webservices.pdf => içinde 7. sayfada var bu bilgi ancak sınıfa nasıl entegre edebiliriz bulamadım.
public function eFaturaKontrol($vkn) {
$elogo_username = "";
$elogo_password = "";
$elogo_test = true;
$elogo = new Elogo($elogo_username, $elogo_password, $elogo_test);
$elogo_login = $elogo->giris_yap();
if(isset($elogo_login->sessionID)){
$musteri_bilgi = $elogo->musteri_bilgisi_getir($vkn);
$objectIn = $musteri_bilgi->InvoicePkList;
if(!isset($objectIn->GibUserInfoType)) {
return ['mukellefDegil' => 'eFatura Mükellefi Değil'];
} else {
return ['mukellef' => 'eFatura Mükellefi'];
}
} else {
return ['hata' => 'eLogo Giriş Bilgileri Hatalı'];
}
}
Bahsettiğiniz gibi bir hatayla hiç karşılaşmadım.
Gönderdiğim kod yaptığım işleme ait. Ancak dediğim gibi $musteri_bilgi->InvoiceGbList->GibUserInfoType içerisindeki dizide birden fazla sonuç dönüyorsa o zaman etiket seçmek zorunludur hatası dönüyor.
elogo_doc/webservices.pdf => içinde 7. sayfada var bu bilgi ancak sınıfa nasıl entegre edebiliriz bulamadım.
Bunun için bir güncelleme göndereceğim akşam.
Fatura kesim aşamasına geçmeden önce aşağıdaki kod ile bir sorgu yapıyorum. Bu sorgunun sonucuna göre de senaryoyu belirliyorum. TEMELFATURA yada EARSIVFATURA olarak. Anca fatura kesme işlemini yapmaya çalıştığımda yukarıdaki belirttiğim hatayı alıyorum. Benim anladığım kadarıyla, müşteri vergi numarasına ait birden fazla ALIAS dönüyorsa, hangi ALIAS a fatura kesileceğini belirtmek gerekiyor.
Yukarıda belirttiğim gibi GibUserInfoType dizisi birden fazla sonuç döndürüyor bazı vergi numaralarında.
`$musteri_bilgi = $elogo->musteri_bilgisi_getir($sorgu_deger);
if( $musteri_bilgi->Invoice < 1 ) { $fatura->setFaturaSenaryo('EARSIVFATURA'); $einvoice = $elogo->earsiv_gonder($fatura, $benim_firmam, $musteri_firmasi); } else { $fatura->setFaturaSenaryo('TEMELFATURA'); $einvoice = $elogo->efatura_gonder($fatura, $benim_firmam, $musteri_firmasi); }`
TEMELFATURA olduğunu şimdi fark ettim. Tamamdır :)
Gönderdiğim kod yaptığım işleme ait. Ancak dediğim gibi $musteri_bilgi->InvoiceGbList->GibUserInfoType içerisindeki dizide birden fazla sonuç dönüyorsa o zaman etiket seçmek zorunludur hatası dönüyor. elogo_doc/webservices.pdf => içinde 7. sayfada var bu bilgi ancak sınıfa nasıl entegre edebiliriz bulamadım.
Bunun için bir güncelleme göndereceğim akşam.
Teşekkür ederim, akşam güncellemeyi görmek için tekrar giriş yapacağım. Kolay gelsin.
Merhabalar, dönüşünüzü ve güncellemenizi bekliyorum.
Merhabalar, dönüşünüzü ve güncellemenizi bekliyorum.
src -> Models -> Elogo.php 3 fonksiyonu kütüphanenizde güncelleyip bu şekilde test eder misiniz?
@serkankayaoglu
`public function dokuman_yolla($fatura_turu = 'EINVOICE', $zip_data, $temel_fatura = false, $alias = null){
$document = new ElogoDocumentType();
$binary_data = new ElogoBase64BinaryData();
$binary_data->setValue($zip_data['zip_data']);
$document->setBinaryData($binary_data);
$document->setCurrentDate(date('c'));
$document->setFileName($zip_data['zip_name']);
$document->setHash(md5($zip_data['zip_data']));
if($temel_fatura === true && !empty($alias)){
$eLogoParamList = ['SIGNED=0', 'ALIAS=urn:'. $alias];
} else {
$eLogoParamList = ['SIGNED=0'];
}
$eLogoParamList[] = "DOCUMENTTYPE=".$fatura_turu;
$data = [
'sessionID' => $this->session_id,
'paramList' => $eLogoParamList,
];
if($document != null){
$data['document'] = $document->toArray();
}
$result = $this->client->SendDocument($data);
if(property_exists($result, 'SendDocumentResult')){
if($result->SendDocumentResult->resultCode == 1){
return $result;
}
else{
throw new ElogoHata($result->SendDocumentResult->resultMsg, $result->SendDocumentResult->resultCode);
}
}
else{
throw new ElogoHata("E-Logo cevap veremedi.", 0);
}
}
public function efatura_gonder(Fatura $fatura, BenimFirmam $benim_firmam, MusteriFirmasi $musteri_firmasi, $sadece_ubl_getir = false, $temel_fatura = false, $alias = null){
$convert_ubl = new FaturaUbl($fatura, $benim_firmam, $musteri_firmasi);
$xml = $convert_ubl->getir_ubl_xml('TICARIFATURA');
if($sadece_ubl_getir){
return $xml;
}
$zip_data = $this->create_zip($xml);
return $this->dokuman_yolla('EINVOICE', $zip_data, $temel_fatura, $alias);
}
public function earsiv_gonder(Fatura $fatura, BenimFirmam $benim_firmam, MusteriFirmasi $musteri_firmasi, $sadece_ubl_getir = false, $temel_fatura = false, $alias = null){
$convert_ubl = new FaturaUbl($fatura, $benim_firmam, $musteri_firmasi);
$xml = $convert_ubl->getir_ubl_xml('EARSIVFATURA');
if($sadece_ubl_getir){
return $xml;
}
$zip_data = $this->create_zip($xml);
return $this->dokuman_yolla('EARCHIVE', $zip_data, $temel_fatura, $alias);
}
// Kullanım earsiv_gonder($fatura, $benim_firmam, $musteri_firmasi, $sadece_ubl_getir = false, $temel_fatura = false, $alias = null)
// efatura_gonder($fatura, $benim_firmam, $musteri_firmasi, $sadece_ubl_getir = false, $temel_fatura = false, $alias = null)`
Merhabalar, dönüşünüzü ve güncellemenizi bekliyorum.
Güncelleme geciktiği için kusura bakmayın. Acil bir kaç iş vardı sabahladık bir kaç gün. Cuma akşamı gibi bir sorun çıkmazsa güncelleme göndericem ama arkadaşların yaptığı yöntemler ile çözüm bulabilirsiniz.
Merhabalar,
Geçikme için kusura bakmayın. Yoğunluktan güncelleme çıkamadım.
$musteri_firmasi->setAlias('urn:mail:defaultgb@XXXXXXXXXX.com');
Bu şekilde müşteri firması bilgileri girerken etiketi girebilirsiniz. Demo hesabında test ettim sonuç başarılı ama sizde test edep bilgi dönersiniz güncelleme yapabilirim.
Öncelikle yardımlarınız için teşekkür ederim. Kodu güncelledim ve gerekli testleri yapıyorum. Sorunsuz çalışıyor şimdilik. Ancak ELogo.php dosyasında 171. satırda aşağıdaki kodları unutmuşsunuz. Bilgi vermek istedim. Kolay gelsin.
print_r($eLogoParamList); exit;
Merhabalar,
Öncelikle yazmış olduğunuz bu güzel sınıf için teşekkür ederim. Epey işimizi kolaylaştırdı. Ancak bir noktada tıkandım ve çözemiyorum. Bazı müşterilerin birden fazla etiket kaydı bulunmakta ve aşağıdaki gibi bir hata almaktayız.
"XXXXXXXXXX vergi numarasına ait birden fazla etiket mevcut. Etiket bilgisi gönderilmelidir"
Etiketi nasıl yollayabileceğim konusunda yardıma ihtiyacım var. İlgilenme şansınız olursa çok memnun olurum.