Пример #1
0
            public static MaterialReportDTOCollection GetAllWaiveMaterialsByDate(long CaseID, DateTime?DateFrom, DateTime?DateTo, long?ContractID, long?ActivityID, long?PartID, long?MaterialID, bool?IsOrdered)
            {
                MaterialReportDTOCollection c = new MaterialReportDTOCollection();

                SqlCommand             cmd    = new SqlCommand();
                SqlParameterCollection Params = cmd.Parameters;

                Params.Add(new SqlParameter("CaseID", CaseID));
                if (DateFrom != null)
                {
                    Params.Add(new SqlParameter("DateFrom", DateFrom));
                }
                if (DateTo != null)
                {
                    Params.Add(new SqlParameter("DateTo", DateTo));
                }
                if (ContractID != null)
                {
                    Params.Add(new SqlParameter("ContractID", ContractID));
                }
                if (ActivityID != null)
                {
                    Params.Add(new SqlParameter("ActivityID", ActivityID));
                }
                if (PartID != null)
                {
                    Params.Add(new SqlParameter("PartID", PartID));
                }
                if (MaterialID != null)
                {
                    Params.Add(new SqlParameter("MaterialID", MaterialID));
                }
                if (IsOrdered != null)
                {
                    Params.Add(new SqlParameter("IsOrdered", IsOrdered));
                }


                DataTable dt = Execute.FillDataTable(StoredProcedures.GetAllWaiveMaterialsByDate, Params);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow row in dt.Rows)
                    {
                        MaterialReportDTO o = new MaterialReportDTO();
                        LoadMaterialDTOByReader(row, o);
                        c.Add(o);
                    }
                }

                return(c);
            }
Пример #2
0
    protected void btnGetReport_Click(object sender, EventArgs e)
    {
        DateTime dateFrom   = !String.IsNullOrEmpty(txtDateFrom.Text) ? Convert.ToDateTime(txtDateFrom.Text) : Convert.ToDateTime("1790-01-01 00:00:00");
        DateTime dateTo     = !String.IsNullOrEmpty(txtDateTo.Text) ? Convert.ToDateTime(txtDateTo.Text) : DateTime.MaxValue.AddYears(-1);
        Int64    materialID = Convert.ToInt64(ddlMaterial.SelectedValue);
        Int64    activityID = Convert.ToInt64(ddlActivity.SelectedValue);
        Int64    partID     = Convert.ToInt64(ddlPart.SelectedValue);
        string   title      = "";

        try
        {
            TotalPriceReportDTOCollection prices    = new TotalPriceReportDTOCollection();
            MaterialReportDTOCollection   materials = new MaterialReportDTOCollection();

            if (materialID > 0)
            {
                prices    = TotalPriceReportDTO.Utils.GetTotalPricesGroupedByMonthByMaterialID(caseID, dateFrom, dateTo, materialID);
                materials = MaterialReportDTO.Utils.GetAllWaiveMaterialsByDate(caseID, dateFrom, dateTo, null, null, null, materialID, null);
                title     = new Material(materialID).Title;
            }
            else if (partID > 0)
            {
                prices = TotalPriceReportDTO.Utils.GetTotalPricesGroupedByMonthByPartID(caseID, dateFrom, dateTo, partID);
                title  = new Part(partID).Title;
            }
            else if (activityID > 0)
            {
                prices = TotalPriceReportDTO.Utils.GetTotalPricesGroupedByMonthByActivityID(caseID, dateFrom, dateTo, activityID);
                title  = new Activity(activityID).Title;
            }
            else
            {
                prices = TotalPriceReportDTO.Utils.GetTotalPricesGroupedByMonth(caseID, dateFrom, dateTo);
                title  = "Total";
            }

            renderPrices(prices, title);



            RenderChartScript(materials);
        }
        catch (Exception ex)
        {
            Response.Write(ex);
        }
    }
Пример #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        materialID = Convert.ToInt64(Request.QueryString["materialid"]);
        caseID     = Convert.ToInt64(Request.QueryString["caseid"]);

        Material material = new Material(materialID);

        litHeader.Text = material.Title;

        linkDetails.NavigateUrl = Urls.MaterialUrl + "?caseid=" + caseID + "&materialid=" + materialID + "&pagetype=material";

        if (!Page.IsPostBack)
        {
        }



        MaterialReportDTOCollection materials = MaterialReportDTO.Utils.GetAllWaiveMaterialsByDate(caseID, null, null, null, null, null, materialID, null);

        RenderChartScript(materials);
    }
Пример #4
0
    private void RenderChartScript(MaterialReportDTOCollection materials)
    {
        DateTime startDate = Convert.ToDateTime(materials[0].Year + " " + materials[0].Month);
        DateTime endDate   = Convert.ToDateTime(materials[materials.Count - 1].Year + " " + materials[materials.Count - 1].Month);

        IEnumerable <long> ids = materials.Select(m => m.ID).Distinct();

        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter writer = new HtmlTextWriter(sw))
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.WriteLine("$(document).ready(function() {");
                writer.WriteLine("var ctx = $('#reportMaterialChart');");
                writer.WriteLine("");
                writer.WriteLine("var myChart = new Chart(ctx, {");
                writer.WriteLine("type: 'line',");
                writer.WriteLine("data: {");
                writer.Write("labels: [");

                foreach (var date in EachMonth(startDate, endDate))
                {
                    writer.Write(" '" + date.Month + "/" + date.Year + "',");
                }
                writer.WriteLine("],");
                writer.WriteLine("datasets: [");

                long id    = 0;
                bool first = true;

                foreach (var materialDTO in materials.OrderBy(m => m.ID))
                {
                    if (id != materialDTO.ID)
                    {
                        if (!first)
                        {
                            writer.WriteLine("},");
                        }

                        writer.WriteLine("{label: '" + materialDTO.Title + "',");
                        writer.WriteLine("borderColor: 'rgba(30,136,229, 0.8)',");
                        writer.WriteLine("backgroundColor: 'rgba(30,136,229, 0.1)',");
                        RenderDataArray(writer, startDate, endDate, ids, materialDTO.ID, materials);
                    }
                    first = false;
                    id    = materialDTO.ID;
                }
                writer.WriteLine("}");
                writer.WriteLine("]},");
                writer.WriteLine("options: {");
                writer.WriteLine("scales: {");
                writer.WriteLine("xAxes: [{");

                writer.WriteLine("stacked: true");
                writer.WriteLine("}],");
                writer.WriteLine("yAxes: [{");
                writer.WriteLine("stacked: true");
                writer.WriteLine("}]");
                writer.WriteLine("},");
                writer.WriteLine("legend:");
                writer.WriteLine("{");
                writer.WriteLine("display: false");
                writer.WriteLine("}");
                writer.WriteLine("}");
                writer.WriteLine("});");
                writer.WriteLine("});");
                writer.RenderEndTag(); // Script
            }

            litChartScript.Text = sw.ToString();
        }
        startDate.AddMonths(1);
    }
Пример #5
0
    public HtmlTextWriter RenderDataArray(HtmlTextWriter writer, DateTime start, DateTime end, IEnumerable <long> ids, long ID, MaterialReportDTOCollection materials)
    {
        bool first = true;

        writer.Write("data:[");
        foreach (DateTime date in EachMonth(start, end))
        {
            if (materials.Where(m => m.ID == ID && m.Year == date.Year && m.Month == date.Month).Count() > 0)
            {
                foreach (var materialDTO in materials.Where(m => m.ID == ID && m.Year == date.Year && m.Month == date.Month))
                {
                    writer.Write((!first ? ", " : "") + materialDTO.Totalprice.ToString("N2").Replace(".", "").Replace(",", "."));
                    first = false;
                }
            }
            else
            {
                writer.Write((!first ? ", " : "") + "0.00");
                first = false;
            }
        }

        writer.WriteLine("],");
        return(writer);
    }
Пример #6
0
    public HtmlTextWriter RenderColorArray(HtmlTextWriter writer, DateTime start, DateTime end, IEnumerable <long> ids, long ID, MaterialReportDTOCollection materials, string Color)
    {
        bool first = true;

        writer.Write("backgroundColor:[");
        foreach (DateTime date in EachMonth(start, end))
        {
            writer.Write((!first ? ", " : "") + Color);
            first = false;
        }

        writer.WriteLine("]");
        return(writer);
    }