Ejemplo n.º 1
0
        /// <summary>
        /// Sisteme e-fatura gönderir
        /// </summary>
        /// <returns>Sisteme gönderilen faturanın bilgileri </returns>
        public SendUBLResponseType[] FaturaGonder(TextModel m, ArrayList sslList, BaseInvoiceUBL fatura)
        {
            var createdUBL = fatura.BaseUBL;                                                                      // Fatura UBL i oluşturulur
            UBLBaseSerializer serializer = new InvoiceSerializer();                                               // UBL  XML e dönüştürülür
            var strFatura = serializer.GetXmlAsString(createdUBL);                                                // XML byte tipinden string tipine dönüştürülür

            byte[] zipliFile = ZipUtility.CompressFile(Encoding.UTF8.GetBytes(strFatura), createdUBL.UUID.Value); // XML  ziplenir
            ServicePointManager.SecurityProtocol = TlsSetting.TlsSet(sslList);                                    // TLS/SSL ayarları
            WebServisAdresDegistir();
            using (new OperationContextScope(WsClient.InnerChannel))
            {
                if (WebOperationContext.Current != null)
                {
                    WebOperationContext.Current.OutgoingRequest.Headers.Add(HttpRequestHeader.Authorization,
                                                                            Authorization.GetAuthorization(m.Kullanici, m.Sifre));
                }

                var req = new sendUBLRequest
                {
                    VKN_TCKN           = m.VknTckn,   //tckn veya vkn
                    SenderIdentifier   = m.GbEtiketi, //gönderici birim etiketi
                    ReceiverIdentifier = m.PkEtiketi, //alıcı posta kutusu
                    DocType            = "INVOICE",   //gönderilen döküman tipi. zarf, fatura vs.
                    DocData            = zipliFile    //içinde xml dosyası olan zip lenen dosya.
                };

                return(WsClient.sendUBL(req));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sisteme uygulama yanıtı gönderir
        /// </summary>
        /// <returns>Sisteme gönderilen uygulama yanıtının bilgileri</returns>
        public SendUBLResponseType[] UygulamaYanitiGonder(TextModel m, string gelenFaturaID, ArrayList sslList)
        {
            ApplicationResponseUBL applicationResponse = new ApplicationResponseUBL();
            var createdUBL = applicationResponse.CreateApplicationResponse(m.VknTckn, gelenFaturaID, m.IssueDate);        // Uygulama yanıtı UBL i oluşturulur
            UBLBaseSerializer serializer = new InvoiceSerializer();                                                       // UBL  XML e dönüştürülür
            var strUygulamaYaniti        = serializer.GetXmlAsString(createdUBL);                                         // XML  byte tipinden string tipine dönüştürülür

            byte[] zipliFile = ZipUtility.CompressFile(Encoding.UTF8.GetBytes(strUygulamaYaniti), createdUBL.UUID.Value); // XML  ziplenir

            ServicePointManager.SecurityProtocol = TlsSetting.TlsSet(sslList);                                            // TLS/SSL ayarları
            WebServisAdresDegistir();

            using (new OperationContextScope(WsClient.InnerChannel))
            {
                if (WebOperationContext.Current != null)
                {
                    WebOperationContext.Current.OutgoingRequest.Headers.Add(HttpRequestHeader.Authorization,
                                                                            Authorization.GetAuthorization(m.Kullanici, m.Sifre));
                }

                var req = new sendUBLRequest
                {
                    SenderIdentifier   = m.PkEtiketi, //uygulama yanıtı gönderici birim etiketi
                    ReceiverIdentifier = m.GbEtiketi, //uygulama yanıtı alıcı posta kutusu
                    VKN_TCKN           = m.VknTckn,   // tckn veya vkn
                    DocType            = "APP_RESP",  //gönderilen döküman tipi
                    DocData            = zipliFile    //gönderilen uygulama yanıtının ziplenmiş byte datası
                };

                return(WsClient.sendUBL(req));
            }
        }
Ejemplo n.º 3
0
        public static string writeDiscInvoiceConvertUblToXml(InvoiceType createdUBL, string invoiceType)
        {
            //olusturulan xmli diske kaydediyor
            string xmlPath = "";

            if (invoiceType == nameof(EI.Invoice.Invoices))
            {
                xmlPath = invoiceFolderDraftPath + createdUBL.ID.Value + "." + nameof(EI.DocumentType.XML);
            }
            else if (invoiceType == nameof(EI.Invoice.ArchiveInvoices))
            {
                xmlPath = archiveFolderPath + createdUBL.ID.Value + "." + nameof(EI.DocumentType.XML);
            }

            createInboxIfDoesNotExist(Path.GetDirectoryName(xmlPath)); //dosya yolu yoksa olustur

            using (FileStream stream = new FileStream(xmlPath, FileMode.Create))
            {
                XmlSerializer xmlSerializer = new XmlSerializer(createdUBL.GetType());
                xmlSerializer.Serialize(stream, createdUBL, InvoiceSerializer.GetXmlSerializerNamespace());
            }
            return(xmlPath);
            ////
            ////xmli strıng durunde return edıyoruz contentını dondurmek ıcın  asagıdakı kodu acarız
            //using (StringWriter textWriter = new StringWriter())
            //{
            //    XmlSerializer xmlSerializer = new XmlSerializer(createdUBL.GetType());

            //    xmlSerializer.Serialize(textWriter, createdUBL, InvoiceSerializer.GetXmlSerializerNamespace());
            //    return textWriter.ToString();
            //}
        }
        public JsonResult Edit(InvoiceViewModel invoice)
        {
            var addInvoice = new Invoice()
            {
                id          = invoice.Id,
                company_id  = invoice.CompanyId,
                number      = invoice.Number,
                date        = Convert.ToDateTime(invoice.Date),
                fields      = InvoiceSerializer.SerializeFields(invoice.Fields),
                totalSum    = invoice.TotalSum,
                totalTaxSum = invoice.TotalTaxSum
            };

            _db.Entry(addInvoice).State = EntityState.Modified;
            _db.SaveChanges();

            return(Json(new InvoiceViewModel()
            {
                Id = addInvoice.id,
                Number = addInvoice.number,
                Date = addInvoice.date.ToString(),
                Fields = InvoiceSerializer.DeserializeFields(addInvoice.fields),
                CompanyId = addInvoice.company_id,
                TotalSum = addInvoice.totalSum,
                TotalTaxSum = addInvoice.totalTaxSum
            }));
        }
        public JsonResult Create(InvoiceViewModel invoice)
        {
            var addInvoice = new Invoice()
            {
                company_id  = invoice.CompanyId,
                number      = invoice.Number ?? Guid.NewGuid().ToString(),
                date        = Convert.ToDateTime(invoice.Date),
                fields      = InvoiceSerializer.SerializeFields(invoice.Fields),
                totalSum    = invoice.TotalSum,
                totalTaxSum = invoice.TotalTaxSum
            };

            _db.Invoices.Add(addInvoice);
            _db.SaveChanges();

            return(Json(new InvoiceViewModel()
            {
                Id = addInvoice.id,
                Number = addInvoice.number,
                Date = addInvoice.date.ToString(),
                Fields = InvoiceSerializer.DeserializeFields(addInvoice.fields),
                CompanyId = addInvoice.company_id,
                TotalSum = addInvoice.totalSum,
                TotalTaxSum = addInvoice.totalTaxSum,
            }));
        }
        public JsonResult Detail(long?id)
        {
            if (id == null)
            {
                throw new Exception("Can not find id");
            }

            var invoice = _db.Invoices.Find(id);

            if (invoice == null)
            {
                throw new Exception("Can not find the Invoice");
            }

            return(Json(new InvoiceViewModel()
            {
                Id = invoice.id,
                Number = invoice.number,
                Fields = InvoiceSerializer.DeserializeFields(invoice.fields),
                CompanyId = invoice.company_id,
                CompanyName = invoice.Company.name,
                TotalSum = invoice.totalSum,
                TotalTaxSum = invoice.totalTaxSum,
                Date = invoice.date.ToString()
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Index()
        {
            var list = _db.Invoices.AsEnumerable().Select(invoice => new InvoiceViewModel()
            {
                Id          = invoice.id,
                Number      = invoice.number,
                Date        = invoice.date.ToString(),
                Fields      = InvoiceSerializer.DeserializeFields(invoice.fields),
                CompanyId   = invoice.company_id,
                CompanyName = invoice.Company.name,
                TotalSum    = invoice.totalSum,
                TotalTaxSum = invoice.totalTaxSum
            }).ToList();

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Sisteme e-Arşiv fatura gönderir
        /// </summary>
        /// <returns>Sisteme gönderilen e-Arşiv faturanın bilgileri ve binary PDF datası</returns>
        public sendInvoiceResponseType EArsivGonder(TextModel m, BaseInvoiceUBL arsiv, ArrayList sslList)
        {
            var createdUBL = arsiv.BaseUBL;                                                                       // e-Arşiv fatura UBL i oluşturulur
            UBLBaseSerializer serializer = new InvoiceSerializer();                                               // UBL  XML e dönüştürülür
            var strFatura = serializer.GetXmlAsString(createdUBL);                                                // XML byte tipinden string tipine dönüştürülür

            byte[] zipliFile = ZipUtility.CompressFile(Encoding.UTF8.GetBytes(strFatura), createdUBL.UUID.Value); // XML  ziplenir
            string hash      = GetHashInfo(zipliFile);                                                            // zipli dosyanın hash bilgisi alınır

            ServicePointManager.SecurityProtocol = TlsSetting.TlsSet(sslList);                                    // TLS/SSL ayarları
            WebServisAdresDegistir();
            using (new OperationContextScope(WsClient.InnerChannel))
            {
                if (WebOperationContext.Current != null)
                {
                    WebOperationContext.Current.OutgoingRequest.Headers.Add(HttpRequestHeader.Authorization,
                                                                            Authorization.GetAuthorization(m.Kullanici, m.Sifre));
                }

                var req = new sendInvoiceRequest
                {
                    sendInvoiceRequestType = new SendInvoiceRequestType
                    {
                        senderID            = m.VknTckn,             //gönderici VKN-TCKN
                        receiverID          = "2222222222",          //alıcı VKN-TCKN
                        fileName            = createdUBL.UUID.Value, //dosya ismi
                        binaryData          = zipliFile,             //gönderilecek fatura
                        docType             = "XML",                 //dosya tipi
                        hash                = hash,                  //dosyanın hash bilgisi
                        customizationParams = new[]
                        {
                            new CustomizationParam
                            {
                                paramName  = "BRANCH", //parametre ismi
                                paramValue = m.Sube    //şube adı opsiyoneldir. Gönderilmez ise varsayılan olarak "default" şube setlenir.
                            }
                        }
                    }
                };

                return(WsClient.sendInvoice(req.sendInvoiceRequestType));
            }
        }
Ejemplo n.º 9
0
        public static string writeDiscDespatchConvertUblToXml(DespatchAdviceType createdUBL)
        {
            //olusturulan xmli diske kaydediyor
            string xmlPath = FolderControl.createDespatchDocPath(createdUBL.ID.Value, nameof(EI.Direction.DRAFT), nameof(EI.DocumentType.XML));

            createInboxIfDoesNotExist(Path.GetDirectoryName(xmlPath)); //dosya yolu yoksa olustur

            using (FileStream stream = new FileStream(xmlPath, FileMode.Create))
            {
                XmlSerializer xmlSerializer = new XmlSerializer(createdUBL.GetType());
                xmlSerializer.Serialize(stream, createdUBL, InvoiceSerializer.GetXmlSerializerNamespace());
            }
            return(xmlPath);
            ////
            ////xmli strıng durunde return edıyoruz contentını dondurmek ıcın  asagıdakı kodu acarız
            //using (StringWriter textWriter = new StringWriter())
            //{
            //    XmlSerializer xmlSerializer = new XmlSerializer(createdUBL.GetType());

            //    xmlSerializer.Serialize(textWriter, createdUBL, InvoiceSerializer.GetXmlSerializerNamespace());
            //    return textWriter.ToString();
            //}
        }