/// <summary>
        /// Get stock creation by id
        /// </summary>
        /// <param name="id">StockCreationId</param>
        /// <returns></returns>
        public StockCreation GetStockCreation(int id, int OrganizationId)
        {
            using (IDbConnection connection = OpenConnection(dataConnection))
            {
                try
                {
                    #region Get data from [StockCreation] head
                    string        query = @"SELECT
	                                StockCreationId,
	                                StockCreationRefNo,
	                                StockCreationDate,
                                    ConsumedStockpointId,
                                    FinishedStockpointId
                                FROM StockCreation
                                WHERE StockCreationId = @id
                                AND OrganizationId = @organizationId
                                AND isSubAssembly = 0
                                AND isActive = 1";
                    StockCreation model = connection.Query <StockCreation>(query, new { id = id, OrganizationId = OrganizationId }).First();
                    #endregion

                    #region Get data from [StockCreationConsumedItems]
                    query = @"SELECT
	                            ConsumedItemsId,
	                            StockCreationId,
	                            ItemId,
	                            Quantity,
	                            Rate
                            FROM StockCreationConsumedItems
                            WHERE StockCreationId = @id
                            AND isActive = 1";
                    model.ConsumedItems = connection.Query <StockCreationConsumedItem>(query, new { id = id }).ToList();
                    #endregion

                    #region Get data from [StockCreationFinishedGoods]
                    query = @"SELECT
	                            FinishedGoodsId,
	                            StockCreationId,
	                            ItemId,
	                            Quantity,
	                            Rate
                            FROM StockCreationFinishedGoods
                            WHERE StockCreationId = @id
                            AND isActive = 1";
                    model.FinishedGoods = connection.Query <StockCreationFinishedGood>(query, new { id = id }).ToList();
                    #endregion

                    return(model);
                }
                catch (Exception)
                {
                    return(new StockCreation());
                }
            }
        }
Beispiel #2
0
        public ActionResult Create()
        {
            FillDropdowns();
            var model = new StockCreation
            {
                StockCreationDate  = DateTime.Today,
                StockCreationRefNo = DatabaseCommonRepository.GetNextDocNo(25, OrganizationId),
                ConsumedItems      = ConsumedItemsGrid(),
                FinishedGoods      = FinishedGoodsGrid()
            };

            return(View(model));
        }
Beispiel #3
0
        public ActionResult Create(StockCreation model)
        {
            try
            {
                model.OrganizationId = OrganizationId;
                model.CreatedDate    = System.DateTime.Now;
                model.CreatedBy      = UserID.ToString();

                string ref_no = new StockCreationRepository().CreateStock(model);
                TempData["success"] = "Saved successfully. Reference No. is " + ref_no;
            }
            catch (Exception)
            {
                TempData["error"] = "Some error occured while saving. Please try again.";
                FillDropdowns();
                return(View(model));
            }
            return(RedirectToAction("Create"));
        }
        public string CreateStock(StockCreation model)
        {
            using (IDbConnection connection = OpenConnection(dataConnection))
            {
                IDbTransaction txn = connection.BeginTransaction();
                try
                {
                    model.StockCreationRefNo = DatabaseCommonRepository.GetNewDocNo(connection, model.OrganizationId, 25, true, txn);

                    string query = @"INSERT INTO StockCreation
                                (
                                StockCreationRefNo,
                                StockCreationDate,
                                    CreatedBy,
                                    CreatedDate,
                                    OrganizationId,
                                    ConsumedStockpointId,
                                    FinishedStockpointId)
                                
                                VALUES
                                (
                                    @StockCreationRefNo,
                                @StockCreationDate,
                                    @CreatedBy,
                                    @CreatedDate,
                                    @OrganizationId,
                                    @ConsumedStockpointId,
                                    @FinishedStockpointId)
                                ;
                                SELECT CAST(SCOPE_IDENTITY() AS INT)";

                    int id = connection.Query <int>(query, model, txn).First();

                    #region Inserting Finished Goods + Stock Updation
                    foreach (var item in model.FinishedGoods)
                    {
                        item.StockCreationId = id;
                        if (item.Quantity > 0)
                        {
                            var i = new StockCreationFinishedGoodsRepository().InsertFinishedGoods(item, connection, txn);
                        }
                        new StockUpdateRepository().InsertStockUpdate(new StockUpdate
                        {
                            OrganizationId = model.OrganizationId,
                            CreatedBy      = model.CreatedBy,
                            CreatedDate    = model.CreatedDate,
                            StockPointId   = model.FinishedStockpointId,
                            StockType      = "StockCreation",
                            StockInOut     = "IN",
                            stocktrnDate   = System.DateTime.Today,
                            ItemId         = item.ItemId,
                            Quantity       = item.Quantity,
                            StocktrnId     = id,
                            StockUserId    = model.StockCreationRefNo
                        }, connection, txn);
                    }
                    #endregion

                    #region Inserting Consumed Items + Stock Updation
                    foreach (var item in model.ConsumedItems)
                    {
                        item.StockCreationId = id;
                        if (item.Quantity > 0)
                        {
                            var i = new StockCreationConsumedItemsRepository().InsertConsumedItems(item, connection, txn);
                        }
                        new StockUpdateRepository().InsertStockUpdate(new StockUpdate
                        {
                            OrganizationId = model.OrganizationId,
                            CreatedBy      = model.CreatedBy,
                            CreatedDate    = model.CreatedDate,
                            StockPointId   = model.ConsumedStockpointId,
                            StockType      = "StockCreation",
                            StockInOut     = "OUT",
                            stocktrnDate   = System.DateTime.Today,
                            ItemId         = item.ItemId,
                            Quantity       = item.Quantity * (-1),
                            StocktrnId     = id,
                            StockUserId    = model.StockCreationRefNo
                        }, connection, txn);
                    }
                    #endregion

                    InsertLoginHistory(dataConnection, model.CreatedBy, "Create", "Stock Creation", id.ToString(), "0");
                    txn.Commit();
                }
                catch (Exception ex)
                {
                    txn.Rollback();
                    throw ex;
                }

                return(model.StockCreationRefNo);
            }
        }