Пример #1
0
        public async Task <IActionResult> Delete([FromRoute] int id)
        {
            UserID = Convert.ToInt32(User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value);
            var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID);

            if (fooUser == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的該使用者資料);
                return(NotFound(apiResult));
            }

            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}");
                return(BadRequest(apiResult));
            }

            var fooInvoiceDetail = await _context.InvoiceDetails
                                   .Include(x => x.Invoice)
                                   .FirstOrDefaultAsync(x => x.Id == id);

            if (fooInvoiceDetail == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的發票明細項目);
                return(NotFound(apiResult));
            }

            _context.InvoiceDetails.Remove(fooInvoiceDetail);
            await _context.SaveChangesAsync();

            InvoiceDetailResponseDTO fooInvoiceDetailResponseDTO = new InvoiceDetailResponseDTO()
            {
                Id          = fooInvoiceDetail.Id,
                Cnt         = fooInvoiceDetail.Cnt,
                Flag        = fooInvoiceDetail.Flag,
                PictureName = fooInvoiceDetail.PictureName,
                Price       = fooInvoiceDetail.Price,
                Qty         = fooInvoiceDetail.Qty,
                SubTotal    = fooInvoiceDetail.SubTotal,
                TDate       = fooInvoiceDetail.TDate,
                Memo        = fooInvoiceDetail.Memo,
                Invoice     = new InvoiceDTO()
                {
                    Id = fooUser.Id
                }
            };

            apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted,
                                               ErrorMessageEnum.None, payload: fooInvoiceDetailResponseDTO);
            return(Accepted(apiResult));
        }
Пример #2
0
        public async Task <IActionResult> Get([FromRoute] int invoiceid)
        {
            var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value;

            if (claimSID == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.杖中沒有發現指定使用者ID);
                return(BadRequest(apiResult));
            }
            UserID = Convert.ToInt32(claimSID);
            var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID);

            if (fooUser == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的該使用者資料);
                return(NotFound(apiResult));
            }

            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}");
                return(BadRequest(apiResult));
            }

            var invoiceOnDB = await _context.Invoices
                              .Include(x => x.Details)
                              .FirstOrDefaultAsync(x => x.Id == invoiceid);

            if (invoiceOnDB == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的發票);
                return(NotFound(apiResult));
            }

            List <InvoiceDetailResponseDTO> fooInvoiceDetailResponseDTO = new List <InvoiceDetailResponseDTO>();

            foreach (var item in invoiceOnDB.Details)
            {
                InvoiceDetailResponseDTO fooObject = new InvoiceDetailResponseDTO()
                {
                    Id      = item.Id,
                    Invoice = new InvoiceDTO()
                    {
                        Id = item.Invoice.Id
                    },
                    Cnt         = item.Cnt,
                    Flag        = item.Flag,
                    Memo        = item.Memo,
                    PictureName = item.PictureName,
                    Price       = item.Price,
                    Qty         = item.Qty,
                    SubTotal    = item.SubTotal,
                    TDate       = item.TDate,
                };
                fooInvoiceDetailResponseDTO.Add(fooObject);
            }
            apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK,
                                               ErrorMessageEnum.None, payload: fooInvoiceDetailResponseDTO);
            return(Ok(apiResult));
        }