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 (₹) |
|---|
| Date & Time | Grade (GSM-BF) | Old rate (₹/kg) | New rate (₹/kg) | Change | Changed by |
|---|
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.
Prepare and manage customer quotations directly from the CRM — quotes are now linked to contacts for better follow-up tracking.
In the CRM, open a contact → click "Prepare Quotation" to select costing quotes and generate the PDF.