/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/fi/fifo_m4.aspx.vb
124 строки
6 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports System.Data Imports sharedClasses.dbFunctions Imports System.Net Imports Newtonsoft.Json Imports System.IO Imports System.Globalization Partial Class FIFO_M4 Inherits System.Web.UI.Page Private sqlf As New SqlFunctions Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 'Dim docNumber As String = Request.QueryString("dn") If Not IsNothing(Request.QueryString("dn")) Then Dim ltr As New LiteralControl ltr.Text = form1.InnerHtml form1.InnerHtml = "" form1.Controls.Add(ltr) Dim first As Boolean = True Try Dim docs As DataTable = GetDocInfo(Request.QueryString("dn"), 1) If docs.Rows.Count > 0 Then sqlf.NonQuery("UPDATE UserModules.[user].GERP_MB_51_FOR_GTD SET PRINTED='" & DateTime.Now.ToString("yyyyMMddHHmmss") & "' WHERE ID = " & Request.QueryString("dn")) For Each dr As DataRow In docs.Rows If first Then ltr.Text = ltr.Text.Replace("@DOC_NUMBER", dr("docNumber")) ltr.Text = ltr.Text.Replace("@DOC_DATE", dr("docDate")) '.ToString.Substring(0, 4) _ '& "-" & dr("docDate").ToString.Substring(4, 2) _ '& "-" & dr("docDate").ToString.Substring(6, 2)) ltr.Text = ltr.Text.Replace("@VENDOR_CODE", dr("VENDOR_CODE")) ltr.Text = ltr.Text.Replace("@VENDOR", dr("VENDOR")) ltr.Text = ltr.Text.Replace("@INVOICE", dr("INVOICE")) ltr.Text = ltr.Text.Replace("@DESC", dr("description")) ltr.Text = ltr.Text.Replace("@MATERIAL", dr("material")) ltr.Text = ltr.Text.Replace("@GTD", dr("gtd")) Dim uom, uomCode As String Select Case dr("UOM").ToString.ToUpper Case "PC" uom = "шт" uomCode = "796" Case "M" uom = "м" uomCode = "006" Case "G" uom = "г" uomCode = "163" Case "KG" uom = "кг" uomCode = "166" Case Else uom = "" uomCode = "" End Select ltr.Text = ltr.Text.Replace("@UOM_CODE", uomCode) ltr.Text = ltr.Text.Replace("@UOM", uom) ltr.Text = ltr.Text.Replace("@QTY", dr("INVOICE_QTY")) ltr.Text = ltr.Text.Replace("@PRICE", dr("PRICE_RUB")) ltr.Text = ltr.Text.Replace("@AMNT", String.Format(CultureInfo.InvariantCulture, "{0:##,##.##}", dr("AMNT_RUB"))) End If first = False Next Else ltr.Text = "" End If Catch ex As Exception Response.Clear() Response.Write(Request.QueryString("dn") & " ERROR: " & ex.Message) End Try End If End Sub Private Function GetDocInfo(docNumber As String, mode As Integer) As DataTable Dim sql As New StringBuilder If mode = 1 Then '================= BY GR document for 1 material ========================== sql.AppendLine("select ") sql.AppendLine("MAT__DOC_ + '-' + ITEM as docnumber, ") sql.AppendLine("pstng_date as docDate, ") sql.AppendLine("isnull((select TOP 1 VEND_NM FROM GmesData.dbo.TB_TBM_MD_VEND t1 where t1.VEND_CODE collate Cyrillic_General_CI_AI = vendor collate Cyrillic_General_CI_AI),vendor) as vendor, ") sql.AppendLine("vendor as vendor_code, ") sql.AppendLine("reference as invoice, ") sql.AppendLine("MATERIAL_DESCRIPTION as description, ") sql.AppendLine("material, ") sql.AppendLine("gtd, ") sql.AppendLine("eun as uom, ") sql.AppendLine("QUANTITY as invoice_qty, ") 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 unit_price, ") sql.AppendLine("AMOUNT_IN_LC as INVOICE_AMNT, ") sql.AppendLine("1 as EXCH__RATE__RUB, ") 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 PRICE_RUB, ") sql.AppendLine("cast(replace(replace(AMOUNT_IN_LC,' ' ,''),',','.') as decimal(18,4)) as AMNT_RUB ") sql.AppendLine("from UserModules.[user].GERP_MB_51_FOR_GTD ") sql.AppendLine("where mvt = '101' AND ") 'consider only 101 GR documents sql.AppendLine("ID= " & docNumber) 'sql.AppendLine("where MAT__DOC_ like '6%' AND ") 'GR documents starts with 6 'sql.AppendLine("-- MAT__DOC_ = '6053096431' ") ' sql.AppendLine(" GROUP BY model, substring(model, 3,2)") End If Return sqlf.GetData(sql.ToString) End Function 'Private Function GetDocInfoFromWMS(grDocNumber As String) As DataTable ' Dim wb As WebRequest ' Dim url As String = "http://serkweb:8080/tools/Handlers/getwmsdata.ashx?fname=Z_RFC_MAT_DOCS&format=json&mvt=501" ' If grDocNumber <> "" Then ' url &= "&MBLNR=" & grDocNumber ' wb = WebRequest.Create(url) ' Dim res As WebResponse = wb.GetResponse ' Dim sr As New StreamReader(res.GetResponseStream) ' Return JsonToTable(sr.ReadToEnd) ' End If ' Return Nothing 'End Function Private Function JsonToTable(json As String) As DataTable Return JsonConvert.DeserializeObject(Of DataTable)(json) End Function End Class