/// <summary>
        ///     Обработка клиентских команд
        /// </summary>
        /// <param name="cmd">Команды</param>
        /// <param name="param">Параметры</param>
        protected override void ProcessCommand(string cmd, NameValueCollection param)
        {
            switch (cmd)
            {
            case "SaveAndClose":
                SaveData(true);
                break;

            case "SaveData":
                SaveData(false);
                break;

            case "DeleteData":
                DeleteData();
                break;

            case "CloseWindow":
                JS.Write("parent.resources_Records_Close();");
                break;

            case "DialogCostRecalc_Yes":
                var d_kol = factUsl.Count > 0 && !factUsl.Count.Equals("0") ? factUsl.Count : 1;

                var     _costOutNDS  = factUsl.CostOutNDS;
                decimal _summaOutNDS = 0;
                decimal _summaNDS    = 0;
                decimal _vsego       = 0;
                var     stavka       = factUsl.StavkaNDS;
                var     prst         = (decimal)stavka.Величина * 100;
                var     scale        = Document != null && !Document.Unavailable ? Document.CurrencyScale : 2;

                _vsego       = Convert.Round((decimal)(d_kol * (double)_costOutNDS), scale);
                _summaNDS    = Convert.Round(_vsego / (100 + prst) * prst, scale);
                _summaOutNDS = _vsego - _summaNDS;
                _costOutNDS  = Convert.Round((decimal)((double)_summaOutNDS / d_kol), scale * 2);

                var maxscale =
                    factUsl.Resource.GetScale4Unit(efUnit.Value, 3, Document.PlatelschikField.Value.ToString());
                factUsl.Count = d_kol;
                efCount.Value = Convert.Decimal2Str((decimal)factUsl.Count, maxscale, false);

                factUsl.CostOutNDS  = _costOutNDS;
                efCostOutNDS.Value  = Convert.Decimal2Str(factUsl.CostOutNDS, scale * 2, false);
                factUsl.SummaOutNDS = Convert.Round(_summaOutNDS, scale);
                efSummaOutNDS.Value = Convert.Decimal2Str(factUsl.SummaOutNDS, scale, false);
                factUsl.SummaNDS    = Convert.Round(_summaNDS, scale);
                efSummaNDS.Value    = Convert.Decimal2Str(factUsl.SummaNDS, scale, false);
                factUsl.Vsego       = Convert.Round(_vsego, scale);
                efVsego.Value       = Convert.Decimal2Str(factUsl.Vsego, scale, false);

                break;

            case "DialogCostRecalc_No":
                ShowCalcMessage(factUsl.Recalc(param["value"], param["ndx"], param["name"], "0", Scale));
                break;

            case "DialogRecalc_Yes":
                ShowCalcMessage(factUsl.Recalc(param["value"], param["ndx"], param["name"], "0", Scale));
                break;

            case "DialogRecalc_Recalc":
                ShowCalcMessage(factUsl.Recalc(param["value"], param["ndx"], param["name"], "1", Scale));
                break;

            case "DialogRecalc_No":
                ShowCalcMessage(factUsl.Recalc(param["value"], param["ndx"], param["name"], "2", Scale));
                break;

            case "DialogRecalc_Change":
                ShowCalcMessage(factUsl.Recalc(param["value"], param["ndx"], param["name"], "3", Scale));
                break;
            }
        }
Example #2
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>");
        }