Witam,
Próbuję ogarnąć zestawienie sprzedaży wg pracowników, uwzględniając wszystkie koszta związane ze sprzedażą. W programie niestety (lub my i nasz opiekun nie mamy pojęcia jak to zrobić) jako koszta są brane jedynie: koszt zakupu towaru oraz koszt transportu do klienta. Nie są brane pod uwagę koszta wynagrodzeń handlowca oraz koszta robocizny produkcji. Do tej pory wyliczamy to przy użyciu excela, ale ostatecznie chcielibyśmy ogarnąć sobie to przez Navireo.
Obecnie mam takie zestawienie, trochę zerżnięte z wbudowanego, ale z obciętymi paroma opcjami do wyboru:
SELECT
'Pracownik' = CASE WHEN GROUPING(dok_Wystawil) = 1 THEN '(Razem sprzedaż)' ELSE CASE WHEN dok_Wystawil = '' THEN 'brak pracownika' ELSE ISNULL(dok_Wystawil, '(Pracownik nieokreślony)') END END,
SUM(ob_IloscMag*ob_Znak) AS 'Ilość',
SUM(ob_WartBrutto*ob_Znak) AS 'Brutto',
SUM(ob_WartNetto*ob_Znak) AS 'Netto',
SUM(CASE WHEN (ob_TowRodzaj&6)>0 THEN 0 ELSE dbo.fnZestSub_KosztSpr(dok_DataWyst, ob_Id)*ob_Znak END) as 'Koszt',
SUM((ob_WartNetto-CASE WHEN (ob_TowRodzaj&6)>0 THEN 0 ELSE dbo.fnZestSub_KosztSpr(dok_DataWyst, ob_Id) END) * ob_Znak) as 'Zysk',
Marza = CONVERT(MONEY, CASE WHEN SUM(ob_WartNetto * ob_Znak)<>0 THEN (SUM((ob_WartNetto-CASE WHEN (ob_TowRodzaj&6)>0 THEN 0.0000 ELSE dbo.fnZestSub_KosztSpr(dok_DataWyst, ob_Id) END) * ob_Znak)/SUM(ob_WartNetto * ob_Znak))*100 ELSE 0.0000 END )
FROM vwZstSprzWgKhnt
LEFT JOIN tw__Towar ON ob_TowId = tw_Id
LEFT JOIN sl_GrupaTw ON tw_IdGrupa = grt_Id
WHERE (( dok_DataWyst BETWEEN {DR:Data dokumentu})
AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp)
IN ({CHL:Faktura VAT sprzedaży#131072#Faktura sprzedaży detaliczna#131073#Faktura sprzedaży zbiorcza#131074#Faktura sprzedaży zaliczkowa#131075#FS zaliczkowa cząstkowa nowa#131076#FS zaliczkowa końcowa nowa#131077#Rachunek sprzedaży#262144#Korekta faktury VAT sprzedaży#393216#Korekta faktury sprzedaży do nieistniejącego#393217#KFS korekta całkowita faktury zaliczkowej#393218#Paragon#1376256#Paragon fiskalny#1376257#Paragon imienny#1376258#Paragon odebrany z kasy#1376259#Zwrot#917504#Zwrot do nieistniejacego#917505#:Typ dokumentu:131072,131074,131075,131076,131077,262144,393216,393217,393218,1376256,1376257,1376258,1376259,917504,917505:(sprzedaż bez faktur detalicznych)})))
AND (dok_RodzajOperacjiVat IN ({CHL:sprzedaż krajowa - S#0#wewnątrzwspólnotowa dostawa towarów - WDT#2#eksport towarów (poza UE) - EX#1#transakcja trójstronna (dostawa) - WTTD#3#eksport usług - EXU#4#sprzedaż poza terytorium kraju - SPTK#12#odwrotne obciążenie (sprzedaż) - OOs#6#:typ transakcji VAT:0,2,1,3,4,12,6:(dowolny)})) AND (dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn:magazyn:Select mag_Id FROM sl_Magazyn:(dowolny)})) AND dok_Status <> 2
GROUP BY dok_Wystawil WITH ROLLUP
No i teraz się zastanawiam nad paroma rzeczami:
1) Czy jest możliwość aby w parametrze {DR:} była możliwość wybrania opcji: 'z roku:', 'z miesiąca'? Czy tylko poprzez opisanie samemu komponentu? Obecnie {DR:} daje możliwość wyboru bieżącego okresu i dowolnego zakresu, konkretnego miesiąca w określonym roku/roku obrotowego, kwartału już nie, a szkoda.
2) Jak uwzględnić robociznę oraz wynagrodzenie w kosztach? Wynagrodzenie wydaje mi się, że można podpiąć poprzez pole dok_PersonelId które wydaje mi się, że odpowiada ID pracownika(?) wystawiającego dany dokument. No i wtedy Left Join(?) i uwzględnienie w sumie kosztów. Wydaje mi się to racjonalne. Co o tym sądzicie? No i druga sprawa w jaki sposób ewidencjonować robociznę w systemie? Księgowa rzuciła, że można zrobić jakąś nieksięgowaną kartotekę czy coś podobnego dla każdego pracownika jako osobną rzecz i do niej wrzucać robociznę. Nie wiem czy jest to najlepsze rozwiązanie. Może macie jakieś sprawdzone rozwiązania?
PS: Sprawdziłem forum i nie znalazłem odpowiedzi na te pytania. Druga sprawa wyszukiwarka dziwnie działa na forum. Przy pierwszym wyborze podforum z którego chcę korzystać wyszukuje tylko w nim, ale przy kolejnych wyszukiwaniach z zaznaczonym konkretnym podforum już szuka we wszystkich wątkach na forum...