コード例 #1
0
        public SavingState SaveItemsOrder(DataGridView dataGridViewOrder, string companyId, string srDsrId, string marketId, DateTime orderDate, SRDSRDue srDsrDue, bool isFromTemplate = false, bool isItemReturnedFromOrder = false, bool isDamagedItemReturnedFromOrder = false)
        {
            SavingState svState = SavingState.Failed;

            DbCommand thisCommand = null;

            try
            {
                thisCommand             = GenericDataAccess.CreateCommand();
                thisCommand.CommandType = CommandType.Text;
                GenericDataAccess.OpenDBConnection(thisCommand);

                if ((isFromTemplate && !IsSrDsrOrderExist(companyId, srDsrId, marketId, orderDate)) || (!isFromTemplate && IsSrDsrOrderExist(companyId, srDsrId, marketId, orderDate)))
                {
                    foreach (DataGridViewRow row in dataGridViewOrder.Rows)
                    {
                        int stockAvailableInStore       = 0;
                        int damagedItemAvailableInStock = 0;
                        if (string.IsNullOrEmpty(NullHandler.GetString(row.Cells["OrderId"].Value)))
                        {
                            /// insert the item order
                            thisCommand.CommandText = "INSERT INTO IM_Orders (OrderId, CompanyId, SrId, MarketId, ItemId, Date, OrderCount, ReturnCount, SoldCount, DamagedCount) VALUES(@OrderId, @CompanyId, @SrId, @MarketId, @ItemId, @Date, @OrderCount, @ReturnCount, @SoldCount, @DamagedCount)";
                            CreateParameter.AddParam(thisCommand, "@OrderId", Guid.NewGuid().ToString(), DbType.String);
                            CreateParameter.AddParam(thisCommand, "@CompanyId", companyId, DbType.String);
                            CreateParameter.AddParam(thisCommand, "@SrId", srDsrId, DbType.String);
                            CreateParameter.AddParam(thisCommand, "@MarketId", marketId, DbType.String);
                            CreateParameter.AddParam(thisCommand, "@ItemId", NullHandler.GetString(row.Cells["ItemId"].Value), DbType.String);
                            CreateParameter.AddParam(thisCommand, "@Date", orderDate.Date, DbType.Date);
                            stockAvailableInStore = NullHandler.GetInt32(row.Cells["CurrentStockTotal"].Value) - NullHandler.GetInt32(row.Cells["SellsCount"].Value);

                            damagedItemAvailableInStock = NullHandler.GetInt32(row.Cells["CurrentDamagedStockTotal"].Value);
                        }
                        else
                        {
                            /// update the item order based on OrderId
                            thisCommand.CommandText = "UPDATE IM_Orders SET OrderCount = @OrderCount, ReturnCount = @ReturnCount, SoldCount = @SoldCount, DamagedCount = @DamagedCount WHERE OrderId = @OrderId";
                            CreateParameter.AddParam(thisCommand, "@OrderId", row.Cells["OrderId"].Value.ToString(), DbType.String);

                            stockAvailableInStore = isItemReturnedFromOrder ? (NullHandler.GetInt32(row.Cells["CurrentStockTotal"].Value) + NullHandler.GetInt32(row.Cells["ReturnCount"].Value)) : NullHandler.GetInt32(row.Cells["CurrentStockTotal"].Value);

                            damagedItemAvailableInStock = isDamagedItemReturnedFromOrder? (NullHandler.GetInt32(row.Cells["CurrentDamagedStockTotal"].Value) + NullHandler.GetInt32(row.Cells["DamageCount"].Value)): NullHandler.GetInt32(row.Cells["CurrentDamagedStockTotal"].Value);
                        }

                        CreateParameter.AddParam(thisCommand, "@OrderCount", row.Cells["OrderCount"].Value, DbType.Int32);
                        CreateParameter.AddParam(thisCommand, "@ReturnCount", row.Cells["ReturnCount"].Value, DbType.Int32);
                        CreateParameter.AddParam(thisCommand, "@DamagedCount", row.Cells["DamageCount"].Value, DbType.Int32);
                        CreateParameter.AddParam(thisCommand, "@SoldCount", row.Cells["SellsCount"].Value, DbType.Int32);

                        GenericDataAccess.ExecuteNonQueryTransaction(thisCommand);
                        thisCommand.Parameters.Clear();

                        if (!string.IsNullOrEmpty(NullHandler.GetString(row.Cells["StockId"].Value)))
                        {
                            ItemStock stock = new ItemStock();
                            stock.StockId                  = NullHandler.GetString(row.Cells["StockId"].Value);
                            stock.ItemId                   = NullHandler.GetString(row.Cells["ItemId"].Value);
                            stock.ChalanNo                 = NullHandler.GetString(row.Cells["ChalanNo"].Value);
                            stock.StockEntryDate           = NullHandler.GetDateTime(row.Cells["StockEntryDate"].Value);
                            stock.CurrentStockTotal        = stockAvailableInStore;//NullHandler.GetInt32(row.Cells["CurrentStockTotal"].Value);
                            stock.CurrentDamagedStockTotal = damagedItemAvailableInStock;

                            svState = SaveStockItem(stock, thisCommand, true);
                        }
                    }
                }
                else
                {
                    svState = SavingState.DuplicateExists;
                }
            }
            catch (Exception ex)
            {
                if (ex.Message.ToLower().Contains("duplicate key"))
                {
                    svState = SavingState.DuplicateExists;
                }
            }
            finally
            {
                GenericDataAccess.CloseDBConnection(thisCommand);
            }

            if (svState.Equals(SavingState.Success) && !string.IsNullOrEmpty(srDsrDue.Id))
            {
                svState = SRDSRManager.Instance.SaveSrDsrDue(srDsrDue);
            }

            return(svState);
        }
コード例 #2
0
        public SavingState SaveStockItem(ItemStock itemStock, DbCommand command = null, bool isTransection = false)
        {
            SavingState svState = SavingState.Failed;

            if (!string.IsNullOrEmpty(itemStock.ItemId))
            {
                DbCommand thisCommand = null;
                try
                {
                    if (!isTransection)
                    {
                        thisCommand             = GenericDataAccess.CreateCommand();
                        thisCommand.CommandType = CommandType.Text;
                    }
                    else
                    {
                        thisCommand = command;
                    }
                    /// if new Item
                    if (string.IsNullOrEmpty(itemStock.StockId))
                    {
                        if (!isTransection)
                        {
                            if (!IsItemExistInStock(itemStock.ItemId))
                            {
                                thisCommand.CommandText = "INSERT INTO IM_Items_Stock (StockId, ItemId, TotalStock, DamagedStock, ChalanNo, StockEntryDate) VALUES(@StockId, @ItemId, @TotalStock, @DamagedStock, @ChalanNo, @StockEntryDate)";
                                CreateParameter.AddParam(thisCommand, "@StockId", Guid.NewGuid().ToString(), DbType.String);
                            }
                            else
                            {
                                return(SavingState.DuplicateExists);
                            }
                        }
                        else
                        {
                            if (!IsItemExistInStock(itemStock.ItemId, thisCommand, isTransection))
                            {
                                thisCommand.CommandText = "INSERT INTO IM_Items_Stock (StockId, ItemId, TotalStock, DamagedStock, ChalanNo, StockEntryDate) VALUES(@StockId, @ItemId, @TotalStock, @DamagedStock, @ChalanNo, @StockEntryDate)";
                                CreateParameter.AddParam(thisCommand, "@StockId", Guid.NewGuid().ToString(), DbType.String);
                            }
                            else
                            {
                                return(SavingState.DuplicateExists);
                            }
                        }
                    }
                    else
                    {
                        thisCommand.CommandText = "UPDATE IM_Items_Stock SET TotalStock = @TotalStock, DamagedStock = @DamagedStock, ChalanNo = @ChalanNo, StockEntryDate = @StockEntryDate  WHERE StockId = @StockId AND ItemId = @ItemId";
                        CreateParameter.AddParam(thisCommand, "@StockId", itemStock.StockId, DbType.String);
                    }

                    CreateParameter.AddParam(thisCommand, "@ItemId", itemStock.ItemId, DbType.String);
                    CreateParameter.AddParam(thisCommand, "@TotalStock", itemStock.CurrentStockTotal, DbType.Int32);
                    CreateParameter.AddParam(thisCommand, "@DamagedStock", itemStock.CurrentDamagedStockTotal, DbType.Int32);
                    CreateParameter.AddParam(thisCommand, "@ChalanNo", itemStock.ChalanNo, DbType.String);
                    CreateParameter.AddParam(thisCommand, "@StockEntryDate", itemStock.StockEntryDate.Date, DbType.Date);

                    if (!itemStock.StockEntryDate.Date.Equals(DateTime.MinValue))
                    {
                        if (isTransection)
                        {
                            GenericDataAccess.ExecuteNonQueryTransaction(thisCommand);
                        }
                        else
                        {
                            GenericDataAccess.ExecuteNonQuery(thisCommand);
                        }
                    }
                    thisCommand.Parameters.Clear();

                    svState = SavingState.Success;
                }
                catch (Exception ex)
                {
                    if (ex.Message.ToLower().Contains("duplicate key"))
                    {
                        svState = SavingState.DuplicateExists;
                    }
                }
                finally
                {
                    if (!isTransection)
                    {
                        GenericDataAccess.CloseDBConnection(thisCommand);
                    }
                }
            }
            return(svState);
        }