public FuerzaLaboralNivelada(double demandaPromedio, PAddedVariance variance, PAddedModel pAddedModel)
 {
     _pAddedModel     = pAddedModel;
     _demandaPromedio = demandaPromedio;
     _demanda         = variance.demanda;
     _dias            = variance.dias;
 }
        public PlanAgregadoTablas(PAddedModel pamodel, ObservableCollection <PAddedVariance> variance, double?percentage)
        {
            InitializeComponent();
            persecucionlist           = new ObservableCollection <PersecucionPresentacion>();
            dgPersecucion.ItemsSource = persecucionlist;
            for (int i = 0; i < variance.Count; i++)
            {
                if (percentage is not null)
                {
                    pamodel.InventarioDeSeguridad = (int)Math.Ceiling(Convert.ToDecimal(variance[i].demanda * percentage));
                }
                if (i == 0)
                {
                    var estrategia   = new EstrategiaPersecucion(pamodel, variance[i]);
                    var presentacion = new PersecucionPresentacion(estrategia);
                    persecucionlist.Add(presentacion);
                }
                else
                {
                    pamodel.FuerzaLaboralInicial = new EstrategiaPersecucion(pamodel, variance[i - 1]).TrabajadoresNecesitados;
                    persecucionlist.Add(new PersecucionPresentacion(new EstrategiaPersecucion(pamodel, variance[i])));
                }
            }


            /* ---------NIVELADA--------------- */

            niveladalist           = new ObservableCollection <NiveladaPresentacion>();
            dgNivelada.ItemsSource = niveladalist;
            var demandaProm = (double)variance.Sum(x => x.demanda) / variance.Count();

            for (int i = 0; i < variance.Count; i++)
            {
                if (percentage is not null)
                {
                    pamodel.InventarioDeSeguridad = (int)Math.Ceiling(Convert.ToDecimal(variance[i].demanda * percentage));
                }
                if (i == 0)
                {
                    var estrategia = new FuerzaLaboralNivelada(demandaProm, variance[i], pamodel);
                    niveladalist.Add(new NiveladaPresentacion(estrategia));
                }
                else
                {
                    pamodel.InventarioInicial    = niveladalist[i - 1].InventarioFinal;
                    pamodel.FuerzaLaboralInicial = new FuerzaLaboralNivelada(demandaProm, variance[i - 1], pamodel).TrabajadoresRequeridos;
                    var estrategia = new FuerzaLaboralNivelada(demandaProm, variance[i], pamodel);
                    niveladalist.Add(new NiveladaPresentacion(estrategia));
                }
            }
        }
예제 #3
0
        private void AgregarMes_Click(object sender, RoutedEventArgs e)
        {
            pamodel = new();
            pamodel.MateriaPrima      = double.Parse(ingMateriaPrima.Text);
            pamodel.H                 = double.Parse(txtH.Text);
            pamodel.CostoDeFaltante   = double.Parse(txtCostoDeFaltante.Text);
            pamodel.Outsourcing       = 0;
            pamodel.CostoCapacitar    = double.Parse(ingContratar.Text);
            pamodel.CostoDespedir     = double.Parse(ingDespido.Text);
            pamodel.HoraExtra         = double.Parse(ingHoraExtra.Text);
            pamodel.InventarioInicial = int.Parse(ingInventarioInicial.Text);
            if (txtInventarioDeSeguridad.Text == string.Empty)
            {
                pamodel.InventarioDeSeguridad = 0;
            }
            else
            {
                pamodel.InventarioDeSeguridad = int.Parse(txtInventarioDeSeguridad.Text);
            }
            pamodel.FuerzaLaboralInicial     = int.Parse(ingFuerzaLaboralInicial.Text);
            pamodel.HorasRequeridaParaUnidad = double.Parse(txtHorasParaUnidad.Text);
            pamodel.HorasPorDia = double.Parse(ingHorasJornada.Text);
            pamodel.HoraNormal  = double.Parse(ingHoraNormal.Text);


            double?percentage = null;

            if (boolss)
            {
                percentage = double.Parse(txtSSPercentage.Text);
            }

            PlanAgregadoTablas tablas = new(pamodel, demandasDias, percentage);

            tablas.Show();
        }
 public EstrategiaPersecucion(PAddedModel pAddedModel, PAddedVariance variance)
 {
     _pAddedModel = pAddedModel;
     _demanda     = variance.demanda;
     _dias        = variance.dias;
 }