老闆、合夥人永遠看得到全部;員工看得到什麼照下面的「等級」;靠行第二階段才能登入。名字、身分、開通改了會馬上存。不想讓某人再登入,把「開通」取消勾就好(帳號不會刪掉)。
| 名字 | 身分 | 員工等級 | 開通 | 最後登入 | 密碼 | |
|---|---|---|---|---|---|---|
| {{ u.email }}(你自己) | {{ u.role==='boss'||u.role==='partner' ? '全部看得到' : '-' }} | {{ u.last_sign_in_at ? new Date(u.last_sign_in_at).toLocaleString('zh-TW',{hour12:false}) : '還沒登入過' }} | ||||
| 沒有帳號資料 | ||||||
打勾 = 看得到,沒打勾 = 藏起來。新開的員工帳號如果沒選等級,先用 。
| 項目 | {{ levelUsers(l.id).map(u=>u.name||u.email).join('、') || '沒有人' }} |
|---|---|
| {{ it[1] }} {{ it[2] }} |
首頁、案件列表、工單、給工廠的單、訂單追蹤、出貨單、紙紮,大家都能用。⚠ 目前是「畫面上藏起來」,懂電腦的人還是有辦法查到資料;資料庫上鎖要等第二階段(開靠行帳號前會做)。
還沒有出貨地址,報價單會用公司地址。
找不到符合的客戶。
垃圾桶({{ custTrash.length }})
新增客戶時,簡稱會自動去掉「股份有限公司、有限公司、企業社」,可以自己改。之後會再加:客戶的歷史訂單、價格是否鎖定(奠品)、靠行業務的客戶權限。
{{ x.mode==='底價制' ? '底價制:真實成本 × (1 + 加成%) = 他看到的成本(底價),他賣多少減底價就是他的利潤。他看不到天旭的真實成本。' : x.mode==='分潤制' ? '分潤制:(賣價 − 成本) × 分潤% = 他的利潤。' : '代打單:他不會打單,天旭幫他打;成本先加服務費,再看他報多少、照分潤% 分。' }}
例:當月利潤 16 萬,級距 10 萬 10%、15 萬 15%、20 萬 20%。整筆跳級:16 萬 × 15% = 24,000。分段累進:(15 萬 − 10 萬) × 10% + (16 萬 − 15 萬) × 15% = 6,500。
負責的客戶:{{ customers.filter(c=>c.sales===x.id && !c.deleted).map(c=>c.short||c.name).join('、') || '(還沒有,在客戶資料的「負責業務」選他)' }}
垃圾桶({{ staff.filter(x=>x.deleted).length }})
試做版先把人和設定記下來;「登入後只看得到自己的客戶和案件、看不到真實成本」要等放上雲端、有登入功能才會真的生效。之後也會在這裡設權限等級(A、B、C 級)。
還沒有廠商勾「{{ vjob }}」,請在下面的表格勾。
「原料」是最源頭的材料:紙張、白卡、灰銅、灰紙板、PVC 都算。一家廠商可以勾好幾種工作,例如柏豐勾「印刷」和「上光」,兩個地方都會出現。估價單的選單最下面有「⋯ 顯示全部廠商」,臨時要找沒勾的廠商也選得到。
| 編號 | 簡稱 | {{ j }} | 不常用 | 要加 5% 稅 | 結帳日 | 算哪個月 | 月結天數 | 匯款帳號 |
|---|---|---|---|---|---|---|---|---|
| {{ v.id }} | 號 | 天 |
新增的廠商「要加 5% 稅」預設不勾,會收的再勾。富美 M81、惠民 M82、家速 M83、金漾 M84 是暫定編號,正式版照 Ragic 的廠商編號。家速、金漾設成「不常用」,資料照樣保留,要用時一樣選得到(牌價之後再建)。結帳日:例如 25 號=上個月 26 號到這個月 25 號算這個月的帳(預設 25 號)。算哪個月:大部分廠商照發工單的日期算;有些廠商照做完的日期算,選「照完成日」的,工序按「完成」才會出現在對帳。月結天數:帳單那個月的月底再過幾天要付(預設 30 天,例:11 月的帳 12/30 付),付款頁用這個算該付日期。匯款帳號:付款時會顯示出來。之後這裡還會加聯絡人。
灰底數字都可以直接改。正式版改價時會「新增一版」並填從哪天開始用,舊的估價單保留當時的價錢、不會被改到;試做版先直接改目前這一版(改了會自動存檔)。
| 勾 | 停售 | 紙種 | 算法 | 折數 | 磅價 | 低克重另價 | 銅版加價 | 磅數 | 尺寸 | 絲向 | 備註 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ it.kind }}停售手打加入 ✍ {{ t }} |
{{ it.type==='card' ? '令牌價 × 折數' : it.type==='sheet' ? '張價 × 折數' : '磅價' }} 特規磅價 +{{ it.spAdd }} 只有捲筒 |
% | {{ it.low.upto }}g 以下 | {{ it.coatAdd ? '有' : '' }} | {{ it.weights.join('、') }} | {{ it.sizes.join('、') }} |
垃圾桶({{ paperTrash.filter(t=>t.vendorId===pv).length }})
停售:紙行賣完、不再進貨(例如晶彩白卡不再進口)就勾,估價單選紙時就看不到,舊單照樣保留當時的價錢;又進貨了取消勾就好。🗑 刪除:打錯、根本不要的才刪,會丟到垃圾桶,可以救回。
絲向:尺寸後面那個數字就是平行絲向,例 31"×43"=平行 43、43"×31"=平行 31。「兩種都有」估價單可以選 31×43 或 43×31;「只有表上這種」就只能選表上寫的那個方向。
折數:40% 就是 4 折。磅價算法:寬(吋) × 長(吋) × 克重 × 磅價 ÷ 1405 = 每令價。每張=每令 ÷ 500,無條件進位到 0.1 元。
| 尺寸\{{ tb.u }} | {{ g }} |
|---|---|
| {{ sz.replace('x','"×') }}" |
| 捲筒寬(吋) | 最少幾令 | 未滿幾令要加收 | 加收多少 | 裁長最短(公分) | 超過幾公分加棧板費 | 棧板費 | |
|---|---|---|---|---|---|---|---|
| {{ k==='card' ? '白卡' : '灰銅' }} |
| 從幾{{ col.u }}起 | 單價 | |
|---|---|---|
| 特別色種類\面積 | {{ a }} |
|---|---|
| {{ k }} | 色 |
| 種類 | 每才單價 | 每張最低(不足 4K) | 基本價 |
|---|---|---|---|
| {{ name }} |
| 種類 | {{ k }} {{ sz.join('×') }} | 基本價 |
|---|---|---|
| {{ name }}({{ it.alias }}) |
開數尺寸是台寸。空白=這家沒有這個開數的價錢,會用面積最接近的開數換算。
「紅字」選哪一條,報價單上那一條就用紅字(現在是第 5 條:有效期限和不含稅)。正式版這些設定會存起來,所有人共用;之後也會在這裡放大小章圖檔。
出貨時,還沒用掉的訂金會自動從那次出貨的應收扣掉;出貨後客人再付的尾款,到「🧾 收款」登記。
| 項目 | 最少需要 | 實際軋型數 | 多出(備品) | 這塊上面有 |
|---|---|---|---|---|
| {{ r.name }} | {{ fmt(r.min) }} | 還沒填(先當 0)不夠 {{ fmt(-r.spare) }}{{ fmt(r.spare) }} | {{ r.note }} |
建立後會自動加進「要收錢的單」:應收 {{ money(shipPreview.amount) }}{{ orderMoney.depLeft ? ',先扣訂金 ' + money(Math.min(orderMoney.depLeft, shipPreview.amount)) + ',還要收 ' + money(Math.max(0, shipPreview.amount - orderMoney.depLeft)) : '' }}{{ !caseShips.length && onetimeSep(woPlan()) ? '(含另計費用)' : '' }},該收日期 {{ shipPreview.due }}({{ termText(curCust) }})。一次出貨算一筆,不管分幾個地點。
| 出貨單號 | 日期 | 送到(各幾個) | 合計 | 方式 | 應收 | 該收日期 | |
|---|---|---|---|---|---|---|---|
| {{ x.id }} | {{ x.date }} | {{ x.stops.map(y => stopName(y) + ' ' + fmt(y.qty) + (y.spare ? '+備品' + fmt(y.spare) : '')).join('、') }} | {{ fmt(x.qty) }} | {{ x.method }} | {{ money(x.amount) }} | {{ ledger.find(e=>e.no===x.id)?.dueDate }}已收款 |
這張訂單還沒有出貨。
| 客戶 | {{ (customers.find(c=>c.id===shipPrint.customerId)||{}).name }} | ||
|---|---|---|---|
| 送貨地點 | 【{{ y.addr.short }}】{{ y.addr.addr }} | ||
| 收貨人 | {{ y.addr.contact }} | 電話 | {{ y.addr.tel }} |
| 送貨方式 | {{ shipPrint.method }} | 訂單號 | W{{ shipPrint.caseNo }} |
| 品名 | 數量 | 備品 | 備註 |
|---|---|---|---|
| {{ shipPrint.item }} | {{ fmt(y.qty) }} | {{ y.spare ? fmt(y.spare) : '' }} | {{ y.note }} |
| 主體版面 | 應出(張) | 備品 | 實出 |
|---|---|---|---|
| {{ x.product }} {{ x.part }} | {{ fmt(x.need) }} | {{ x.spare ? (x.spare>0 ? fmt(x.spare) : '不夠 ' + fmt(-x.spare)) : '' }} | {{ fmt(x.ship) }} |
| 裁開區 | 塊數 | 零件 | 一塊幾個 | 需要 | 實出 | 多(備品) |
|---|---|---|---|---|---|---|
| {{ z.zone }} | {{ fmt(z.blocks) }} 含備品 {{ fmt(z.blocks - z.base) }} |
{{ it.part }} ({{ it.multi }} 都有,合起來算) | {{ it.per }} | {{ it.multi && !it.first ? '↑' : (it.need ? fmt(it.need) : '—') }} | {{ fmt(it.out) }} 合計 {{ fmt(it.totalOut) }} |
{{ it.multi && !it.last ? '↓' : (it.extra<0 ? '不夠 ' + fmt(-it.extra) : fmt(it.extra)) }} |
| 材料/特殊/共用 | 類型 | 數量 |
|---|---|---|
| {{ x.product }} {{ x.part }} | {{ x.type }} | {{ x.qty.toLocaleString('zh-TW') }} |
| 地點 | 地址/收貨人 | 數量 | 備品 | 備註 | |
|---|---|---|---|---|---|
| {{ String.fromCharCode(65+yi) }} | {{ stopName(y) }} | {{ y.addr.addr }} {{ y.addr.contact }} {{ y.addr.tel }} | {{ fmt(y.qty) }} | {{ y.spare ? fmt(y.spare) : '' }} | {{ y.note }} |
| 這次合計 | {{ fmt(shipPrint.qty) }} | {{ shipPrint.stops.reduce((t,y)=>t+(y.spare||0),0) ? fmt(shipPrint.stops.reduce((t,y)=>t+(y.spare||0),0)) : '' }} | |||
| 裁開區 | 最少要軋 | 這塊上面有(一塊幾個) |
|---|---|---|
| {{ z.zone }} | {{ fmt(z.min) }} | {{ z.content }} |
| 產品 | 版面 | 張數 |
|---|---|---|
| {{ x.product }} | {{ x.part }}(叫 PVC 軋型)(一起印) | {{ fmt(x.qty) }}+{{ fmt(x.spare) }} |
| 產品 | 品項 | 類型 | 數量 |
|---|---|---|---|
| {{ x.product }} | {{ x.part }} | {{ x.type }} | {{ x.qty.toLocaleString('zh-TW') }} |
| 品項 | 叫料 | 單價 | 金額 |
|---|---|---|---|
| {{ m.part }} {{ m.note }} | {{ m.buyText }} | {{ m.price }}還沒填 | {{ money(m.amt) }} |
| 合計 | {{ money(zzCalcMat.reduce((t,m)=>t+m.amt,0)) }} | ||
- {{ w }}
算法跟「紙紮估價系統\V25-21 驗算版」一樣:A 版要印幾張=A 版上每樣家具都夠的最少張數;A、B 版都有的東西 A 版先算,B 版只補不夠的;裁開區由「只有這塊才有的東西」決定,同版兩塊都有的(例如沙發)不夠的由專門那塊(A06)補。
垃圾桶({{ zzLib.products.filter(p=>p.deleted).length }})
| 類型 | 零件/版面/材料名稱 | 一棟要幾個 | 備註 | |
|---|---|---|---|---|
共用家具版面上沒有「{{ b.part }}」,會算不到 |
不能一起印時: |
類型:家具=印在共用家具版上(名稱要跟「共用家具版面」一模一樣,打字時會跳出可選的);主體=這款房子自己的印刷面;加工=紙類但不印刷、直接上機加工的版面(E 浪直接軋型、白紗點紙燙金+軋型);共用=好幾款房子共用的版面(共用窗戶組:一張上面有好幾款的窗戶;每款都滿門檻棟數才一起印,不然照「不能一起印時」分開做);以上都會變成估價單上的印刷面、打在同一張工單。材料/特殊=不是紙做的東西(花草、黏土),價錢在「💲 材料牌價」。之後會加「這款房子做過幾次、哪幾張訂單」。
| 版面 | 裁開區 | 零件名稱 | 每塊個數 | |
|---|---|---|---|---|
版面 A、B、C:同一個版面的各裁開區(A01~A06)印在同一張,印完才裁開。一塊上面有好幾樣東西就分好幾列,裁開區寫一樣。同一樣東西在同一個版面的兩塊都有(例如沙發在 A03、A06),系統會先算專屬那塊順便產出的,不夠的再由另一塊補。
| 品項 | 類型 | 哪款用(一棟幾個) | 單位 | 單價(元) | 多叫 % | 切料/裝盒(不用就空白) | 跟誰叫 | 備註 |
|---|---|---|---|---|---|---|---|---|
| {{ m.part }} | {{ m.type }} | {{ m.per.join('、') }} | 一{{ zzLib.prices[m.part].unit }}長 公分,每個 公分 一盒 {{ zzLib.prices[m.part].unit }} |
怎麼算:同一個品項把各款房子加起來 → 再多叫「多叫 %」→ 無條件進位成整數(例:白色黏土一棟 0.022 包,1,000 棟=22 包)→ × 單價。
單價是「一個單位」的價錢:黏土填一包(500 克)多少、花填一個多少。單位可以自己改。
切料/裝盒:原料要切開用的填「一條長幾公分、每個要幾公分」,系統算一條切幾個(例:黃色草蔟一條 11.5 公分,切 5 公分=2 個,一棟要 2 個=一條做一棟)。要整盒叫的填「一盒幾條」,系統直接算要叫幾盒,錢照實際拿到的條數算;以後一盒變 8 條,改這裡就好。
這裡只放花草、黏土這類不是紙做的東西,和共用窗戶組「合版印刷」的價錢(一個多少);E 浪、白紗點紙、共用窗戶組(一起印或叫 PVC 軋型)是版面,在估價單的印刷面算紙、印刷、燙金、軋型的錢。
跟誰叫:選的廠商如果有勾「要加 5% 稅」,材料錢也會一起算稅。新的材料在「🏠 產品配置」加(類型選材料或特殊),這裡就會自動多一列。
還沒有任何工單發出去。到「② 工單總覽」把工序設成「已發」,就會自動列進來。
| 廠商 | 案號 | 品名/工序 | 預估 | 實際請款 | 要問什麼 | |
|---|---|---|---|---|---|---|
| {{ vendorOf(p.vendorId).short }} | {{ p.caseNo }}試用 | {{ p.item }} {{ p.job }}{{ p.face ? '|' + p.face : '' }} |
{{ fmt(p.qty) }} 張|{{ apUnitText(p, p.est, p.qty) }} {{ money(p.est) }}(系統沒有) |
{{ fmt(apActQty(p)) }} 張|{{ apUnitText(p, p.actual, apActQty(p)) }} {{ money(p.actual) }} |
{{ p.judge.note }} {{ p.judge.at }}|{{ p.judge.who }} |
| 對好 | 案號 | 品名/印刷面 | 工序/內容 | 預估(發工單時) | 廠商實際請款 | 差額/判斷 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 張數 | 單價 | 金額 | 張數 | 單價 | 金額 | |||||||||
| {{ p.caseNo }}試用 {{ apPeriod(p) }} 沒請,帶過來 (手動拉進來 取消) 工單 {{ p.woDate }}|完成 {{ p.doneDate }} |
{{ p.item }} {{ p.face }} |
{{ p.job }} {{ p.desc }} |
(系統沒有, 廠商多請的) |
{{ fmt(p.qty) }} | {{ apUnitNum(p, p.est, p.qty) }} {{ apUnitLabel(p) }} |
{{ money(p.est) }} | {{ apUnitNum(p, p.actual, apActQty(p)) }} {{ apUnitLabel(p) }} |
{{ money(p.actual) }}
|
{{ p.actual - p.est > 0 ? '+' : '' }}{{ money(p.actual - p.est) }}
{{ apStateText(p) }}
|
|||||
|
{{ p.actual > (p.extra ? 0 : apExpected(p)) ? '❗ 這筆請得比預估貴' : '❓ 這筆金額跟預估不一樣' }},這樣正常嗎?
預估:{{ fmt(p.qty) }} 張|{{ apUnitText(p, p.est, p.qty) }}|{{ money(p.est) }}
實際:{{ fmt(apActQty(p)) }} 張|{{ apUnitText(p, p.actual, apActQty(p)) }}|{{ money(p.actual) }} 照原本的單價算 {{ fmt(apActQty(p)) }} 張,應該是 {{ money(apExpected(p)) }},差了 {{ p.actual > apExpected(p) ? '+' : '' }}{{ money(p.actual - apExpected(p)) }},所以是單價不一樣(不是張數)。 系統沒有這一項,是廠商多請的 {{ money(p.actual) }}。
| ||||||||||||||
{{ l.at }}|{{ l.who }}|{{ l.what }} | ||||||||||||||
這個月沒有要跟 {{ vendorOf(ap.vendor).short }} 對的工序。
| 案號 | 品名/印刷面 | 工序 | 工單日 | 本來算 | 預估 | |
|---|---|---|---|---|---|---|
| {{ p.caseNo }} | {{ p.item }} {{ p.face }} | {{ p.job }} | {{ p.woDate }} | {{ apPeriod(p) || '還沒完成(照完成日算)' }} | {{ money(p.est) }} |
怎麼用:廠商寄對帳單來 → 選廠商、月份 → 照對帳單逐筆填「實際請款」(一樣的按「=預估」)→ 對好的打勾。
預估金額保留不動,實際請款另外記,兩個都看得到;實際請款隨時可以改,每次改都記在「紀錄」(誰、什麼時候、改了什麼)。
上期沒請的(沒打勾的)會自動帶到下一期;廠商多請系統沒有的(補印、運費),用「+ 廠商多請的項目」加。估價單不會被鎖住,工單改了重發,預估會跟著更新並留紀錄。
| 廠商 | 哪個月的帳 | 幾筆 | 應付 | 該付日期 | 匯款帳號 | ||
|---|---|---|---|---|---|---|---|
| {{ vendorOf(b.vendorId).short }} | {{ b.month ? b.month.replace('-',' 年 ') + ' 月' : '' }} 這個月還有 {{ b.notOk }} 筆沒對好 |
{{ b.items.length }} | {{ money(b.amount) }} | {{ b.due }} 過期 {{ daysSince(b.due) }} 天 快到了
月結 {{ vendorOf(b.vendorId).payDays != null && vendorOf(b.vendorId).payDays !== '' ? vendorOf(b.vendorId).payDays : 30 }} 天 |
{{ vendorOf(b.vendorId).bank || '(還沒填,到設定→廠商資料填)' }} |
沒有要付的帳。(對帳頁打勾「對好」的才會出現在這裡)
| 付款日期 | 廠商 | 付哪幾個月 | 應付 | 實付 | 怎麼付 | 照片 | 備註 | |
|---|---|---|---|---|---|---|---|---|
| {{ x.date }} 已作廢 | {{ vendorOf(x.vendorId).short }} | {{ x.bills.map(billName).join('、') }}({{ x.items.length }} 筆) | {{ money(x.due) }} | {{ money(x.amount) }} 折讓 {{ money(x.due - x.amount) }} |
{{ x.method }}{{ x.checkNo ? '(' + x.checkNo + ')' : '' }} | 📎 {{ f.name }} |
{{ x.note }} {{ x.at }}|{{ x.who }} |
還沒有付款紀錄。
該付日期=帳單那個月的月底+月結天數(例:月結 30 天 → 11 月的帳 11/30+30 天=12/30 前付)。月結天數和匯款帳號在「⚙️ 設定 → 廠商資料」填。照片試做版先存在設定檔裡(1.5 MB 以下),正式版會存到雲端。
目前沒有要開的發票。✔
| 出貨單號 | 案號 | 品名 | 出貨日 | 出貨幾天 | 金額 | ||
|---|---|---|---|---|---|---|---|
| {{ e.no }} | {{ e.caseNo || '' }} | {{ e.item }} | {{ e.shipDate }} | {{ daysSince(e.shipDate) }} 天 該開了 | {{ money(e.amount) }} | ||
| 合計 | {{ money(r.amt) }} | ||||||
| 發票號碼 | 開立日期 | 客戶 | 開給哪幾筆單 | 金額 | 開立人 | 備註 | |
|---|---|---|---|---|---|---|---|
| {{ v.no }} 已作廢 | {{ v.date }} | {{ custShort((ledger.find(e=>e.no===v.nos[0])||{}).customerId) }} | {{ v.nos.map(n => { const e = ledger.find(x=>x.no===n); return e ? (e.caseNo || n) + ' ' + e.item : n; }).join('、') }} | {{ money(v.amount) }} | {{ v.by }} | {{ v.note }} |
還沒有登記過發票。
設定「不用開發票」的單({{ invNoNeed.length }} 筆) 估價單沒勾「要開發票」的;客人後來要發票,在這裡改成要開
| 出貨單號 | 案號 | 客戶 | 品名 | 出貨日 | 金額 | |
|---|---|---|---|---|---|---|
| {{ e.no }} | {{ e.caseNo || '' }} | {{ custShort(e.customerId) }} | {{ e.item }} | {{ e.shipDate }} | {{ money(e.amount) }} |
規則:估價單上有「🧾 要開發票」勾選(換稅運時會先幫你帶:含稅=勾、未稅=不勾,可以自己改),有勾的單出貨後才會列進這裡;出貨後也還能在這裡改。一筆出貨=一筆要開的單;月結客戶(例如奠品)可以把一個月的好幾筆勾起來合開一張。超過設定天數還沒開的,在這裡和首頁都會紅字。
| 出貨單號 | 品名 | 出貨日 | 該收日期 | 應收 | 已收 | 還欠 | |
|---|---|---|---|---|---|---|---|
| {{ e.no }} | {{ e.item }} | {{ e.shipDate }} | {{ e.dueDate }} 過期 | {{ money(e.amount) }} | {{ paidOf(e) ? money(paidOf(e)) : '' }} | {{ money(remainOf(e)) }} | |
| 合計還欠 | {{ money(r.total) }} | ||||||
這個客戶目前沒有欠錢。
先付的錢照「該收日期」先後分配:早到期的單先收齊,剩下沒付完的單會留在「還沒收」。
| 收款日 | 方式 | 收了哪些單 | 應收 | 實收 | 差額 | 備註 | |
|---|---|---|---|---|---|---|---|
| {{ b.date }} | {{ b.method || '' }} {{ b.checkNo }} {{ b.checkDue ? '到期 '+b.checkDue : '' }} |
{{ bParts(b).map(x => x.no + (b.nos && !b.nos.includes(x.no) ? '(先付 '+fmt(x.amt)+')' : '')).join('、') }} | {{ money(b.due) }} | {{ money(b.actual) }} | {{ b.mode==='部分' ? '先付一部分' : (b.actual < b.due ? '折讓 '+money(b.due-b.actual) : (b.actual > b.due ? '多收 '+money(b.actual-b.due) : '—')) }} | 少收 {{ money(b.shortAmt || (b.due - b.actual)) }}{{ b.shortNo ? '(記在 ' + b.shortNo + ')' : '' }}:{{ b.reason }} {{ b.note }} |
還沒有收款紀錄。
沒有符合的客戶(目前沒有人欠錢的話,勾「也顯示已經收清的客戶」可以看紀錄)。
「該收錢的日期」照客戶的付款條件算:月結 60 天=出貨那個月的月底再往後 60 天(例:9/25 出貨 → 9/30 + 60 天 = 11/29,算在 11 月要收)。
| 案號 | 客戶 | 品名 | 出貨日 | 該收日期 | 還欠 | |
|---|---|---|---|---|---|---|
| {{ e.no }} | {{ custShort(e.customerId) }} | {{ e.item }} | {{ e.shipDate }} | {{ e.dueDate }} 過期還沒收 | {{ money(remainOf(e)) }} 已先收 {{ money(paidOf(e)) }} |
|
| 應收合計({{ toCollect(x.id).length }} 張) | {{ money(toCollect(x.id).reduce((t,e)=>t+remainOf(e),0)) }} | |||||
這個月沒有要去收的錢。
先付的錢照「該收日期」先後分配:早到期的單先收齊,剩下沒付完的單會留在「還沒收」。
還沒到期(之後的月份才要收):{{ notDue(x.id).map(e=>e.no+' '+custShort(e.customerId)+' '+money(e.amount)+'('+e.dueDate+')').join('、') }}
| 收款日 | 哪些單 | 應收 | 實收 | 差額 | 天旭成本 | 利潤 | 給他 | |
|---|---|---|---|---|---|---|---|---|
| {{ r.b.date }} | {{ r.c.es.map(e=>e.no+' '+custShort(e.customerId)).join('、') }} 少收 {{ money(r.b.shortAmt || (r.b.due - r.b.actual)) }}{{ r.b.shortNo ? '(記在 ' + r.b.shortNo + ')' : '' }}:{{ r.b.reason }} {{ r.b.note }} |
{{ money(r.b.due) }} | {{ money(r.b.actual) }} | {{ r.c.diff<0 ? '少收 '+money(-r.c.diff) : (r.c.diff>0 ? '多收 '+money(r.c.diff) : '—') }} | {{ money(r.c.cost) }} | {{ money(r.c.profit) }} | {{ money(r.c.pay) }} {{ r.c.how }} |
|
| 合計 | {{ money(m.due) }} | {{ money(m.actual) }} | {{ m.actual-m.due<0 ? '少收 '+money(m.due-m.actual) : '' }} | {{ money(m.profit) }} | {{ money(m.pay) }} | |||
這個月還沒有收到錢的單。
試做版:上面是示範資料(王小明靠行底價制加成 15%、小美員工業務),改的東西會自動存檔。正式版:出貨單開出後自動加進「要收錢的單」,業務登入只看得到自己的。
✔ 已完成({{ todoDone.length }} 條) 做完超過 {{ TODO_KEEP_DAYS }} 天會自動清掉;不小心勾到,把勾取消就會回到上面
「今天該完成」「改過要重發」「工單還沒發」是照目前打開的那張單算的;其他幾格是示範資料。正式版會把所有案件的待辦整理在這裡。
共 {{ stockSum.n }} 張單,還寄放 {{ fmt(stockSum.left) }} 個。點一列看每一次出貨;要再出貨按「🚚 出貨」,會打開那張單的出貨單頁。
| 案號 | 客戶 | 品名 | 訂多少 | 已出 | 還剩 | 出貨次數 | 上次出貨 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ r.c.no }} | {{ shortOf(r.c.customer) }} | {{ r.c.item }} | {{ fmt(r.qty) }} | {{ fmt(r.shipped) }} | {{ fmt(r.left) }} | {{ r.ships.length }} 次 {{ stock.open[r.c.no] ? '▲' : '▼' }} | {{ r.last || '-' }} | |||||||||||||||
|
還沒出過貨
| ||||||||||||||||||||||
| {{ stock.q ? '找不到符合的單' : '目前沒有分批出貨、還有剩的單' }} | ||||||||||||||||||||||
看這個月每一筆出貨的毛利({{ plNow.rows.length }} 筆)
| 出貨日 | 出貨單 | 客戶 | 品名 | 未稅金額 | 成本 | 毛利 |
|---|---|---|---|---|---|---|
| {{ r.e.shipDate }} | {{ r.e.no }} | {{ custShort(r.e.customerId) }} | {{ r.e.item }} | {{ money(r.sales) }} | {{ money(r.cost) }} | {{ money(r.gross) }} |
| 這個月沒有出貨 | ||||||
| 項目 | 每月預設 | {{ pl.month }} 這個月 | |
|---|---|---|---|
| 還沒有固定支出項目,用下面新增(例:房租、水電、員工薪水、老闆薪水、電話網路、會計師費) | |||
| 合計 | {{ money(plNow.fixed) }} | ||
黃底=照每月預設帶的;白底=這個月改過的(按 ↺ 改回預設)。改「每月預設」會影響所有沒改過的月份。
| 月份 | 出貨金額(未稅) | 毛利 | 獎金分潤 | 固定支出+雜支 | 公司賺 | 實際收到 |
|---|---|---|---|---|---|---|
| {{ x.m }} | {{ money(x.sales) }} | {{ money(x.gross) }} | {{ money(x.bonus) }} | {{ money(x.fixed + x.extra) }} | {{ money(x.net) }} | {{ money(x.cashIn) }} |
毛利照「出貨那個月」算(含稅的單先扣掉 5% 稅);獎金分潤照業務月結(收到錢那個月);實際收到=那個月登記的收款+收到的訂金,只是參考,不影響上面的數字。系統上線前(Ragic)出貨的舊單不在這裡;今天以前建的出貨沒有記含不含稅,一律當未稅。
找到 {{ filteredCases.length }} 筆 | 點一列打開估價單;右邊按鈕可以直接跳到工單或追蹤。
| 案號 | 日期 | 客戶 | 品名 | 數量 | 第幾次 | 狀態 | 結案 | ||
|---|---|---|---|---|---|---|---|---|---|
| {{ c.no }} 💾 | {{ c.date }} | {{ shortOf(c.customer) }} | {{ c.item }} | {{ fmt(c.qty) }} | {{ c.times>1 ? '第 '+c.times+' 次' : '新製' }} | {{ c.status }} | ✔ 已結案 {{ closureOf(c.no).at.split(' ')[0] }} 舊單 | {{ c.deletedAt }} 刪除 | |
|
{{ i.ok ? '✔' : '✖' }}{{ i.name }}:{{ i.text }}({{ i.note }})
| |||||||||
| 找不到符合的案件 | |||||||||
有 💾 的是正式存檔的案件(自己新增、複製、再版出來的),打開就是上次存的樣子;沒有 💾 的是示範資料(只有 2611002 悠亞、2611001 身體勇禮盒能打開,改了不會存)。正式版會是所有案件,Ragic 的舊單也會匯進來一起查。
⚠️ 單價還是 {{ monthsSince(q.fromDate) }} 個月前的,請重新確認(之後接上牌價庫,會自動換成今天的牌價,並標出漲價的地方)。
盒型與尺寸(報價單會顯示)
💡 刀模庫比對(之後接上):同材質、同盒型、每邊差 2cm 以內的舊刀會在這裡提醒。
要另外叫的花草、黏土等材料({{ zzMatRows().length }} 項,這個數量 {{ fmt(plan.qty) }} 棟)|材料成本 {{ money(zzMatAmt()) }},已算進總成本
| 品項 | 哪款用 | 需要 | 叫料 | 單價 | 跟誰叫 | 金額 |
|---|---|---|---|---|---|---|
| {{ m.part }} {{ m.note }} |
{{ m.products.join('、') }} | {{ m.qty.toLocaleString('zh-TW') }} | {{ m.buyText }} | {{ m.price }}還沒填 | {{ m.vendorId ? vendorOf(m.vendorId).short : '' }} | {{ money(m.amt) }} |
| 印刷面 | 正反面色數 | 幾塊版 | 金額 |
|---|---|---|---|
| {{ r.f.name || '(還沒取名的印刷面)' }} | {{ r.text }} | 塊 | {{ money(r.n * (o.platePrice || 0)) }} |
| 這張單沒有要印刷的印刷面 | |||
⚠ 分類加起來 {{ money(tempCost(plan).all) }} 跟總成本 {{ money(totalCost(plan)) }} 對不起來,請告訴我
看每個印刷面各花多少
| 印刷面 | {{ c[1] }} | 小計 |
|---|---|---|
| {{ r.name }} | {{ r[c[0]] ? money(r[c[0]]) : '' }} | {{ money(r.sum) }} |
| 合計 | {{ money(tempCost(plan).tot[c[0]]) }} | {{ money(tempCost(plan).tot.sum) }} |
「印刷」不含水光,水光算在「上光類」。整件加工 {{ money(tempCost(plan).post) }} 不在這張表裡,算在上面的「其他後加工」。
另計費用(報價單另外列):{{ money(onetimeSep()) }} | 訂金 {{ q.depositPct }}%:{{ money(depositAmt(plan)) }},尾款:{{ money(grandTotal(plan)-depositAmt(plan)) }}({{ q.taxShip }})
| 給客人 | 數量 | 總成本 | 成本單價 | 報價 | 報價單價 | 利潤 | 毛利率 |
|---|---|---|---|---|---|---|---|
| {{ fmt(p.qty) }} | {{ money(totalCost(p)) }} | {{ money2(totalCost(p)/p.qty) }} | {{ money(p.price) }} | {{ money2(unitPrice(p)) }} | {{ money(profit(p)) }} | {{ pct(profit(p)/p.price) }} |
收到的訂金會記下來,出貨時自動從應收扣掉,剩下的就是尾款。回簽檔之後可以在這裡上傳。
出貨時,還沒用掉的訂金會自動從那次出貨的應收扣掉;出貨後客人再付的尾款,到「🧾 收款」登記。
四樣都 ✔ 才能結案。結案不會鎖住,老闆還是可以改;有狀況(退貨補印、廠商補請款)可以重新打開,要寫原因,都會留紀錄。
範例是 Ragic 估價單 Q20261106「身體勇禮盒」:Ragic 是工序 24,466 + 運費 600 = 25,066;×1.05 = 26,319、利潤 14,681。上光改照柏豐牌價(Ragic 手打 1.1 → 牌價 1.21)後:工序 24,702.5 + 運費 600 = 25,302.5;×1.05 = 26,568、利潤 14,432。範例裡每家廠商都先設成要加 5% 稅,所以數字跟 Ragic 一樣。
估價單的「各數量比較」還沒勾選要給客人的數量。
存成 PDF:按「列印/存成 PDF」,印表機選「另存為 PDF」,就能用 LINE 或 Email 傳給客人。案件列表每一列也有「報價單」按鈕,過期要重傳時直接從那裡打開。
| 客戶資訊 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 客戶名稱 | {{ curCust.name }} | 公司地址 | {{ curCust.addr }} | ||||||||||||
| 公司聯絡人 | {{ curCust.contact }} | 電話 | {{ curCust.tel }} | 統編 | {{ curCust.taxId }} | ||||||||||
| 出貨地址 | {{ shipOf.short && shipOf.short!=='公司地址' ? '【' + shipOf.short + '】' : '' }}{{ shipOf.addr }} | ||||||||||||||
| 出貨聯絡人 | {{ shipOf.contact }} | 電話 | {{ shipOf.tel }} | 預計交貨日 | |||||||||||
| 產品資訊 | |||||||||||||||
| 印件名稱 | {{ q.itemName }} | ||||||||||||||
| 品項1 | {{ q.box.type }} | 長寬高 | {{ q.box.l ? q.box.l+' × '+q.box.w+' × '+q.box.h+' mm' : '' }} | ||||||||||||
| 產品說明 | {{ quoteDesc() }} | ||||||||||||||
| 數量 | {{ fmt(p.qty) }} | 單價 | {{ money2(p.price/p.qty) }} | 金額 | {{ money(p.price) }} | ||||||||||
| |||||||||||||||
| 另計費用{{ qv.allInOne ? '(各數量不同,已列在上表)' : '' }} | |||||||||||||||
| {{ x.name }} | {{ money(x.amt) }} | ||||||||||||||
| (無另計費用) | |||||||||||||||
| 另計費用合計 | {{ money(onetimeSep(quoteRows()[0])) }} | ||||||||||||||
| 備註 | {{ qv.note }} | ||||||||||||||
| 製作數量 | {{ qv.allInOne ? '依回簽的數量' : fmt(quoteRows()[0].qty) }} | 總金額 | {{ qv.allInOne ? '依回簽的數量(見上表合計)' : money(quoteTotal()) }} | 稅運 | {{ q.taxShip }} | ||||||||||
| 預付訂金 | {{ qv.allInOne ? '' : money(quoteDeposit()) }} | 尾款 | {{ qv.allInOne ? '' : money(quoteTotal()-quoteDeposit()) }} | ||||||||||||
| 匯款資料 | {{ quoteCo.bank }} | ||||||||||||||
| 注意事項 | |||||||||||||||
| {{ i+1 }}.{{ n }} | |||||||||||||||
| 以上訂單之報價、規格、數量、價格,本人均已同意,即請製作為荷。 | |||||||||||||||
(之後放圖檔)
目前狀態:{{ q.status }}。客戶回簽或收到訂金後,到估價單最下面按「客戶已回簽,確認製作」,才會產生工單、給工廠的單和訂單追蹤。
| 印刷面 | {{ procName(k) }} |
|---|---|
| 第 {{ fi+1 }}/{{ q.faces.length }} 面📝 {{ faceTodos(f).length }} {{ f.name || '(未命名)' }} ⚠ {{ t.text }} |
{{ vendorOf(f[k].vendorId).short }}
👁 要看印
{{ statusLabel[st(f,k)] }} {{ noteOf(f,k) }} ⚠ 改過,要重發
{{ lastLog(f,k).at }}
預計 {{ md(dueOf(f,k)) }}{{ isLate(f,k) ? '(延誤)' : '' }}
-
|
預計日期依各加工的標準天數往後排(燙金、糊盒 2 天,其他 1 天),之後可以設定。每次改狀態都會記下日期和時間。有狀況要寫發生什麼事,會顯示在格子裡;已出貨=這一格的東西已經送到客人那裡(有些東西先出貨時用),也算做完了。
| {{ isDoneS(st(f,k)) ? '✔' : '' }} | {{ procName(k) }} | {{ vendorOf(f[k].vendorId).short }} | {{ specText(f,k) }} | → {{ sendTo(f,k) ? vendorOf(sendTo(f,k)).short : '完成' }} | {{ statusLabel[st(f,k)].slice(2) }} {{ lastLog(f,k).at }} ⚠ {{ noteOf(f,k) }} |
|---|
| 品名 | {{ q.itemName }} | 製作數量 | {{ fmt(orderQty) }} 個 |
|---|---|---|---|
| 發單日期 | {{ startDate }} | 交期 | {{ md(finalDue) }} |
本單共 {{ q.faces.length }} 個印刷面,貴廠負責其中 {{ vendorFaces(woVendor).length }} 個(如下),請核對張數,有少請來電。
| 工作 | 收料 | 要做什麼/數量 | 做完送 |
|---|---|---|---|
| {{ procName(k) }} | {{ k==='paper' ? '' : vendorOf(fromOf(f,k)).short }} | {{ k==='paper' ? vendorPaperText(f) : specText(f,k) }} | {{ sendTo(f,k) ? vendorOf(sendTo(f,k)).short : '完成後通知天旭' }} |
這張單只有天旭的資料、工單號、品名、數量和加工內容;不會出現客戶名稱、聯絡人、電話、地址,也沒有任何價格。
整單要每一項都「完成」才算完成,所以就算漏發一面,也會一直留在這裡提醒。到「② 工單總覽」點格子可以改狀態。