public fInserimentoPeriodico(string Tipo_)
        {
            InitializeComponent();

            if (!cGB.DesignTime)
            {
                Tipo = Tipo_;

                var p = new DB.DataWrapper.cPeriodici();
                var m = new DB.DataWrapper.cMovimenti();
                var c = new DB.DataWrapper.cCasse();

                cbCassa.ValueMember   = "Nome";
                cbCassa.DisplayMember = "Nome";
                cbCassa.DataSource    = c.ListaCasse();
                cbCassa.SelectedValue = Tipo;

                cbPeriodicita.ValueMember   = "ID";
                cbPeriodicita.DisplayMember = "Valore";
                cbPeriodicita.Items.AddRange(p.Periodicita_cComboItems());

                eDescrizione.AutoCompleteCustomSource = m.TutteLeDescrizioni();
                eMacroArea.AutoCompleteCustomSource   = m.TutteLeMacroAree();
                eData.Value_ = DateTime.Now;
                eNome.Text   = cGB.UtenteConnesso.UserName;
                cbPeriodicita.SelectedIndex = 0;
            }
        }
        private void Salva()
        {
            if (eSoldi.Selected)
            {
                eSoldi.DoCalc();
            }
            else
            {
                if (eSoldi.Value == 0)
                {
                    cGB.MsgBox("Campo importo vuoto!", MessageBoxIcon.Exclamation);
                }
                else
                {
                    var m = new DB.DataWrapper.cPeriodici();

                    m.ID             = ID__;
                    m.tipo           = cbCassa.Text;
                    m.nome           = eNome.Text;
                    m.descrizione    = eDescrizione.Text;
                    m.MacroArea      = eMacroArea.Text;
                    m.soldi          = eSoldi.Value;
                    m.NumeroGiorni   = (int)eNumGiorni.Value;
                    m.TipoGiorniMese = m.Periodicita_cComboItems_Index(cbPeriodicita.SelectedIndex);

                    if (eScadenza.Checked)
                    {
                        m.Scadenza = eScadenza.Value_;
                    }

                    if (m.TipoGiorniMese == 'G')
                    {
                        m.PartendoDalGiorno = eData.Value_;
                    }
                    else
                    {
                        m.GiornoDelMese = eData.Value_;
                    }

                    if (m.Salva() <= 0)
                    {
                        MsgErroreSalvataggio();
                    }
                    else
                    {
                        DialogResult = DialogResult.OK;
                    }
                }
            }
        }
Exemple #3
0
        public void Cerca()
        {
            this.Enabled = false;
            var ancheFuturi = cbPrevisti.Checked;

            try
            {
                var mov = new DB.DataWrapper.cMovimenti()
                {
                    DataDa      = cGB.DateTo00000(eDa.Value),
                    DataA       = cGB.DateTo235959(eA.Value),
                    descrizione = cGB.QQ(eDescrizione.Text),
                    MacroArea   = cGB.QQ(eMacroArea.Text)
                };

                Totale = mov.RicercaGraficoSaldo();
                grafico.Series.Clear();

                using (var data_reader = mov.RicercaGrafico(cbPeriodicita.SelectedIndex == 1))
                {
                    var NumCorre        = -1;
                    var serie_nuova     = CreaSerie();
                    var DataPrec        = default(DateTime);
                    var DataAct         = default(DateTime);
                    var DateUsate       = new List <string>();
                    var tipo_intervallo = (cbPeriodicita.SelectedIndex == 1 ? eTipoData.Anno : eTipoData.Mese);

                    try
                    {
                        if (data_reader.HasRows)
                        {
                            while (data_reader.Read())
                            {
                                NumCorre += 1;
                                var LaData = data_reader.GetString(0);
                                DateUsate.Add(LaData);

                                DataPrec = DataAct;
                                DataAct  = StringYYYYMMToDate(LaData);
                                var soldi = cGB.ObjectToMoney(data_reader[1]);
                                var data_point_attuale = CreaDataPoint(LaData, soldi);

                                //inserire un datapoint vuoto se non ho dati nel db per quella data
                                if (DataPrec != DateTime.MinValue)
                                {
                                    if (DateDiff(tipo_intervallo, DataPrec, DataAct) != 1)
                                    {
                                        var differenza_date = DiffDate(tipo_intervallo, DataPrec, DataAct);

                                        for (var u = 0; u < (differenza_date?.Length ?? 0); u++)
                                        {
                                            if (differenza_date[u] != LaData)
                                            {
                                                var data_point_vuoto_no_dati_su_db = new System.Windows.Forms.DataVisualization.Charting.DataPoint()
                                                {
                                                    YValues   = DoubleToDataPointDouble(0D),
                                                    ToolTip   = ToEuroWithDate(0D, differenza_date[u]),
                                                    AxisLabel = differenza_date[u],
                                                    Color     = Color.Green
                                                };

                                                DateUsate.Add(differenza_date[u]);
                                                serie_nuova.Points.Insert(NumCorre, data_point_vuoto_no_dati_su_db);

                                                NumCorre += 1;
                                            }
                                        }
                                    }
                                }

                                serie_nuova.Points.Insert(NumCorre, data_point_attuale);
                            } //fine lettura DB
                        }
                        if (ancheFuturi)
                        {
                            var daAggiungere    = false;
                            var val             = 0d;
                            var LaDataPeriodica = "";
                            var per             = new DB.DataWrapper.cPeriodici();
                            var movimenti       = per.RicercaScadenzeCalcolate(eDa.Value, eA.Value);

                            for (var i = 0; i < movimenti.Count; i++)
                            {
                                daAggiungere    = false;
                                LaDataPeriodica = movimenti[i].GiornoDelMese.ToString(tipo_intervallo == eTipoData.Mese ? "yyyy/MM" : "yyyy");
                                val            += movimenti[i].soldi_d;

                                if (i < movimenti.Count - 1)
                                {
                                    if (LaDataPeriodica != movimenti[i + 1].GiornoDelMese.ToString(tipo_intervallo == eTipoData.Mese ? "yyyy/MM" : "yyyy"))
                                    {
                                        daAggiungere = true;
                                    }
                                }
                                else
                                {
                                    daAggiungere = true;
                                }

                                if (daAggiungere)
                                {
                                    if (DateUsate.Contains(LaDataPeriodica))
                                    {
                                        for (var v = 0; v < serie_nuova.Points.Count; v++)
                                        {
                                            if (serie_nuova.Points[v].AxisLabel.Equals(LaDataPeriodica, StringComparison.OrdinalIgnoreCase))
                                            {
                                                serie_nuova.Points[v] = CreaDataPoint(LaDataPeriodica, serie_nuova.Points[v].YValues[0] + val, Color.Blue, Color.Brown);
                                                break;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        NumCorre++;
                                        var e = CreaDataPoint(LaDataPeriodica, val, Color.Blue, Color.Brown);
                                        serie_nuova.Points.Insert(NumCorre, e);
                                    }

                                    val = 0;
                                }
                            }

                            Totale = 0;
                            for (var v = 0; v < serie_nuova.Points.Count; v++)
                            {
                                Totale += serie_nuova.Points[v].YValues[0];
                            }
                        } //fine movimenti futuri

                        this.gbGrafico.Text = "Grafico dei movimenti - Saldo = " + cGB.DoubleToMoneyStringValuta(Totale);
                        serie_nuova.Name    = "Saldo = " + cGB.DoubleToMoneyStringValuta(Totale);
                        grafico.Series.Add(serie_nuova);
                    }
                    finally
                    {
                        data_reader.Close();
                    }
                } //using data_reader
            }
            finally
            {
                SettaTitolo();
                this.Enabled = true;

                foreach (var area in grafico.ChartAreas)
                {
                    area.RecalculateAxesScale();
                }
            }
        }
        public void Action(eActions a, bool ByUser = false)
        {
            LastSelectedNode = cAlbero.SelectedNode;

            if (a == eActions.Cassaforte)
            {
                ShowCash(bCassaforte);
            }
            else if (a == eActions.Salvadanaio)
            {
                ShowCash(bSalvadanaio);
            }
            else if (a == eActions.Dare)
            {
                ShowCash(bDare);
            }
            else if (a == eActions.Avere)
            {
                ShowCash(bAvere);
            }
            else if (a == eActions.Portafogli)
            {
                ShowCash(bPortafoglio);
            }
            else if (a == eActions.Saldo)
            {
                ShowCash(bSaldo);
            }
            else if (a == eActions.NuovoMovimento)
            {
                using (var sce = new fGiroconto()
                {
                    Titolo = "Scegli la cassa in cui vuoi inserire"
                })
                    if (sce.ShowDialog() == DialogResult.OK)
                    {
                        var mov = new DB.DataWrapper.cMovimenti();

                        using (var fi = new fInserimento()
                        {
                            Tipo = sce.CassaSelezionata,
                            Saldo = mov.Saldo(sce.CassaSelezionata)
                        })
                            if (fi.ShowDialog() == DialogResult.OK)
                            {
                                cGB.RationesCurareMainForm.LoadAllCash();
                            }
                    }
            }
            else if (a == eActions.NuovoGiroconto)
            {
                using (var sce = new fGiroconto()
                {
                    Titolo = "Scegli la cassa in cui vuoi inserire"
                })
                    if (sce.ShowDialog() == DialogResult.OK)
                    {
                        using (var g = new fGiroconto(sce.CassaSelezionata))
                            if (g.ShowDialog() == DialogResult.OK)
                            {
                                var mov = new DB.DataWrapper.cMovimenti();

                                using (var fi = new fInserimento()
                                {
                                    Modalita = fInserimento.eModalita.Giroconto,
                                    TipoGiroconto = g.CassaSelezionata,
                                    Tipo = sce.CassaSelezionata,
                                    Saldo = mov.Saldo(sce.CassaSelezionata)
                                })
                                    if (fi.ShowDialog() == DialogResult.OK)
                                    {
                                        cGB.RationesCurareMainForm.LoadAllCash();
                                    }
                            }
                    }
            }
            else if (a == eActions.Calendario)
            {
                var c = new Controlli.cCalendario();
                AddNewTab(c, "Calendario", Properties.Resources.calendario32);
            }
            else if (a == eActions.MacroAree)
            {
                var c = new Controlli.cMacroAree();
                AddNewTab(c, "Macro aree", Properties.Resources.MacroAree);
            }
            else if (a == eActions.OpzioniDB)
            {
                using (var d = new fOpzioniDb())
                    d.ShowDialog();
            }
            else if (a == eActions.Calcolatrice)
            {
                var d = new Controlli.fCalc()
                {
                    StartPosition = FormStartPosition.CenterScreen,
                    TopMost       = true,
                    ShowInTaskbar = true
                };

                d.Show();
            }
            else if (a == eActions.ControllaPromemoria)
            {
                var c = new DB.DataWrapper.cCalendario();

                if (c.PresenzaPromemoria())
                {
                    using (fPromemoria p = new fPromemoria())
                        p.ShowDialog();
                }
                else
                {
                    if (ByUser)
                    {
                        cGB.MsgBox("Nessun promemoria a breve scadenza.");
                    }
                }
            }
            else if (a == eActions.ControllaPeriodiciSoloAlert)
            {
                var c = new DB.DataWrapper.cPeriodici();
                var mov_periodici_entro_oggi = c.RicercaScadenzeEntroOggi_plus_X_Giorni(5);

                if (mov_periodici_entro_oggi != null)
                {
                    if (mov_periodici_entro_oggi.Count > 0)
                    {
                        foreach (var pi in mov_periodici_entro_oggi)
                        {
                            var dtd = DateTime.Now;
                            var MeseDaAggiungere = 0;

                            switch (pi.TipoGiornoMese)
                            {
                            case DB.DataWrapper.cPeriodici.ePeriodicita.G:
                                if (pi.PartendoDalGiorno.Year < 1900)
                                {
                                    dtd = cGB.DateToOnlyDate(new DateTime(DateTime.Now.Year, DateTime.Now.Month, pi.GiornoDelMese.Day).AddDays(pi.NumeroGiorni));
                                }
                                else
                                {
                                    dtd = cGB.DateToOnlyDate(new DateTime(DateTime.Now.Year, DateTime.Now.Month, pi.PartendoDalGiorno.Day).AddDays(pi.NumeroGiorni));
                                }
                                break;

                            case DB.DataWrapper.cPeriodici.ePeriodicita.M:
                                MeseDaAggiungere = 1;
                                break;

                            case DB.DataWrapper.cPeriodici.ePeriodicita.B:
                                MeseDaAggiungere = 2;
                                break;

                            case DB.DataWrapper.cPeriodici.ePeriodicita.T:
                                MeseDaAggiungere = 3;
                                break;

                            case DB.DataWrapper.cPeriodici.ePeriodicita.Q:
                                MeseDaAggiungere = 4;
                                break;

                            case DB.DataWrapper.cPeriodici.ePeriodicita.S:
                                MeseDaAggiungere = 6;
                                break;

                            case DB.DataWrapper.cPeriodici.ePeriodicita.A:
                                MeseDaAggiungere = 12;
                                break;
                            }

                            switch (pi.TipoGiornoMese)
                            {
                            case DB.DataWrapper.cPeriodici.ePeriodicita.M:
                            case DB.DataWrapper.cPeriodici.ePeriodicita.B:
                            case DB.DataWrapper.cPeriodici.ePeriodicita.T:
                            case DB.DataWrapper.cPeriodici.ePeriodicita.Q:
                            case DB.DataWrapper.cPeriodici.ePeriodicita.S:
                            case DB.DataWrapper.cPeriodici.ePeriodicita.A:
                                dtd = cGB.DateToOnlyDate(new DateTime(DateTime.Now.Year, DateTime.Now.Month, pi.GiornoDelMese.Day).AddMonths(MeseDaAggiungere));
                                break;
                            }

                            pi.GiornoDelMese = dtd;
                        }

                        mov_periodici_entro_oggi.Sort();

                        using (var f = new fPromemoriaPeriodici()
                        {
                            Movimenti = mov_periodici_entro_oggi
                        })
                            f.ShowDialog();
                    }
                }
            }
            else if (a == eActions.ControllaPeriodici)
            {
                var CiSono = false;
                var c      = new DB.DataWrapper.cPeriodici();
                var mov_periodici_entro_oggi = c.RicercaScadenzeEntroOggi();

                if (mov_periodici_entro_oggi != null)
                {
                    if (mov_periodici_entro_oggi.Count > 0)
                    {
                        CiSono = true;
                    }
                }

                if (CiSono)
                {
                    var QualcosaInserito = false;

                    if (cGB.MsgBox("Ci sono dei movimenti periodici da inserire, vuoi visualizzarli ora?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                    {
                        foreach (var pi in mov_periodici_entro_oggi)
                        {
                            using (var inz = new fInserimento())
                            {
                                var dtd = DateTime.Now;
                                var MeseDaAggiungere_ = 0;

                                switch (pi.TipoGiornoMese)
                                {
                                case DB.DataWrapper.cPeriodici.ePeriodicita.G:
                                    if (pi.PartendoDalGiorno.Year < 1900)
                                    {
                                        dtd = cGB.DateToOnlyDate(new DateTime(DateTime.Now.Year, DateTime.Now.Month, pi.GiornoDelMese.Day).AddDays(pi.NumeroGiorni));
                                    }
                                    else
                                    {
                                        dtd = cGB.DateToOnlyDate(new DateTime(DateTime.Now.Year, DateTime.Now.Month, pi.PartendoDalGiorno.Day).AddDays(pi.NumeroGiorni));
                                    }
                                    break;

                                case DB.DataWrapper.cPeriodici.ePeriodicita.M:
                                    MeseDaAggiungere_ = 1;
                                    break;

                                case DB.DataWrapper.cPeriodici.ePeriodicita.B:
                                    MeseDaAggiungere_ = 2;
                                    break;

                                case DB.DataWrapper.cPeriodici.ePeriodicita.T:
                                    MeseDaAggiungere_ = 3;
                                    break;

                                case DB.DataWrapper.cPeriodici.ePeriodicita.Q:
                                    MeseDaAggiungere_ = 4;
                                    break;

                                case DB.DataWrapper.cPeriodici.ePeriodicita.S:
                                    MeseDaAggiungere_ = 6;
                                    break;

                                case DB.DataWrapper.cPeriodici.ePeriodicita.A:
                                    MeseDaAggiungere_ = 12;
                                    break;
                                }

                                switch (pi.TipoGiornoMese)
                                {
                                case DB.DataWrapper.cPeriodici.ePeriodicita.M:
                                case DB.DataWrapper.cPeriodici.ePeriodicita.B:
                                case DB.DataWrapper.cPeriodici.ePeriodicita.T:
                                case DB.DataWrapper.cPeriodici.ePeriodicita.Q:
                                case DB.DataWrapper.cPeriodici.ePeriodicita.S:
                                case DB.DataWrapper.cPeriodici.ePeriodicita.A:
                                    dtd = cGB.DateToOnlyDate(new DateTime(DateTime.Now.Year, DateTime.Now.Month, pi.GiornoDelMese.Day).AddMonths(MeseDaAggiungere_));
                                    break;
                                }

                                inz.Tipo = pi.tipo;
                                inz.eDescrizione.Text = pi.descrizione;
                                inz.eMacroArea.Text   = ((pi.MacroArea == null || pi.MacroArea == "") ? inz.GetMacroArea4Descrizione(pi.descrizione) : pi.MacroArea);
                                inz.eNome.Text        = pi.nome;
                                inz.eSoldi.Value      = pi.soldi;

                                if (inz.ShowDialog() == DialogResult.OK)
                                {
                                    if (pi.TipoGiorniMese == 'G')
                                    {
                                        pi.GiornoDelMese     = new DateTime();
                                        pi.PartendoDalGiorno = dtd;
                                    }
                                    else
                                    {
                                        pi.PartendoDalGiorno = new DateTime();
                                        pi.GiornoDelMese     = dtd;
                                    }

                                    pi.Salva();
                                    QualcosaInserito = true;
                                }
                            }
                        }

                        if (QualcosaInserito)
                        {
                            LoadAllCash();
                        }
                    }
                }
                else
                {
                    if (ByUser)
                    {
                        cGB.MsgBox("Non ricorre nessun movimento periodico.");
                    }
                }
            }
            else if (a == eActions.GraficoSpline)
            {
                AddNewTabGrafico("RationesCurare7.UI.Controlli.cGraficoSpline", "Grafico a linee", Properties.Resources.grafico32);
            }
            else if (a == eActions.Grafico)
            {
                AddNewTabGrafico("RationesCurare7.UI.Controlli.cGrafico", "Grafico", Properties.Resources.grafico32);
            }
            else if (a == eActions.Torta)
            {
                AddNewTabGrafico("RationesCurare7.UI.Controlli.cGraficoTorta", "Torta", Properties.Resources.PieChart);
            }
            else if (a == eActions.MovimentiPeriodici)
            {
                var c = new Controlli.cMovimentiPeriodici();
                AddNewTab(c, "Movimenti periodici", Properties.Resources.perdioci32);
            }
            else if (a == eActions.Casse)
            {
                var c = new Controlli.cCasse();
                AddNewTab(c, "Casse", Properties.Resources.ingranaggio32);
            }
            else if (a == eActions.Novita)
            {
                var c = new Controlli.cNovita();
                AddNewTab(c, "Novità", Properties.Resources.star32);
            }
            else if (a == eActions.Cerca)
            {
                var c = new Controlli.cRicerca();
                AddNewTab(c, "Ricerca", Properties.Resources.find32);
            }
            else if (a == eActions.About)
            {
                var c = new Controlli.cAbout();
                AddNewTab(c, "About", Properties.Resources.about32);
            }
            else if (a == eActions.CosaNePensi)
            {
                var c = new Controlli.cCosaNePensi();
                AddNewTab(c, "Cosa ne pensi?", Properties.Resources.mail32);
            }

            cAlbero.SelectedNode = LastSelectedNode;
        }