예제 #1
0
        private void Carpintero4_Tick(object sender, EventArgs e)
        {
            Cuadros cuadroaux4 = new Cuadros();

            segundoc4++;
            Carpinteros c4 = CarpinteroBLL.Buscar(4);

            if (segundoc4 == 60)
            {
                minutoc4++;
                segundoc4 = 0;
            }
            if (minutoc4 == 5)
            {
                if (c4.CuadrosATrabajar.Count != 0)
                {
                    Cuadros item = c4.CuadrosATrabajar.First();

                    item.TiempoEnsamblaje--;
                    if (item.TiempoEnsamblaje == 0)
                    {
                        item.TiempoEnAlmacen = 24;
                        SalieronEnsamblaje.Add(item);
                        EsperaAlmacen.Add(item);
                        EntraronAlmacen.Add(item);
                        c4.CuadrosATrabajar.Remove(item);
                        Almacen.Start();
                    }
                }
                TerminadosNUD.Value = SalieronEnsamblaje.Count;
                Horac4++;
                minutoc4 = 0;
            }
            C4CNUD.Value = CarpinteroBLL.Buscar(4).CuadrosATrabajar.Count;
        }
예제 #2
0
        //Metodo de empaquetar
        private void Empaquetar_Tick(object sender, EventArgs e)
        {
            EntraronEmpNUD.Value = EntraronEmpaque.Count;
            SegundosEmp++;

            Cuadros c = new Cuadros();


            if (SegundosEmp == 60)
            {
                SegundosEmp = 0;
                minutosEmp++;

                foreach (var item in EsperaEmpaque)
                {
                    item.TiempoEmpaque--;
                    if (item.TiempoEmpaque == 0)
                    {
                        SalieronEmpaque.Add(item);
                        Terminados.Add(item);
                    }
                }
                EsperaEmpaque.RemoveAll(r => r.TiempoEmpaque == 0);
            }
            if (minutosEmp == 5)
            {
                horasEmp++;
                minutosEmp = 0;
            }
            AbandonaronNUD.Value = SalieronEmpaque.Count;
        }
예제 #3
0
        public void GruposEntrantes()
        {
            i++;
            int n       = RPaquetes.Next(1, 11);
            int vueltas = 0;
            int aux     = 0;

            if (n == 1 || n == 2 || n == 3 || n == 4 || n == 5 || n == 6)
            {
                vueltas = 4;
            }
            else
            {
                vueltas = 6;
            }

            Paquetes p = new Paquetes();

            for (aux = 0; aux < vueltas; aux++)
            {
                Cuadros c = new Cuadros();
                c.ID = aux;
                p.Cuadros.Add(c);
                p.ID = i + 1;
            }
            PaquetesEntrantes.Add(p);
            MarcosTb.Value         = p.Cuadros.Count;
            TotalPaquetesNUD.Value = PaquetesEntrantes.Count;
            TotalMarcosNUD.Value  += p.Cuadros.Count;
            foreach (var item in p.Cuadros)
            {
                EsperaEnsamblaje.Add(item);
            }
            ProcesoEnsamblaje();
        }
예제 #4
0
        //Metodos del proceso de pintura
        private void timer1_Tick(object sender, EventArgs e)
        {
            EntraronPinturaNUD.Value = EntraronPintura.Count;

            SegundosPin++;

            Cuadros c = new Cuadros();


            if (SegundosPin == 60)
            {
                SegundosPin = 0;
                minutosPin++;

                Cuadros item = EsperaPintura.First();
                item.TiempoPintura--;
                if (item.TiempoPintura == 0)
                {
                    SalieronPintura.Add(item);
                    ContadorMaquina++;
                    EsperaInspeccion.Add(item);
                    EntraronInspeccion.Add(item);
                    EsperaPintura.Remove(item);
                    Inspeccion.Start();
                }
            }
            if (minutosPin == 5)
            {
                horasPin++;
                minutosPin = 0;
            }

            TerminadosPinNUD.Value = SalieronPintura.Count;

            if (ContadorMaquina == 20)
            {
                ContadorMaquina = 0;
                MaquinaPintura.Start();
                int d = MaquinaDamage.Next(1, 4);
                if (d == 1)
                {
                    MinutosMaquinaDañada = 30;
                }
                if (d == 2)
                {
                    MinutosMaquinaDañada = 45;
                }
                if (d == 3)
                {
                    MinutosMaquinaDañada = 60;
                }
            }
        }
예제 #5
0
        //Metodos del proceso de inspeccion
        private void Inspeccion_Tick(object sender, EventArgs e)
        {
            SegundosIns++;
            EntraronInspeccionNUD.Value = EntraronInspeccion.Count;
            Cuadros c = new Cuadros();

            if (EsperaInspeccion.Count != 0)
            {
                foreach (var item in EsperaInspeccion)
                {
                    int p  = paso.Next(1, 10);
                    int em = Empac.Next(10, 16);
                    if (p == 1)
                    {
                        Retrabajar.Add(item);
                        TotalATrabajar.Add(item);
                    }
                    else
                    {
                        TotalPasaron.Add(item);
                        EntraronEmpaque.Add(item);
                        SalieronInspeccion.Add(item);
                        item.TiempoEmpaque = em;
                        EsperaEmpaque.Add(item);
                    }
                    Empaquetar.Start();
                }
                EsperaInspeccion.RemoveAll(r => r.TiempoPintura == 0);
            }

            if (SegundosIns == 60)
            {
                SegundosIns = 0;
                minutosIns++;
            }
            if (minutosIns == 5)
            {
                horasIns++;
                minutosIns = 0;
            }
            PasaronNUD.Value    = TotalPasaron.Count;
            RetrabajarNUD.Value = TotalATrabajar.Count;
        }
예제 #6
0
        //Fin de Metodos del proceso de ensamblaje

        //Metodos del proceso de almacen
        public void MetodoProcesoAlmacen()
        {
            EntraronAlmacenNUD.Value = EntraronAlmacen.Count;

            SegundosAl++;

            Cuadros c = new Cuadros();


            if (SegundosAl == 60)
            {
                SegundosAl = 0;
                minutosAl++;
            }
            if (minutosAl == 5)
            {
                foreach (var item in EsperaAlmacen)
                {
                    item.TiempoEnAlmacen--;
                    if (item.TiempoEnAlmacen == 0)
                    {
                        int t = Rpintura.Next(10, 21);
                        item.TiempoPintura = t;
                        SalieronAlmacen.Add(item);
                        EntraronPintura.Add(item);
                        EsperaPintura.Add(item);
                        Pintura.Start();
                    }
                }
                EsperaAlmacen.RemoveAll(r => r.TiempoEnAlmacen == 0);

                horasAl++;
                minutosAl = 0;
            }
            TerminadosAlNUD.Value = SalieronAlmacen.Count;
        }
        //{
        //    new CuadroInicio{ Titulo="Obras en proceso",Cantidad="10", Icono=MaterialDesignThemes.Wpf.PackIconKind.AccountBalance},
        //    new CuadroInicio{ Titulo="Dinero Caja",Cantidad="1000", Icono=MaterialDesignThemes.Wpf.PackIconKind.AccountBalance},
        //    new CuadroInicio{ Titulo="Obras en proceso",Cantidad="10", Icono=MaterialDesignThemes.Wpf.PackIconKind.AccountBalance}
        //};]


        public async Task Inicializar()
        {
            try
            {
                var totalIngreso = 0d;
                var totalEgreso  = 0d;
                var cashflow     = new ChartValues <DateModel>();
                var egresos      = new ChartValues <DateModel>();
                CuentaCorrientes   = new ObservableCollection <CuentaCorrienteDto>(await Servicios.ApiProcessor.GetApi <CuentaCorrienteDto[]>("CuentaCorriente/GetAll"));
                ComprobanteCompras = new ObservableCollection <ComprobanteCompraDto>(await ApiProcessor.GetApi <ComprobanteCompraDto[]>("ComprobanteCompra/GetAll"));
                var comprobanteSalida = await ApiProcessor.GetApi <decimal[]>("ComprobanteSalida/GetPorcentaje");

                var comprobanteEntrada = await ApiProcessor.GetApi <decimal[]>("ComprobanteEntrada/GetPorcentaje");

                DetalleCaja = new ObservableCollection <DetalleCajaDto>(await Servicios.ApiProcessor.GetApi <DetalleCajaDto[]>("DetalleCaja/GetAll"));
                Oficina     = await ApiProcessor.GetApi <decimal>("ComprobanteCompra/GetOficina");

                Jornales = new ObservableCollection <JornalDto>(await ApiProcessor.GetApi <JornalDto[]>("Jornal/GetAll"));
                Jornales.Sum(x => x.Repuestos);
                Jornales.Sum(x => x.Gasolina);
                Obras = await ApiProcessor.GetApi <int[]>("Obra/NumeroPendientes");

                Presupuestos = new ObservableCollection <PresupuestoDto>(await ApiProcessor.GetApi <PresupuestoDto[]>("Presupuesto/GetAprobado"));
                if (CuentaCorrientes != null)
                {
                    foreach (var i in CuentaCorrientes)
                    {
                        Operaciones = new List <OperacionDto>(await ApiProcessor.GetApi <OperacionDto[]>($"Operacion/GetByBanco/{i.BancoId}"));
                        var values = new ChartValues <DateModel>();

                        var total = 0d;
                        foreach (var item in Operaciones.Where(x => x.FechaEmision.Value.Year == DateTime.Now.Year).OrderBy(x => x.FechaEmision))
                        {
                            if (item.Haber != 0)
                            {
                                total       -= (double)item.Haber;
                                totalEgreso += (double)item.Haber;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.FechaEmision.Value, TipoMovimiento = TipoMovimiento.Egreso, Monto = (decimal)item.Haber
                                });
                            }
                            else
                            {
                                total        += (double)item.Debe;
                                totalIngreso += (double)item.Debe;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.FechaEmision.Value, TipoMovimiento = TipoMovimiento.Ingreso, Monto = (decimal)item.Debe
                                });
                            }
                            values.Add(new DateModel {
                                DateTime = item.FechaEmision.Value, Value = total
                            });
                        }
                        SeriesCollection.Add(new LineSeries {
                            Values = values, Title = $"{i.Banco.RazonSocial}"
                        });
                        Descontado  = (decimal)Operaciones.Where(x => x.Descontado != null).Sum(x => x.Descontado);
                        Debe        = (decimal)Operaciones.Where(x => x.Debe != null).Sum(x => x.Debe);
                        Haber       = (decimal)Operaciones.Where(x => x.Haber != null).Sum(x => x.Haber);
                        Diferencia += Debe - Haber - Descontado;
                    }
                    Cuadros.Add(new CuadroInicio {
                        Titulo = $"Saldo de bancos", Cantidad = $"{Diferencia.ToString("C")}", Icono = MaterialDesignThemes.Wpf.PackIconKind.AccountBalance
                    });
                }
                if (DetalleCaja != null)
                {
                    var values = new ChartValues <DateModel>();
                    foreach (var i in DetalleCaja.GroupBy(x => x.CajaId))
                    {
                        var total = 0d;
                        foreach (var item in i)
                        {
                            if (item.TipoMovimiento == Constantes.TipoMovimiento.Egreso)
                            {
                                total -= (double)item.Monto;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.Caja.FechaApertura, TipoMovimiento = TipoMovimiento.Egreso, Monto = (decimal)item.Monto
                                });
                            }
                            else
                            {
                                total += (double)item.Monto;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.Caja.FechaApertura, TipoMovimiento = TipoMovimiento.Ingreso, Monto = (decimal)item.Monto
                                });
                            }

                            values.Add(new DateModel {
                                DateTime = item.Caja.FechaApertura, Value = total
                            });
                        }
                    }
                    SeriesCollection.Add(new LineSeries {
                        Values = values, Title = $"Caja"
                    });
                }
                var suma   = 0d;
                var egreso = 0d;
                foreach (var item in Graficas.OrderBy(x => x.Fecha))
                {
                    if (item.TipoMovimiento == Constantes.TipoMovimiento.Egreso)
                    {
                        egreso += (double)item.Monto;
                        egresos.Add(new DateModel {
                            DateTime = item.Fecha.Date, Value = egreso
                        });
                    }
                    else
                    {
                        suma += (double)item.Monto;
                        cashflow.Add(new DateModel {
                            DateTime = item.Fecha.Date, Value = suma
                        });
                    }
                }

                SeriesCashFlow.Add(new LineSeries {
                    Values = cashflow, Title = $"Ingresos"
                });
                SeriesCashFlow.Add(new LineSeries {
                    Values = egresos, Title = $"Egresos"
                });
                YCashFlow = value => value.ToString("C");
                XCashFlow = value =>
                {
                    try
                    {
                        return(new DateTime((long)(value * TimeSpan.FromDays(1).Ticks * 30.44)).ToString("M"));
                    }
                    catch (Exception)
                    {
                        return(DateTime.Now.ToString("M"));
                    }
                };
                YFormatter = value => value.ToString("C");

                XFormatter = value =>
                {
                    try
                    {
                        return(new DateTime((long)(value * TimeSpan.FromDays(1).Ticks * 30.44)).ToString("M"));
                    }
                    catch (Exception)
                    {
                        return(DateTime.Now.ToString("M"));
                    }
                };

                if (await ApiProcessor.GetApi <bool>("Caja/CajasEstado"))
                {
                    var caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta");

                    var     detallesCaja = new ObservableCollection <DetalleCajaDto>(await Servicios.ApiProcessor.GetApi <DetalleCajaDto[]>($"DetalleCaja/GetByCaja/{caja.Id}"));
                    decimal MontoSistema = 0;
                    if (detallesCaja.Count > 0)
                    {
                        MontoSistema = detallesCaja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Ingreso).Sum(x => x.Monto) - detallesCaja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Egreso).Sum(x => x.Monto);
                    }
                    Cuadros.Add(new CuadroInicio {
                        Titulo = $"Saldo de la caja", Cantidad = $"{MontoSistema.ToString("C")}", Icono = MaterialDesignThemes.Wpf.PackIconKind.CashRegister, Color = "#74D774"
                    });
                }
                else
                {
                    Cuadros.Add(new CuadroInicio {
                        Titulo = $"La caja esta cerrada", Cantidad = "", Icono = MaterialDesignThemes.Wpf.PackIconKind.CashRegister, Color = "#74D774 "
                    });
                }
                Cuadros.Add(new CuadroInicio {
                    Titulo = $"Gastos de oficina", Cantidad = $"{Oficina.ToString("C")}", Icono = MaterialDesignThemes.Wpf.PackIconKind.Shredder, Color = "#F3E5A1"
                });
                Cuadros.Add(new CuadroInicio {
                    Titulo = $"Cantidad de obras finalizadas", Cantidad = $"{Obras[0]} de {Obras[1]}", Icono = MaterialDesignThemes.Wpf.PackIconKind.TransmissionTower, Color = "#D3B8DD "
                });
                var Gasolina = Jornales.Sum(x => x.Gasolina);
                var Repuesto = Jornales.Sum(x => x.Repuestos);
                var Compras  = ComprobanteCompras.Where(x => NoObras.Obras.Contains(x.Id)).Sum(x => x.Pagando);
                Total = Gasolina + Repuesto + Compras;
                Series.Add(new PieSeries {
                    Title = "Gasolina", Values = new ChartValues <decimal>(new decimal[] { Gasolina }), DataLabels = true, LabelPoint = PointLabel
                });
                Series.Add(new PieSeries {
                    Title = "Repuesto", Values = new ChartValues <decimal>(new decimal[] { Repuesto }), DataLabels = true, LabelPoint = PointLabel
                });
                Series.Add(new PieSeries {
                    Title = "Compras", Values = new ChartValues <decimal>(new decimal[] { Compras }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesSalida.Add(new PieSeries {
                    Title = "Blanco", Values = new ChartValues <decimal>(new decimal[] { comprobanteSalida[0] }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesSalida.Add(new PieSeries {
                    Title = "Negro", Values = new ChartValues <decimal>(new decimal[] { comprobanteSalida[1] }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesEntrada.Add(new PieSeries {
                    Title = "Blanco", Values = new ChartValues <decimal>(new decimal[] { comprobanteEntrada[0] }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesEntrada.Add(new PieSeries {
                    Title = "Negro", Values = new ChartValues <decimal>(new decimal[] { comprobanteEntrada[1] }), DataLabels = true, LabelPoint = PointLabel
                });
                var Cobrado = Presupuestos.Sum(x => x.CobradoSinImpuestos);
                TotalPresupuesto = Presupuestos.Sum(x => x.TotalSinImpuestos);
                var DiferenciaPresupuesto = TotalPresupuesto - Cobrado;
                SeriesPresupuesto.Add(new PieSeries {
                    Title = "Cobrado", Values = new ChartValues <decimal>(new decimal[] { Cobrado }), DataLabels = true, LabelPoint = PointLabelPresupuesto
                });
                SeriesPresupuesto.Add(new PieSeries {
                    Title = "Faltante", Values = new ChartValues <decimal>(new decimal[] { DiferenciaPresupuesto }), DataLabels = true, LabelPoint = PointLabelPresupuesto
                });
            }
            catch (Exception)
            {
                MessageBox.Show("No se pudo cargar por problemas de conexion.");
            }
        }