protected void grdMain_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            if (dtLineItems != null)
            {
                GridViewRow gr = grdMain.Rows[e.RowIndex];
                var         txtINVOICE_NAME        = gr.FindControl("INVOICE_NAME") as TextBox;
                var         txtINVOICE_ID          = gr.FindControl("INVOICE_ID") as HiddenField;
                var         txtAMOUNT_DUE          = gr.FindControl("AMOUNT_DUE") as TextBox;
                var         txtAMOUNT_DUE_USDOLLAR = gr.FindControl("AMOUNT_DUE_USDOLLAR") as HiddenField;
                var         txtAMOUNT          = gr.FindControl("AMOUNT") as TextBox;
                var         txtAMOUNT_USDOLLAR = gr.FindControl("AMOUNT_USDOLLAR") as HiddenField;

                DataRow row = dtLineItems.Rows[e.RowIndex];
                if (txtINVOICE_NAME != null)
                {
                    row["INVOICE_NAME"] = txtINVOICE_NAME.Text;
                }
                if (txtINVOICE_ID != null)
                {
                    row["INVOICE_ID"] = CommonTypeConvert.ToGuid(txtINVOICE_ID.Value);
                }
                if (txtAMOUNT != null)
                {
                    row["AMOUNT_DUE"] = CommonTypeConvert.ToDecimal(txtAMOUNT_DUE.Text);
                }
                if (txtAMOUNT != null)
                {
                    row["AMOUNT"] = CommonTypeConvert.ToDecimal(txtAMOUNT.Text);
                }

                row["AMOUNT_DUE_USDOLLAR"] =
                    Currency.GetCurrency.FromCurrency(CommonTypeConvert.ToDecimal(txtAMOUNT_DUE.Text));
                row["AMOUNT_USDOLLAR"] = Currency.GetCurrency.FromCurrency(CommonTypeConvert.ToDecimal(txtAMOUNT.Text));

                DataRow[] aCurrentRows = dtLineItems.Select(String.Empty, String.Empty, DataViewRowState.CurrentRows);
                if (aCurrentRows.Length == 0 ||
                    !CommonTypeConvert.IsEmptyString(aCurrentRows[aCurrentRows.Length - 1]["INVOICE_NAME"]))
                {
                    DataRow rowNew = dtLineItems.NewRow();
                    dtLineItems.Rows.Add(rowNew);
                    aCurrentRows = dtLineItems.Select(String.Empty, String.Empty, DataViewRowState.CurrentRows);
                }

                ViewState["LineItems"] = dtLineItems;
                grdMain.DataSource     = dtLineItems;
                grdMain.EditIndex      = aCurrentRows.Length - 1;
                grdMain.DataBind();
                UpdateTotals();
                UpdatePaymentAmount();
            }
        }
        protected void Page_Command(Object sender, CommandEventArgs e)
        {
            Guid   gPARENT_ID   = CommonTypeConvert.ToGuid(Request["PARENT_ID"]);
            string sMODULE      = String.Empty;
            string sPARENT_TYPE = String.Empty;
            string sPARENT_NAME = String.Empty;

            CommonProcedure.ParentGet(ref gPARENT_ID, ref sMODULE, ref sPARENT_TYPE, ref sPARENT_NAME);
            if (e.CommandName == "Save")
            {
                var txtNAME = FindControl("NAME") as TextBox;
                var txtPRODUCT_TEMPLATE_ID = FindControl("PRODUCT_TEMPLATE_ID") as HtmlInputHidden;
                if (CommonTypeConvert.IsEmptyString(txtNAME.Text.Trim()))
                {
                    txtPRODUCT_TEMPLATE_ID.Value = String.Empty;
                }
                else if (CommonTypeConvert.IsEmptyString(txtPRODUCT_TEMPLATE_ID.Value))
                {
                    txtPRODUCT_TEMPLATE_ID.Value = Guid.Empty.ToString();
                }

                ValidateEditViewFields(m_sMODULE + ".EditView");
                ValidateEditViewFields(m_sMODULE + ".CostView");
                ValidateEditViewFields(m_sMODULE + ".MftView");
                if (Page.IsValid)
                {
                    string    sCUSTOM_MODULE = "PRODUCTS";
                    DataTable dtCustomFields = CRMCache.FieldsMetaData_Validated(sCUSTOM_MODULE);
                    var       oQuery         = new InlineQueryDBManager();
                    DataRow   rowCurrent     = null;
                    if (!CommonTypeConvert.IsEmptyGuid(gID))
                    {
                        string innerSql = ApplicationSQL.SQL["Products_EditView"].ToString();
                        oQuery.CommandText = innerSql;
                        CRMSecurity.Filter(oQuery, m_sMODULE, "edit");
                        TypeConvert.AppendParameter(oQuery, gID, "ID", false);
                        DataTable dtCurrent = oQuery.GetTable();
                        if (dtCurrent.Rows.Count > 0)
                        {
                            rowCurrent = dtCurrent.Rows[0];
                        }
                        else
                        {
                            gID = Guid.Empty;
                        }
                    }

                    CommonProcedure.ProductUpdate
                        (ref gID
                        , new DynamicControl(this, rowCurrent, "PRODUCT_TEMPLATE_ID").ID
                        , new DynamicControl(this, rowCurrent, "NAME").Text
                        , new DynamicControl(this, rowCurrent, "STATUS").SelectedValue
                        , new DynamicControl(this, rowCurrent, "ACCOUNT_ID").ID
                        , new DynamicControl(this, rowCurrent, "CONTACT_ID").ID
                        , new DynamicControl(this, rowCurrent, "QUANTITY").IntegerValue
                        , new DynamicControl(this, rowCurrent, "DATE_PURCHASED").DateValue
                        , new DynamicControl(this, rowCurrent, "DATE_SUPPORT_EXPIRES").DateValue
                        , new DynamicControl(this, rowCurrent, "DATE_SUPPORT_STARTS").DateValue
                        , new DynamicControl(this, rowCurrent, "MANUFACTURER_ID").ID
                        , new DynamicControl(this, rowCurrent, "CATEGORY_ID").ID
                        , new DynamicControl(this, rowCurrent, "TYPE_ID").ID
                        , new DynamicControl(this, rowCurrent, "WEBSITE").Text
                        , new DynamicControl(this, rowCurrent, "MFT_PART_NUM").Text
                        , new DynamicControl(this, rowCurrent, "VENDOR_PART_NUM").Text
                        , new DynamicControl(this, rowCurrent, "SERIAL_NUMBER").Text
                        , new DynamicControl(this, rowCurrent, "ASSET_NUMBER").Text
                        , new DynamicControl(this, rowCurrent, "TAX_CLASS").SelectedValue
                        , new DynamicControl(this, rowCurrent, "WEIGHT").FloatValue
                        , new DynamicControl(this, rowCurrent, "CURRENCY_ID").ID
                        , new DynamicControl(this, rowCurrent, "COST_PRICE").DecimalValue
                        , new DynamicControl(this, rowCurrent, "LIST_PRICE").DecimalValue
                        , new DynamicControl(this, rowCurrent, "BOOK_VALUE").DecimalValue
                        , new DynamicControl(this, rowCurrent, "BOOK_VALUE_DATE").DateValue
                        , new DynamicControl(this, rowCurrent, "DISCOUNT_PRICE").DecimalValue
                        , new DynamicControl(this, rowCurrent, "PRICING_FACTOR").IntegerValue
                        , new DynamicControl(this, rowCurrent, "PRICING_FORMULA").SelectedValue
                        , new DynamicControl(this, rowCurrent, "SUPPORT_NAME").Text
                        , new DynamicControl(this, rowCurrent, "SUPPORT_CONTACT").Text
                        , new DynamicControl(this, rowCurrent, "SUPPORT_DESCRIPTION").Text
                        , new DynamicControl(this, rowCurrent, "SUPPORT_TERM").SelectedValue
                        , new DynamicControl(this, rowCurrent, "DESCRIPTION").Text
                        , new DynamicControl(this, rowCurrent, "TEAM_ID").ID
                        );
                    CRMDynamic.UpdateCustomFields(this, gID, sCUSTOM_MODULE, dtCustomFields);

                    if (!CommonTypeConvert.IsEmptyGuid(gPARENT_ID))
                    {
                        Response.Redirect("~/CRM/" + sMODULE + "/view.aspx?ID=" + gPARENT_ID);
                    }
                    else
                    {
                        Response.Redirect("view.aspx?ID=" + gID);
                    }
                }
            }
            else if (e.CommandName == "Cancel")
            {
                if (!CommonTypeConvert.IsEmptyGuid(gPARENT_ID))
                {
                    Response.Redirect("~/CRM/" + sMODULE + "/view.aspx?ID=" + gPARENT_ID);
                }
                else if (CommonTypeConvert.IsEmptyGuid(gID))
                {
                    Response.Redirect("Index.aspx");
                }
                else
                {
                    Response.Redirect("view.aspx?ID=" + gID);
                }
            }
        }
        public static DataTable ImportColumns(string sMODULE_NAME)
        {
            Cache Cache = HttpRuntime.Cache;
            var   dt    = Cache.Get("vwSqlColumns_Import." + sMODULE_NAME) as DataTable;

            if (dt == null)
            {
                string sTABLE_NAME =
                    CommonTypeConvert.ToString(HttpContext.Current.Application["Modules." + sMODULE_NAME + ".TableName"]);
                if (CommonTypeConvert.IsEmptyString(sTABLE_NAME))
                {
                    sTABLE_NAME = sMODULE_NAME.ToUpper();
                }

                var oQuery = new InlineQueryDBManager();


                dt = new DataTable();
                dt.Columns.Add("ColumnName", Type.GetType("System.String"));
                dt.Columns.Add("NAME", Type.GetType("System.String"));
                dt.Columns.Add("DISPLAY_NAME", Type.GetType("System.String"));
                dt.Columns.Add("ColumnType", Type.GetType("System.String"));
                dt.Columns.Add("Size", Type.GetType("System.Int32"));
                dt.Columns.Add("Scale", Type.GetType("System.Int32"));
                dt.Columns.Add("Precision", Type.GetType("System.Int32"));
                dt.Columns.Add("colid", Type.GetType("System.Int32"));
                dt.Columns.Add("CustomField", Type.GetType("System.Boolean"));
                {
                    oQuery = null;
                    try
                    {
                        oQuery = InlineQueryDBManager.Factory("stp_Zpro_" + sTABLE_NAME + "_Import");
                        if (oQuery == null)
                        {
                            throw new Exception();
                        }
                    }
                    catch
                    {
                        oQuery = InlineQueryDBManager.Factory("stp_Zpro_" + sTABLE_NAME + "_Update");
                    }
                    for (int i = 0; i < oQuery.Count; i++)
                    {
                        SqlParameter par = oQuery[i];
                        DataRow      row = dt.NewRow();
                        dt.Rows.Add(row);
                        row["ColumnName"]   = par.ParameterName;
                        row["NAME"]         = CommonTypeConvert.ExtractDbName(par.ParameterName);
                        row["DISPLAY_NAME"] = row["NAME"];
                        row["ColumnType"]   = par.DbType.ToString();
                        row["Size"]         = par.Size;
                        row["Scale"]        = par.Scale;
                        row["Precision"]    = par.Precision;
                        row["colid"]        = i;
                        row["CustomField"]  = false;
                    }


                    string sSQL;

                    if (Config.enable_team_management())
                    {
                        bool bModuleIsTeamed =
                            CommonTypeConvert.ToBoolean(
                                HttpContext.Current.Application["Modules." + sMODULE_NAME + ".Teamed"]);
                        DataRow row = dt.NewRow();
                        row = dt.NewRow();
                        row["ColumnName"]   = "@TEAM_NAME";
                        row["NAME"]         = "TEAM_NAME";
                        row["DISPLAY_NAME"] = "TEAM_NAME";
                        row["ColumnType"]   = "string";
                        row["Size"]         = 128;
                        row["colid"]        = dt.Rows.Count;
                        row["CustomField"]  = false;
                        dt.Rows.Add(row);
                    }

                    sSQL               = ApplicationSQL.SQL["_code_CRMCache_629"];
                    oQuery             = new InlineQueryDBManager();
                    oQuery.CommandText = sSQL;
                    oQuery.Add("@OBJECTNAME", SqlDbType.NVarChar, sTABLE_NAME + "_CSTM");
                    DataTable dtCSTM = oQuery.GetTable();
                    foreach (DataRow rowCSTM in dtCSTM.Rows)
                    {
                        DataRow row = dt.NewRow();
                        row["ColumnName"]   = CommonTypeConvert.ToString(rowCSTM["ColumnName"]);
                        row["NAME"]         = CommonTypeConvert.ToString(rowCSTM["ColumnName"]);
                        row["DISPLAY_NAME"] = CommonTypeConvert.ToString(rowCSTM["ColumnName"]);
                        row["ColumnType"]   = CommonTypeConvert.ToString(rowCSTM["CsType"]);
                        row["Size"]         = CommonTypeConvert.ToInteger(rowCSTM["length"]);

                        row["colid"]       = dt.Rows.Count;
                        row["CustomField"] = true;
                        dt.Rows.Add(row);
                    }

                    Cache.Insert("vwSqlColumns_Import." + sMODULE_NAME, dt, null, DefaultCacheExpiration(),
                                 Cache.NoSlidingExpiration);
                }
            }
            return(dt);

            //return new DataTable();
        }
Exemple #4
0
        protected void Page_Command(Object sender, CommandEventArgs e)
        {
            Guid   gORDER_ID    = CommonTypeConvert.ToGuid(Request["ORDER_ID"]);
            Guid   gQUOTE_ID    = CommonTypeConvert.ToGuid(Request["QUOTE_ID"]);
            Guid   gPARENT_ID   = CommonTypeConvert.ToGuid(Request["PARENT_ID"]);
            string sMODULE      = String.Empty;
            string sPARENT_TYPE = String.Empty;
            string sPARENT_NAME = String.Empty;

            CommonProcedure.ParentGet(ref gPARENT_ID, ref sMODULE, ref sPARENT_TYPE, ref sPARENT_NAME);
            if (e.CommandName == "Save")
            {
                ValidateEditViewFields(m_sMODULE + ".EditView");
                ValidateEditViewFields(m_sMODULE + ".EditAddress");
                ValidateEditViewFields(m_sMODULE + ".EditDescription");
                if (Page.IsValid)
                {
                    string    sCUSTOM_MODULE    = "INVOICES";
                    DataTable dtCustomFields    = CRMCache.FieldsMetaData_Validated(sCUSTOM_MODULE);
                    DataTable dtCustomLineItems =
                        CRMCache.FieldsMetaData_UnvalidatedCustomFields(sCUSTOM_MODULE + "_LINE_ITEMS");

                    DataRow rowCurrent = null;
                    var     dtCurrent  = new DataTable();
                    if (!CommonTypeConvert.IsEmptyGuid(gID))
                    {
                        string innerSql = ApplicationSQL.SQL["Invoices_EditView_323"].ToString();
                        var    oQuery   = new InlineQueryDBManager();

                        oQuery.CommandText = innerSql;
                        CRMSecurity.Filter(oQuery, m_sMODULE, "edit");
                        TypeConvert.AppendParameter(oQuery, gID, "ID", false);
                        dtCurrent = oQuery.GetTable();

                        if (dtCurrent.Rows.Count > 0)
                        {
                            rowCurrent = dtCurrent.Rows[0];
                        }
                        else
                        {
                            gID = Guid.Empty;
                        }
                    }


                    ctlEditLineItemsView.UpdateTotals();
                    CommonProcedure.InvoicesUpdate
                        (ref gID
                        , new DynamicControl(this, rowCurrent, "ASSIGNED_USER_ID").ID
                        , new DynamicControl(this, rowCurrent, "NAME").Text
                        , new DynamicControl(this, rowCurrent, "QUOTE_ID").ID
                        , new DynamicControl(this, rowCurrent, "ORDER_ID").ID
                        , new DynamicControl(this, rowCurrent, "OPPORTUNITY_ID").ID
                        , new DynamicControl(this, rowCurrent, "PAYMENT_TERMS").SelectedValue
                        , new DynamicControl(this, rowCurrent, "INVOICE_STAGE").SelectedValue
                        , new DynamicControl(this, rowCurrent, "PURCHASE_ORDER_NUM").Text
                        , new DynamicControl(this, rowCurrent, "DUE_DATE").DateValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "EXCHANGE_RATE").FloatValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "CURRENCY_ID").ID
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "TAXRATE_ID").ID
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "SHIPPER_ID").ID
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "SUBTOTAL").DecimalValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "DISCOUNT").DecimalValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "SHIPPING").DecimalValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "TAX").DecimalValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "TOTAL").DecimalValue
                        , new DynamicControl(ctlEditLineItemsView, rowCurrent, "AMOUNT_DUE").DecimalValue
                        , new DynamicControl(this, rowCurrent, "BILLING_ACCOUNT_ID").ID
                        , new DynamicControl(this, rowCurrent, "BILLING_CONTACT_ID").ID
                        , new DynamicControl(this, rowCurrent, "BILLING_ADDRESS_STREET").Text
                        , new DynamicControl(this, rowCurrent, "BILLING_ADDRESS_CITY").Text
                        , new DynamicControl(this, rowCurrent, "BILLING_ADDRESS_STATE").Text
                        , new DynamicControl(this, rowCurrent, "BILLING_ADDRESS_POSTALCODE").Text
                        , new DynamicControl(this, rowCurrent, "BILLING_ADDRESS_COUNTRY").Text
                        , new DynamicControl(this, rowCurrent, "SHIPPING_ACCOUNT_ID").ID
                        , new DynamicControl(this, rowCurrent, "SHIPPING_CONTACT_ID").ID
                        , new DynamicControl(this, rowCurrent, "SHIPPING_ADDRESS_STREET").Text
                        , new DynamicControl(this, rowCurrent, "SHIPPING_ADDRESS_CITY").Text
                        , new DynamicControl(this, rowCurrent, "SHIPPING_ADDRESS_STATE").Text
                        , new DynamicControl(this, rowCurrent, "SHIPPING_ADDRESS_POSTALCODE").Text
                        , new DynamicControl(this, rowCurrent, "SHIPPING_ADDRESS_COUNTRY").Text
                        , new DynamicControl(this, rowCurrent, "DESCRIPTION").Text
                        , new DynamicControl(this, rowCurrent, "TEAM_ID").ID
                        );
                    CRMDynamic.UpdateCustomFields(this, gID, sCUSTOM_MODULE, dtCustomFields);

                    DataTable dtLineItems = ctlEditLineItemsView.LineItems;
                    foreach (DataRow row in dtLineItems.Rows)
                    {
                        if (row.RowState == DataRowState.Deleted)
                        {
                            Guid gITEM_ID = CommonTypeConvert.ToGuid(row["ID", DataRowVersion.Original]);
                            if (!CommonTypeConvert.IsEmptyGuid(gITEM_ID))
                            {
                                CommonProcedure.InvoicesLINE_ITEMS_Delete(gITEM_ID);
                            }
                        }
                    }
                    int nPOSITION = 1;
                    foreach (DataRow row in dtLineItems.Rows)
                    {
                        if (row.RowState != DataRowState.Deleted)
                        {
                            Guid    gITEM_ID             = CommonTypeConvert.ToGuid(row["ID"]);
                            Guid    gLINE_GROUP_ID       = CommonTypeConvert.ToGuid(row["LINE_GROUP_ID"]);
                            string  sLINE_ITEM_TYPE      = CommonTypeConvert.ToString(row["LINE_ITEM_TYPE"]);
                            string  sNAME                = CommonTypeConvert.ToString(row["NAME"]);
                            string  sMFT_PART_NUM        = CommonTypeConvert.ToString(row["MFT_PART_NUM"]);
                            string  sVENDOR_PART_NUM     = CommonTypeConvert.ToString(row["VENDOR_PART_NUM"]);
                            Guid    gPRODUCT_TEMPLATE_ID = CommonTypeConvert.ToGuid(row["PRODUCT_TEMPLATE_ID"]);
                            string  sTAX_CLASS           = CommonTypeConvert.ToString(row["TAX_CLASS"]);
                            int     nQUANTITY            = CommonTypeConvert.ToInteger(row["QUANTITY"]);
                            Decimal dCOST_PRICE          = CommonTypeConvert.ToDecimal(row["COST_PRICE"]);
                            Decimal dLIST_PRICE          = CommonTypeConvert.ToDecimal(row["LIST_PRICE"]);
                            Decimal dUNIT_PRICE          = CommonTypeConvert.ToDecimal(row["UNIT_PRICE"]);
                            string  sDESCRIPTION         = CommonTypeConvert.ToString(row["DESCRIPTION"]);
                            if (!CommonTypeConvert.IsEmptyGuid(gPRODUCT_TEMPLATE_ID) ||
                                !CommonTypeConvert.IsEmptyString(sNAME))
                            {
                                CommonProcedure.InvoicesLINE_ITEMS_Update
                                    (ref gITEM_ID
                                    , gID
                                    , gLINE_GROUP_ID
                                    , sLINE_ITEM_TYPE
                                    , nPOSITION
                                    , sNAME
                                    , sMFT_PART_NUM
                                    , sVENDOR_PART_NUM
                                    , gPRODUCT_TEMPLATE_ID
                                    , sTAX_CLASS
                                    , nQUANTITY
                                    , dCOST_PRICE
                                    , dLIST_PRICE
                                    , dUNIT_PRICE
                                    , sDESCRIPTION
                                    );
                                CRMDynamic.UpdateCustomFields(row, gITEM_ID, sCUSTOM_MODULE + "_LINE_ITEMS",
                                                              dtCustomLineItems);
                                nPOSITION++;
                            }
                        }
                    }
                    CommonProcedure.InvoicesUpdateAmountDue(gID);


                    if (!CommonTypeConvert.IsEmptyGuid(gPARENT_ID))
                    {
                        Response.Redirect("~/CRM/" + sMODULE + "/view.aspx?ID=" + gPARENT_ID);
                    }
                    else
                    {
                        Response.Redirect("view.aspx?ID=" + gID);
                    }
                }
            }
            else if (e.CommandName == "Cancel")
            {
                if (!CommonTypeConvert.IsEmptyGuid(gPARENT_ID))
                {
                    Response.Redirect("~/CRM/" + sMODULE + "/view.aspx?ID=" + gPARENT_ID);
                }
                else if (!CommonTypeConvert.IsEmptyGuid(gORDER_ID))
                {
                    Response.Redirect("~/CRM/Orders/view.aspx?ID=" + gORDER_ID);
                }
                else if (!CommonTypeConvert.IsEmptyGuid(gQUOTE_ID))
                {
                    Response.Redirect("~/CRM/Quotes/view.aspx?ID=" + gQUOTE_ID);
                }
                else if (CommonTypeConvert.IsEmptyGuid(gID))
                {
                    Response.Redirect("Index.aspx");
                }
                else
                {
                    Response.Redirect("view.aspx?ID=" + gID);
                }
            }
        }
        public void LoadLineItems(Guid gID, Guid gACCOUNT_ID, Guid gDuplicateID, InlineQueryDBManager oQuery,
                                  SqlDataReader rdr)
        {
            this.gACCOUNT_ID = gACCOUNT_ID;
            if (!IsPostBack)
            {
                GetCurrencyControl();
                CURRENCY_ID.SelectedValue = Currency.GetCurrency.ID.ToString();
                EXCHANGE_RATE.Value       = Currency.GetCurrency.CONVERSION_RATE.ToString();
                foreach (DataControlField col in grdMain.Columns)
                {
                    if (!CommonTypeConvert.IsEmptyString(col.HeaderText))
                    {
                        col.HeaderText = Translation.GetTranslation.Term(col.HeaderText);
                    }
                    var cf = col as CommandField;
                    if (cf != null)
                    {
                        cf.EditText   = Translation.GetTranslation.Term(cf.EditText);
                        cf.DeleteText = Translation.GetTranslation.Term(cf.DeleteText);
                        cf.UpdateText = Translation.GetTranslation.Term(cf.UpdateText);
                        cf.CancelText = Translation.GetTranslation.Term(cf.CancelText);
                    }
                }

                if ((!CommonTypeConvert.IsEmptyGuid(gID) || !CommonTypeConvert.IsEmptyGuid(gDuplicateID)) &&
                    (oQuery != null) && (rdr != null))
                {
                    CURRENCY_ID.SelectedValue = CommonTypeConvert.ToString(rdr["CURRENCY_ID"]);
                    EXCHANGE_RATE.Value       = Currency.GetCurrency.CONVERSION_RATE.ToString();
                    float fEXCHANGE_RATE = CommonTypeConvert.ToFloat(rdr["EXCHANGE_RATE"]);
                    if (fEXCHANGE_RATE == 0.0f)
                    {
                        fEXCHANGE_RATE = 1.0f;
                    }
                    EXCHANGE_RATE.Value = fEXCHANGE_RATE.ToString();
                    if (CURRENCY_ID.Items.Count > 0)
                    {
                        Guid gCURRENCY_ID = CommonTypeConvert.ToGuid(CURRENCY_ID.SelectedValue);
                        SetCurrency(gCURRENCY_ID, fEXCHANGE_RATE);
                        EXCHANGE_RATE.Value = Currency.GetCurrency.CONVERSION_RATE.ToString();
                    }
                    ALLOCATED.Text =
                        Currency.GetCurrency.ToCurrency(CommonTypeConvert.ToDecimal(rdr["TOTAL_ALLOCATED_USDOLLAR"])).
                        ToString("c");
                    ALLOCATED_USDOLLAR.Value =
                        CommonTypeConvert.ToDecimal(rdr["TOTAL_ALLOCATED_USDOLLAR"]).ToString("0.00");
                    rdr.Close();
                    string innerSql = ApplicationSQL.SQL["Payments_AllocationsView_233"].ToString();

                    oQuery.CommandText = innerSql;
                    TypeConvert.AppendParameter(oQuery, gID, "PAYMENT_ID", false);
                    oQuery.CommandText += " order by DATE_MODIFIED asc" + ControlChars.CrLf;
                    DataTable dtLineItems = oQuery.GetTable();
                    if (!CommonTypeConvert.IsEmptyGuid(gDuplicateID))
                    {
                        foreach (DataRow row in dtLineItems.Rows)
                        {
                            row["ID"] = Guid.NewGuid();
                        }
                    }
                    DataRow rowNew = dtLineItems.NewRow();
                    dtLineItems.Rows.Add(rowNew);

                    ViewState["LineItems"] = dtLineItems;
                    grdMain.DataSource     = dtLineItems;
                    grdMain.EditIndex      = dtLineItems.Rows.Count - 1;
                    grdMain.DataBind();
                }
                else
                {
                    dtLineItems = new DataTable();
                    var colID                  = new DataColumn("ID", Type.GetType("System.Guid"));
                    var colINVOICE_NAME        = new DataColumn("INVOICE_NAME", Type.GetType("System.String"));
                    var colINVOICE_ID          = new DataColumn("INVOICE_ID", Type.GetType("System.Guid"));
                    var colAMOUNT_DUE          = new DataColumn("AMOUNT_DUE", Type.GetType("System.Decimal"));
                    var colAMOUNT_DUE_USDOLLAR = new DataColumn("AMOUNT_DUE_USDOLLAR", Type.GetType("System.Decimal"));
                    var colAMOUNT              = new DataColumn("AMOUNT", Type.GetType("System.Decimal"));
                    var colAMOUNT_USDOLLAR     = new DataColumn("AMOUNT_USDOLLAR", Type.GetType("System.Decimal"));
                    dtLineItems.Columns.Add(colID);
                    dtLineItems.Columns.Add(colINVOICE_NAME);
                    dtLineItems.Columns.Add(colINVOICE_ID);
                    dtLineItems.Columns.Add(colAMOUNT_DUE);
                    dtLineItems.Columns.Add(colAMOUNT_DUE_USDOLLAR);
                    dtLineItems.Columns.Add(colAMOUNT);
                    dtLineItems.Columns.Add(colAMOUNT_USDOLLAR);
                    DataRow rowNew   = null;
                    string  innerSql = ApplicationSQL.SQL["Payments_AllocationsView"].ToString();

                    oQuery.CommandText = innerSql;
                    Guid gPARENT_ID = CommonTypeConvert.ToGuid(Request["PARENT_ID"]);
                    TypeConvert.AppendParameter(oQuery, gPARENT_ID, "ID", false);
                    using (SqlDataReader rdrInvoice = oQuery.ExecuteReader(CommandBehavior.SingleRow))
                    {
                        if (rdrInvoice.Read())
                        {
                            rowNew = dtLineItems.NewRow();
                            rowNew["INVOICE_NAME"]        = CommonTypeConvert.ToString(rdrInvoice["NAME"]);
                            rowNew["INVOICE_ID"]          = CommonTypeConvert.ToGuid(rdrInvoice["ID"]);
                            rowNew["AMOUNT_DUE"]          = CommonTypeConvert.ToDecimal(rdrInvoice["AMOUNT_DUE"]);
                            rowNew["AMOUNT_DUE_USDOLLAR"] =
                                CommonTypeConvert.ToDecimal(rdrInvoice["AMOUNT_DUE_USDOLLAR"]);
                            rowNew["AMOUNT"]          = CommonTypeConvert.ToDecimal(rdrInvoice["AMOUNT_DUE"]);
                            rowNew["AMOUNT_USDOLLAR"] = CommonTypeConvert.ToDecimal(rdrInvoice["AMOUNT_DUE_USDOLLAR"]);
                            if (rdrInvoice["AMOUNT_DUE"] == DBNull.Value)
                            {
                                rowNew["AMOUNT_DUE"]          = CommonTypeConvert.ToDecimal(rdrInvoice["TOTAL"]);
                                rowNew["AMOUNT_DUE_USDOLLAR"] = CommonTypeConvert.ToDecimal(rdrInvoice["TOTAL_USDOLLAR"]);
                                rowNew["AMOUNT"]          = CommonTypeConvert.ToDecimal(rdrInvoice["TOTAL"]);
                                rowNew["AMOUNT_USDOLLAR"] = CommonTypeConvert.ToDecimal(rdrInvoice["TOTAL_USDOLLAR"]);
                            }
                            dtLineItems.Rows.Add(rowNew);
                        }
                    }
                    rowNew = dtLineItems.NewRow();
                    dtLineItems.Rows.Add(rowNew);

                    ViewState["LineItems"] = dtLineItems;
                    grdMain.DataSource     = dtLineItems;
                    grdMain.EditIndex      = dtLineItems.Rows.Count - 1;
                    grdMain.DataBind();

                    UpdateTotals();
                }
            }
        }