This commit is contained in:
Deploy 2026-05-18 16:13:57 +05:00
commit 9d50af0f92
5 changed files with 304 additions and 0 deletions

View File

@ -0,0 +1 @@
import{I as j,a as p,j as e,V as d,B as F,P as c,b as v}from"./index-C0z7HWS8.js";import{Document as C,Page as b,Text as s,View as l,StyleSheet as D}from"./react-pdf.browser-M7AG2iee.js";const u=D.create({page:{padding:40,fontFamily:"Helvetica",fontSize:10,color:"#111"},title:{fontSize:18,fontWeight:"bold",marginBottom:4},meta:{color:"#555",fontSize:9,marginBottom:2},row:{flexDirection:"row",borderBottom:"1 solid #e5e7eb",paddingVertical:6},col1:{flex:3},col2:{flex:1,textAlign:"right"},total:{flexDirection:"row",justifyContent:"flex-end",marginTop:20},totalLabel:{fontSize:12,fontWeight:"bold"},vat:{fontSize:9,color:"#555",textAlign:"right",marginTop:4}});function o(t){return new Intl.NumberFormat("ru-RU",{minimumFractionDigits:2,maximumFractionDigits:2}).format(parseFloat(t))+" ₸"}function B({cfg:t,total:x,docNumber:m,generatedAt:n}){const a=j.find(r=>t.serversCount>=r.minServers&&t.serversCount<=r.maxServers),h=p.find(r=>t.serversCount>=r.minServers&&t.serversCount<=r.maxServers),i=new Date(n);return i.setDate(i.getDate()+30),e.jsx(C,{children:e.jsxs(b,{size:"A4",style:u.page,children:[e.jsx(s,{style:u.title,children:"al-farabium — Коммерческое предложение"}),e.jsxs(s,{style:u.meta,children:["№ ",m," от ",new Date(n).toLocaleDateString("ru-RU")]}),e.jsxs(s,{style:u.meta,children:["Действительно до: ",i.toLocaleDateString("ru-RU")]}),e.jsxs(l,{style:{marginTop:16},children:[e.jsxs(l,{style:[u.row,{borderBottom:"2 solid #111"}],children:[e.jsx(s,{style:[u.col1,{fontWeight:"bold"}],children:"Услуга"}),e.jsx(s,{style:[u.col2,{fontWeight:"bold"}],children:"Сумма"})]}),e.jsxs(l,{style:u.row,children:[e.jsxs(s,{style:u.col1,children:["Инфраструктура (",t.serversCount," × ",o(a.pricePerServer.toFixed(2)),")"]}),e.jsx(s,{style:u.col2,children:o(a.pricePerServer.mul(t.serversCount).toFixed(2))})]}),e.jsxs(l,{style:u.row,children:[e.jsx(s,{style:u.col1,children:"Bare Metal GPU B300 Server"}),e.jsx(s,{style:u.col2,children:o(h.price.toFixed(2))})]}),t.vgpuCards>0&&e.jsxs(l,{style:u.row,children:[e.jsxs(s,{style:u.col1,children:["Virtual/Cloud GPU (",t.vgpuCards," × ",o(d[t.vgpuCards].toFixed(2)),")"]}),e.jsx(s,{style:u.col2,children:o(d[t.vgpuCards].mul(t.vgpuCards).toFixed(2))})]}),t.backupGb>0&&e.jsxs(l,{style:u.row,children:[e.jsxs(s,{style:u.col1,children:["Хранилище (",t.backupGb," ГБ × 58 ₸)"]}),e.jsx(s,{style:u.col2,children:o(F.mul(t.backupGb).toFixed(2))})]}),t.ports.map((r,y)=>e.jsxs(l,{style:u.row,children:[e.jsxs(s,{style:u.col1,children:["Ethernet порт #",y+1," (",c[r.speed].label,")"]}),e.jsx(s,{style:u.col2,children:o(c[r.speed].price.toFixed(2))})]},r.id)),e.jsxs(l,{style:u.row,children:[e.jsxs(s,{style:u.col1,children:["Пул IP-адресов /",t.ipPoolSize]}),e.jsx(s,{style:u.col2,children:o(v[t.ipPoolSize].toFixed(2))})]})]}),e.jsx(l,{style:u.total,children:e.jsxs(s,{style:u.totalLabel,children:["Итого: ",o(x)]})}),e.jsx(s,{style:u.vat,children:"Включая НДС"})]})})}export{B as QuoteDocument};

63
assets/index-C0z7HWS8.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

13
index.html Normal file
View File

@ -0,0 +1,13 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>al-farabium — GPU Cloud Конфигуратор</title>
<script type="module" crossorigin src="./assets/index-C0z7HWS8.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-mxppCgjU.css">
</head>
<body>
<div id="root"></div>
</body>
</html>