/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/fi/fifo_giform.aspx.vb
93 строки
5 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports System.Data Imports sharedClasses.dbFunctions Partial Class fifo_gi Inherits System.Web.UI.Page Private sqlf As New SqlFunctions Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 'docNumber.Text = IIf(IsNothing(Request.QueryString("dn")), "", Request.QueryString("dn")) If Not IsNothing(Request.QueryString("dn")) Then Dim dt As DataTable = buildList(Request.QueryString("dn")) Dim first As Boolean = True If Not IsNothing(dt) Then sqlf.NonQuery("UPDATE UserModules.[user].GERP_MB_51_FOR_GTD SET PRINTED_GI='" & DateTime.Now.ToString("yyyyMMddHHmmss") & "' WHERE ID = " & Request.QueryString("dn")) For Each dr As DataRow In dt.Rows docNumber.Text = dr("docnumber") Dim tr As New HtmlTableRow For c As Integer = 1 To 10 Dim tc As New HtmlTableCell tc.InnerHtml = templateRow.Cells(c - 1).InnerHtml tc.InnerHtml = tc.InnerHtml.Replace("MATERIAL", dr("material")) tc.InnerHtml = tc.InnerHtml.Replace("GTD", dr("gtd")) tc.InnerHtml = tc.InnerHtml.Replace("QTY", dr("qty")) tc.InnerHtml = tc.InnerHtml.Replace("MAP", Math.Round(dr("map"), 2).ToString) tc.InnerHtml = tc.InnerHtml.Replace("AMNT", String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0:##,##.##}", dr("amnt"))) ' Math.Round(dr("amnt"), 2).ToString) tc.InnerHtml = tc.InnerHtml.Replace("MODEL", dr("model")) tc.Attributes("style") = templateRow.Cells(c - 1).Attributes("style") tr.Cells.Add(tc) If first Then If dr("order_date").ToString.Trim.Length = 8 Then docDate.Text = dr("order_date").ToString.Substring(0, 4) _ & "-" & dr("order_date").ToString.Substring(4, 2) _ & "-" & dr("order_date").ToString.Substring(6, 2) Else docDate.Text = dr("order_date") End If first = False End If Next data.Rows.Add(tr) Next End If End If End Sub Private Function buildList(documentNumber As String) As DataTable Dim sql As New StringBuilder sql.AppendLine("select isnull(PRODUCTION_ORDER_date, pstng_date) as order_date, ") 'sql.AppendLine("select pstng_date as order_date, ") sql.AppendLine("MAT__DOC_ + '-' + ITEM as docnumber, ") sql.AppendLine("isnull(FG_MODEL,'-') as model, ") sql.AppendLine("material, ") sql.AppendLine("REFERENCE_GTD as gtd, ") sql.AppendLine("cast(cast(replace(replace(AMOUNT_IN_LC,' ' ,''),',','.') as decimal(18,4)) / cast(replace(replace(quantity,' ' ,''),',','.') as decimal(18,4)) as decimal(18,2)) as map, ") sql.AppendLine("cast(replace(AMOUNT_IN_LC,'-','') as decimal(18,2)) as amnt, ") sql.AppendLine("cast(replace(QUANTITY ,'-','') as decimal(18,2)) as qty, ") sql.AppendLine("REMARK ") sql.AppendLine("from UserModules.[user].GERP_MB_51_FOR_GTD ") 'sql.AppendLine("-- MAT__DOC_ = '6053096431' ") 'sql.AppendLine("where mvt='261' and id = " & documentNumber) ' Consider only 261 GI mvt sql.AppendLine("where id = " & documentNumber) Dim rawDt As DataTable = sqlf.GetData(sql.ToString) Dim processedDt As DataTable = rawDt.Clone processedDt.Rows.Clear() For Each r As DataRow In rawDt.Rows If r("gtd").ToString.Contains("|") Then Dim gtdList() As String = r("remark").ToString.Split("|") For Each gtd As String In gtdList Dim newRow As DataRow = processedDt.NewRow newRow("order_date") = r("order_date") newRow("docnumber") = r("docnumber") newRow("model") = r("model") newRow("material") = r("material") newRow("gtd") = gtd.Split(":")(0).Split("[")(0) newRow("map") = r("map") newRow("amnt") = Math.Abs(r("map") * gtd.Split(":")(3)) newRow("qty") = Math.Abs(Convert.ToInt32(gtd.Split(":")(3))) newRow("remark") = r("remark") processedDt.Rows.Add(newRow) Next Else processedDt.ImportRow(r) End If Next Return processedDt End Function End Class