NAV OnlineInvoices

This commit is contained in:
2018-07-18 13:54:19 +02:00
parent 51be4568d2
commit 6ce0c4c9eb
15 changed files with 1107 additions and 147 deletions
@@ -91,7 +91,7 @@ Public Class ProductsGant_VC
End Sub
Private Sub GenerateData(_ProductsGant As ProductsGant, _onew As Xpo.XPObjectSpace)
Dim _FBS As Integer = 0
Dim _SQL As String
@@ -106,151 +106,179 @@ Public Class ProductsGant_VC
Dim _SelectedData As SelectedData = _onew.Session.ExecuteQuery(_SQL)
'Try
_WaitFormClass.Initwork(1, 1, _SelectedData.ResultSet(0).Rows.Length)
For Each row As SelectStatementResultRow In _SelectedData.ResultSet(0).Rows
_WaitFormClass.DoWork()
Try
_WaitFormClass.Initwork(1, 1, _SelectedData.ResultSet(0).Rows.Length)
For Each row As SelectStatementResultRow In _SelectedData.ResultSet(0).Rows
_WaitFormClass.DoWork()
If row.Values(0) IsNot Nothing Then
If row.Values(0) IsNot Nothing Then
Dim _ProductsGantRows As ProductsGantRows =
_onew.FindObject(Of ProductsGantRows)(CriteriaOperator.Parse("Products.Oid = ? AND Customers.Oid= ? AND ProductsGant.Oid= ?", row.Values(1), row.Values(0), _ProductsGant.Oid))
If _ProductsGantRows Is Nothing Then
_SQL = "insert ProductsGantRows (Oid,ProductsGant,Customers,Products,CalculatedRotation,ManualRotation,CalculatedRotationW52,QTT_Minimum,QTT_Critical)"
_SQL += " select "
_SQL += " UUID(), "
_SQL += "'" & _ProductsGant.Oid.ToString() & "',"
_SQL += "'" & row.Values(0) & "',"
_SQL += "'" & row.Values(1) & "',"
_SQL += Double.Parse(row.Values(2)).ToString("F", CultureInfo.InvariantCulture) & ","
_SQL += "0,"
_SQL += Double.Parse(row.Values(3)).ToString("F", CultureInfo.InvariantCulture) & ","
_SQL += "0,0"
Dim _ProductsGantRows As ProductsGantRows =
_onew.FindObject(Of ProductsGantRows)(CriteriaOperator.Parse("Products.Oid = ? AND Customers.Oid= ? AND ProductsGant.Oid= ?", row.Values(1), row.Values(0), _ProductsGant.Oid))
If _ProductsGantRows Is Nothing Then
_SQL = "insert ProductsGantRows (Oid,ProductsGant,Customers,Products,CalculatedRotation,ManualRotation,CalculatedRotationW52,QTT_Minimum,QTT_Critical)"
_SQL += " select "
_SQL += " UUID(), "
_SQL += "'" & _ProductsGant.Oid.ToString() & "',"
_SQL += "'" & row.Values(0) & "',"
_SQL += "'" & row.Values(1) & "',"
_SQL += Double.Parse(row.Values(2)).ToString("F", CultureInfo.InvariantCulture) & ","
_SQL += "0,"
_SQL += Double.Parse(row.Values(3)).ToString("F", CultureInfo.InvariantCulture) & ","
_SQL += "0,0"
_onew.Session.ExecuteNonQuery(_SQL)
Else
_SQL = " update ProductsGantRows set CalculatedRotation = " & Double.Parse(row.Values(2)).ToString("F", CultureInfo.InvariantCulture) & ","
_SQL += " CalculatedRotationW52 = " & Double.Parse(row.Values(3)).ToString("F", CultureInfo.InvariantCulture)
_SQL += " where Oid='" & _ProductsGantRows.Oid.ToString & "'"
_onew.Session.ExecuteNonQuery(_SQL)
_onew.Session.ExecuteNonQuery(_SQL)
Else
_SQL = " update ProductsGantRows set CalculatedRotation = " & Double.Parse(row.Values(2)).ToString("F", CultureInfo.InvariantCulture) & ","
_SQL += " CalculatedRotationW52 = " & Double.Parse(row.Values(3)).ToString("F", CultureInfo.InvariantCulture)
_SQL += " where Oid='" & _ProductsGantRows.Oid.ToString & "'"
_onew.Session.ExecuteNonQuery(_SQL)
End If
If _ProductsGantRows IsNot Nothing Then
Dim _Item As Long = _GanttControl.Items.get_FindItem(_ProductsGantRows.Oid.ToString, 0)
'Most le kéne generálni a GANTROWSBAR elemeket is .....
_SQL = " select t1.QTT,t1.DateExecution"
_SQL += " from productsgantcustomersreport t1"
_SQL += " where t1.Products='" & row.Values(1) & "'"
_SQL += " AND t1.Customers='" & row.Values(0) & "'"
_SQL += " AND t1.GCRecord is null"
_SQL += " order by t1.DateExecution DESC"
Dim _SelectedData2 As SelectedData = _onew.Session.ExecuteQuery(_SQL)
For Each row2 As SelectStatementResultRow In _SelectedData2.ResultSet(0).Rows
Dim _AD As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD = row2.Values(0) * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD = row2.Values(0) * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _Key As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Reported", row2.Values(1), DateTime.Parse(row2.Values(1)).AddDays(_AD), _Key, row2.Values(0))
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
If _ProductsGantRows.QTT_Minimum > 0 Then
Dim _DateTo As DateTime = DateTime.Parse(row2.Values(1)).AddDays(_AD)
Dim _AD2 As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD2 = _ProductsGantRows.QTT_Minimum * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD2 = _ProductsGantRows.QTT_Minimum * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _DateFrom As DateTime = _DateTo.AddDays(_AD2 * -1)
Dim _Key2 As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Critical", _DateFrom, _DateTo, _Key2, _ProductsGantRows.QTT_Minimum)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
_FBS += 1
End If
Exit For
Next
_SQL = " select sum(t1.QTT),DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " from OrderInRows t1 join OrderInHeader t2 on t1.OrderInHeader=t2.Oid"
_SQL += " where t1.Products='" & row.Values(1) & "' AND t1.QTT > t1.QTT_Invoiced "
_SQL += " AND t2.Customers='" & row.Values(0) & "'"
_SQL += " AND t1.GCRecord is null and t2.GCRecord is null"
_SQL += " GROUP BY DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " order by DATE_FORMAT(t2.DateExecution,'%Y-%m-%d') DESC"
_SelectedData2 = _onew.Session.ExecuteQuery(_SQL)
For Each row2 As SelectStatementResultRow In _SelectedData2.ResultSet(0).Rows
Dim _AD As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD = row2.Values(0) * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD = row2.Values(0) * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _Key As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Ordered", row2.Values(1), DateTime.Parse(row2.Values(1)).AddDays(_AD), _Key, row2.Values(0))
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
Next
_SQL = " select sum(t1.QTT),DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " from InvoiceRows t1 join InvoiceHeader t2 on t1.InvoiceHeader=t2.Oid"
_SQL += " left join OrderInRows t3 on t1.OrderInRows=t3.Oid"
_SQL += " where t3.Products='" & row.Values(1) & "'"
_SQL += " AND t2.Customers='" & row.Values(0) & "'"
_SQL += " AND t1.GCRecord is null and t2.GCRecord is null AND t2.IsEditable=0"
_SQL += " GROUP BY DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " order by DATE_FORMAT(t2.DateExecution,'%Y-%m-%d') DESC"
_SelectedData2 = _onew.Session.ExecuteQuery(_SQL)
For Each row2 As SelectStatementResultRow In _SelectedData2.ResultSet(0).Rows
Dim _AD As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD = row2.Values(0) * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD = row2.Values(0) * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _Key As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Accounted", row2.Values(1), DateTime.Parse(row2.Values(1)).AddDays(_AD), _Key, row2.Values(0))
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
Next
End If
End If
'IDEIGLENES !!!
'If _FBS > 5 Then Exit For
Next row
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
If _ProductsGantRows IsNot Nothing Then
Dim _Item As Long = _GanttControl.Items.get_FindItem(_ProductsGantRows.Oid.ToString, 0)
'Most le kéne generálni a GANTROWSBAR elemeket is .....
_SQL = " select t1.QTT,t1.DateExecution"
_SQL += " from productsgantcustomersreport t1"
_SQL += " where t1.Products='" & row.Values(1) & "'"
_SQL += " AND t1.Customers='" & row.Values(0) & "'"
_SQL += " AND t1.GCRecord is null"
_SQL += " order by t1.DateExecution DESC"
Dim _SelectedData2 As SelectedData = _onew.Session.ExecuteQuery(_SQL)
For Each row2 As SelectStatementResultRow In _SelectedData2.ResultSet(0).Rows
Dim _AD As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD = row2.Values(0) * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD = row2.Values(0) * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _Key As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Reported", row2.Values(1), DateTime.Parse(row2.Values(1)).AddDays(_AD), _Key, row2.Values(0))
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
Exit For
Next
_SQL = " select sum(t1.QTT),DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " from OrderInRows t1 join OrderInHeader t2 on t1.OrderInHeader=t2.Oid"
_SQL += " where t1.Products='" & row.Values(1) & "' AND t1.QTT > t1.QTT_Invoiced "
_SQL += " AND t2.Customers='" & row.Values(0) & "'"
_SQL += " AND t1.GCRecord is null and t2.GCRecord is null"
_SQL += " GROUP BY DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " order by DATE_FORMAT(t2.DateExecution,'%Y-%m-%d') DESC"
_SelectedData2 = _onew.Session.ExecuteQuery(_SQL)
For Each row2 As SelectStatementResultRow In _SelectedData2.ResultSet(0).Rows
Dim _AD As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD = row2.Values(0) * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD = row2.Values(0) * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _Key As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Ordered", row2.Values(1), DateTime.Parse(row2.Values(1)).AddDays(_AD), _Key, row2.Values(0))
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
Next
_SQL = " select sum(t1.QTT),DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " from InvoiceRows t1 join InvoiceHeader t2 on t1.InvoiceHeader=t2.Oid"
_SQL += " left join OrderInRows t3 on t1.OrderInRows=t3.Oid"
_SQL += " where t3.Products='" & row.Values(1) & "'"
_SQL += " AND t2.Customers='" & row.Values(0) & "'"
_SQL += " AND t1.GCRecord is null and t2.GCRecord is null AND t2.IsEditable=0"
_SQL += " GROUP BY DATE_FORMAT(t2.DateExecution,'%Y-%m-%d')"
_SQL += " order by DATE_FORMAT(t2.DateExecution,'%Y-%m-%d') DESC"
_SelectedData2 = _onew.Session.ExecuteQuery(_SQL)
For Each row2 As SelectStatementResultRow In _SelectedData2.ResultSet(0).Rows
Dim _AD As Double = 1
If Double.Parse(row.Values(2)) <> 0 Then
_AD = row2.Values(0) * 7 / Double.Parse(row.Values(2))
End If
If _ProductsGantRows IsNot Nothing Then
If _ProductsGantRows.ManualRotation > 0 Then
_AD = row2.Values(0) * 7 / _ProductsGantRows.ManualRotation
End If
End If
Dim _Key As String = Guid.NewGuid.ToString
_GanttControl.Items.AddBar(CInt(_Item), "Accounted", row2.Values(1), DateTime.Parse(row2.Values(1)).AddDays(_AD), _Key, row2.Values(0))
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanResize, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanMove, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanStartLink, False)
_GanttControl.Items.set_ItemBar(CInt(_Item), _Key, exontrol.EXG2ANTTLib.ItemBarPropertyEnum.exBarCanBeLinked, False)
_GanttControl.Items.set_BarHAlignCaption(CInt(_Item), _Key, AlignmentEnum.LeftAlignment)
Next
End If
End If
Next row
'Catch ex As Exception
' Throw New Exception(ex.Message)
'Finally
_WaitFormClass.FinalWork()
'End Try
_WaitFormClass.FinalWork()
End Try
@@ -366,7 +394,7 @@ Public Class ProductsGant_VC
.HistogramPattern = PatternEnum.exPatternBox + PatternEnum.exPatternDot + PatternEnum.exPatternShadow
.HistogramColor = Drawing.Color.Yellow
.OverlaidType = OverlaidBarsTypeEnum.exOverlaidBarsStack
.OverlaidGroup = "Reported,Ordered,Accounted"
.OverlaidGroup = "Reported,Ordered,Accounted,Critical"
End With
With .Copy("Task", "Ordered")
.Color = Drawing.Color.Black
@@ -378,7 +406,7 @@ Public Class ProductsGant_VC
.HistogramPattern = PatternEnum.exPatternBox + PatternEnum.exPatternDot + PatternEnum.exPatternShadow
.HistogramColor = Drawing.Color.Pink
.OverlaidType = OverlaidBarsTypeEnum.exOverlaidBarsStack
.OverlaidGroup = "Reported,Ordered,Accounted"
.OverlaidGroup = "Reported,Ordered,Accounted,Critical"
End With
With .Copy("Summary", "Reported")
.Color = Drawing.Color.DarkGray
@@ -393,7 +421,22 @@ Public Class ProductsGant_VC
.HistogramPattern = PatternEnum.exPatternBox + PatternEnum.exPatternDot + PatternEnum.exPatternShadow + PatternEnum.exPatternEmpty
.HistogramColor = Drawing.Color.Green
.OverlaidType = OverlaidBarsTypeEnum.exOverlaidBarsStack
.OverlaidGroup = "Reported,Ordered,Accounted"
.OverlaidGroup = "Reported,Ordered,Accounted,Critical"
End With
With .Copy("Summary", "Critical")
.Color = Drawing.Color.DarkGray
.Shape = ShapeBarEnum.exShapeSolid
.StartShape = ShapeCornerEnum.exShapeIconUp3
.EndShape = ShapeCornerEnum.exShapeIconDown3
.HistogramRulerLinesColor = Drawing.Color.Black
.StartColor = Drawing.Color.Blue
.EndColor = Drawing.Color.Blue
.Pattern = PatternEnum.exPatternBox + PatternEnum.exPatternDot + PatternEnum.exPatternShadow + PatternEnum.exPatternEmpty
.Height = 18
.HistogramPattern = PatternEnum.exPatternBox + PatternEnum.exPatternDot + PatternEnum.exPatternShadow + PatternEnum.exPatternEmpty
.HistogramColor = Drawing.Color.Green
.OverlaidType = OverlaidBarsTypeEnum.exOverlaidBarsStack
.OverlaidGroup = "Reported,Ordered,Accounted,Critical"
End With
With .Copy("Milestone", "OrderArrive")
.StartShape = ShapeCornerEnum.exShapeIconVBar
@@ -406,6 +449,7 @@ Public Class ProductsGant_VC
.HistogramPattern = PatternEnum.exRectangularCurve + PatternEnum.exPatternDot + PatternEnum.exPatternShadow
.HistogramColor = Drawing.Color.Red
.OverlaidType = OverlaidBarsTypeEnum.exOverlaidBarsStack
.OverlaidGroup = "Reported,Ordered,Accounted,Critical"
End With
End With