示例#1
0
        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));
        }
示例#2
0
 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())
     }));
 }
示例#3
0
 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())
     }));
 }
示例#4
0
        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));
        }
示例#5
0
        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();
        }
示例#6
0
        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()) }));
        }