Exemplo n.º 1
0
        public static ResultModel <string> GenerateInvoice()
        {
            string Y         = DateTime.Now.Year.ToString().Substring(2);
            string NoInvoice = Y + "0001";

            var data = ManageInvoice.GetAll().OrderByDescending(x => x.Createddate).FirstOrDefault();

            if (data != null)
            {
                if (data.Createddate.Value.Year == DateTime.Now.Year)
                {
                    int d = Convert.ToInt32(data.ID) + 1;
                    NoInvoice = d.ToString();
                }
                //// Mengambil 4 karakter kanan terakhir dari field nomor lalu menambahkan dengan 1
                //hitung = Convert.ToInt64(rd["nomor"]) + 1;
                //string joinstr = "0000" + hitung;
                //// Mengambil 4 karakter kanan terakhir dari string joinstr
                //urut = joinstr.Substring(joinstr.Length - 4, 4);
            }

            end.StatusCode = (int)HttpStatusCode.OK; end.Value = NoInvoice;

            return(end);
        }
Exemplo n.º 2
0
        private static ResultModel <string> _validationInvoice(InvoiceModel param)
        {
            end.StatusCode = (int)HttpStatusCode.NotAcceptable;
            if (param == null)
            {
                end.StatusMessage = "Parameter is empty";
                return(end);
            }
            if (string.IsNullOrEmpty(param.ID))
            {
                end.StatusMessage = "No Invoice is required";
                return(end);
            }
            if (!param.TransactionDate.HasValue)
            {
                end.StatusMessage = "Transaction Date is required";
                return(end);
            }
            if (!param.UsersID.HasValue)
            {
                end.StatusMessage = "Customer is required";
                return(end);
            }
            if (param.Items.Count < 1)
            {
                end.StatusMessage = "List Product is required";
                return(end);
            }
            var user = ManageUser.GetById(param.UsersID.Value);

            if (user == null)
            {
                end.StatusMessage = "Customer is not found";
                return(end);
            }
            var No = ManageInvoice.GetById(param.ID);

            if (No != null)
            {
                param.ID = GenerateInvoice().Value;
            }
            foreach (ListInvoiceModel item in param.Items)
            {
                var Product = ManageCatalogue.GetById(item.CatalogueID);
                if (Product == null)
                {
                    end.StatusMessage = "Product is not found";
                    return(end);
                }
                if (Product.Qty < item.Qty)
                {
                    end.StatusMessage = "Quantity Product smaller than Request";
                    return(end);
                }
            }
            end.StatusCode = (int)HttpStatusCode.OK;
            return(end);
        }
Exemplo n.º 3
0
        public static ResultModel <EFResponse> InsertInvoice(InvoiceModel param)
        {
            var validate = _validationInvoice(param);

            if (validate.StatusCode != (int)HttpStatusCode.OK)
            {
                res.StatusCode    = validate.StatusCode;
                res.StatusMessage = validate.StatusMessage;
                return(res);
            }

            res.StatusCode = (int)HttpStatusCode.OK;
            long Total = 0;

            Invoice Receipt = new Invoice();

            Receipt.ID = param.ID;
            Receipt.TransactionDate = param.TransactionDate;
            Receipt.UsersID         = param.UsersID;

            foreach (ListInvoiceModel item in param.Items)
            {
                var product = ManageCatalogue.GetById(item.CatalogueID);
                #region To List Invoice
                Total = Total + (product.Price.Value * item.Qty);
                ListInvoice collect = new ListInvoice();
                collect.InovicesID  = Receipt.ID;
                collect.CatalogueID = item.CatalogueID;
                collect.Qty         = item.Qty;
                collect.Price       = product.Price;
                collect.SumPrice    = (product.Price * item.Qty);
                ManageListInvoice.Insert(collect);
                #endregion

                product.Qty = Convert.ToInt16(product.Qty - item.Qty);
                UpdateCatalogue(product);
            }

            Receipt.TotalPrice = Total;
            var ret = ManageInvoice.Insert(Receipt);

            return(res);
        }
Exemplo n.º 4
0
        public ResultModel <List <InvoiceModel> > GetAll()
        {
            ResultModel <List <InvoiceModel> > res = new ResultModel <List <InvoiceModel> >();

            var ret   = ManageInvoice.GetAll();
            var datas = (from a in ret
                         join b in ManageUser.GetAll() on a.UsersID equals b.ID
                         select new InvoiceModel
            {
                ID = a.ID,
                UsersID = a.UsersID,
                UserName = b.Username,
                Name = b.Name,
                TransactionDate = a.TransactionDate,
                TotalPrice = a.TotalPrice
            }).ToList();

            res.StatusCode = (int)HttpStatusCode.NotFound;
            if (datas != null && datas.Count >= 1)
            {
                res.StatusCode = (int)HttpStatusCode.OK; res.Value = datas;
            }
            return(res);
        }