Example #1
0
        /// <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);
        }