Пример #1
0
        static void Main(string[] args)
        {
            // prueba1

            int[] temp1 = { 2, 3, 4, 6, 87, 1, 3, 1 };
            int[] temp2 = { 1, 3, 5, 7, 1, 7, 9 };

            IEnumerator <int> my = Diferencia.Resta <int>(((IEnumerable <int>)temp1).GetEnumerator(), ((IEnumerable <int>)temp2).GetEnumerator());

            while (my.MoveNext())
            {
                Console.WriteLine(my.Current);
            }
            Console.WriteLine();
            DiferenciaEnumerator <int> mo = new DiferenciaEnumerator <int>(((IEnumerable <int>)temp1).GetEnumerator(), ((IEnumerable <int>)temp2).GetEnumerator());

            while (mo.MoveNext())
            {
                Console.WriteLine(mo.Current);
            }
        }
Пример #2
0
        public void rellenarPag()
        {
            _numAciertos = 0;
            _diferencias = new List <Diferencia>();
            Diferencia diferencia1 = new Diferencia();
            Diferencia diferencia2 = new Diferencia();
            Diferencia diferencia3 = new Diferencia();
            Diferencia diferencia4 = new Diferencia();

            diferencia1.ellipse.Name    = "elipse1";
            diferencia2.ellipse.Name    = "elipse2";
            diferencia3.ellipse.Name    = "elipse3";
            diferencia4.ellipse.Name    = "elipse4";
            diferencia1.posX            = 210;
            diferencia2.posX            = 380;
            diferencia1.posY            = 250;
            diferencia2.posY            = 280;
            diferencia3.posX            = 850;
            diferencia4.posX            = 1030;
            diferencia3.posY            = 250;
            diferencia4.posY            = 280;
            diferencia1.ellipse.Tapped += new TappedEventHandler(evento_Click);
            diferencia2.ellipse.Tapped += new TappedEventHandler(evento_Click);
            diferencia3.ellipse.Tapped += new TappedEventHandler(evento_Click);
            diferencia4.ellipse.Tapped += new TappedEventHandler(evento_Click);
            diferencia1.tomarPosicion();
            diferencia2.tomarPosicion();
            diferencia3.tomarPosicion();
            diferencia4.tomarPosicion();
            _diferencias.Add(diferencia1);
            _diferencias.Add(diferencia2);
            _diferencias.Add(diferencia3);
            _diferencias.Add(diferencia4);

            _imagen1 = new Uri("ms-appx://EncuentraDiferencias/Assets/imagen1.PNG", UriKind.RelativeOrAbsolute);
            _imagen2 = new Uri("ms-appx://EncuentraDiferencias/Assets/imagen2.PNG", UriKind.RelativeOrAbsolute);
        }
        //{
        //    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.");
            }
        }