[{"data":1,"prerenderedAt":87},["ShallowReactive",2],{"project-en-prima":3},{"id":4,"title":5,"body":6,"client":16,"description":61,"extension":62,"features":63,"gallery":70,"galleryTall":74,"image":71,"meta":75,"navigation":76,"notes":77,"path":78,"role":79,"seo":80,"stack":81,"stem":84,"year":85,"__hash__":86},"projects_en\u002Fprojects\u002Fprima.md","Prima Pharmacy Suite",{"type":7,"value":8,"toc":54},"minimark",[9,18,23,31,35,38,47,51],[10,11,12,13,17],"p",{},"Inventory and billing for ",[14,15,16],"strong",{},"PT Kem Kem Primahusada",", a pharmaceutical distributor in Samarinda. PBF license, CDOB, NPWP on the invoice header. This is not a generic stock app. If the paper is wrong, the next audit is a problem.",[19,20,22],"h2",{"id":21},"the-problem","The problem",[10,24,25,26,30],{},"Accounting, stock, and invoices still lived in spreadsheets. Fine until volume went up. Batch numbers drifted. Expiry dates hid in a column nobody opened. Pharmacies downstream needed a proper ",[27,28,29],"em",{},"faktur penjualan",", not a WhatsApp photo of a notebook.",[19,32,34],{"id":33},"what-they-got","What they got",[10,36,37],{},"Sales with customer, paid status, and a print-ready invoice: product code, name, expiry, batch, qty, price, discount, PPN 11%. Filters by month and payment. The 2024 screenshots are those invoices. The 2025 shot is the sales list operators actually live in.",[10,39,40,41,46],{},"The drugstore-side app is a separate product. See ",[42,43,45],"a",{"href":44},"\u002Fprojects\u002Ffarmora","Farmora",". Distributors and shop floors do not share a screen. They share the need for numbers that match.",[19,48,50],{"id":49},"if-this-is-you","If this is you",[10,52,53],{},"Regulated goods. Batch and expiry are not optional. Printable invoices with tax. If you distribute anything BPOM cares about, this is the kind of system we already ran.",{"title":55,"searchDepth":56,"depth":56,"links":57},"",2,[58,59,60],{"id":21,"depth":56,"text":22},{"id":33,"depth":56,"text":34},{"id":49,"depth":56,"text":50},"Distributor inventory for a licensed drug wholesaler. Batch, expiry, invoicing, and reports that hold up in a BPOM audit.","md",[64,65,66,67,68,69],"Batch number and expiry on every line","Printable sales invoices (faktur) with PPN 11%","Paid \u002F unpaid status","Filter by month and payment","Customer list","License and NPWP on the invoice header",[71,72,73],"\u002Fimages\u002Fprojects\u002Fprima\u002Fchrome_2025-08-06_12-32-28.jpg","\u002Fimages\u002Fprojects\u002Fprima\u002Fchrome_2024-07-03_15-36-24.jpg","\u002Fimages\u002Fprojects\u002Fprima\u002Fchrome_2024-07-03_15-37-57.jpg",null,{},true,"Django admin on PostgreSQL. Invoice lines include product code, name, expiry, batch, qty, price, discount, PPN.","\u002Fprojects\u002Fprima","custom",{"title":5,"description":61},[82,83],"Django","PostgreSQL","projects\u002Fprima",2024,"hvE9_zJvVyRbhCb5FoKwJTDVYPAqn6a7fk14_0kuOpE",1791130621229]