Subject |
Re: printer paper source |
From |
Akshat Kapoor <akshat.kapoor@kapoorsons.in> |
Date |
Mon, 10 Aug 2020 07:30:53 +0530 |
Newsgroups |
dbase.getting-started |
Attachment(s) |
menu_main.wfm, e_sales.wfm |
On 09.08.2020 22:29, Mustansir Ghor wrote:
> Dear Akshat
>
> An application requires to "Print & Save" pushbutton to print on a default printer. There are 2 bins on the printer. The IDE where I am designing the report, I need to know number to set for papersource for a remote printer that is not connected to IDE computer.
>
Good Morning Mustansir,
And then you will hard code that data into your report?
If it is the default printer and tray then there is nothing for you to do.
But if not then it is for situations like these that my code comes into
play.
You just have to set the settings once for any report.
A code that I am using
class ALL_LEDGERREPORT of A4BLANKCREPORT from "a4blank.crp"
set procedure to all_ledger.dmd additive
with (this)
output = 1 // Printer
endwith
this.ALL_LEDGERDATAMODULE1 = new ALL_LEDGERDATAMODULE()
this.ALL_LEDGERDATAMODULE1.parent = this
with (this.printer)
printerSource = 1 // Windows Default
duplex = 1 // None
orientation = 1 // Portrait
paperSource = 7
paperSize = 9
resolution = 0 // Default
color = 1 // Monochrome
trueTypeFonts = 0 // Default
endwith
Even after this I display the choose printer popup. User just has to
press enter.
Where faster printouts are required or need other than default printer
options I use the code I had provided earlier.
Have a look at the attached form menu_main.wfm I am using. Have a look
at the objects ini_file, ini_name and ini_file_onClick.
Then have a look at the form e_sales.wfm. Just have a look at PRINT_onClick
Both are currently in use not test programs.
Change of ini files in menu_main.wfm is rarely used. No need to change
Ini options frequently
but e_sales.wfm is the most used form of my app.
Depending upon the toggle position (toggle.cc designed by Mervyn) the
report file and printer changes. The printout is sent to desired printer
without any choooserprinter()
Regards
Akshat
| xmenu = 0
local f
f = new menu_mainForm()
do while xmenu<>6
f.mdi = false // ensure not MDI
f.readModal()
do case
case xmenu = 1
//do blank.wfm with "do reindex"
do reindex.wfm
case xmenu = 2
do repost.wfm
case xmenu = 3
do cre_user.wfm with .t.
case xmenu = 4
msgbox("alter user")
case xmenu = 5
do reset_pa.wfm
case xmenu = 6
//exit hence no action required
case xmenu = 7
do vatrate.wfm with .t.
case xmenu = 8
do renum.wfm with .t.
endcase
enddo
return
** END HEADER -- do not remove this line
//
// Generated on 03-06-2020
//
parameter bModal
local f
f = new menu_mainForm()
if (bModal)
f.mdi = false // ensure not MDI
f.readModal()
else
f.open()
endif
class menu_mainForm of MUN_FORM from "mun_controls.cc"
set procedure to mun_controls.cc additive
with (this)
onOpen = class::FORM_ONOPEN
height = 31.5
left = -12.2857
top = -0.4545
width = 214.5714
endwith
this.REINDEX = new MUN_PUSH(this)
with (this.REINDEX)
onClick = class::REINDEX_ONCLICK
height = 2.0
left = 62.0
top = 3.5
width = 30.0
text = "Rebuild &Index"
fontSize = 12.0
endwith
this.REPOST = new MUN_PUSH(this)
with (this.REPOST)
onClick = class::REPOST_ONCLICK
height = 2.0
left = 62.0
top = 7.0
width = 30.0
text = "&Repost Current Year Entries"
fontSize = 12.0
endwith
this.CREATE = new MUN_PUSH(this)
with (this.CREATE)
onClick = class::CREATE_ONCLICK
height = 2.0
left = 62.0
top = 10.5
width = 30.0
text = "Create &Users"
fontSize = 12.0
endwith
this.DELETE_USER = new MUN_PUSH(this)
with (this.DELETE_USER)
onClick = class::DELETE_USER_ONCLICK
height = 2.0
left = 62.0
top = 14.0
width = 30.0
text = "&Alter User"
fontSize = 12.0
endwith
this.RESET = new MUN_PUSH(this)
with (this.RESET)
when = {||alltrim(mcompany.user) # "super"}
onClick = class::RESET_ONCLICK
height = 2.0
left = 62.0
top = 17.5
width = 30.0
text = "&Reset Password"
endwith
this.CLOSE_FORM = new MUN_PUSH(this)
with (this.CLOSE_FORM)
onClick = class::CLOSE_FORM_ONCLICK
height = 2.0
left = 62.0
top = 21.0
width = 30.0
text = "&Close"
fontSize = 12.0
endwith
this.MUN_TEXTLABEL1 = new MUN_TEXTLABEL(this)
with (this.MUN_TEXTLABEL1)
height = 1.0
left = 53.5714
top = 1.0
width = 40.0
text = "Settings Menu"
fontSize = 16.0
fontBold = true
alignHorizontal = 1 // Center
endwith
this.VATRATE = new MUN_PUSH(this)
with (this.VATRATE)
onClick = class::VATRATE_ONCLICK
height = 2.0
left = 103.0
top = 3.5
width = 30.0
text = "&Set/Alter Vat/Gst Rates"
endwith
this.EXP_INVEN = new MUN_PUSH(this)
with (this.EXP_INVEN)
when = {||mcompany.inven}
onClick = class::PUSHBUTTON1_ONCLICK
height = 2.0
left = 103.0
top = 7.0
width = 30.0
text = "Export Inventory"
endwith
this.IMPORT_SALES = new MUN_PUSH(this)
with (this.IMPORT_SALES)
when = {||mcompany.inven}
onClick = class::IMPORT_SALES_ONCLICK
height = 2.0
left = 103.0
top = 10.5
width = 30.0
text = "Import Sales"
endwith
this.PACK_TABLES = new MUN_PUSH(this)
with (this.PACK_TABLES)
when = {||mcompany.inven}
onClick = class::PACK_TABLES_ONCLICK
height = 2.0
left = 103.0
top = 14.0
width = 30.0
text = "&Pack Tables"
endwith
this.MUN_TEXT1 = new MUN_TEXT(this)
with (this.MUN_TEXT1)
height = 1.7273
left = 134.0
top = 11.0
width = 46.0
visible = false
text = " Sales Transactions are being imported please wait.............."
endwith
this.INI_FILE = new MUN_PUSH(this)
with (this.INI_FILE)
when = {||mcompany.inven}
onClick = class::INI_FILE_ONCLICK
height = 2.0
left = 103.0
top = 17.5
width = 30.0
text = "Set Default printer options of"
endwith
this.INI_NAME = new MUN_COMBO(this)
with (this.INI_NAME)
height = 1.1818
left = 139.0
top = 18.0
width = 20.0
dataSource = 'array {"cashmemo.ini","cashmemo_h.ini","label.ini","p_big.ini"}'
endwith
function CLOSE_FORM_onClick()
xmenu = 6
form.close()
return
function CREATE_onClick()
xmenu = 3
form.close()
return
function DELETE_USER_onClick()
xmenu = 4
form.close()
return
function IMPORT_SALES_onClick()
form.mun_text1.visible = true
do import_sales
msgbox("Import of sales enteries complete")
form.mun_text1.visible = false
return
function INI_FILE_onClick()
msgbox("To insert code for this option first load the earlier option and then ask for new one and save only when confirmed")
if msgbox("Do you really want to change the printer settings for "+form.ini_name.value,"Confirm ",4 ) = 6
do get_printer with form.ini_name.value
endif
return
function PACK_TABLES_onClick()
xmenu = 8
form.close()
return
function PUSHBUTTON1_onClick()
do export_inve
msgbox("Inventory has been exported")
return
function REINDEX_onClick()
xmenu = 1
form.close()
return
function REPOST_onClick()
xmenu = 2
form.close()
return
function RESET_onClick()
xmenu = 5
form.close()
return
function VATRATE_onClick()
xmenu = 7
form.close()
return
function form_onOpen()
form.height = form_height
form.width = form_width
form.text = [Settings Menu ]+ mcompany.company
if alltrim(mcompany.user)= "super"
form.reset.enabled = false
form.reset.colornormal = push_dis
endif
return
endclass
| local f
f = new e_salesform()
f.mdi = false // ensure not MDI
f.readModal()
f.release()
//on key
return
** END HEADER -- do not remove this line
//
// Generated on 24.05.2020
//
parameter bModal
local f
f = new e_salesform()
if (bModal)
f.mdi = false // ensure not MDI
f.readModal()
else
f.open()
endif
class e_salesform of MUNEEM from "muneem.cfm"
set procedure to inve.dmd additive
set procedure to sales2.dmd additive
set procedure to toggle.cc additive
set procedure to mun_controls.cc additive
with (this)
canClose = class::FORM_CANCLOSE
onOpen = class::FORM_ONOPEN
onClose = class::NUM_CANCLOSE
height = 31.5
left = 0.4286
top = -0.5455
width = 214.5714
text = "Cash Memo Entry"
escExit = false
endwith
this.INVEDATAMODULE1 = new INVEDATAMODULE()
this.INVEDATAMODULE1.parent = this
with (this.INVEDATAMODULE1)
left = 37.0
top = 18.0
width = 12.0
height = 1.0
endwith
this.SALESDATAMODULE1 = new SALESDATAMODULE()
this.SALESDATAMODULE1.parent = this
with (this.SALESDATAMODULE1)
left = 9.0
top = 18.0
width = 13.0
height = 1.0
endwith
this.ADDITEM = new ADDITEM(this)
with (this.ADDITEM)
visible = false
left = 1.0
top = 18.5
width = 153.0
height = 4.5
endwith
with (this.ADDITEM.MDESCRIP)
onGotFocus = class::MDESCRIP_ONGOTFOCUS
endwith
with (this.ADDITEM.ITEMDISCARD)
onClick = class::ITEMDISCARD_ONCLICK
endwith
this.SALES = new MUN_GRID(this)
with (this.SALES)
onGotFocus = class::SALES_ONGOTFOCUS
onLostFocus = class::SALES_ONLOSTFOCUS
dataLink = form.salesdatamodule1.sales.rowset
columns["COLUMN1"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN1"])
dataLink = form.salesdatamodule1.sales.rowset.fields["company"]
editorType = 1 // EntryField
width = 14.2857
endwith
columns["COLUMN2"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN2"])
dataLink = form.salesdatamodule1.sales.rowset.fields["item"]
editorType = 1 // EntryField
width = 14.2857
endwith
columns["COLUMN3"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN3"])
dataLink = form.salesdatamodule1.sales.rowset.fields["descrip"]
editorType = 1 // EntryField
width = 35.0
endwith
columns["COLUMN4"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN4"])
dataLink = form.salesdatamodule1.sales.rowset.fields["mrp"]
editorType = 1 // EntryField
width = 14.0
endwith
columns["COLUMN5"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN5"])
dataLink = form.salesdatamodule1.sales.rowset.fields["disc"]
editorType = 1 // EntryField
width = 8.0
endwith
columns["COLUMN6"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN6"])
dataLink = form.salesdatamodule1.sales.rowset.fields["rate"]
editorType = 1 // EntryField
width = 14.0
endwith
columns["COLUMN7"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN7"])
dataLink = form.salesdatamodule1.sales.rowset.fields["misc"]
editorType = 1 // EntryField
width = 14.0
endwith
columns["COLUMN8"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN8"])
dataLink = form.salesdatamodule1.sales.rowset.fields["qty"]
editorType = 1 // EntryField
width = 12.0
endwith
columns["COLUMN9"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN9"])
dataLink = form.salesdatamodule1.sales.rowset.fields["amount"]
editorType = 1 // EntryField
width = 15.0
endwith
columns["COLUMN10"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN10"])
dataLink = form.salesdatamodule1.sales.rowset.fields["cgst"]
editorType = 1 // EntryField
width = 12.0
endwith
columns["COLUMN11"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN11"])
dataLink = form.salesdatamodule1.sales.rowset.fields["sgst"]
editorType = 1 // EntryField
width = 12.0
endwith
columns["COLUMN12"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN12"])
dataLink = form.salesdatamodule1.sales.rowset.fields["goods"]
editorType = 1 // EntryField
width = 15.0
endwith
columns["COLUMN13"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN13"])
dataLink = form.salesdatamodule1.sales.rowset.fields["hsn_code"]
editorType = 1 // EntryField
width = 11.0
endwith
columns["COLUMN14"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN14"])
dataLink = form.salesdatamodule1.sales.rowset.fields["comment"]
editorType = 1 // EntryField
width = 21.0
endwith
columns["COLUMN15"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN15"])
dataLink = form.salesdatamodule1.sales.rowset.fields["tax"]
editorType = 1 // EntryField
width = 8.0
endwith
columns["COLUMN16"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN16"])
dataLink = form.salesdatamodule1.sales.rowset.fields["adtax"]
editorType = 1 // EntryField
width = 8.0
endwith
columns["COLUMN17"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN17"])
dataLink = form.salesdatamodule1.sales.rowset.fields["unit"]
editorType = 1 // EntryField
width = 14.0
endwith
columns["COLUMN18"] = new GRIDCOLUMN(form.SALES)
with (columns["COLUMN18"])
dataLink = form.salesdatamodule1.sales.rowset.fields["full"]
editorType = 1 // EntryField
width = 28.0
endwith
with (columns["COLUMN1"].headingControl)
value = "company"
endwith
with (columns["COLUMN2"].headingControl)
value = "item"
endwith
with (columns["COLUMN3"].headingControl)
value = "descrip"
endwith
with (columns["COLUMN4"].editorControl)
picture = "99,99,999.99"
function = "ZJ"
endwith
with (columns["COLUMN4"].headingControl)
value = "mrp"
endwith
with (columns["COLUMN5"].editorControl)
picture = "99.99%"
function = "ZJ"
endwith
with (columns["COLUMN5"].headingControl)
value = "disc"
endwith
with (columns["COLUMN6"].editorControl)
picture = "99,99,999.99"
function = "ZJ"
endwith
with (columns["COLUMN6"].headingControl)
value = "rate"
endwith
with (columns["COLUMN7"].editorControl)
picture = "99,99,999.99"
function = "ZJ"
endwith
with (columns["COLUMN7"].headingControl)
value = "misc"
endwith
with (columns["COLUMN8"].editorControl)
picture = "9,999.99"
function = "ZJ"
fontSize = 12.0
fontBold = true
endwith
with (columns["COLUMN8"].headingControl)
value = "qty"
endwith
with (columns["COLUMN9"].editorControl)
picture = "99,99,99,999.99"
function = "ZJ"
fontSize = 12.0
fontBold = true
endwith
with (columns["COLUMN9"].headingControl)
value = "amount"
endwith
with (columns["COLUMN10"].editorControl)
picture = "99,99,999.99"
function = "ZJ"
endwith
with (columns["COLUMN10"].headingControl)
value = "cgst"
endwith
with (columns["COLUMN11"].editorControl)
picture = "99,99,999.99"
function = "ZJ"
endwith
with (columns["COLUMN11"].headingControl)
value = "sgst"
endwith
with (columns["COLUMN12"].editorControl)
picture = "99,99,999.99"
function = "ZJ"
endwith
with (columns["COLUMN12"].headingControl)
value = "goods"
endwith
with (columns["COLUMN13"].headingControl)
value = "hsn_code"
endwith
with (columns["COLUMN14"].headingControl)
value = "comment"
endwith
with (columns["COLUMN15"].editorControl)
picture = "99.99%"
function = "ZJ"
endwith
with (columns["COLUMN15"].headingControl)
value = "tax"
endwith
with (columns["COLUMN16"].editorControl)
picture = "99.99%"
function = "ZJ"
endwith
with (columns["COLUMN16"].headingControl)
value = "adtax"
endwith
with (columns["COLUMN17"].headingControl)
value = "unit"
endwith
with (columns["COLUMN18"].headingControl)
value = "unit"
endwith
borderStyle = 3 // None
height = 15.0
left = 0.0
top = 3.0
width = 182.0
endwith
this.HEADER = new MUN_CONTAINER(this)
with (this.HEADER)
left = 0.0
top = 0.0
width = 211.4286
height = 3.0
borderStyle = 3 // None
anchor = 2 // Top
endwith
this.HEADER.CASH_NO = new MUN_TEXT(this.HEADER)
with (this.HEADER.CASH_NO)
height = 1.0
left = 1.0
top = 0.0909
width = 49.5714
text = "Cash Memo No."
pageno = 0
endwith
this.HEADER.TDATE = new MUN_TEXTLABEL(this.HEADER)
with (this.HEADER.TDATE)
height = 1.0
left = 32.5714
top = 0.0
width = 6.0
text = "Date"
pageno = 0
endwith
this.HEADER.MDATE = new QUICK_DATE(this.HEADER)
with (this.HEADER.MDATE)
enabled = false
height = 1.0
left = 39.5714
top = 0.0
width = 13.0
value = { . . }
pageno = 0
endwith
this.HEADER.ECNAME = new MUN_ENTRYFIELD(this.HEADER)
with (this.HEADER.ECNAME)
enabled = false
height = 1.0
left = 17.5714
top = 1.3636
width = 30.0
border = false
pageno = 0
endwith
this.HEADER.ECADDR = new MUN_ENTRYFIELD(this.HEADER)
with (this.HEADER.ECADDR)
enabled = false
height = 1.0
left = 65.5714
top = 1.3636
width = 30.0
border = false
pageno = 0
endwith
this.HEADER.MOD_CUST = new MUN_PUSH(this.HEADER)
with (this.HEADER.MOD_CUST)
when = {||type('form.minvoice') #'U' and form.minvoice>0}
onClick = class::MOD_CUST_ONCLICK
height = 1.5
left = 99.0
top = 1.5
width = 30.0
text = "M&odify"
pageno = 0
endwith
this.HEADER.DISCARD_CUST = new MUN_PUSH(this.HEADER)
with (this.HEADER.DISCARD_CUST)
onClick = class::DISCARD_CUST_ONCLICK
enabled = false
height = 1.5
left = 133.0
top = 1.5
width = 30.0
text = "Disca&rd"
pageno = 0
endwith
this.HEADER.MLOCATS = new MUN_COMBO(this.HEADER)
with (this.HEADER.MLOCATS)
when = class::MLOCATS_WHEN
onChangeCommitted = class::MLOCATS_ONCHANGE
height = 1.1818
left = 63.5714
top = -0.1364
width = 16.0
dataSource = 'array {"Head Office"}'
pageno = 0
endwith
this.HEADER.TCNAME = new MUN_TEXTLABEL(this.HEADER)
with (this.HEADER.TCNAME)
height = 1.0
left = -0.4286
top = 1.3636
width = 18.5714
text = "Customer Name :"
pageno = 0
endwith
this.HEADER.MUN_TEXTLABEL1 = new MUN_TEXTLABEL(this.HEADER)
with (this.HEADER.MUN_TEXTLABEL1)
height = 1.0
left = 54.5714
top = 0.0909
width = 9.0
text = "Sale At"
pageno = 0
endwith
this.HEADER.TEXTLABEL1 = new MUN_TEXTLABEL(this.HEADER)
with (this.HEADER.TEXTLABEL1)
height = 1.0
left = 49.5714
top = 1.3636
width = 18.5714
text = "Customer Addr"
pageno = 0
endwith
this.HEADER.NEW_CASHNO = new MUN_SPIN(this.HEADER)
with (this.HEADER.NEW_CASHNO)
onGotFocus = class::NEW_CASHNO_ONGOTFOCUS
onLostFocus = class::NEW_CASHNO_ONLOSTFOCUS
enabled = true
height = 1.0
left = 105.0
top = 0.0
width = 14.0
step = 1.0
rangeMax = 105
value = 1
validRequired = true
rangeRequired = true
pageno = 0
endwith
this.HEADER.GOTO = new MUN_PUSH(this.HEADER)
with (this.HEADER.GOTO)
onClick = class::GOTO_ONCLICK
enabled = true
height = 1.25
left = 121.0
top = -0.1818
width = 25.0
text = "Goto Cash memo no."
pageno = 0
endwith
this.SUBTOTAL = new MUN_TEXTLABEL(this)
with (this.SUBTOTAL)
height = 1.0
left = 156.0
top = 18.5
width = 27.0
text = "Sub Total"
fontBold = false
endwith
this.CON_DISC = new MUN_CONTAINER(this)
with (this.CON_DISC)
visible = false
enabled = false
left = 1.0
top = 18.5
width = 153.0
height = 2.0
endwith
this.CON_DISC.EF_DISC = new MUN_ENTRYFIELD(this.CON_DISC)
with (this.CON_DISC.EF_DISC)
height = 1.1818
left = 47.5714
top = 0.4091
width = 22.0
value = 0.0
pageno = 0
endwith
this.CON_DISC.DISC_VAT = new MUN_COMBO(this.CON_DISC)
with (this.CON_DISC.DISC_VAT)
height = 1.1818
left = 90.5714
top = 0.4091
width = 21.0
pageno = 0
endwith
this.CON_DISC.MUN_TEXT1 = new MUN_TEXT(this.CON_DISC)
with (this.CON_DISC.MUN_TEXT1)
height = 1.0
left = 18.5714
top = 0.5909
width = 28.0
text = "Please enter the Discount"
pageno = 0
endwith
this.CON_DISC.MUN_TEXTLABEL1 = new MUN_TEXTLABEL(this.CON_DISC)
with (this.CON_DISC.MUN_TEXTLABEL1)
height = 1.0
left = 72.5714
top = 0.5909
width = 17.0
text = "Vat Rate"
pageno = 0
endwith
this.CON_DISC.DISC_SAVE = new MUN_PUSH(this.CON_DISC)
with (this.CON_DISC.DISC_SAVE)
onClick = class::DISC_SAVE_ONCLICK
height = 1.25
left = 113.5714
top = 0.3636
width = 15.0
text = "&Save"
pageno = 0
endwith
this.CON_DISC.DISC_DISCARD = new MUN_PUSH(this.CON_DISC)
with (this.CON_DISC.DISC_DISCARD)
onClick = class::DISC_DISCARD_ONCLICK
height = 1.2273
left = 129.5714
top = 0.3636
width = 15.0
text = "D&iscard"
pageno = 0
endwith
this.DISCO = new MUN_TEXTLABEL(this)
with (this.DISCO)
height = 1.0
left = 156.0
top = 19.5
width = 27.0
text = "Discount"
endwith
this.GTOTAL = new MUN_TEXTLABEL(this)
with (this.GTOTAL)
height = 1.0
left = 156.0
top = 20.5
width = 27.0
text = "Grand Total"
fontBold = false
endwith
this.TOTAL_QTY = new MUN_TEXT(this)
with (this.TOTAL_QTY)
height = 2.0
left = 156.0
top = 22.0
width = 27.0
fontBold = false
text = "Total Qty"
endwith
this.FOOTER = new FOOTER(this)
with (this.FOOTER)
left = 0.0
top = 26.4545
width = 211.4286
height = 3.0
endwith
with (this.FOOTER.ADD)
when = class::MODIFY_WHEN
onClick = class::ADD_ONCLICK
endwith
with (this.FOOTER.MODIFY)
when = class::MODIFY_WHEN
onClick = class::MODIFY_ONCLICK
left = 21.8571
endwith
with (this.FOOTER.DELETE)
when = class::MODIFY_WHEN
onClick = class::DELETE_ONCLICK
left = 43.1429
top = 0.3636
endwith
with (this.FOOTER.PRINT)
when = class::PRINT_WHEN
onClick = class::PRINT_ONCLICK
left = 64.4286
top = 0.3636
text = "&* Print"
endwith
with (this.FOOTER.DISC)
when = class::DISC_WHEN
onClick = class::DISC_ONCLICK
left = 128.2857
top = 0.3636
endwith
with (this.FOOTER.CLOSE)
left = 85.7143
top = 0.3636
endwith
with (this.FOOTER.NEW)
left = 107.0
top = 0.3636
endwith
this.FOOTER.HALF_PAGE = new TOGGLE(this.FOOTER)
with (this.FOOTER.HALF_PAGE)
height = 1.0
left = 183.5714
top = 1.4091
width = 7.4286
pageno = 0
borderStyle = 4 // Single
endwith
this.FOOTER.MUN_TEXT1 = new MUN_TEXT(this.FOOTER)
with (this.FOOTER.MUN_TEXT1)
height = 1.0
left = 182.5714
top = -0.0909
width = 32.0
text = "Half Page Print"
pageno = 0
endwith
this.rowset = this.salesdatamodule1.sales.rowset
function ADD_onClick()
parameters rapid
form.dis_able()
form.additem.itemsave.onclick = form.save_item
if not form.additem.visible
if rapid>0
if form.invedatamodule1.inve.rowset.applylocate("recno ="+rapid)
//form.invedatamodule1.inve.rowset.applylocate("full ='"+mlastitem+"'")
mlastitem = alltrim(form.INVEDATAMODULE1.INVE.rowset.fields["full"].value)
mo_item.recno = form.INVEDATAMODULE1.INVE.rowset.fields["recno"].value
mo_item.company = form.INVEDATAMODULE1.INVE.rowset.fields["company"].value
mo_item.item = form.INVEDATAMODULE1.INVE.rowset.fields["item"].value
mo_item.descrip = form.INVEDATAMODULE1.INVE.rowset.fields["descrip"].value
mo_item.unit = form.INVEDATAMODULE1.INVE.rowset.fields["unit"].value
mo_item.mrp = form.INVEDATAMODULE1.INVE.rowset.fields["mrp"].value
mo_item.cprice = form.INVEDATAMODULE1.INVE.rowset.fields["cprice"].value
mo_item.disc = form.INVEDATAMODULE1.INVE.rowset.fields["disc"].value
mo_item.offerp = form.INVEDATAMODULE1.INVE.rowset.fields["offerp"].value
mo_item.tax = val(left(form.INVEDATAMODULE1.INVE.rowset.fields["gst"].value,5))
mo_item.adtax = val(right(form.INVEDATAMODULE1.INVE.rowset.fields["gst"].value,5))
mo_item.generic = to_logical(form.INVEDATAMODULE1.INVE.rowset.fields["generic"].value)
mo_item.hsn_code= form.invedatamodule1.inve.rowset.fields["hsn_code"].value
else
do select2.wfm
endif
else
do select2.wfm
endif
if mo_item.recno >0
form.header.mod_cust.enabled = false
class::add_item()
else
form.en_abled()
form.footer.add.setfocus()
endif
endif
return
function DELETE_onClick()
form.dis_able()
mitem = alltrim(form.rowset.fields["company"].value) + " " +alltrim(form.rowset.fields["item"].value) + " " + alltrim(form.rowset.fields["descrip"].value)
mch = msgbox(mitem , "Delete the following item",16+3+256)
if mch = 6
if form.rowset.count()>1 or form.minvoice = form.last()
recno = form.rowset.fields["mast"].value
qty = form.rowset.fields["qty"].value
mrow = form.rowset.fields["recno"].value
cmd = 'delete from sales'+mcompany.fyear + ' where recno = '+ str(mrow,8,0)
mcompany.adodb.executesql(cmd)
if last_updated() >0
if mcompany.remote
cmd = 'delete from sales'+mcompany.fyear + ' where rrecno = '+ str(mrow,8,0)
endif
mcompany.tr_log(cmd)
form.update_inv(recno,qty*-1,form.mlocat)
endif
else
msgbox("cannot delete the last item of the cash memo ")
endif
class::refresh_data()
endif
form.en_abled()
form.header.mod_cust.enabled = true
form.footer.add.setfocus()
return
function DISCARD_CUST_onClick()
mch = msgbox("Discard the changes","Alert",64+4)
if mch = 7
//do nothing
else
if mch = 6
form.header.mod_cust.text = "M&odify"
form.header.ecaddr.enabled = false
form.header.ecname.enabled = false
form.header.mdate.enabled = false
form.header.discard_cust.enabled = false
form.mcust = form.rowset.fields["cname"].value
form.maddr = form.rowset.fields["caddr"].value
form.mdate = form.rowset.fields["ddate"].value
form.header.ecname.value = form.mcust
form.header.ecaddr.value = form.maddr
form.header.mdate.assign_val(form.mdate)
// form.header.mdate.value = dtoc(form.mdate)
// form.header.mdate.date = form.mdate
form.en_abled()
form.footer.add.setfocus()
endif
endif
return
function DISC_DISCARD_onClick()
form.con_disc.ef_disc.value = 0
form.en_abled()
form.footer.add.setfocus()
form.header.mod_cust.enabled = true
return
function DISC_SAVE_onClick()
disc_save = true
form.refresh_data()
if form.rowset.count() = 0 or form.minvoice <=0
disc_save = false // there are no items in the cash memo hence do not save
endif
if disc_save
if form.salesdatamodule1.disco.rowset.count() >0
//A discounted entry is there we are simply editing it
// A discounted entry is there delete / alter it
mrow = form.salesdatamodule1.disco.rowset.fields["recno"].value
if abs(form.con_DISC.ef_disc.value) < 0.02
cmd = 'delete from sales'+mcompany.fyear + ' where recno = '+ str(mrow,8,0)
mcompany.adodb.executesql(cmd)
if last_updated() >0
if mcompany.remote
cmd = 'delete from sales'+mcompany.fyear + ' where rrecno = '+ str(mrow,8,0)
endif
mcompany.tr_log(cmd)
endif
else
mamt = form.con_DISC.ef_disc.value*-1
mtax = val(left(form.con_disc.disc_vat.value,5))
madtax = val(substr(form.con_disc.disc_vat.value,7,5))
mcgst = round(split(mamt,mtax + madtax)/2 , 2)
mgoods = mamt - mcgst*2
cmd = [UPDATE sales]+mcompany.fyear + [ SET ]
cmd+= [ rate = ] + str(form.con_DISC.ef_disc.value,10,2)
cmd+= [ ,tax = ] +left(form.con_disc.disc_vat.value,5)
cmd+= [ ,adtax = ]+ substr(form.con_disc.disc_vat.value,7,5)
cmd+= [ ,hsn_code = ']+ escape_str(substr(form.con_disc.disc_vat.value,13,4))+[']
cmd+= [ ,cgst = ]+str(mcgst,10,2)
cmd+= [ ,sgst = ]+str(mcgst,10,2)
cmd+= [ ,goods = ]+ str(mgoods,10,2)
cmd+= [ ,username = '] +escape_str(mcompany.user)+ [']
cmd+= [ ,access = ] + str(mcompany.access , 2,0)
cmd+= [ ,t_time = '] + getseconds()+[']
cmd+= [ ,comp = ']+getenv('computername') + [']
cmd+=[ where recno = ]+ str(mrow,8,0)
mcompany.adodb.executesql(cmd)
if last_updated() >0
if mcompany.remote
cmd = [UPDATE sales]+mcompany.fyear + [ SET ]
cmd+= [ rate = ] + str(form.con_DISC.ef_disc.value,10,2)
cmd+= [ ,tax = ] +left(form.con_disc.disc_vat.value,5)
cmd+= [ ,adtax = ]+ substr(form.con_disc.disc_vat.value,7,5)
cmd+= [ ,hsn_code = ']+ substr(form.con_disc.disc_vat.value,13,4)+[']
cmd+= [ ,cgst = ]+str(mcgst,10,2)
cmd+= [ ,sgst = ]+str(mcgst,10,2)
cmd+= [ ,goods = ]+ str(mgoods,10,2)
cmd+= [ ,username = '] + escape_str(mcompany.user)+ [']
cmd+= [ ,access = ] + str(mcompany.access , 2,0)
cmd+= [ ,t_time = '] + getseconds()+[']
cmd+= [ ,comp = ']+getenv('computername') + [']
cmd+=[ where rrecno = ]+ str(mrow,8,0)
endif
mcompany.tr_log(cmd)
endif
endif
else
if ABS(form.con_DISC.ef_disc.value) > 0.02
mamt = form.con_DISC.ef_disc.value * -1
mtax = val(left(form.con_disc.disc_vat.value,5))
madtax = val(substr(form.con_disc.disc_vat.value,7,5))
mcgst = round(split(mamt,mtax + madtax)/2,2)
mgoods = mamt - mcgst*2
cmd = [INSERT INTO sales]+mcompany.fyear + [ (mast , company , item , descrip , comment , mrp , locat]
cmd+=[ , disc , rate , qty , invoice_no , cname , caddr]
cmd+=[ , ddate , unit , tax , adtax ]
cmd+=[ , hsn_code , misc , sname , cgst ]
cmd+=[ , sgst , goods , username ,access ]
cmd+=[ , t_time , comp) ]
cmd+= [ VALUES ( -1 , "Discount" , " " , " " , " " , 0 , "] +form.mlocat+ ["]
cmd+= [, 0,]+ str(abs(mamt),10,2)+[ , -1 ,]+ str(form.minvoice,8,0)+ [, "]+escape_str(form.mcust)+[" , "]+escape_str(form.maddr)+["]
cmd+= [ ,"]+dtos(form.header.mdate.date) + [" , " " , ]+str(mtax,5,2) +[,]+ str(madtax,5,2)
cmd+= [ ,"] +substr(form.con_disc.disc_vat.value,13,4) + [",0 , " ",] + str(mcgst,9,2)
cmd+= [ ,] + str(mcgst,9,2) + [,]+ str(mgoods,11,2) + [,"]+escape_str(mcompany.user)+[" , ] + str(mcompany.access,2,0)
cmd+= [ ,"]+ getseconds()+ [","]+getenv('computername') +[")]
mcompany.adodb.executesql(cmd)
if mcompany.remote
cmd = [INSERT INTO sales]+mcompany.fyear + [ (mast , company , item , descrip , comment , mrp , locat]
cmd+=[ , disc , rate , qty , invoice_no , cname , caddr]
cmd+=[ , ddate , unit , tax , adtax ]
cmd+=[ , hsn_code , misc , sname , cgst ]
cmd+=[ , sgst , goods , username ,access ]
cmd+=[ , t_time , comp,rrecno) ]
cmd+= [ VALUES ( -1 , "Discount" , " " , " " , " " , 0 , "] +form.mlocat+ ["]
cmd+= [, 0,]+ str(abs(mamt),10,2)+[ , -1 ,]+ str(form.minvoice,8,0)+ [, "]+escape_str(form.mcust)+[" , "]+escape_str(form.maddr)+["]
cmd+= [ ,"]+dtos(form.header.mdate.date) + [" , " " , ]+str(mtax,5,2) +[,]+ str(madtax,5,2)
cmd+= [ ,"] +substr(form.con_disc.disc_vat.value,13,4) + [",0 , " ",] + str(mcgst,9,2)
cmd+= [ ,] + str(mcgst,9,2) + [,]+ str(mgoods,11,2) + [,"]+mcompany.user +[" , ] + str(mcompany.access,2,0)
cmd+= [ ,"]+ getseconds()+ [","]+getenv('computername') +[",]+last_insert_id()+[)]
endif
mcompany.tr_log(cmd)
endif
endif
endif
form.con_disc.ef_disc.value = 0
form.refresh_data()
form.en_abled()
form.footer.add.setfocus()
form.header.mod_cust.enabled = true
return
function DISC_onClick()
form.dis_able()
form.refresh_data()
mtax_slab = new array()
mbook = form.rowset.bookmark()
form.rowset.first()
if form.rowset.count()>0
do while not (form.rowset.endofset)
mtax = str(form.rowset.fields["tax"].value,5,2)+"+"+str(form.rowset.fields["adtax"].value,5,2)+" "+left(form.rowset.fields["hsn_code"].value,4)
if mtax_slab.scan(mtax) = 0
mtax_slab.add(mtax)
endif
form.rowset.next()
enddo
endif
form.rowset.goto(mbook)
form.header.mod_cust.enabled = false
form.con_disc.visible = true
form.con_disc.enabled = true
form.con_disc.disc_vat.datasource = 'array mtax_slab'
*form.salesdatamodule1.disco.requery()
if form.salesdatamodule1.disco.rowset.count() > 0
form.con_DISC.ef_disc.value = form.salesdatamodule1.disco.rowset.fields["rate"].value
mtax = str(form.salesdatamodule1.disco.rowset.fields["tax"].value,5,2)+"+"+str(form.salesdatamodule1.disco.rowset.fields["adtax"].value,5,2)+;
alltrim(form.salesdatamodule1.disco.rowset.fields["hsn_code"].value)
if mtax_slab.scan(mtax) = 0
//do nothing value of tax slab will be automatically set to any one of the values
else
form.con_disc.disc_vat.value = mtax
endif
endif
form.con_DISC.ef_disc.setfocus()
return
function DISC_when(bOpen)
retval = false
if form.rowset.count()>0
retval = true
endif
return retval
function GOTO_onClick()
form.minvoice = form.header.new_cashno.value
form.refresh_data()
form.footer.add.setfocus()
return
function ITEMDISCARD_onClick()
additem::itemdiscard_onclick()
form.header.mod_cust.enabled = true
form.en_abled()
form.footer.add.setfocus()
return
function MDESCRIP_onGotFocus()
this.keyboard( "{End}" )
on key label uparrow up_arrow()
return
function MDISC_valid()
if this.value <0 or this.value >100
retval = false
else
retval = true
endif
return retval
function MLOCATS_onChange()
do case
case lower(this.value) = "head office"
form.mlocat = "0"
case this.value = alltrim(mcompany.go1)
form.mlocat = "1"
case this.value = alltrim(mcompany.go2)
form.mlocat = "2"
endcase
form.refresh_data()
form.footer.add.setfocus()
return
function MLOCATS_when(bOpen)
retval = true
if type('form.minvoice') <> "U"
if form.minvoice>0
retval = false
endif
endif
if mcompany.remote
retval = false
endif
return retval
function MODIFY_onClick()
form.modi_item = new object()
form.modi_item.recno = 0
form.modi_item.allow = true
if (mcompany.access <3 AND form.rowset.fields["access"].value > mcompany.access) or (mcompany.access = 1 and mcompany.user <> alltrim(form.rowset.fields["username"].value))
msgbox("Sorry you cannot edit the item ")
form.modi_item.allow = false
endif
if form.modi_item.allow
form.dis_able()
form.header.mod_cust.enabled = false
form.modi_item.recno = form.rowset.fields["recno"].value
//store values already stored in record to memory variable for later comparision.
form.additem.enabled = true
form.additem.visible = true
form.additem.mcomp.value = form.rowset.fields["company"].value
form.additem.mitem.value = form.rowset.fields["item"].value
form.additem.mdescrip.value = form.rowset.fields["descrip"].value
form.additem.mmrp.value = form.rowset.fields["mrp"].value
form.additem.mdisc.value = form.rowset.fields["disc"].value
form.additem.mrate.value = form.rowset.fields["rate"].value
form.additem.mqty.value = form.rowset.fields["qty"].value
form.additem.mmisc.value = form.rowset.fields["misc"].value
form.additem.s_helper.value = form.rowset.fields["sname"].value
form.additem.mrate.setfocus()
form.additem.mcomment.value = form.rowset.fields["comment"].value
form.modi_item.mast = form.rowset.fields["mast"].value
form.modi_item.company = form.rowset.fields["company"].value
form.modi_item.item = form.rowset.fields["item"].value
form.modi_item.descrip = form.rowset.fields["descrip"].value
form.modi_item.comment = form.rowset.fields["comment"].value
form.modi_item.mrp = form.rowset.fields["mrp"].value
form.modi_item.locat = form.rowset.fields["locat"].value
form.modi_item.disc = form.rowset.fields["disc"].value
form.modi_item.rate = form.rowset.fields["rate"].value
form.modi_item.qty = form.rowset.fields["qty"].value
form.modi_item.misc = form.rowset.fields["misc"].value
form.modi_item.sname = form.rowset.fields["sname"].value
form.modi_item.descrip = form.rowset.fields["descrip"].value
form.modi_item.user = form.rowset.fields["username"].value
form.modi_item.time = form.rowset.fields["t_time"].value
form.modi_item.tax = form.rowset.fields["tax"].value
form.modi_item.adtax = form.rowset.fields["adtax"].value
form.additem.itemsave.onclick = form.fmodi_item
endif
return
function MODIFY_when(bOpen)
retval = false
if mcompany.access >1 or mcompany.sdate = date()
retval = true
endif
if type('form.minvoice')#'U' and form.minvoice < 1 and this.name # "ADD"
retval = false
endif
return retval
function MOD_CUST_onClick()
if this.text = "M&odify"
form.refresh_data()
this.text = "&Save the changes"
form.header.ecaddr.enabled = true
form.header.ecname.enabled = true
form.header.ecname.setfocus()
if mcompany.access >1
form.header.mdate.enabled = true
endif
form.header.discard_cust.enabled = true
form.dis_able()
else
mch = msgbox("Save the changes","Alert",64+3)
if mch = 2
//do nothing
else
if mch = 6
cmd = [UPDATE sales]+mcompany.fyear + [ SET ]
cmd+= [ cname = '] +escape_str(form.header.ecname.value) + [']
cmd+= [ ,caddr = '] +escape_str(form.header.ecaddr.value) + [']
cmd+= [ ,ddate = '] +dtos(form.header.mdate.date) + [']
cmd+=[ where invoice_no = ]+ str(form.minvoice,8,0) + [ AND locat = ']+form.mlocat + [']
mcompany.adodb.executesql(cmd)
mcompany.tr_log(cmd)
endif
this.text = "M&odify"
form.header.ecaddr.enabled = false
form.header.ecname.enabled = false
form.header.mdate.enabled = false
form.header.discard_cust.enabled = false
form.en_abled()
form.footer.add.setfocus()
endif
endif
return
function refresh_data
local mcount,mtotal , mdisco,bookmark
numlock()
mtime1 = seconds()
m_curr_rec = form.rowset.fields["recno"].value
form.salesdatamodule1.sales.params["invoice"].value = str(form.minvoice,10,0)
form.salesdatamodule1.sales.params["location"].value = form.mlocat
form.salesdatamodule1.sales.requery()
mtime2 = seconds()
form.salesdatamodule1.disco.params["invoice"].value = str(form.minvoice,10,0)
form.salesdatamodule1.disco.params["location"].value = form.mlocat
form.salesdatamodule1.disco.requery()
mtime3 = seconds()
mtotal = 0
mcount = 0
if form.rowset.count()>0
form.mcust = form.rowset.fields["cname"].value
form.maddr = form.rowset.fields["caddr"].value
form.mdate = form.rowset.fields["ddate"].value
bookmark = null
do while not (form.rowset.endofset)
if form.rowset.fields["recno"].value = m_curr_rec
bookmark = form.rowset.bookmark()
endif
mtotal += form.rowset.fields["qty"].value * form.rowset.fields["rate"].value - form.rowset.fields["misc"].value
mcount+=form.rowset.fields["qty"].value
form.rowset.next()
enddo
if bookmark # null
form.rowset.goto(bookmark)
else
form.rowset.last()
endif
else
if form.salesdatamodule1.disco.rowset.count() >0
cmd = "DELETE from sales"+mcompany.fyear
cmd+=" where invoice_no = "+ str(form.minvoice,8,0) + " AND locat = '"+form.mlocat + "'" + " AND mast = -1"
form.salesdatamodule1.disco.rowset.first()
mcompany.adodb.executesql(cmd)
mcompany.tr_log(cmd)
form.salesdatamodule1.disco.requery()
endif
form.mdate = min(date(),mcompany.lyear)
form.mdate = max(form.mdate , mcompany.byear)
store space(30) to form.mcust , form.maddr
form.minvoice = -1
endif
form.header.ecname.value = form.mcust
form.header.ecaddr.value = form.maddr
form.header.cash_no.text = "Cash Memo No. <font color='red'><b>"+ iif(form.minvoice = -1 , "new" , form.minvoice);
+ "</b></font> "
form.header.tdate.text = "Date"
form.header.mdate.assign_val(form.mdate)
form.subtotal.text = "Sub Total "+ str(mtotal,10,2)
if form.salesdatamodule1.disco.rowset.count() >0
mdisco = form.salesdatamodule1.disco.rowset.fields["rate"].value
form.disco.text = "Discount "+ str(mdisco*-1,10,2)
else
form.disco.text = " "
mdisco = 0
endif
form.gtotal.text = "Grand Total "+ str(mtotal-mdisco,10,2)
form.total_qty.text = "Total Qty " + str(mcount,6,mcompany.dec)
form.total_qty.text += chr(13) + "Total items " + str(form.rowset.count(),5,0)
mtime4 = seconds()
form.date_range()
form.footer.add.setfocus()
return
function form_canClose()
_app.e_sales = NULL
form.rapid_dis()
close procedure sales2.dmd
close procedure inve.dmd
close procedure mun_controls.cc
if mcompany.narrow
close procedure p_sales.rep
else
close procedure p2_sales.rep
endif
return true
function form_onOpen()
form.minvoice = -1
_app.e_sales = form
// if mcompany.narrow
set procedure to p_sales.rep additive
// else
set procedure to p2_sales.rep additive
// endif
// form.r = new p_salesreport()
class::num_onopen()
form.text = "Cash Memo Entry of "+ mcompany.company
form.header.mlocats.dataSource = loc_combo()
form.mlocat = "0"
form.mdate = min(date(),mcompany.lyear)
form.mdate = max(form.mdate,mcompany.byear)
form.header.new_cashno.rangemax = form.last()
store space(30) to form.mcust , form.maddr
form.rowset.first()
class::refresh_data()
form.footer.add.setfocus()
class::rapid_en()
form.header.mdate.validErrormsg = "Please enter a date between "+dtoc(mcompany.byear) + ;
" & " + dtoc(mcompany.lyear)
form.header.mdate.rangemax = mcompany.lyear
form.header.mdate.rangemin = mcompany.byear
if mcompany.remote
form.header.mlocats.value = location(mcompany.remote_loc)
form.mlocat = mcompany.remote_loc
endif
return
function fmodi_item()
local bookmark
form.salesdatamodule1.sales.requery()
if form.rowset.count()>0 AND form.modi_item.recno >0
bookmark = null
do while not (form.rowset.endofset)
if form.rowset.fields["recno"].value = form.modi_item.recno
bookmark = form.rowset.bookmark()
endif
form.rowset.next()
enddo
if bookmark # null
if (form.additem.mqty.value = 0 OR empty(form.additem.mcomp.value)) AND form.rowset.count() =1
msgbox("Cannot delete last item of the cash memo ")
else
form.rowset.goto(bookmark)
if form.additem.mqty.value <> 0
mamt = form.additem.mrate.value*form.additem.mqty.value - form.additem.mmisc.value
mcgst = round(split(mamt,form.modi_item.tax +form.modi_item.adtax)/2 , 2)
mgoods= mamt - mcgst*2
cmd = [UPDATE sales]+mcompany.fyear + [ SET ]
cmd+= [ company = '] + escape_str(form.additem.mcomp.value)+ [']
cmd+= [ ,item = '] + escape_str(form.additem.mitem.value)+ [']
cmd+= [ ,descrip = '] + escape_str(form.additem.mdescrip.value)+ [']
cmd+= [ ,comment = '] + escape_str(iif( trim(form.additem.mcomment.value)="COMMENT",[ ],form.additem.mcomment.value))+ [']
cmd+= [ ,mrp = ] +str(form.additem.mmrp.value,11,2)
cmd+= [ ,disc = ] +str(form.additem.mdisc.value,6,2)
cmd+= [ ,rate = ] +str(form.additem.mrate.value,11,2)
cmd+= [ ,qty = ] +str(form.additem.mqty.value,11,2)
cmd+= [ ,misc = ] +str(form.additem.mmisc.value,11,2)
cmd+= [ ,sname = '] +escape_str(form.additem.s_helper.value)+ [']
cmd+= [ ,cgst = ]+str(mcgst,10,2)
cmd+= [ ,sgst = ]+str(mcgst,10,2)
cmd+= [ ,goods = ]+ str(mgoods,10,2)
cmd+= [ ,username = '] + escape_str(mcompany.user)+ [']
cmd+= [ ,access = ] + str(mcompany.access , 2,0)
cmd+= [ ,t_time = '] + getseconds()+[']
cmd+= [ ,comp = ']+escape_str(getenv('computername'))+ [']
cmd+=[ where recno = ]+ str(form.modi_item.recno,8,0)
mcompany.adodb.executesql(cmd)
if mcompany.remote
cmd = [UPDATE sales]+mcompany.fyear + [ SET ]
cmd+= [ company = '] + escape_str(form.additem.mcomp.value)+ [']
cmd+= [ ,item = '] + escape_str(form.additem.mitem.value)+ [']
cmd+= [ ,descrip = '] + escape_str(form.additem.mdescrip.value)+ [']
cmd+= [ ,comment = '] + escape_str(iif( trim(form.additem.mcomment.value)="COMMENT",[ ],form.additem.mcomment.value))+ [']
cmd+= [ ,mrp = ] +str(form.additem.mmrp.value,11,2)
cmd+= [ ,disc = ] +str(form.additem.mdisc.value,6,2)
cmd+= [ ,rate = ] +str(form.additem.mrate.value,11,2)
cmd+= [ ,qty = ] +str(form.additem.mqty.value,11,2)
cmd+= [ ,misc = ] +str(form.additem.mmisc.value,11,2)
cmd+= [ ,sname = '] +escape_str(form.additem.s_helper.value)+ [']
cmd+= [ ,cgst = ]+str(mcgst,10,2)
cmd+= [ ,sgst = ]+str(mcgst,10,2)
cmd+= [ ,goods = ]+ str(mgoods,10,2)
cmd+= [ ,username = '] + escape_str(mcompany.user)+ [']
cmd+= [ ,access = ] + str(mcompany.access , 2,0)
cmd+= [ ,t_time = '] + getseconds()+[']
cmd+= [ ,comp = ']+escape_str(getenv('computername'))+ [']
cmd+=[ where rrecno = ]+ str(form.modi_item.recno,8,0)
endif
mcompany.tr_log(cmd)
else
cmd = "delete from sales"+mcompany.fyear + " where recno = "+ str(form.modi_item.recno,8,0)
mcompany.adodb.executesql(cmd)
if mcompany.remote
cmd = "delete from sales"+mcompany.fyear + " where rrecno = "+ str(form.modi_item.recno,8,0)
endif
mcompany.tr_log(cmd)
endif
form.update_inv(form.modi_item.mast , form.additem.mqty.value+form.modi_item.qty*-1 , form.mlocat ,"lsprice" ,form.additem.mrate.value )
endif
else
msgbox("Sorry the edited record has been deleted by someone else")
endif
form.modi_item = new object()
form.additem.mcomp.value = " "
form.additem.mitem.value = " "
form.additem.mdescrip.value = " "
form.additem.mmrp.value = 0
form.additem.mdisc.value = 0
form.additem.mrate.value = 0
form.additem.mqty.value = 0
form.additem.mmisc.value = 0
form.additem.enabled = false
form.additem.visible = false
class::refresh_data()
form.en_abled()
form.footer.add.setfocus()
form.header.mod_cust.enabled = true
form.additem.itemsave.onclick = form.save_item
endif
return
function save_item()
if not empty(form.additem.mcomp.value) and form.additem.mqty.value <>0
time1 = seconds()
form.minvoice = iif(form.minvoice>0 , form.minvoice ,form.last()+1 )
mamt = form.additem.mrate.value*form.additem.mqty.value - form.additem.mmisc.value
mcgst = round(split(mamt,mo_item.tax +mo_item.adtax)/2 , 2)
mgoods= mamt - mcgst*2
temp = form.header.mdate.date
cmd = [INSERT INTO sales]+mcompany.fyear + [ (mast , company , item , descrip , comment , mrp , locat]
cmd+=[ , disc , rate , qty , invoice_no , cname , caddr]
cmd+=[ , ddate , unit , tax , adtax ]
cmd+=[ , hsn_code , misc , sname , cgst ]
cmd+=[ , sgst , goods , username ,access ]
cmd+=[ , t_time , comp) ]
cmd+= [ VALUES ( ]+str(mo_item.recno,8,0)+[, "]+escape_str(form.additem.mcomp.value)+[" , "]+escape_str(form.additem.mitem.value)+[ " , "]+escape_str(form.additem.mdescrip.value)+[" , "]+escape_str(iif( trim(form.additem.mcomment.value)="COMMENT",[ ],form.additem.mcomment.value))+[" , ]+str(form.additem.mmrp.value,11,2)+[ , "] +form.mlocat+ ["]
cmd+= [,]+str(form.additem.mdisc.value,11,2)+[,]+ str(form.additem.mrate.value,10,2)+[ ,]+ str(form.additem.mqty.value,8,mcompany.dec)+[,]+ str(form.minvoice,8,0)+ [, "]+escape_str(form.mcust)+[" , "]+escape_str(form.maddr)+["]
cmd+= [ ,"]+dtos(form.header.mdate.date) + [" , "]+escape_str(mo_item.unit)+[" , ]+str(mo_item.tax,5,2) +[,]+ str(mo_item.adtax,5,2)
cmd+= [ ,"] +escape_str(left(mo_item.hsn_code,4))+ [",]+str(form.additem.mmisc.value,11,2)+[ ,"]+escape_str(form.additem.s_helper.value)+[",] + str(mcgst,9,2)
cmd+= [ ,] + str(mcgst,9,2) + [,]+ str(mgoods,11,2) + [,"]+escape_str(mcompany.user)+[" , ] + str(mcompany.access,2,0)
cmd+= [ ,"]+ getseconds()+ [","]+escape_str(getenv('computername'))+[")]
mcompany.adodb.executesql(cmd)
if mcompany.remote
cmd = [INSERT INTO sales]+mcompany.fyear + [ (mast , company , item , descrip , comment , mrp , locat]
cmd+=[ , disc , rate , qty , invoice_no , cname , caddr]
cmd+=[ , ddate , unit , tax , adtax ]
cmd+=[ , hsn_code , misc , sname , cgst ]
cmd+=[ , sgst , goods , username ,access ]
cmd+=[ , t_time , comp,rrecno) ]
cmd+= [ VALUES ( ]+str(mo_item.recno,8,0)+[, "]+escape_str(form.additem.mcomp.value)+[" , "]+escape_str(form.additem.mitem.value)+[ " , "]+escape_str(form.additem.mdescrip.value)+[" , "]+escape_str(iif( trim(form.additem.mcomment.value)="COMMENT",[ ],form.additem.mcomment.value))+[" , ]+str(form.additem.mmrp.value,11,2)+[ , "] +form.mlocat+ ["]
cmd+= [,]+str(form.additem.mdisc.value,11,2)+[,]+ str(form.additem.mrate.value,10,2)+[ ,]+ str(form.additem.mqty.value,8,mcompany.dec)+[,]+ str(form.minvoice,8,0)+ [, "]+escape_str(form.mcust)+[" , "]+escape_str(form.maddr)+["]
cmd+= [ ,"]+dtos(form.header.mdate.date) + [" , "]+escape_str(mo_item.unit)+[" , ]+str(mo_item.tax,5,2) +[,]+ str(mo_item.adtax,5,2)
cmd+= [ ,"] +escape_str(left(mo_item.hsn_code,4))+ [",]+str(form.additem.mmisc.value,11,2)+[ ,"]+escape_str(form.additem.s_helper.value)+[",] + str(mcgst,9,2)
cmd+= [ ,] + str(mcgst,9,2) + [,]+ str(mgoods,11,2) + [,"]+escape_str(mcompany.user)+[" , ] + str(mcompany.access,2,0)
cmd+= [ ,"]+ getseconds() + [","]+escape_str(getenv('computername'))+[",]+last_insert_id()+[)]
endif
mcompany.tr_log(cmd)
form.update_inv(mo_item.recno , form.additem.mqty.value , form.mlocat ,"lsprice" , form.additem.mrate.value)
mo_item = new object()
form.additem.mcomp.value = " "
form.additem.mitem.value = " "
form.additem.mdescrip.value= " "
form.additem.mmrp.value = 0
form.additem.mdisc.value = 0
form.additem.mrate.value = 0
form.additem.mqty.value = 0
form.additem.mmisc.value = 0
form.additem.enabled = false
form.additem.visible = false
form.rowset.last()
else
*msgbox("Company name cannot remain blank, Unable to save")
endif
class::refresh_data()
form.salesdatamodule1.sales.rowset.last()
form.en_abled()
form.footer.add.setfocus()
form.header.mod_cust.enabled = true
return
function dis_able()
form.footer.add.enabled = false
form.footer.delete.enabled = false
form.footer.modify.enabled = false
form.footer.print.enabled = false
form.footer.new.enabled = false
form.header.goto.enabled = false
form.header.new_cashno.enabled = false
form.footer.disc.enabled = false
form.rapid_dis()
return true
function en_abled()
form.footer.add.enabled = true
form.footer.delete.enabled = true
form.footer.modify.enabled = true
form.footer.print.enabled = true
form.footer.new.enabled = true
form.header.goto.enabled = true
form.header.new_cashno.enabled = true
form.footer.disc.enabled = true
form.con_disc.enabled = false
form.con_disc.visible = false
form.additem.visible = false
form.rapid_en()
return true
function NEW_CASHNO_onGotFocus()
form.header.new_cashno.rangemax = form.last()
form.rapid_dis()
return
function NEW_CASHNO_onLostFocus()
form.rapid_en()
return
function NEW_onClick()
form.minvoice = -1
form.refresh_data()
return
function PRINT_onClick()
form.refresh_data()
if not form.footer.half_page.value
r = new p_salesreport()
else
r = new p2_salesreport()
endif
mrender = 0
r.salesdatamodule1.sales.params["invoice"].value = str(form.minvoice,10,0)
r.salesdatamodule1.sales.params["location"].value = form.mlocat
r.salesdatamodule1.sales.requery()
r.salesdatamodule1.psale.params["invoice"].value = str(form.minvoice,10,0)
r.salesdatamodule1.psale.params["location"].value = form.mlocat
r.salesdatamodule1.psale.requery()
r.salesdatamodule1.disco.params["invoice"].value = str(form.minvoice,10,0)
r.salesdatamodule1.disco.params["location"].value = form.mlocat
r.salesdatamodule1.disco.requery()
r.title = "Cash memo no. "+str(form.minvoice,10,0)
// if mcompany.narrow and not empty(mcompany.printer)
if not form.footer.half_page.value
load_ini("cashmemo.ini","r.printer")
// msgbox("loaded ini")
else
load_ini("cashmemo_h.ini","r.printer")
endif
r.title = "Cash Memo no. "+form.minvoice
r.render()
// msgbox("printed ")
// else
// if r.printer.chooseprinter()
// r.title = "Cash Memo no. "+form.minvoice
// r.render()
// endif
// endif
return
function PRINT_when(bOpen)
retval = false
if form.rowset.count() >0
retval = true
endif
return retval
function SALES_onGotFocus()
form.rapid_dis()
return
function SALES_onLostFocus()
if not form.additem.visible
form.rapid_en()
endif
return
function last()
local mcount
form.salesdatamodule1.last.params["location"].value = form.mlocat
form.salesdatamodule1.last.requery()
mcount = form.salesdatamodule1.last.rowset.fields["numb"].value
if mcount = null
mcount = 0
endif
return mcount
function rapid_en()
if form.additem.visible = false
on key label pgup _app.e_sales.plus1()
on key label pgdn _app.e_sales.minus1()
on key label home _app.e_sales.plus10()
on key label end _app.e_sales.minus10()
on key label esc _app.e_sales.refresh_data()
form.invedatamodule1.rapid.rowset.first()
r = form.invedatamodule1.rapid.rowset.fields
do while not form.invedatamodule1.rapid.rowset.endofset
if lower(r["key_st"].value) $ "0123456789./*-+qwertyuiop[]\asdfghjkl;'zxcvbnm,./`"
cmd = "on key label "+r["key_st"].value +" _app.e_sales.add_onclick("+alltrim(str(r["recno"].value,6,0))+")"
&cmd
endif
r.parent.next()
enddo
endif
return
function rapid_dis()
on key
return
function plus1()
form.rapid_dis()
if form.header.mod_cust.enabled and form.footer.add.enabled
mlast = form.last()
do case
case form.minvoice < mlast
if form.minvoice >0
form.minvoice++
endif
case form.minvoice = mlast
form.minvoice = -1
endcase
form.refresh_data()
endif
form.rapid_en()
return
function minus1()
form.rapid_dis()
if form.header.mod_cust.enabled and form.footer.add.enabled
do case
case form.minvoice >1
temp = form.minvoice - 1
form.minvoice = temp
case form.minvoice = -1
mlast = form.last()
form.minvoice := mlast
endcase
if form.minvoice = 0
form.minvoice := -1
endif
form.refresh_data()
endif
form.rapid_en()
return
function plus10()
form.rapid_dis()
if form.header.mod_cust.enabled and form.footer.add.enabled
mlast = form.last()
if form.minvoice >0
form.minvoice = min(mlast , form.minvoice+10)
endif
form.refresh_data()
endif
form.rapid_en()
return
function minus10()
form.rapid_dis()
if form.header.mod_cust.enabled and form.footer.add.enabled
do case
case form.minvoice >1
form.minvoice = max(1, form.minvoice-10)
case form.minvoice = -1
mlast = form.last()
form.minvoice = mlast
endcase
if form.minvoice = 0
form.minvoice := -1
endif
form.refresh_data()
endif
form.rapid_en()
return
function date_range()
form.salesdatamodule1.date_r.params["inv_fr"].value = str(form.minvoice-1,10,0)
form.salesdatamodule1.date_r.params["inv_to"].value = str(form.minvoice+1,10,0)
form.salesdatamodule1.date_r.params["location"].value = form.mlocat
form.salesdatamodule1.date_r.requery()
form.header.mdate.rangemax = mcompany.lyear
form.header.mdate.rangemin = mcompany.byear
do while not form.salesdatamodule1.date_r.rowset.endofset
if form.salesdatamodule1.date_r.rowset.fields["invoice_no"].value < form.minvoice
form.header.mdate.rangemin = form.salesdatamodule1.date_r.rowset.fields["ddate"].value
endif
if form.salesdatamodule1.date_r.rowset.fields["invoice_no"].value > form.minvoice
form.header.mdate.rangemax = form.salesdatamodule1.date_r.rowset.fields["ddate"].value
endif
form.salesdatamodule1.date_r.rowset.next()
enddo
form.header.mdate.validErrormsg = "Please enter a date between "+dtoc(form.header.mdate.rangemin) + ;
" & " + dtoc(form.header.mdate.rangemax)
return
endclass
|
|