Пример #1
0
        void RiempiGrid()
        {
            string filterstock = QHS.IsNull("idinvkind");

            string sqlCmd = " SELECT * " +
                            " FROM ddt_inview " +
                            " WHERE " + filter +
                            " AND EXISTS (SELECT * FROM stock WHERE " +
                            " ddt_inview.idddt_in = stock.idddt_in AND " + filterstock + " ) " +
                            " ORDER BY ddt_inview.idddt_in asc ";

            DataTable ddt_in = Meta.Conn.SQLRunner(sqlCmd);

            if (ddt_in.Rows.Count != 0)
            {
                ddt_in.PrimaryKey = new DataColumn[] { ddt_in.Columns["idddt_in"] };
                //Ora ha messo in ddt_in tutto ciò che da DB risulta 'da fatturare'.
                if (ddt_in.Select().Length > 0)
                {
                    MetaData MAP;
                    MAP = Meta.Dispatcher.Get("ddt_inview");
                    MAP.DescribeColumns(ddt_in, "default");
                    DataSet D = new DataSet();
                    D.Tables.Add(ddt_in);
                    HelpForm.SetDataGrid(gridDettagli, ddt_in);
                    gridDettagli.TableStyles.Clear();
                    HelpForm.SetGridStyle(gridDettagli, ddt_in);
                    formatgrids format = new formatgrids(gridDettagli);
                    format.AutosizeColumnWidth();
                    HelpForm.SetAllowMultiSelection(ddt_in, true);
                    SelezionaTutto();
                }
            }
        }
Пример #2
0
        void riempiGrid()
        {
            if (!HasDDT)
            {
                labDDT.Visible = false;
            }

            string filtercurrency = QHS.CmpEq("idcurrency", idcurrency);

            filtercurrency = QHS.DoPar(QHS.AppOr(filtercurrency, QHS.IsNull("idcurrency")));
            string filter = QHS.AppAnd(filterregistry, filterflagmixed);

            filter = QHS.AppAnd(filter, filtercurrency);
            filter = QHS.AppAnd(filter, QHS.CmpNe("toinvoice", 'N'), QHS.CmpEq("linktoinvoice", 'S'));
            filter = QHS.AppAnd(filter, QHS.CmpEq("idmandatestatus", 5)); // stato approvato

            object currency = Conn.DO_READ_VALUE("currency", filtercurrency, "description");

            if (currency != null)
            {
                lblValuta.Text = currency.ToString().ToUpper();
            }
            DataTable mandateDetail;

            if (HasDDT)
            {
                mandateDetail = Conn.RUN_SELECT("mandatedetailstockedtoinvoice", "*",
                                                "idmankind ASC,yman DESC,nman DESC,rownum ASC, idgroup ASC",
                                                filter, null, false);
            }
            else
            {
                mandateDetail = Conn.RUN_SELECT("mandatedetailnoddttoinvoice", "*",
                                                "idmankind ASC,yman DESC,nman DESC,rownum ASC, idgroup ASC",
                                                filter, null, false);
            }

            Conn.DeleteAllUnselectable(mandateDetail);

            if (mandateDetail.Rows.Count != 0)
            {
                mandateDetail.PrimaryKey = new[] { mandateDetail.Columns["idmankind"],
                                                   mandateDetail.Columns["yman"],
                                                   mandateDetail.Columns["nman"],
                                                   mandateDetail.Columns["rownum"] };
                //Ora ha messo in MandateDetail tutto ciò che da DB risulta 'da fatturare'.

                //Effettua ora una serie di allineamenti sul DataTable per renderlo più coerente con quello
                // che c'è nel DataSet del form padre.

                //Per ogni riga del DataSet in stato di INSERT/UPDATE effettua una sottrazione ed eventualmente
                // un delete su MandateDetail se la riga corrispondente risulta essere esaurita.
                foreach (DataRow R in InvoiceDetail.Select())
                {
                    if (R.RowState != DataRowState.Added)
                    {
                        continue;
                    }
                    if (R["idmankind"] == DBNull.Value)
                    {
                        continue;                                                  //Non è una riga collegata a dettagli ordine
                    }
                    string filtermand = QHC.CmpMulti(R, "idmankind", "yman", "nman");
                    filtermand = QHC.AppAnd(filtermand, QHC.CmpEq("rownum", R["manrownum"]));

                    DataRow [] RM = mandateDetail.Select(filtermand);
                    if ((RM.Length == 0))
                    {
                        continue;
                    }
                    var     detail      = RM[0];
                    decimal oldnumber   = 0;
                    decimal newnumber   = CfgFn.GetNoNullDecimal(R["number", DataRowVersion.Current]);
                    decimal oldresidual = CfgFn.GetNoNullDecimal(detail["residual"]);
                    decimal newresidual = oldresidual - newnumber + oldnumber;
                    detail["residual"] = newresidual;
                }

                foreach (DataRow R in InvoiceDetail.Select())
                {
                    if (R.RowState != DataRowState.Modified)
                    {
                        continue;
                    }
                    string filtermand = QHC.CmpMulti(R, "idmankind", "yman", "nman");
                    filtermand = QHC.AppAnd(filtermand, QHC.CmpEq("rownum", R["manrownum"]));
                    DataRow[] RM = mandateDetail.Select(filtermand);
                    if ((RM.Length == 0))
                    {
                        continue;
                    }
                    DataRow detail = RM[0];
                    decimal oldnumber;
                    if (R["idmankind", DataRowVersion.Original] == DBNull.Value)
                    {
                        oldnumber = 0;
                    }
                    else
                    {
                        oldnumber = CfgFn.GetNoNullDecimal(R["number", DataRowVersion.Original]);
                    }

                    decimal newnumber;
                    if (R["idmankind", DataRowVersion.Current] == DBNull.Value)
                    {
                        newnumber = 0;
                    }
                    else
                    {
                        newnumber = CfgFn.GetNoNullDecimal(R["number", DataRowVersion.Current]);
                    }


                    decimal oldresidual = CfgFn.GetNoNullDecimal(detail["residual"]);
                    decimal newresidual = oldresidual - newnumber + oldnumber;
                    detail["residual"] = newresidual;
                }

                foreach (DataRow r in InvoiceDetail.Rows)
                {
                    if (r.RowState != DataRowState.Deleted)
                    {
                        continue;
                    }
                    if (r["idmankind", DataRowVersion.Original] == DBNull.Value)
                    {
                        continue;
                    }

                    string filtermand = QHC.CmpMulti(r, "idmankind", "yman", "nman");
                    filtermand = QHC.AppAnd(filtermand, QHC.CmpEq("rownum", r["manrownum", DataRowVersion.Original]));

                    DataRow [] RM = mandateDetail.Select(filtermand);
                    if ((RM.Length == 0))
                    {
                        continue;
                    }
                    DataRow Detail      = RM[0];
                    decimal oldnumber   = CfgFn.GetNoNullDecimal(r["number", DataRowVersion.Original]);
                    decimal newnumber   = 0;
                    decimal oldresidual = CfgFn.GetNoNullDecimal(Detail["residual"]);
                    decimal newresidual = oldresidual - newnumber + oldnumber;
                    Detail["residual"] = newresidual;
                }

                foreach (DataRow R in mandateDetail.Select())
                {
                    decimal residual = CfgFn.GetNoNullDecimal(R["residual"]);
                    if (residual == 0)
                    {
                        R.Delete();
                    }
                }

                mandateDetail.AcceptChanges();
                if (mandateDetail.Select().Length > 0)
                {
                    MetaData MAP;
                    if (HasDDT)
                    {
                        MAP = Meta.Dispatcher.Get("mandatedetailstockedtoinvoice");
                    }
                    else
                    {
                        MAP = Meta.Dispatcher.Get("mandatedetailnoddttoinvoice");
                    }
                    MAP.DescribeColumns(mandateDetail, "default");
                    DataSet D = new DataSet();
                    D.Tables.Add(mandateDetail);
                    HelpForm.SetDataGrid(gridDettagli, mandateDetail);
                    gridDettagli.TableStyles.Clear();
                    HelpForm.SetGridStyle(gridDettagli, mandateDetail);
                    formatgrids format = new formatgrids(gridDettagli);
                    format.AutosizeColumnWidth();
                    HelpForm.SetAllowMultiSelection(mandateDetail, true);
                    SelezionaTutto();
                }
            }
        }