| Subject |
Re: Print receipt on pos |
| From |
Emeka Ossai <megameks@yahoo.com> |
| Date |
Sat, 03 Sep 2022 02:22:46 -0400 |
| Newsgroups |
dbase.getting-started |
Thank you Akshat for usual support. What should I do to print directly to the printer.
Thank you
Emeka
Akshat Kapoor Wrote:
> Good Evening Emeka,
>
> > I am working on pos application, everything is working well except I cannot print receipt on clicking save button. I use dbase9 and mysql.
> >
> > My problem is how can I code a routine such that when I click post button, it should print receipt based on my last update.
> >
> > Below is my POST onclick event
> > function BTNPOST_onClick
> >
> >
> > // prep query to get next batch No
> > qGetBatchNo = new query()
> > qGetBatchNo.database = form.d
> > qGetBatchNo.requestLive = false
> > qGetBatchNo.sql = [SELECT nextBatchNo FROM SYSCONTROL]
> > qGetBatchNo.active = true
> > //rGetBatchNo= qSYSCONTROL.rowset
> > rGetBatchNo= qGetBatchNo.rowset
> > rGetBatchNo.first()
> > batchNo = rGetBatchNo.fields["nextbatchno"].value
> > qGetBatchNo.active = false
> >
> >
> >
> > // prepare insert query
> > local qInsert
> > qInsert = new query()
> > qInsert.database = form.d
> > qInsert.requestLive = false
> > qInsert.sql = [INSERT INTO CASHIERBOOK (stockno, stockname, amount, amountb, unitofmeasure,oquantity, quantity, modeofpmt, entrydate, customername, userID, batchid, sysdate,;
> > systime,item,balance,grosstot, discountamt,netamt,cash,pos, price) ;
> > VALUES (:stockno,:stockname,:amount,:amountb,:unitofmeasure,:oquantity,:quantity,:modeofpmt,:entrydate,:customername,:userID,:batchid,:sysdate,;
> > :systime,:item,:balance,:grosstot, :discountamt,:netamt, :cash,:pos,:price)]
> > qInsert.active = false
> >
> >
> >
> > // query for temp table
> > qTempTable = new query()
> > qTempTable.reuestLive = false
> > qTempTable.sql = [SELECT * FROM CASHIER_TEMP WHERE userID = :userID]
> > qTempTable.database = form.d
> > qTempTable.params["userID"] = _app.UserID
> > qTempTable.active = true
> > rTempTable = qTempTable.rowset
> > rTempTable.first()
> >
> >
> >
> > // loop through temp table data and insert each row into real table
> > do while not rTempTable.endofset
> > qInsert.active = false
> > qInsert.params["batchid"] = rTempTable.fields["batchid"].value
> > qInsert.params["stockno"] = rTempTable.fields["stockno"].value
> > qInsert.params["stockname"] = rTempTable.fields["stockname"].value
> > qInsert.params["amount"] = rTempTable.fields["amount"].value
> > qInsert.params["amountb"] = rTempTable.fields["amountb"].value
> > qInsert.params["unitofmeasure"] = rTempTable.fields["unitofmeasure"].value
> > qInsert.params["oquantity"] = rTempTable.fields["quantity"].value
> > qInsert.params["quantity"] = 0.00
> > //qInsert.params["branch"] = rTempTable.fields["branch"].value
> > qInsert.params["modeofpmt"] = rTempTable.fields["modeofpmt"].value
> > // qInsert.params["bank"] = rTempTable.fields["bank"].value
> > qInsert.params["customername"] = rTempTable.fields["customername"].value
> > qInsert.params["userID"] = rTempTable.fields["userID"].value
> > qInsert.params["item"] = "STOCK OUT"
> > qInsert.params["balance"] = 0.00
> > qInsert.params["entrydate"] = rTempTable.fields["entrydate"].value
> > qInsert.params["grosstot"] = form.txtbatchtotal.text
> > // qInsert.params["discount"] = form.container1.discount.value
> > qInsert.params["discountamt"] = form.container1.discountamt.value
> > qInsert.params["netamt"] = form.container1.netamt.value
> > qInsert.params["cash"] = form.container1.cash.value
> > qInsert.params["pos"] = form.container1.pos.value
> > qInsert.params["price"] = rTempTable.fields["buyprice"].value
> > qInsert.params["sysdate"] = date()
> > qInsert.params["systime"] = time()
> >
> >
> > local wSearch
> > wSearch = new query()
> > wSearch.database = form.d
> > wSearch.requestLive = false
> > wSearch.sql = [SELECT * FROM CASHIERPOOL WHERE stockno = :stockno AND stockname <> "SERVICES"]
> > wSearch.params["stockno"] = rTempTable.fields["stockno"].value
> > wSearch.params["stockname"] = rTempTable.fields["stockname"].value
> > wSearch.active = true
> > if wSearch.rowset.count() = 1 // if found
> >
> > local wUpdate
> > wUpdate = new query()
> > wUpdate.database = form.d
> > wUpdate.requestLive = false
> > // General Tab
> > wUpdate.sql = [UPDATE CASHIERPOOL SET quantity = :quantity where stockno =:stockno]
> > wUpdate.params["stockno"] = rTempTable.fields["stockno"].value
> > wUpdate.params["quantity"] = wSearch.rowset.fields['quantity'].value-rTempTable.fields["quantity"].value
> > wUpdate.requery()
> > wUpdate.active = false
> > endif
> >
> >
> >
> >
> > // General Tab
> > // increment batch NO
> > qInc = new query()
> > qInc.database = form.d
> > qInc.requestLive = false
> > qInc.sql = [UPDATE SYSCONTROL SET nextBatchNo = :nextBatchNo]
> > qInc.params["nextBatchNo"] = batchNo + 1
> > qInc.requery()
> > qInc.active = false
> > qinsert = null
> >
> > // show next number in Spin Control
> > form.spnBatchNo.value = batchNo + 1
> >
> > // Delete transactions from temp table
> > qDelete = new query()
> > qDelete.requestLive = false
> > qDelete.database = form.d
> > qDelete.sql = [DELETE FROM CASHIER_TEMP WHERE userID = :userID]
> > qDelete.params["userID"] = _app.UserID // or what ever user ID it is
> > qDelete.requery()
> >
> > // clear grid of updated transactions
> > form.setGrid()
> >
> > form.checkBatchTotal()
> >
> > form.entquantity.value = 0
> > form.buyprice.value = 0.00
> > form.entamount.value = 0.00
> > form.cmbaccount.value = ""
> > form.container1.entaccountcode.value = ""
> > form.stockno.value = ""
> > form.entsubcode.value = 0.00
> > form.container1.cash.value = 0.00
> > form.container1.pos.value = 0.00
> > form.custno.value = ""
> > form.stockbalance.value = ""
> > form.customername.value = ""
> > form.container1.discountamt.value = 0.00
> > form.container1.netamt.value = 0.00
> > form.stockno.enabled = true
> > form.btnSave.enabled = true
> > form.btnPost.enabled = true
> > form.stockno.setfocus()
> > do reprintreceipt.wfm
> >
> >
> > return
>
> Lots of code to analyse.
> The thing that strikes me in what does "do reprintreceipt.wfm" do.
> If you want to print a report then simply execute the .rep file.
>
> I use the following to print invoices at click of a button. You caan add
> similar code at the end of your onClick event.
>
> r = new p_salesreport()
> r.salesdatamodule1.sales.params["invoice"].value = str(form.minvoice,10,0)
> r.salesdatamodule1.sales.params["location"].value = form.mlocat
> r.salesdatamodule1.sales.requery()
> r.title = "invoice no. "+str(form.minvoice,10,0)
> r.render()
> return
>
>
> Regards
> Akshat
|
|