/beta/reports/Salse_by_customer_category.old.asp

http://github.com/khaneh/Orders · ASP · 280 lines · 253 code · 19 blank · 8 comment · 14 complexity · e4176a850d1e81e95374358a6275c611 MD5 · raw file

  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="1256"%>
  2. <%if request("act")="" then%>
  3. <!--#include File="../include_farsiDateHandling.asp"-->
  4. <HTML>
  5. <HEAD>
  6. <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
  7. <!-- <meta http-equiv="Content-Language" content="fa"> -->
  8. <style>
  9. Table { font-family:tahoma; font-size: 9pt;}
  10. </style>
  11. <TITLE><%if request("act")="show" then response.write " "& replace(FromDate,"/",".") & " "& replace(ToDate,"/",".") else response.write "Kid Invoice Items Categories"%></TITLE>
  12. </HEAD>
  13. <BODY>
  14. <!--#include File="../include_JS_InputMasks.asp"-->
  15. <FORM METHOD=POST ACTION="?act=show">
  16. <TABLE border=1 align=center dir="RTL">
  17. <TR>
  18. <TD align=left> </TD>
  19. <TD><INPUT dir="LTR" class="GenInput" NAME="FromDate" tabIndex="3" TYPE="text" maxlength="10" size="10" value="<%=request("FromDate")%>" onBlur="acceptDate(this);" style="width:100px;"></TD>
  20. </TR>
  21. <TR>
  22. <TD align=left> </TD>
  23. <TD><INPUT dir="LTR" class="GenInput" NAME="ToDate" tabIndex="4" TYPE="text" maxlength="10" size="10" value="<%=request("ToDate")%>" onBlur="acceptDate(this)" style="width:100px;"></TD>
  24. </TR>
  25. <TR>
  26. <TD align=center colspan=2><INPUT style="font-family:tahoma;" TYPE="Submit" Value=" " tabindex=6></TD>
  27. </TR>
  28. </FORM>
  29. </TABLE>
  30. <br>
  31. <%
  32. elseif request("act")="show" then
  33. FromDate= request("FromDate")
  34. ToDate= request("ToDate")
  35. reportTitle = " "
  36. %>
  37. <html>
  38. <head>
  39. <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1256">
  40. <title><%=reportTitle%></title>
  41. </head>
  42. <body>
  43. <%
  44. function Separate(inputTxt)
  45. if not isnumeric(inputTxt) or "" & inputTxt="" then
  46. Separate=inputTxt
  47. else
  48. myMinus=""
  49. input=inputTxt
  50. t=instr(input, ".")
  51. if t>0 then
  52. expPart = mid(input, t+1, 2)
  53. input = left(input, t-1)
  54. end if
  55. if left(input,1)="-" then
  56. myMinus="-"
  57. input=right(input,len(input)-1)
  58. end if
  59. if len(input) > 3 then
  60. tmpr=right(input ,3)
  61. tmpl=left(input , len(input) - 3 )
  62. result = tmpr
  63. while len(tmpl) > 3
  64. tmpr=right(tmpl,3)
  65. result = tmpr & "," & result
  66. tmpl=left(tmpl , len(tmpl) - 3 )
  67. wend
  68. if len(tmpl) > 0 then
  69. result = tmpl & "," & result
  70. end if
  71. else
  72. result = input
  73. end if
  74. if t>0 then
  75. result = result & "." & expPart
  76. end if
  77. Separate=myMinus & result
  78. end if
  79. end function
  80. '---------------------
  81. ' conStr="DRIVER={SQL Server};SERVER=(local);DATABASE=sefareshat;UID=sefadmin; PWD=5tgb;"
  82. conStr = "Provider=SQLNCLI10.1;Persist Security Info=False;User ID=sefadmin;Initial Catalog=sefareshat;Data Source=(local);PWD=5tgb;"
  83. Set conn = Server.CreateObject("ADODB.Connection")
  84. conn.open conStr
  85. 'mySQL="SELECT Kid.AccID,Kid.AccountTitle,Kid.Price,Kid.Discount,Kid.Reverse,Kid.CatID,Kid.CatName,Kid.InvQtty,COUNT(*) AS TotalInvQtty, SUM(Invoices.TotalReceivable) AS TotalReceivable,SUM(Invoices.TotalDiscount) AS TotalDiscount,SUM(Invoices.TotalReverse) AS TotalReverse FROM (SELECT Accounts.ID AS AccID,Accounts.AccountTitle,SUM(InvoiceLines.Price) AS Price,SUM(InvoiceLines.Discount) AS Discount, SUM(InvoiceLines.Reverse) AS Reverse,InvoiceItemCategories.ID AS CatID,InvoiceItemCategories.Name AS CatName,COUNT(*) AS InvQtty FROM InvoiceItemCategoryRelations INNER JOIN InvoiceItems ON InvoiceItemCategoryRelations.InvoiceItem = InvoiceItems.ID INNER JOIN InvoiceItemCategories ON InvoiceItemCategoryRelations.InvoiceItemCategory = InvoiceItemCategories.ID INNER JOIN InvoiceLines ON InvoiceItems.ID = InvoiceLines.Item INNER JOIN Invoices ON InvoiceLines.Invoice = Invoices.ID INNER JOIN Accounts ON Invoices.Customer = Accounts.ID WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) GROUP BY Accounts.AccountTitle,InvoiceItemCategories.ID,InvoiceItemCategories.Name,Accounts.ID HAVING (InvoiceItemCategories.ID > 0)) Kid INNER JOIN Invoices ON Kid.AccID = Invoices.Customer GROUP BY Kid.AccID,Kid.AccountTitle,Kid.Price,Kid.Discount,Kid.Reverse,Kid.CatID,Kid.CatName,Kid.InvQtty,Invoices.Issued,Invoices.Voided HAVING (Invoices.Issued = 1) AND (Invoices.Voided = 0) ORDER BY Kid.AccID,Kid.CatID"
  86. 'mySQL="SELECT Kid.AccID,Kid.AccountTitle,Kid.Price,Kid.Discount,Kid.Reverse,Kid.CatID,Kid.CatName,Kid.InvQtty,COUNT(*) AS TotalInvQtty, SUM(Invoices.TotalReceivable) AS TotalReceivable,SUM(Invoices.TotalDiscount) AS TotalDiscount,SUM(Invoices.TotalReverse) AS TotalReverse FROM (SELECT Accounts.ID AS AccID,Accounts.AccountTitle,SUM(InvoiceLines.Price) AS Price,SUM(InvoiceLines.Discount) AS Discount, SUM(InvoiceLines.Reverse) AS Reverse,InvoiceItemCategories.ID AS CatID,InvoiceItemCategories.Name AS CatName,COUNT(DISTINCT Invoices.ID) AS InvQtty FROM InvoiceItemCategoryRelations INNER JOIN InvoiceItems ON InvoiceItemCategoryRelations.InvoiceItem = InvoiceItems.ID INNER JOIN InvoiceItemCategories ON InvoiceItemCategoryRelations.InvoiceItemCategory = InvoiceItemCategories.ID INNER JOIN InvoiceLines ON InvoiceItems.ID = InvoiceLines.Item INNER JOIN Invoices ON InvoiceLines.Invoice = Invoices.ID INNER JOIN Accounts ON Invoices.Customer = Accounts.ID WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) AND (Invoices.IssuedDate >= N'"& FromDate & "') AND (Invoices.IssuedDate <= N'"& ToDate & "') GROUP BY Accounts.AccountTitle,InvoiceItemCategories.ID,InvoiceItemCategories.Name,Accounts.ID HAVING (InvoiceItemCategories.ID > 0)) Kid INNER JOIN Invoices ON Kid.AccID = Invoices.Customer WHERE (Invoices.IssuedDate >= N'"& FromDate & "') AND (Invoices.IssuedDate <= N'"& ToDate & "') GROUP BY Kid.AccID,Kid.AccountTitle,Kid.Price,Kid.Discount,Kid.Reverse,Kid.CatID,Kid.CatName,Kid.InvQtty,Invoices.Issued,Invoices.Voided HAVING (Invoices.Issued = 1) AND (Invoices.Voided = 0) ORDER BY Kid.AccID,Kid.CatID"
  87. ' coment by Alix - 84-10-10 (add CSRname column to query)
  88. mySQL="SELECT Kid.AccID, Kid.AccountTitle, Kid.Price, Kid.Discount, Kid.Reverse, Kid.CatID, Kid.CatName, Kid.InvQtty, COUNT(*) AS TotalInvQtty, SUM(Invoices.TotalReceivable) AS TotalReceivable, SUM(Invoices.TotalDiscount) AS TotalDiscount, SUM(Invoices.TotalReverse) AS TotalReverse, Kid.CSRname FROM (SELECT Accounts.ID AS AccID, Accounts.AccountTitle, SUM(InvoiceLines.Price) AS Price, SUM(InvoiceLines.Discount) AS Discount, SUM(InvoiceLines.Reverse) AS Reverse, InvoiceItemCategories.ID AS CatID, InvoiceItemCategories.Name AS CatName, COUNT(DISTINCT Invoices.ID) AS InvQtty, Users.RealName AS CSRname FROM InvoiceItemCategoryRelations INNER JOIN InvoiceItems ON InvoiceItemCategoryRelations.InvoiceItem = InvoiceItems.ID INNER JOIN InvoiceItemCategories ON InvoiceItemCategoryRelations.InvoiceItemCategory = InvoiceItemCategories.ID INNER JOIN InvoiceLines ON InvoiceItems.ID = InvoiceLines.Item INNER JOIN Invoices ON InvoiceLines.Invoice = Invoices.ID INNER JOIN Accounts ON Invoices.Customer = Accounts.ID INNER JOIN Users ON Accounts.CSR = Users.ID WHERE (Invoices.Voided = 0) AND (Invoices.Issued = 1) AND (Invoices.IssuedDate >= N'"& FromDate & "') AND (Invoices.IssuedDate <= N'"& ToDate & "') GROUP BY Accounts.AccountTitle, InvoiceItemCategories.ID, InvoiceItemCategories.Name, Accounts.ID, Users.RealName HAVING (InvoiceItemCategories.ID > 0)) Kid INNER JOIN Invoices ON Kid.AccID = Invoices.Customer WHERE (Invoices.IssuedDate >= N'"& FromDate & "') AND (Invoices.IssuedDate <= N'"& ToDate & "') GROUP BY Kid.AccID, Kid.AccountTitle, Kid.Price, Kid.Discount, Kid.Reverse, Kid.CatID, Kid.CatName, Kid.InvQtty, Invoices.Issued, Invoices.Voided, Kid.CSRname HAVING (Invoices.Issued = 1) AND (Invoices.Voided = 0) ORDER BY Kid.AccID, Kid.CatID"
  89. '------------------------------------------------------------------------------------------------------------------------------------
  90. Set RS1 = conn.Execute(mySQL)
  91. cols=20
  92. Dim Col1(20)
  93. Dim Col2(20)
  94. for i=1 to cols
  95. Col1(i)=""
  96. Col2(i)=""
  97. next
  98. LastAcc=0
  99. tmpCounter=0
  100. %>
  101. <style>
  102. .resTable1 { Font-family:tahoma; Font-Size:9pt; Background-color:#336699; border: 1 solid #336699;}
  103. .resTable1 th {Background-color:#6699CC;}
  104. .resRow1 {Background-color:#F8F8FF;}
  105. .resRow0 {Background-color:#CCCCDD;}
  106. </style>
  107. <CENTER><H3><%=reportTitle%></H3></CENTER>
  108. <table class="resTable1" Cellspacing="1" Cellpadding="2" align=center>
  109. <th> </th>
  110. <th> </th>
  111. <th> 1 ( )</th>
  112. <th></th>
  113. <th> 2 ( )</th>
  114. <th></th>
  115. <th> 3 ()</th>
  116. <th></th>
  117. <th> 4 ()</th>
  118. <th></th>
  119. <th> 5 ( )</th>
  120. <th></th>
  121. <th> 6 ()</th>
  122. <th></th>
  123. <th> 7 ( )</th>
  124. <th></th>
  125. <th> 8 ()</th>
  126. <th></th>
  127. <th> 9 ( )</th>
  128. <th></th>
  129. <th> 10 ()</th>
  130. <th></th>
  131. <th> 11 ( )</th>
  132. <th></th>
  133. <th> 13 ( )</th>
  134. <th></th>
  135. <th> 14 ( )</th>
  136. <th></th>
  137. <th> </th>
  138. <th> </th>
  139. <th> </th>
  140. <th> ѐ</th>
  141. <th> </th>
  142. </tr>
  143. <%
  144. if RS1.EOF then
  145. %>
  146. <tr>
  147. <td width="100%" class="resRow1" colspan="33" align="center">
  148. </td>
  149. </tr>
  150. <%
  151. else
  152. Do While NOT RS1.EOF 'and tmpCounter < 10
  153. AccID =RS1("AccID")
  154. if AccID<>LastAcc AND LastAcc <> 0 then
  155. 'write last row
  156. tmpCounter=tmpCounter+1
  157. %>
  158. <tr class="resRow<%=tmpCounter mod 2%>">
  159. <td><%=LastAcc%></td>
  160. <td><%=Server.HTMLEncode(AccountTitle)%></td>
  161. <td><%=Separate(Col1(1))%></td>
  162. <td><%=Separate(Col2(1))%></td>
  163. <td><%=Separate(Col1(2))%></td>
  164. <td><%=Separate(Col2(2))%></td>
  165. <td><%=Separate(Col1(3))%></td>
  166. <td><%=Separate(Col2(3))%></td>
  167. <td><%=Separate(Col1(4))%></td>
  168. <td><%=Separate(Col2(4))%></td>
  169. <td><%=Separate(Col1(5))%></td>
  170. <td><%=Separate(Col2(5))%></td>
  171. <td><%=Separate(Col1(6))%></td>
  172. <td><%=Separate(Col2(6))%></td>
  173. <td><%=Separate(Col1(7))%></td>
  174. <td><%=Separate(Col2(7))%></td>
  175. <td><%=Separate(Col1(8))%></td>
  176. <td><%=Separate(Col2(8))%></td>
  177. <td><%=Separate(Col1(9))%></td>
  178. <td><%=Separate(Col2(9))%></td>
  179. <td><%=Separate(Col1(10))%></td>
  180. <td><%=Separate(Col2(10))%></td>
  181. <td><%=Separate(Col1(11))%></td>
  182. <td><%=Separate(Col2(11))%></td>
  183. <td><%=Separate(Col1(13))%></td>
  184. <td><%=Separate(Col2(13))%></td>
  185. <td><%=Separate(Col1(14))%></td>
  186. <td><%=Separate(Col2(14))%></td>
  187. <td><%=Separate(TotalInvQtty)%></td>
  188. <td><%=Separate(TotalReceivable)%></td>
  189. <td><%=Separate(TotalDiscount)%></td>
  190. <td><%=Separate(TotalReverse)%></td>
  191. <td><%=Server.HTMLEncode(CSRname)%></td>
  192. </tr>
  193. <%
  194. for i=1 to cols
  195. Col1(i)=""
  196. Col2(i)=""
  197. next
  198. end if
  199. AccountTitle =RS1("AccountTitle")
  200. Price =cdbl(RS1("Price"))
  201. Discount =cdbl(RS1("Discount"))
  202. Reverse =cdbl(RS1("Reverse"))
  203. CatID =cint(RS1("CatID"))
  204. CatName =RS1("CatName")
  205. InvQtty =clng(RS1("InvQtty"))
  206. TotalInvQtty =clng(RS1("TotalInvQtty"))
  207. TotalReceivable =cdbl(RS1("TotalReceivable"))
  208. TotalDiscount =cdbl(RS1("TotalDiscount"))
  209. TotalReverse =cdbl(RS1("TotalReverse"))
  210. CSRname =RS1("CSRname")
  211. Col1(CatID)=Price-Discount-Reverse
  212. Col2(CatID)=InvQtty
  213. LastAcc=AccID
  214. RS1.moveNext
  215. Loop
  216. tmpCounter=tmpCounter+1
  217. %>
  218. <tr class="resRow<%=tmpCounter mod 2%>">
  219. <td><%=LastAcc%></td>
  220. <td><%=Server.HTMLEncode(AccountTitle)%></td>
  221. <td><%=Separate(Col1(1))%></td>
  222. <td><%=Separate(Col2(1))%></td>
  223. <td><%=Separate(Col1(2))%></td>
  224. <td><%=Separate(Col2(2))%></td>
  225. <td><%=Separate(Col1(3))%></td>
  226. <td><%=Separate(Col2(3))%></td>
  227. <td><%=Separate(Col1(4))%></td>
  228. <td><%=Separate(Col2(4))%></td>
  229. <td><%=Separate(Col1(5))%></td>
  230. <td><%=Separate(Col2(5))%></td>
  231. <td><%=Separate(Col1(6))%></td>
  232. <td><%=Separate(Col2(6))%></td>
  233. <td><%=Separate(Col1(7))%></td>
  234. <td><%=Separate(Col2(7))%></td>
  235. <td><%=Separate(Col1(8))%></td>
  236. <td><%=Separate(Col2(8))%></td>
  237. <td><%=Separate(Col1(9))%></td>
  238. <td><%=Separate(Col2(9))%></td>
  239. <td><%=Separate(Col1(10))%></td>
  240. <td><%=Separate(Col2(10))%></td>
  241. <td><%=Separate(Col1(11))%></td>
  242. <td><%=Separate(Col2(11))%></td>
  243. <td><%=Separate(Col1(13))%></td>
  244. <td><%=Separate(Col2(13))%></td>
  245. <td><%=Separate(Col1(14))%></td>
  246. <td><%=Separate(Col2(14))%></td>
  247. <td><%=Separate(TotalInvQtty)%></td>
  248. <td><%=Separate(TotalReceivable)%></td>
  249. <td><%=Separate(TotalDiscount)%></td>
  250. <td><%=Separate(TotalReverse)%></td>
  251. <td><%=Server.HTMLEncode(CSRname)%></td>
  252. </tr>
  253. </table>
  254. <%
  255. end if
  256. '------------------------------------------------------------------------------------------------------------------------------------
  257. end if
  258. %>
  259. </body>
  260. </html>