Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-03-29, 12:19x



Odpowiedz w temacie  [ Posty: 10 ] 
blokada wystawiania MM w określonych przypadkach 
Autor Wiadomość

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post blokada wystawiania MM w określonych przypadkach
Cześć,

potrzebuje małej pomocy. Program Handel ERP 2017.b.

Mam dwa rodzaje dokumentów przesunięć międzymagazonowych MM (MM- i MM+) oraz MMo (MMo- i MMo+).

1) Chciałbym aby wystawianie MM- (MM+) było możliwe tylko dla zadeklarowanych użytkowników.

Czy wstawienie poniższego kodu do procedur dok. magazynowego powinno załatwić sprawę?

Kod:

int Sub OnBeforeBuforEdit(long lId)

    Dispatch xMg
    int nErr
    int edytuj=0

    xMg = xFactory.NewObject("BDokumentMg")
    nErr = xMg.Load("id="+(using "%d",lId))
    if nErr then error Using "\nBłąd ładowania dokumentu magazynowego nr %l\n", nErr

    if xMg.typDk=="MM-" then   
        if ucase(xFactory.uzytkownik.kod)!="admin" && ucase(xFactory.uzytkownik.kod)!="user" then
            message "Nie masz uprawnień do wykonywania przesunięć MM"
            edytuj=-6000
        endif
    endif
       
    OnBeforeBuforEdit = edytuj
EndSub


2). Chiciałbym aby przesunięcia dok. MMo można było wykonywać tylko na magazynach rozróżnionych konkretnym parametrem.

W tym przypadku mógłoby to być wypełnione Konto FK dla magazynu (najlepiej) - nie wiem jak się odwołać do tego
lub cokolwiek innego np. wypełniony adres email dla magazynu.



Kod:

int Sub OnBeforeInsert(long lId)

    Dispatch xMg
    int nErr
    int edytuj=0

    xMg = xFactory.NewObject("BDokumentMg")
    nErr = xMg.Load("id="+(using "%d",lId))
    if nErr then error Using "\nBłąd ładowania dokumentu magazynowego nr %l\n", nErr

    if xMg.typDk=="MMo-" then   
       if ucase(xMg.dzial.khfk)!=0 && xMg.magazyn_przesuniecia.khfk!=0 then
          message "Dok. MMo nie można wykonywać przesunięć na tych magazynach\nWykonaj przesunięcie dokumentem MM"
          edytuj=-6000
       endif
    endif
    OnBeforeInsert = edytuj
EndSub



Pozdr.
M.


2017-03-17, 15:39
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post Re: blokada wystawiania MM w określonych przypadkach
Masz kompletny kod. To ja się zapytam. Czy On działa zgodnie z Twoimi założeniami? Jak nie to pomożemy.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-03-17, 16:57
Wyświetl profil

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post Re: blokada wystawiania MM w określonych przypadkach
Wybacz, ale brakuje mi dokumentacji do ambasica. Nie mam pewności co do kodu i momentu wywołania procedury. Proszę o małą podpowiedź.

Wydaje mi się, że w drugim przykładzie mam błąd, bo odwołuje się to działu, nie magazynu. Powinno być chyba:

Kod:
if xMg.typDk=="MMo-" then   
       if xMg.magazyn.khfk>0 && xMg.magazyn_przesuniecia.khfk>0 then


Chce porównać wartość parametru khfk z tabeli HM.KH na dwóch magazynach (między, którymi jest przesunięcie) i jeśli w jednym z nich jest wpisana wartość w tabeli to zablokować przesunięcie.

Czy w przypadku gdybym chciał zablokować przesunięcie między magazynami w obrębie tego samego działu to powinno być:

Kod:
if xMg.typDk=="MMo-" then   
       if xMg.dzial.kod==xMg.dzial_przesuniecia.kod then


M.


2017-03-17, 22:08
Wyświetl profil

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post Re: blokada wystawiania MM w określonych przypadkach
Rafał,

chciałbym wrócić do tego.

Nie działa mi kod w miejscu, gdzie próbuje się odwołać parametru khfk - (xMg.dzial.khfk)

Podczas wystawienia dokumentu magazynowego (onbeforeinsert), chcę wywołać weryfikację tego paramertru.

Chodzi i o kod magazynu w FK (tak jak w dołączonym pliku graficznym).

M.


Załączniki:
1.png
1.png [ 2.28 KiB | Przeglądany 3952 razy ]
2017-08-23, 10:30
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post Re: blokada wystawiania MM w określonych przypadkach
zobacz
Kod:
xMg.dzial.kontoFK

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-08-23, 11:09
Wyświetl profil

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post Re: blokada wystawiania MM w określonych przypadkach
Spróbowałem tak ja napisałeś z kontoFK, ale też mam taką samą informację przy próbie wystawienia dokumentu :(


Załączniki:
1.png
1.png [ 7.1 KiB | Przeglądany 3949 razy ]
2017-08-23, 18:16
Wyświetl profil

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post Re: blokada wystawiania MM w określonych przypadkach
Rafał,

próbwałem podebrać konto fk mag przez Selecta, ale też mi nie chce to działać.

Kod:
   string typ_mag="105"
   
   string qZap1
   DISPATCH rs1, con1
   con1 = GetAdoConnection()
   rs1= "ADODB.Recordset"

          qZap1="SELECT khfk FROM HM.KH where nazwa ="+(using "%s", xMg.dzial.kod)+" and typ="+typ_mag

            rs1.Open(qZap1, con1)

      if rs1.EOF!="" then

....

tutaj to co ma się stać
      


Jeśli kod magazynu zawiera spację to kod się wykrzacza.
Jeśli nie ma spacji pojawia się błąd jak w załączniku.


Załączniki:
Nowy obraz mapy bitowej.jpg
Nowy obraz mapy bitowej.jpg [ 39.95 KiB | Przeglądany 3889 razy ]
2017-09-13, 11:41
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post Re: blokada wystawiania MM w określonych przypadkach
Ta wiadomość była pomocna.(1)
Kod:
qZap1="SELECT khfk FROM HM.KH where nazwa ='"+(using "%s", xMg.dzial.kod)+"' and typ="+typ_mag

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-09-13, 11:49
Wyświetl profil

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post Re: blokada wystawiania MM w określonych przypadkach
Dzięki Rafał, wszystko teraz pięknie działa!


2017-09-15, 01:27
Wyświetl profil

Rejestracja: 2017-02-01, 14:41
Posty: 44
Pomógł: 7
Post Re: blokada wystawiania MM w określonych przypadkach
Zamieszczam kod, gdyby kogoś interesowało.

Cel:
-ograniczenie przesunięć pomiedzy magazynami księgowymi dla jednej osoby.
-zablokowanie przesunięć miedzy mag księgowymi (konta zespołu 3*), a magazynami, gdzie nie jest prowadzona ewid ksiegowa.
-powiązanie dok. typu MM z magazynami księgowymi, dok. typu MMo z mag. 'nieksięgowymi'

Kod:
int Sub OnBeforeInsert(long lId)

   long nCount, i
   Dispatch xMg, xPoz
   int nErr
   int edytuj=0


   string typ_mag="105"
   string kontofk=""

   string qZap2
   DISPATCH rs2, con2
   con2 = GetAdoConnection()
   rs2= "ADODB.Recordset"

   string qZap3
   DISPATCH rs3, con3
   con3 = GetAdoConnection()
   rs3= "ADODB.Recordset"

   xMg = xFactory.NewObject("BDokumentMg")
   nErr = xMg.Load("id="+(using "%d",lId))
   if nErr then error Using "\nBłąd ładowania dokumentu magazynowego nr %l\n", nErr

   

   if xMg.typDk=="MMo-" then

      if xMg.dzial.kod==xMg.magazyn_przesuniecia.kod then

         message "Nie możesz wykonać przesuniecia pomiedzy tymi samymi magazynami {Ico:!}"
         edytuj=-6000

      else
         qZap2="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.dzial.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         qZap3="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.magazyn_przesuniecia.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         rs2.Open(qZap2, con2)
         rs3.Open(qZap3, con3)
      
         if !rs2.EOF || !rs3.EOF then
         
          rs2.Close()
         rs3.Close()
            message "Dokumentem MMo można przesuwać towary tylko na magazynach nieposiadająych ewidencji księgowej  {Ico:!}"
            edytuj=-6000
         else
         rs2.Close()
         rs3.Close()
            message "Towar zostanie przesunięty !!   {Ico:!}"
         
         endif


      endif
   endif

   if xMg.typDk=="MMo+" then

      if xMg.dzial.kod==xMg.magazyn_przesuniecia.kod then

         message "Nie możesz wykonać przesuniecia pomiedzy tymi samymi magazynami {Ico:!}"
         edytuj=-6000

      else
         qZap2="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.dzial.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         qZap3="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.magazyn_przesuniecia.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         rs2.Open(qZap2, con2)
         rs3.Open(qZap3, con3)
      
         if !rs2.EOF || !rs3.EOF then
         
          rs2.Close()
         rs3.Close()
            message "Dokumentem MMo można przesuwać towary tylko na magazynach nieposiadająych ewidencji księgowej   {Ico:!}"
            edytuj=-6000
         else
         rs2.Close()
         rs3.Close()
            message "Towar zostanie przesunięty !!  {Ico:!}"
         
         endif


      endif
   endif

   if xMg.typDk=="MKo-" then

      if xMg.dzial.kod==xMg.magazyn_przesuniecia.kod then

         message "Nie możesz wykonać przesuniecia pomiedzy tymi samymi magazynami {Ico:!}"
         edytuj=-6000

      else
         qZap2="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.dzial.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         qZap3="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.magazyn_przesuniecia.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         rs2.Open(qZap2, con2)
         rs3.Open(qZap3, con3)
      
         if !rs2.EOF || !rs3.EOF then
         
          rs2.Close()
         rs3.Close()
            message "Dokumentem MMo można przesuwać towary tylko na magazynach nieposiadająych ewidencji księgowej   {Ico:!}"
            edytuj=-6000
         else
         rs2.Close()
         rs3.Close()
            message "Towar zostanie przesunięty !!  {Ico:!}"
         
         endif


      endif
   endif

   if xMg.typDk=="MKo+" then

      if xMg.dzial.kod==xMg.magazyn_przesuniecia.kod then

         message "Nie możesz wykonać przesuniecia pomiedzy tymi samymi magazynami {Ico:!}"
         edytuj=-6000

      else
         qZap2="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.dzial.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         qZap3="SELECT khfk FROM HM.KH where kod ='"+(using "%s", xMg.magazyn_przesuniecia.kod)+"' and khfk!='"+kontofk+"' and typ="+typ_mag
         rs2.Open(qZap2, con2)
         rs3.Open(qZap3, con3)
      
         if !rs2.EOF || !rs3.EOF then
         
          rs2.Close()
         rs3.Close()
            message "Dokumentem MMo można przesuwać towary tylko na magazynach nieposiadająych ewidencji księgowej   {Ico:!}"
            edytuj=-6000
         else
         rs2.Close()
         rs3.Close()
            message "Towar zostanie przesunięty !!  {Ico:!}"
         
         endif


      endif
   endif

    if xMg.typDk=="MM-" then   
      if ucase(xFactory.uzytkownik.kod)!="ADMIN" then
           message "Nie masz uprawnień do wykonywania przesunięć MM na magazynach księgowych\nZwróć sie do osob które mają takie uprawnienia {Ico:!}"
            edytuj=-6000
        endif
    endif

    if xMg.typDk=="MM+" then   
      if ucase(xFactory.uzytkownik.kod)!="ADMIN" then
           message "Nie masz uprawnień do wykonywania przesunięć MM na magazynach księgowych\nZwróć sie do osob które mają takie uprawnienia {Ico:!}"
            edytuj=-6000
        endif
    endif

    if xMg.typDk=="MK-" then   
      if ucase(xFactory.uzytkownik.kod)!="ADMIN" then
           message "Nie masz uprawnień do wykonywania przesunięć MM na magazynach księgowych\nZwróć sie do osob które mają takie uprawnienia {Ico:!}"
            edytuj=-6000
        endif
    endif

    if xMg.typDk=="MK+" then   
      if ucase(xFactory.uzytkownik.kod)!="ADMIN" then
           message "Nie masz uprawnień do wykonywania przesunięć MM na magazynach księgowych\nZwróć sie do osob które mają takie uprawnienia {Ico:!}"
            edytuj=-6000
        endif
    endif

   OnBeforeInsert = edytuj
EndSub


2017-09-17, 14:49
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 10 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Blokada wystawiania dokumentów w buforze

w Programy Handlowe

Picasso

1

2154

2023-10-05, 12:24

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Blokada wystawiania faktury bez powiązania z WZ

w Programowanie

Simon123

10

3703

2017-11-19, 20:58

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Błąd podczas wystawiania KP

w Programy Handlowe

Gabrielka

0

2230

2018-02-22, 10:15

Gabrielka Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Ograniczenia systemowe do wystawiania FV z odroczonym t.p.

w Programy Handlowe

woco

1

2039

2012-01-11, 15:43

krzysiek Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 9 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant