Skip to content

5. Procedura generowania dokumentów

opis pól

kluczowe pola

  • [documentlineid]
  • [ItemPrice] - cena na dokumencie np w Walucie
  • [sysItemPrice] - cena systemowa (PLN)
  • [itemValue] - wartość pozycji
  • [sysItemValue] - wartosc systemowa (PLN) - która jest wazniejsza od ceny, wartosci / ilosc = cena
  • [itemQuantity] - ilość
  • [sign] - znak dla ilosci
  • [signvalue] - znak da ceny
  • [itemSerialNumber] - nr seryjny
  • [iscorrectiveline] czy pozycja jest korekta =1
  • [initialIncomeSourceLineID] - zrodlowa DOSTAWA - zachowuje nawet w przypadku mm
  • [sourceDocumentLineID] - z ktorego dokuemntu pochodzi dokuemnt np jesli np jest wskaana dostawa
    • mm+ będzie pusty,
    • MM- bedize mialo pz
    • uzwyane tez do wyboru partii jesli jest podany sourcedocumentlineid czyli czy nie powinno byc zapisane
    • ZW
  • [itemquantityleft] - ile pozostało
  • [itemValueLeft] - ile pozostało
  • [sysItemValueLeft] - ile pozostało
  • commisionLineId - nr pozycji zlecenia
  • orderLineId - nr pozycji zmowienia
  • locationid - nr lokacji
  • invoicelineid - nr faktury
  • structureLineID - struktura
  • itemid -itemid
  • [itemIDB] WYCOFANE w nowych procedurach dotyczy to indeksu odpadowego
  • document.outcomeshiftid - dla MM+ documentid dokumentu MM-
  • outcomeshiftlineid - dla MM+ z ktorej pozycji MM-
  • initialSourceDocumentLineId - pusty patrz TEST
  • document.documentline.sumitemquantity

document.invoiceline

  • document.invoiceline.itemquantityleft - obrazuje stopien realizacji faktury

Założenia v2

Koncepcje

  • Walidajce tylko przy zatwierdzeniu?
  • mozliwosc edycji jak najwiekszej ilsoci rzeczy zawsze
  • nie obslugujemy korekt na razie
  • mozliwosc puszczenia silinka ponownie na indeksie
  • oznaczenie dostawy jako zamknietej czyli rozliczonej (sprawdzamy zgodnosc dostawamy)
  • jak korekta powinna dzialac
    • dodatkowy dokument z roznica
    • jelsi po drodze byla wartosc albo cokolwiek to powinno byc x pozycji

Przyjęcia nagłowek (PZ/PZI)

Procedury

  • [erp].[document_InsertUpdate] - procedura przyjmuje w parametrze @inputxml @username. Procedura wywołuje:
    • erp.isCommitedDocumentHeaderEditable - sprawdzenie czy można edytować nagłówek zatwierdzonego
    • document.document_updateDocumentDate - zmiana daty dokumentu.
    • document.document_validateDocumentDate - walidacja daty i numeru
  • comon.relation_InsertUpdate
  • document.orderLine_document
  • exec [document].[document_updateSysValues] @documentID = @documentID przeliczenie wartosci systemowej

Przyjęcie - Dodanie pozycji algorytm

  1. erp.documentLine_InsertUpdate
    1.1 document.documentline_updateStockBalance
    1.2 document.document_updateSysValues
    1.3 wms.stockBalanceFix @username = @username, @itemID = @itemID
    1.4 wms.item_updateItemOrderQuantity

Przyjęcie - Zatwierdzanie algorytm

1.erp.document_updateDocumentStatus
1.1document.document_validateDocumentDate
1.2adocument.documentlineInCorrective_Commit - dla korekt
1.2berp.documentlineIN_Commit @username, @currentDocumentLineId, @skipInventoryValidation - dla zwyklych dokuemntow

erp.documentlineIN_Commit

1.2b.1 Walidacja czy na ZW jest faktycznie podane powiązaną pozycję
1.2b.2 Walidacja na ZW- sprawdzenie czy rozchód jest powiązany ze zleceniem które pozwala na rozchody
1.2b.3 Walidacja czy nr seryjny jest rzeczywiście podany dla seryjnych
1.2b.4 Walidacja czy lokacja podana gdy magazyn tego wymaga musi być przy zatw. bo gdy wystawiana jest pozycja z zamowienia to nie mozna tego sprawdzić
1.2b.5 Walidacja czy prowadzona jest inwentaryzacja na lokacji lub magazynie
1.2b.6 Jeśli jest to dokument zagraniczny to z powodu kursu moze sie nie zgadzac
1.2b.7 Sprawdzenie czy ilość na fakturze się zgadza z tym co jest na dokumencie
1.2b.8 Aktualizacja ostatniej ceny zakupu i maksymalnej o ile to dotyczy typu dokumentu - [document].[documentLine_updateLastPrice] - ostatnia cena zakupu
1.2b.9 [wms].[stockBalanceFix_date] @documentLineID = @documentLineID -stock aktualizacja
1.2b.10 Zw zaznaczenie na Rw w itemQuantityLeft, correctedItemQuantity, ile towaru zostało zwrócone (ogólnie mechanizm korygowania
1.2b.11 Aktualizacja ilosci zrealizowanej na powiazanym zleceniu jesli przyjecie dotyczy indeksu z pozycji zlecenia
1.2b.12 [document].[documentline_updateOrderRealizedQuantity] - stan zdralizowanego zamówienia
1.2b.13 Logika przypisania initialIncomeSourceLineID dla MM/WM/ZW to przepisujemy id partii
1.2b.14 Automatyczne przypisanie zamienników jeśli jest to dokument WNS
1.2b.15 Skłądnik do urzadzenia jesli jest

Inne

  • product.product_insertFromSource
  • common.deleteRecord
    • printout.document_print
    • common.dictionary_byKey
    • document.isCommitedDocumentHeaderEditable
  • wms.itemUnitConvert_List

Wydanie (np RW/RWP)

Podsumowanie

  • P01 [erp].[document_InsertUpdate] - dodanie nagłówka
  • P02 [erp].[documentlineOUT_InsertUpdate] - dodanie pozycje
  • P03 [erp].[documentlineOUT_Commit] @username, @currentDocumentLineId, @skipInventoryValidation - zatwierdzenie

    • document.document_updateDocumentDate - zmiana daty dokumentu,
    • document.document_validateDocumentDate - walidacja daty i numeru
  • comon.relation_InsertUpdate

    Procedura wywołuje:

    • dbo.pRoleCheck - sprawdzanie uprawnień

Dodanie pozycji do RW

  • erp.documentlineOUT_InsertUpdate Wywołuje:
    • document.documentline_updateStockBalance
    • document.deleteRecord

Zatwierdzanie dokumentu RW

  • document.document_udpateDocumentStatus

    Wywołuje:

    • document.document_validateDocumentDate
    • document.documentlineInCorrective_Commit
    • document.documentlineOUT_Commit
    • product.product_insertFromSource
    • common.deleteRecord
    • printout.document_print
    • common.dictionary_byKey
    • document.isCommitedDocumentHeaderEditable

Zatwierdzenie korekty PZ - KO_PZ

SQL
exec sp_executesql N';EXEC [document].[document_udpateDocumentStatus] @username = @0, @documentId = @1, @newStatus = @2, @skipInventoryValidation = @3',N'@0 nvarchar(4000),@1 nvarchar(40),@2 int,@3 int',@0=N'test35',@1=N'9e0ff8c7-acb9-eb11-82dd-0690a1809de2',@2=1,@3=0

Korekty

TESTY

zapytanie

SQL
  select dl.documentfullnr,d.documentid,d.outcomeshiftid,dl.documentlineid,
        dl.sourcedocumentlineid,dl.sign,dl.signvalue,dl.outcomeShiftLineId,
        dl.initialincomesourcelineid,
        dl.itemquantity,
        dl.itemquantityleft,
    dl.sysitemvalue,
    dl.sysitemvalueleft
        from document.documentline dl inner join document.document d on d.documentid =dl.documentid
    where itemid = '79c81f9f-436e-4ed1-87a0-ae5274b0b6d9' and dl.status>0
    order by
        d.documentdate,
        d.outcomeShiftid, --chodiz o posortowanie mm-
        dl.sign desc ,dl.adddate asc

TEST przyklad PZ/WZ

itemid:79c81f9f-436e-4ed1-87a0-ae5274b0b6d9 itemcode:64275 magazyn 100

PZ 10 szt. WZ 5 szt. MM- 5szt MM+ 5szt

documentfullnr documentid outcomeshiftid documentlineid sourcedocumentlineid sign signvalue outcomeShiftLineId initialincomesourcelineid itemquantity itemquantityleft itemValue itemValueLeft


PZ/11/100/0222 B16356CF-A5C0-4CDC-B1DB-250854FA238E NULL 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA NULL 1 1 NULL 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA 10.000 0.000 100.00 0.00 WZ/21/100/0222 5C09F786-75AF-4118-9927-5384F80A9169 NULL D9FEE1DF-7F96-EC11-930B-002590D9752E 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA -1 -1 NULL 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA 5.000 5.000 50.00 50.00 MMD-/1/100/0222 E809536A-9D7E-471C-94D7-0B558984C60D NULL A6382087-8096-EC11-930B-002590D9752E 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA -1 -1 NULL 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA 5.000 5.000 50.00 50.00 MMD+/1/12/0222 36CCCA82-8096-EC11-82EC-0690A1809DE2 E809536A-9D7E-471C-94D7-0B558984C60D A7382087-8096-EC11-930B-002590D9752E NULL 1 1 A6382087-8096-EC11-930B-002590D9752E 0EB9B89C-4154-4BC1-8CF7-ED182EEB8AFA 5.000 5.000 50.00 50.00

TEST przyklad PZ/WZ /KO (robimy storno wz czyli wracamy ilość i wartość)

PZ 5 szt. WZ 5 szt. KO_WZ 5szt

documentfullnr documentid outcomeshiftid documentlineid sourcedocumentlineid sign signvalue outcomeShiftLineId initialincomesourcelineid itemquantity itemquantityleft


PZ/2/100/0322 B7A01CFC-F19C-EC11-82EC-0690A1809DE2 NULL D92DEF0A-F29C-EC11-82EC-0690A1809DE2 NULL 1 1 NULL D92DEF0A-F29C-EC11-82EC-0690A1809DE2 5.000 0.000 WZ/3/100/0322 4CAD2011-F29C-EC11-82EC-0690A1809DE2 NULL 4936601D-F29C-EC11-930B-002590D9752E D92DEF0A-F29C-EC11-82EC-0690A1809DE2 -1 -1 NULL D92DEF0A-F29C-EC11-82EC-0690A1809DE2 5.000 0.000 KO_WZ/1/100/0322 E7891C1B-F29C-EC11-82EC-0690A1809DE2 NULL F3960228-F29C-EC11-930B-002590D9752E 4936601D-F29C-EC11-930B-002590D9752E 1 -1 NULL D92DEF0A-F29C-EC11-82EC-0690A1809DE2 5.000 5.000