Пример #1
0
        private void GetWeekMax(tDyeSubStocksV2 dyeSubStock, int currentWeek)
        {
            List <double> weekList = new List <double>();

            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK1) ? 0 : Convert.ToDouble(dyeSubStock.WK1));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK2) ? 0 : Convert.ToDouble(dyeSubStock.WK2));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK3) ? 0 : Convert.ToDouble(dyeSubStock.WK3));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK4) ? 0 : Convert.ToDouble(dyeSubStock.WK4));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK5) ? 0 : Convert.ToDouble(dyeSubStock.WK5));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK6) ? 0 : Convert.ToDouble(dyeSubStock.WK6));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK7) ? 0 : Convert.ToDouble(dyeSubStock.WK7));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK8) ? 0 : Convert.ToDouble(dyeSubStock.WK8));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK9) ? 0 : Convert.ToDouble(dyeSubStock.WK9));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK10) ? 0 : Convert.ToDouble(dyeSubStock.WK10));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK11) ? 0 : Convert.ToDouble(dyeSubStock.WK11));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK12) ? 0 : Convert.ToDouble(dyeSubStock.WK12));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK13) ? 0 : Convert.ToDouble(dyeSubStock.WK13));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK14) ? 0 : Convert.ToDouble(dyeSubStock.WK14));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK15) ? 0 : Convert.ToDouble(dyeSubStock.WK15));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK16) ? 0 : Convert.ToDouble(dyeSubStock.WK16));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK17) ? 0 : Convert.ToDouble(dyeSubStock.WK17));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK18) ? 0 : Convert.ToDouble(dyeSubStock.WK18));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK19) ? 0 : Convert.ToDouble(dyeSubStock.WK19));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK20) ? 0 : Convert.ToDouble(dyeSubStock.WK20));

            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK21) ? 0 : Convert.ToDouble(dyeSubStock.WK21));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK22) ? 0 : Convert.ToDouble(dyeSubStock.WK22));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK23) ? 0 : Convert.ToDouble(dyeSubStock.WK23));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK24) ? 0 : Convert.ToDouble(dyeSubStock.WK24));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK25) ? 0 : Convert.ToDouble(dyeSubStock.WK25));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK26) ? 0 : Convert.ToDouble(dyeSubStock.WK26));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK27) ? 0 : Convert.ToDouble(dyeSubStock.WK27));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK28) ? 0 : Convert.ToDouble(dyeSubStock.WK28));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK29) ? 0 : Convert.ToDouble(dyeSubStock.WK29));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK30) ? 0 : Convert.ToDouble(dyeSubStock.WK30));

            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK31) ? 0 : Convert.ToDouble(dyeSubStock.WK31));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK32) ? 0 : Convert.ToDouble(dyeSubStock.WK32));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK33) ? 0 : Convert.ToDouble(dyeSubStock.WK33));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK34) ? 0 : Convert.ToDouble(dyeSubStock.WK34));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK35) ? 0 : Convert.ToDouble(dyeSubStock.WK35));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK36) ? 0 : Convert.ToDouble(dyeSubStock.WK36));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK37) ? 0 : Convert.ToDouble(dyeSubStock.WK37));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK38) ? 0 : Convert.ToDouble(dyeSubStock.WK38));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK39) ? 0 : Convert.ToDouble(dyeSubStock.WK39));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK40) ? 0 : Convert.ToDouble(dyeSubStock.WK40));

            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK41) ? 0 : Convert.ToDouble(dyeSubStock.WK41));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK42) ? 0 : Convert.ToDouble(dyeSubStock.WK42));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK43) ? 0 : Convert.ToDouble(dyeSubStock.WK43));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK44) ? 0 : Convert.ToDouble(dyeSubStock.WK44));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK45) ? 0 : Convert.ToDouble(dyeSubStock.WK45));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK46) ? 0 : Convert.ToDouble(dyeSubStock.WK46));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK47) ? 0 : Convert.ToDouble(dyeSubStock.WK47));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK48) ? 0 : Convert.ToDouble(dyeSubStock.WK48));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK49) ? 0 : Convert.ToDouble(dyeSubStock.WK49));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK50) ? 0 : Convert.ToDouble(dyeSubStock.WK50));

            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK51) ? 0 : Convert.ToDouble(dyeSubStock.WK51));
            weekList.Add(string.IsNullOrEmpty(dyeSubStock.WK52) ? 0 : Convert.ToDouble(dyeSubStock.WK52));


            var max = weekList.Max();

            dyeSubStock.Yearly_Total = Convert.ToString(weekList.Sum());
            dyeSubStock.Highest_Week = Convert.ToString(max);

            int sum_4_Weeks_by_4 = 1;

            List <double> last4WeekData = new List <double>();

            for (int i = weekList.Count - 1; i > 1; i--)
            {
                if (i + 1 < currentWeek)
                {
                    last4WeekData.Add(weekList[i]);
                    if (last4WeekData.Count == 4)
                    {
                        break;
                    }
                }
            }

            if (last4WeekData.Count > 0 && last4WeekData.Sum() > 0 && !string.IsNullOrEmpty(dyeSubStock.Weeks_Limit_Req_) && !string.IsNullOrEmpty(dyeSubStock.Live_Stock))
            {
                sum_4_Weeks_by_4 = Convert.ToInt32(last4WeekData.Sum()) / last4WeekData.Count;

                if (sum_4_Weeks_by_4 > 0)
                {
                    dyeSubStock.Weeks_Left =
                        Convert.ToString(Convert.ToInt32(Convert.ToDouble(dyeSubStock.Live_Stock) / sum_4_Weeks_by_4));
                }

                if ((Convert.ToDouble(dyeSubStock.Weeks_Limit_Req_) * sum_4_Weeks_by_4) -
                    Convert.ToDouble(dyeSubStock.Live_Stock) > 0)
                {
                    dyeSubStock.LiveStockCellRed = true;
                }
                else
                {
                    dyeSubStock.LiveStockCellRed = false;
                }
            }

            var valueofStock = 0m;

            if (!string.IsNullOrEmpty(dyeSubStock.Unit_Cost))
            {
                var unitCostPrice = dyeSubStock.Unit_Cost.Replace("£", "");

                decimal espStock         = 0;
                decimal unitCostPriceVal = 0;


                decimal.TryParse(dyeSubStock.ESP_Stock, out espStock);
                decimal.TryParse(unitCostPrice, out unitCostPriceVal);

                valueofStock = Math.Round((espStock * unitCostPriceVal), 1);
                dyeSubStock.Value_of_Stock_in_House = Convert.ToString(valueofStock);
            }
        }
Пример #2
0
        private void UploadData()
        {
            try
            {
                if (this.lblStatus.InvokeRequired)
                {
                    this.lblStatus.BeginInvoke((MethodInvoker) delegate() { this.lblStatus.Text = "Upload is in progress, please wait...";;; });
                }

                var data = ImportSpreadsheet.Import(_inputStream);


                foreach (var row in data)
                {
                    var stockName     = row["Stock Name".ToLower()];
                    var stockType     = row["Stock Type".ToLower()];
                    var stockCategory = row["Stock Category".ToLower()];
                    var substrateName = row["Substrate Name".ToLower()];

                    var extra = row["Extra".ToLower()];

                    var sizes = row["Sizes".ToLower()];

                    if (!string.IsNullOrEmpty(sizes))
                    {
                        var finalSize = GetFinalSizeInMM(sizes);
                        sizes = finalSize;
                    }
                    var colours       = row["Colours".ToLower()];
                    var weeksLimitReq = row["Weeks Limit Req.".ToLower()];
                    var WeeksLeft     = "0";


                    try
                    {
                        WeeksLeft = Convert.ToString(Math.Round(Convert.ToDecimal(row["Weeks Left".ToLower()])));
                    }
                    catch (Exception e)
                    {
                    }

                    var espStock  = row["ESP Stock".ToLower()];
                    var liveStock = row["Live Stock".ToLower()];
                    var spoliage  = row["Spoilage".ToLower()];

                    var doa           = row["DOA".ToLower()];
                    var AddToESPStock = row["Add to ESP Stock".ToLower()];
                    var AddToSpoilage = row["Add to Spoilage".ToLower()];
                    var AddToDOA      = row["Add to DOA".ToLower()];

                    var highestWeek = row["Highest Week".ToLower()];
                    var wk1         = row["WK1".ToLower()];
                    var wk2         = row["WK2".ToLower()];
                    var wk3         = row["WK3".ToLower()];
                    var wk4         = row["WK4".ToLower()];
                    var wk5         = row["WK5".ToLower()];
                    var wk6         = row["WK6".ToLower()];
                    var wk7         = row["WK7".ToLower()];
                    var wk8         = row["WK8".ToLower()];
                    var wk9         = row["WK9".ToLower()];
                    var wk10        = row["WK10".ToLower()];
                    var wk11        = row["WK11".ToLower()];
                    var wk12        = row["WK12".ToLower()];
                    var wk13        = row["WK13".ToLower()];
                    var wk14        = row["WK14".ToLower()];
                    var wk15        = row["WK15".ToLower()];
                    var wk16        = row["WK16".ToLower()];
                    var wk17        = row["WK17".ToLower()];
                    var wk18        = row["WK18".ToLower()];
                    var wk19        = row["WK19".ToLower()];
                    var wk20        = row["WK20".ToLower()];
                    var wk21        = row["WK21".ToLower()];
                    var wk22        = row["WK22".ToLower()];
                    var wk23        = row["WK23".ToLower()];
                    var wk24        = row["WK24".ToLower()];
                    var wk25        = row["WK25".ToLower()];
                    var wk26        = row["WK26".ToLower()];
                    var wk27        = row["WK27".ToLower()];
                    var wk28        = row["WK28".ToLower()];
                    var wk29        = row["WK29".ToLower()];
                    var wk30        = row["WK30".ToLower()];
                    var wk31        = row["WK31".ToLower()];
                    var wk32        = row["WK32".ToLower()];
                    var wk33        = row["WK33".ToLower()];
                    var wk34        = row["WK34".ToLower()];
                    var wk35        = row["WK35".ToLower()];
                    var wk36        = row["WK36".ToLower()];
                    var wk37        = row["WK37".ToLower()];
                    var wk38        = row["WK38".ToLower()];
                    var wk39        = row["WK39".ToLower()];
                    var wk40        = row["WK40".ToLower()];
                    var wk41        = row["WK41".ToLower()];
                    var wk42        = row["WK42".ToLower()];
                    var wk43        = row["WK43".ToLower()];
                    var wk44        = row["WK44".ToLower()];
                    var wk45        = row["WK45".ToLower()];
                    var wk46        = row["WK46".ToLower()];
                    var wk47        = row["WK47".ToLower()];
                    var wk48        = row["WK48".ToLower()];
                    var wk49        = row["WK49".ToLower()];
                    var wk50        = row["WK50".ToLower()];
                    var wk51        = row["WK51".ToLower()];
                    var wk52        = row["WK52".ToLower()];

                    var yearlyTotal            = row["Yearly Total".ToLower()];
                    var stockAvailableExternal = row["Stock Available External".ToLower()];
                    var externalSupplier       = row["External Supplier".ToLower()];
                    var unitCost            = row["Unit Cost".ToLower()];
                    var valueOfStockInHouse = row["Value of Stock in House".ToLower()];

                    var Component1    = row["Component 1".ToLower()];
                    var Component1Qty = row["Component 1 Qty".ToLower()];
                    var Component2    = row["Component 2".ToLower()];
                    var Component2Qty = row["Component 2 Qty".ToLower()];
                    var Component3    = row["Component 3".ToLower()];
                    var Component3Qty = row["Component 3 Qty".ToLower()];
                    var Component4    = row["Component 4".ToLower()];
                    var Component4Qty = row["Component 4 Qty".ToLower()];
                    var Component5    = row["Component 5".ToLower()];
                    var Component5Qty = row["Component 5 Qty".ToLower()];


                    //var Spoilage = row["Spoilage".ToLower()];
                    //var DOA = row["DOA".ToLower()];
                    //var TotalConsumed = row["Total Consumed".ToLower()];

                    var stock = ctx.tDyeSubStocksV2.FirstOrDefault(s => s.Stock_Name == stockName && s.Stock_Type == stockType && s.Stock_Category == stockCategory && s.Substrate_Name == substrateName);

                    bool newStock = false;
                    if (stock == null)
                    {
                        stock    = new tDyeSubStocksV2();
                        newStock = true;
                    }

                    if (!string.IsNullOrEmpty(stockType) && !string.IsNullOrEmpty(stockCategory))
                    {
                        stock.Stock_Name       = stockName;
                        stock.Stock_Type       = stockType;
                        stock.Stock_Category   = stockCategory;
                        stock.Substrate_Name   = substrateName;
                        stock.Extra            = extra;
                        stock.Sizes            = sizes;
                        stock.Colours          = colours;
                        stock.Weeks_Limit_Req_ = weeksLimitReq;
                        stock.Weeks_Left       = WeeksLeft;
                        stock.ESP_Stock        = espStock;
                        stock.Live_Stock       = liveStock;
                        stock.Highest_Week     = highestWeek;
                        stock.WK1 = wk1;

                        stock.WK1                      = wk1;
                        stock.WK2                      = wk2;
                        stock.WK3                      = wk3;
                        stock.WK4                      = wk4;
                        stock.WK5                      = wk5;
                        stock.WK6                      = wk6;
                        stock.WK7                      = wk7;
                        stock.WK8                      = wk8;
                        stock.WK9                      = wk9;
                        stock.WK10                     = wk10;
                        stock.WK11                     = wk11;
                        stock.WK12                     = wk12;
                        stock.WK13                     = wk13;
                        stock.WK14                     = wk14;
                        stock.WK15                     = wk15;
                        stock.WK16                     = wk16;
                        stock.WK17                     = wk17;
                        stock.WK18                     = wk18;
                        stock.WK19                     = wk19;
                        stock.WK20                     = wk20;
                        stock.WK21                     = wk21;
                        stock.WK22                     = wk22;
                        stock.WK23                     = wk23;
                        stock.WK24                     = wk24;
                        stock.WK25                     = wk25;
                        stock.WK26                     = wk26;
                        stock.WK27                     = wk27;
                        stock.WK28                     = wk28;
                        stock.WK29                     = wk29;
                        stock.WK30                     = wk30;
                        stock.WK31                     = wk31;
                        stock.WK32                     = wk32;
                        stock.WK33                     = wk33;
                        stock.WK34                     = wk34;
                        stock.WK35                     = wk35;
                        stock.WK36                     = wk36;
                        stock.WK37                     = wk37;
                        stock.WK38                     = wk38;
                        stock.WK39                     = wk39;
                        stock.WK40                     = wk40;
                        stock.WK41                     = wk41;
                        stock.WK42                     = wk42;
                        stock.WK43                     = wk43;
                        stock.WK44                     = wk44;
                        stock.WK45                     = wk45;
                        stock.WK46                     = wk46;
                        stock.WK47                     = wk47;
                        stock.WK48                     = wk48;
                        stock.WK49                     = wk49;
                        stock.WK50                     = wk50;
                        stock.WK51                     = wk51;
                        stock.WK52                     = wk52;
                        stock.YEAR                     = System.DateTime.Now.Year;
                        stock.Yearly_Total             = yearlyTotal;
                        stock.Stock_Available_External = stockAvailableExternal;
                        stock.External_Supplier        = externalSupplier;
                        stock.Unit_Cost                = unitCost;
                        stock.Value_of_Stock_in_House  = valueOfStockInHouse;

                        if (string.IsNullOrEmpty(unitCost) || string.IsNullOrEmpty(espStock))
                        {
                            stock.Value_of_Stock_in_House = null;
                        }
                        else
                        {
                            var unitCostPrice = unitCost.Replace("£", "");
                            var valueofStock  = Math.Round((Convert.ToDecimal(espStock) * Convert.ToDecimal(unitCostPrice)), 1);

                            stock.Value_of_Stock_in_House = Convert.ToString(valueofStock);
                        }
                        stock.Component_1     = Component1;
                        stock.Component_1_Qty = Component1Qty;

                        stock.Component_2     = Component2;
                        stock.Component_2_Qty = Component2Qty;

                        stock.Component_3     = Component3;
                        stock.Component_3_Qty = Component3Qty;

                        stock.Component_4     = Component4;
                        stock.Component_4_Qty = Component4Qty;

                        stock.Component_5     = Component5;
                        stock.Component_5_Qty = Component5Qty;
                    }

                    if (newStock)
                    {
                        ctx.tDyeSubStocksV2.Add(stock);
                    }

                    var weekno = GetIso8601WeekOfYear(System.DateTime.Now);

                    bool updated = false;

                    if (!string.IsNullOrEmpty(AddToESPStock))
                    {
                        int addToEspStockQty = 0;

                        bool conversion = int.TryParse(AddToESPStock, out addToEspStockQty);

                        if (conversion)
                        {
                            if (string.IsNullOrEmpty(stock.ESP_Stock))
                            {
                                stock.ESP_Stock = Convert.ToString(AddToESPStock);
                            }
                            else
                            {
                                stock.ESP_Stock = Convert.ToString(Convert.ToInt32(stock.ESP_Stock) + AddToESPStock);
                            }

                            updated = true;
                        }
                    }

                    if (!string.IsNullOrEmpty(AddToSpoilage))
                    {
                        int spoilageQty = 0;

                        bool conversion = int.TryParse(AddToSpoilage, out spoilageQty);

                        if (conversion)
                        {
                            if (spoilageQty < 0)
                            {
                                stock.Spoilage = Convert.ToString(Convert.ToInt32(stock.Spoilage) + spoilageQty);
                            }
                            else
                            {
                                stock.Spoilage  = Convert.ToString(Convert.ToInt32(stock.Spoilage) + spoilageQty);
                                stock.ESP_Stock = (stock.ESP_Stock != null ? Convert.ToString(Convert.ToInt32(stock.ESP_Stock) - spoilageQty) : Convert.ToString(-spoilageQty));
                            }
                            updated = true;
                        }
                    }

                    if (!string.IsNullOrEmpty(AddToDOA))
                    {
                        int doaQTy = 0;

                        bool conversion = int.TryParse(AddToDOA, out doaQTy);

                        if (conversion)
                        {
                            stock.DOA = Convert.ToString(Convert.ToInt32(stock.DOA) + doaQTy);

                            if (doaQTy < 0)
                            {
                                stock.DOA = Convert.ToString(Convert.ToInt32(stock.DOA) + doaQTy);
                            }
                            else
                            {
                                stock.DOA       = Convert.ToString(Convert.ToInt32(stock.DOA) + doaQTy);
                                stock.ESP_Stock = (stock.ESP_Stock != null ? Convert.ToString(Convert.ToInt32(stock.ESP_Stock) - doaQTy) : Convert.ToString(-doaQTy));
                            }
                            updated = true;
                        }
                    }

                    GetWeekMax(stock, weekno);
                    ctx.SaveChanges();


                    if (updated)
                    {
                        ctx.SaveChanges();
                    }
                }

                if (this.lblStatus.InvokeRequired)
                {
                    this.lblStatus.BeginInvoke((MethodInvoker) delegate() { this.lblStatus.Text = "Upload completed successfully!";;; });
                    this.lblStatus.BeginInvoke((MethodInvoker) delegate() { this.lblStatus.ForeColor = Color.Green;;; });
                }

                if (this.btnUpload.InvokeRequired)
                {
                    this.btnUpload.BeginInvoke((MethodInvoker) delegate() { this.btnUpload.Enabled = true;;; });
                }

                if (this.btnBrowse.InvokeRequired)
                {
                    this.btnBrowse.BeginInvoke((MethodInvoker) delegate() { this.btnBrowse.Enabled = true;;; });
                }
            }
            catch (Exception ex)
            {
                if (this.lblStatus.InvokeRequired)
                {
                    this.lblStatus.BeginInvoke((MethodInvoker) delegate() { this.lblStatus.Text = "Exception: " + ex.Message;;; });
                    this.lblStatus.BeginInvoke((MethodInvoker) delegate() { this.lblStatus.ForeColor = Color.Red;;; });
                }

                if (this.btnUpload.InvokeRequired)
                {
                    this.btnUpload.BeginInvoke((MethodInvoker) delegate() { this.btnUpload.Enabled = true;;; });
                }

                if (this.btnBrowse.InvokeRequired)
                {
                    this.btnBrowse.BeginInvoke((MethodInvoker) delegate() { this.btnBrowse.Enabled = true;;; });
                }
            }
        }