Son yıllarda E – Fatura / E – Arşiv muhabbetlerinin döndüğünü biliyorsunuzdur. E-Fatura tarafında yaptığımız bir çalışma üzerinde E-Fatura mükelleflerinin anlık sorgulanması gerektiğini gördük. Bunun için herhangi bir web servis bulamadık. Bundan dolayı kendi web servisimizi yazalım dedik.
Aşağıdaki kod excel çıktısının içerisinde tek seferlik bir text search yaparak cevabını vermekte. in_string fonksiyonu daha önceden hazırdı. 🙂 ;
function in_string( $string, $val ) { if ( !( strrpos( $string, $val ) === false ) ) return true; return false; } function check_tax( $vkn ) { if( !$vkn || !is_numeric( $vkn ) || !in_array( strlen( $vkn ), array( 10, 11 ) ) ) return false; set_time_limit( 60 ); $get = file_get_contents("http://sorgu.efatura.gov.tr/kullanicilar/yliste.php?&xls" ); if( !$get ) return false; $return = false; if( in_string( $get, $vkn ) ) $return = true; unset( $get ); // ufak bi temizlik return $return; } check_tax( 'VERGI_NO' );
Tabiki siz bu işlemi sürekli olarak sorgu.efatura.gov.tr üzerinden çekmek yerine veritabanınıza veya başka bir dosyanıza kaydedip sorgulamalarınızı yapabilirsiniz..
edit : Barış Demir
Bir yazılımcı arkadaşın yardımıyla aşağıdaki kadar olayı basitleştirmiş oldu. Teşekkürler..
function check_cari_tax( $vkn ) { if( !$vkn ) return 0; $url = 'http://sorgu.efatura.gov.tr/kullanicilar/yliste.php?ara='.$vkn; $result = file_get_contents( $url ); if( preg_match( "/".$vkn."/i", $result ) ) return 1; return 0; }
Can I simply just say what a relief to discover someone that actually understands what they’re talking about on the net.
You actually know how to bring a problem to light and make it important.
More and more people need to check this out and understand this side of your story.
I was surprised that you’re not more popular since you most certainly possess the
gift.
thanks, I try to produce content as soon as possible. I do not intend to be popular. my aim is to solve long lasting errors easily.
Kullanımı detay verelim, 🙂
id ataması yapılması lazım yoksa çok veri döner.
id – sayfa veya kullanıcı olarak projeye göre şekillenebilir.
Sayfa İçinde Kullanımı:
taxnumber, $row->id);?>
İçerik Alanı: (Edit veya View sayfalarında ön tanımlama yapılarak html kullanılır.)
$tpl->efatura = $this->eFaturaKontrol($row->taxnumber, $row->id);
Lang::$word->EFATURA – dil paketi için istenirse elle yazılır.
class.php
/**
* Customer::eFaturaKontrol()
*
* @param int $taxnumber
* @return
*/
public static function eFaturaKontrol($taxnumber, $id)
{
if(!$taxnumber)
return 0;
$url = ‘http://sorgu.efatura.gov.tr/kullanicilar/yliste.php?ara=’.$taxnumber;
$result = file_get_contents($url);
if(preg_match( “/”.$taxnumber.”/i”, $result))
return ‘EFATURA.'” class=”btn btn-sm btn-label-primary”>E ‘;
return ‘EARSIV.'” class=”btn btn-sm btn-label-danger”>H ‘;
}
iyi çalışmalar
Merhaba,
Değerli yorumun için teşekkür ederim. Fakat paylaşmış olduğun kod satırları eksik gibi. Yeni başlayanlar örnekten zorluk çekebilirler.
Teşekkürler.. 🙂