Example #1
0
        public ActionResult <AccessoryIssue> Create([FromBody] AccessoryIssue accIssue)
        {
            var creator = (HttpContext.Items["User"] as User).UserClaims;

            try
            {
                var res = _accIssueService.Create(creator, accIssue);
                if (res == null)
                {
                    return(StatusCode(500));
                }
                return(CreatedAtRoute("GetAccessoryIssue", new { id = res.Id.ToString() }, res));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public AccessoryIssue Create(UserClaim creator, AccessoryIssue accessoryIssue)
        {
            var rrForm = _rrService.Get(accessoryIssue.RepairedRequestId);

            if (rrForm == null)
            {
                throw new Exception("Không tìm thấy phiếu sửa chữa");
            }
            if (rrForm.Quotation.State != Quotation.QuotationtState.confirmed)
            {
                throw new Exception("Phiếu báo giá chưa được xác nhận");
            }
            try
            {
                foreach (var detail in rrForm.Quotation.Details)
                {
                    var r = _accessoryService.Take(detail.AccessoryId, detail.Quantity);
                    if (r < 0)
                    {
                        return(null);
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }


            accessoryIssue.Creator     = creator;
            accessoryIssue.CreatedDate = System.DateTime.Now;
            try
            {
                _accessoryIssue.InsertOne(accessoryIssue);
                return(accessoryIssue);
            }
            catch
            {
                return(null);
            }
        }