Harmonogramowanie
•Optymalizacja ‘Genetic Algorithm Solver’
•Aktualizacja kontrolek do nowej wersji 7.0.7.2
•Optymalizacja konfiguracji planowania
•Harmonogram: definicja wyjątku
•Harmonogramowanie - Akceptacja harmonogramu głównego
•Harmonogramowanie - komunikaty błędów
•Harmonogramowanie - Zapis przed przeliczeniem harmonogramu powoduje błąd
Błąd ‘Powielone numery pozycji marszruty:’ jest widoczny w bazie a na oknie użytkownika
Interfejs użytkownika jest przebudowany zaraz po załadowaniu i indeksy operacji, materiałów, odpadów i kosztów były przebudowywane prze co użytkownik był wprowadzany w błąd. Indeksy wyglądają na poprawne podczas gdy w bazie nadal istniały błędy i wykrywała je walidacja przy włączaniu harmonogramowania. Błąd został poprawiony i przebudowa indeksów jest aktywna wyłącznie podczas edycji.
Drukowanie załączników z paneli meldunkowych
Dodano możliwość wydruku załączników z paneli meldunkowych.
Uprawnienia i ustawienia do paneli meldunkowych
Na oknie ustawień Pracownicy dodano konfigurację uprawnień do paneli meldunkowych.
Okno wyboru praw uruchamiane jest nowym przyciskiem Uprawnienia - Panel Meldunkowy paska narzędziowego.
Podpowiedz ilości do zwrotu
Na zakładce BOM obsługiwanego ręcznie zlecenia produkcyjnego dodano ikonę do przycisku Podpowiedz zwrot.
Inne zmiany
Konfiguracja jednostki (domyślna / ewidencyjna) podczas wystawiania w module Symfonia ERP Handel dokumentów przyjęcia z produkcji
W pliku raportu dodano się parametr:
int czyJmEwidencyjna = 1
Wartość parametru określa sposób zachowania się programu podczas wystawiania dokumentu pochodzącego z produkcji:
0 – Parametr określa czy pozycje na wystawianym dokumencie mają mieć jednostkę domyślna
1 – (ustawienie domyślne) czy jednostka ma być ewidencyjna (pobierana z programu Symfonia ERP Zarządzanie Produkcją)
Powyższe zmiany widoczne będą po wgraniu do modułu Symfonia ERP Handel raportów z folderu MFScripts.
Ustawienie jednostki ewidencyjnej zadziała jedynie, gdy w module Symfonia ERP Handel włączony jest parametr Ochrona danych: Edycja jednostki miary w pozycji dokumentu. W przeciwnym wypadku program uniemożliwi wystawienie dokumentu.
Załączniki na zleceniu z karty technologicznej
Załączniki zapisane do operacji głównych nie wyświetlały się w zakładce zlecenia. Relacja została poprawiona. Wszystkie nowo dodane załączniki z operacji głównych będą już wyświetlane prawidłowo.
Załączniki gdy po jednym pliku jest przypisanym do każdej z grup
W sytuacji kiedy do kilku grup dodana była tylko jedna pozycja (załączniki) odświeżanie widoku po zmianie grupy nie odświeżało okna.
Belka górna przy harmonogramowaniu
Usunięto zbędne puste miejsce na belce okna Harmonogramowania.
Poprawa widoku vMFListRecipt
Zoptymalizowano wydajnościowo operację wczytującą listę towarów oraz listę technologii. Usunięto błąd uniemożliwiający w niektórych przypadkach wybór towaru z listy.
Priorytety wyświetlania pól dodatkowych
W oknie zlecenia w pierwszej kolejności wyświetlone zostaną pola zdefiniowane dotychczas.
Następnie wyświetlone zostaną nowe pola dodatkowe które zostaną posortowane po nazwie.
Niepoprawna wartość źródła dla pola dodatkowego typu lista, zła wartość zawracana
Naprawiono wyświetlanie danych i obsługę błędów dla pól dodatkowych typu lista.
Raport Możliwości produkcyjne Karta – szablon wydruku
Dostosowano szablon wydruku raportu do standardu stosowanego w programie.
Raport Możliwości produkcyjne zlecenie – szablon wydruku
Dostosowano szablon wydruku raportu do standardu stosowanego w programie.
Błędy w ProductionSysListFilters
Tabela [MF].[ProductionSysListFilters] umożliwiała użytkownikowi wpisanie filtrów zawężających lub wskazujących listę wierszy danego typu. W programie było to źle obsłużone przez co wpisanie dowolnego skryptu SQL powodowało, że okno z listą nie wyświetlało się poprawnie lub w ogóle.
Sortowanie pozycji BOM po wystawieniu dokumentu z planu
Wystawienia dokumentu z planu po rozpisaniu struktury wpływał na ogólną postać pozycji w nowym zleceniu. Został dołożony mechanizm odpowiedzialny za sortowanie po kolumnie LP, która również została dodana w oknie struktury.
Sortowanie pozycji BOM na wydruku
Zmodyfikowano wydruk: zlecenia, receptury oraz zlecenia z kodem. Pozycje produktów i materiałów będą sortowane po numerze LP.
Błąd wskazania szablonu w wydruku
Wydruk ze zlecenia etykiety i wydruk karty wskazywał zły szablon *.repx
Zapis, przeładowanie danych po edycji w podglądzie wydruku
Poprawiono mechanizm zapisania szablonu po jego edycji oraz przeładowanie danych.
Parametr jest nieprawidłowy
Usunięto problem komunikatu o braku parametru, występujący podczas otwierania okna receptury i przełączenia się na zakładkę marszruta lub bom.
Usunięcie z list użytkowników kont serwisowych
Z listy użytkowników przypisywanych do pracownika zostali usunięci wszyscy techniczni użytkownicy ([Hidden] = 1]) oraz użytkownik MZZSerwis (jego widoczność nie wskazywała że jest to użytkownik techniczny mimo że nim jest).
Błąd podczas konfiguracji okna do wyświetlenia
Poprawiono i zoptymalizowano widoki list towarów wyświetlających wymiary.
Obiekt docelowy wywołania zgłosił wyjątek.
w System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
w System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
w System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
w System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
w System.Activator.CreateInstance(Type type, Object[] args)
w Sage.PL.Manufacturing.UI.UITemplates.UIModule.SwitchForm(Type _form, Object[] params, Boolean forceRefresh, Object mainModule, Boolean openreadonly) w C:\PROD_EXT\Source\PROD\Manufacturing.UIBase\UIModule.cs:wiersz 110
Modyfikacje Tabel/Widoków
PRINT N'Drop View [MF].[vMFListReceipts]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFListReceipts]') AND type in ('V')) BEGIN DROP VIEW [MF].vMFListReceipts END GO
PRINT N'Create View [MF].[vMFListReceipts]' GO
IF OBJECT_ID(N'[MF].[vMFListReceipts]', 'V') IS NULL EXEC sp_executesql N'CREATE VIEW [MF].[vMFListReceipts] AS SELECT MF.ProductionReceipt.ID, CONVERT(Bit, ISNULL(MF.ProductionReceipt.IsDirty, 0)) AS IsDirty, MF.ProductionReceipt.ReceiptCode, MF.ProductionReceipt.ReceiptName, MF.ProductionInventoryItem.ItemCode, MF.ProductionReceipt.Qty, MF.ProductionInventoryItem.UoM, MF.ProductionReceipt.Status, MF.ProductionReceipt.Workhours, MF.ProductionReceipt.WorkUnit, CASE ReceiptGroup WHEN 1 THEN ''Półprodukt'' WHEN 2 THEN ''Wyrób gotowy'' ELSE ''Inne'' END AS ReceiptGroupDesc, CASE Status WHEN 1 THEN ''Anulowana'' WHEN 0 THEN ''Robocza'' ELSE ''Zatwierdzona'' END AS ReceiptStatus, ROUND(MF.ProductionReceipt.Workhours / 60, 2) AS WorkhoursMin, MF.ProductionReceipt.ReceiptGroup, MF.ProductionReceipt.UnitPrice, CASE WHEN exists(SELECT [ID] FROM [MF].[ProductionSysListField] where ListID = ''MANUFAC-TURE_RECEIPTS'' and FieldName = ''BOMITEM'') THEN MF.GetReceiptsBOMItems(MF.ProductionReceipt.ID) ELSE '''' END AS BOMITEM, MF.ProductionReceipt.DepartmentID, MF.ProductionReceipt.OptimisticLockField FROM MF.ProductionReceipt INNER JOIN MF.ProductionInventoryItem ON MF.ProductionInventoryItem.HMID = MF.ProductionReceipt.ItemID Group by MF.ProductionReceipt.ID, MF.ProductionReceipt.IsDirty, MF.ProductionReceipt.ReceiptCode, MF.ProductionReceipt.ReceiptName, MF.ProductionInventoryItem.ItemCode, MF.ProductionReceipt.Qty, MF.ProductionInventoryItem.UoM, MF.ProductionReceipt.Status, MF.ProductionReceipt.Workhours, MF.ProductionReceipt.WorkUnit, MF.ProductionReceipt.ReceiptGroup, MF.ProductionReceipt.UnitPrice, MF.ProductionReceipt.DepartmentID, MF.ProductionReceipt.OptimisticLockField ' GO |
PRINT N'Drop View [MF].[vMFListSalesOrders]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFListSalesOrders]') AND type in ('V')) BEGIN DROP VIEW [MF].vMFListSalesOrders END GO
PRINT N'Create View [MF].[vMFListSalesOrders]' GO
IF OBJECT_ID(N'[MF].[vMFListSalesOrders]', 'V') IS NULL EXEC sp_executesql N'CREATE VIEW [MF].[vMFListSalesOrders] AS SELECT ISNULL(Receipts.ReceiptsCount, 0) AS ReceiptsCount, ZO.typ_dk AS OrderType, ZP.id AS SalesOrderLineID, TW.kod AS ItemCode, TW.nazwa AS ItemName, ZP.idtw AS ItemID, CONVERT(numeric(22, 5), ZP.ilosc) AS QTYOrdered, CONVERT(numeric(22, 5), ISNULL(Reservations.QTYReserved, 0)) AS QTYReserved, ZO.id AS OrderID, ZO.data AS OrderDate, ZO.plattermin AS DueDate, ZO.kod AS OrderNumber, ZO.khid AS CustID, kh.Shortcut AS CustCode, kh.Name AS CustName, ZO.opis AS Description, CASE ZO.OK WHEN 1 THEN 10 ELSE CASE ZO.anulowany WHEN 0 THEN 0 ELSE - 1 END END AS Status, ZP.super, ZP.magazyn AS SiteID FROM [HM].[ZP] AS ZP LEFT OUTER JOIN (SELECT idpozrz, idtw, iddokrz AS OrderID, iloscrz AS QTYReserved FROM [HM].[RZ] AS RZ WHERE (bazapozrz = 30)) AS Reservations ON Reservations.OrderID = ZP.super AND Reservations.idtw = ZP.idtw AND Reservations.idpozrz = zp.id AND ZP.subtyp = 1 INNER JOIN [HM].[ZO] AS ZO ON ZO.id = ZP.super AND ZO.typ = 1 LEFT OUTER JOIN SSCommon.STContractors AS kh ON kh.Id = ZO.khid INNER JOIN [HM].[TW] AS TW ON TW.id = ZP.idtw LEFT OUTER JOIN (SELECT ItemID, COUNT(ItemID) AS ReceiptsCount FROM MF.ProductionReceipt WHERE (Status = 10) GROUP BY ItemID) AS Receipts ON Receipts.ItemID = TW.id WHERE (NOT exists (SELECT ISNULL(MF.ProductionPlanDemand.SalesOrderLineID, 0) AS Expr1 FROM MF.ProductionPlanDemand INNER JOIN MF.ProductionPlan ON MF.ProductionPlan.ID = MF.ProductionPlanDemand.PlanID AND MF.ProductionPlan.Status > - 1 where MF.ProductionPlanDemand.SalesOrderLineID = ZP.id)) Union SELECT ISNULL(Receipts.ReceiptsCount, 0) AS ReceiptsCount, ZO.typ_dk AS OrderType, ZP.id AS SalesOrderLineID, TW.kod AS ItemCode, TW.nazwa AS ItemName, ZP.idtw AS ItemID, CONVERT(numeric(22, 5), ZP.ilosc - TableInProduction.QTYInProduction) AS QTYOrdered, CONVERT(numeric(22, 5), ISNULL(Reservations.QTYReserved, 0)) AS QTYReserved, ZO.id AS OrderID, ZO.data AS OrderDate, ZO.plattermin AS DueDate, ZO.kod AS OrderNumber, ZO.khid AS CustID, kh.Shortcut AS CustCode, kh.Name AS CustName, ZO.opis AS Description, CASE ZO.OK WHEN 1 THEN 10 ELSE CASE ZO.anulowany WHEN 0 THEN 0 ELSE - 1 END END AS Status, ZP.super, ZP.magazyn AS SiteID FROM [HM].[ZP] AS ZP LEFT OUTER JOIN (SELECT idpozrz, idtw, iddokrz AS OrderID, iloscrz AS QTYReserved FROM [HM].[RZ] AS RZ WHERE (bazapozrz = 30)) AS Reservations ON Reservations.OrderID = ZP.super AND Reservations.idtw = ZP.idtw AND Reservations.idpozrz = zp.id AND ZP.subtyp = 1 INNER JOIN [HM].[ZO] AS ZO ON ZO.id = ZP.super AND ZO.typ = 1 LEFT OUTER JOIN SSCommon.STContractors AS kh ON kh.Id = ZO.khid INNER JOIN [HM].[TW] AS TW ON TW.id = ZP.idtw LEFT OUTER JOIN (SELECT ItemID, COUNT(ItemID) AS ReceiptsCount FROM MF.ProductionReceipt WHERE (Status = 10) GROUP BY ItemID) AS Receipts ON Receipts.ItemID = TW.id Inner join (select SubTable.QTYInProduction, SubTable.id from ( SELECT sum(MF.ProductionPlanDemand.QTYRequired) as QTYInProduction, HM.ZP.id, max(HM.ZP.ilosc) as QTYOrdered FROM MF.ProductionPlanDemand INNER JOIN MF.ProductionPlan ON MF.ProductionPlan.ID = MF.ProductionPlanDemand.PlanID AND MF.ProductionPlan.Status > - 1 inner join HM.ZP ON ZP.id = MF.ProductionPlanDemand.SalesOrderLineID group by HM.ZP.id) as SubTable where SubTable.QTYOrdered > SubTable.QTYInProduction) as TableInProduction ON ZP.id = TableInProduction.id ' GO |
PRINT N'Drop View [MF].[vMFlistItems_All]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFlistItems_All]') AND type in ('V')) BEGIN DROP VIEW [MF].[vMFlistItems_All] END GO
PRINT N'Create View [MF].[vMFlistItems_All]' GO
IF OBJECT_ID(N'[MF].[vMFlistItems_All]', 'V') IS NULL EXEC sp_executesql N'CREATE VIEW [MF].[vMFlistItems_All] AS SELECT ItemCode, ItemName, UoM, Price, Barcode, SupplierID, ItemMin, ItemMax, Active, HMID, Weight, Volume, Width, Length, Height, DeliveryDays, EnableSerialNumbers, EnableLotNumbers, SequencePattern, DefaultReceipt, QTYPrecision, ItemGroupID, Wym.*, OptimisticLockField FROM MF.ProductionInventoryItem LEFT OUTER JOIN (SELECT HM.TW.id, SSCommon.ProductClassification.* FROM SSCommon.STElements LEFT OUTER JOIN SSCommon.ProductClassification ON SSCommon.STElements.ElementId = SSCommon.ProductClassification.ElementId RIGHT OUTER JOIN HM.TW ON SSCommon.STElements.Shortcut = HM.TW.kod JOIN SSCommon.STElementKinds ON STElementKinds.ElementKindId = STElements.ElementKindId AND STElementKinds.Guid = ''E9BD9EFF-1D12-46A5-94AE-56A4805AF519'') as Wym on MF.ProductionInventoryItem.HMID = Wym.id ' GO |
PRINT N'Drop View [MF].[vMFListItems_Products]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFListItems_Products]') AND type in ('V')) BEGIN DROP VIEW [MF].[vMFListItems_Products] END GO
PRINT N'Create View [MF].[vMFListItems_Products]' GO
IF OBJECT_ID(N'[MF].[vMFListItems_Products]', 'V') IS NULL EXEC sp_executesql N' CREATE VIEW [MF].[vMFListItems_Products] AS SELECT ItemCode, ItemName, UoM, Price, Barcode, SupplierID, ItemMin, ItemMax, Active, HMID, Weight, Volume, Width, Length, Height, DeliveryDays, EnableSerialNumbers, EnableLotNumbers, SequencePattern, DefaultReceipt, QTYPrecision, ItemGroupID, Wym.*, OptimisticLockField FROM MF.ProductionInventoryItem left outer join (SELECT HM.TW.id, SSCommon.ProductClassification.* FROM SSCommon.STElements LEFT OUTER JOIN SSCommon.ProductClassification ON SSCommon.STElements.ElementId = SSCommon.ProductClassification.ElementId RIGHT OUTER JOIN HM.TW ON SSCommon.STElements.Shortcut = HM.TW.kod JOIN SSCommon.STElementKinds ON STElementKinds.ElementKindId = STElements.ElementKindId AND STElementKinds.Guid = ''E9BD9EFF-1D12-46A5-94AE-56A4805AF519'') as Wym on MF.ProductionInventoryItem.HMID = Wym.id '
GO |
PRINT N'Drop View [MF].[vMFListItems_Cards]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFListItems_Cards]') AND type in ('V')) BEGIN DROP VIEW [MF].[vMFListItems_Cards] END GO
PRINT N'Create View [MF].[vMFListItems_Cards]' GO
IF OBJECT_ID(N'[MF].[vMFListItems_Cards]', 'V') IS NULL EXEC dbo.sp_executesql @statement = N' CREATE VIEW [MF].[vMFListItems_Cards] AS SELECT ItemCode, ItemName, UoM, Price, Barcode, SupplierID, ItemMin, ItemMax, Active, HMID, Weight, Volume, Width, Length, Height, DeliveryDays, EnableSerialNumbers, EnableLotNumbers, SequencePattern, DefaultReceipt, QTYPrecision, ItemGroupID, Wym.*, OptimisticLockField FROM MF.ProductionInventoryItem LEFT OUTER JOIN (SELECT HM.TW.id, SSCommon.ProductClassification.* FROM SSCommon.STElements LEFT OUTER JOIN SSCommon.ProductClassification ON SSCommon.STElements.ElementId = SSCommon.ProductClassification.ElementId RIGHT OUTER JOIN HM.TW ON SSCommon.STElements.Shortcut = HM.TW.kod JOIN SSCommon.STElementKinds ON STElementKinds.ElementKindId = STElements.ElementKindId AND STElementKinds.Guid = ''E9BD9EFF-1D12-46A5-94AE-56A4805AF519'') as Wym on MF.ProductionInventoryItem.HMID = Wym.id ' GO |
PRINT N'Drop View [MF].[vMFListSalesOrders]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFListSalesOrders]') AND type in ('V')) BEGIN DROP VIEW [MF].vMFListSalesOrders END GO
PRINT N'Create View [MF].[vMFListSalesOrders]' GO
IF OBJECT_ID(N'[MF].[vMFListSalesOrders]', 'V') IS NULL EXEC sp_executesql N'CREATE VIEW [MF].[vMFListSalesOrders] AS SELECT ISNULL(Receipts.ReceiptsCount, 0) AS ReceiptsCount, ZO.typ_dk AS OrderType, ZP.id AS SalesOrderLineID, TW.kod AS ItemCode, TW.nazwa AS ItemName, ZP.idtw AS ItemID, CONVERT(numeric(22, 5), ZP.ilosc) AS QTYOrdered, CONVERT(numeric(22, 5), ISNULL(Reservations.QTYReserved, 0)) AS QTYReserved, ZO.id AS OrderID, ZO.data AS OrderDate, ZO.plattermin AS DueDate, ZO.kod AS OrderNumber, ZO.khid AS CustID, kh.Shortcut AS CustCode, kh.Name AS CustName, ZO.opis AS Description, CASE ZO.OK WHEN 1 THEN 10 ELSE CASE ZO.anulowany WHEN 0 THEN 0 ELSE - 1 END END AS Status, ZP.super, ZP.magazyn AS SiteID FROM [HM].[ZP] AS ZP LEFT OUTER JOIN (SELECT idpozrz, idtw, iddokrz AS OrderID, iloscrz AS QTYReserved FROM [HM].[RZ] AS RZ WHERE (bazapozrz = 30)) AS Reservations ON Reservations.OrderID = ZP.super AND Reservations.idtw = ZP.idtw AND Reservations.idpozrz = zp.id AND ZP.subtyp = 1 INNER JOIN [HM].[ZO] AS ZO ON ZO.id = ZP.super AND ZO.typ = 1 LEFT OUTER JOIN SSCommon.STContractors AS kh ON kh.Id = ZO.khid INNER JOIN [HM].[TW] AS TW ON TW.id = ZP.idtw LEFT OUTER JOIN (SELECT ItemID, COUNT(ItemID) AS ReceiptsCount FROM MF.ProductionReceipt WHERE (Status = 10) GROUP BY ItemID) AS Receipts ON Receipts.ItemID = TW.id WHERE (NOT exists (SELECT ISNULL(MF.ProductionPlanDemand.SalesOrderLineID, 0) AS Expr1 FROM MF.ProductionPlanDemand INNER JOIN MF.ProductionPlan ON MF.ProductionPlan.ID = MF.ProductionPlanDemand.PlanID AND MF.ProductionPlan.Status > - 1 where MF.ProductionPlanDemand.SalesOrderLineID = ZP.id)) Union SELECT ISNULL(Receipts.ReceiptsCount, 0) AS ReceiptsCount, ZO.typ_dk AS OrderType, ZP.id AS SalesOrderLineID, TW.kod AS ItemCode, TW.nazwa AS ItemName, ZP.idtw AS ItemID, CONVERT(numeric(22, 5), ZP.ilosc - TableInProduction.QTYInProduction) AS QTYOrdered, CONVERT(numeric(22, 5), ISNULL(Reservations.QTYReserved, 0)) AS QTYReserved, ZO.id AS OrderID, ZO.data AS OrderDate, ZO.plattermin AS DueDate, ZO.kod AS OrderNumber, ZO.khid AS CustID, kh.Shortcut AS CustCode, kh.Name AS CustName, ZO.opis AS Description, CASE ZO.OK WHEN 1 THEN 10 ELSE CASE ZO.anulowany WHEN 0 THEN 0 ELSE - 1 END END AS Status, ZP.super, ZP.magazyn AS SiteID FROM [HM].[ZP] AS ZP LEFT OUTER JOIN (SELECT idpozrz, idtw, iddokrz AS OrderID, iloscrz AS QTYReserved FROM [HM].[RZ] AS RZ WHERE (bazapozrz = 30)) AS Reservations ON Reservations.OrderID = ZP.super AND Reservations.idtw = ZP.idtw AND Reservations.idpozrz = zp.id AND ZP.subtyp = 1 INNER JOIN [HM].[ZO] AS ZO ON ZO.id = ZP.super AND ZO.typ = 1 LEFT OUTER JOIN SSCommon.STContractors AS kh ON kh.Id = ZO.khid INNER JOIN [HM].[TW] AS TW ON TW.id = ZP.idtw LEFT OUTER JOIN (SELECT ItemID, COUNT(ItemID) AS ReceiptsCount FROM MF.ProductionReceipt WHERE (Status = 10) GROUP BY ItemID) AS Receipts ON Receipts.ItemID = TW.id Inner join (select SubTable.QTYInProduction, SubTable.id from ( SELECT sum(MF.ProductionPlanDemand.QTYRequired) as QTYInProduction, HM.ZP.id, max(HM.ZP.ilosc) as QTYOrdered FROM MF.ProductionPlanDemand INNER JOIN MF.ProductionPlan ON MF.ProductionPlan.ID = MF.ProductionPlanDemand.PlanID AND MF.ProductionPlan.Status > - 1 inner join HM.ZP ON ZP.id = MF.ProductionPlanDemand.SalesOrderLineID group by HM.ZP.id) as SubTable where SubTable.QTYOrdered > SubTable.QTYInProduction) as TableInProduction ON ZP.id = TableInProduction.id ' GO |
PRINT N'Drop View [MF].[vMFPanelsOrderBom]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[vMFPanelsOrderBom]') AND type in ('V')) BEGIN DROP VIEW [MF].[vMFPanelsOrderBom] END GO
PRINT N'Create View [MF].[vMFPanelsOrderBom]' GO
IF OBJECT_ID(N'[MF].[vMFPanelsOrderBom]', 'V') IS NULL EXEC sp_executesql N'CREATE VIEW [MF].[vMFPanelsOrderBom] AS SELECT MF.ProductionOrderBOM.ID, MF.ProductionOrderBOM.LP, MF.ProductionReceipt.ReceiptName, MF.ProductionOrder.DocNumber AS ChildOrderDocNumber, MF.ProductionOrderBOM.QTYPlanned, MF.ProductionOrderBOM.ItemUoM, MF.GetItemQTYData(MF.ProductionOrderBOM.ItemID, MF.ProductionOrderBOM.SourceSiteID) AS QTYState, MF.ProductionOrderBOM.Status, MF.ProductionOrderBOM.Comments, MF.ProductionOrderBOM.OrderID, HM.KH.nazwa AS SourceSiteName, MF.ProductionOrderBOM.UnitQTY, MF.ProductionOrderBOM.ItemID, HM.KH.id AS InventoryId, MF.ProductionOrderBOM.OrderOperationID FROM MF.ProductionOrderBOM LEFT OUTER JOIN HM.SM ON MF.ProductionOrderBOM.ItemID = HM.SM.idtw AND MF.ProductionOrderBOM.SourceSiteID = HM.SM.magazyn LEFT OUTER JOIN HM.TW ON MF.ProductionOrderBOM.ItemID = HM.TW.id LEFT OUTER JOIN HM.KH ON MF.ProductionOrderBOM.SourceSiteID = HM.KH.id LEFT OUTER JOIN MF.ProductionReceipt ON MF.ProductionOrderBOM.ReceiptID = MF.ProductionReceipt.ID LEFT OUTER JOIN MF.ProductionOrder ON MF.ProductionOrderBOM.ChildOrderID = MF.ProductionOrder.ID ' GO |
[MF].[ProductionInventoryItem]
PRINT N'Drop View [MF].[ProductionInventoryItem]' GO
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[ProductionInventoryItem]') AND type in ('V')) BEGIN DROP VIEW [MF].[ProductionInventoryItem] END GO
PRINT N'Create View [MF].[ProductionInventoryItem]' GO
IF OBJECT_ID(N'[MF].[ProductionInventoryItem]', 'V') IS NULL EXEC sp_executesql N'CREATE VIEW [MF].[ProductionInventoryItem] AS SELECT ItemCode, ItemName, UoM, Price, Barcode, SupplierID, ItemMin, ItemMax, Active, HMID, Weight, Volume, Width, Length, Height, DeliveryDays, EnableSerialNumbers, EnableLotNumbers, SequencePattern, DefaultReceipt, QTYPrecision, ItemGroupID, Wym.*, OptimisticLockField FROM (SELECT TW.id AS HMID, TW.kod AS ItemCode, CAST(TW.nazwa AS varchar(MAX)) AS ItemName, ISNULL(TW.jm, '''') AS UoM, CONVERT(numeric(28, 5), ISNULL(C.cena, 0)) AS Price, TW.kodpaskowy AS Barcode, '''' AS SupplierID, TW.stanmin AS ItemMin, TW.stanmax AS ItemMax, CAST(TW.aktywny AS bit) AS Active, MF.ProductionItemAttributes.Weight, MF.ProductionItemAttributes.Volume, MF.ProductionItemAttributes.Width, MF.ProductionItemAttributes.Length, MF.ProductionItemAttributes.Height, MF.ProductionItemAttributes.DeliveryDays, MF.ProductionItemAttributes.EnableSerialNumbers, MF.ProductionItemAttributes.EnableLotNumbers, MF.ProductionItemAttributes.SequencePattern, MF.ProductionItemAttributes.DefaultReceipt, MF.ProductionItemAttributes.QTYPrecision, MF.ProductionItemAttributes.ItemGroupID, isnull(MF.ProductionItemAttributes.OptimisticLockField, 0) + isnull(DATEPART(YEAR, modifieddate) + DATEPART(MONTH, modifieddate) + DATEPART(DAY, modifieddate) + DATEPART(SECOND, modifieddate),0) as OptimisticLockField FROM [HM].[TW] AS TW INNER JOIN HM.CN AS C ON C.idpm = TW.id AND C.typ = 6 AND C.aktywna = 1 INNER JOIN MF.ProductionItemAttributes ON TW.id = MF.ProductionItemAttributes.HMID and (TW.typ = 0) AND (TW.subtyp = 0) AND (C.dataend IS NULL) AND (TW.idlongname IS NULL)
UNION
SELECT TW.id AS HMID, TW.kod AS ItemCode, CAST(ISNULL(TX.opis, TW.nazwa) AS varchar(MAX)) AS ItemName, ISNULL(TW.jm, '''') AS UoM, CONVERT(numeric(28, 5), ISNULL(C.cena, 0)) AS Price, TW.kodpaskowy AS Barcode, '''' AS SupplierID, TW.stanmin AS ItemMin, TW.stanmax AS ItemMax, CAST(TW.aktywny AS bit) AS Active, MF.ProductionItemAttributes.Weight, MF.ProductionItemAttributes.Volume, MF.ProductionItemAttributes.Width, MF.ProductionItemAttributes.Length, MF.ProductionItemAttributes.Height, MF.ProductionItemAttributes.DeliveryDays, MF.ProductionItemAttributes.EnableSerialNumbers, MF.ProductionItemAttributes.EnableLotNumbers, MF.ProductionItemAttributes.SequencePattern, MF.ProductionItemAttributes.DefaultReceipt, MF.ProductionItemAttributes.QTYPrecision, MF.ProductionItemAttributes.ItemGroupID, isnull(MF.ProductionItemAttributes.OptimisticLockField, 0) + isnull(DATEPART(YEAR, modifieddate) + DATEPART(MONTH, modifieddate) + DATEPART(DAY, modifieddate) + DATEPART(SECOND, modifieddate),0) as OptimisticLockField FROM [HM].[TW] AS TW INNER JOIN HM.CN AS C ON C.idpm = TW.id AND C.typ = 6 AND C.aktywna = 1 INNER JOIN MF.ProductionItemAttributes ON TW.id = MF.ProductionItemAttributes.HMID INNER JOIN HM.TX AS TX ON TX.id = TW.idlongname and (TW.typ = 0) AND (TW.subtyp = 0) AND (C.dataend IS NULL) AND (TW.idlongname IS NOT NULL)) as Tow left outer join (SELECT HM.TW.id, SSCommon.ProductClassification.* FROM SSCommon.STElements LEFT OUTER JOIN SSCommon.ProductClassification ON SSCommon.STElements.ElementId = SSCommon.ProductClassification.ElementId RIGHT OUTER JOIN HM.TW ON SSCommon.STElements.Shortcut = HM.TW.kod JOIN SSCommon.STElementKinds ON STElementKinds.ElementKindId = STElements.ElementKindId AND STElementKinds.Guid = ''E9BD9EFF-1D12-46A5-94AE-56A4805AF519'') as Wym on Tow.HMID = Wym.id ' GO |
PRINT N'Alter Table [MF].[ProductionOrderBOM]' GO
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[MF].[ProductionOrderBOM]') AND name = 'OrderOperationID') BEGIN ALTER TABLE MF.ProductionOrderBOM ADD OrderOperationID int NULL
PRINT N'Alter Table FOREIGN KEY [MF].[ProductionOrderBOM]'
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[MF].[FK_ProductionOrderBOM_ProductionOrderOperation]') AND parent_object_id = OBJECT_ID(N'[MF].[ProductionOrderBOM]')) BEGIN ALTER TABLE [MF].[ProductionOrderBOM] ADD CONSTRAINT [FK_ProductionOrderBOM_ProductionOrderOperation] FOREIGN KEY ( [OrderOperationID] ) REFERENCES MF.ProductionOrderOperation ( [ID] ) ON UPDATE NO ACTION ON DELETE NO ACTION END END GO |
PRINT N'Insert [MF].[ProductionSysListField]' GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[ProductionSysListField]') AND type in (N'U')) BEGIN IF NOT EXISTS (SELECT [ID],[ListID],[FieldName] FROM [MF].[ProductionSysListField] where ListID = 'MANUFACTURE_RECEIPTS' and FieldName = 'BOMITEM') BEGIN INSERT INTO [MF].[ProductionSysListField] ([ListID] ,[FieldName] ,[Caption] ,[Width] ,[Alignment] ,[Sequence] ,[FormatString] ,[FieldType] ,[Formula] ,[BackColor] ,[ForeColor] ,[FontBold] ,[FieldVisible] ,[GroupList]) VALUES ('MANUFACTURE_RECEIPTS' ,'BOMITEM' ,'BOMITEM' ,100 ,'L' ,120 ,'' ,'' ,'' ,'' ,'' ,0 ,1 ,NULL) END END GO [MF].[ProductionSysList]
PRINT N'Alter Table [MF].[ProductionSysList]' GO
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[MF].[ProductionSysList]') AND name = 'IsServerDataSource') BEGIN ALTER TABLE [MF].[ProductionSysList] ADD [IsServerDataSource] Bit NOT NULL DEFAULT (0) WITH VALUES END GO |
[MF].[ProductionWorkerPermissions]
PRINT N'Create Table [MF].[ProductionWorkerPermissions]' GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[MF].[ProductionWorkerPermissions]') AND type in (N'U')) BEGIN CREATE TABLE [MF].[ProductionWorkerPermissions]( [Id] [int] IDENTITY(1,1) NOT NULL, [WorkerId] [int] NULL, [GroupId] [int] NULL, [InventoryIncome] [bit] NOT NULL, [InventoryIssue] [bit] NOT NULL, [AttachProductToBom] [bit] NOT NULL, [InventoryIssueCorrection] [bit] NOT NULL, [InventoryIncomeCorrection] [bit] NOT NULL, [BomTable] [bit] NOT NULL, [IncomeInventoryChange] [bit] NOT NULL, [AttachmentsTechnologyCard] [bit] NOT NULL, [AttachmentsOrder] [bit] NOT NULL, [AttachmentsOperations] [bit] NOT NULL, [AttachmentPrinting] [bit] NOT NULL, [OptimisticLockField] [int] NULL, CONSTRAINT [PK_ProductionWorkerPermissions] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
ALTER TABLE [MF].[ProductionWorkerPermissions] ADD CONSTRAINT [DF_ProductionWorkerPermissions_AttachmentPrinting] DEFAULT (0) FOR [AttachmentPrinting] END |