Exemplo n.º 1
0
        public override void DescribeTree(System.Windows.Forms.TreeView tree, DataTable T, string ListingType)
        {
            bool all = false;

            //Aggiorno le intestazioni del DataGrid
            if (ListingType == "tree" || ListingType == "treeall" || ListingType == "treenew" || ListingType == "treeminusable")
            {
                base.DescribeColumns(T, ListingType);
                foreach (DataColumn C in T.Columns)
                {
                    DescribeAColumn(T, C.ColumnName, "");
                }
                DescribeAColumn(T, "!livello", "Livello", "accountlevel.description");
                DescribeAColumn(T, "codeacc", "Codice");
                DescribeAColumn(T, "title", "Denominazione");
            }

            base.DescribeTree(tree, T, ListingType);
            int    esercizio       = Convert.ToInt32(GetSys("esercizio"));
            int    esercizionew    = esercizio + 1;
            string filteresercizio = QHC.CmpEq("ayear", GetSys("esercizio"));
            string filterc         = QHC.CmpEq("nlevel", "1");
            string filtersql       = QHS.CmpEq("nlevel", "1");

            int    maxlevel = 0;
            object o        = Conn.DO_READ_VALUE("accountlevel", filteresercizio, "max(nlevel)");

            if ((o != null) && (o != DBNull.Value))
            {
                maxlevel = Convert.ToInt32(o);
            }
            int    minlevelop         = CfgFn.GetNoNullInt32(GetSys("accountusablelevel"));
            string filterAccountLevel = filteresercizio;

            if (ListingType == "treeminusable")
            {
                maxlevel = minlevelop;
                string filterenablebudgetprev = QHS.NullOrEq("flagenablebudgetprev", "S");
                filterAccountLevel = QHS.AppAnd(QHS.CmpEq("ayear", esercizionew), QHS.CmpLe("nlevel", minlevelop), filterenablebudgetprev);
            }

            //		TreeViewAccount M = new TreeViewAccount(Conn, T, tree, filter, maxlevel);
            //		myGetData.SetStaticFilter("accountevel","(ayear='"+GetSys("esercizio").ToString()+"')");
            //
            if (ListingType == "treeall")
            {
                all = true;
            }
            if (ListingType == "treenew")
            {
                //string livsupid = esercizionew.ToString().Substring(2);
                //filter = "(paridacc is null + QueryCreator.quotedstrvalue(livsupid, true) + ")";
                filterAccountLevel = QHS.CmpEq("ayear", esercizionew);
                all = true;
            }
            TreeViewAccount M = new TreeViewAccount(Conn, T, tree, filterc, filtersql, all, maxlevel);

            myGetData.SetStaticFilter("accountlevel", filterAccountLevel);
        }
Exemplo n.º 2
0
        public override void DescribeTree(TreeView tree, DataTable T, string ListingType)
        {
            base.DescribeTree(tree, T, ListingType);
            string filterc   = QHC.CmpEq("nlevel", "1");
            string filtersql = QHS.CmpEq("nlevel", "1");

            if (ListingType != "history")
            {
                int eserc = CfgFn.GetNoNullInt32(GetSys("esercizio"));
                filterc   = QHC.AppAnd(filterc, QHC.NullOrLe("start", eserc), QHC.NullOrGe("stop", eserc));
                filtersql = QHC.AppAnd(filtersql, QHS.NullOrLe("start", eserc), QHS.NullOrGe("stop", eserc));
            }
            //			if (ListingType=="tree"){
            //				string eserc = esercizio.ToString();
            //				filter=filter+"AND(esercizio='" + eserc + "')";
            //			}
            //easy_node_dispatcher D = new easy_node_dispatcher(
            //    "sortinglevel",
            //    "nlevel",
            //    "description",
            //    "flagusable",
            //    "description",
            //    "sortcode"
            //    );
            int    maxlevel        = 0;
            string filterSortLevel = "";

            if (ListingType == "tree5")
            {
                maxlevel        = 5;
                filterSortLevel = QHS.CmpLe("nlevel", maxlevel);
                myGetData.SetStaticFilter("sortinglevel", filterSortLevel);
            }

            bool all = false;

            if (ListingType == "treeall")
            {
                all = true;
            }
            //object o = T.ExtendedProperties["idsorkindFilter"];
            //string filtro = o==null
            //    ? QHS.BitSet("flag", 1)
            //    : QHS.AppAnd(o.ToString(), QHS.BitSet("flag", 1));
            //int levelop = CfgFn.GetNoNullInt32(Conn.DO_READ_VALUE("sortinglevel", filtro, "min(nlevel)"));
            TreeViewManager M = new TreeViewClassMovimenti(Conn, T, tree, filterc, filtersql, all, maxlevel);          //, levelop);
        }
Exemplo n.º 3
0
        public override bool IsValid(DataRow R, out string errmess, out string errfield)
        {
            if (R["completed"].ToString() == "S" && R.Table.Columns.Contains("datecompleted"))
            {
                if (R["datecompleted"] == DBNull.Value)
                {
                    errmess  = "E' necessario specificare la  data di acquisizione documentazione definitiva";
                    errfield = "datecompleted";
                    return(false);
                }
            }

            if ((R.RowState == DataRowState.Added || (
                     R.RowState == DataRowState.Modified && R["datecompleted", DataRowVersion.Original] == DBNull.Value)
                 ) &&
                R["datecompleted"] != DBNull.Value
                )
            {
                DateTime dateCompleted = (DateTime)R["datecompleted"];

                if (R["stop"] == DBNull.Value)
                {
                    errmess  = "Non è possibile considerare pagare una parcella senza data fine";
                    errfield = "stop";
                    return(false);
                }
                DateTime stop = (DateTime)R["stop"];
                if (dateCompleted < stop)
                {
                    errmess  = "La data di acquisizione documentazione definitiva non può precedere la data fine";
                    errfield = "datecompleted";
                    return(false);
                }

                if (dateCompleted.Year != Conn.GetEsercizio())
                {
                    errmess  = "La data di acquisizione documentazione definitiva deve essere quella dell'esercizio all'atto dell'inserimento";
                    errfield = "datecompleted";
                    return(false);
                }

                int ycon = CfgFn.GetNoNullInt32(R["ycon"]);
                if (dateCompleted.Year < ycon)
                {
                    errmess  = "La data di acquisizione documentazione definitiva non può precedere l'anno parcella";
                    errfield = "datecompleted";
                    return(false);
                }
            }

            if (!base.IsValid(R, out errmess, out errfield))
            {
                return(false);
            }
            if ((R["idser"] is DBNull) || (CfgFn.GetNoNullInt32(R["idser"]) == 0))
            {
                errmess  = "il campo prestazione è obbligatorio";
                errfield = "idser";
                return(false);
            }

            string    filterRitEnpals = QHS.AppAnd(QHS.CmpEq("idser", R["idser"]), QHS.CmpEq("taxkind", 3), QHS.Like("taxref", "%enpals%"));
            DataTable TRitEnpals      = Conn.RUN_SELECT("servicetaxview", "*", null, filterRitEnpals, null, false);

            if (TRitEnpals.Rows.Count > 0)
            {
                errmess = "La denuncia UNIEMENS per il compenso assoggettato ad ENPALS \n\r " +
                          "non sarà prodotta con il flusso UNIEMENS di Easy ma \n\r " +
                          "dovrà essere eventualmente effettuata direttamente dal sito \n\r " +
                          "http://www.inps.it/ . Si raccomanda di informare tempestivamente \n\r " +
                          "l'ufficio competente alla trasmissione della denuncia UNIEMENS.";
                errfield = "idser";
                MessageBox.Show(errmess, "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            if (R["description"].ToString() == "")
            {
                errmess  = "Il campo descrizione è obbligatorio.";
                errfield = "description";
                return(false);
            }



//cascon§2006§2
            bool IsAdmin = (GetSys("manage_prestazioni") != null)
                ? GetSys("manage_prestazioni").ToString() == "S"
                : false;


            string filter_idrelated = "cascon§" + R["ycon"].ToString() + "§" + R["ncon"].ToString();

            filter_idrelated = QHS.CmpEq("idrelated", filter_idrelated);

            DataTable Tserviceregistry = Conn.RUN_SELECT("serviceregistry", "*", null, filter_idrelated, null, null, true);

            if ((Tserviceregistry.Rows.Count > 0) && (R.RowState == DataRowState.Modified))
            {
                bool   error   = false;
                string message = "";
                if (R["idreg", DataRowVersion.Current].ToString() != R["idreg", DataRowVersion.Original].ToString())
                {
                    message = "Percipiente \n\r ";
                    error   = true;
                }
                if (R["description", DataRowVersion.Current].ToString() != R["description", DataRowVersion.Original].ToString())
                {
                    message = message + "Descrizione \n\r ";
                    error   = true;
                }
                if (R["start", DataRowVersion.Current].ToString() != R["start", DataRowVersion.Original].ToString())
                {
                    message = message + "Data Inizio \n\r ";
                    error   = true;
                }
                if (R["stop", DataRowVersion.Current].ToString() != R["stop", DataRowVersion.Original].ToString())
                {
                    message = message + "Data Fine \n\r ";
                    error   = true;
                }
                if (CfgFn.RoundValuta(CfgFn.GetNoNullDecimal(R["feegross", DataRowVersion.Current])) != CfgFn.RoundValuta(CfgFn.GetNoNullDecimal(R["feegross", DataRowVersion.Original])))
                {
                    message = message + "Lordo al beneficiario \n\r ";
                    error   = true;
                }

                if (error)
                {
                    if (IsAdmin)
                    {
                        errmess = "L'Anagrafe delle Prestazioni è stata già generata, e risultano modificati i seguenti dati: \n\r"
                                  + message + "Adeguare anche i dati dell'Incarico.";
                        MessageBox.Show(errmess, "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    else
                    {
                        errmess = "Risultano modificati i seguenti dati: \n\r"
                                  + message + "La modifica non è consentita perché l'Anagrafe delle Prestazioni è stata già generata.\r\n" +
                                  "Contattare il servizio assistenza o un utente con ruolo 'manage_prestazioni' ";
                        return(false);
                    }
                }
            }
//

            DataRow[] righeImpContr = R.GetChildRows("casualcontractcasualcontractyear");
            if (R["!codiceritenutainps"] != DBNull.Value)
            {
                if (righeImpContr[0]["idemenscontractkind"] is DBNull)
                {
                    errmess  = "Per una prestazione soggetta ad INPS è obbligatorio specificare il 'Tipo Rapporto'";
                    errfield = "codicerapporto";
                    return(false);
                }
                string filtro = QHS.AppAnd(QHS.CmpEq("idemenscontractkind", righeImpContr[0]["idemenscontractkind"]),
                                           QHS.CmpEq("ayear", R["ycon"]));
                object flagAttivitaObbligatoria = Conn.DO_READ_VALUE("emenscontractkind", filtro,
                                                                     "flagactivityrequested");
                if (flagAttivitaObbligatoria != null &&
                    flagAttivitaObbligatoria.Equals("S") && (righeImpContr[0]["activitycode"] is DBNull))
                {
                    errmess  = "Per il 'Tipo Rapporto' scelto è necessario specificare l'Attività Previdenziale";
                    errfield = "activitycode";
                    return(false);
                }
                if (flagAttivitaObbligatoria != null &&
                    !flagAttivitaObbligatoria.Equals("S") && !(righeImpContr[0]["activitycode"] is DBNull))
                {
                    errmess  = "Per il 'Tipo Rapporto' scelto non va selezionata l'Attività Previdenziale";
                    errfield = "activitycode";
                    return(false);
                }
                string codiceritenutainps = R["!codiceritenutainps"].ToString();
                if ((codiceritenutainps == "07_INPS_M") && (righeImpContr[0]["idotherinsurance"] is DBNull))
                {
                    errmess = "Per i soggetti mutuati è necessario specificare l'altra forma assicurativa";
                    return(false);
                }
                if ((codiceritenutainps == "07_INPS_P") && (!righeImpContr[0]["idotherinsurance"].Equals("002")))
                {
                    errmess = "Per i titolari di pensione diretta è necessario specificare 'Titolari di pensione diretta' come altra forma assicurativa";
                    return(false);
                }
                if ((codiceritenutainps == "07_INPS_P") && (!righeImpContr[0]["idotherinsurance"].Equals("002")))
                {
                    errmess  = "La prestazione scelta non è compatibile con l'altra forma assicurativa 'Titolari di pensione diretta'";
                    errfield = "idser";
                    return(false);
                }
            }
            if (CfgFn.GetNoNullDecimal(R["feegross"]) <= 0)
            {
                errmess  = "L'importo lordo del contratto deve essere maggiore di zero";
                errfield = "feegross";
                return(false);
            }

            DateTime dataInizio = (DateTime)R["start"];
            DateTime dataFine   = (DateTime)R["stop"];

            if (dataInizio > dataFine)
            {
                errmess  = "La data di fine deve essere identica o successiva a quella di inizio";
                errfield = "stop";
                return(false);
            }

            //Se il percipiente ha un indirizzo AP, nel form del compenso si deve scegliere o S o N
            String    codeaddress   = "07_SW_ANP";
            DateTime  DataInizio    = (DateTime)R["start"];
            object    idaddresskind = Conn.DO_READ_VALUE("address", QHS.CmpEq("codeaddress", codeaddress), "idaddress");
            DataTable Address       = DataAccess.RUN_SELECT(Conn, "registryaddress", "*", null,
                                                            QHS.AppAnd(QHS.CmpEq("idaddresskind", idaddresskind), QHS.CmpEq("idreg", R["idreg"]),
                                                                       QHS.CmpLe("start", DataInizio), QHS.NullOrGe("stop", DataInizio)), false);

            if (Address.Rows.Count > 0)
            {
                if ((R["authneeded"].ToString() != "S") && (R["authneeded"].ToString() != "N"))
                {
                    errfield = "authneeded";
                    errmess  = "Il percipiente ha un indirizzo Anagrafe delle Prestazioni, pertanto va indicato se necessita o meno dell'autorizzazione.";
                    return(false);
                }
            }

            if (R["authneeded"].ToString() == "S" && R["authdoc"].ToString() == "")
            {
                errmess  = "Il campo 'Documento' è obbligatorio";
                errfield = "authdoc";
                return(false);
            }

            if (R["authneeded"].ToString() == "S" && R["authdocdate"] == DBNull.Value)
            {
                errmess  = "Il campo 'data' è obbligatorio";
                errfield = "authdocdate";
                return(false);
            }

            if (R["authneeded"].ToString() == "N" && R["noauthreason"].ToString() == "")
            {
                errmess  = "Il campo 'Motivo' è obbligatorio";
                errfield = "authdoc";
                return(false);
            }

            if ((R.RowState == DataRowState.Added) && (!RowChange.IsAutoIncrement(R.Table.Columns["ncon"])))
            {
                int NPRESENT = Conn.RUN_SELECT_COUNT("casualcontract", "(ycon=" + QueryCreator.quotedstrvalue(R["ycon"], true) + ")AND" +
                                                     "(ncon=" + QueryCreator.quotedstrvalue(R["ncon"], true) + ")", true);
                if (NPRESENT > 0)
                {
                    errmess  = "Esiste già un contratto con lo stesso numero.";
                    errfield = "ncon";
                    return(false);
                }
            }
            //Se il DS contiene la tabella registry, controlla che l'idreg abbia il CF,se SI chiama il metodo.
            if (R.Table.DataSet.Tables.Contains("registry") && (R.Table.DataSet.Tables["registry"].Rows.Count > 0))
            {
                DataRow Registry = R.Table.DataSet.Tables["registry"].Rows[0];
                if (Registry["cf"] != DBNull.Value)
                {
                    string errori;
                    if (!CalcolaCodiceFiscale.CodiceFiscaleValido(this.Conn, Registry, out errori))
                    {
                        errmess = "Il Codice Fiscale non è valido!\n" + errori;
                        return(false);
                    }
                }
            }
            else
            {
                //Se il DS non contiene la tabella registry,controlla che l'idreg abbia il CF se SI legge la riga dal DB
                // e chiama il metodo.
                object CF = Conn.DO_READ_VALUE("registry", QHS.CmpEq("idreg", R["idreg"]), "cf");
                if (CF != DBNull.Value)
                {
                    DataTable TRegistry = Conn.RUN_SELECT("registry", "*", null, QHS.CmpEq("idreg", R["idreg"]), null, null, true);
                    if (TRegistry.Rows.Count > 0)
                    {
                        DataRow Registry = TRegistry.Rows[0];
                        string  errori;
                        if (!CalcolaCodiceFiscale.CodiceFiscaleValido(this.Conn, Registry, out errori))
                        {
                            errmess = "Il Codice Fiscale non è valido!\n" + errori;
                            return(false);
                        }
                    }
                }
            }
            if (!CfgFn.IsValidString(R["cigcode"].ToString()))
            {
                errmess  = "Il CIG contiene caratteri non validi.I caratteri ammessi sono solo numeri e lettere.";
                errfield = "cigcode";
                return(false);
            }
            return(true);
        }
Exemplo n.º 4
0
        public override bool IsValid(DataRow R, out string errmess, out string errfield)
        {
            if (!base.IsValid(R, out errmess, out errfield))
            {
                return(false);
            }
            //profservice§2006§34

            if (CfgFn.GetNoNullInt32(R["idser"]) <= 0)
            {
                errmess  = "Bisogna specificare la prestazione";
                errfield = "idser";
                return(false);
            }

            string    filterRitEnpals = QHS.AppAnd(QHS.CmpEq("idser", R["idser"]), QHS.CmpEq("taxkind", 3), QHS.Like("taxref", "%enpals%"));
            DataTable TRitEnpals      = Conn.RUN_SELECT("servicetaxview", "*", null, filterRitEnpals, null, false);

            if (TRitEnpals.Rows.Count > 0)
            {
                errmess = "La denuncia UNIEMENS per il compenso assoggettato ad ENPALS \n\r " +
                          "non sarà prodotta con il flusso UNIEMENS di Easy ma \n\r " +
                          "dovrà essere eventualmente effettuata direttamente dal sito \n\r " +
                          "http://www.inps.it/ . Si raccomanda di informare tempestivamente \n\r " +
                          "l'ufficio competente alla trasmissione della denuncia UNIEMENS.";
                errfield = "idser";
                MessageBox.Show(errmess, "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            bool IsAdmin = (GetSys("manage_prestazioni") != null)
                            ? GetSys("manage_prestazioni").ToString() == "S"
                            : false;

            string filter_idrelated = QHC.CmpEq("idrelated", "profservice§" + R["ycon"] + "§" + R["ncon"]);
            //filter_idrelated = "(idrelated="+QueryCreator.quotedstrvalue(filter_idrelated,true)+")";

            DataTable Tserviceregistry = Conn.RUN_SELECT("serviceregistry", "*", null, filter_idrelated, null, null, true);

            if ((Tserviceregistry.Rows.Count > 0) && (R.RowState == DataRowState.Modified))
            {
                bool   error   = false;
                string message = "";
                if (R["idreg", DataRowVersion.Current].ToString() != R["idreg", DataRowVersion.Original].ToString())
                {
                    message = "Percipiente \n\r ";
                    error   = true;
                }
                if (R["description", DataRowVersion.Current].ToString() != R["description", DataRowVersion.Original].ToString())
                {
                    message = message + "Descrizione \n\r ";
                    error   = true;
                }
                if (R["start", DataRowVersion.Current].ToString() != R["start", DataRowVersion.Original].ToString())
                {
                    message = message + "Data Inizio \n\r ";
                    error   = true;
                }
                if (R["stop", DataRowVersion.Current].ToString() != R["stop", DataRowVersion.Original].ToString())
                {
                    message = message + "Data Fine \n\r ";
                    error   = true;
                }
                if (CfgFn.RoundValuta(CfgFn.GetNoNullDecimal(R["totalcost", DataRowVersion.Current])) != CfgFn.RoundValuta(CfgFn.GetNoNullDecimal(R["totalcost", DataRowVersion.Original])))
                {
                    message = message + "Lordo al beneficiario \n\r ";
                    error   = true;
                }

                if (error)
                {
                    if (IsAdmin)
                    {
                        errmess = "L'Anagrafe delle Prestazioni è stata già generata, e risultano modificati i seguenti dati: \n\r"
                                  + message + "Adeguare anche i dati dell'Incarico.";
                        MessageBox.Show(errmess, "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    else
                    {
                        errmess = "Risultano modificati i seguenti dati: \n\r"
                                  + message + "La modifica non è consentita perché l'Anagrafe delle Prestazioni è stata già generata.\r\n" +
                                  "Contattare il servizio assistenza o un utente con ruolo 'manage_prestazioni' ";
                        return(false);
                    }
                }
            }

            //

            if (CfgFn.GetNoNullInt32(R["idreg"]) == 0)
            {
                errmess  = "Inserire il percipiente";
                errfield = "idreg";
                return(false);
            }
            if (R["description"].ToString() == "")
            {
                errmess  = "Il campo descrizione è obbligatorio.";
                errfield = "description";
                return(false);
            }
            if (R["doc"].ToString() == "")
            {
                errmess  = "Il campo documento è obbligatorio e dovrebbe contenere il rif. alla fattura.";
                errfield = "doc";
            }

            if (R["docdate"].ToString() == "")
            {
                errmess  = "Il campo data documento è obbligatorio e dovrebbe contenere la data della fattura.";
                errfield = "docdate";
            }
            //A questo controllo è stato tolto l' uguale,perchè ci sono dei casi in cui i professionisti fatturano solo spese non imponibili
            //anticipate per conto del committente quindi è possibile che l'importo della prestazione sia uguale a zero. Task 3750
            if (CfgFn.GetNoNullDecimal(R["feegross"]) < 0)
            {
                errmess  = "L'importo lordo del contratto deve essere maggiore di zero";
                errfield = "feegross";
                return(false);
            }

            DateTime dataInizio = (DateTime)R["start"];
            DateTime dataFine   = (DateTime)R["stop"];

            if (dataInizio > dataFine)
            {
                errmess  = "La data di fine deve essere identica o successiva a quella di inizio";
                errfield = "stop";
                return(false);
            }

            //Se il percipiente ha un indirizzo AP, nel form del compenso si deve scegliere o S o N
            String    codeaddress   = "07_SW_ANP";
            DateTime  DataInizio    = (DateTime)R["start"];
            object    idaddresskind = Conn.DO_READ_VALUE("address", QHS.CmpEq("codeaddress", codeaddress), "idaddress");
            DataTable Address       = DataAccess.RUN_SELECT(Conn, "registryaddress", "*", null,
                                                            QHS.AppAnd(QHS.CmpEq("idaddresskind", idaddresskind), QHS.CmpEq("idreg", R["idreg"]),
                                                                       QHS.CmpLe("start", DataInizio), QHS.NullOrGe("stop", DataInizio)), false);

            if (Address.Rows.Count > 0)
            {
                if ((R["authneeded"].ToString() != "S") && (R["authneeded"].ToString() != "N"))
                {
                    errfield = "authneeded";
                    errmess  = "Il percipiente ha un indirizzo Anagrafe delle Prestazioni, pertanto va indicato se necessita o meno dell'autorizzazione.";
                    return(false);
                }
            }
            if (R["authneeded"].ToString() == "S" && R["authdoc"].ToString() == "")
            {
                errmess  = "Il campo 'Documento' è obbligatorio";
                errfield = "authdoc";
                return(false);
            }

            if (R["authneeded"].ToString() == "S" && R["authdocdate"] == DBNull.Value)
            {
                errmess  = "Il campo 'data' è obbligatorio";
                errfield = "authdocdate";
                return(false);
            }

            if (R["authneeded"].ToString() == "N" && R["noauthreason"].ToString() == "")
            {
                errmess  = "Il campo 'Motivo' è obbligatorio";
                errfield = "authdoc";
                return(false);
            }


            if ((R.RowState == DataRowState.Added) && (!RowChange.IsAutoIncrement(R.Table.Columns["ncon"])))
            {
                string filterProfService = QHS.AppAnd(QHS.CmpEq("ycon", R["ycon"]),
                                                      QHS.CmpEq("ncon", R["ncon"]));
                int NPRESENT = Conn.RUN_SELECT_COUNT("profservice", filterProfService, true);
                if (NPRESENT > 0)
                {
                    errmess  = "Esiste già un contratto con lo stesso numero.";
                    errfield = "ncon";
                    return(false);
                }
            }
            //Se il DS contiene la tabella registry, controlla che l'idreg abbia il CF,se SI chiama il metodo.
            if (R.Table.DataSet.Tables.Contains("registry") && (R.Table.DataSet.Tables["registry"].Rows.Count > 0))
            {
                DataRow Registry = R.Table.DataSet.Tables["registry"].Rows[0];
                if (Registry["cf"] != DBNull.Value)
                {
                    string errori;
                    if (!CalcolaCodiceFiscale.CodiceFiscaleValido(this.Conn, Registry, out errori))
                    {
                        errmess = "Il Codice Fiscale non è valido!\n" + errori;
                        return(false);
                    }
                }
            }
            else
            {
                //Se il DS non contiene la tabella registry,controlla che l'idreg abbia il CF se SI legge la riga dal DB
                // e chiama il metodo.
                object CF = Conn.DO_READ_VALUE("registry", QHS.CmpEq("idreg", R["idreg"]), "cf");
                if (CF != DBNull.Value)
                {
                    DataTable TRegistry = Conn.RUN_SELECT("registry", "*", null, QHS.CmpEq("idreg", R["idreg"]), null, null, true);
                    if (TRegistry.Rows.Count > 0)
                    {
                        DataRow Registry = TRegistry.Rows[0];
                        string  errori;
                        if (!CalcolaCodiceFiscale.CodiceFiscaleValido(this.Conn, Registry, out errori))
                        {
                            errmess = "Il Codice Fiscale non è valido!\n" + errori;
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
Exemplo n.º 5
0
        public override void DescribeTree(TreeView tree, DataTable T, string ListingType)
        {
            int maxlev = 0;

            //Aggiorno le intestazioni del DataGrid
            if (ListingType == "treeap" || ListingType == "tree" || ListingType == "treea" || ListingType == "treep" || ListingType == "treeanew" || ListingType == "treepnew")
            {
                base.DescribeColumns(T, ListingType);
                foreach (DataColumn C in T.Columns)
                {
                    DescribeAColumn(T, C.ColumnName, "", -1);
                }
                DescribeAColumn(T, "!livello", "Livello", "patrimonylevel.description", 1);
                DescribeAColumn(T, "codepatrimony", "Codice", 2);
                DescribeAColumn(T, "title", "Denominazione", 3);
            }

            base.DescribeTree(tree, T, ListingType);
            int    esercizio       = Convert.ToInt32(GetSys("esercizio"));
            int    esercizionew    = esercizio + 1;
            string filteresercizio = QHS.CmpEq("ayear", GetSys("esercizio"));
            string filterc         = QHC.CmpEq("nlevel", "1");
            string filtersql       = QHS.CmpEq("nlevel", "1");
            string kind            = "AP";
            bool   all             = false;

            if (ListingType == "treeap")
            {
                //filter="(nlevel='1')";
                kind = "AP";
            }
            if (ListingType == "tree")
            {
                //filter="(nlevel='1')";
                kind = "AP";
            }
            if (ListingType == "treea")
            {
                string livsupid = esercizio.ToString().Substring(2) + "A";
                //filter = "(paridpatrimony=" + QueryCreator.quotedstrvalue(livsupid, true) + ")";
                filterc   = QHC.CmpEq("paridpatrimony", livsupid);
                filtersql = QHS.CmpEq("paridpatrimony", livsupid);
                kind      = "A";
                all       = true;
            }
            if (ListingType == "treep")
            {
                string livsupid = esercizio.ToString().Substring(2) + "P";
                filterc   = QHC.CmpEq("paridpatrimony", livsupid);
                filtersql = QHS.CmpEq("paridpatrimony", livsupid);
                kind      = "P";
                all       = true;
            }
            if (ListingType == "treeanew")
            {
                string livsupid = esercizionew.ToString().Substring(2) + "A";
                filterc         = QHC.CmpEq("paridpatrimony", livsupid);
                filtersql       = QHS.CmpEq("paridpatrimony", livsupid);
                kind            = "A";
                filteresercizio = QHS.CmpEq("ayear", esercizionew);
                all             = true;
            }
            if (ListingType == "treepnew")
            {
                string livsupid = esercizionew.ToString().Substring(2) + "P";
                filterc         = QHC.CmpEq("paridpatrimony", livsupid);
                filtersql       = QHS.CmpEq("paridpatrimony", livsupid);
                kind            = "P";
                filteresercizio = QHS.CmpEq("ayear", esercizionew);
                all             = true;
            }
            object o = Conn.DO_READ_VALUE("patrimonylevel", filteresercizio, "max(nlevel)");

            if ((o != null) && (o != DBNull.Value))
            {
                maxlev = Convert.ToInt32(o);
            }

            if (maxlev > 0)
            {
                myGetData.SetStaticFilter("patrimony", QHS.AppAnd(filteresercizio, QHS.CmpLe("nlevel", maxlev)));
                //myGetData.SetStaticFilter("patrimonyview", QHS.AppAnd(filteresercizio, QHS.CmpLe("nlevel", maxlev)));
            }

            TreeViewPatrimoniale M = new TreeViewPatrimoniale(T, tree, filterc, filtersql, kind, all, maxlev);

            myGetData.SetStaticFilter("patrimonylevel", filteresercizio);
        }
Exemplo n.º 6
0
        public override void DescribeTree(TreeView tree, DataTable T, string ListingType)
        {
            int maxlev = 0;

            if (ListingType == "treecr" || ListingType == "tree" || ListingType == "treec" || ListingType == "treer" || ListingType == "treecnew" || ListingType == "treernew")
            {
                base.DescribeColumns(T, ListingType);
                foreach (DataColumn C in T.Columns)
                {
                    DescribeAColumn(T, C.ColumnName, "");
                }
                DescribeAColumn(T, "!livello", "Livello", "placcountlevel.description");
                DescribeAColumn(T, "codeplaccount", "Codice");
                DescribeAColumn(T, "title", "Denominazione");
            }

            base.DescribeTree(tree, T, ListingType);
            int    esercizio       = Convert.ToInt32(GetSys("esercizio"));
            int    esercizionew    = esercizio + 1;
            string filteresercizio = QHS.CmpEq("ayear", GetSys("esercizio"));
            string filterc         = QHC.CmpEq("nlevel", "1");
            string filtersql       = QHS.CmpEq("nlevel", "1");
            string kind            = "CR";
            bool   all             = false;

            if (ListingType == "treecr")
            {
                //filter="(nlevel='1')";
                kind = "CR";
            }
            if (ListingType == "treec")
            {
                string livsupid = esercizio.ToString().Substring(2) + "C";
                filterc   = QHC.CmpEq("paridplaccount", livsupid);
                filtersql = QHS.CmpEq("paridplaccount", livsupid);
                kind      = "C";
                all       = true;
            }
            if (ListingType == "treer")
            {
                string livsupid = esercizio.ToString().Substring(2) + "R";
                filterc   = QHC.CmpEq("paridplaccount", livsupid);
                filtersql = QHS.CmpEq("paridplaccount", livsupid);
                kind      = "R";
                all       = true;
            }
            if (ListingType == "treecnew")
            {
                string livsupid = esercizionew.ToString().Substring(2) + "C";
                filterc         = QHC.CmpEq("paridplaccount", livsupid);
                filtersql       = QHS.CmpEq("paridplaccount", livsupid);
                kind            = "C";
                filteresercizio = QHS.CmpEq("ayear", esercizionew);
                all             = true;
            }
            if (ListingType == "treernew")
            {
                string livsupid = esercizionew.ToString().Substring(2) + "R";
                filterc   = QHC.CmpEq("paridplaccount", livsupid);
                filtersql = QHS.CmpEq("paridplaccount", livsupid);

                kind            = "R";
                filteresercizio = QHS.CmpEq("ayear", esercizionew);
                all             = true;
            }

            int    maxlevel = 0;
            object o        = Conn.DO_READ_VALUE("placcountlevel", filteresercizio, "max(nlevel)");

            if ((o != null) && (o != DBNull.Value))
            {
                maxlevel = Convert.ToInt32(o);
            }

            if (maxlev > 0)
            {
                myGetData.SetStaticFilter("placcount", QHS.AppAnd(filteresercizio, QHS.CmpLe("nlevel", maxlev)));
                myGetData.SetStaticFilter("placcountview", QHS.AppAnd(filteresercizio, QHS.CmpLe("nlevel", maxlev)));
            }

            TreeViewContoEconomico M = new TreeViewContoEconomico(T, tree, filterc, filtersql, kind, all, maxlev);

            myGetData.SetStaticFilter("placcountlevel", filteresercizio);
        }
Exemplo n.º 7
0
        public override bool IsValid(DataRow R, out string errmess, out string errfield)
        {
            errfield = null;
            errmess  = null;
            object O = Conn.DO_READ_VALUE("web_config", null, "askitinerationclause");

            if (O == null)
            {
                O = DBNull.Value;
            }
            bool clause_needed = (O.ToString().ToUpper() == "S");

            if (CfgFn.GetNoNullInt32(R["idreg"]) <= 0)
            {
                errfield = "registry.title";
                errmess  = "L'incaricato è un informazione obbligatoria.";
                return(false);
            }


            if (R["start"].ToString() == QueryCreator.EmptyDate().ToString())
            {
                errfield = "start";
                errmess  = "Bisogna specificare la data inizio";
                return(false);
            }
            if (R["stop"].ToString() == QueryCreator.EmptyDate().ToString())
            {
                errfield = "stop";
                errmess  = "Bisogna specificare la data fine";
                return(false);
            }
            if (R["description"].ToString().Trim() == "")
            {
                errfield = "description";
                errmess  = "Bisogna specificare la descrizione";
                return(false);
            }

            if (CfgFn.GetNoNullInt32(R["idser"]) <= 0)
            {
                errfield = "idser";
                errmess  = "Bisogna specificare la prestazione";
                return(false);
            }

            //if (CfgFn.GetNoNullInt32(R["idregistrylegalstatus"]) <= 0) {
            //    errfield = "idregistrylegalstatus";
            //    errmess = "I dati relativi alla posizione giuridica dell'incaricato sono incompleti o mancanti.";
            //    return false;
            //}
            //itineration§2006§6
            bool IsAdmin = (GetSys("manage_prestazioni") != null)
                                                ? GetSys("manage_prestazioni").ToString() == "S"
                                                : false;

            string filter_idrelated = "itineration§" + R["yitineration"].ToString() + "§" + R["nitineration"].ToString();

            filter_idrelated = QHS.CmpEq("idrelated", filter_idrelated);

            if (R["completed"].ToString() == "S" && R.Table.Columns.Contains("datecompleted"))
            {
                if (R["datecompleted"] == DBNull.Value)
                {
                    errmess  = "E' necessario specificare la  data di acquisizione documentazione definitiva";
                    errfield = "datecompleted";
                    return(false);
                }
            }


            if (R.Table.Columns.Contains("datecompleted"))
            {
                if ((R.RowState == DataRowState.Added || (
                         R.RowState == DataRowState.Modified && R["datecompleted", DataRowVersion.Original].ToString() != R["datecompleted"].ToString())
                     ) &&
                    R["datecompleted"] != DBNull.Value
                    )
                {
                    DateTime dateCompleted = (DateTime)R["datecompleted"];

                    if (R["stop"] == DBNull.Value)
                    {
                        errmess  = "Non è possibile pagare una missione senza data fine";
                        errfield = "stop";
                        return(false);
                    }
                    DateTime stop = (DateTime)R["stop"];
                    if (dateCompleted < stop)
                    {
                        errmess  = "La data di acquisizione documentazione definitiva non può precedere la data fine missione";
                        errfield = "datecompleted";
                        return(false);
                    }

                    if (dateCompleted.Year != Conn.GetEsercizio())
                    {
                        errmess  = "La data di acquisizione documentazione definitiva deve essere quella dell'esercizio all'atto dell'inserimento";
                        errfield = "datecompleted";
                        return(false);
                    }

                    int yitineration = CfgFn.GetNoNullInt32(R["yitineration"]);
                    if (dateCompleted.Year < yitineration)
                    {
                        errmess  = "La data di acquisizione documentazione definitiva non può precedere l'anno missione";
                        errfield = "datecompleted";
                        return(false);
                    }
                }
            }

            DataTable Tserviceregistry = Conn.RUN_SELECT("serviceregistry", "*", null, filter_idrelated, null, null, true);

            if ((Tserviceregistry.Rows.Count > 0) && (R.RowState == DataRowState.Modified))
            {
                bool   error   = false;
                string message = "";
                if (R["idreg", DataRowVersion.Current].ToString() != R["idreg", DataRowVersion.Original].ToString())
                {
                    message = "Percipiente \n\r ";
                    error   = true;
                }
                if (R["description", DataRowVersion.Current].ToString() != R["description", DataRowVersion.Original].ToString())
                {
                    message = message + "Descrizione \n\r ";
                    error   = true;
                }
                if (R["start", DataRowVersion.Current].ToString() != R["start", DataRowVersion.Original].ToString())
                {
                    message = message + "Data Inizio \n\r ";
                    error   = true;
                }
                if (R["stop", DataRowVersion.Current].ToString() != R["stop", DataRowVersion.Original].ToString())
                {
                    message = message + "Data Fine \n\r ";
                    error   = true;
                }
                if (CfgFn.RoundValuta(CfgFn.GetNoNullDecimal(R["totalgross", DataRowVersion.Current])) != CfgFn.RoundValuta(CfgFn.GetNoNullDecimal(R["totalgross", DataRowVersion.Original])))
                {
                    message = message + "Importo lordo \n\r ";
                    error   = true;
                }
                if (error)
                {
                    if (IsAdmin)
                    {
                        errmess = "L'Anagrafe delle Prestazioni è stata già generata, e risultano modificati i seguenti dati: \n\r"
                                  + message + "Adeguare anche i dati dell'Incarico.";
                        MessageBox.Show(errmess, "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    else
                    {
                        errmess = "Risultano modificati i seguenti dati: \n\r"
                                  + message + "La modifica non è consentita perché l'Anagrafe delle Prestazioni è stata già generata.\r\n" +
                                  "Contattare il servizio assistenza o un utente con ruolo 'manage_prestazioni' ";
                        return(false);
                    }
                }
            }
            //

            if ((R["start"] != DBNull.Value) && (R["stop"] != DBNull.Value))
            {
                DateTime start = (DateTime)R["start"];
                DateTime stop  = (DateTime)R["stop"];

                if (start > stop)
                {
                    errmess  = "Attenzione! Non può essere immessa una data inizio successiva alla data fine";
                    errfield = "start";
                    return(false);
                }
            }
            else
            {
                errmess = "Attenzione! Specificare inizio e termine della missione";
                return(false);
            }

            //Se il percipiente ha un indirizzo AP, nel form del compenso si deve scegliere o S o N
            String   codeaddress = "07_SW_ANP";
            DateTime DataInizio  = (DateTime)R["start"];

            if (DataInizio.Year < 1900)
            {
                DataInizio = new DateTime(1900, 1, 1);
            }

            object    idaddresskind = Conn.DO_READ_VALUE("address", QHS.CmpEq("codeaddress", codeaddress), "idaddress");
            DataTable Address       = DataAccess.RUN_SELECT(Conn, "registryaddress", "*", null,
                                                            QHS.AppAnd(QHS.CmpEq("idaddresskind", idaddresskind), QHS.CmpEq("idreg", R["idreg"]),
                                                                       QHS.CmpLe("start", DataInizio), QHS.NullOrGe("stop", DataInizio)), false);

            if (Address.Rows.Count > 0)
            {
                if ((R["authneeded"].ToString() != "S") && (R["authneeded"].ToString() != "N"))
                {
                    errfield = "authneeded";
                    errmess  = "Il percipiente ha un indirizzo Anagrafe delle Prestazioni, pertanto va indicato se necessita o meno dell'autorizzazione.";
                    return(false);
                }
            }

            if (R["authneeded"].ToString() == "S" && R["authdoc"].ToString() == "")
            {
                errmess  = "Il campo 'Documento' è obbligatorio";
                errfield = "authdoc";
                return(false);
            }

            if (R["authneeded"].ToString() == "S" && R["authdocdate"] == DBNull.Value)
            {
                errmess  = "Il campo 'data' è obbligatorio";
                errfield = "authdocdate";
                return(false);
            }

            if (R["authneeded"].ToString() == "N" && R["noauthreason"].ToString() == "")
            {
                errmess  = "Il campo 'Motivo' è obbligatorio";
                errfield = "authdoc";
                return(false);
            }
            //controlla il check della clausola se è valorizzato KmMezzoProprio OR motivo OR targa, l'OR è stato aggiunto perchè la missione di CT non valorizza KmMezzoProprio.
            if (clause_needed && R["clause_accepted"].ToString().ToUpper() != "S" && (R["owncarkm"] != DBNull.Value || R["vehicle_info"] != DBNull.Value || R["vehicle_motive"] != DBNull.Value))
            {
                errmess  = "E' necessario accettare la clausola per l'uso del mezzo proprio";
                errfield = "clause_accepted";
                return(false);
            }

            if ((CfgFn.GetNoNullInt32(R["owncarkm"]) != 0) && (R["vehicle_info"] == DBNull.Value))
            {
                errmess  = "Con l'uso del mezzo proprio è obbligatorio compilare le informazioni relative al veicolo";
                errfield = "vehicle_info";
                return(false);
            }

            if (R["flagweb"].ToString().ToUpper() == "S" &&
                (CfgFn.GetNoNullInt32(R["iditinerationstatus"]) >= 2) &&
                (CfgFn.GetNoNullInt32(R["iditinerationstatus"]) < 6) &&
                CfgFn.GetNoNullInt32(R["idauthmodel"]) <= 0)
            {
                errmess  = "Non è possibile salvare la Missione senza un modello Autorizzativo";
                errfield = "idauthmodel";
                return(false);
            }

            bool DirectAuth = false;

            DirectAuth = Conn.DO_READ_VALUE("config", QHS.CmpEq("ayear", Conn.GetSys("esercizio")),
                                            "itineration_directauth").ToString().ToUpper() == "S";

            if ((DirectAuth) && R["flagweb"].ToString().ToUpper() == "S" &&
                (CfgFn.GetNoNullInt32(R["iditinerationstatus"]) == 1) &&
                CfgFn.GetNoNullInt32(R["idauthmodel"]) <= 0)
            {
                errmess  = "Non è possibile salvare la Missione senza un modello Autorizzativo";
                errfield = "idauthmodel";
                return(false);
            }
            if (!base.IsValid(R, out errmess, out errfield))
            {
                return(false);
            }


            return(true);
        }