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); } }
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); } } }
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"; }