Exemple #1
0
        // function to add invoice and corresponding rules to database
        public void AddInvoice(InvoicePostModel invoicePostModel)
        {
            //get invoice details from InvoicePostModel and save to database
            InvoiceMaster invoiceMaster = new InvoiceMaster()
            {
                invoiceName = invoicePostModel.invoiceName,
                //convert boolean isActive in InvoicePostModel to byte isActive for InvoiceMaster
                isActive = invoicePostModel.isActive ? Convert.ToByte(1) : Convert.ToByte(0)
            };

            tariffContext.InvoiceMaster.Add(invoiceMaster);

            //get each rule from InvoicePostModel and save to database with invoiceId from above saved invoice
            foreach (Rule rule in invoicePostModel.ruleList)
            {
                RuleDetails ruleDetails = new RuleDetails()
                {
                    invoiceId   = invoiceMaster.invoiceId,
                    parameterId = Convert.ToInt32(rule.parameterId),
                    ruleValue   = rule.ruleValue,
                    //convert boolean isActive in InvoicePostModel for each rule to byte isActive for RuleDetails
                    isActive = rule.isActive ? Convert.ToByte(1) : Convert.ToByte(0)
                };
                tariffContext.RuleDetails.Add(ruleDetails);
            }
            tariffContext.SaveChanges();
        }
Exemple #2
0
        public IActionResult PostInvoiceMaster([FromBody] InvoicePostModel invoicePostModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            tariffService.AddInvoice(invoicePostModel);
            return(NoContent());
        }
Exemple #3
0
        public async Task <IActionResult> PostInvoice(InvoicePostModel model)
        {
            //_context.Invoices.Add(invoice);
            //await _context.SaveChangesAsync();

            //return CreatedAtAction("GetInvoice", new { id = invoice.Id }, invoice);


            //Tạo ra 1 invoice cho user khi nhấn thanh toán
            var invoice = _mapper.Map <Invoice>(model);

            await _context.Invoices.AddAsync(invoice);

            bool isSave = await _invoiceService.SaveInvoiceAsync(invoice);

            if (!isSave)
            {
                return(Ok(new { error_message = "Khong the luu don hang do co loi xay ra" }));
            }

            //Lấy món hàng trong cart rồi thêm vào InvoiceDetail
            var cartItems = await _cartServices.GetCartFromUser(model.UserId);

            if (cartItems.Count == 0)
            {
                return(Ok(new { error_message = "Gio hang rong, xin vui long mua hang" }));
            }

            var invoiceDetails = _mapper.Map <IList <InvoiceDetail> >(cartItems);

            //Gán id Invoice vào InvoiceDetail
            foreach (var item in invoiceDetails)
            {
                item.InvoiceId = invoice.Id;
            }

            //Lưu vào db
            isSave = await _invoiceDetailsService.SaveToDatabase(invoiceDetails);

            if (!isSave)
            {
                return(Ok(new { error_message = "Khong the luu chi tiet don hang do co loi xay ra" }));
            }
            await _cartServices.DeleteCartAsync(model.UserId);

            invoice.TotalMoney = invoiceDetails.Sum(i => i.SubTotal);
            isSave             = await _invoiceService.SaveInvoiceAsync(invoice);

            return(Ok(new { data = invoiceDetails, success = true }));
        }
        public async Task <ActionResult <Invoice> > PostInvoice(InvoicePostModel invoice)
        {
            Invoice NewInvoice = _mapper.Map <Invoice>(invoice);

            _context.Invoices.Add(NewInvoice);
            bool isSave = await _context.SaveChangesAsync() != 0;

            if (isSave)
            {
                await _cartServices.DeleteCartByUserIdAsync(NewInvoice.UserId);

                return(Ok(new { data = new { InvoiceId = NewInvoice.Id }, success = true }));
            }
            else
            {
                return(Ok(new { error_message = "Co loi xay ra" }));
            }
        }