Exemple #1
0
        /// <summary>
        /// Dalla riga presente in DSP.spesa ne crea n (da faseinizio a fasefine)
        /// </summary>
        /// <param name="DSP"></param>
        void SplitRowInPhases(DataSet DSP, DataAccess Conn)
        {
            CQueryHelper QHC = new CQueryHelper();

            try {
                int faseinizio    = Convert.ToInt32(DSP.Tables["expense"].ExtendedProperties["faseinizio"]);
                int fasefine      = Convert.ToInt32(DSP.Tables["expense"].ExtendedProperties["fasefine"]);
                int fasespesafine = Convert.ToInt32(DSP.Tables["expense"].ExtendedProperties["fasespesafine"]);
                int fasespesamax  = CfgFn.GetNoNullInt32(Conn.GetSys("maxexpensephase"));

                int minfasecreditore  = Convert.ToInt32(Conn.GetSys("expenseregphase"));
                int minfasebilannuale = Convert.ToInt32(Conn.GetSys("expensefinphase"));
                int esercizio         = (int)Conn.GetSys("esercizio");

                DataRow ExSpesa    = DSP.Tables["expense"].Rows[0];
                DataRow ExImpSpesa = DSP.Tables["expenseyear"].Rows[0];

                object previd = DBNull.Value;
                for (int fase = faseinizio; fase <= fasespesafine; fase++)
                {
                    DataRow NewRow = DSP.Tables["expense"].NewRow();
                    NewRow["idexp"]  = MetaData.MaxFromColumn(DSP.Tables["expense"], "idexp") + 1;
                    NewRow["nphase"] = fase;

                    //Assegna l'ID fase precedente
                    if (fase > 1)
                    {
                        if (fase == faseinizio)
                        {
                            NewRow["parentidexp"] = ExSpesa["parentidexp"];
                        }
                        else
                        {
                            NewRow["parentidexp"] = previd;
                        }
                        //NewRow["idexp"]=
                        //        NewRow["parentidexp"].ToString()+
                        //        esercizio.ToString().Substring(2)+
                        //        "980000";
                        NewRow["ymov"] = esercizio;
                    }
                    else
                    {
                        NewRow["parentidexp"] = DBNull.Value;
                        //NewRow["idexp"]=
                        //    esercizio.ToString().Substring(2)+
                        //    "980000";
                        //Per la prima fase soltanto prendo l'esercmovimento del form
                        NewRow["ymov"] = ExSpesa["ymov"];
                    }
                    //NewRow["ycreation"]=esercizio;
                    //RowChange.CalcTemporaryID(NewRow); da problemi poiché gli ID esistono già


                    previd = NewRow["idexp"];                    //.ToString();  //da usare nella iterazione successiva

                    //Copia tutti gli altri dati del movimento (rispettando l'ordine delle fasi)
                    foreach (DataColumn C in DSP.Tables["expense"].Columns)
                    {
                        if (C.ColumnName == "idexp")
                        {
                            continue;
                        }
                        if (C.ColumnName == "nphase")
                        {
                            continue;
                        }
                        if (C.ColumnName == "parentidexp")
                        {
                            continue;
                        }
                        if (C.ColumnName == "ymov")
                        {
                            continue;
                        }


                        if ((C.ColumnName == "idreg") && (fase < minfasecreditore))
                        {
                            continue;
                        }

                        if ((C.ColumnName == "cigcode") && (fase != minfasecreditore))
                        {
                            continue;
                        }
                        if ((C.ColumnName == "cupcode") && (fase != minfasecreditore))
                        {
                            continue;
                        }

                        ////Salta dati non appartenenti ad ultima fase
                        //if ((
                        //    (C.ColumnName == "idser")||
                        //    (C.ColumnName == "servicestart")||(C.ColumnName == "servicestop")||
                        //    (C.ColumnName.StartsWith("importoprestazione"))||
                        //    (C.ColumnName == "autotaxflag")|| (C.ColumnName == "autoclawbackflag")||
                        //    (C.ColumnName == "servicestop")||
                        //    (C.ColumnName == "ypay")||(C.ColumnName == "npay")||
                        //    (C.ColumnName == "fulfilled") || (C.ColumnName == "idclawback")||
                        //    (C.ColumnName == "nbill")
                        //    )

                        //    && (fase != fasespesamax))continue;

                        NewRow[C.ColumnName] = ExSpesa[C.ColumnName];
                    }
                    DSP.Tables["expense"].Rows.Add(NewRow);

                    //Aggiunge la riga di expenseyear
                    DataRow NewImp = DSP.Tables["expenseyear"].NewRow();
                    NewImp["idexp"] = NewRow["idexp"];
                    NewImp["ayear"] = esercizio;                    // NewRow["eserccreazione"];
                    //NewImp["nphase"] = fase;
                    foreach (DataColumn C in DSP.Tables["expenseyear"].Columns)
                    {
                        if (C.ColumnName == "idexp")
                        {
                            continue;
                        }
                        if (C.ColumnName == "ayear")
                        {
                            continue;
                        }
                        //if (C.ColumnName == "nphase") continue;
                        if ((C.ColumnName == "idfin") && (fase < minfasebilannuale))
                        {
                            continue;
                        }
                        if ((C.ColumnName == "idupb") && (fase < minfasebilannuale))
                        {
                            continue;
                        }
                        //if ((C.ColumnName == "flagarrear") && (fase < minfasebilannuale))continue;
                        NewImp[C.ColumnName] = ExImpSpesa[C.ColumnName];
                    }
                    DSP.Tables["expenseyear"].Rows.Add(NewImp);

                    if ((fase == fasemissione) && (DSP.Tables["expenseitineration"] != null))
                    {
                        foreach (DataRow ChildR in DSP.Tables["expenseitineration"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                        }
                    }
                    if ((fase == fasecedolino) && (DSP.Tables["expensepayroll"] != null))
                    {
                        foreach (DataRow ChildR in DSP.Tables["expensepayroll"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                        }
                    }
                    if ((fase == faseoccasionale) && (DSP.Tables["expensecasualcontract"] != null))
                    {
                        foreach (DataRow ChildR in DSP.Tables["expensecasualcontract"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                        }
                    }
                    if ((fase == faseprofessionale) && (DSP.Tables["expenseprofservice"] != null))
                    {
                        foreach (DataRow ChildR in DSP.Tables["expenseprofservice"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                        }
                    }

                    if ((fase == fasedipendente) && (DSP.Tables["expensewageaddition"] != null))
                    {
                        foreach (DataRow ChildR in DSP.Tables["expensewageaddition"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                        }
                    }

                    if ((fase == faseordine) &&
                        (DSP.Tables["expensemandate"] != null))
                    {
                        int movkind = 0;
                        foreach (DataRow ChildR in DSP.Tables["expensemandate"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                            movkind         = CfgFn.GetNoNullInt32(ChildR["movkind"]);
                        }
                        if (DSP.Tables["mandatedetail_taxable"] != null)
                        {
                            foreach (DataRow ChildRR in DSP.Tables["mandatedetail_taxable"].Rows)
                            {
                                switch (movkind)
                                {
                                case 1:
                                    if (ChildRR["idexp_taxable"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_taxable"] = NewRow["idexp"];
                                    }
                                    if (ChildRR["idexp_iva"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_iva"] = NewRow["idexp"];
                                    }
                                    break;

                                case 3:
                                    if (ChildRR["idexp_taxable"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_taxable"] = NewRow["idexp"];
                                    }
                                    break;
                                }
                            }
                        }
                        if (DSP.Tables["mandatedetail_iva"] != null)
                        {
                            foreach (DataRow ChildRR in DSP.Tables["mandatedetail_iva"].Rows)
                            {
                                switch (movkind)
                                {
                                case 2:
                                    if (ChildRR["idexp_iva"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_iva"] = NewRow["idexp"];
                                    }
                                    break;
                                }
                            }
                        }
                    }

                    if ((fase == faseiva) &&
                        (DSP.Tables["expenseinvoice"] != null))
                    {
                        int movkind = 0;
                        foreach (DataRow ChildR in DSP.Tables["expenseinvoice"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                            movkind         = CfgFn.GetNoNullInt32(ChildR["movkind"]);
                        }
                        if (DSP.Tables["invoicedetail_taxable"] != null)
                        {
                            foreach (DataRow ChildRR in DSP.Tables["invoicedetail_taxable"].Rows)
                            {
                                switch (movkind)
                                {
                                case 1:
                                    if (ChildRR["idexp_taxable"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_taxable"] = NewRow["idexp"];
                                    }
                                    if (ChildRR["idexp_iva"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_iva"] = NewRow["idexp"];
                                    }
                                    break;

                                case 3:
                                    if (ChildRR["idexp_taxable"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_taxable"] = NewRow["idexp"];
                                    }
                                    break;
                                }
                            }
                        }
                        if (DSP.Tables["invoicedetail_iva"] != null)
                        {
                            foreach (DataRow ChildRR in DSP.Tables["invoicedetail_iva"].Rows)
                            {
                                switch (movkind)
                                {
                                case 2:
                                    if (ChildRR["idexp_iva"] != DBNull.Value)
                                    {
                                        ChildRR["idexp_iva"] = NewRow["idexp"];
                                    }
                                    break;
                                }
                            }
                        }
                    }

                    if (fase == fasespesamax)
                    {
                        //Sposta le righe figlie dalla riga originale a questa
                        foreach (DataTable ChildT in new DataTable[] { DSP.Tables["expenselast"],
                                                                       DSP.Tables["expensetax"],
                                                                       DSP.Tables["expensetaxcorrige"],
                                                                       DSP.Tables["expensetaxofficial"],
                                                                       DSP.Tables["expenseclawback"],
                                                                       DSP.Tables["underwritingpayment"],
                                                                       DSP.Tables["expensebill"] })
                        {
                            if (ChildT == null)
                            {
                                continue;
                            }
                            foreach (DataRow ChildR in ChildT.Rows)
                            {
                                ChildR["idexp"] = NewRow["idexp"];
                            }
                        }

                        if (fasefine > fasespesamax)
                        {
                            //Collega l'ultima fase al documento di pagamento
                            DSP.Tables["expenselast"].Rows[0]["kpay"] = DSP.Tables["payment"].Rows[0]["kpay"];
                            //NewRow["ypay"]= DSP.Tables["payment"].Rows[0]["ypay"];
                            //NewRow["npay"]= DSP.Tables["payment"].Rows[0]["npay"];
                        }
                        else
                        {
                            //NewRow["ypay"]= DBNull.Value;
                            DSP.Tables["expenselast"].Rows[0]["kpay"] = DBNull.Value;
                        }
                    }


                    if (fase == minfasebilannuale && DSP.Tables["underwritingappropriation"] != null)
                    {
                        //Sposta le righe in assegnazionecrediti dalla riga originale a questa
                        foreach (DataRow ChildR in DSP.Tables["underwritingappropriation"].Rows)
                        {
                            ChildR["idexp"] = NewRow["idexp"];
                        }
                    }

                    //Sposta le classificazioni di quella fase
                    if (DSP.Tables["expensesorted"] != null)
                    {
                        foreach (DataRow ClassR in DSP.Tables["expensesorted"].Rows)
                        {
                            DataRow ClassMov = ClassR.GetParentRow("sortingexpensesorted");
                            if (ClassMov == null)
                            {
                                continue;
                            }
                            string     searchparent = QHC.CmpEq("idsorkind", ClassMov["idsorkind"]);
                            DataTable  SorKind      = ClassMov.Table.DataSet.Tables["sortingkind"];
                            DataRow [] TipoClassRs  = SorKind.Select(searchparent);
                            if (TipoClassRs.Length == 0)
                            {
                                continue;
                            }
                            DataRow TipoClassR = TipoClassRs[0];
                            if (Convert.ToInt32(TipoClassR["nphaseexpense"]) != fase)
                            {
                                continue;
                            }
                            ClassR["idexp"] = NewRow["idexp"];
                        }
                    }
                }                  //Fine del for relativo alle fasi
                if (DSP.Tables["payment"] != null && DSP.Tables["payment"].Rows.Count > 0)
                {
                    DataRow Pagamento = DSP.Tables["payment"].Rows[0];
                    Pagamento["txt"] = ExSpesa["txt"];
                    Pagamento["rtf"] = ExSpesa["rtf"];
                }

                ExImpSpesa.Delete();
                ExSpesa.Delete();

                if (fasefine <= fasespesamax && DSP.Tables["payment"] != null)
                {
                    DSP.Tables["payment"].Clear();
                }
                if (fasefine < fasespesamax && DSP.Tables["expenselast"] != null)
                {
                    DSP.Tables["expenselast"].Clear();
                }
                if (fasefine < fasespesamax && DSP.Tables["expensebill"] != null)
                {
                    DSP.Tables["expensebill"].Clear();
                }
            }
            catch (Exception e) {
                MessageBox.Show(e.Message);
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            IKernel kernel = new StandardKernel(new ModuleBinding());

            ClassA a = new ClassA();

            a.Method1();
            a.Method2(); // hello world
            a.Method3();

            ClassB b = new ClassB();

            b.Method1();
            b.Method2();
            b.Method3();

            ClassD d = new ClassD(a);

            d.Method1();

            ClassE e = new ClassE();

            e.Method2();
            e.Method5();

            ClassH h = new ClassH();

            h.Method2();

            ClassJ j = new ClassJ();

            j.Method1();

            ClassK k = new ClassK();

            k.Method1();

            ClassM m = new ClassM();

            m.Method2();
            m.Method3();
            m.Method7();
            m.Method8();

            ClassN n = new ClassN();

            n.Method3();

            ClassO o = new ClassO();

            o.Method2();

            ClassP p = new ClassP();

            p.Method10();
            p.Method2();
            p.Method9();

            ClassL l = new ClassL(p);

            l.Method1();

            ClassQ q = new ClassQ();

            q.Method3();

            ClassR r = new ClassR();

            r.Method1();

            ClassS s = new ClassS();

            s.Method1();
            s.Method2();
            s.Method3();

            ClassT t = new ClassT(e);

            t.Method2();

            ClassU u = new ClassU();

            u.Mehthod1();

            ClassV v = new ClassV();

            v.Method2();

            ClassW w = new ClassW(kernel.Get <IInterfaceSomething>());

            w.Method2();
            w.Method3();

            ClassX x = new ClassX();

            x.Method1();

            ClassY y = new ClassY();

            y.Method2();

            ClassZ z = new ClassZ();

            z.Method2();
        }
Exemple #3
0
        public void Method1()
        {
            ClassR r = new ClassR();

            r.Method1();
        }