/// <summary> /// başarılı şekilde iletilmiş e-arşiv belgeleri için html içerik alma /// </summary> public static string EArsivBelgesiIcinHtmlGetir(string uuid) { ErcStateMachineCode durumKodu = ErcStateMachineCode.Init; ///durumKodu=ExecOnDB("Select Durum from ???? Where UUID=uuid"); ///yerel veritabanından daha fazla alan alınarak, aciklama mesajı güçlendirilebilir if (durumKodu != ErcStateMachineCode.OnSuccess) { throw new Exception("Bu belge için html içerik alınamaz. Belge işleniyor olabilir ya da hatalı sonlandırıldı"); } CheckToken(); return(client.GetCommonDocumentHtmlByUUID(token, Guid.Parse(uuid))); }
/// <summary> /// Senaryo 1 /// • Token oluşturma. /// • NetleEFatura formatında bir e-arşiv hazırlama. /// • Faturayı web servise gönderme. /// • Faturayı indirme. /// • Faturanın html’ini alma. /// </summary> public static void PrepareElectronicArchiveByNetleEFatura() { Integration10 client = new Integration10(); client.Url = @" https://efaturatest.inposia.com.tr/CommonInvoice.Web.Service/Integration10.asmx"; var token = client.CreateUserToken(@"UserName", "Password", ModuleType.eArchive); var nef = new NetleEFatura(); #region [ invoice header ] var uniqueId = Guid.NewGuid(); nef.GUID = uniqueId.ToString(); nef.Tedarikci = new Tedarikci() // sender information { FirmaAdi = "Sender Company", // company name VergiNoTCKimlikNo = "1122334456", // company tax number WebAdresi = "www.inposia.com.tr", // web address Il = "izmir", // city IlceSemt = "konak", //district Ulke = "Türkiye", //country PostaKodu = "35000", // postal code VergiDairesi = "konak" // tax office }; nef.Musteri = new Musteri() // receiver / customer information { Alias = "urn:mail:[email protected]", // receiver alias FirmaAdi = "Receiver Company", // company name VergiNoTCKimlikNo = "1623427874", // company tax number WebAdresi = "www.inposia.com.tr", // web adress Il = "izmir", // city IlceSemt = "konak", // district Ulke = "Türkiye", // country PostaKodu = "35310", // post code VergiDairesi = "konak" //tax office }; nef.DuzenlenmeTarihi = DateTime.Now; nef.No = "ABC2016000000629"; nef.DovizTipi = "TRY"; nef.KDVTutari = 36; nef.ToplamTutar = 200; nef.OdenecekToplamTutar = 236; nef.Tip = NetleEFaturaType.SATIS; nef.Senaryo = NetleEFaturaSenaryoType.TEMELFATURA; #endregion #region [ items ] nef.FaturaKalemleri = new FaturaKalemi[] { new FaturaKalemi() { Aciklama = "energry drink", //description Miktar = 2, // quantity MusteriStokNo = "MusStok001", // customer stock code TedarikciStokNo = "TedStok001", // supplier stock code UreticiStokNo = "UretStok001", // manufacturer stock code BirimFiyat = 100, // unit price ToplamTutar = 200, // total amount KDVOrani = 18, //vat rate KDVTutari = 36, // vat amount StokAdi = "energy drink", // item name Birim = "NIU", // unit DovizTipi = "TRY" // currency } }; #endregion var uuid = Guid.NewGuid(); client.UploadInvoice(token, uuid, "", nef); var di = client.GetEArchiveStatus(token, uuid); Console.WriteLine("Status : " + di.OK); var html = client.GetCommonDocumentHtmlByUUID(token, uuid); }
/// <summary> /// Senaryo: /// • Oturum Açma /// • E-SMM Makbuz Yükleme /// • Makbuz Durumunu Sorgulama /// • Makbuz Pdf Alma /// • Makbuz Html Alma /// • Makbuz Arama /// • Makbuz İptal Etme /// </summary> public static void PrepareESMMByNetleEFatura() { try { var client = new Integration10(); client.Url = "https://efaturatest.inposia.com.tr/CommonInvoice.Web.Service/Integration10.asmx"; // Modül tipi olarak eSEVoucher kullanılması önemlidir var smmToken = client.CreateUserToken(@"KullanıcıAdı", "Şifre", ModuleType.eSEVoucher); /// smmNEF, NetleEFatura tipinde oluşturulmuş serbest meslek makbuzu belgesidir /// documentUUID değeri, o belgeye has tekil bir değer olacaktır ve gelecek sorgulamalarda kullanılacaktır, kullanıcı tarafından oluşturulup verilir /// prefix değeri, belgenin numarasıyla ilgilidir, şu aşamada boş bırakılmalıdır var uuid = Guid.NewGuid(); client.UploadCommonDocument(smmToken, uuid, "", GetSMMInvoice(uuid)); Console.WriteLine("Makbuz gönderildi"); System.Threading.Thread.Sleep(5000); // Gönderim gerçekleştirildikten sonra, arka planda asenkron makbuz oluşturma işleminin bitmesi beklenmelidir. // Ardından, makbuz durumu sorgulanarak gönderimin durumu sorgulanmalıdır. Başarılı olan makbuzlar için pdf alma işlemine geçilebilir. var status = client.GetEArchiveStatus(smmToken, uuid); // makbuz durumu sorgulanabilir Console.WriteLine("Gönderildi mi ? :" + status.OK); var pdf = client.GetCommonDocumentPDFByUUIDs(smmToken, new UbltrPDFInput[] { new UbltrPDFInput { UUID = uuid } }); //uuid değerine göre pdf elde edilir if (pdf.Length > 0) { File.WriteAllBytes(@"C:\temp\" + uuid.ToString() + ".pdf", pdf[0].PDFContent); } else { Console.WriteLine("Pdf alınamadı"); } // uuid değerine göre html elde edilir var html = client.GetCommonDocumentHtmlByUUID(smmToken, uuid); if (html.Length > 0) { File.WriteAllText(@"c:\temp\test.html", html); } var seado = new SearchEArcDocumentOption() { //Döküman numarası, doldurulmassa filtreye uyan tüm dökümanlar InvoiceNumber = "SMM2018000000315", // Tarih aralığı başlangıç değeri StartDateTime = DateTime.Parse("2018-06-03"), //Tarih aralığı bitiş değeri EndDateTime = DateTime.Parse("2018-06-22") }; var search = client.SearchEArchive(smmToken, seado); //uuid değerine göre makbuz iptal edilir client.DeleteEArchive(smmToken, uuid); } catch (Exception exc) { Console.WriteLine("Gönderim sürecinde hata oluştu. Hata detayı : " + exc.Message); } }