Ejemplo n.º 1
0
        public DtoTangiblePurchase GetTangiblePurchase(int id = 0)
        {
            DtoTangiblePurchase purchase = new DtoTangiblePurchase();

            purchase.DatePurchased = DateTime.Now;
            purchase.Items         = (from i in _db.Items
                                      join c in _db.ProductCategories on i.ProductCategoryId equals c.ProductCategoryId
                                      join t in _db.InventoryTypes on c.InventoryTypeId equals t.InventoryTypeId
                                      where t.Name == "Tangible"
                                      select i).ToList();
            purchase.Portals = _db.Portals.ToList();
            return(purchase);
        }
Ejemplo n.º 2
0
        public void SaveTangiblePurchase(DtoTangiblePurchase dtoTangible)
        {
            using (var transaction = _db.Database.BeginTransaction())
            {
                #region Save In PurchaseTable

                int purchaseId = _db.Purchases.Max(v => (int?)v.Pid) ?? 0;
                ++purchaseId;
                //InventoryType type =
                //    _db.InventoryTypes.FirstOrDefault(t => t.InventoryTypeId.Equals(dtoPurchase.InventoryTypeId));
                dtoTangible.Numbers.ForEach(a =>
                {
                    Purchase purchase = new Purchase
                    {
                        //PurchaseId = dtoPurchase.PurchaseId,
                        ItemId        = dtoTangible.ItemId,
                        Total         = dtoTangible.Rate,//dtoTangible.Total,
                        Remarks       = dtoTangible.Remarks,
                        PortalId      = dtoTangible.PortalId,
                        Qty           = 1,//dtoTangible.Numbers.Count,
                        Subname       = dtoTangible.Subname,
                        Percentage    = 0,
                        Rate          = dtoTangible.Rate,
                        StockOut      = 1,//dtoTangible.Numbers.Count,
                        DatePurchased = dtoTangible.DatePurchased,
                        Pid           = purchaseId,
                        Number        = a
                    };
                    _db.Purchases.Add(purchase);
                    _db.SaveChanges();

                    //purchaseId = purchase.PurchaseId;
                });
                #endregion



                Stock stock = _db.Stocks.FirstOrDefault(s => s.ItemId.Equals(dtoTangible.ItemId));
                if (stock == null)
                {
                    stock = new Stock
                    {
                        ItemId     = dtoTangible.ItemId,
                        NetQty     = dtoTangible.Numbers.Count,
                        PurchaseId = purchaseId,
                        AvgRate    = dtoTangible.Rate
                    };
                    _db.Stocks.Add(stock);
                }
                else
                {
                    //stock.ItemId = dtoPurchase.ItemId,
                    stock.NetQty           = dtoTangible.Numbers.Count + stock.NetQty;
                    stock.PurchaseId       = purchaseId;
                    stock.AvgRate          = (dtoTangible.Rate + stock.AvgRate) / 2;
                    _db.Entry(stock).State = EntityState.Modified;
                }
                _db.SaveChanges();


                #region Coucher Entry

                Portal     portal = _db.Portals.Single(p => p.PortalId.Equals(dtoTangible.PortalId));
                var        maxVno = _db.AccVouchers.Max(v => (int?)v.VNo) ?? 0;
                AccAccount acc    = _db.AccAccounts.Single(a => a.AccString.Equals(portal.AccString));

                maxVno = ++maxVno;
                AccVoucher voucher = new AccVoucher
                {
                    VDate        = dtoTangible.DatePurchased,
                    SessionId    = 0,
                    AccString    = portal.AccString,
                    VNo          = maxVno,
                    VType        = "JV",
                    VSrNo        = 1,
                    VDescription = dtoTangible.Remarks,
                    Debit        = 0,
                    Credit       = dtoTangible.Total,
                    UserCode     = 0,
                    OID          = 0,
                    BID          = 0,
                    CID          = 0,
                    HeadCode     = acc.HeadCode,
                    SubHeadCode  = acc.SubHeadCode,
                    AccCode      = acc.AccCode,
                    ChequeNo     = "0",
                    InvNo        = purchaseId.ToString(),
                    InvType      = "Purchase"
                };
                _db.AccVouchers.Add(voucher);
                _db.SaveChanges();

                Item item = _db.Items.Single(i => i.ItemId.Equals(dtoTangible.ItemId));
                acc     = new AccAccount();
                acc     = _db.AccAccounts.Single(a => a.AccString.Equals(item.AccString));
                voucher = new AccVoucher();
                voucher = new AccVoucher
                {
                    VDate        = dtoTangible.DatePurchased,
                    SessionId    = 0,
                    AccString    = item.AccString,
                    VNo          = maxVno,
                    VType        = "JV",
                    VSrNo        = 2,
                    VDescription = dtoTangible.Remarks,
                    Debit        = dtoTangible.Total,
                    Credit       = 0,
                    UserCode     = 0,
                    OID          = 0,
                    BID          = 0,
                    CID          = 0,
                    HeadCode     = acc.HeadCode,
                    SubHeadCode  = acc.SubHeadCode,
                    AccCode      = acc.AccCode,
                    ChequeNo     = "0",
                    InvNo        = purchaseId.ToString(),
                    InvType      = "Purchase"
                };
                _db.AccVouchers.Add(voucher);
                _db.SaveChanges();


                #endregion

                transaction.Commit();
            }
        }
 public ActionResult TangiblePurchase(DtoTangiblePurchase purchase)
 {
     _purchaseRepo.SaveTangiblePurchase(purchase);
     return(Json(new { success = true, message = "Saved Successfully" }, JsonRequestBehavior.AllowGet));
 }