Example #1
0
        private void txtRedditoComplessivo_Leave(object sender, EventArgs e)
        {
            if (inChiusura)
            {
                return;
            }
            HelpForm.ExtLeaveDecTextBox(txtRedditoComplessivo, "x.y");
            int     esercizio = CfgFn.GetNoNullInt32(Conn.GetSys("esercizio"));
            decimal rc        = CfgFn.GetNoNullDecimal(HelpForm.GetObjectFromString(typeof(decimal), txtRedditoComplessivo.Text, "x.y"));
            string  errMess;
            decimal acconto = CalcoliCococo.calcolaAccontoAddCom(Conn, esercizio, idcity, idser, rc, out errMess);

            if (errMess == null)
            {
                txtAcconto.Text = acconto.ToString("c");
            }
            else
            {
                MessageBox.Show("Non è stato possibile calcolare l'acconto perché si è verificato il seguente errore\r\n" + errMess);
            }
        }
Example #2
0
        private void fillForm()
        {
            int     esercizio         = CfgFn.GetNoNullInt32(Conn.GetSys("esercizio")) - 1;
            decimal stimaRedditoCompl = CalcoliCococo.calcolaImpFiscalePerAccontoAddizCom(Conn, esercizio, idreg);
            string  msg = "Abbiamo stimato che il reddito complessivo per l'esercizio " + esercizio + " sia pari a € " +
                          +stimaRedditoCompl + ".\r\nIl calcolo è stato fatto sommando gli imponibili fiscali lordi delle prestazioni pagate al percipiente.";

            lblRedditoComplessivo.Text = msg;
            if (annualincome != 0)
            {
                txtRedditoComplessivo.Text = annualincome.ToString("c");
            }
            if ((idcity != null) || (idcity != DBNull.Value))
            {
                object nomeCitta = Conn.DO_READ_VALUE("geo_city", QHS.CmpEq("idcity", idcity), "title");
                if (nomeCitta != null && nomeCitta != DBNull.Value)
                {
                    txtComuneResidenza.Text = nomeCitta.ToString().ToUpper();
                }
            }
            bool calcolaAcconto = ((annualincome != 0) && ((idcity != null) || (idcity != DBNull.Value)));

            if (calcolaAcconto)
            {
                string  errMess;
                decimal acconto = CalcoliCococo.calcolaAccontoAddCom(Conn, (esercizio + 1), idcity, idser, annualincome, out errMess);
                if (errMess == null)
                {
                    txtAcconto.Text = acconto.ToString("c");
                }
                else
                {
                    MessageBox.Show("Non è stato possibile calcolare l'acconto perché si è verificato il seguente errore\r\n" + errMess);
                }
            }
        }
Example #3
0
        private void FrmProgressCalcoloCedolini_Activated(object sender, System.EventArgs e)
        {
            if (!primaVolta)
            {
                return;
            }
            primaVolta = false;
            ArrayList cedoliniDaCalcolare = new ArrayList();
            int       scartati            = 0;

            progressBar1.Maximum = cedolini.Count;

            lblEsaminati.Text = "Esaminati: " + progressBar1.Value + " / " + progressBar1.Maximum;
            lblCalcolati.Text = "Calcolati: " + 0;
            lblScartati.Text  = "Scartati: " + scartati;

            string    orderby = "fiscalyear, npayroll, flagbalance";
            DataTable tempCed = Meta.Conn.RUN_SELECT("payroll",
                                                     "idcon, idpayroll, " + orderby, orderby,
                                                     QHS.AppAnd(QHS.CmpEq("flagcomputed", 'N'), QHS.FieldInList("idcon", filtroContratti)), null, true);

            tempCed.Columns.Add("flagselezionato");
            tempCed.Columns.Add("flagultimocedolino");
            foreach (int idCedolino in cedolini)
            {
                DataRow[] rCedSel = tempCed.Select(QHC.CmpEq("idpayroll", idCedolino));
                rCedSel[0]["flagselezionato"] = "S";
            }
            occorreAggiornare = false;
            ArrayList cedoliniDiConguaglioDaCalcolare = new ArrayList();

            foreach (string idContratto in contratti)
            {
                string    filtroContratto    = QHS.CmpEq("idcon", idContratto);
                string    filtroImpContratto = QHS.AppAnd(filtroContratto, QHS.CmpEq("ayear", Meta.GetSys("esercizio")));
                DataTable ImpContratto       = Meta.Conn.RUN_SELECT("parasubcontractyear",
                                                                    "*", null, filtroImpContratto, null, true);
                int       count      = 0;
                string    precedenti = null;
                DataRow[] rCed       = tempCed.Select(filtroContratto, orderby);
                for (int i = 0; i < rCed.Length; i++)
                {
                    if (rCed[i]["flagselezionato"] is DBNull)
                    {
                        if (count == 0)
                        {
                            precedenti = rCed[i]["idpayroll"].ToString();
                        }
                        else
                        {
                            precedenti += ", " + rCed[i]["idpayroll"];
                        }
                        count++;
                    }
                    else
                    {
                        bool erroreSuQuestoCedolino = false;
                        if (ImpContratto.Rows.Count == 0)
                        {
                            txtErrori.Text        += "n° " + rCed[i]["idpayroll"] + "  (contratto non ancora trasferito dall'esercizio fiscale precedente";
                            txtErrori.Text        += ")\r\n";
                            erroreSuQuestoCedolino = true;
                        }
                        if (count != 0)
                        {
                            txtErrori.Text        += "n° " + rCed[i]["idpayroll"] + "  (prima calcolare ";
                            txtErrori.Text        += (count == 1) ? "il cedolino n° " : "i cedolini n° ";
                            txtErrori.Text        += precedenti + ")\r\n";
                            erroreSuQuestoCedolino = true;
                        }
                        else
                        {
                            string fCedCong = "idcon='" + rCed[i]["idcon"]
                                              + "' and fiscalyear=" + rCed[i]["fiscalyear"]
                                              + " and npayroll=" + rCed[i]["npayroll"]
                                              + " and flagbalance='S'";
                            DataRow[] rCedCong = tempCed.Select(fCedCong);
                            if (rCedCong.Length > 0)
                            {
                                rCed[i]["flagultimocedolino"] = "S";
                                cedoliniDiConguaglioDaCalcolare.Add((int)rCedCong[0]["idpayroll"]);
//								if (rCedCong[0]["flagselezionato"] is DBNull)
//								{
//									count = 1;
//									txtErrori.Text += "n° " + rCed[i]["idpayroll"]
//										+ "  (calcolare insieme al cedolino di conguaglio n° "
//										+ rCedCong[0]["idpayroll"] +")\r\n";
//									erroreSuQuestoCedolino = true;
//								}
                            }
                        }
                        if (!erroreSuQuestoCedolino)
                        {
                            cedoliniDaCalcolare.Add(rCed[i]["idpayroll"]);
                        }
                        else
                        {
                            scartati++;
                            lblScartati.Text = "Scartati: " + scartati;
                            progressBar1.Value++;
                        }
                        lblEsaminati.Text = "Esaminati: " + progressBar1.Value + " / " + progressBar1.Maximum;
                        Application.DoEvents();
                    }

                    if (interrompi)
                    {
                        btnInterrompi.Text = "Chiudi";
                        return;
                    }
                }
            }

            IEnumerator en = cedoliniDaCalcolare.GetEnumerator();
            string      cedoliniRataCalcolati = "";

            if (en.MoveNext())
            {
                string filtroCedoliniDaCalcolare = "(idpayroll in (" + en.Current;
                while (en.MoveNext())
                {
                    filtroCedoliniDaCalcolare += ", " + en.Current;
                }

                foreach (int cedolinoConguaglio in cedoliniDiConguaglioDaCalcolare)
                {
                    filtroCedoliniDaCalcolare += "," + cedolinoConguaglio;
                }
                filtroCedoliniDaCalcolare += "))";

                int           calcolati = 0;
                CalcoliCococo coc       = new CalcoliCococo(Meta.Dispatcher, Meta.Conn, filtroCedoliniDaCalcolare);
                foreach (int idCedolino in cedoliniDaCalcolare)
                {
                    DataRow rCedolino      = tempCed.Select(QHC.CmpEq("idpayroll", idCedolino))[0];
                    bool    ultimoCedolino = (rCedolino["flagultimocedolino"] != DBNull.Value);
                    string  errore         = null;
                    if (ultimoCedolino)
                    {
                        int idCedolinoConguaglio = ottieniIdCedolinoConguaglio(rCedolino, tempCed);
                        errore = coc.calcolaCedolino(idCedolino, false, "N");
                        if (errore != null)
                        {
                            MessageBox.Show(this, "Errore nel calcolo del cedolino n° " + idCedolino + ".\n" + errore);
                        }
                        else
                        {
                            errore = coc.calcolaCedolino(idCedolinoConguaglio, false, "F");
                            if (errore != null)
                            {
                                MessageBox.Show(this, "Errore nel calcolo del cedolino n° " + idCedolinoConguaglio + ".\n" + errore);
                            }
                            else
                            {
                                errore = coc.aggiungiRitenuteNonFiscaliCedolinoConguaglio(idCedolinoConguaglio, false);
                                if (errore != null)
                                {
                                    MessageBox.Show(this, "Errore nel calcolo del cedolino n° " + idCedolinoConguaglio + ".\n" + errore);
                                }
                                else
                                {
                                    errore = coc.aggiungiRitenuteFiscaliUltimoCedolinoRata(idCedolino, idCedolinoConguaglio, false);
                                    if (errore != null)
                                    {
                                        MessageBox.Show(this, "Errore nel calcolo del cedolino n° " + idCedolino + ".\n" + errore);
                                    }
                                    else
                                    {
                                        errore = coc.aggiornaDatiCedolinoConguaglio(idCedolinoConguaglio, false);
                                        if (errore != null)
                                        {
                                            MessageBox.Show(this, "Errore nel calcolo del cedolino n° " + idCedolinoConguaglio + ".\n" + errore);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        errore = coc.calcolaCedolino(idCedolino, false, "T");
                    }
                    if (errore == null)
                    {
                        calcolati++;
                        occorreAggiornare = true;
                        lblCalcolati.Text = "Calcolati: " + calcolati;
                        if (txtCedoliniCalcolati.Text == "")
                        {
                            txtCedoliniCalcolati.Text = idCedolino.ToString();
                            cedoliniRataCalcolati     = "'" + idCedolino + "'";
                        }
                        else
                        {
                            txtCedoliniCalcolati.Text += ", " + idCedolino;
                            cedoliniRataCalcolati     += ", '" + idCedolino + "'";
                        }
                    }
                    else
                    {
                        txtErrori.Text += "n° " + idCedolino + "  (" + errore + ")\r\n";
                    }
                    progressBar1.Value++;
                    lblEsaminati.Text = "Esaminati: " + progressBar1.Value + " / " + progressBar1.Maximum;
                    Application.DoEvents();
                    if (interrompi)
                    {
                        btnInterrompi.Text = "Chiudi";
                        return;
                    }
                }
                string errMess = coc.salvaSulDB();
                if (errMess == null)
                {
                    GeneraImpegniEScritture(cedoliniRataCalcolati);
                }
            }
            btnInterrompi.Text = "OK";
        }