Autor Wątek: oddzielna od FZ (prawie)automatyczna numeracja FZRR  (Przeczytany 554 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Bar Naba

  • Nowy użytkownik
  • *
  • Wiadomości: 39
  • Reputacja +11/-0
    • Zobacz profil
oddzielna od FZ (prawie)automatyczna numeracja FZRR
« dnia: Listopad 17, 2011, 20:26:23 »
Wystarczy dodać towar o symbolu NUMER_RR w opisie wprowadzić mu numer jaki ma być nadany i wprowadzić poniższy kod.

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[BN_Kolejny_nr_RR]'))
DROP TRIGGER [dbo].[BN_Kolejny_nr_RR];
GO
CREATE TRIGGER BN_Kolejny_nr_RR
ON dok__Dokument
AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
DECLARE @nr_biezacy varchar (255), @ident int

SET @ident = (SELECT dok_Id FROM inserted)
SET @nr_biezacy = (SELECT LTRIM(RTRIM(tw_Opis)) FROM tw__Towar WHERE tw_Symbol = 'NUMER_RR')

UPDATE dok__Dokument
SET dok_NrPelnyOryg = @nr_biezacy + '/RR/' + CONVERT(varchar(4),YEAR(GETDATE()))
WHERE dok_Id = @ident

SET @nr_biezacy = CONVERT (int, @nr_biezacy) + 1

UPDATE tw__Towar
SET tw_Opis = CONVERT(varchar(255), @nr_biezacy)
WHERE tw_Symbol = 'NUMER_RR'
END;
GO

W moim przypadku jak na razie wystarcza, a wiem że można by to jeszcze podrasować.

--
Pzdr BN

Forum Użytkownikow Subiekt GT

oddzielna od FZ (prawie)automatyczna numeracja FZRR
« dnia: Listopad 17, 2011, 20:26:23 »

Offline jajacek

  • Nowy użytkownik
  • *
  • Wiadomości: 18
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.25 SP2 (1.2505.30.2230)
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #1 dnia: Luty 12, 2012, 22:46:20 »
Witam

Od dawna walczyłem z problemem numeracji faktur VAT RR. Mimo wielu próśb, tłumaczeń dalej jest pole "nr oryginalny".
Kierownik działu pomocy technicznej z Subiekta w rozmowie ze mną powiedział, że się nie znam i tak ma być, nie może być automatycznej numeracji, bo numer zapisuje sobie rolnik w notesie i mi jako wystawiającemu podaje :)

Super, że znalazł się ktoś mający pojęcie o bazach danych i postanowił z tym powalczyć.
W jaki sposób i gdzie mam wprowadzić podany przez Ciebie kod?

Pozdrawiam
Jacek

Offline jajacek

  • Nowy użytkownik
  • *
  • Wiadomości: 18
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.25 SP2 (1.2505.30.2230)
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #2 dnia: Luty 13, 2012, 11:37:05 »
Udało się wczytanie skryptu za pomocą programu EMS SQLMANAGER. Jakoś nie mogłem przez linię poleceń. Wpisywałem osql -Usa -P -S (local)\insertgt w linii poleceń, dostałem w odpowiedzi 1> czyli chyba byłem zalogowany. Niestety kod nie wchodził. Wyrzucało błąd:

Msg 8197, Level 16, State 4, Server AGRANTO\INSERTGT, Procedure BN_Kolejny_nr_RR
, Line 1
The object 'dok__Dokument' does not exist or is invalid for this operation.

Dziękuje bardzo za kod. Działa rewelacyjnie. Należy Ci się za to pół litra.

Chciałbym zmodyfikować kod tak, by domyślnie dawał formę płatności przelew i termin 14 dni.

Niestety mój kod nie działa:
IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[BN_Kolejny_nr_RR]'))
DROP TRIGGER [dbo].[BN_Kolejny_nr_RR];
GO
CREATE TRIGGER BN_Kolejny_nr_RR
   ON dok__Dokument
   AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
DECLARE @nr_biezacy varchar (255), @ident int

SET @ident = (SELECT dok_Id FROM inserted)
SET @nr_biezacy = (SELECT LTRIM(RTRIM(tw_Opis)) FROM tw__Towar WHERE tw_Symbol = 'NUMER_RR')

UPDATE dok__Dokument
   SET dok_NrPelnyOryg = @nr_biezacy + '/RR/' + CONVERT(varchar(4),YEAR(GETDATE()))
   SET dok_PlatId = 2
   WHERE dok_Id = @ident

SET @nr_biezacy = CONVERT (int, @nr_biezacy) + 1

UPDATE tw__Towar
   SET tw_Opis = CONVERT(varchar(255), @nr_biezacy)
   WHERE tw_Symbol = 'NUMER_RR'
END;
GO

Moja tabela sl)FormaPlatnosci
fp_Id   fp_Nazwa   fp_Termin   fp_Typ   fp_RachBankId   fp_CentId   fp_InstKredytId   fp_Glowna
1   Przelew   7   0            
2   Przelew   14   0            
3   Przelew   30   0            
4   Przelew   21   0            
5   Przelew   10   0            
9   Przelew   3   0            

Przy okazji chciałbym wymusić w programie stawkę VAT 7% dla towarów na fakturze RR niezależnie od stawki w kartotece, ale to pewnie bardziej skomplikowane.
« Ostatnia zmiana: Luty 13, 2012, 18:58:41 wysłana przez jajacek »

Offline birds22

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 2983
  • Reputacja +622/-8
    • Zobacz profil
  • Wersja programu: 1.28 SP2 HF1
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #3 dnia: Luty 13, 2012, 17:54:02 »
... Jakoś nie mogłem przez linię poleceń. Wpisywałem osql -Usa -P -S (local)\insertgt w linii poleceń, dostałem w odpowiedzi 1> czyli chyba byłem zalogowany. Niestety kod nie wchodził. Wyrzucało błąd:

Msg 8197, Level 16, State 4, Server AGRANTO\INSERTGT, Procedure BN_Kolejny_nr_RR
, Line 1
The object 'dok__Dokument' does not exist or is invalid for this operation.
Logując się w ten sposób podłączałeś się pod bazę master a tam nie było tabeli dok__dokument

Należało po osql użyć jeszcze przełącznika -d nazwa_twojej bazy albo po zalogowaniu wykonać :
use nazwa_twojej_bazy
go


Cytuj
Chciałbym zmodyfikować kod tak, by domyślnie dawał formę płatności przelew i termin 14 dni.

Niestety mój kod nie działa:

Może wystarczy w kartotece kontrahenta wybrać kredyt kupiecki 100% i domyślną formę płatności tę, którą chcesz ?

A kod nie może działać bo dok_PlatTermin to jest pole datetime i trzeba tam wpisać datę a nie liczbę.

Nie radzę Ci grzebać w ten sposób w bazie jeżeli nie do końca wiesz co robisz bo możesz narobić sobie dużych problemów.

Pomyślałeś o tym czy zmiana daty terminu płatność w tabeli dok__dokument wystarczy aby ta data pojawiła się także w tabelach odpowiadających za należności/zobowiązania ?

Cytuj
Przy okazji chciałbym wymusić w programie stawkę VAT 7% dla towarów na fakturze RR niezależnie od stawki w kartotece, ale to pewnie bardziej skomplikowane.

A może wystarczy w kartotece towaru wybrać inną stawkę vat (7% ???) przy zakupie ?

Sławek

Pomogłem? - kliknij "pomógł" pod moim awatarem (... zbieram punkty na rozgrzeszenie u św. Piotra :) )

Offline jajacek

  • Nowy użytkownik
  • *
  • Wiadomości: 18
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.25 SP2 (1.2505.30.2230)
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #4 dnia: Luty 13, 2012, 18:42:43 »
Co do innej stawki VAT przy zakupie to tak obecnie robię. Jednak to nie jest dobre rozwiązanie. Stawka VAT dla zbóż to 5%. Stosuje się ją przy sprzedaż i zakupie. Jednak przy zakupie od rolnika będącego tzw. ryczałtowcem stosujemy stawkę 7% i wystawiamy fakturę VAT RR za niego. Z nadaną przez nas numeracją, o którą zadbał Bar Naba. Jeszcze raz dziękuję Bar Naba.
Przy zakupie od rolnika vatowca jest normalna stawka 5% i to on sam wystawia fakturę sprzedaży jak każdy inny sprzedający.
Wg ustawy o VAT faktura VAT RR powinna być płatna przelewem w terminie 14 dni.

Wiem. To trochę skomplikowane :) W Insercie tego nie pojęli przez 10 lat
Byłbym wdzięczny, gdybyście mi zasugerowali jakieś rozwiązanie odnośnie stałej stawki VAT za produkty na fakturze VAT RR i rodzaju i terminu płatności.

Jeszcze dodatkowe pytanie - mam dwie firmy na jednym komputerze - moja i mamy. Czy można w jakiś sposób zrobić, by mama korzystała z mojej kartoteki kontrahentów i towarów? Nadmieniam, że mama dopiero zaczyna z Subiektem a ja mam już sporą bazę.
« Ostatnia zmiana: Luty 13, 2012, 18:59:27 wysłana przez jajacek »

Offline jajacek

  • Nowy użytkownik
  • *
  • Wiadomości: 18
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.25 SP2 (1.2505.30.2230)
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #5 dnia: Marzec 17, 2012, 20:26:08 »
Zmodyfikowałem skrypt tak by w subiekcie można było sortować faktury RR wg numerów oryginalnych. Po prostu dodałem do numeru zera wiodące, dopisywane z lewej strony numeru tak by numer zawsze miał stałą liczbę znaków. W tym przypadku 3.
W pierwotnej wersji sortowanie daje w efekcie:
1/RR/2012
11/RR/2012
12/RR/2012
...
19/RR/2012
100/RR/2012
100/RR/2012
Może komuś moja poprawka się przyda.

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[BN_Kolejny_nr_RR]'))
DROP TRIGGER [dbo].[BN_Kolejny_nr_RR];
GO
CREATE TRIGGER BN_Kolejny_nr_RR
   ON dok__Dokument
   AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
DECLARE @nr_biezacy varchar (255), @ident int

SET @ident = (SELECT dok_Id FROM inserted)
SET @nr_biezacy = (SELECT LTRIM(RTRIM(tw_Opis)) FROM tw__Towar WHERE tw_Symbol = 'NUMER_RR')

UPDATE dok__Dokument
   SET dok_NrPelnyOryg = (select replicate(  0,3-len(@nr_biezacy)) + @nr_biezacy) + '/RR/' + CONVERT(varchar(4),YEAR(GETDATE()))
   WHERE dok_Id = @ident

SET @nr_biezacy = CONVERT (int, @nr_biezacy) + 1

UPDATE tw__Towar
   SET tw_Opis = CONVERT(varchar(255), @nr_biezacy)
   WHERE tw_Symbol = 'NUMER_RR'
END;
GO

Ewentualnie jak ktoś nie lubi zer z przodu, to wersja z dodanymi z przodu spacjami.
IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[BN_Kolejny_nr_RR]'))
DROP TRIGGER [dbo].[BN_Kolejny_nr_RR];
GO
CREATE TRIGGER BN_Kolejny_nr_RR
   ON dok__Dokument
   AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
DECLARE @nr_biezacy varchar (255), @ident int

SET @ident = (SELECT dok_Id FROM inserted)
SET @nr_biezacy = (SELECT LTRIM(RTRIM(tw_Opis)) FROM tw__Towar WHERE tw_Symbol = 'NUMER_RR')

UPDATE dok__Dokument
   SET dok_NrPelnyOryg = (select replicate(  ' ',3-len(@nr_biezacy)) + @nr_biezacy) + '/RR/' + CONVERT(varchar(4),YEAR(GETDATE()))
   WHERE dok_Id = @ident

SET @nr_biezacy = CONVERT (int, @nr_biezacy) + 1

UPDATE tw__Towar
   SET tw_Opis = CONVERT(varchar(255), @nr_biezacy)
   WHERE tw_Symbol = 'NUMER_RR'
END;
GO

Fajnie byłoby, gdyby ktoś podpowiedział jak wymusić stałą stawkę VAT 7% dla faktur VAT RR

Offline agro

  • Nowy użytkownik
  • *
  • Wiadomości: 22
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.27
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #6 dnia: Marzec 22, 2012, 15:31:23 »
A czy możecie mi tak łopatologicznie wytłumaczyć gdzie mam wkleić ten kod na automatyczną numerację RRki? Bo zbytnio się nie znam, a nie chcę nic popsuć... A też mam już dość ręcznego wpisywania nru dla RR. Z góry dziękuję za pomoc :)

Offline jajacek

  • Nowy użytkownik
  • *
  • Wiadomości: 18
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.25 SP2 (1.2505.30.2230)
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #7 dnia: Marzec 22, 2012, 22:21:00 »
Trzeba wejść w w Windows w Start > uruchom > wpisać cmd > następnie w linii poleceń wpisać:
osql -Usa -P -S (local)\insertgt
wcisnąć enter
wpisać: use nazwa_twojej_bazy
wcisnąć enter
wpisać: go
wcisnąć enter
wpisać kod podany przez Bar Nabę lub po mojej poprawce
wcisnąć enter
uruchomić Subiekta GT i dodać towar o nazwie i opisie jak pisał Bar Naba

Cieszyć się wynikami.

Pozdrawiam
Jacek

Offline birds22

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 2983
  • Reputacja +622/-8
    • Zobacz profil
  • Wersja programu: 1.28 SP2 HF1
Odp: oddzielna od FZ (prawie)automatyczna numeracja FZRR
« Odpowiedź #8 dnia: Marzec 23, 2012, 09:02:00 »
Łatwiej jest zapisać kod do pliku np c:\polecenie.sql, a następnie:

Trzeba wejść w w Windows w Start > uruchom > wpisać cmd > następnie w linii poleceń wpisać:
osql -Usa -P -S (local)\insertgt -d nazwa_twojej_bazy -i c:\polecenie.sql
Sławek

Pomogłem? - kliknij "pomógł" pod moim awatarem (... zbieram punkty na rozgrzeszenie u św. Piotra :) )