/beta/cashReg/Close.asp

http://github.com/khaneh/Orders · ASP · 645 lines · 536 code · 56 blank · 53 comment · 70 complexity · 77112d854d7d021e21f06447867039a0 MD5 · raw file

  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="1256"%><%
  2. 'CashRegister (9)
  3. PageTitle=" "
  4. SubmenuItem=4
  5. if not Auth(9 , 4) then NotAllowdToViewThisPage()
  6. %>
  7. <!--#include file="top.asp" -->
  8. <!--#include File="../include_farsiDateHandling.asp"-->
  9. <!--#include File="../include_JS_InputMasks.asp"-->
  10. <STYLE>
  11. .CClosTable {font-family:tahoma; font-size:9pt; direction: RTL; }
  12. .CClosTable td {padding:5;border:1pt solid gray;}
  13. .CClosTable a {text-decoration:none; color:#222288;}
  14. .CClosTable a:hover {text-decoration:underline;}
  15. .CClosTableTitle {background-color: #CCCCFF; text-align: center; font-weight:bold; height:50;}
  16. .CClosTableHeader {background-color: #BBBBBB; text-align: center; font-weight:bold;}
  17. .CClosTableFooter {background-color: #BBBBBB; direction: LTR; }
  18. .CClosTR1 {background-color: #DDDDDD;}
  19. .CClosTR2 {background-color: #FFFFFF;}
  20. .CClosTR3 {background-color: #EEEEFF;}
  21. .CClosInpTable { font-family:tahoma; font-size: 9pt; padding:0; direction: RTL; width:100%;}
  22. .CClosInpTable Tr {Height:25px; border: 1px solid black;}
  23. .CClosInpTable Input { font-family:tahoma; font-size: 9pt; border: 1px solid black; direction: LTR;}
  24. .CClosInpTable Select { font-family:tahoma; font-size: 9pt; border: 1px solid black; }
  25. .GenInput { font-family:tahoma; font-size: 9pt;}
  26. .GenButton { font-family:tahoma; font-size: 9pt; border: 1px solid black; }
  27. </STYLE>
  28. <%
  29. function Link2Trace(OrderNo)
  30. Link2Trace="<A HREF='../order/TraceOrder.asp?act=show&order="& OrderNo & "' target='_balnk'>"& OrderNo & "</A>"
  31. end function
  32. if request("act")="Report" AND request("CashReg")<>"" then
  33. CashRegID=request("CashReg")
  34. if not isnumeric(CashRegID) then
  35. response.write "<br>"
  36. call showAlert (" ",CONST_MSG_ERROR)
  37. response.end
  38. end if
  39. ' response.write cashRegID
  40. mySQL="SELECT CashRegisters.*, Users.RealName FROM CashRegisters INNER JOIN Users ON CashRegisters.Cashier = Users.ID WHERE (CashRegisters.IsOpen=1) AND (CashRegisters.ID='"& CashRegID & "')"
  41. Set RS1= conn.Execute(mySQL)
  42. ' response.write mySQL
  43. if RS1.eof then
  44. response.write "<br>"
  45. call showAlert (" ",CONST_MSG_ERROR)
  46. response.end
  47. else
  48. CashRegName=RS1("NameDate")
  49. theCSRName=RS1("RealName")
  50. OpenningDate=RS1("OpenDate")
  51. OpenningAmount=cdbl(RS1("OpeningAmount"))
  52. cashAmountA=cdbl(RS1("cashAmountA"))
  53. cashAmountB=cdbl(RS1("cashAmountB"))
  54. chequeAmount=cdbl(RS1("chequeAmount"))
  55. chequeQtty=cdbl(RS1("chequeQtty"))
  56. Set RS1=nothing
  57. end if
  58. if OpenningDate > session("OpenGLEndDate") then
  59. ' response.write session("OpenGLEndDate")
  60. response.write "<br>"
  61. call showAlert (" .",CONST_MSG_ERROR)
  62. response.end
  63. end if
  64. '----- Check GL is closed
  65. if (session("IsClosed")="True") then
  66. Conn.close
  67. response.redirect "?errMsg=" & Server.URLEncode("! .")
  68. end if
  69. '----
  70. mySQL="SELECT ReceivedCheques.ChequeNo, ReceivedCheques.ChequeDate, ReceivedCheques.Description, ReceivedCheques.BankOfOrigin, receivedCheques.Amount, CashRegisterLines.* FROM ReceivedCheques INNER JOIN Receipts ON ReceivedCheques.Receipt = Receipts.ID INNER JOIN CashRegisterLines ON Receipts.ID = CashRegisterLines.Link WHERE (CashRegisterLines.CashReg = '"& CashRegID & "') AND (CashRegisterLines.Type = 1) ORDER BY CashRegisterLines.[Date], CashRegisterLines.[Time]"
  71. Set RS1 = conn.execute(mySQL)
  72. Remained = 0
  73. Totalcredit = 0
  74. TotalDebit = 0
  75. tempCounter = 0
  76. if true then 'Not RS1.EOF OR OpenningAmount<>0 then
  77. %>
  78. <br>
  79. <TABLE class="CClosTable" align='center'>
  80. <TR>
  81. <TD class="CClosTableTitle" colspan=9 dir='rtl' align='center'><br><B> <span dir='LTR'><%=CashRegName%></span> - <%=theCSRName%> <INPUT TYPE="hidden" Name="CashRegID" Value="<%=CashRegID%>"></B><br><br>
  82. </TD>
  83. </TR>
  84. <%
  85. Remained = OpenningAmount
  86. Credit = OpenningAmount
  87. Totalcredit = OpenningAmount
  88. tempCounter = 0
  89. %> <TR class='CClosTR3'>
  90. <td colspan='6' align='right'> :</td>
  91. <td dir='LTR' align='right'><%=Separate(Credit)%>&nbsp;</td>
  92. </TR>
  93. <TR>
  94. <TD colspan='5' class="CClosTableFooter" align="right">: </td>
  95. <TD colspan="2" class="CClosTableFooter" align='left'>
  96. <span style="padding:10px;color:red;">: </span>
  97. <span id='cashAmountA'><%=cashAmountA%></span>
  98. <span style="padding:10px;color:red;">: </span>
  99. <span id='cashAmountB'><%=cashAmountB%></span>
  100. </TD>
  101. </TR>
  102. <TR>
  103. <TD colspan='6' class="CClosTableFooter" style='direction:RTL;text-align=left;'> (<span id='chequeQtty'><%=Separate(chequeQtty)%></span> ) :</td>
  104. <TD class="CClosTableFooter" align='right'><%=Separate(chequeAmount)%></TD>
  105. </TR>
  106. <TR>
  107. <TD colspan='6' class="CClosTableFooter">: </td>
  108. <TD class="CClosTableFooter" align='right'><%=Separate(cashAmountA + cashAmountB + chequeAmount)%></td>
  109. </TR>
  110. <TR class='CClosTR3'>
  111. <td colspan='7' align='right'> :</td>
  112. </TR>
  113. <TR class="CClosTableHeader">
  114. <TD>#</TD>
  115. <TD width="100px"> </TD>
  116. <TD width="50px"></TD>
  117. <TD width="50px"></TD>
  118. <TD width="70px"> </TD>
  119. <TD width="220px"></TD>
  120. <TD width="70px"></TD>
  121. </TR>
  122. <%
  123. While Not (RS1.EOF)
  124. tempCounter=tempCounter+1
  125. sourceLink="../AR/AccountReport.asp?act=showReceipt&receipt="& RS1("Link")
  126. Description = " "
  127. myAND=""
  128. Amount=Separate(RS1("Amount"))
  129. if RS1("Voided") then
  130. tempCounter=tempCounter-1%>
  131. <TR class='CClosTR4'>
  132. <td>-</td>
  133. <td dir='LTR'><A HREF='<%=sourceLink%>' target='_blank'><%=RS1("Date") & " @ " & RS1("Time")%></A></td>
  134. <td><%=RS1("ChequeNo")%></td>
  135. <td><%=RS1("BankOfOrigin")%></td>
  136. <td dir='LTR'><%=RS1("ChequeDate")%></td>
  137. <td><%=RS1("Description")%></td>
  138. <td dir='LTR'>
  139. <div style="position:absolute;width:600;"><hr style="color:red;"></div><div align='right'><%=Amount%></div>
  140. <% else%>
  141. <TR class='<%if tempCounter MOD 2 = 0 then response.write "CClosTR1" else response.write "CClosTR2"%>'>
  142. <td><%=tempCounter%></td>
  143. <td dir='LTR'><A HREF='<%=sourceLink%>' target='_blank'><%=RS1("Date") & " @ " & RS1("Time")%></A></td>
  144. <td><%=RS1("ChequeNo")%></td>
  145. <td><%=RS1("BankOfOrigin")%></td>
  146. <td dir='LTR'><%=RS1("ChequeDate")%></td>
  147. <td><%=RS1("Description")%></td>
  148. <td dir='LTR' align='right'>
  149. <%=Amount%>
  150. <% end if
  151. %> </td>
  152. </TR>
  153. <%
  154. RS1.MoveNext
  155. Wend
  156. if Remained>=0 then
  157. remainedColor="green"
  158. else
  159. remainedColor="red"
  160. end if
  161. %>
  162. <TR class='CClosTR3'>
  163. <td colspan='7' align='right'> :</td>
  164. </TR>
  165. <TR>
  166. <TD colspan='7' style='border:2 dashed blue;'>
  167. <table width='100%' class='CClosInpTable'>
  168. <FORM METHOD=POST ACTION="?act=submitClose" onsubmit="return formValidation();">
  169. <tr>
  170. <td> / Ͽ</td>
  171. <td colspan='3'><INPUT TYPE="text" NAME="ShortOverAmount" onKeyPress="return maskNumber(this);" onblur="setPrice(this);"> &nbsp; &nbsp;
  172. <SELECT NAME="ShortOver" onchange="setPrice(this);">
  173. <OPTION id='opt0' VALUE="">-------</OPTION>
  174. <OPTION id='opt1' VALUE="1"></OPTION>
  175. <OPTION id='opt2' VALUE="3"></OPTION>
  176. </SELECT></td>
  177. </tr>
  178. <tr>
  179. <td> Ͽ</td>
  180. <td><SELECT NAME="ChequesNewBanker" onchange="document.all.ChequesNewBankerPass.focus();">
  181. <OPTION VALUE="">----------------</OPTION>
  182. <% mySQL="SELECT Bankers.ID, Bankers.Name, Users.RealName FROM Bankers INNER JOIN Users ON Bankers.Responsible = Users.ID WHERE (IsBankAccount = 0) ORDER BY Bankers.Name"
  183. Set RS1 = conn.execute(mySQL)
  184. while not RS1.eof
  185. %> <OPTION VALUE="<%=RS1("ID")%>"><%=RS1("Name")%> (<%=RS1("RealName")%>)</OPTION>
  186. <% RS1.MoveNext
  187. wend
  188. %> </SELECT></td>
  189. <td> :</td>
  190. <td><INPUT TYPE="password" NAME="ChequesNewBankerPass" onkeyDown="return myKeyDownHandler();" onKeyPress="return myKeyPressHandler();"></td>
  191. </tr>
  192. <tr>
  193. <td><INPUT checked TYPE="checkbox" style='width:20px;border:0;' NAME="AutoNewCashReg" onclick="checkAutoGen(this);"> </td>
  194. <td><span id="Sp1" > : <INPUT TYPE="text" style="text-align:left;width:80px;" Name="NameDate" value="<%=shamsiToday()%>" onblur="acceptDate(this)"></span></td>
  195. <td><span id="Sp2"> : </span></td>
  196. <td><span id="Sp3"><INPUT TYPE="text" NAME="OpeningAmount" readonly Value='0'> &nbsp; &nbsp;</span></td>
  197. </tr>
  198. <tr>
  199. <td colspan="4"> : &nbsp;
  200. <INPUT readonly tabIndex="98" TYPE="text" style="text-align:left;width:100px; background: transparent;font-weight:bold;" Name="totalRemainedCashA" value="<%=cashAmountA%>"> &nbsp; &nbsp;
  201. : &nbsp;
  202. <INPUT readonly tabIndex="99" TYPE="text" style="text-align:left;width:100px; background: transparent;font-weight:bold;" Name="totalRemainedCashB" value="<%=cashAmountB%>"> &nbsp; &nbsp;
  203. </td>
  204. </tr>
  205. <tr>
  206. <td> Ͽ</td>
  207. <td><SELECT NAME="CashAcceptor" onchange="document.all.CashAcceptorPass.focus();">
  208. <OPTION VALUE="">---------------</OPTION>
  209. <% mySQL="SELECT * FROM Users WHERE Display=1 ORDER BY RealName"
  210. Set RS1 = conn.execute(mySQL)
  211. while not RS1.eof
  212. %> <OPTION VALUE="<%=RS1("ID")%>"><%=RS1("RealName")%></OPTION>
  213. <% RS1.MoveNext
  214. wend
  215. %> </SELECT></td>
  216. <td> :</td>
  217. <td><INPUT TYPE="password" NAME="CashAcceptorPass" onkeyDown="return myKeyDownHandler();" onKeyPress="return myKeyPressHandler();"></td>
  218. </tr>
  219. <tr>
  220. <td colspan="4" align="center">
  221. <INPUT TYPE="hidden" Name="TempCashAmountA" Value="<%=cashAmountA%>">
  222. <INPUT TYPE="hidden" Name="TempCashAmountB" Value="<%=cashAmountB%>">
  223. <INPUT TYPE="hidden" Name="TempChequeAmount" Value="<%=ChequeAmount%>">
  224. <INPUT TYPE="hidden" Name="TempChequeQtty" Value="<%=ChequeQtty%>">
  225. <INPUT TYPE="hidden" Name="CashRegID" Value="<%=CashRegID%>">
  226. <INPUT TYPE="submit" VALUE="" style="width:50px;">
  227. </td>
  228. </tr>
  229. </FORM>
  230. </table>
  231. </TD>
  232. </TR>
  233. </TABLE>
  234. <SCRIPT LANGUAGE="JavaScript">
  235. <!--
  236. document.all.ShortOverAmount.focus();
  237. //-->
  238. </SCRIPT>
  239. <br>
  240. <% end if
  241. elseif request("act")="submitClose" then
  242. CashRegID=request.form("CashRegID")
  243. if not isnumeric(CashRegID) then
  244. response.redirect "?errmsg=" & Server.URLEncode(" ")
  245. end if
  246. mySQL="SELECT * FROM CashRegisters WHERE (IsOpen=1) AND (ID='" & CashRegID & "')"
  247. Set RS1=conn.execute(mySQL)
  248. if RS1.eof then
  249. Conn.close
  250. response.redirect "?errmsg=" & Server.URLEncode(" ")
  251. end if
  252. CashAmountA=cdbl(RS1("cashAmountA"))
  253. CashAmountB=cdbl(RS1("cashAmountB"))
  254. ChequeAmount=cdbl(RS1("chequeAmount"))
  255. ChequeQtty=cdbl(RS1("chequeQtty"))
  256. nameDate = RS1("NameDate")
  257. if NOT (CashAmountA = cdbl(request.form("TempCashAmountA")) AND CashAmountB = cdbl(request.form("TempCashAmountB")) AND ChequeAmount = cdbl(request.form("TempChequeAmount")) AND ChequeQtty = cdbl(request.form("TempChequeQtty")) ) then
  258. Conn.close
  259. response.redirect "?act=Report&CashReg=" & CashRegID & "&errmsg=" & Server.URLEncode(" .<br><br> .")
  260. end if
  261. theCashier=RS1("Cashier")
  262. theBanker=RS1("Banker")
  263. RS1.close
  264. Set RS1=nothing
  265. closeDate = shamsiToday()
  266. closeTime = currentTime10()
  267. if request.form("AutoNewCashReg")="on" then
  268. AutoNewCashReg = 1
  269. else
  270. AutoNewCashReg = 0
  271. end if
  272. CashAcceptor = 0
  273. ChequesNewBanker = -1
  274. RemainedCashMemo = 0
  275. ShortOverMemo = 0
  276. totalRemainedCashA=text2value(request.form("totalRemainedCashA"))
  277. totalRemainedCashB=text2value(request.form("totalRemainedCashB"))
  278. if CDbl(totalRemainedCashA) < 0 or CDbl(totalRemainedCashB) < 0 then
  279. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" <br> !!!!! !<br> ѐ .")
  280. elseif totalRemainedCashA > 0 or totalRemainedCashB then
  281. CashAcceptor = clng(request.form("CashAcceptor"))
  282. mySQL="SELECT Users.Password, Users.Account FROM Users INNER JOIN Accounts ON Users.Account = Accounts.ID WHERE Users.ID='" & CashAcceptor & "' AND Users.Password='" & sqlSafe(request.form("CashAcceptorPass")) & "' "
  283. Set RS1=conn.execute(mySQL)
  284. If RS1.EOF Then
  285. conn.close
  286. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" ")
  287. elseif RS1("Password")<>request.form("CashAcceptorPass") then
  288. conn.close
  289. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" ")
  290. end if
  291. cashAcceptorAccount=RS1("Account")
  292. RS1.close
  293. Set RS1=Nothing
  294. end if
  295. ShortOverAmount=text2value(request.form("ShortOverAmount"))
  296. if ShortOverAmount < 0 then
  297. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" ... / .")
  298. elseif ShortOverAmount > 0 then
  299. if request.form("ShortOver")=3 then
  300. '3 means Over
  301. isCredit=1
  302. ShortOverDescription =" " & nameDate
  303. elseif request.form("ShortOver")=1 then
  304. '1 means Short
  305. isCredit=0
  306. ShortOverDescription =" " & nameDate
  307. else
  308. conn.close
  309. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" ... Ͽ")
  310. end if
  311. end if
  312. if ChequeQtty > 0 then
  313. ChequesNewBanker = sqlSafe(request.form("ChequesNewBanker"))
  314. mySQL="SELECT Users.Password, Users.Account FROM Bankers INNER JOIN Users ON Bankers.Responsible = Users.ID WHERE (Bankers.ID = '"& ChequesNewBanker & "') AND (Users.Password = N'"& sqlSafe(request.form("ChequesNewBankerPass")) & "')"
  315. Set RS1=conn.execute(mySQL)
  316. If RS1.EOF Then
  317. conn.close
  318. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" ")
  319. elseif RS1("Password")<>request.form("ChequesNewBankerPass") then
  320. conn.close
  321. response.redirect "?act=Report&CashReg=" & CashRegID &"&errmsg=" & Server.URLEncode(" ")
  322. end if
  323. end if
  324. '*************************************************************************
  325. '***** Handing the Remained Cash to an Account A
  326. '*************************************************************************
  327. if totalRemainedCashA > 0 then
  328. ' AOMemoType = 1 means (miscellaneous)
  329. mySQL="INSERT INTO AOMemo (CreatedDate, CreatedBy, Type, Account, IsCredit, Amount, Description) VALUES (N'"& closeDate & "' , "& session("ID") & ", 1, "& cashAcceptorAccount & ", 0, "& totalRemainedCashA & ", N' " & nameDate & "');SELECT @@Identity AS NewMemoID"
  330. set RS1 = Conn.execute(mySQL).NextRecordSet
  331. cashMemoA = RS1 ("NewMemoID")
  332. RemainedCashMemo = cashMemoA
  333. RS1.close
  334. '**************************** Creating AOItem for Memo ****************
  335. '*** Type = 3 means AOItem is a Memo
  336. '*** Reason = 5 means (Borrow) and Sys=AO
  337. firstGLAccount= "18001" 'This must be changed... GLAccount For Reason=5 (Misc. Debitors)
  338. GLAccountA= "11007" 'This must be changed (Cashier A)
  339. GLAccountB= "11005" 'This must be changed (Cashier B)
  340. mySQL="INSERT INTO AOItems (GLAccount, GL, FirstGLAccount, Account, EffectiveDate, IsCredit, Reason, Type, Link, AmountOriginal, CreatedDate, CreatedBy, RemainedAmount) VALUES ('" &_
  341. GLAccountA & "', '"& OpenGL & "', '"& firstGLAccount & "', '"& cashAcceptorAccount & "', '"& closeDate & "', 0, 5, 3, '"& cashMemoA & "', '"& totalRemainedCashA & "', N'"& closeDate & "', '"& session("ID") & "', '"& totalRemainedCashA & "')"
  342. conn.Execute(mySQL)
  343. '***------------------------- Creating AOItem for Memo ----------------
  344. '**************************** Updating Account AO Balance ****************
  345. mySQL="UPDATE Accounts SET AOBalance = AOBalance - '"& totalRemainedCashA & "' WHERE (ID='"& cashAcceptorAccount & "')"
  346. conn.Execute(mySQL)
  347. '***------------------------- Updating Account AO Balance ----------------
  348. end if
  349. '*************************************************************************
  350. '***** Handing the Remained Cash to an Account B
  351. '*************************************************************************
  352. if totalRemainedCashB > 0 then
  353. ' AOMemoType = 1 means (miscellaneous)
  354. mySQL="INSERT INTO AOMemo (CreatedDate, CreatedBy, Type, Account, IsCredit, Amount, Description) VALUES (N'"& closeDate & "' , "& session("ID") & ", 1, "& cashAcceptorAccount & ", 0, "& totalRemainedCashB & ", N' " & nameDate & "');SELECT @@Identity AS NewMemoID"
  355. set RS1 = Conn.execute(mySQL).NextRecordSet
  356. cashMemoB = RS1 ("NewMemoID")
  357. RemainedCashMemo = cashMemoB
  358. RS1.close
  359. '**************************** Creating AOItem for Memo ****************
  360. '*** Type = 3 means AOItem is a Memo
  361. '*** Reason = 5 means (Borrow) and Sys=AO
  362. firstGLAccount= "18001" 'This must be changed... GLAccount For Reason=5 (Misc. Debitors)
  363. GLAccountA= "11007" 'This must be changed (Cashier A)
  364. GLAccountB= "11005" 'This must be changed (Cashier B)
  365. mySQL="INSERT INTO AOItems (GLAccount, GL, FirstGLAccount, Account, EffectiveDate, IsCredit, Reason, Type, Link, AmountOriginal, CreatedDate, CreatedBy, RemainedAmount) VALUES ('" &_
  366. GLAccountB & "', '"& OpenGL & "', '"& firstGLAccount & "', '"& cashAcceptorAccount & "', '"& closeDate & "', 0, 5, 3, '"& cashMemoB & "', '"& totalRemainedCashB & "', N'"& closeDate & "', '"& session("ID") & "', '"& totalRemainedCashB & "')"
  367. conn.Execute(mySQL)
  368. '***------------------------- Creating AOItem for Memo ----------------
  369. '**************************** Updating Account AO Balance ****************
  370. mySQL="UPDATE Accounts SET AOBalance = AOBalance - '"& totalRemainedCashB & "' WHERE (ID='"& cashAcceptorAccount & "')"
  371. conn.Execute(mySQL)
  372. '***------------------------- Updating Account AO Balance ----------------
  373. end if
  374. '*************************************************************************
  375. '***** Applying the Cash Register Short / Over Amount to Cashier's Account
  376. '*************************************************************************
  377. if ShortOverAmount > 0 then
  378. mySQL="SELECT Account FROM Users WHERE (ID = '"& theCashier & "')"
  379. set RS1=conn.execute(mySQL)
  380. cashierAccount=RS1("Account")
  381. RS1.close
  382. set RS1=nothing
  383. ' AOMemoType = 6 means (Short of Cash)
  384. mySQL="INSERT INTO AOMemo (CreatedDate, CreatedBy, Type, Account, IsCredit, Amount, Description) VALUES (N'"& closeDate & "' , "& session("ID") & ", 6, "& cashierAccount & ", '"& isCredit & "', "& ShortOverAmount & ", N'"& ShortOverDescription & "');SELECT @@Identity AS NewMemoID"
  385. set RS1 = Conn.execute(mySQL).NextRecordSet
  386. MemoID = RS1 ("NewMemoID")
  387. ShortOverMemo = MemoID
  388. RS1.close
  389. '**************************** Creating AOItem for Memo ****************
  390. '*** Type = 3 means AOItem is a Memo
  391. '*** Reason = 5 means (Borrow) and Sys=AO
  392. firstGLAccount= "18001" 'This must be changed... GLAccount For Reason=5 (Misc. Debitors)
  393. GLAccount= "11005" 'This must be changed... (Cashier B)
  394. mySQL="INSERT INTO AOItems (GLAccount, GL, FirstGLAccount, Account, EffectiveDate, IsCredit, Reason, Type, Link, AmountOriginal, CreatedDate, CreatedBy, RemainedAmount) VALUES ('"&_
  395. GLAccount & "', '"& OpenGL & "', '"& firstGLAccount & "', '"& cashierAccount & "', '"& closeDate & "', '"& isCredit & "', 5, 3, '"& MemoID & "', '"& ShortOverAmount & "', N'"& closeDate & "', '"& session("ID") & "', '"& ShortOverAmount & "')"
  396. conn.Execute(mySQL)
  397. '***------------------------- Creating AOItem for Memo ----------------
  398. '**************************** Updating Account AO Balance ****************
  399. if isCredit=0 then
  400. mySQL="UPDATE Accounts SET AOBalance = AOBalance - '"& ShortOverAmount & "' WHERE (ID='"& cashierAccount & "')"
  401. else
  402. mySQL="UPDATE Accounts SET AOBalance = AOBalance + '"& ShortOverAmount & "' WHERE (ID='"& cashierAccount & "')"
  403. end if
  404. conn.Execute(mySQL)
  405. '***------------------------- Updating Account AO Balance ----------------
  406. end if
  407. '*************************************************************************
  408. '***** Handing Cheques to a Banker
  409. '*************************************************************************
  410. if ChequeQtty > 0 then
  411. '****************************************************
  412. '*** UPDATING ReceivedCheques
  413. '*** Set New Banker , and New Status
  414. '*** Status : 1 (in open cash) --> 6 (received)
  415. '****************************************************
  416. mySQL="UPDATE ReceivedCheques SET LastBanker ='"& sqlSafe(request.form("ChequesNewBanker")) & "', LastStatus = 6 WHERE (ID IN (SELECT ReceivedCheques.ID FROM ReceivedCheques INNER JOIN Receipts ON ReceivedCheques.Receipt = Receipts.ID INNER JOIN CashRegisterLines ON Receipts.ID = CashRegisterLines.Link WHERE (CashRegisterLines.CashReg = '"& CashRegID & "') AND (CashRegisterLines.Type = 1) AND (CashRegisterLines.Voided = 0)))"
  417. conn.execute(mySQL)
  418. end if
  419. '*************************************************************************
  420. '***** Closing the Cash Register
  421. '*************************************************************************
  422. if cashMemoA="" then cashMemoA="null"
  423. if cashMemoB="" then cashMemoB="null"
  424. mySQL="UPDATE CashRegisters SET CloseDate=N'"& closeDate & "', CloseTime=N'"& closeTime & "', ClosedBy='"& session("ID") & "', IsOpen = '0', CashAcceptor='" & CashAcceptor & "', RemainedCashMemo='" & RemainedCashMemo & "', ChequesNewBanker = '" & ChequesNewBanker & "', ShortOverAmount='"& ShortOverAmount & "', ShortOverMemo='" & ShortOverMemo & "',cashMemoA=" & cashMemoA & ",cashMemoB=" & cashMemoB & " WHERE (ID='"& CashRegID & "')"
  425. conn.Execute(mySQL)
  426. theResultReport=" .<br>"
  427. if AutoNewCashReg = 1 then
  428. OpeningAmount=text2value(request("OpeningAmount"))
  429. '*********************************************************************
  430. '***** Creating New Cash Register
  431. '*********************************************************************
  432. mySQL="INSERT INTO CashRegisters (Cashier, Banker, OpenDate, NameDate, OpenedBy, IsOpen, IsApproved, OpeningAmount, CashAmountB, CashAmountA, ChequeAmount, ChequeQtty, ShortOverAmount) VALUES ('" &_
  433. theCashier & "', '"& theBanker & "', N'"& closeDate & "', N'"& request("NameDate") & "', '"& session("ID") & "', 1, 0, '"& OpeningAmount & "', '"& OpeningAmount & "', 0, 0, 0, 0)"
  434. conn.Execute(mySQL)
  435. theResultReport=theResultReport+" ."
  436. end if
  437. %>
  438. <br>
  439. <TABLE width=70% align='center'>
  440. <TR>
  441. <TD align=center bgcolor=#EEFF66 style='border: dashed 1pt Green'><BR><%=theResultReport%><BR><BR></TD>
  442. </TR>
  443. </TABLE>
  444. <%
  445. else
  446. 'mySQL="SELECT * FROM CashRegisters WHERE (IsOpen=1) AND (Cashier='"& session("ID") & "')"
  447. mySQL="SELECT CashRegisters.ID, CashRegisters.NameDate, Users.RealName FROM CashRegisters INNER JOIN Users ON CashRegisters.Cashier = Users.ID WHERE (CashRegisters.IsOpen=1)"
  448. Set RS1= conn.Execute(mySQL)
  449. if RS1.eof then
  450. %><br><br>
  451. <TABLE width='70%' align='center'>
  452. <TR>
  453. <TD align=center bgcolor=#FFBBBB style='border: solid 1pt black'><BR><b> ... <br><br> <br>."</b><BR><BR></TD>
  454. </TR>
  455. </TABLE>
  456. <% conn.close
  457. response.end
  458. else
  459. %>
  460. <FORM METHOD=POST ACTION="?act=Report">
  461. <br><br>
  462. &nbsp;&nbsp; : <SELECT NAME="CashReg" class="GenButton" onchange="submit();">
  463. <OPTION VALUE="">--------------------------</OPTION>
  464. <% Do
  465. %> <OPTION VALUE="<%=RS1("ID")%>"><%=RS1("NameDate") & " (" & RS1("RealName")& ")"%></OPTION>
  466. <% Rs1.moveNext
  467. Loop while not RS1.eof
  468. %>
  469. </SELECT> <INPUT TYPE="submit" value="">
  470. </FORM>
  471. <% Set RS1=nothing
  472. end if
  473. end if
  474. conn.Close
  475. %>
  476. </font>
  477. <SCRIPT LANGUAGE="JavaScript">
  478. <!--
  479. function setPrice(src){
  480. if (src.name!='ShortOver'){
  481. src.value=val2txt(txt2val(src.value));
  482. }
  483. if (src.name=='ShortOverAmount'){
  484. if (txt2val(src.value) != 0)
  485. document.all.opt1.selected=true;
  486. else
  487. document.all.opt0.selected=true;
  488. }
  489. else if (src.name=='ShortOver'){
  490. if (txt2val(document.all.ShortOver.value)==0){
  491. document.all.ShortOverAmount.value=0;
  492. }
  493. else if (txt2val(document.all.ShortOverAmount.value)==0){
  494. document.all.opt0.selected=true;
  495. document.all.ShortOverAmount.focus();
  496. }
  497. }
  498. setTotalRemainedCash();
  499. // alert(src.name+'='+src.value);
  500. }
  501. function setTotalRemainedCash(){
  502. with (document.all){
  503. if (AutoNewCashReg.checked)
  504. totalRemainedCashB.value=val2txt((ShortOver.value - 2) * txt2val(ShortOverAmount.value) + txt2val(cashAmountB.innerText) - txt2val(OpeningAmount.value))
  505. //totalRemainedCashA.value=val2txt((ShortOver.value - 2) * txt2val(ShortOverAmount.value) + txt2val(cashAmountB.innerText) - txt2val(OpeningAmount.value))
  506. else
  507. totalRemainedCashB.value=val2txt((ShortOver.value - 2) * txt2val(ShortOverAmount.value) + txt2val(cashAmountB.innerText)
  508. }
  509. }
  510. function checkAutoGen(src){
  511. if (src.checked){
  512. document.getElementById("Sp1").style.visibility='visible';
  513. document.getElementById("Sp2").style.visibility='visible';
  514. document.getElementById("Sp3").style.visibility='visible';
  515. document.getElementById("Sp3").getElementsByTagName("Input")[0].focus();
  516. }
  517. else{
  518. document.getElementById("Sp1").style.visibility='hidden';
  519. document.getElementById("Sp2").style.visibility='hidden';
  520. document.getElementById("Sp3").style.visibility='hidden';
  521. }
  522. setTotalRemainedCash();
  523. }
  524. function formValidation(){
  525. with (document.all){
  526. setTotalRemainedCash();
  527. if (txt2val(chequeQtty.innerText) != 0)
  528. if (!ChequesNewBanker.value){
  529. alert(": \n" + " Ͽ");
  530. ChequesNewBanker.focus();
  531. return false;
  532. }
  533. else if (!ChequesNewBankerPass.value){
  534. alert(" ");
  535. ChequesNewBankerPass.focus();
  536. return false;
  537. }
  538. if (totalRemainedCashA.value != 0 || totalRemainedCashB.value != 0)
  539. if (!CashAcceptor.value){
  540. alert(": \n" + " Ͽ");
  541. CashAcceptor.focus();
  542. return false;
  543. }
  544. else if (!CashAcceptorPass.value){
  545. alert(" ");
  546. CashAcceptorPass.focus();
  547. return false;
  548. }
  549. }
  550. return true;
  551. }
  552. //-->
  553. </SCRIPT>
  554. <SCRIPT LANGUAGE="JavaScript">
  555. <!--
  556. var tempKeyBuffer;
  557. function myKeyDownHandler(){
  558. tempKeyBuffer=window.event.keyCode;
  559. }
  560. function myKeyPressHandler(){
  561. // alert (tempKeyBuffer)
  562. if (tempKeyBuffer>=65 && tempKeyBuffer<=90){
  563. window.event.keyCode=tempKeyBuffer+32;
  564. }
  565. else if(tempKeyBuffer==186){
  566. window.event.keyCode=59;
  567. }
  568. else if(tempKeyBuffer==188){
  569. window.event.keyCode=44;
  570. }
  571. else if(tempKeyBuffer==190){
  572. window.event.keyCode=46;
  573. }
  574. else if(tempKeyBuffer==191){
  575. window.event.keyCode=47;
  576. }
  577. else if(tempKeyBuffer==192){
  578. window.event.keyCode=96;
  579. }
  580. else if(tempKeyBuffer>=219 && tempKeyBuffer<=221){
  581. window.event.keyCode=tempKeyBuffer-128;
  582. }
  583. else if(tempKeyBuffer==222){
  584. window.event.keyCode=39;
  585. }
  586. }
  587. //-->
  588. </SCRIPT>
  589. <!--#include file="tah.asp" -->