示例#1
0
    /// <summary>
    /// web servis işlemlerini kullanmadan önce yapılması gereken temel / hazırlık işlemleri
    /// </summary>
    static void CheckToken()
    {
        if (client == null)
        {
            client = new Integration10();

            ///Test sistemine bağlantı yapılacak
            client.Url = @" https://efaturatest.inposia.com.tr/CommonInvoice.Web.Service/Integration10.asmx";
        }

        ///güvenlik bilgisi alınmadıysa, oturum aç ve token değerini al (e-arşiv modülü için)
        if (string.IsNullOrEmpty(token))
        {
            token = client.CreateUserToken(@"webServiceUserName", "webServicePassword", ModuleType.eArchive);
        }
    }
示例#2
0
    /// <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);
            }
        }