コード例 #1
0
        public IActionResult ProcessSalesIndentById([FromRoute] long id)
        {
            SalesIndent ind = ind_repo.Find(id);

            ind.IsProcessed   = true;
            ind.ProcessedDate = DateTime.Now;
            ind_repo.Update(ind);
            return(Ok("Processed"));
        }
コード例 #2
0
        public IActionResult DeleteSalesIndent(long id)
        {
            SalesIndent SalesIndent = ind_repo.Find(id);

            if (SalesIndent == null)
            {
                return(NotFound());
            }

            ind_item_repo.DeleteRange(ind_item_repo.GetList(a => a.SalesIndentId == SalesIndent.SalesIndentId));
            ind_repo.Delete(SalesIndent);
            return(Ok());
        }
コード例 #3
0
        private string GenSIN()
        {
            try
            {
                SalesIndent lastOrder = ind_repo.GetLast();
                string      value     = lastOrder.SalesIndentNumber;
                string      number    = Regex.Match(value, "[0-9]+$").Value;

                return(value.Substring(0, value.Length - number.Length) +
                       (long.Parse(number) + 1).ToString().PadLeft(number.Length, '0'));
            }
            catch (NullReferenceException)
            {
                return("SIN00000001");
            }
        }
コード例 #4
0
        public IActionResult GenerateSalesIndents([FromBody] IList <OrderTakingToIndentIntegrationViewModel> models)
        {
            IList <SalesIndent> indents = new List <SalesIndent>();

            var b = models.GroupBy(c => c.StoreVisitId);
            ApplicationDbContext db = new ApplicationDbContext();

            foreach (IList <OrderTakingToIndentIntegrationViewModel> si in b)
            {
                int                     countindents   = 0;
                SalesIndent             newindent      = new SalesIndent();
                IList <SalesIndentItem> newindentitems = new List <SalesIndentItem>();

                foreach (OrderTakingToIndentIntegrationViewModel s in si)
                {
                    countindents += 1;
                    var a = item_repo.GetFirst(c => c.InventoryItemId == s.InventoryItemId);

                    SalesIndentItem sii = new SalesIndentItem()
                    {
                        CompanyId = s.CompanyId,
                        Quantity  = s.Quantity,
                        TradeOfferPricePerUnit = (a.TradeOfferAmount ?? 0),
                        TotalTradeOfferPerItem = (a.TradeOfferAmount ?? 0) * a.MuInSu * s.Quantity,
                        TotalTradePricePerItem = s.Quantity * a.MuInSu * (a.UnitPrice - (a.TradeOfferAmount ?? 0)),
                        OrderTakingId          = s.OrderTakingId,
                        ItemGrossAmount        = s.Quantity * a.UnitPrice * a.MuInSu,
                        ItemDiscountAmount     = ((s.ExtraDiscount ?? 0) * s.Quantity * a.MuInSu) + ((a.RegularDiscount ?? 0) * s.Quantity * a.MuInSu) + ((a.TradeOfferAmount ?? 0) * a.MuInSu * s.Quantity),
                        ItemNetAmount          = (s.Quantity * a.UnitPrice * a.MuInSu) - ((s.ExtraDiscount ?? 0) * s.Quantity * a.MuInSu) - (s.Quantity * (a.RegularDiscount ?? 0) * a.MuInSu) - ((a.TradeOfferAmount ?? 0) * a.MuInSu * s.Quantity),
                        InventoryItemId        = s.InventoryItemId
                    };

                    newindentitems.Add(sii);

                    long? subsectionid  = db.Stores.Where(x => x.StoreId == s.StoreId).FirstOrDefault().SubsectionId;
                    long? sectionid     = db.Subsections.Where(y => y.SubsectionId == subsectionid).FirstOrDefault().SectionId;
                    long? territoryid   = db.Sections.Where(z => z.SectionId == sectionid).FirstOrDefault().TerritoryId;
                    long? distributorid = db.Territories.Where(w => w.TerritoryId == territoryid).FirstOrDefault().DistributorId;
                    Store shop          = db.Stores.Where(v => v.StoreId == s.StoreId).FirstOrDefault();

                    if (countindents == 1)
                    {
                        newindent.Date = DateTime.Now;
                        newindent.SalesIndentNumber       = GenSIN();
                        newindent.StoreId                 = s.StoreId;
                        newindent.CustomerName            = shop?.ShopKeeper;
                        newindent.CustomerCode            = shop?.ShopName;
                        newindent.StoreVisitId            = s.StoreVisitId;
                        newindent.DistributorId           = distributorid;
                        newindent.IsIssued                = true;
                        newindent.IssueDate               = DateTime.Now;
                        newindent.UserId                  = s.UserId;
                        newindent.CompanyId               = s.CompanyId;
                        newindent.TotalQuantity           = 0;
                        newindent.TotalTradePrice         = 0;
                        newindent.TotalTradeOfferDiscount = 0;
                        newindent.TotalTradeOffer         = 0;
                    }

                    newindent.TotalQuantity           += sii.Quantity;
                    newindent.TotalTradePrice         += sii.ItemGrossAmount;
                    newindent.TotalTradeOfferDiscount += sii.ItemDiscountAmount;
                    newindent.TotalTradeOffer         += sii.ItemNetAmount;
                }

                newindent.SalesIndentItems = newindentitems;
                indents.Add(newindent);

                countindents = 0;
            }

            ind_repo.AddRange(indents);
            return(Ok("Integration successful"));
        }
コード例 #5
0
 public IActionResult AddSalesIndent([FromBody] SalesIndent model)
 {
     model.SalesIndentNumber = GenSIN();
     ind_repo.Add(model);
     return(new OkObjectResult(new { SalesIndentID = model.SalesIndentId }));
 }
コード例 #6
0
 public IActionResult UpdateSalesIndent([FromBody] SalesIndent model)
 {
     ind_repo.Update(model);
     return(new OkObjectResult(new { SalesIndentID = model.SalesIndentId }));
 }