This commit is contained in:
sardq 2024-05-29 19:06:49 +04:00
commit 77ae90ac08
6 changed files with 104 additions and 14 deletions

View File

@ -44,7 +44,7 @@ namespace FactoryBusinessLogic.BusinessLogics
_saveToPdf.CreateStorekeeperDoc(new StorekeeperPdfInfo _saveToPdf.CreateStorekeeperDoc(new StorekeeperPdfInfo
{ {
FileName = model.FileName, FileName = model.FileName,
Title = "Список станков", Title = "Список станков за период",
DateFrom = model.DateFrom!.Value, DateFrom = model.DateFrom!.Value,
DateTo = model.DateTo!.Value, DateTo = model.DateTo!.Value,
Machines = GetMachines(client, model) Machines = GetMachines(client, model)

View File

@ -16,7 +16,7 @@ namespace FactoryBusinessLogic.OfficePackage
}); });
CreateParagraph(new PdfParagraph CreateParagraph(new PdfParagraph
{ {
Text = $"с{ info.DateFrom.ToShortDateString() } по { info.DateTo.ToShortDateString() }", Style = "Normal", Text = $"с { info.DateFrom.ToShortDateString() } по { info.DateTo.ToShortDateString() }", Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Center ParagraphAlignment = PdfParagraphAlignmentType.Center
}); });
CreateTable(new List<string> { "3cm", "5cm", "5cm"}); CreateTable(new List<string> { "3cm", "5cm", "5cm"});

View File

@ -21,21 +21,10 @@ namespace FactoryBusinessLogic.OfficePackage
}); });
foreach (var ppp in info.ProductPlanProductions) foreach (var ppp in info.ProductPlanProductions)
{ {
var t = ppp.PlanProductions;
List<(string, WordTextProperties)> texts = new List<(string, WordTextProperties)> List<(string, WordTextProperties)> texts = new List<(string, WordTextProperties)>
{ {
(ppp.ProductName, new WordTextProperties { Bold = true, Size = "24", }) (ppp.ProductName, new WordTextProperties { Bold = true, Size = "24", })
}; };
foreach (var plan in ppp.PlanProductions)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(plan.ProductionName);
stringBuilder.Append(" — ");
stringBuilder.Append(plan.Count.ToString());
stringBuilder.Append(" — ");
stringBuilder.Append(plan.Deadline.ToString());
texts.Add((stringBuilder.ToString(), new WordTextProperties { Size = "24" }));
}
CreateParagraph(new WordParagraph CreateParagraph(new WordParagraph
{ {
Texts = texts, Texts = texts,
@ -45,6 +34,26 @@ namespace FactoryBusinessLogic.OfficePackage
JustificationType = WordJustificationType.Both JustificationType = WordJustificationType.Both
} }
}); });
foreach (var plan in ppp.PlanProductions)
{
texts = new List<(string, WordTextProperties)>();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(plan.ProductionName);
stringBuilder.Append(" — ");
stringBuilder.Append(plan.Count.ToString());
stringBuilder.Append(" — ");
stringBuilder.Append(plan.Deadline.ToString());
texts.Add((stringBuilder.ToString(), new WordTextProperties { Size = "24" }));
CreateParagraph(new WordParagraph
{
Texts = texts,
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Both
}
});
}
} }
SaveStorekeeperWord(info); SaveStorekeeperWord(info);
} }

View File

@ -415,6 +415,8 @@ namespace FactoryStorekeeperApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.DateFrom = datefrom;
ViewBag.DateTo = dateto;
var reports = storekeeperReportLogic.GetMachines( var reports = storekeeperReportLogic.GetMachines(
new ClientSearchModel new ClientSearchModel
{ {
@ -446,8 +448,51 @@ namespace FactoryStorekeeperApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.ids = products;
var report = storekeeperReportLogic.GetPlanProductionsByProduct(products); var report = storekeeperReportLogic.GetPlanProductionsByProduct(products);
return View(report); return View(report);
}
[HttpPost]
public IActionResult CreateWord(List<int> ids)
{
storekeeperReportLogic.SavePlanProductionsToWordFile(
new ReportBindingModel
{
FileName = "D:\\temp\\report.docx"
},
ids);
return PhysicalFile("D:\\temp\\report.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Отчет по изделиям.docx");
}
[HttpPost]
public IActionResult CreateExcel(List<int> ids)
{
storekeeperReportLogic.SavePlanProductionsToExcelFile(
new ReportBindingModel
{
FileName = "D:\\temp\\report.xlsx"
},
ids);
return PhysicalFile("D:\\temp\\report.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Отчет по изделиям.xlsx");
}
[HttpPost]
public IActionResult SendMail(DateTime datefrom, DateTime dateto)
{
storekeeperReportLogic.SaveMachinesToPdfFile(
new ClientSearchModel
{
Id = Client.client.Id
},
new ReportBindingModel
{
DateFrom = datefrom,
DateTo = dateto,
FileName="D:\\temp\\report.pdf"
});
// TODO: implement sending
throw new NotImplementedException();
} }
} }
} }

View File

@ -10,7 +10,9 @@
<h1 class="display-4">Список станков за период</h1> <h1 class="display-4">Список станков за период</h1>
</div> </div>
<form asp-controller="Report" method="post"> <form asp-controller="Home" asp-action="SendMail" method="post">
<input type="hidden" name="datefrom" readonly value="@(ViewBag.DateFrom)" />
<input type="hidden" name="dateto" readonly value="@(ViewBag.DateTo)" />
<button type="submit" class="btn btn-primary">Отправить отчет на почту</button> <button type="submit" class="btn btn-primary">Отправить отчет на почту</button>
</form> </form>

View File

@ -11,9 +11,25 @@
<div class="d-flex"> <div class="d-flex">
<form asp-controller="Home" asp-action="CreateWord" method="post"> <form asp-controller="Home" asp-action="CreateWord" method="post">
<div style="display: none;">
<select name="ids" multiple>
@foreach (var it in ViewBag.ids)
{
<option value="@(it)" selected="selected"></option>
}
</select>
</div>
<button type="submit" class="btn btn-primary me-3">Сгенерировать отчет в Word</button> <button type="submit" class="btn btn-primary me-3">Сгенерировать отчет в Word</button>
</form> </form>
<form asp-controller="Home" asp-action="CreateExcel" method="post"> <form asp-controller="Home" asp-action="CreateExcel" method="post">
<div style="display: none;">
<select name="ids" multiple>
@foreach (var it in ViewBag.ids)
{
<option value="@(it)" selected="selected"></option>
}
</select>
</div>
<button type="submit" class="btn btn-primary">Сгенерировать отчет в Excel</button> <button type="submit" class="btn btn-primary">Сгенерировать отчет в Excel</button>
</form> </form>
</div> </div>
@ -23,6 +39,8 @@
<tr> <tr>
<th>Изделие</th> <th>Изделие</th>
<th>План производства</th> <th>План производства</th>
<th>Количество</th>
<th>Срок</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -38,6 +56,22 @@
} }
</ul> </ul>
</td> </td>
<td>
<ul>
@foreach (var plan in product.PlanProductions)
{
<li>@plan.Count</li>
}
</ul>
</td>
<td>
<ul>
@foreach (var plan in product.PlanProductions)
{
<li>@plan.Deadline</li>
}
</ul>
</td>
</tr> </tr>
} }
</tbody> </tbody>