mojaSymfonia FORUM
https://forum.mix-soft.pl/

Import specjalny SDF
https://forum.mix-soft.pl/viewtopic.php?f=15&t=3401
Strona 1 z 1

Autor:  slawekdw [ 2011-10-21, 10:12 ]
Tytuł:  Import specjalny SDF

Witam
jestem początkujący w kwestii pisania raportów do FiK,
Napisałem raporcik który wczytuje mi dane z pliku SDF
są to faktury sprzedaży w rozbiciu na dwa konta
Standardowe sprzedaż oraz transport
I tu pojawił się problem, zdarza się że niekiedy nie ma transportu a także zdarza się ze niekiedy jest tylko transport
Format pliku wygląda następująco:

TYP_DOKUMENTU;DATA;KONTRAHENT;NUMER_DOKUMENTU_TRESC_FAKTURY;KWOTA_NETTO_TOWAR;kWOTA_NETTO_TRANSPORT

Problem wynika z tego ze na sztywno do pozycji przypisane są konta oraz rejestr, i jak nie ma którejś z pozycji ( transportu albo towaru) zapisują się źle pozycje w rejestrze oraz na kontach
Poniżej raport. Proszę o pomoc w rozwiązaniu tego problemu
#opis "import z scv", "*.CSV (Pliki oddzialone srednikiem)" //
#format "SDF" //
#data "d.m.r" //
#opisy "" //
#Disable "0" //poziom ostrzeżeń 1 (m.in. bez ostrzeżenia "Pole nie znalezione")
#POWIELONE_NAZWY "1" //0-zapisuje bez pytania; 1-pyta czy zapisać; 2-nie zapisuje
#NAZWY_POL "IGNORUJ"
Section("","Dokument")
{
$Klucz = [1]
$Skrot = [5]
$Nazwa = [5]
$NazwaKor = [5]
$datakor = Date([2])
$Tresc = [6]
$Datadok = Date([2])
$Dataokr = Date([2])
$DataOper = Date([2])
IF (Not ( Equal ([1], "CNOTE")))
$ObslugujJak = "FVS"
Else
$ObslugujJak = "FKS"

MakeSec ( "kontrahent")
{
$aktywny = 1
$klucz = SUM0([5], -65535)
$nazwa = [4]
$skrot = [4]
$autoinsert = 1
}

IF (Not (Equal ([13], "0")))
{
MakeSec("Rejestr")
{
$Klucz = [1]
$abc = "1"
$netto = [13]
$brutto = Mul2([13],1.23)
$vat = Mul2 ([13], 0.23)
$stawka = "23"
}
MakeSec("Zapis")
{
$strona = 0 //Wn
$pozycja = 0
$konto = "201-1-2-K"
$numerDok = [5]
$opis = [6]
$kwota = Mul2([13],1.23)
}
MakeSec("Zapis")
{
$strona = 1 //Ma
$pozycja = 0
$konto = "731-1"
$numerDok = [5]
$opis = [6]
$kwota = [13]
}
MakeSec("Zapis")
{
$strona = 1 //Ma
$pozycja = 0
$konto = "221-1"
$numerDok = [5]
$opis = [6]
$kwota = Mul2 ([13], 0.23)
}
}
IF (Not(Equal ([14], "0")))
{
MakeSec("Rejestr")
{
$Klucz = [1]
$abc = "1"
$netto = [14]
$brutto = Mul2([14],1.23)
$vat = Mul2 ([14], 0.23)
$stawka = "23"
}
MakeSec("Zapis")
{
$strona = 0 //Wn
$pozycja = 1
$konto = "201-1-2-K"
$numerDok = [5]
$opis = [6]
$kwota = Mul2([14],1.23)
}
MakeSec("Zapis")
{
$strona = 1 //Ma
$pozycja = 1
$konto = "731-1"
$numerDok = [5]
$opis = [6]
$kwota = [14]
}
MakeSec("Zapis")
{
$strona = 1 //Ma
$pozycja = 1
$konto = "221-1"
$numerDok = [5]
$opis = [6]
$kwota = Mul2 ([14], 0.23)
}
}
}

Autor:  helperman [ 2011-11-04, 13:04 ]
Tytuł: 

Hej.
Nie odpowiem Ci dokładnie na to pytanie, ponieważ musiałbym przesledzić jakieś przykładowe dane.
Ale podpowiem trochę.
- Jeżeli info o dokumencie to jedna linijka danych, to masz źle przemyślany kod importu. Powinieneś całość wczytać, a potem decydować co ma być wgrane do systemu. Wg mnie powinieneś najpierw dodać sekcję rejestru dla całości, a potem w zależności od zawartości (od danych) dodać zapisy księgowe. Pamiętaj, że zapisy można rozbijać jednostronnie. Pytanie jak masz zamiar zapisywać dane odnośnie transport+sprzedaż i każdy oddzielnie - ale to typowe dla szablonów instrukcje warunkowe.
- Jeżeli info o dokumencie jest w kilku linijkach to pamiętaj o pętli na całości odczytujące dane po identyfikatorze jakim jest np. nr dokumentu.

Tak jak pisałem na początku, Jeżeli chcesz sam dojść do czegoś to instrukcja w FK odnośnie pisania szablonów importu specjalnego jest nieodzowna.

Szablonów dawno nie pisałem, ale jeżeli nie poradzisz sobie, to napisz - może coś dalej poradzimy.

PS. Sorry za lakoniczność wypowiedzi, ale tego typu sprawy albo się robi albo nie.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/