main.typ 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #import "/.template/lib/index.typ": document, profiles, recipient, party, signer, load-company
  2. #let profile-id = sys.inputs.at("profile", default: "letter")
  3. #let mode = sys.inputs.at("mode", default: "draft")
  4. #let company-id = sys.inputs.at("company", default: "test-company")
  5. #let company = load-company(company-id)
  6. #let addressee = recipient(company: "ООО «Проверка режима»")
  7. #let left = party(
  8. "left",
  9. "Исполнитель",
  10. company.legal.name,
  11. legal: company.legal,
  12. contacts: company.contacts,
  13. banking: company.banking,
  14. representative: signer(
  15. company.director.name,
  16. company.director.title,
  17. signature: company.resources.signature,
  18. stamp: company.resources.stamp,
  19. ),
  20. )
  21. #let right = party(
  22. "right",
  23. "Заказчик",
  24. "ООО «Проверка режима»",
  25. representative: signer("П.П. Проверяющий", "Директор"),
  26. )
  27. #let selected-profile = if profile-id == "report" {
  28. profiles.report(title: "Проверка режима выпуска", year: 2026)
  29. } else if profile-id == "letter" {
  30. profiles.letter(recipient: addressee, title: "Проверка режима выпуска")
  31. } else if profile-id == "commercial-offer" {
  32. profiles.commercial_offer(
  33. recipient: addressee,
  34. subject: "Проверка режима выпуска",
  35. amount: "100 000",
  36. currency: "руб.",
  37. )
  38. } else if profile-id == "contract" {
  39. profiles.contract(
  40. number: "MODE-1",
  41. date: "26.08.2026",
  42. parties: (left, right),
  43. sections: (
  44. profiles.contract_section("subject", "Предмет договора", [Проверка режима выпуска.]),
  45. ),
  46. )
  47. } else {
  48. panic("Неизвестный тестовый profile: " + profile-id)
  49. }
  50. #show: document.with(
  51. company: company,
  52. profile: selected-profile,
  53. options: (mode: mode, watermark: if mode == "draft" { "ЧЕРНОВИК" } else { none }),
  54. )
  55. Документ собран в режиме #mode для профиля #profile-id.