/// <summary> /// Calcola kdoc in base a ndoc, dei mandati, reversali ed esiti dei sospesi. Eventualente anche la chiave interna nbill /// </summary> /// <param name="Conn"></param> public bool CalcolaChiaviDocumenti(DataAccess Conn) { bool res = true; QueryHelper Q = Conn.GetQueryHelper(); TableCache tPayment = new TableCache(Conn, "npay", "payment", new string[] { "kpay" }, Q.CmpEq("ypay", Conn.GetSys("esercizio"))); TableCache tProceeds = new TableCache(Conn, "npro", "proceeds", new string[] { "kpro" }, Q.CmpEq("ypro", Conn.GetSys("esercizio"))); object[] npay = new object[Mandati.Count]; for (int i = 0; i < Mandati.Count; i++) { npay[i] = Mandati[i].ndoc; } object[] npro = new object[Reversali.Count]; for (int i = 0; i < Reversali.Count; i++) { npro[i] = Reversali[i].ndoc; } tPayment.ReadValuesRelatedTo(npay, "npay"); tProceeds.ReadValuesRelatedTo(npro, "npro"); List <string> msgs = new List <string>(); foreach (RigaMandato rp in Mandati) { int k = CfgFn.GetNoNullInt32(tPayment.getField(rp.ndoc, "kpay")); if (k == 0) { string msg = "Non esiste il mandato numero " + rp.ndoc.ToString() + " nell'esercizio corrente."; if (!msgs.Contains(msg)) { MessageBox.Show(msg, "Errore"); msgs.Add(msg); } res = false; } if (rp.progressivo == 0) { string msg = "Non è ammissibile il progressivo zero per il mandato numero " + rp.ndoc.ToString() + "."; if (!msgs.Contains(msg)) { MessageBox.Show(msg, "Errore"); msgs.Add(msg); } res = false; } rp.kdoc = k; } foreach (RigaReversale rr in Reversali) { int k = CfgFn.GetNoNullInt32(tProceeds.getField(rr.ndoc, "kpro")); if (k == 0) { string msg = "Non esiste la reversale numero " + rr.ndoc.ToString() + " nell'esercizio corrente."; if (!msgs.Contains(msg)) { MessageBox.Show(msg, "Errore"); msgs.Add(msg); } res = false; } if (rr.progressivo == 0) { string msg = "Non è ammissibile il progressivo zero per la reversale numero " + rr.ndoc.ToString() + "."; if (!msgs.Contains(msg)) { MessageBox.Show(msg, "Errore"); msgs.Add(msg); } res = false; } rr.kdoc = k; } return(res); }