예제 #1
0
        /// <summary>
        ///     Отправка клиенту скрипта с изменениями контрола
        /// </summary>
        public virtual void Flush()
        {
            if (PropertyChanged.Contains("Visible"))
            {
                JS.Write("if(gi('{0}')) gi('{0}').style.display='{1}';", HtmlID, Visible ? DisplayStyle : "none");
                JS.Write("if (gi('{0}_cptn')) gi('{0}_cptn').style.display='{1}';", HtmlID,
                         Visible ? DisplayCaptionStyle : "none");
            }


            if (RefreshRequired)
            {
                V4Page.RefreshHtmlBlock(HtmlID, RenderControl);
                V4Page.RefreshHtmlBlock(HtmlID + "_ntf", RenderNtf);
                return;
            }


            if (PropertyChanged.Contains("IsReadOnly") || PropertyChanged.Contains("IsDisabled"))
            {
                V4Page.RefreshHtmlBlock(HtmlID, RenderControl);
                return;
            }

            if (OnRenderNtf != null && PropertyChanged.Contains("Ntf"))
            {
                V4Page.RefreshHtmlBlock(HtmlID + "_ntf", RenderNtf);
            }

            if (PropertyChanged.Contains("Caption"))
            {
                JS.Write("if(gi('{0}_cptn')) gi('{0}_cptn').innerHTML='{1}';", HtmlID, Caption);
            }
        }
        public override void ProcessCommand(NameValueCollection collection)
        {
            if (collection["v"] != null)
            {
                Like = Convert.ToInt32(collection["v"]);
                var sqlParams = new Dictionary <string, object>
                {
                    { "@КодИдентификатораОценки", LikeId },
                    { "@Оценка", Like }
                };

                try
                {
                    DBManager.ExecuteNonQuery(SQLQueries.INSERT_ОценкиИнтерфейса, CommandType.Text, Config.DS_errors, sqlParams);
                }
                catch (Exception e)
                {
                    V4Page.ShowMessage(e.Message, Resx.GetString("errDoisserWarrning"), MessageStatus.Error);
                    Logger.WriteEx(new DetailedException("Ошибка при установке оценки!", e));
                }

                GetStatus();

                JS.Write("$('#{0}').attr('src','/Styles/{1}.png');", HtmlID + "_L", Like > 0 ? "like" : "like_off");
                JS.Write("gi('{0}').innerHTML = '{1}';", "spL_" + HtmlID, Like > 0 ? Like.ToString() : "");
                JS.Write("$('#{0}').attr('src','/Styles/{1}.png');", HtmlID + "_D", Like < 0 ? "dislike" : "dislike_off");
                JS.Write("gi('{0}').innerHTML = '{1}';", "spR_" + HtmlID, Like < 0 ? (-Like).ToString() : "");
            }

            else
            {
                base.ProcessCommand(collection);
            }
        }
예제 #3
0
        /// <summary>
        ///     Обработка клиентских команд
        /// </summary>
        /// <param name="param"></param>
        public void ProcessClientCommand(NameValueCollection param)
        {
            switch (param["cmdName"])
            {
            case "RefreshGridData":
                RefreshData();
                break;

            case "OpenLinkedDoc":

                _currentRadioCtrl.Value = "0";
                _currentRadioCtrl.Flush();
                _currentDbSelectCtrl.Value      = null;
                _currentDbSelectCtrl.IsDisabled = true;

                JS.Write("dialogShow('{0}', '{1}');", Resx.GetString("title"), LinkedDocCmdListnerIndex);
                break;

            case "OK":
                if (_type == "")
                {
                    V4Page.ShowMessage($"{V4Page.Resx.GetString("LinkedDocs_lbl_УкажитеТип")}",
                                       _currentTypeSelectCtrl, V4Page.Resx.GetString("CONFIRM_StdTitle"));
                    return;
                }

                var url  = "";
                var bAdd = _currentRadioCtrl.Value == "0";
                var dtp  = new DocType(_type);

                if (bAdd)
                {
                    // создаем новый документ
                    url = dtp.URL + (dtp.URL.IndexOf("?", StringComparison.Ordinal) > 0 ? "&" : "?") + "DocId=" +
                          V4Page.Doc.Id + "&fieldId=" + _field;
                }
                else
                {
                    // связываем существующий документ
                    url = dtp.URL + (dtp.URL.IndexOf("?", StringComparison.Ordinal) > 0 ? "&" : "?") +
                          "DocId=" + V4Page.Doc.Id + "&Id=" + _currentDbSelectCtrl.Value + "&fieldId=" + _field;
                }

                if (url != "")
                {
                    JS.Write("dialogShow.form.dialog('close');");
                    JS.Write($"win=Kesco.windowOpen('{HttpUtility.JavaScriptStringEncode(url)}', null, null, 'docId' );");
                }

                _currentTypeSelectCtrl.Value = "";

                SetDefaultLinkedDocType();

                break;
            }
        }
예제 #4
0
        /// <summary>
        ///     Валидация значения контрола
        /// </summary>
        /// <returns>Результат валидации</returns>
        public override bool Validation()
        {
            if (!base.Validation())
            {
                return(false);
            }
            if (!string.IsNullOrEmpty(RegEx) && !string.IsNullOrEmpty(Value) && !Regex.IsMatch(Value, RegEx))
            {
                V4Page.ShowMessage(ValidationMessage);
                Focus();
                return(false);
            }

            return(true);
        }
예제 #5
0
        /// <summary>
        ///     Получение по ID
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="name">Наименование сущности</param>
        /// <returns>сущность</returns>
        public override object GetObjectById(string id, string name = "")
        {
            if (!string.IsNullOrEmpty(name))
            {
                return new CashFlowType {
                           Id = id, Name = name
                }
            }
            ;

            var obj = V4Page.GetObjectById(typeof(CashFlowType), id) as CashFlowType;

            return(obj);
        }
    }
예제 #6
0
        /// <summary>
        ///     Получение Единица измерения по ID
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="name">Наименование сущности</param>
        /// <returns>Единица измерения</returns>
        public override object GetObjectById(string id, string name = "")
        {
            if (!string.IsNullOrEmpty(name))
            {
                return new Unit {
                           Id = id, Name = name
                }
            }
            ;

            var obj = V4Page.GetObjectById(typeof(Unit), id) as Unit;

            return(obj);
        }
    }
예제 #7
0
        /// <summary>
        ///     Обновление списка документов
        /// </summary>
        public void RefreshData()
        {
            var w = new StringWriter();

            RenderLinkedDocsInfo(w);
            V4Page.JS.Write("$('#{0}').html('{1}');v4_setSizeFormContainer();", ID, HttpUtility.JavaScriptStringEncode(w.ToString()));
            V4Page.JS.Write(@"lb_clientLocalization = {{
                ok_button:""{0}"",
                cancel_button:""{1}"" 
            }};",
                            Resx.GetString("cmdApply"),
                            Resx.GetString("cmdCancel")
                            );

            V4Page.RestoreCursor();
        }
예제 #8
0
 /// <summary>
 ///     Обновление контрола
 /// </summary>
 public void Refresh()
 {
     V4Page.RefreshHtmlBlock(ID, RenderControlBody);
 }
예제 #9
0
 /// <summary>
 ///     Отрисовка нотификации контрола
 /// </summary>
 /// <param name="w">Поток</param>
 public virtual void RenderNtf(TextWriter w)
 {
     V4Page?.RenderNtf(w, _ntf.List);
 }
예제 #10
0
        /// <summary>
        ///     Отрисовка списка документов
        /// </summary>
        /// <param name="w"></param>
        /// <param name="dt"></param>
        /// <param name="_title"></param>
        /// <param name="_oneTitle"></param>
        /// <param name="_type"></param>
        /// <param name="_linkType"></param>
        /// <param name="fieldId"></param>
        /// <param name="field"></param>
        /// <param name="fieldEn"></param>
        private void RenderLinkedDocsInfoDetails(TextWriter w, DataTable dt, string _title, string _oneTitle,
                                                 string _type, string _linkType, string fieldId, string field, string fieldEn)
        {
            var dvSys = new DataView();

            dvSys.Table = dt;

            var dv = new DataView();

            dv.Table = dt;
            dv.Sort  = "КодРесурса1, ДатаДокумента";

            if (dv.Count == 0)
            {
                return;
            }

            Document d = null;
            //Currency cur = null;

            var     curSml   = "&nbsp;";
            var     curScale = 2;
            decimal sum      = 0;

            var dtp = V4Page.GetObjectById(typeof(DocType), _type) as DocType;

            if (!dtp.Unavailable)
            {
                w.Write("<table border=0 style='BORDER-COLLAPSE:collapse;'>");
                w.Write("<tr>");
                w.Write("<td {0}>", dv.Count == 0 ? "style=\"padding-bottom:15px;\"" : "");

                w.Write(" \"" + (V4Page.IsRusLocal ? dtp.Name : dtp.TypeDocEn) + "\"");
                w.Write(" (" + Resx.GetString("LBL_ПоПолю") + " \"" + (V4Page.IsRusLocal ? field : fieldEn) + "\")");


                w.Write(":</td>");
                w.Write("</tr>");
                w.Write("</table>");
            }

            w.Write("<table border=0 style='BORDER-COLLAPSE:collapse;padding-bottom:15px;'>");
            for (var i = 0; i < dv.Count; i++)
            {
                d = V4Page.GetObjectById(typeof(Document), dv[i]["КодДокумента"].ToString()) as Document;

                if (d.Unavailable)
                {
                    continue;
                }
                var res = d.DocumentData.ResourceId1;
                if (res.HasValue && res > 0)
                {
                    //todo
                    //cur = Currency.GetCurrency(res.Value);
                    //cur._PersonID = doc._Person1;
                    //if (cur.Unavailable || cur.ParentOf(V2.Resources.Resource._Money)) curSml = "&nbsp;";
                    //else
                    //{
                    //    curSml = cur.CurrencySymbol;
                    //    curScale = int.Parse(cur._UnitScale);
                    //}
                }
                else
                {
                    curSml = "&nbsp;";
                }

                w.Write("<tr>");
                w.Write("<td style='PADDING-LEFT:10px;' valign='top'>");

                V4Page.RenderLinkDoc(w, d.Id);
                w.Write("<img src='/styles/DocMain.gif' border=0>");
                V4Page.RenderLinkEnd(w);
                w.Write("</td>");
                w.Write("<td noWrap valign='top'>");

                V4Page.RenderLinkDoc(w, d.Id);

                w.Write(d.Number.Length > 0 ? Resx.GetString("lN") + " " + d.Number + " " : "");
                if (d.Date != DateTime.MinValue)
                {
                    w.Write(Resx.GetString("lD") + " " + d.Date.ToString("dd.MM.yyyy"));
                }
                V4Page.RenderLinkEnd(w);
                w.Write("</td>");
                w.Write("<td noWrap valign='top'style='PADDING-LEFT:5px;'>");
                if (d.Finished)
                {
                    w.Write(Resx.GetString("listComplete"));
                }
                else if (d.Signed)
                {
                    w.Write(Resx.GetString("listSigned"));
                }
                else
                {
                    w.Write(Resx.GetString("listNotSigned"));
                }
                w.Write("</td>");
                w.Write("<td align='right' noWrap valign='top' style='PADDING-LEFT:5px;'>");
                if (d.DocumentData.Money1.HasValue && d.DocumentData.Money1 > 0)
                {
                    V4Page.RenderNumber(w, d.DocumentData.Money1.Value.ToString(), curScale);
                }
                else
                {
                    w.Write("&nbsp;");
                }
                w.Write("</td>");
                w.Write("<td valign='top'>");
                w.Write(curSml);
                w.Write("</td>");
                w.Write("<td valign='top' style='PADDING-LEFT:5px;'>");
                w.Write(d.Description.Length == 0 ? "&nbsp;" : d.Description);
                w.Write("</td>");
                w.Write("</tr>");

                if (!dv[i]["КодРесурса1"].Equals(DBNull.Value) &&
                    (i < dv.Count - 1 && !dv[i + 1]["КодРесурса1"].Equals(dv[i]["КодРесурса1"]) ||
                     i == dv.Count - 1))
                {
                    dvSys.RowFilter = "КодРесурса1=" + dv[i]["КодРесурса1"];
                    if (dvSys.Count > 1)
                    {
                        sum = System.Convert.ToDecimal(dt.Compute("SUM(Money1)",
                                                                  "КодРесурса1=" + dv[i]["КодРесурса1"]));
                        w.Write("<tr>");
                        w.Write("<td colspan=3 align='right'>");
                        w.Write(Resx.GetString("listTotal") + ":");
                        w.Write("</td>");
                        w.Write("<td align='right' noWrap style='PADDING-LEFT:5px;'>");
                        V4Page.RenderNumber(w, Convert.Decimal2Str(sum, curScale), curScale);
                        w.Write("</td>");
                        w.Write("<td>");
                        w.Write(curSml);
                        w.Write("</td>");
                        w.Write("<td>");
                        w.Write("&nbsp;");
                        w.Write("</td>");
                        w.Write("</tr>");
                    }
                }

                curScale = 2;
                curSml   = "&nbsp;";
            }

            w.Write("</table>");
        }
예제 #11
0
        internal void TypeChanged(object sender, ProperyChangedEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.NewValue))
            {
                var _documType = _documTypeList.Find(l => l.Type == e.NewValue);
                _type     = _documType.Type;
                _field    = _documType.FieldId;
                _linkType = _documType.LinkType;


                if (_dtSequelTypes.Rows.Count == 0)
                {
                    return;
                }

                var dv = new DataView
                {
                    Table     = _dtSequelTypes,
                    Sort      = "ПорядокВыводаВОсновании",
                    RowFilter = "КодТипаДокументаОснования=" + CurrentDocType
                };

                var dtSd = Document.LoadSequelDocs(V4Page.Doc.Id);
                for (var i = 0; i < dv.Count; i++)
                {
                    var dtable = dtSd.Clone();
                    var query  = dtSd.AsEnumerable().Where(dr =>
                                                           dr.Field <int>("КодТипаДокумента").Equals(dv[i]["КодТипаДокументаВытекающего"]));
                    query.CopyToDataTable(dtable, LoadOption.OverwriteChanges);

                    if (dtable.Rows.Count == 0)
                    {
                        continue;
                    }

                    var dtp = V4Page.GetObjectById(typeof(DocType), _type) as DocType;
                    _linkedDocs = "";
                    if (!dtp.Unavailable)
                    {
                        _currentRadioCtrl.IsDisabled = _linkType != "12" && _linkType != "22";
                        if (_linkType == "12" || _linkType == "22")
                        {
                            var col = new StringCollection();
                            foreach (DataRow dr in dtable.Rows)
                            {
                                col.Add(dr["КодДокумента"].ToString());
                            }

                            _linkedDocs = Collection2Str(col);
                        }
                    }
                }

                _currentRadioCtrl.Value = "0";
                _currentRadioCtrl.Flush();
                _currentDbSelectCtrl.Value      = null;
                _currentDbSelectCtrl.IsDisabled = true;
                _docValue = null;
                _currentDbSelectCtrl.RenderNtf();
            }
        }