Assigns next quote number and saves to history
| Paper cost | — |
| Labour | — |
| Gum | — |
| EB Charges | — |
| Pin | — |
| Overhead | — |
| Box delivery | — |
| Other costs | — |
| Total cost | — |
| Print cost | — |
| Print plate | — |
| Extra sheets | — |
| Lamination / coating | — |
| VAS pickup / delivery | — |
| Die cost | — |
| Special labour | — |
| Total other | — |
Add pad / partition costs to be included in the final combined rate per set.
| Box rate | — |
| Pad(s) | — |
| Partition(s) | — |
| Total per set | — |
| Corrugation | — |
| Paper cutting | — |
| Printing | — |
| Pasting | — |
| Creasing | — |
| RS4 | — |
| Punching (Die Cut) | — |
| Stitching | — |
| Flap pasting | — |
| Calico cut | — |
| Calico pasting | — |
| Bundling | — |
| Loading | — |
| Delivery / Unloading | — |
| Total labour | — |
Current quantity highlighted.
| Board material cost | — |
| RS4 labour | — |
| Printing | — |
| Stitching labour | — |
| Bundling + Despatch | — |
| EB Charges (30% of standard) | — |
| Pin | — |
| Board unloading (per board) | — |
| Delivery | — |
| Overhead (30% of standard) | — |
| Total cost / box | — |
| GSM | BF / Grade | Rate (₹/kg) |
|---|
| Flute | Speed (LM/min) | Take-up factor |
|---|
| Process | Per Hr | Setup (min) | Salary/mo (₹) |
|---|
After making any changes, click Save to database so all users receive the updated rates on their next Sync.
Overhead = Area with wastage × multiplier. Switches on weight per UP threshold.
Connect to Supabase so all team members share the same quotes, customers, and offer numbers. Get your credentials from supabase.com → Project → Settings → API.
create table if not exists aic_quotes (
qnum text primary key,
data jsonb not null,
created_at timestamptz default now()
);
create table if not exists aic_customers (
id text primary key,
data jsonb not null,
updated_at timestamptz default now()
);
create table if not exists aic_approved_rates (
qnum text primary key,
data jsonb not null,
updated_at timestamptz default now()
);
create table if not exists aic_snapshots (
qnum text primary key,
data jsonb not null,
created_at timestamptz default now()
);
create table if not exists aic_counter (
id text primary key,
val integer not null default 1
);
insert into aic_counter (id, val) values ('quote_seq', 1) on conflict do nothing;
-- Enable public access (RLS off for internal tool)
alter table aic_quotes enable row level security;
alter table aic_customers enable row level security;
alter table aic_approved_rates enable row level security;
alter table aic_snapshots enable row level security;
alter table aic_counter enable row level security;
create policy "allow all" on aic_quotes for all using (true) with check (true);
create policy "allow all" on aic_customers for all using (true) with check (true);
create policy "allow all" on aic_approved_rates for all using (true) with check (true);
create policy "allow all" on aic_snapshots for all using (true) with check (true);
create policy "allow all" on aic_counter for all using (true) with check (true);
3. Copy Project URL and anon key from Settings → APIDefault password is admin123 — change it after first login.
Preview: AIC-2026-0001
| Qty ≤ | Multiplier |
|---|---|
| 100 | |
| 499 | |
| 999 | |
| 2999 | |
| 4999 | |
| ∞ |
Use these if approved rates or quotes are not showing correctly for other users.
These actions are permanent and cannot be undone. Use with extreme caution.
| S.No | Box Size | Ply | Rate (₹) | Remarks |
|---|