Example #1
0
        public override CostAndTime GetCost(string codOptionTypeOfTask, double starts, PrintingColor colors, int makereadis, double running, double weight)
        {
            //#region cost color
            //if (UseDifferentCostPerUnitBW ?? false)
            //{
            //    try
            //    {
            //        costUnit = steps.OfType<CostPerRunStepBW>().Where(x => x.FromUnit <= running && running <= x.ToUnit).FirstOrDefault().AvarageRunPerHour;

            //    }
            //    catch (NullReferenceException)
            //    {
            //        costUnit = Convert.ToDouble(CostPerUnit ?? "0");
            //    }
            //}
            //else
            //{
            //    costUnit = Convert.ToDouble(CostPerUnit ?? "0");
            //}
            //#endregion

            //if (costUnit == null)
            //{
            //    totalCostR = 0;
            //}
            //else
            //{
            //    costUnit = costUnit - ((costUnit / 100) * (long)(deficitRate ?? 0));
            //}

            //var totalA = (totalCostA);
            //var totalR = (totalCostR * running);

            //CostAndTime ct = new CostAndTime { Cost = totalA + totalR, Time = new TimeSpan(0, 0, 0) };


           return base.GetCost(codOptionTypeOfTask, starts, colors, makereadis, running, weight);        
        }
Example #2
0
        public override CostAndTime GetCost(string codOptionTypeOfTask, double starts, PrintingColor colors, int makereadies, double running, double weight)
        {
            Double totalCostR = new Double();
            var totalCostA = Convert.ToDouble(this.StartingCost1 ?? "0");

            //avviamenti successivi
            for (int i = 0; i < starts - 1; i++)
            {
                totalCostA += Convert.ToDouble(this.StartingCost2 ?? "0");
            }

            Nullable<double> costUnit = null;
            Nullable<double> costUnitBW = null;
            Nullable<double> deficitRate = null;

            if (UseDifferentDeficitOnCostForWeightStep ?? false)
            {
                try
                {
                    deficitRate = Convert.ToDouble(steps.OfType<DeficitForWeightStep>().Where(x => x.FromUnit <= weight && weight <= x.ToUnit).FirstOrDefault().DeficitRate);
                }
                catch (NullReferenceException)
                {
                    deficitRate = 0;
                }
            }
            else
            {
                deficitRate = 0;
            }

            #region cost color
            if (UseDifferentCostPerUnit ?? false)
            {
                try
                {
                    var c = steps.OfType<CostPerRunStep>().Where(x => x.FromUnit <= running && running <= x.ToUnit).FirstOrDefault().CostPerUnit;
                    costUnit = Convert.ToDouble(c);
                }
                catch (NullReferenceException)
                {
                    costUnit = Convert.ToDouble(CostPerUnit??"0");
                }
            }
            else
            {
                costUnit = Convert.ToDouble(CostPerUnit ?? "0");
            }
            #endregion

            if (costUnit == null)
            {
                totalCostR = 0;
            }
            else
            {
                costUnit = costUnit - ((costUnit / 100) * (long)(deficitRate ?? 0));
            }

            totalCostR = costUnit ?? 0;

            var totalA = (totalCostA);
            var totalR = (totalCostR * running);

            CostAndTime ct = new CostAndTime { Cost = totalA + totalR, Time = new TimeSpan(0,0,0) };

            return ct;
        }
Example #3
0
        public static PrintingColor GetColorFR(string codOptionTypeOfTask)
        {
            var ret = new PrintingColor();
            if (codOptionTypeOfTask.Contains("VERNICE"))
            {
                ret.cToPrintFNoImplant = 1;
                ret.cToPrintTNoImplant = 1;

                codOptionTypeOfTask = codOptionTypeOfTask.Replace("VERNICE", "");
            }
            switch (codOptionTypeOfTask)
            {

                case "STAMPAETICHROTOLO_0":
                    ret.cToPrintF = 0;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_0RETRO":
                    ret.cToPrintF = 0;
                    ret.cToPrintR = 1;
                    break;

                //4 colori offset fronte e retro
                case "STAMPAETICHROTOLO_1":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_1RETRO":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAETICHROTOLO_2":
                    ret.cToPrintF = 2;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_2RETRO":
                    ret.cToPrintF = 2;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAETICHROTOLO_3":
                    ret.cToPrintF = 3;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_3RETRO":
                    ret.cToPrintF = 3;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAETICHROTOLO_4":
                    ret.cToPrintF = 4;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_4RETRO":
                    ret.cToPrintF = 4;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAETICHROTOLO_5":
                    ret.cToPrintF = 5;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_5RETRO":
                    ret.cToPrintF = 5;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAETICHROTOLO_6":
                    ret.cToPrintF = 6;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_6RETRO":
                    ret.cToPrintF = 6;
                    ret.cToPrintR = 1;
                    break;


                case "STAMPAETICHROTOLO_7":
                    ret.cToPrintF = 7;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_7RETRO":
                    ret.cToPrintF = 7;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAETICHROTOLO_8":
                    ret.cToPrintF = 8;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAETICHROTOLO_8RETRO":
                    ret.cToPrintF = 8;
                    ret.cToPrintR = 1;
                    break;


                case "STAMPAETICHROTOLO_NORETRO":
                    ret.cToPrintF = 0;
                    ret.cToPrintR = 1;
                    break;


                //4 colori offset fronte e retro
                case "STAMPAOFF_FR_COL":
                    ret.cToPrintF = 4;
                    ret.cToPrintR = 4;
                    break;

                case "STAMPAOFF_FR_BN":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAOFF_FRONTE_COL":
                    ret.cToPrintF = 4;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAOFF_FRONTE_BN":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAOFFeDIGITALE_FR_COL":
                    ret.cToPrintF = 4;
                    ret.cToPrintR = 4;
                    break;

                case "STAMPAOFFeDIGITALE_FR_BN":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 1;
                    break;

                case "STAMPAOFFeDIGITALE_FRONTE_COL":
                    ret.cToPrintF = 4;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAOFFeDIGITALE_FRONTE_BN":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 0;
                    break;

                case "SERIGRAFIAROTOLO_1":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 0;
                    break;

                case "SERIGRAFIAROTOLO_2":
                    ret.cToPrintF = 2;
                    ret.cToPrintR = 0;
                    break;

                case "SERIGRAFIAROTOLO_3":
                    ret.cToPrintF = 3;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAACALDOROTOLO_1":
                    ret.cToPrintF = 1;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAACALDOROTOLO_2":
                    ret.cToPrintF = 2;
                    ret.cToPrintR = 0;
                    break;

                case "STAMPAACALDOROTOLO_3":
                    ret.cToPrintF = 3;
                    ret.cToPrintR = 0;
                    break;

                default:
                    ret.cToPrintF = 0;
                    ret.cToPrintR = 0;
                    //  throw new Exception();
                    break;

            }

            if (codOptionTypeOfTask.Contains("STAMPANEW"))
            {
                var x = codOptionTypeOfTask;
                var plusPos = x.IndexOf("+");

                ret.cToPrintF = Convert.ToInt32(x.Substring(plusPos - 1, 1));
                ret.cToPrintR = Convert.ToInt32(x.Substring(plusPos + 1, 1));
            }

            ret.cToPrintT = ret.cToPrintF + ret.cToPrintR;
            ret.cToPrintTNoImplant = ret.cToPrintFNoImplant + ret.cToPrintRNoImplant;

            return ret;

        }
Example #4
0
        public override CostAndTime GetCost(string codOptionTypeOfTask, double starts, PrintingColor colors, int makereadies, double running, double weight)
        {
            TimeSpan totalTimeR = new TimeSpan(0, 0, 0);
            var totalTimeA = this.StartingTime1 ?? TimeSpan.Zero;

            //avviamenti successivi
            for (int i = 0; i < starts-1; i++)
            {
                totalTimeA += (StartingTime2 ?? TimeSpan.Zero);
            }

            //avviamento a colore
            for (int i = 0; i < colors.cToPrintT; i++)
            {
                totalTimeA += (StartingTimePerColor ?? TimeSpan.Zero);
            }

            Nullable<long> avarage = null ;
            Nullable<double> deficitRate = null;



            if (UseDifferentDeficitForWeightStep ?? false)
            {
                try
                {
                    deficitRate = Convert.ToDouble(steps.OfType<DeficitForWeightStep>().Where(x => x.FromUnit <= weight && weight <= x.ToUnit).FirstOrDefault().DeficitRate);
                }
                catch (NullReferenceException)
                {
                    deficitRate = 0;
                }
            }
            else
            {
                deficitRate = 0;
            }



            if (UseDifferentRunPerHour ?? false)
            {
                try
                {
                    avarage = steps.OfType<AvarageRunPerRunStep>().Where(x => x.FromUnit <= running && running <= x.ToUnit).FirstOrDefault().AvarageRunPerHour;                

                }
                catch (NullReferenceException)
                {
                    avarage = AvarageRunPerHour;
                }
            }
            else
            {
                avarage = AvarageRunPerHour;
            }

            if (avarage == null)
            {
                totalTimeR = TimeSpan.Zero;
            }
            else
            {
                avarage = avarage - ((avarage / 100) * (long) (deficitRate??0));
                
                //ore
                var tot = (running / avarage);
                var hour = (double)Math.Truncate((decimal)tot);
                var min = (double)Math.Truncate((decimal)((tot - hour) * 60));
                totalTimeR += TimeSpan.FromHours(hour) + TimeSpan.FromMinutes(min);
            }


            var costA = CostPerHourStarting;
            var totalA = (totalTimeA.TotalMinutes) / 60 * Convert.ToDouble(costA, Thread.CurrentThread.CurrentUICulture);

            var totalR = (totalTimeR.TotalMinutes) / 60 * Convert.ToDouble(CostPerHourRunning, Thread.CurrentThread.CurrentUICulture);

            CostAndTime ct = new CostAndTime { Cost = totalA + totalR, Time = totalTimeA + totalTimeR };

            return ct;
        }
Example #5
0
 public virtual CostAndTime GetCost(string codOptionTypeOfTask, double starts, PrintingColor colors, int makereadis, double running, double weight)
 {
     throw new NotImplementedException();
 }