private void ActDocumnet(Body body, ActGenerationViewModel model) { body.Append(new Paragraph(new Run(new Break() { Type = BreakValues.Page }))); body.Append(AddParagraph(new Run[] { AddText($"АКТ №1", BoldTextDefault(28)) }, justify: JustificationValues.Center)); body.Append(AddParagraph(new Run[] { AddText($"приймання-передачі послуг за Договором № {model.Profile.ContractNumber} від {Convert.ToDateTime(model.Profile.ContractDate).ToString("dd MMMM yyyy", culture)} року", BoldTextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Даний акт складений у м.Київ {Convert.ToDateTime(model.WorkCompletionDate).ToString("dd MMMM yyyy", culture)} року.", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Повноважним представником ТОВ «Делойт і Туш», що є юридичною особою відповідно до законодавства України, надалі: «Замовник», в особі {model.Assigner.PositionInAblative} {model.Assigner.FullnameInAblative}, {model.Assigner.OperateBasis}, та фізичною особою-підприємцем, {model.Profile.FullnameInAblative}, що є громадянином України, надалі «Виконавець», про те, що Виконавець фактично надав послуги, а Замовник прийняв послуги, перелік і вартість яких зазначені нижче.", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); var tableRows = new List <TableRow> { TableHeader() }; foreach (var service in model.Services) { tableRows.Add(SingleRow(new List <Run> { AddText($"{service.Description}", TextDefault()), AddText($"година", TextDefault()), AddText($"{service.Hours}", TextDefault()), AddText($"{Math.Round(float.Parse(model.CustomUSDRate, CultureInfo.InvariantCulture) * UsdExchangeRate,2)}", TextDefault()), AddText($"{Math.Round(float.Parse(model.CustomUSDRate, CultureInfo.InvariantCulture) * UsdExchangeRate * service.Hours,2)}", TextDefault()) })); } tableRows.AddRange(new TableRow[] { TableBottomTotal(model), TableBottom(model) }); body.Append(AddTable(tableRows)); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Послуги надані вчасно", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Дійсний акт складений на підставі Договору {model.Profile.ContractNumber} від {Convert.ToDateTime(model.Profile.ContractDate).ToString("dd MMMM yyyy")} року і є невід’ємною частиною цієї Угоди.", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Підлягає до виплати ", TextDefault()), AddText($"{money.Fraction.ToString("### ### ###")}", BoldTextDefault()), AddText($" ({money.FractionDescription}) ", TextDefault()), AddText($"{money.Cents.ToString()}", BoldTextDefault()), AddText($" ({money.CentsDescription}) ", TextDefault()), AddText($"копійок", TextDefault()), AddText($" без ПДВ.", BoldTextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"На підставі цього Акту фінансовому відділу ТОВ «Делойт і Туш» зробити розрахунок і виплату винагороди шляхом перерахування на розрахунковий рахунок Виконавця.", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Складено в двох дійсних примірниках українською мовою.", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"АКТ ПІДПИСАЛИ", CurveTextDefault()) })); body.Append(AddTable(new List <TableRow> { SubscribersHeader(), EmptyRow(2), SubscribersPosition($"{model.Assigner.Position}"), SubscribersFullname($"{model.Assigner.Lastname} {model.Assigner.Firstname[0]}. {model.Assigner.Middlename[0]}.", $"{model.Profile.Lastname} {model.Profile.Firstname[0]}. {model.Profile.Middlename[0]}.") }, false)); }
private TableRow TableBottom(ActGenerationViewModel model) { return(SingleRow(new List <Run> { AddText($"Загальна сума без ПДВ", BoldTextDefault()), AddText($"", TextDefault()), AddText($"", BoldTextDefault()), AddText($"", BoldTextDefault()), AddText($"{Math.Round(model.TotalPay, 2)}", BoldTextDefault()) })); }
private TableRow TableBottomTotal(ActGenerationViewModel model) { return(SingleRow(new List <Run> { AddText($"Всього", BoldTextDefault()), AddText($"година", TextDefault()), AddText($"{model.Services.Sum(service => service.Hours)}", BoldTextDefault()), AddText($"", TextDefault()), AddText($"{Math.Round(model.TotalPay,2)}", BoldTextDefault()) })); }
public string Generate(ActGenerationViewModel model) { string filepath; money = _moneyToStr.ConvertValueExtended(model.TotalPay); UsdExchangeRate = (float)Math.Round(_currencyHandler.GetUsdExchangeByDate(model.WorkCompletionDate).Result.Data.ExchangeRate, 2); using (MemoryStream mem = new MemoryStream()) { using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true)) { MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); mainPart.Document = new DocumentFormat.OpenXml.Wordprocessing.Document(); Body body = new Body(); SectionProperties sectionProps = new SectionProperties(); PageMargin pageMargin = new PageMargin() { Top = 756, Right = 1008, Bottom = 756, Left = 1512 }; sectionProps.Append(pageMargin); body.Append(sectionProps); BillDocument(body, model); ActDocumnet(body, model); ActDocumnet(body, model); mainPart.Document.AppendChild(body); } mem.Seek(0, SeekOrigin.Begin); filepath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\acts", $"{DateTime.Now.ToString("MM/dd/yyyy HH/mm")} - {model.Profile.Lastname} {model.Profile.Firstname}.docx"); using (FileStream file = new FileStream(filepath, FileMode.Create, FileAccess.Write)) { mem.CopyTo(file); } } return(Path.GetFileName(filepath)); }
private void SaveDocumentCreationInfo(ActGenerationViewModel model) { var document = new Models.Document() { CreationDate = DateTime.Now, WorkCompletionDate = model.WorkCompletionDate, Assigner = _mapper.Map <Assigner>(model.Assigner), Services = new List <DocumentService>(), Creator = CurrentUser }; foreach (var service in model.Services) { document.Services.Add(new DocumentService() { Document = document, Service = service }); } _db.Documents.Add(document); _db.SaveChanges(); }
private void BillDocument(Body body, ActGenerationViewModel model) { body.Append(AddParagraph(new Run[] { AddText($"РАХУНОК-ФАКТУРА №1", BoldTextDefault(28)) })); body.Append(AddParagraph(new Run[] { AddText($"Від {model.WorkCompletionDate.ToString("dd MMMM yyyy", culture)} р.", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Постачальник: ", BoldTextDefault()), AddText($"ФОП {model.Profile.Lastname} {model.Profile.Firstname} {model.Profile.Middlename}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Адреса: ", BoldTextDefault()), AddText($"{model.Profile.AddressIndex}, {model.Profile.AddressStreet}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Р/Рахунок: ", BoldTextDefault()), AddText($"{model.Profile.AccountNumber}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Банк отримувач: ", BoldTextDefault()), AddText($"{model.Profile.RecipientBank}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"ЄДРПОУ: ", BoldTextDefault()), AddText($"{model.Profile.RegisterNumber}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"МФО: ", BoldTextDefault()), AddText($"{model.Profile.IBAN}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Призначення платежу: ", BoldTextDefault()), AddText($"{model.Profile.PaymentPurpose}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"ІПН: ", BoldTextDefault()), AddText($"{model.Profile.VAT}", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Платник: ", BoldTextDefault()), AddText("ТОВ «Делойт і Туш»", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); var tableRows = new List <TableRow> { TableHeader() }; foreach (var service in model.Services) { tableRows.Add(SingleRow(new List <Run> { AddText($"{service.Description}", TextDefault()), AddText($"година", TextDefault()), AddText($"{service.Hours}", TextDefault()), AddText($"{Math.Round(float.Parse(model.CustomUSDRate, CultureInfo.InvariantCulture) * UsdExchangeRate,2)}", TextDefault()), AddText($"{Math.Round(float.Parse(model.CustomUSDRate, CultureInfo.InvariantCulture) * UsdExchangeRate * service.Hours,2)}", TextDefault()) })); } tableRows.AddRange(new TableRow[] { TableBottomTotal(model), TableBottom(model) }); body.Append(AddTable(tableRows)); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"Загальна сума, що підлягає оплаті ", TextDefault()), AddText($"{money.Fraction.ToString("### ### ###")}", BoldTextDefault()), AddText($" ({money.FractionDescription}) ", TextDefault()), AddText($"{money.Cents.ToString()}", BoldTextDefault()), AddText($" ({money.CentsDescription}) ", TextDefault()), AddText($"копійок", TextDefault()), AddText($" без ПДВ.", BoldTextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"", TextDefault()) })); body.Append(AddParagraph(new Run[] { AddText($"ФОП {model.Profile.Lastname} {model.Profile.Firstname} {model.Profile.Middlename} (_____________________________)", TextDefault()) })); }