/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/fi/fifo_account_card.aspx.vb
120 строк
6 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports sharedClasses.dbFunctions Imports System.Data Imports System.Data.SqlClient Imports System.Text Partial Class FI_fifo_account_card Inherits System.Web.UI.Page Private sqlf As New SqlFunctions Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load Dim gtd As String = Request.QueryString("gtd") Dim account As String = Request.QueryString("acc") If Not (IsNothing(gtd) And IsNothing(account)) Then lblAcc.Text = account lblYear.Text = "___________" lblGtd.Text = gtd Dim dt As DataTable = GetDocList(gtd, account) '("10106050/190912/0018274", "20") accountCard.Rows.RemoveAt(2) For Each dr As DataRow In dt.Rows Dim tr As New HtmlTableRow tr.Style.Add("page-break-after", "always") For Each c As HtmlTableCell In templateRow.Cells Dim tc As New HtmlTableCell Dim amount As Decimal = 0 Dim qty As Integer = 0 Dim tmp() As String = dr("REMARK").split("|") Dim gtdInfo As New Hashtable For Each s As String In tmp '/////////////////////////////////// CHECK ABS /////////////////////////////////////////// If gtdInfo.Contains(s.Split("[")(0)) Then gtdInfo(s.Split("[")(0)) += Math.Abs(Convert.ToInt64(s.Split(":")(3))) Else gtdInfo.Add(s.Split("[")(0), Math.Abs(Convert.ToInt64(s.Split(":")(3)))) End If Next If dr("MVT") = "101" Then qty = dr("QUANTITY") Else qty = gtdInfo(gtd) End If amount = Math.Round(dr("AMOUNT_IN_LC") / dr("QUANTITY") * qty, 2) If dr("DOC_DATE").ToString.Trim.Length = 8 Then dr("DOC_DATE") = dr("DOC_DATE").ToString.Substring(0, 4) _ & "-" & dr("DOC_DATE").ToString.Substring(4, 2) _ & "-" & dr("DOC_DATE").ToString.Substring(6, 2) ElseIf dr("DOC_DATE").ToString.Trim = "" Then dr("DOC_DATE") = dr("PSTNG_DATE") End If 'tc.InnerHtml = c.InnerHtml.Replace("@DATE", dr("PSTNG_DATE")) 'tc.InnerHtml = c.InnerHtml.Replace("@DATE", dr("DOC_DATE")) tc.InnerHtml = c.InnerHtml.Replace("@DATE", dr("DOC_DATE")) _ .Replace("@DOC", dr("MAT__DOC_")) _ .Replace("@DT", dr("DOCUMENT_TEXT")) _ .Replace("@OT", dr("OPERATION_TEXT")) _ .Replace("@QTY", qty.ToString.Trim("-")) _ .Replace("@D_ACC", dr("TO_ACCOUNT")) _ .Replace("@C_ACC", dr("FROM_ACCOUNT")) _ .Replace("@PARTNO", dr("material")) _ .Replace("@AMOUNT", amount.ToString("0.00").Trim("-")) tc.Attributes("style") = c.Attributes("style") tc.Attributes("colspan") = c.Attributes("colspan") tr.Cells.Add(tc) accountCard.Rows.Add(tr) Next Next Else Response.Write("No GTD and/or account number specified.") End If End Sub Private Function GetDocList(gtd As String, account As String) As DataTable Dim sql As New StringBuilder sql.AppendLine(" SELECT ") sql.AppendLine("MAX(T1.ID) ") sql.AppendLine(" , T1.MAT__DOC_ ") sql.AppendLine(" , T1.MATERIAL ") sql.AppendLine(" , T1.PSTNG_DATE ") sql.AppendLine(" , T1.MVT ") sql.AppendLine(" , T1.Sloc ") sql.AppendLine(" , SUM(cast(T1.QUANTITY as integer)) as QUANTITY ") sql.AppendLine(" , SUM(cast(T1.AMOUNT_IN_LC as decimal(18,2)) ) as AMOUNT_IN_LC ") sql.AppendLine(" , ISNULL(T1.REMARK ") sql.AppendLine(" , T1.REFERENCE_GTD + '[' + T1.PSTNG_DATE + ']:::' + QUANTITY) as REMARK ") sql.AppendLine(" , T2.FROM_ACCOUNT ") sql.AppendLine(" , T2.TO_ACCOUNT ") sql.AppendLine(" , T2.DOCUMENT_TEXT ") sql.AppendLine(" , T2.OPERATION_TEXT ") sql.AppendLine(" , isnull(T1.PRODUCTION_ORDER_date, T1.pstng_date) as DOC_DATE ") sql.AppendLine(" FROM UserModules.[user].[GERP_MB_51_FOR_GTD] T1 ") sql.AppendLine("LEFT JOIN UserModules.[user].MVT_VS_ACCOUNT_MAPPING T2 ") sql.AppendLine("ON T1.MVT = T2.MOVEMENT_TYPE ") sql.AppendLine(" WHERE REFERENCE_GTD like '%" & gtd & "%' ") sql.AppendLine(" AND (T2.FROM_ACCOUNT = " & account & " OR T2.TO_ACCOUNT = " & account & ") ") sql.AppendLine("GROUP BY T1.MAT__DOC_ ") sql.AppendLine(" , T1.MATERIAL ") sql.AppendLine(" , T1.PSTNG_DATE ") sql.AppendLine(" , T1.MVT ") sql.AppendLine(" , T1.SLoc ") sql.AppendLine(" , ISNULL(T1.REMARK ") sql.AppendLine(" , T1.REFERENCE_GTD + '[' + T1.PSTNG_DATE + ']:::' + QUANTITY) ") sql.AppendLine(" , T2.FROM_ACCOUNT ") sql.AppendLine(" , T2.TO_ACCOUNT ") sql.AppendLine(" , T2.DOCUMENT_TEXT ") sql.AppendLine(" , T2.OPERATION_TEXT ") sql.AppendLine(", isnull(T1.PRODUCTION_ORDER_date, T1.pstng_date) ") sql.AppendLine(" ORDER BY PSTNG_DATE, MATERIAL ") Return sqlf.GetData(sql.ToString) End Function End Class