Example #1
0
        public ResultJsonModel <InvoiceResponse> InvoiceEdit(UpdateInvoiceRequest request)
        {
            ResultJsonModel <InvoiceResponse> result = new ResultJsonModel <InvoiceResponse>();
            var Addressresult = InvoiceFunc.Instance.UpdateModel(new Invoice {
                Id = request.Id, Address = request.Address, BankAccount = request.BankAccount, DutyParagraph = request.DutyParagraph, MobliePhone = request.MobiePhone, Title = request.Title, OpeningBank = request.OpeningBank, TypeInvoice = request.TypeInvoice
            });

            if (Addressresult)
            {
                result.HttpCode = 200;
                result.Message  = "发票信息修改成功!";
                result.Model1   = new InvoiceResponse(InvoiceFunc.Instance.SelectById(request.Id));
            }
            else
            {
                result.HttpCode = 300;
                result.Message  = "发票信息修改失败!";
            }
            return(result);
        }
        public async Task <Response <InvoiceResponse> > Update(UpdateInvoiceRequest request)
        {
            var command = _mapper.Map <UpdateInvoiceCommand>(request);

            var result = await _mediatorHandler.SendCommand(command);

            if (result)
            {
                var invoiceEvent = _eventStore.GetEvent <InvoiceUpdatedEvent>();

                var data = _mapper.Map <Expenses.Domain.Models.Invoice, InvoiceResponse>(invoiceEvent.New);

                return(SuccessfulResponse(data, invoiceEvent));
            }
            else
            {
                var validationEvent = _eventStore.GetEvent <DomainValidationEvent>();

                return(FailureResponse <InvoiceResponse>(validationEvent));
            }
        }
Example #3
0
        public ResultJsonModel <InvoiceResponse> InvoiceAdd(UpdateInvoiceRequest request)
        {
            ResultJsonModel <InvoiceResponse> result = new ResultJsonModel <InvoiceResponse>();
            var userGuid      = CookieOper.Instance.GetUserGuid();
            var user          = MemCacheHelper2.Instance.Cache.GetModel <User>("UserGuID_" + userGuid);
            var Addressresult = InvoiceFunc.Instance.InsertModelReturnkey(new Invoice {
                Address = request.Address, BankAccount = request.BankAccount, DutyParagraph = request.DutyParagraph, MobliePhone = request.MobiePhone, Title = request.Title, OpeningBank = request.OpeningBank, TypeInvoice = request.TypeInvoice, UserId = user.Id
            });

            if (Addressresult > 0)
            {
                result.HttpCode = 200;
                result.Message  = "发票信息添加成功!";
                result.Model1   = new InvoiceResponse(InvoiceFunc.Instance.SelectById(Addressresult));
            }
            else
            {
                result.HttpCode = 300;
                result.Message  = "发票信息添加失败!";
            }
            return(result);
        }
Example #4
0
        public async Task Update_ReturnsUpdatedInvoice()
        {
            //Arrange
            var request = new UpdateInvoiceRequest
            {
                InvoiceId  = 1,
                Identifier = "INV-001-A",
                Amount     = 160.05m,
                User       = TestsHelpers.CreateUser("1", Roles.Admin)
            };

            //Act
            var result = await _sut.Handle(request);

            //Assert
            var invoice = result.invoice;

            result.ShouldBeSuccess();
            invoice.UpdatedBy.Should().Be("1");
            invoice.Amount.Should().Be(request.Amount);
            invoice.Identifier.Should().Be(request.Identifier);
        }
Example #5
0
        public async Task Put_FailureResponse_FailedValidation()
        {
            //arrange
            UpdateInvoiceRequest model = new UpdateInvoiceRequest()
            {
                Id          = Guid.NewGuid(),
                Name        = null,
                Description = "Description"
            };

            //act
            var response = await _client.PutAsync($"/invoice/{model.Id.ToString()}",
                                                  new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"));

            var content = await response.Content.ReadAsStringAsync();

            var responseViewModel = JsonConvert.DeserializeObject <FailureResponse>(content);

            //assert
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
            Assert.NotNull(responseViewModel.Message);
        }
Example #6
0
        public async Task <IActionResult> UpdateAsync([FromBody] UpdateInvoiceRequest model)
        {
            var invoice = new PayInvoice.Client.Models.Invoice.UpdateInvoiceModel
            {
                Id                = model.Id,
                MerchantId        = User.GetMerchantId(),
                EmployeeId        = User.GetEmployeeId(),
                Number            = model.Number,
                ClientName        = model.Client,
                ClientEmail       = model.Email,
                Amount            = model.Amount,
                SettlementAssetId = model.SettlementAssetId,
                DueDate           = model.DueDate,
                Note              = model.Note
            };

            try
            {
                await _invoiceService.UpdateAsync(invoice, model.IsDraft);

                if (model.IsDraft)
                {
                    await _realtimeNotificationsService.SendInvoiceUpdateAsync(new InvoiceUpdateMessage()
                    {
                        MerchantId = User.GetMerchantId(),
                        InvoiceId  = invoice.Id,
                        Status     = "DraftUpdated"
                    });
                }
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest(ErrorResponse.Create(ex.Message)));
            }

            var result = await GetInvoiceModelById(invoice.Id);

            return(Json(result));
        }
Example #7
0
        public Task <UpdateInvoiceResponse> updateInvoice(UpdateInvoiceRequest request)
        {
            List <InvoiceItem> items = new List <InvoiceItem>();
            int     totalPrice       = 0;
            decimal totalWeight      = 0;

            foreach (InvoiceItemModel invoiceItem in request.Items)
            {
                totalPrice += invoiceItem.TotalPrice;
                decimal weightPerUnit = _ProductRepository.GetWeightPerUnit(invoiceItem.ProductID, invoiceItem.UnitID);
                invoiceItem.Weight = weightPerUnit * invoiceItem.Quantity;
                totalWeight       += invoiceItem.Weight;
            }
            UpdateInvoiceCommand command = new UpdateInvoiceCommand()
            {
                ID           = request.ID,
                Address      = request.Address,
                CustomerCode = request.CustomerCode,
                CustomerID   = request.CustomerID,
                CustomerName = request.CustomerName,
                TotalPrice   = totalPrice,
                WeightTotal  = totalWeight,
                Note         = request.Note,
                Code         = request.Code,
                Items        = request.Items
            };
            Task <object> Invoice = (Task <object>)Bus.SendCommand(command);

            RabbitMQBus.Publish(command);
            UpdateInvoiceResponse response = new UpdateInvoiceResponse();

            response = Common <UpdateInvoiceResponse> .checkHasNotification(_notifications, response);

            response.OK      = response.Success;
            response.Content = "";
            return(Task.FromResult(response));
        }
        public async Task <IActionResult> UpdateInvoice(string storeId, string invoiceId, UpdateInvoiceRequest request)
        {
            var store = HttpContext.GetStoreData();

            if (store == null)
            {
                return(InvoiceNotFound());
            }

            var result = await _invoiceRepository.UpdateInvoiceMetadata(invoiceId, storeId, request.Metadata);

            if (result != null)
            {
                return(Ok(ToModel(result)));
            }

            return(InvoiceNotFound());
        }
Example #9
0
 public async Task <UpdateInvoiceResponse> UpdateInvoice(UpdateInvoiceRequest request)
 {
     return(await Client.Execute <UpdateInvoiceRequest, UpdateInvoiceResponse>(request));
 }
Example #10
0
        /// <summary>
        ///
        /// </summary>
        ///<param name="updateInvoiceRequest"></param>

        public UpdateInvoiceResponse UpdateInvoice(UpdateInvoiceRequest updateInvoiceRequest)
        {
            return(UpdateInvoice(updateInvoiceRequest, (string)null));
        }
Example #11
0
 public UpdateInvoiceResponse UpdateInvoice(UpdateInvoiceRequest UpdateInvoiceRequest)
 {
     return(UpdateInvoice(UpdateInvoiceRequest, null));
 }
    // # UpdateInvoice API Operation
    // Use the UpdateInvoice API operation to update an invoice.
    public UpdateInvoiceResponse UpdateInvoiceAPIOperation()
    {
        // Create the UpdateInvoiceResponse object
        UpdateInvoiceResponse responseUpdateInvoice = new UpdateInvoiceResponse();

        try
        {
            // # UpdateInvoiceRequest
            // Use the UpdateInvoiceRequest message to update an invoice.

            // The code for the language in which errors are returned, which must be
            // en_US.
            RequestEnvelope envelopeRequest = new RequestEnvelope();
            envelopeRequest.errorLanguage = "en_US";

            List <InvoiceItemType> invoiceItemList = new List <InvoiceItemType>();

            // InvoiceItemType which takes mandatory params:
            //
            // * `Item Name` - SKU or name of the item.
            // * `Quantity` - Item count.
            // * `Amount` - Price of the item, in the currency specified by the
            // invoice.
            InvoiceItemType invoiceItem = new InvoiceItemType("Item", Convert.ToDecimal("2"), Convert.ToDecimal("4.00"));
            invoiceItemList.Add(invoiceItem);

            // Invoice item.
            InvoiceItemListType itemList = new InvoiceItemListType(invoiceItemList);

            // InvoiceType which takes mandatory params:
            //
            // * `Merchant Email` - Merchant email address.
            // * `Personal Email` - Payer email address.
            // * `InvoiceItemList` - List of items included in this invoice.
            // * `CurrencyCode` - Currency used for all invoice item amounts and
            // totals.
            // * `PaymentTerms` - Terms by which the invoice payment is due. It is
            // one of the following values:
            //  * DueOnReceipt - Payment is due when the payer receives the invoice.
            //  * DueOnDateSpecified - Payment is due on the date specified in the
            //  invoice.
            //  * Net10 - Payment is due 10 days from the invoice date.
            //  * Net15 - Payment is due 15 days from the invoice date.
            //  * Net30 - Payment is due 30 days from the invoice date.
            //  * Net45 - Payment is due 45 days from the invoice date.
            InvoiceType invoice = new InvoiceType("*****@*****.**", "*****@*****.**", itemList, "USD", PaymentTermsType.DUEONRECEIPT);

            // UpdateInvoiceRequest which takes mandatory params:
            //
            // * `Request Envelope` - Information common to each API operation, such
            // as the language in which an error message is returned.
            // * `Invoice ID` - ID of the invoice to update.
            // * `Invoice` - Merchant, payer, and invoice information.
            UpdateInvoiceRequest requestUpdateInvoice = new UpdateInvoiceRequest(envelopeRequest, "INV2-ZC9R-X6MS-RK8H-4VKJ", invoice);

            // Create the service wrapper object to make the API call
            InvoiceService service = new InvoiceService();


            // # API call
            // Invoke the UpdateInvoice method in service
            responseUpdateInvoice = service.UpdateInvoice(requestUpdateInvoice);

            if (responseUpdateInvoice != null)
            {
                // Response envelope acknowledgement
                string acknowledgement = "UpdateInvoice API Operation - ";
                acknowledgement += responseUpdateInvoice.responseEnvelope.ack.ToString();
                logger.Info(acknowledgement + "\n");
                Console.WriteLine(acknowledgement + "\n");

                // # Success values
                if (responseUpdateInvoice.responseEnvelope.ack.ToString().Trim().ToUpper().Equals("SUCCESS"))
                {
                    // ID of the created invoice.
                    logger.Info("Invoice ID : " + responseUpdateInvoice.invoiceID + "\n");
                    Console.WriteLine("Invoice ID : " + responseUpdateInvoice.invoiceID + "\n");
                }
                // # Error Values
                else
                {
                    List <ErrorData> errorMessages = responseUpdateInvoice.error;
                    foreach (ErrorData error in errorMessages)
                    {
                        logger.Debug("API Error Message : " + error.message + "\n");
                        Console.WriteLine("API Error Message : " + error.message + "\n");
                    }
                }
            }
        }
        // # Exception log
        catch (System.Exception ex)
        {
            // Log the exception message
            logger.Debug("Error Message : " + ex.Message);
            Console.WriteLine("Error Message : " + ex.Message);
        }
        return(responseUpdateInvoice);
    }