コード例 #1
0
        public async Task <ActionResult <BaseResponse> > Post([FromForm] CustomerReceiptInfo data)
        {
            RECEIPT receipt  = new RECEIPT();
            var     customer = await _context.CUSTOMERS.Where(cus => cus.phone == data.phone).FirstOrDefaultAsync();

            if (customer != null && customer.isRemove == false)
            {
                // Không được phép thu tiền vượt quá số tiền khách đang nợ
                if (!Roles.GetOverDept)
                {
                    if (data.customerPaid > customer.oldDept)
                    {
                        return(new BaseResponse
                        {
                            ErrorCode = Roles.Get_Over_Dept,
                            Message = "Getting money is not over the money customer has been depted!"
                        });
                    }
                    else
                    {
                        double res = data.customerPaid - data.total;

                        receipt.customerId   = customer.id;
                        receipt.dateCreated  = data.dateCreated;
                        receipt.total        = data.total;
                        receipt.customerPaid = data.customerPaid;
                        customer.nowDept     = res > 0 ? Math.Abs(res - customer.oldDept) : customer.oldDept + Math.Abs(res);
                        _context.CUSTOMERS.Update(customer);
                        _context.RECEIPTS.Add(receipt);
                        await _context.SaveChangesAsync();

                        return(new BaseResponse
                        {
                            ErrorCode = Roles.Success,
                            Message = "A receipt has just created!"
                        });
                    }
                }
                else
                {
                    double res = data.customerPaid - data.total;

                    receipt.customerId   = customer.id;
                    receipt.dateCreated  = data.dateCreated;
                    receipt.total        = data.total;
                    receipt.customerPaid = data.customerPaid;
                    customer.nowDept     = res > 0 ? Math.Abs(res - customer.oldDept) : customer.oldDept + Math.Abs(res);
                    _context.CUSTOMERS.Update(customer);
                    _context.RECEIPTS.Add(receipt);
                    await _context.SaveChangesAsync();

                    return(new BaseResponse
                    {
                        ErrorCode = Roles.Success,
                        Message = "A receipt has just created!"
                    });
                }
            }
            // Khách hàng này chưa có trong csdl
            else
            {
                customer           = new CUSTOMER();
                customer.firstName = data.firstName;
                customer.lastName  = data.lastName;
                customer.phone     = data.phone;
                customer.email     = data.email;
                customer.address   = data.address;
                customer.username  = null;
                customer.password  = null;
                customer.imageName = null;
                customer.url       = null;
                customer.oldDept   = 0;
                customer.nowDept   = 0;
                customer.isRemove  = false;
                _context.CUSTOMERS.Add(customer);

                receipt.dateCreated = data.dateCreated;
                receipt.total       = data.total;
                receipt.isRemove    = false;
                _context.RECEIPTS.Add(receipt);
                await _context.SaveChangesAsync();

                return(new BaseResponse
                {
                    ErrorCode = Roles.Success,
                    Message = "A receipt has just created!"
                });
            }
        }
コード例 #2
0
        public async Task <ActionResult <BaseResponse> > Put([FromForm] CustomerReceiptInfo data, int id)
        {
            if (data.total == 0)
            {
                return(new BaseResponse
                {
                    ErrorCode = Roles.Empty_Customer_Total
                });
            }
            if (data.customerPaid == 0)
            {
                return(new BaseResponse
                {
                    ErrorCode = Roles.Empty_Customer_Paid
                });
            }
            var receipt = await _context.RECEIPTS.Where(re => re.id == data.id).FirstOrDefaultAsync();

            var customer = await _context.CUSTOMERS.Where(cus => cus.id == data.customerId).FirstOrDefaultAsync();

            // Không được phép thu tiền vượt quá số tiền khách đang nợ
            if (!Roles.GetOverDept)
            {
                if (data.customerPaid > customer.oldDept)
                {
                    return(new BaseResponse
                    {
                        ErrorCode = Roles.Get_Over_Dept,
                        Message = "Getting money is not over the money customer has been depted!"
                    });
                }
                else
                {
                    double res = data.customerPaid - data.total;

                    receipt.customerId   = customer.id;
                    receipt.dateCreated  = data.dateCreated;
                    receipt.total        = data.total;
                    receipt.customerPaid = data.customerPaid;
                    customer.nowDept     = res > 0 ? Math.Abs(res - customer.oldDept) : customer.oldDept + Math.Abs(res);
                    _context.CUSTOMERS.Update(customer);
                    _context.RECEIPTS.Add(receipt);
                    await _context.SaveChangesAsync();

                    return(new BaseResponse
                    {
                        ErrorCode = Roles.Success,
                        Message = "A receipt has just updated!"
                    });
                }
            }
            else
            {
                double res = data.customerPaid - data.total;

                receipt.customerId   = customer.id;
                receipt.dateCreated  = data.dateCreated;
                receipt.total        = data.total;
                receipt.customerPaid = data.customerPaid;
                customer.nowDept     = res > 0 ? Math.Abs(res - customer.oldDept) : customer.oldDept + Math.Abs(res);
                _context.CUSTOMERS.Update(customer);
                _context.RECEIPTS.Add(receipt);
                await _context.SaveChangesAsync();

                return(new BaseResponse
                {
                    ErrorCode = Roles.Success,
                    Message = "A receipt has just updated!"
                });
            }
        }