コード例 #1
0
        /// <summary>
        /// basarılıysa ınvoice content doner basarısızsa null doner
        /// </summary>
        public string getInvoiceWithUuidOnService(string uuid, string direction)
        {
            using (new OperationContextScope(eInvoiceOIBPortClient.InnerChannel))
            {
                GetInvoiceRequest req = new GetInvoiceRequest(); //sistemdeki gelen efatura listesi için request parametreleri
                req.REQUEST_HEADER                            = RequestHeader.getRequestHeaderOib;
                req.REQUEST_HEADER.COMPRESSED                 = EI.ActiveOrPasive.Y.ToString();
                req.INVOICE_SEARCH_KEY                        = InvoiceSearchKey.invoiceSearchKeyGetInvoice;
                req.INVOICE_SEARCH_KEY.UUID                   = uuid;
                req.INVOICE_SEARCH_KEY.READ_INCLUDED          = true;
                req.INVOICE_SEARCH_KEY.READ_INCLUDEDSpecified = true;
                req.HEADER_ONLY = EI.ActiveOrPasive.N.ToString();

                if (direction.Equals(nameof(EI.Direction.DRAFT))) //direction taslak fatura ıse
                {
                    req.INVOICE_SEARCH_KEY.DIRECTION  = EI.Direction.OUT.ToString();
                    req.INVOICE_SEARCH_KEY.DRAFT_FLAG = EI.ActiveOrPasive.Y.ToString();
                }
                else
                {
                    req.INVOICE_SEARCH_KEY.DIRECTION = direction;
                }
                INVOICE[] invoiceArray = eInvoiceOIBPortClient.GetInvoice(req);


                if (invoiceArray != null && invoiceArray.Length != 0)
                {
                    //getirilen faturanın contentını zipten cıkar , string halınde dondur
                    return(Encoding.UTF8.GetString(Compress.UncompressFile(invoiceArray[0].CONTENT.Value)));
                }

                return(null);
            }
        }
コード例 #2
0
        public async Task <IActionResult> GenerateInvoice([Required][FromBody] GetInvoiceRequest request)
        {
            Invoice invoice;

            try
            {
                invoice = await _equipmentService.GenerateInvoice(request.Equipment);
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Exception occured while generating invoice");
                return(RedirectError("Exception occured while generating invoice. Please try again later"));
            }

            _logger.LogInformation($"Sending invoice: {JsonConvert.SerializeObject(invoice)}");

            var stream = new MemoryStream();
            await JsonSerializer.SerializeAsync(stream, invoice);

            var cd = new ContentDisposition
            {
                FileName = invoice.Title,
                Inline   = true
            };

            Response?.Headers?.Add("Content-Disposition", cd.ToString());
            stream.Seek(0, 0);
            return(new FileStreamResult(stream, "application/octet-stream"));
        }
コード例 #3
0
 public async Task <GetInvoiceResponse> Get(GetInvoiceRequest request, AdminKey adminKey = null, HttpClient httpClient = null)
 {
     using (var api = new GetAddesssApi(adminKey ?? AdminKey, HttpClient ?? httpClient))
     {
         return(await api.Invoices.Get(request));
     }
 }
コード例 #4
0
        public async void InvoiceFindTest()
        {
            var purchaseOrderRef  = Guid.NewGuid().ToString();
            var invoiceAddCommand = new InvoiceAddCommand();

            var invoiceView = await invoiceAddCommand.InvoiceAdd(new SilverdawnSoftware.Invoice.CQRS.Commands.Invoice.Models.InvoiceAdd()
            {
                PurchaseOrderRef = purchaseOrderRef,

                CustomerId = customerView.CustomerId
            });

            invoiceView.__CQRSErrorMessage.Should().BeNullOrWhiteSpace();
            invoiceView.PurchaseOrderRef.Should().Be(purchaseOrderRef);

            invoiceView.InvoiceId.Should().BeGreaterThan(0);

            var find = new GetInvoiceRequest();

            var result2 = find.GetInvoice(new GetInvoice()
            {
                InvoiceNo = invoiceView.InvoiceNo
            }).Result;


            result2.PurchaseOrderRef.Should().Be(purchaseOrderRef);
            result2.InvoiceId.Should().Be(invoiceView.InvoiceId);
        }
コード例 #5
0
ファイル: BillingModule.cs プロジェクト: boski-src/WHMCS.NET
        public async Task <GetInvoiceResponse> GetInvoice(int invoiceId)
        {
            var request = new GetInvoiceRequest {
                InvoiceId = invoiceId
            };

            return(await Client.Execute <GetInvoiceRequest, GetInvoiceResponse>(request));
        }
コード例 #6
0
 public async Task WebRequestTest()
 {
     var api = new SzamlazzHuApi();
     var request = CreateSampleRequest();
     string apiKey = Environment.GetEnvironmentVariable("SZAMLAZZ_HU_KEY");
     request.AuthenticationData.ApiKey = apiKey;
     request.Header.InvoiceNumberPrefix = "NINCS";
     request.Header.IssueDate = DateTime.Now;
     request.Header.CompletionDate = DateTime.Now;
     request.Header.DueDate = DateTime.Now;
     request.Header.FeeCollection = true;
     var response = await api.CreateInvoice(request);
     Assert.IsTrue(response.Success);
     var getInvoiceRequest = new GetInvoiceRequest();
     getInvoiceRequest.AuthenticationData.ApiKey = apiKey;
     getInvoiceRequest.InvoiceNumber = response.InvoiceNumber;
     var getInvoiceResponse = await api.GetInvoice(getInvoiceRequest);
     Assert.AreEqual(request.Seller.BankName, getInvoiceResponse.Seller.BankName);
     Assert.AreEqual(request.Seller.BankAccount, getInvoiceResponse.Seller.BankAccount);
     Assert.AreEqual(request.Header.Comment, getInvoiceResponse.InvoiceHeader.Comment);
     Assert.AreEqual(request.Header.CompletionDate.Date, getInvoiceResponse.InvoiceHeader.CompletionDate.Date);
     Assert.AreEqual(request.Header.Currency, getInvoiceResponse.InvoiceHeader.Currency);
     Assert.AreEqual(request.Header.DueDate.Date, getInvoiceResponse.InvoiceHeader.DueDate.Date);
     Assert.AreEqual(request.Header.ExchangeRate, getInvoiceResponse.InvoiceHeader.ExchangeRate);
     Assert.AreEqual(request.Header.FeeCollection, getInvoiceResponse.InvoiceHeader.FeeCollection);
     Assert.AreEqual(request.Header.InvoiceNumberPrefix, getInvoiceResponse.InvoiceHeader.InvoiceNumberPrefix);
     Assert.AreEqual(request.Header.IssueDate.Date, getInvoiceResponse.InvoiceHeader.IssueDate.Date);
     Assert.AreEqual(request.Header.Language, getInvoiceResponse.InvoiceHeader.Language);
     Assert.AreEqual(request.Header.PaymentType, getInvoiceResponse.InvoiceHeader.PaymentType);
     Assert.AreEqual(request.Customer.Name, getInvoiceResponse.Customer.Name);
     Assert.AreEqual(request.Customer.CustomerAddress.Country, getInvoiceResponse.Customer.CustomerAddress.Country);
     Assert.AreEqual(request.Customer.CustomerAddress.PostalCode, getInvoiceResponse.Customer.CustomerAddress.PostalCode);
     Assert.AreEqual(request.Customer.CustomerAddress.City, getInvoiceResponse.Customer.CustomerAddress.City);
     Assert.AreEqual(request.Customer.CustomerAddress.StreetAddress, getInvoiceResponse.Customer.CustomerAddress.StreetAddress);
     Assert.AreEqual(request.Customer.EmailAddress, getInvoiceResponse.Customer.EmailAddress);
     Assert.AreEqual(request.Customer.Identification, getInvoiceResponse.Customer.Identification);
     Assert.AreEqual(request.Customer.TaxNumber, getInvoiceResponse.Customer.TaxNumber);
     Assert.AreEqual(request.Items.Count, getInvoiceResponse.InvoiceItems.Count);
     for (int i = 0; i < request.Items.Count; ++i)
     {
         Assert.AreEqual(request.Items[i].GrossAmount, getInvoiceResponse.InvoiceItems[i].GrossAmount);
         Assert.AreEqual(request.Items[i].Name, getInvoiceResponse.InvoiceItems[i].Name);
         Assert.AreEqual(request.Items[i].NetPrice, getInvoiceResponse.InvoiceItems[i].NetPrice);
         Assert.AreEqual(request.Items[i].Quantity, getInvoiceResponse.InvoiceItems[i].Quantity);
         Assert.AreEqual(request.Items[i].UnitOfQuantity, getInvoiceResponse.InvoiceItems[i].UnitOfQuantity);
         Assert.AreEqual(request.Items[i].UnitPrice, getInvoiceResponse.InvoiceItems[i].UnitPrice);
         Assert.AreEqual(request.Items[i].VatAmount, getInvoiceResponse.InvoiceItems[i].VatAmount);
         Assert.AreEqual(request.Items[i].VatRate, getInvoiceResponse.InvoiceItems[i].VatRate);
     }
     var deleteInvoiceRequest = new DeleteInvoiceRequest();
     deleteInvoiceRequest.AuthenticationData.ApiKey = apiKey;
     deleteInvoiceRequest.InvoiceNumber = response.InvoiceNumber;
     var deleteInvoiceResponse = await api.DeleteProFormaInvoice(deleteInvoiceRequest);
     Assert.IsTrue(deleteInvoiceResponse.Success, deleteInvoiceResponse.ErrorMessage);
 }
コード例 #7
0
        public async Task <IActionResult> GenerateInvoice(
            [FromRoute] Guid id)
        {
            var request = new GetInvoiceRequest {
                InvoiceId = id
            };

            var invoice = await _useCase.Execute(request);

            return(Ok(invoice));
        }
コード例 #8
0
        public async static Task <GetInvoiceResponse> Get(GetAddesssApi api, string path,
                                                          AdminKey adminKey, GetInvoiceRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var fullPath = $"{path}{request.Number}";

            return(await GetInternal(api, fullPath, adminKey, request.Number));
        }
コード例 #9
0
        public void PrepareGetInvoiceRequest()
        {
            if (GetInvoicesResponse == null)
            {
                GetInvoices();
            }

            var invoice = GetInvoicesResponse.Result.Randomize().First();

            GetInvoiceRequest = new GetInvoiceRequest
            {
                Id = invoice.Id,
            };
        }
コード例 #10
0
        public async Task <IActionResult> GetInvoice([FromRoute] GetInvoiceRequest query)
        {
            GetInvoiceQueryResponse result = await _messageManager.SendCommand(new GetInvoiceQuery(query.Id));

            if (result.Invoice is null)
            {
                return(NotFound("Not found"));
            }

            var response = new InvoiceResponse(
                new InvoiceDto(result.Invoice.Id, result.Invoice.Number, result.Invoice.CreationDate),
                StatusCodes.Status200OK);

            return(Ok(response));
        }
コード例 #11
0
        /// <summary>
        /// servisten getInvoice ardından mark ınvoıce ve db ye kaydetme ıslemını yapar
        /// </summary>
        ///
        public string getInvoiceOnServiceAndSaveDb(string direction)
        {
            using (new OperationContextScope(eInvoiceOIBPortClient.InnerChannel))
            {
                var req = new GetInvoiceRequest(); //sistemdeki gelen efatura listesi için request parametreleri
                req.REQUEST_HEADER            = RequestHeader.getRequestHeaderOib;
                req.REQUEST_HEADER.COMPRESSED = EI.ActiveOrPasive.Y.ToString();
                req.INVOICE_SEARCH_KEY        = InvoiceSearchKey.invoiceSearchKeyGetInvoice;
                req.HEADER_ONLY = EI.ActiveOrPasive.N.ToString();

                if (direction.Equals(nameof(EI.Direction.DRAFT))) //direction taslak fatura ıse
                {
                    req.INVOICE_SEARCH_KEY.DIRECTION  = EI.Direction.OUT.ToString();
                    req.INVOICE_SEARCH_KEY.DRAFT_FLAG = EI.ActiveOrPasive.Y.ToString();
                }
                else
                {
                    req.INVOICE_SEARCH_KEY.DIRECTION = direction;
                }

                INVOICE[] invoiceArray = eInvoiceOIBPortClient.GetInvoice(req);
                if (invoiceArray != null && invoiceArray.Length > 0)
                {
                    string markErrorMessage = invoiceMarkRead(invoiceArray);
                    if (markErrorMessage != null) //mark despatch dan donen error message varsa
                    {
                        return(markErrorMessage);
                    }
                    //getirilen faturaları db ye kaydet
                    if (Singl.invoiceDalGet.addInvoiceToDbAndSaveContentOnDisk(invoiceArray, direction) != invoiceArray.Length)
                    {
                        return("DataBase'e kaydetme işlemi başarısız");
                    }
                    return(null);
                }
                return("servisten getirilecek fatura bulunamdı");
            }
        }
コード例 #12
0
        /// <summary>
        /// IMZALI XML DISKE KAYDET
        /// </summary>

        public bool isGetInvoiceSingnedXml(string direction)
        {
            using (new OperationContextScope(eInvoiceOIBPortClient.InnerChannel))
            {
                GetInvoiceRequest req = new GetInvoiceRequest();
                req.REQUEST_HEADER                            = RequestHeader.getRequestHeaderOib;
                req.REQUEST_HEADER.COMPRESSED                 = nameof(EI.ActiveOrPasive.Y);
                req.INVOICE_SEARCH_KEY                        = InvoiceSearchKey.invoiceSearchKeyGetInvoice;
                req.INVOICE_SEARCH_KEY.READ_INCLUDED          = true; //okunmusları da al
                req.INVOICE_SEARCH_KEY.READ_INCLUDEDSpecified = true;
                req.HEADER_ONLY = EI.ActiveOrPasive.N.ToString();
                req.INVOICE_SEARCH_KEY.DIRECTION = direction;
                if (direction == nameof(EI.Direction.DRAFT))
                {
                    req.INVOICE_SEARCH_KEY.DIRECTION  = nameof(EI.Direction.OUT);
                    req.INVOICE_SEARCH_KEY.DRAFT_FLAG = nameof(EI.ActiveOrPasive.Y);
                }

                INVOICE[] invoiceArr = eInvoiceOIBPortClient.GetInvoice(req);
                if (invoiceArr == null || invoiceArr.Length != 0)
                {
                    foreach (var invoice in invoiceArr)
                    {
                        FolderControl.saveInvDocContentWithByte(Compress.UncompressFile(invoice.CONTENT.Value), direction, invoice.ID, nameof(EI.DocumentType.XML));
                    }
                    //db ye kaydetmedıgım ıcın aldıgım faturaları mark ınv yapmadım

                    if (invoiceArr.Length == 100) //butun okunmamısları almak ıcın ... limit 100 vermıstık
                    {
                        isGetInvoiceSingnedXml(direction);
                    }
                    return(true);
                }
                return(false);
            }
        }
コード例 #13
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            GetInvoiceRequest request;

            try
            {
                request = new GetInvoiceRequest
                {
                    OspHomeRegion     = OspHomeRegion,
                    CompartmentId     = CompartmentId,
                    InternalInvoiceId = InternalInvoiceId,
                    OpcRequestId      = OpcRequestId
                };

                response = client.GetInvoice(request).GetAwaiter().GetResult();
                WriteOutput(response, response.Invoice);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
コード例 #14
0
 public async Task <GetInvoiceResponse> Get(GetInvoiceRequest request)
 {
     return(await Get(Api, Path, AdminKey, request));
 }
コード例 #15
0
ファイル: BillingModule.cs プロジェクト: boski-src/WHMCS.NET
 public async Task <GetInvoiceResponse> GetInvoices(GetInvoiceRequest request = null)
 {
     request = request ?? new GetInvoiceRequest();
     return(await Client.Execute <GetInvoiceRequest, GetInvoiceResponse>(request));
 }