2257 lines
90 KiB
Plaintext
2257 lines
90 KiB
Plaintext
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
*< FOXBIN2PRG: Version="1.21" SourceFile="frm_import.scx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
|
*
|
|
*
|
|
#INCLUDE "comun.h"
|
|
|
|
DEFINE CLASS dataenvironment AS dataenvironment
|
|
*< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" />
|
|
|
|
*<PropValue>
|
|
DataSource = .NULL.
|
|
Height = 200
|
|
Left = 1
|
|
Name = "Dataenvironment"
|
|
Top = 220
|
|
Width = 520
|
|
*</PropValue>
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS form1 AS form
|
|
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" />
|
|
|
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
|
*< OBJECTDATA: ObjPath="cmdExport" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="edtInfo" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="txtData1" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="Command1" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkTVAIncasare" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkTest" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkFacturi" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="txtData2" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkHotel" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkVanzariRestaurant" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkIesiriRestaurant" UniqueID="" Timestamp="" />
|
|
*< OBJECTDATA: ObjPath="chkIntrariRestaurant" UniqueID="" Timestamp="" />
|
|
|
|
*<DefinedPropArrayMethod>
|
|
*m: completeazaparteneriroa
|
|
*m: connectmentor
|
|
*m: connectroa
|
|
*m: creeazanote
|
|
*m: disconnectmentor
|
|
*m: disconnectroa
|
|
*m: exportdate
|
|
*m: scrienote
|
|
*m: sql_temp_insert
|
|
*m: sterge_import
|
|
*m: trace
|
|
*m: verificafactura
|
|
*p: nhandlementor
|
|
*p: _memberdata && XML Metadata for customizable properties
|
|
*</DefinedPropArrayMethod>
|
|
|
|
*<PropValue>
|
|
Caption = "Import Fidelio & Biz > ROA"
|
|
DoCreate = .T.
|
|
Height = 538
|
|
Icon = app.ico
|
|
Left = 0
|
|
Name = "form1"
|
|
nhandlementor = 0
|
|
ShowWindow = 0
|
|
Top = 0
|
|
Width = 627
|
|
WindowType = 1
|
|
_memberdata = <VFPData>
|
|
<memberdata name="connectmentor" display="ConnectMentor"/>
|
|
<memberdata name="nhandlementor" display="nHandleMentor"/>
|
|
<memberdata name="disconnectmentor" display="DisconnectMentor"/>
|
|
<memberdata name="completeazaparteneriroa" display="CompleteazaParteneriROA"/>
|
|
</VFPData>
|
|
*</PropValue>
|
|
|
|
ADD OBJECT 'chkFacturi' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Nu scrie facturi duplicate", ;
|
|
Height = 17, ;
|
|
Left = 120, ;
|
|
Name = "chkFacturi", ;
|
|
TabIndex = 6, ;
|
|
Top = 56, ;
|
|
Value = 1, ;
|
|
Width = 153
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'chkHotel' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Hotel", ;
|
|
Height = 17, ;
|
|
Left = 480, ;
|
|
Name = "chkHotel", ;
|
|
TabIndex = 6, ;
|
|
Top = 54, ;
|
|
Value = 1, ;
|
|
Width = 47
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'chkIesiriRestaurant' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Iesiri Restaurant", ;
|
|
Height = 17, ;
|
|
Left = 360, ;
|
|
Name = "chkIesiriRestaurant", ;
|
|
TabIndex = 6, ;
|
|
Top = 54, ;
|
|
Value = 1, ;
|
|
Width = 109
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'chkIntrariRestaurant' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Intrari Restaurant", ;
|
|
Height = 17, ;
|
|
Left = 360, ;
|
|
Name = "chkIntrariRestaurant", ;
|
|
TabIndex = 6, ;
|
|
Top = 36, ;
|
|
Value = 1, ;
|
|
Width = 113
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'chkTest' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Nu scrie note contabile", ;
|
|
Height = 17, ;
|
|
Left = 120, ;
|
|
Name = "chkTest", ;
|
|
TabIndex = 5, ;
|
|
Top = 37, ;
|
|
Value = 0, ;
|
|
Width = 144
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'chkTVAIncasare' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "TVA la Incasare", ;
|
|
Height = 17, ;
|
|
Left = 12, ;
|
|
Name = "chkTVAIncasare", ;
|
|
TabIndex = 4, ;
|
|
Top = 37, ;
|
|
Width = 103
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'chkVanzariRestaurant' AS checkbox WITH ;
|
|
Alignment = 0, ;
|
|
AutoSize = .T., ;
|
|
BackColor = 240,240,240, ;
|
|
BackStyle = 0, ;
|
|
Caption = "Vanzari Restaurant", ;
|
|
Height = 17, ;
|
|
Left = 480, ;
|
|
Name = "chkVanzariRestaurant", ;
|
|
TabIndex = 6, ;
|
|
Top = 36, ;
|
|
Value = 1, ;
|
|
Width = 122
|
|
*< END OBJECT: BaseClass="checkbox" />
|
|
|
|
ADD OBJECT 'cmdExport' AS commandbutton WITH ;
|
|
Anchor = 9, ;
|
|
AutoSize = .F., ;
|
|
Caption = "\<Import Fidelio&Biz > ROA", ;
|
|
FontBold = .T., ;
|
|
Height = 27, ;
|
|
Left = 356, ;
|
|
Name = "cmdExport", ;
|
|
TabIndex = 3, ;
|
|
Top = 3, ;
|
|
Width = 163
|
|
*< END OBJECT: BaseClass="commandbutton" />
|
|
|
|
ADD OBJECT 'Command1' AS commandbutton WITH ;
|
|
Anchor = 9, ;
|
|
AutoSize = .F., ;
|
|
Caption = "\<Sterge import din ROA", ;
|
|
FontBold = .T., ;
|
|
ForeColor = 255,0,0, ;
|
|
Height = 27, ;
|
|
Left = 360, ;
|
|
Name = "Command1", ;
|
|
TabIndex = 7, ;
|
|
TabStop = .F., ;
|
|
Top = 84, ;
|
|
Width = 144
|
|
*< END OBJECT: BaseClass="commandbutton" />
|
|
|
|
ADD OBJECT 'edtInfo' AS editbox WITH ;
|
|
Anchor = 15, ;
|
|
Height = 408, ;
|
|
Left = 10, ;
|
|
Name = "edtInfo", ;
|
|
TabIndex = 8, ;
|
|
Top = 120, ;
|
|
Width = 602
|
|
*< END OBJECT: BaseClass="editbox" />
|
|
|
|
ADD OBJECT 'Label1' AS label WITH ;
|
|
AutoSize = .T., ;
|
|
BackStyle = 0, ;
|
|
Caption = "Perioada", ;
|
|
Height = 17, ;
|
|
Left = 15, ;
|
|
Name = "Label1", ;
|
|
TabIndex = 9, ;
|
|
Top = 10, ;
|
|
Width = 52
|
|
*< END OBJECT: BaseClass="label" />
|
|
|
|
ADD OBJECT 'Label2' AS label WITH ;
|
|
AutoSize = .T., ;
|
|
BackStyle = 0, ;
|
|
Caption = "-", ;
|
|
FontBold = .T., ;
|
|
FontSize = 12, ;
|
|
Height = 22, ;
|
|
Left = 176, ;
|
|
Name = "Label2", ;
|
|
TabIndex = 10, ;
|
|
Top = 7, ;
|
|
Width = 7
|
|
*< END OBJECT: BaseClass="label" />
|
|
|
|
ADD OBJECT 'txtData1' AS textbox WITH ;
|
|
Format = "K", ;
|
|
Height = 23, ;
|
|
Left = 72, ;
|
|
Name = "txtData1", ;
|
|
TabIndex = 1, ;
|
|
Top = 7, ;
|
|
Width = 100
|
|
*< END OBJECT: BaseClass="textbox" />
|
|
|
|
ADD OBJECT 'txtData2' AS textbox WITH ;
|
|
Format = "K", ;
|
|
Height = 23, ;
|
|
Left = 186, ;
|
|
Name = "txtData2", ;
|
|
TabIndex = 2, ;
|
|
Top = 7, ;
|
|
Width = 100
|
|
*< END OBJECT: BaseClass="textbox" />
|
|
|
|
PROCEDURE completeazaparteneriroa
|
|
*!* 01.07.2026
|
|
*!* codurile fiscale sunt cu prioritate tip_persoana = 2 persoana fizica
|
|
*!* persoanele fizice cu CNP-urile eronate, le sterg CNP
|
|
|
|
* Completez id_part
|
|
Local lcBanca, lcCod_fiscal, lcCont_Banca, lcCorespDel, lcDenumire, lcIdString, lcId_categ_ent
|
|
Local lcId_loc_inreg, lcId_util, lcMesaj, lcMotiv_inactiv, lcNume, lcPrefix, lcPrenume, lcReg_comert
|
|
Local lcSql, lcSqlInsert, lcSufix, lcTip_persoana, lcinactiv, lnSucces, lnTip_persoana, lcCodTara
|
|
Local lcAdresa, lcAdreseParteneri, lcApart, lcBloc, lcCaleImport, lcCod, lcCodpostal, lcDA_apare
|
|
Local lcDenumire_adresa, lcEmail, lcEtaj, lcFax, lcFile, lcIdPart, lcId_Judet, lcId_loc, lcId_tara
|
|
Local lcItem1, lcItem2, lcItem3, lcItem4, lcJudet, lcJudetBucuresti, lcLocalitate, lcNumar
|
|
Local lcPrincipala, lcScara, lcSqlJudete, lcSqlLocalitati, lcSqlPart, lcStrada, lcTelefon1
|
|
Local lcTelefon2, lcWeb, lnIdJudet, lnIdJudetBucuresti, lnIdLocalitateBucuresti, lnIdTaraRO, lnPos
|
|
Local lnRecc
|
|
*:Global pcDenumire, pnIdAdresa, pnNrAdrese
|
|
|
|
*:Global pcCodFiscal, pnIdPart
|
|
Thisform.Trace('Completare Parteneri ROA')
|
|
|
|
If !Used('npart')
|
|
lnSucces = CT_INSUCCES
|
|
Return m.lnSucces
|
|
Endif
|
|
|
|
Select Distinct Cast(Null As I) As id_part, cod, denumire, cod_fiscal, reg_com, adresa, judet As indicativ_judet, tara As cod_tara, banca, cont_banca ;
|
|
From npart ;
|
|
Into Cursor cClientiFurnizori Readwrite
|
|
|
|
lnSucces = This.Connectroa()
|
|
IF m.lnSucces < 0
|
|
Thisform.Trace('Completare Parteneri ROA. Eroare conectare la baza de date!')
|
|
|
|
RETURN m.lnSucces
|
|
ENDIF
|
|
|
|
CREATE CURSOR cParteneri (id_part N(10), cod_fiscal C(30) null, denumire C(100) null)
|
|
lcSqlPart = [select id_part, cod_fiscal, denumire from nom_parteneri where sters = 0 and inactiv = 0]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlPart + '??cCursor=>cParteneriTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.trace('Eroare la selectia din clienti ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
ENDIF
|
|
|
|
SELECT cParteneri
|
|
APPEND FROM DBF('cParteneriTemp')
|
|
INDEX on denumire TAG denumire
|
|
INDEX on PADR(STRTRAN(cod_fiscal, ' ', ''),30, ' ') TAG cod_fiscal
|
|
USE IN (SELECT('cParteneriTemp'))
|
|
|
|
CREATE CURSOR cAdrese (id_adresa I, id_part I, localitate C(100) null, id_loc I null, judet C(20) null, id_judet I null, tara C(50) null, id_tara I null)
|
|
lcAdreseParteneri = [select id_adresa, id_part, localitate, id_loc, judet, id_judet, tara, id_tara from vadrese_parteneri]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcAdreseParteneri + '??cCursor=>cAdreseTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.trace('Eroare la selectia din adrese parteneri ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
Endif
|
|
SELECT cAdrese
|
|
APPEND FROM DBF('cAdreseTemp')
|
|
INDEX on PADL(id_part,10, '0') + PADR(localitate, 100, ' ') TAG adresa
|
|
USE IN (SELECT('cAdreseTemp'))
|
|
|
|
CREATE CURSOR cJudete (id_judet I, id_tara I null, judet C(20) null)
|
|
lcSqlJudete = [select j.id_judet, j.id_tara, j.judet from syn_nom_judete j]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlJudete + '??cCursor=>cJudeteTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.trace('Eroare la selectia din judete ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
ENDIF
|
|
SELECT cJudete
|
|
APPEND FROM DBF('cJudeteTemp')
|
|
INDEX on id_judet TAG id_judet
|
|
USE IN (SELECT('cJudeteTemp'))
|
|
|
|
CREATE CURSOR cLocalitati (id_loc I, id_judet I null, id_tara I null, localitate C(100) null)
|
|
lcSqlLocalitati = [select l.id_loc, l.id_judet, j.id_tara, l.localitate from syn_nom_localitati l left join syn_nom_judete j on l.id_judet = j.id_judet where l.inactiv = 0 and l.sters = 0]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlLocalitati + '??cCursor=>cLocalitatiTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.trace('Eroare la selectia din localitati ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
ENDIF
|
|
SELECT cLocalitati
|
|
APPEND FROM DBF('cLocalitatiTemp')
|
|
USE IN (SELECT('cLocalitatiTemp'))
|
|
|
|
Select cClientiFurnizori
|
|
lnRecc = RECCOUNT()
|
|
Scan
|
|
pnIdPart = 0
|
|
pcCodFiscal = PADR(STRTRAN(cod_fiscal, ' ', ''),30, ' ')
|
|
pcDenumire = PADR(Alltrim(Upper(denumire)), 100, ' ')
|
|
lcAdresa = Strtran(Alltrim(Upper(Nvl(adresa, ''))), Chr(13), ' ')
|
|
IF LEN(ALLTRIM(m.pcCodFiscal)) <= 3
|
|
pcCodFiscal = PADL(ALLTRIM(cod), 10, '0')
|
|
ENDIF
|
|
|
|
lcCod = cod
|
|
IF MOD(RECNO(), 250) = 0
|
|
thisform.trace ('Import clienti... ' + TRANSFORM(RECNO()) + '/' + TRANSFORM(m.lnRecc))
|
|
ENDIF
|
|
* Verific daca partenerul a mai fost importat
|
|
IF SEEK(m.lcCod, 'coresp_parteneri', 'cod')
|
|
pnIdPart = coresp_parteneri.id_part
|
|
|
|
SELECT cClientiFurnizori
|
|
REPLACE id_part WITH m.pnIdPart
|
|
LOOP
|
|
ENDIF
|
|
|
|
|
|
|
|
SELECT cParteneri
|
|
DO CASE
|
|
CASE !Empty(m.pcCodFiscal)
|
|
IF SEEK(m.pcCodFiscal, 'cParteneri', 'cod_fiscal')
|
|
pnIdPart = cParteneri.id_part
|
|
ENDIF
|
|
OTHERWISE
|
|
IF SEEK(m.pcDenumire, 'cParteneri', 'denumire')
|
|
pnIdPart = cParteneri.id_part
|
|
ENDIF
|
|
ENDCASE
|
|
If !Empty(Nvl(m.pnIdPart, 0))
|
|
Replace id_part With m.pnIdPart In cClientiFurnizori
|
|
*!* lcMesaj = 'Client existent ' + Alltrim(cParteneri.denumire) + ' CUI: ' + Alltrim(cParteneri.cod_fiscal) + ' ID: ' + Alltrim(Transform(cParteneri.id_part))
|
|
*!* Thisform.trace(m.lcMesaj)
|
|
Else
|
|
* Adaugare clienti
|
|
Select cClientiFurnizori
|
|
lcDenumire = Nvl(Strtran(Alltrim(Upper(denumire)), ['], ['']), "")
|
|
lcNume = Nvl(Strtran(Alltrim(Upper(denumire)), ['], ['']), "")
|
|
lcPrenume = ''
|
|
lcCod_fiscal = Upper(Alltrim(cod_fiscal))
|
|
lcReg_comert = Nvl(Alltrim(Upper(reg_com)), "")
|
|
***************************
|
|
lcCod=Alltrim(Upper(Nvl(m.lcCod_fiscal,"")))
|
|
lcTip_persoana = "2" && 1 = juridica, 2 = fizica
|
|
* GetCodFiscalValid decide tipul de persoana din denumire, nr. registrul comertului si
|
|
* forma codului, apoi curata DOAR CNP-urile invalide ale persoanelor fizice.
|
|
* Codul unei persoane juridice nu se sterge niciodata: daca e gresit, vrem sa fim
|
|
* atentionati la validarea declaratiei si sa il corectam in Fidelio, nu sa il ascundem.
|
|
If !Empty(m.lcCod)
|
|
lnTip_persoana = 0
|
|
lcCodTara = Alltrim(Upper(Nvl(cod_tara, "")))
|
|
lcCod_fiscal = GetCodFiscalValid(m.lcCod, @lnTip_persoana, m.lcDenumire, m.lcReg_comert, m.lcCodTara)
|
|
lcTip_persoana = Iif(m.lnTip_persoana = 1, "1", "2")
|
|
|
|
Do Case
|
|
Case m.lcTip_persoana = "2" And Empty(m.lcCod_fiscal)
|
|
* persoana fizica cu CNP invalid: se salveaza fara CNP (permis la D394/D406)
|
|
Thisform.trace('CNP invalid, partenerul se salveaza fara CNP: [' + m.lcCod + '] ' + Alltrim(m.lcDenumire))
|
|
Case m.lcTip_persoana = "1" And !VerifCF(m.lcCod_fiscal)
|
|
* persoana juridica cu cod fiscal care nu trece validarea romaneasca: poate fi
|
|
* partener strain (cod valid la el in tara) sau o eroare de operare. Codul ramane,
|
|
* dar il semnalam in log ca sa poata fi verificat.
|
|
Thisform.trace('ATENTIE: persoana juridica cu cod fiscal nevalidat: [' + m.lcCod_fiscal + '] ' + Alltrim(m.lcDenumire))
|
|
Endcase
|
|
ENDIF
|
|
IF m.lcTip_Persoana = "2"
|
|
lnPos = At(' ', m.lcNume)
|
|
IF m.lnPos > 0
|
|
lcPrenume = Alltrim(Substr(m.lcNume, m.lnPos))
|
|
lcNume = Alltrim(Left(m.lcNume, m.lnPos))
|
|
ENDIF
|
|
ENDIF
|
|
***************************
|
|
|
|
lcId_loc_inreg = 'NULL'
|
|
lcId_categ_ent = 'NULL'
|
|
lcPrefix = ""
|
|
lcSufix = ""
|
|
|
|
lcBanca = Upper(Alltrim(Nvl(banca,'')))
|
|
lcCont_Banca = Upper(Alltrim(Nvl(cont_banca,'')))
|
|
lcinactiv = "0"
|
|
lcMotiv_inactiv = ""
|
|
lcIdString = "16;17"
|
|
lcCorespDel = ""
|
|
lcId_util = "-3"
|
|
lcSqlInsert = [begin pack_def.adauga_partener('] + lcDenumire + [','] + lcNume + [','] + lcPrenume + [','] + lcCod_fiscal + [','] + ;
|
|
lcReg_comert + [',] + lcId_loc_inreg + [,] + lcId_categ_ent + [,'] + lcPrefix + [','] + lcSufix + [',] + ;
|
|
lcTip_persoana + [,'] + lcBanca + [','] + lcCont_Banca + [',] + lcinactiv + [,'] + lcMotiv_inactiv + [',] + ;
|
|
lcId_util + [,'] + lcIdString + [','] + lcCorespDel + [',?@pnIdPart); end;]
|
|
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlInsert))
|
|
If !Empty(Nvl(m.pnIdPart, 0))
|
|
Replace id_part With m.pnIdPart In cClientiFurnizori
|
|
Thisform.trace('Client nou ' + Alltrim(cClientiFurnizori.denumire) + ' CUI: ' + Alltrim(cClientiFurnizori.cod_fiscal) + ' ID: ' + Alltrim(Transform(cClientiFurnizori.id_part)))
|
|
INSERT INTO cParteneri (id_part, denumire, cod_fiscal) VALUES (m.pnIdPart, cClientiFurnizori.denumire, cClientiFurnizori.cod_fiscal)
|
|
Else
|
|
lcMesaj = 'Eroare la adaugarea in clienti ROA ' + Alltrim(cParteneri.denumire) + ' CUI: ' + Alltrim(cParteneri.cod_fiscal) + Chr(13) + Chr(10) + goExecutor.oPrelucrareEroare()
|
|
|
|
Thisform.trace(m.lcMesaj)
|
|
aMessagebox(m.lcMesaj)
|
|
SET STEP ON
|
|
Exit
|
|
Endif && !Empty(Nvl(m.pnIdPart,0))
|
|
Endif && !Empty(Nvl(m.pnIdPart,0))
|
|
|
|
|
|
***********************************
|
|
* Adresa partener
|
|
***********************************
|
|
If !Empty(m.lcAdresa)
|
|
* JUD:Mun. Bucuresti;BUCURESTI;Str.SOS BUCURESTI-URZICENI;159A
|
|
Calculate Cnt(id_adresa) For id_part = m.pnIdPart To pnNrAdrese In cAdrese
|
|
|
|
lcIdPart = Alltrim(Str(m.pnIdPart))
|
|
lcDenumire_adresa = ""
|
|
lcDA_apare = "0"
|
|
lcStrada = ""
|
|
lcNumar = ""
|
|
|
|
lcBloc = ""
|
|
lcScara = ""
|
|
lcApart = ""
|
|
lcEtaj = ""
|
|
lcId_loc = "NULL"
|
|
lcLocalitate = ""
|
|
lcId_Judet = "NULL"
|
|
lcJudet = ""
|
|
lcCodpostal = "NULL"
|
|
lcId_tara = "NULL"
|
|
lcTelefon1 = ""
|
|
lcTelefon2 = ""
|
|
lcFax = ""
|
|
lcEmail = ""
|
|
lcWeb = ""
|
|
lcPrincipala = Iif(m.pnNrAdrese = 0, "1", "0")
|
|
lcinactiv = "0"
|
|
lcId_util = "-3"
|
|
|
|
lcItem1 = Alltrim(Getwordnum(m.lcAdresa, 1, ';'))
|
|
lcItem2 = Alltrim(Getwordnum(m.lcAdresa, 2, ';'))
|
|
lcItem3 = Alltrim(Getwordnum(m.lcAdresa, 3, ';'))
|
|
lcItem4 = Alltrim(Getwordnum(m.lcAdresa, 4, ';'))
|
|
IF LEFT(m.lcItem1, 4) = 'JUD:'
|
|
lcJudet = Alltrim(SUBSTR(m.lcItem1, 5))
|
|
ENDIF
|
|
IF 'BUCURESTI'$m.lcJudet
|
|
lcJudet = 'BUCURESTI'
|
|
ENDIF
|
|
IF !EMPTY(m.lcItem2)
|
|
lcLocalitate = ALLTRIM(m.lcItem2)
|
|
ELSE
|
|
IF !EMPTY(m.lcItem1) AND LEFT(m.lcItem1, 4) <> 'JUD:'
|
|
lcLocalitate = m.lcItem2
|
|
ENDIF
|
|
ENDIF
|
|
IF LOWER(LEFT(m.lcItem3,4)) = 'str.'
|
|
lcStrada = ALLTRIM(SUBSTR(m.lcItem3, 5))
|
|
ELSE
|
|
lcStrada = ALLTRIM(m.lcItem3)
|
|
ENDIF
|
|
IF !EMPTY(m.lcItem4)
|
|
lcNumar = ALLTRIM(Left(m.lcItem4, 10))
|
|
ENDIF
|
|
|
|
lnIdJudetBucuresti = 10
|
|
lcJudetBucuresti = "BUCURESTI"
|
|
lnIdLocalitateBucuresti = 1759
|
|
lnIdTaraRO = 1
|
|
|
|
If m.lcLocalitate = 'BUCURESTI'
|
|
m.lcLocalitate = 'BUCURESTI SECTORUL 1'
|
|
Endif
|
|
If Empty(m.lcLocalitate)
|
|
lcLocalitate = 'BUCURESTI SECTORUL 1'
|
|
Endif
|
|
If Empty(m.lcJudet)
|
|
lcJudet = m.lcJudetBucuresti
|
|
Endif
|
|
|
|
* caut adresa dupa localitate. daca nu o gasesc, o adaug
|
|
Select cAdrese
|
|
IF !SEEK(PADL(m.pnIdPart,10, '0') + PADR(m.lcLocalitate, 100, ' '), 'cAdrese', 'adresa')
|
|
|
|
lnIdJudet = m.lnIdJudetBucuresti
|
|
SELECT cJudete
|
|
IF SEEK(m.lcJudet, 'cJudete', 'id_judet')
|
|
lnIdJudet = cJudete.id_judet
|
|
Endif
|
|
|
|
SELECT * FROM cLocalitati WHERE id_judet = m.lnIdJudet AND localitate = m.lcLocalitate order by localitate INTO CURSOR cLocalitateTemp
|
|
If Reccount('cLocalitateTemp') > 0
|
|
Select cLocalitateTemp
|
|
Go Top
|
|
lcId_loc = Alltrim(Str(id_loc))
|
|
lcId_Judet = Alltrim(Str(id_judet))
|
|
lcId_tara = Alltrim(Str(id_tara))
|
|
Use In (Select('cLocalitateTemp'))
|
|
Else
|
|
Use In (Select('cLocalitateTemp'))
|
|
SELECT * FROM cLocalitati WHERE id_judet = m.lnIdJudet order by localitate INTO CURSOR cLocalitateTemp
|
|
Select cLocalitateTemp
|
|
Go Top
|
|
lcId_loc = Alltrim(Str(id_loc))
|
|
lcId_Judet = Alltrim(Str(id_judet))
|
|
lcId_tara = Alltrim(Str(id_tara))
|
|
Use In (Select('cLocalitateTemp'))
|
|
Endif
|
|
|
|
If Empty(Nvl(m.lcId_loc, ''))
|
|
lcId_loc = Alltrim(Str(m.lnIdLocalitateBucuresti))
|
|
lcId_Judet = Alltrim(Str(m.lnIdJudetBucuresti))
|
|
lcId_tara = Alltrim(Str(m.lnIdTaraRO))
|
|
Endif && lnSucces
|
|
|
|
If m.lcId_loc <> 'NULL'
|
|
pnIdAdresa = 0
|
|
If Empty(Nvl(m.pnIdAdresa,0))
|
|
lcSql = [begin pack_def.adauga_adresa_partener2(] + lcIdPart + [,'] + lcDenumire_adresa + [',] + lcDA_apare + [,] + ;
|
|
['] + lcStrada + [','] + lcNumar + [','] + ;
|
|
lcBloc + [','] + lcScara + [','] + lcApart + [','] + lcEtaj + [',] + lcId_loc + [,'] + lcLocalitate + [',] + lcId_Judet + [,] + lcCodpostal + [,] + lcId_tara + [,'] + ;
|
|
lcTelefon1 + [','] + lcTelefon2 + [','] + lcFax + [','] + lcEmail + [','] + lcWeb + [',] + ;
|
|
lcPrincipala + [,] + lcinactiv + [,] + lcId_util + [,?@pnIdAdresa); end;]
|
|
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSql))
|
|
If m.lnSucces < 0
|
|
lcMesaj = goExecutor.cEroare
|
|
Thisform.trace(m.lcMesaj)
|
|
* AMessagebox(m.lcMesaj, 0 + 48, _Screen.Caption )
|
|
* Exit
|
|
Endif
|
|
Endif && empty(m.pnIdAdresa)
|
|
|
|
Endif && m.lcId_loc <> 'NULL'
|
|
Endif && !found()
|
|
|
|
Endif && !empty(m.lcAdresa)
|
|
|
|
INSERT INTO coresp_parteneri (cod, id_part, cod_fiscal, denumire) VALUES (m.lcCod, m.pnIdPart, m.pcCodFiscal, m.pcDenumire)
|
|
Endscan && cClientiFurnizori
|
|
|
|
This.DisconnectRoa()
|
|
|
|
lcCaleImport = Addbs(Alltrim(goApp.oSettings.cale_import))
|
|
lcFile = m.lcCaleImport + 'coresp_parteneri.csv'
|
|
|
|
SELECT coresp_parteneri
|
|
COPY to (m.lcFile) TYPE CSV
|
|
|
|
Return m.lnSucces
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE connectmentor
|
|
Local lnHandle
|
|
lnHandle = SQLSTRINGCONNECT(goapp.osettings.connectionstring_mentor)
|
|
This.nHandleMentor = m.lnHandle
|
|
|
|
Return m.lnHandle
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE connectroa
|
|
Local lnSucces
|
|
lnSucces = goConn.Connect()
|
|
|
|
Return lnSucces
|
|
ENDPROC
|
|
|
|
PROCEDURE creeazanote
|
|
* 11.08.2025
|
|
* TVA 21%, 11%
|
|
* 5125=418 MONETAR RESTAURANT DOCUMENT PERECHE LA 418 DIN NOTA 418 = 707 VENITURI RESTAURANT
|
|
|
|
*!* 16.10.2025
|
|
* VANZARI - nu iau in considerare TipPlata = "MD BUFET"
|
|
|
|
* Creeaza actactan cu note contabile vanzari
|
|
Local lnIdPartCasa, lnIdPartCard, lnSucces, lnIdSet, lnVerificaFacturi
|
|
Local lcAcontTVAAchizitie, lcAcontTVAVanzare, lcContTVAAchizitie, lcContTVAVanzare, lcDirImport
|
|
Local lcDirOutput, lcExplicatia5, lcFileOutput, ldDataImport, llFacturaDuplicat, llImport, lnAn
|
|
Local lnIdBazaAch0, lnIdBazaAch19, lnIdBazaAch20, lnIdBazaAch24, lnIdBazaAch5, lnIdBazaAch9
|
|
Local lnIdFdoc, lnIdFdocBonConsum, lnIdFdocBonFiscal, lnIdFdocFactura, lnIdFdocMonetar, lnIdTVAAch19
|
|
Local lnIdTVAAch20, lnIdTVAAch24, lnIdTVAAch5, lnIdTVAAch9, lnLuna, lnTVAIncasare, loRec, lcAcontMf4428
|
|
Local lcAContCardRestaurant, lcAContCasaRestaurant, lcAContFacturaCardHotel, lcAContFacturaCasaHotel
|
|
Local lcAContFacturaTicheteHotel, lcAContFacturaViramentIntHotel, lcAContTicheteRestaurant
|
|
Local lcAcont401, lcAcontCardHotel, lcAcontCasaHotel, lcAcontClientiHotel, lcAcontClientiRestaurant
|
|
Local lcAcontMarfaBar, lcAcontMarfaBucatarie, lcAcontTicheteHotel, lcAcontVenituriBar
|
|
Local lcAcontVenituriBucatarie, lcAcontVenituriVanzariTVAS, lcAcontVenituriVanzariTVAR
|
|
Local lcAcontViramentHotel, lcAcontViramentIntHotel, lcCodFiscal, lcContCardHotel
|
|
Local lcContCardRestaurant, lcContCasaHotel, lcContCasaRestaurant, lcContClientiHotel
|
|
Local lcContClientiRestaurant, lcContFacturaCardHotel, lcContFacturaCasaHotel
|
|
Local lcContFacturaTicheteHotel, lcContFacturaViramentIntHotel, lcContTicheteHotel
|
|
Local lcContTicheteRestaurant, lcContViramentHotel, lcContViramentIntHotel, lcDenumire, llHotel
|
|
Local llIesiriRestaurant, llIntrariRestaurant, llVanzariRestaurant, lnCodSectieBarFlora
|
|
Local lnCodSectieBarRestaurant, lnCodSectieBucatarieFlora, lnCodSectieBucatarieRestaurant
|
|
Local lnCodSectieVanzariBar, lnCodSectieVanzariBucatarie, lnIdPart, lnIdPartCardHotel
|
|
Local lnIdPartCardRestaurant, lnIdPartCasaHotel, lnIdPartCasaRestaurant, lnIdPartClientiHotel
|
|
Local lnIdPartClientiRestaurant, lnIdPartTicheteHotel, lnIdPartTicheteRestaurant
|
|
Local lnIdPartViramentHotel, lnIdPartViramentIntHotel
|
|
Local ldDataAct, lnIdJtva, lnTaxCode
|
|
LOCAL llTest, llTVA21
|
|
|
|
llTest = (This.chkTest.Value = 1)
|
|
|
|
SET STEP ON
|
|
Thisform.Trace('Generare note contabile')
|
|
|
|
lnIdSet = 50100
|
|
lnIdFdocFactura = 42
|
|
lnIdFdocBonConsum = 15
|
|
lnIdFdocBonFiscal = 17
|
|
lnIdFdocMonetar = 48
|
|
|
|
lnAn = Year(This.txtData1.Value)
|
|
lnLuna = Month(This.txtData1.Value)
|
|
llTVA21 = (m.lnAn*12+m.lnLuna >= 2025*12+8)
|
|
IF m.llTVA21
|
|
lnTVAS = 21 && cota standard
|
|
lnTVAR = 11 && cota redusa
|
|
ELSE
|
|
lnTVAS = 19
|
|
lnTVAR = 9
|
|
ENDIF
|
|
lnSucces = CT_SUCCES
|
|
|
|
lnTVAIncasare = This.chkTVAIncasare.Value
|
|
lnVerificaFacturi = This.chkFacturi.Value
|
|
|
|
llIntrariRestaurant = (this.chkIntrariRestaurant.Value = 1)
|
|
llIesiriRestaurant = (this.chkIesiriRestaurant.Value = 1)
|
|
llVanzariRestaurant = (this.chkVanzariRestaurant.Value = 1)
|
|
llHotel = (this.chkHotel.Value = 1)
|
|
|
|
ldDataImport = This.txtData1.Value
|
|
lnLuna = Month(m.ldDataImport)
|
|
lnAn = Year(m.ldDataImport)
|
|
lcDirImport = Addbs(Alltrim(goApp.oSettings.cale_import)) + Alltrim(Str(m.lnAn)) + '\' + Padl(m.lnLuna, 2, '0') + '\'
|
|
IF !DIRECTORY(m.lcDirImport)
|
|
MD (m.lcDirImport)
|
|
ENDIF
|
|
|
|
lcAcont401 = '01'
|
|
|
|
lcAcontMf4428 = goApp.oSettings.cAcontMf4428 && 'M'
|
|
|
|
|
|
lcAcontMarfaBar = goApp.oSettings.cAcontMarfaBar && 371.01
|
|
lcAcontMarfaBucatarie = goApp.oSettings.cAcontMarfaBucatarie && 371.08
|
|
|
|
lcAcontVenituriVanzariTVAS = IIF(m.llTVA21, '0301', '0101') && Venituri Bucatarie Casa Flora 19% / 21%
|
|
lcAcontVenituriVanzariTVAR = IIF(m.llTVA21, '0302', '0201') && Venituri bucatarie restaurant 9% / 11%
|
|
lcAcontVenituriBar = goApp.oSettings.cAcontVenituriBar && 707.0202 Venituri Bucatarie Restaurant 9%
|
|
lcAcontVenituriBucatarie = goApp.oSettings.cAcontVenituriBucatarie && 707.0201 Venituri Bucatarie Casa Flora 19%
|
|
|
|
lnCodSectieVanzariBucatarie = 1 && nu stiu ce sectie este sectia 1 care apare in vanzari - probabil bucatarie casa flora
|
|
lnCodSectieVanzariBar = 2
|
|
lnCodSectieBarFlora = 3
|
|
lnCodSectieBucatarieFlora = 4
|
|
lnCodSectieBarRestaurant = 1
|
|
lnCodSectieBucatarieRestaurant = 2
|
|
|
|
lcContCasaRestaurant = goApp.oSettings.cContCasaRestaurant && 5311
|
|
lcContCardRestaurant = goApp.oSettings.cContCardRestaurant && 5125
|
|
lcContTicheteRestaurant = goApp.oSettings.cContTicheteRestaurant && 472
|
|
|
|
lcAContCasaRestaurant = goApp.oSettings.cAcontCasaRestaurant && 5311.
|
|
lcAContCardRestaurant = goApp.oSettings.cAcontCardRestaurant && 5125.01
|
|
lcAContTicheteRestaurant = goApp.oSettings.cAcontTicheteRestaurant && 472.03
|
|
|
|
lcContCasaHotel = goApp.oSettings.cContCasaHotel
|
|
lcAcontCasaHotel = goApp.oSettings.cAcontCasaHotel
|
|
lcContCardHotel = goApp.oSettings.cContCardHotel
|
|
lcAcontCardHotel = goApp.oSettings.cAcontCardHotel
|
|
|
|
lcContTicheteHotel = goApp.oSettings.cContTicheteHotel
|
|
lcAcontTicheteHotel = goApp.oSettings.cAcontTicheteHotel
|
|
lcContViramentHotel = goApp.oSettings.cContViramentHotel
|
|
lcAcontViramentHotel = goApp.oSettings.cAcontViramentHotel
|
|
lcContViramentIntHotel = goApp.oSettings.cContViramentIntHotel
|
|
lcAcontViramentIntHotel = goApp.oSettings.cAcontViramentIntHotel
|
|
|
|
lnIdPartCasaRestaurant = goApp.oSettings.nIdPartCasaRestaurant && Id Partener Casa Lei 5311
|
|
lnIdPartCardRestaurant = goApp.oSettings.nIdPartCardRestaurant && Id Partener CARD 5125
|
|
lnIdPartTicheteRestaurant = goApp.oSettings.nIdPartTicheteRestaurant && Id Partener Tichete 472
|
|
|
|
lnIdPartCasaHotel = goApp.oSettings.nIdPartCasaHotel && Id Partener Casa Lei 5311
|
|
lnIdPartCardHotel = goApp.oSettings.nIdPartCardHotel && Id Partener CARD 5125
|
|
lnIdPartTicheteHotel = goApp.oSettings.nIdPartTicheteHotel && Id Partener CARD 5125
|
|
lnIdPartViramentHotel = goApp.oSettings.nIdPartViramentHotel && Id Partener 5121
|
|
lnIdPartViramentIntHotel = goApp.oSettings.nIdPartViramentIntHotel && Id Partener 581
|
|
|
|
lnIdPartClientiRestaurant = goApp.oSettings.nIdPartClientiRestaurant && Id Partener 418
|
|
lnIdPartClientiHotel = goApp.oSettings.nIdPartClientiHotel && Id Partener 418
|
|
|
|
lcContClientiRestaurant = goApp.oSettings.cContClientiRestaurant && 418
|
|
lcAcontClientiRestaurant = goApp.oSettings.cAcontClientiRestaurant && 02
|
|
lcContClientiHotel = goApp.oSettings.cContClientiHotel && 418
|
|
lcAcontClientiHotel = goApp.oSettings.cAcontClientiHotel && 01
|
|
|
|
lcContFacturaCasaHotel = goApp.oSettings.cContFacturaCasaHotel && 4111
|
|
lcContFacturaCardHotel = goApp.oSettings.cContFacturaCardHotel && 4111
|
|
lcContFacturaTicheteHotel = goApp.oSettings.cContFacturaTicheteHotel && 4111
|
|
lcContFacturaViramentIntHotel = goApp.oSettings.cContFacturaViramentIntHotel && 4111
|
|
lcAContFacturaCasaHotel = goApp.oSettings.cAContFacturaCasaHotel && 01
|
|
lcAContFacturaCardHotel = goApp.oSettings.cAContFacturaCardHotel && 02
|
|
lcAContFacturaTicheteHotel = goApp.oSettings.cAContFacturaTicheteHotel && '0B'
|
|
lcAContFacturaViramentIntHotel = goApp.oSettings.cAContFacturaViramentIntHotel && '01'
|
|
|
|
If m.lnTVAIncasare = 1
|
|
lcContTVAAchizitie = '4428'
|
|
lcContTVAVanzare = '4428'
|
|
lcAcontTVAAchizitie = goApp.oSettings.cAcontAch4428 && 'TP'
|
|
lcAcontTVAVanzare = goApp.oSettings.cAcontVz4428 && 'TI'
|
|
|
|
lnIdBazaAch21 = 210
|
|
lnIdTVAAch21 = 211
|
|
lnIdBazaAch11 = 214
|
|
lnIdTVAAch11 = 215
|
|
|
|
lnIdBazaAch19 = 188
|
|
lnIdTVAAch19 = 189
|
|
lnIdBazaAch9 = 172
|
|
lnIdTVAAch9 = 173
|
|
lnIdBazaAch5 = 174
|
|
lnIdTVAAch5 = 175
|
|
lnIdBazaAch0 = 113
|
|
Else
|
|
lcContTVAAchizitie = '4426'
|
|
lcContTVAVanzare = '4427'
|
|
lcAcontTVAAchizitie = goApp.oSettings.cAcontAch4426 && ''
|
|
lcAcontTVAVanzare = goApp.oSettings.cAcontVz4427 && ''
|
|
|
|
lnIdBazaAch21 = 208
|
|
lnIdTVAAch21 = 209
|
|
lnIdBazaAch11 = 212
|
|
lnIdTVAAch11 = 213
|
|
|
|
lnIdBazaAch19 = 103
|
|
lnIdTVAAch19 = 104
|
|
lnIdBazaAch9 = 109
|
|
lnIdTVAAch9 = 110
|
|
lnIdBazaAch5 = 154
|
|
lnIdTVAAch5 = 155
|
|
lnIdBazaAch0 = 113
|
|
ENDIF
|
|
|
|
lnIdBazaAchS = IIF(m.llTVA21, m.lnIdBazaAch21, m.lnIdBazaAch19)
|
|
lnIdTVAAchS = IIF(m.llTVA21, m.lnIdTVAAch21, m.lnIdTVAAch19)
|
|
|
|
*!* If Empty(m.lnIdPartCasa)
|
|
*!* lnSucces = CT_INSUCCES
|
|
*!* Thisform.trace('Nu este completat Id Partener Casa Lei. Verificati setarea: id_part_casa!')
|
|
*!* Endif
|
|
|
|
Create Cursor actactan (cod I, id_set N(5), id_fdoc N(5), an N(4), luna N(2), explicatia C(100) Null, dataact D, dataireg D, nract N(14), serie_act C(10), nnir N(14), scd C(4), ascd V(4), scc C(4), ascc V(4), id_partd N(10), partd C(200), id_partc N(10), partc C(200), proc_tva N(5,2), id_jtva_coloana N(4) Null, explicatia4 C(100), explicatia5 C(100), suma N(16,2), taxcode N(6) null, paymentcode C(9) null, id_factc I, perechec I, id_factD I, pereched I, id_fact I)
|
|
|
|
* INTRARI - NIR
|
|
* llImport = (Messagebox('Se importa facturile?',4+32,_Screen.Caption) = 6)
|
|
llImport = .T.
|
|
|
|
If m.llImport
|
|
|
|
Select '371' Cont, IIF(INLIST(codsectiedeintrare, m.lnCodSectieBarFlora, m.lnCodSectieBarRestaurant), m.lcAcontMarfaBar, IIF(INLIST(codsectiedeintrare, m.lnCodSectieBucatarieFlora, m.lnCodSectieBucatarieRestaurant), m.lcAcontMarfaBucatarie, '')) AS acont, ;
|
|
CAST(IIF(EMPTY(i.cotatva), 0, i.cotatva) as N(2)) As proctva, CAST(Nvl(p.id_part, 0) as I) As id_part, ;
|
|
STRTRAN(idinregistrare,'-','0') as nir, ;
|
|
TTOD(CTOT(i.DataDocument)) As dataact, CAST(LEFT(ALLTRIM(i.nrdocument),14) as N(14)) As nract, UPPER(ALLTRIM(STR(codsectiedeintrare))) as codsectie, UPPER(denumiresectiedeintrare) as sectie, ;
|
|
Sum(i.valoareajustatafaratva) As VALACH, Sum(i.tvavaloareajustata) As VALTVAA ;
|
|
FROM cIntrariRestaurant i ;
|
|
LEFT Join cClientiFurnizori p On p.cod_fiscal = i.codfiscal ;
|
|
Group By 1,2,3,4,5,6,7,8,9 ;
|
|
INTO Cursor cIntrari
|
|
|
|
* COD SECTIE 3 = BAR CASA FLORA, 4 = BUCATARIE CASA FLORA
|
|
* Atentie! Nu exista PROCENT TVA si VALOARE TVA!
|
|
* Nu exista valoare achizitie. O consider egala cu valoarea de vanzare fara tva
|
|
* allowance_cod = 7 : protocol = 623
|
|
Select '371' As Cont, ;
|
|
IIF(INLIST(codsectieiesire, m.lnCodSectieBarFlora, m.lnCodSectieBarRestaurant), m.lcAcontMarfaBar, IIF(INLIST(codsectieiesire, m.lnCodSectieBucatarieFlora, m.lnCodSectieBucatarieRestaurant), m.lcAcontMarfaBucatarie, '')) AS acont, ;
|
|
TTOD(CTOT(i.DataDocument)) As dataact, ;
|
|
CAST(VAL(DTOS(TTOD(CTOT(i.datadocument)))) as I) As nract, ;
|
|
DTOS(TTOD(CTOT(i.datadocument))) as nir, ;
|
|
UPPER(ALLTRIM(STR(codsectieintrare))) as codsectie1, ;
|
|
UPPER(denumiresectieintrare) as sectie1, ;
|
|
UPPER(ALLTRIM(STR(codsectieiesire))) as codsectie2, ;
|
|
UPPER(denumiresectieiesire) as sectie2, ;
|
|
CAST(VAL(Allowance_cod) as I) as ntip, ;
|
|
CAST(UPPER(ALLTRIM(ALLTRIM(tipiesire) + ' ' + ALLTRIM(allowance_den))) as C(100)) as ctip, ;
|
|
CAST(IIF(VAL(Allowance_cod) = 7, '623', '607') as C(4)) as contchelt,;
|
|
0 as proctva, ;
|
|
0 as valadaos, ;
|
|
0 as valtvav, ;
|
|
SUM(valoare) As valach, ;
|
|
SUM(valoare) As valftvav ;
|
|
FROM cIesiriRestaurant i ;
|
|
Group By 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ;
|
|
INTO Cursor cIesiri
|
|
|
|
|
|
* Nu iau in considerare inregistrarile cu TipPlata = "MD BUFET"
|
|
* Se pare ca este o plata virtuala pentru descarcare de marfa mic dejun
|
|
* Descarcarea de marfa apare in Iesiri
|
|
Select m.lcContClientiRestaurant As Cont, ;
|
|
m.lcAcontClientiRestaurant as acont, ;
|
|
'tichet'$LOWER(tipplata) as tichet, ;
|
|
CAST(IIF('numerar'$LOWER(tipplata), m.lcContCasaRestaurant, IIF('credit'$LOWER(tipplata), m.lcContCardRestaurant, m.lcContTicheteRestaurant)) AS c(4)) as contplata, ;
|
|
CAST(IIF('numerar'$LOWER(tipplata), m.lcAContCasaRestaurant, IIF('credit'$LOWER(tipplata), m.lcAContCardRestaurant, m.lcAcontTicheteRestaurant)) AS c(4)) as acontplata, ;
|
|
CAST(IIF('numerar'$LOWER(tipplata), m.lnIdPartCasaRestaurant, IIF('credit'$LOWER(tipplata), m.lnIdPartCardRestaurant, m.lnIdPartTicheteRestaurant)) AS I) as id_part_plata, ;
|
|
procentTVA As proctva, SPACE(4) as aconttva, SPACE(4) as acontTVANeex, SPACE(4) as acontVenituri, ;
|
|
m.lnIdPartClientiRestaurant As id_part, ;
|
|
TTOD(CTOT(i.DataDocument)) As dataact, ;
|
|
CAST(i.nrdocument as I) As nract, ;
|
|
idinregistrare as nir, ;
|
|
codsectievanzare, ;
|
|
UPPER(denumiresectievanzare) as sectie, ;
|
|
SUM(valoarefaratva) As VALFTVAV, ;
|
|
SUM(valoarefaratva+tva) As VALCTVAV, ;
|
|
Sum(tva) As VALTVAV, ;
|
|
Sum(valoarefaratva-valoareachizitie) As VALADAOS, ;
|
|
Sum(valoareachizitie) As VALACH ;
|
|
FROM cVanzariRestaurant i ;
|
|
WHERE ATC('bufet', tipplata) = 0 ;
|
|
Group By 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ;
|
|
INTO Cursor cVanzari READWRITE
|
|
|
|
UPDATE cVanzari SET aconttva = IIF(proctva = 21, '0301', IIF(proctva = 11, '0302', IIF(proctva = 19, '0101', IIF(proctva = 9, '0201', IIF(proctva = 5, '0201', IIF(proctva = 0, SPACE(4), SPACE(4)))))))
|
|
UPDATE cVanzari SET aconttvaNeex = IIF(proctva = 21, '05 ', IIF(proctva = 11, '06 ', IIF(proctva = 19, '03 ', IIF(proctva = 9, '04 ', IIF(proctva = 5, '04 ', IIF(proctva = 0, SPACE(4), SPACE(4)))))))
|
|
|
|
* este doar codsectievanzare = 1, fara numele sectiei. Nu se potriveste cu codurile de sectie 3 si 4 din intrari, iesiri
|
|
UPDATE cVanzari SET acontVenituri = m.lcAcontVenituriVanzariTVAS WHERE codsectievanzare = m.lnCodSectieVanzariBucatarie AND proctva = m.lnTVAS AND EMPTY(NVL(acontvenituri, ''))
|
|
UPDATE cVanzari SET acontVenituri = m.lcAcontVenituriVanzariTVAR WHERE codsectievanzare = m.lnCodSectieVanzariBucatarie AND proctva = m.lnTVAR AND EMPTY(NVL(acontvenituri, ''))
|
|
|
|
UPDATE cVanzari SET acontVenituri = m.lcAcontVenituriVanzariTVAS WHERE proctva = m.lnTVAS AND EMPTY(NVL(acontvenituri, '')) && sectia cod 9, nu stiu ce reprezinta
|
|
UPDATE cVanzari SET acontVenituri = m.lcAcontVenituriVanzariTVAR WHERE proctva = m.lnTVAR AND EMPTY(NVL(acontvenituri, ''))
|
|
|
|
*!* UPDATE cVanzari SET acontVenituri = m.lcAcontVenituriBar WHERE codsectievanzare = m.lnCodSectieBar AND EMPTY(NVL(acontvenituri, ''))
|
|
*!* UPDATE cVanzari SET acontVenituri = m.lcAcontVenituriBucatarie WHERE codsectievanzare = m.lnCodSectieBucatarie AND EMPTY(NVL(acontvenituri, ''))
|
|
|
|
|
|
Zap In actactan
|
|
|
|
lcExplicatia5 = 'FACTURA ACHIZITIE'
|
|
This.trace(m.lcExplicatia5)
|
|
|
|
IF m.llIntrariRestaurant
|
|
* ACHIZITIE RESTAURANT valoare achizitie fara TVA 6028/301/371 = 401
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocFactura As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
cont As scd, acont As ascd, '401' As scc, m.lcAcont401 As ascc, 0 As id_partd, id_part As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, m.lnIdBazaAch21, ;
|
|
Iif(proctva = 11, m.lnIdBazaAch11, ;
|
|
Iif(proctva = 19, m.lnIdBazaAch19, ;
|
|
Iif(proctva = 9, m.lnIdBazaAch9, ;
|
|
Iif(proctva = 5, m.lnIdBazaAch5, ;
|
|
Iif(proctva = 0, m.lnIdBazaAch0, ;
|
|
m.lnIdBazaAchS)))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(VALACH,2)) As suma ;
|
|
FROM cIntrari ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
|
|
|
|
* ACHIZITIE RESTAURANT valoare tva achizitie 4428 = 401 (firma este cu tva la incasare)
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocFactura As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
m.lcContTVAAchizitie As scd, ;
|
|
CAST(Iif(proctva = 19, '0101', ;
|
|
Iif(proctva = 9, '0201', ;
|
|
Iif(proctva = 21, '0301', ;
|
|
Iif(proctva = 11, '0302', ;
|
|
'')))) AS C(4)) As ascd, ;
|
|
'401' As scc, m.lcAcont401 As ascc, 0 As id_partd, id_part As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, m.lnIdTVAAch21, ;
|
|
Iif(proctva = 11, m.lnIdTVAAch11, ;
|
|
Iif(proctva = 19, m.lnIdTVAAch19, ;
|
|
Iif(proctva = 9, m.lnIdTVAAch9, ;
|
|
Iif(proctva = 5, m.lnIdTVAAch5, ;
|
|
m.lnIdTVAAchS))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(VALTVAA,2)) As suma ;
|
|
FROM cIntrari ;
|
|
WHERE !Empty(Nvl(VALTVAA,0)) ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
|
|
ENDIF && IF m.llIntrariRestaurant
|
|
|
|
IF m.llIesiriRestaurant
|
|
* Descarcare gestiune restaurant
|
|
lcExplicatia5 = 'DESCARCARE RESTAURANT'
|
|
This.trace(m.lcExplicatia5)
|
|
* valoare achizitie 607 = 371
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocBonConsum As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
contchelt As scd, '' As ascd, cont As scc, acont As ascc, 0 As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, Cast(Null As N(4)) As id_jtva_coloana, ;
|
|
sectie2 As explicatia, cTip as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(Nvl(valach,0.00),2)) As suma ;
|
|
FROM cIesiri ;
|
|
WHERE valach <> 0 ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
|
|
|
* valoare adaos 371 = 378
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocBonConsum As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
cont As scd, acont As ascd, '378' As scc, '' As ascc, 0 As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, Cast(Null As N(4)) As id_jtva_coloana, ;
|
|
sectie2 As explicatia, cTip as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(Nvl(VALADAOS,0.00),2)) As suma ;
|
|
FROM cIesiri ;
|
|
WHERE valadaos <> 0 ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
|
|
|
* valoare adaos 378 = 371
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocBonConsum As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
'378' As scd, acont As ascd, cont As scc, acont As ascc, 0 As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, Cast(Null As N(4)) As id_jtva_coloana, ;
|
|
sectie2 As explicatia, cTip as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(Nvl(VALADAOS,0.00),2)) As suma ;
|
|
FROM cIesiri ;
|
|
WHERE valadaos <> 0 ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
|
|
|
* valoare tva vz neex 371 = 4428
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocBonConsum As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
cont As scd, acont As ascd, '4428' As scc, m.lcAcontMf4428 As ascc, 0 As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, Cast(Null As N(4)) As id_jtva_coloana, ;
|
|
sectie2 As explicatia, cTip as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(Nvl(VALTVAV, 0.00),2)) As suma ;
|
|
FROM cIesiri ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
|
|
|
* valoare tva vz neex 4428 = 371
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocBonConsum As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
'4428' As scd, m.lcAcontMf4428 As ascd, cont As scc, acont As ascc, 0 As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, Cast(Null As N(4)) As id_jtva_coloana, ;
|
|
sectie2 As explicatia, cTip as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(Nvl(VALTVAV, 0.00),2)) As suma ;
|
|
FROM cIesiri ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
|
|
ENDIF && llIesiriRestaurant
|
|
|
|
|
|
IF m.llVanzariRestaurant
|
|
* VENITURI RESTAURANT BAZA 418.02 = 707.0201/0202
|
|
* doar la incasare numerar si card
|
|
* incasarile prin tichete: 418 = 472 la importul din receptie Fidelio
|
|
lcExplicatia5 = 'VENITURI RESTAURANT'
|
|
This.trace(m.lcExplicatia5)
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, m.lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
cont As scd, acont As ascd, '707 ' As scc, acontvenituri As ascc, m.lnIdPartClientiRestaurant As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 37, ;
|
|
Iif(proctva = 11, 41, ;
|
|
Iif(proctva = 19, 31, ;
|
|
Iif(proctva = 9, 23, ;
|
|
Iif(proctva = 5, 25, ;
|
|
Iif(proctva = 0, 11, ;
|
|
37)))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
ROUND(valftvav,2) As suma ;
|
|
FROM cVanzari ;
|
|
WHERE valftvav <> 0 AND !tichet
|
|
|
|
|
|
* VENITURI RESTAURANT TVA 418.02 = 4428.03/04
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
cont As scd, acont As ascd, '4428' As scc, aconttvaNeex As ascc, m.lnIdPartClientiRestaurant As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 38, ;
|
|
Iif(proctva = 11, 42, ;
|
|
Iif(proctva = 19, 32, ;
|
|
Iif(proctva = 9, 24, ;
|
|
Iif(proctva = 5, 26, ;
|
|
38))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(valtvav,2)) As suma ;
|
|
FROM cVanzari ;
|
|
WHERE valtvav <> 0 AND !tichet ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
|
|
|
|
* IESIRI MONETARE RESTAURANT BAZA 5125/5311 = 418.02
|
|
lcExplicatia5 = 'MONETAR RESTAURANT'
|
|
This.trace(m.lcExplicatia5)
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma, id_factc, perechec) ;
|
|
SELECT lnIdSet As id_set, m.lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
contplata As scd, acontplata As ascd, cont As scc, acont As ascc, id_part_plata As id_partd, m.lnIdPartClientiRestaurant As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, CAST(Iif(proctva = 21, 35, Iif(proctva = 11, 39, Iif(proctva = 19, 1, Iif(proctva = 9, 3, Iif(proctva = 5, 13, 1))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
ROUND(valftvav,2) As suma, ;
|
|
-1 as id_factc, ;
|
|
INT(nract) as perechec ;
|
|
FROM cVanzari ;
|
|
WHERE valftvav <> 0 AND !tichet
|
|
|
|
* IESIRI MONETARE RESTAURANT BAZA 472.03 = 418.02, suma cu tot cu TVA
|
|
* incasare tichete, nota inversa 418 = 472 se face in Fidelio, la primirea tichetelor
|
|
This.trace(m.lcExplicatia5)
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, m.lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
contplata As scd, acontplata As ascd, cont As scc, acont As ascc, id_part_plata As id_partd, m.lnIdPartClientiRestaurant As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, CAST(Iif(proctva = 21, 35, Iif(proctva = 11, 39, Iif(proctva = 19, 1, Iif(proctva = 9, 3, Iif(proctva = 5, 13, 1))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(valftvav + valtvav,2)) As suma ;
|
|
FROM cVanzari ;
|
|
WHERE tichet ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
|
|
|
|
* IESIRI MONETARE RESTAURANT TVA 5125/5311 = 4427.0201
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
contplata As scd, acontplata As ascd, m.lcContTVAVanzare As scc, aconttva As ascc, id_part_plata As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 36, ;
|
|
Iif(proctva = 11, 40, ;
|
|
Iif(proctva = 19, 2, ;
|
|
Iif(proctva = 9, 4, ;
|
|
Iif(proctva = 5, 14, ;
|
|
36))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
SUM(ROUND(valtvav,2)) As suma ;
|
|
FROM cVanzari ;
|
|
WHERE !tichet ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
|
|
|
|
* IESIRI MONETARE RESTAURANT TVA 418.02 = 4428.03/04 - suma TVA (stornare venituri)
|
|
* stornez nota TVA 4428 provenita de la VENITURI, pentru ca inregistrez TVA 4427 la MONETARE
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, nnir, scd, ascd, scc, ascc, id_partd, id_partc, proc_tva, id_jtva_coloana, explicatia, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), INT(VAL(nir)), ;
|
|
cont As scd, acont As ascd, '4428' As scc, aconttvaNeex As ascc, m.lnIdPartClientiRestaurant As id_partd, 0 As id_partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 38, ;
|
|
Iif(proctva = 11, 42, ;
|
|
Iif(proctva = 19, 32, ;
|
|
Iif(proctva = 9, 24, ;
|
|
Iif(proctva = 5, 26, ;
|
|
32))))) AS N(4)) As id_jtva_coloana, ;
|
|
sectie As explicatia, lcExplicatia5 As explicatia5, ;
|
|
ROUND(-valtvav,2) As suma ;
|
|
FROM cVanzari ;
|
|
WHERE !tichet
|
|
ENDIF && IF m.llVanzariRestaurant
|
|
|
|
Use In (Select('cIntrari'))
|
|
Use In (Select('cIesiri'))
|
|
Use In (Select('cVanzari'))
|
|
|
|
IF m.llHotel
|
|
* Facturi Fidelio
|
|
Select CAST(NR_FACTURA as I) As nract, ;
|
|
VAL(GETWORDNUM(DATANOTAFACTURA, 3, '/')) AS AN, ;
|
|
VAL(GETWORDNUM(DATANOTAFACTURA, 1, '/')) AS LUNA, ;
|
|
VAL(GETWORDNUM(DATANOTAFACTURA, 2, '/')) AS ZI, ;
|
|
cumparator as denumire, codfiscal_cnp as cod_fiscal, ;
|
|
CAST(IIF('cazare' $ ALLTRIM(LOWER(pos_denumire)), '704 ', ;
|
|
IIF('pat suplimentar' $ ALLTRIM(LOWER(pos_denumire)), '704 ', ;
|
|
IIF('taxa statiune' $ ALLTRIM(LOWER(pos_denumire)), '708 ', ;
|
|
IIF('dejun' $ ALLTRIM(LOWER(pos_denumire)), '707 ', ;
|
|
IIF('restaurant' $ ALLTRIM(LOWER(pos_denumire)), '707 ', ;
|
|
IIF('taxa animal' $ ALLTRIM(LOWER(pos_denumire)), '704 ', '704 ')))))) AS C(4)) as cont, ;
|
|
CAST(IIF('cazare' $ ALLTRIM(LOWER(pos_denumire)), '0101', ;
|
|
IIF('pat suplimentar' $ ALLTRIM(LOWER(pos_denumire)), '0101', ;
|
|
IIF('taxa statiune' $ ALLTRIM(LOWER(pos_denumire)), '03 ', ;
|
|
IIF('dejun' $ ALLTRIM(LOWER(pos_denumire)), '0202', ;
|
|
IIF('restaurant' $ ALLTRIM(LOWER(pos_denumire)), '0202', ;
|
|
IIF('taxa animal' $ ALLTRIM(LOWER(pos_denumire)), '0101', '0101')))))) AS C(4)) as acont, ;
|
|
CAST(0 as I) as id_part, ;
|
|
CAST(VAL(ALLTRIM(STRTRAN(POS_TAXAL, 'TVA', '',1,1,1))) AS n(5,2)) AS proctva, ;
|
|
SPACE(4) as conttva, ;
|
|
SPACE(4) as aconttva, ;
|
|
MAX(pos_numeorigine) as numeorigine, ;
|
|
MAX(LOWER(tip_factura)) as tip_factura, ;
|
|
CAST(MAX(UPPER(pos_denumire)) as C(200)) as articol, ;
|
|
CAST(MAX(cash_notafactura) as N(20,2)) as numerar, ;
|
|
CAST(MAX(cc_notafactura) as N(20,2)) as card, ;
|
|
CAST(MAX(alt_notafactura) as N(20,2)) as tichete, ;
|
|
CAST(MAX(virament_notafactura) as N(20,2)) as viramentint, ;
|
|
CAST(MAX(total_notafactura) as N(20,2)) as total, ;
|
|
SUM(pos_pret_net_ron) As VALFTVAV, ;
|
|
Sum(pos_pret_tva_ron) As VALTVAV, ;
|
|
SUM(pos_pret_net_ron+pos_pret_tva_ron) As VALCTVAV ;
|
|
FROM cFacturiFidelio f ;
|
|
WHERE !EMPTY(NVL(f.pos_taxal, '')) ;
|
|
Group By 1,2,3,4,5,6,7,8,9,10,11 ;
|
|
INTO Cursor cFacturiHotelTemp2
|
|
|
|
* Dadea eroare daca faceam date(an,luna,zi) direct in primul cursor!?
|
|
|
|
SELECT *, IIF(!EMPTY(NVL(AN,0)) AND !EMPTY(NVL(LUNA,0)) AND !EMPTY(NVL(ZI,0)), DATE(an, luna, zi), {}) as dataact, ;
|
|
ROUND(numerar/total,6) as pnumerar, ;
|
|
ROUND(card/total,6) as pcard, ;
|
|
ROUND(tichete/total,6) as ptichete, ;
|
|
ROUND(viramentint/total,6) as pviramentint ;
|
|
FROM cFacturiHotelTemp2 ;
|
|
INTO CURSOR cFacturiHotel READWRITE
|
|
|
|
UPDATE cFacturiHotel SET pnumerar = 0, pcard = 0, ptichete = 0, pviramentint = 0 WHERE total = 0
|
|
UPDATE cFacturiHotel SET conttva = IIF(tip_factura = 'decontare interna', '4428', '4427')
|
|
UPDATE cFacturiHotel SET aconttva = IIF(proctva = 21, '05', IIF(proctva = 11, '06', IIF(proctva = 19, '03', IIF(proctva = 9, '04', IIF(proctva = 5, '04', IIF(proctva = 0, SPACE(4), SPACE(4))))))) WHERE tip_factura = 'decontare interna'
|
|
UPDATE cFacturiHotel SET aconttva = IIF(proctva = 21, '0301', IIF(proctva = 11, '0302', IIF(proctva = 19, '0101', IIF(proctva = 9, '0201', IIF(proctva = 5, '05xx', IIF(proctva = 0, SPACE(4), SPACE(4))))))) WHERE EMPTY(aconttva)
|
|
|
|
* Completez id_part in Facturi Hotel
|
|
SELECT cFacturiHotel
|
|
SCAN
|
|
lcDenumire = UPPER(ALLTRIM(NVL(denumire, '')))
|
|
lcCodFiscal = UPPER(ALLTRIM(NVL(cod_fiscal, '')))
|
|
lnIdPart = 0
|
|
SELECT cClientiFurnizori
|
|
IF !EMPTY(m.lcCodFiscal) AND LEN(m.lcCodFiscal) > 2
|
|
LOCATE FOR cod_fiscal = m.lcCodFiscal
|
|
IF !FOUND()
|
|
LOCATE FOR denumire = m.lcDenumire
|
|
IF FOUND()
|
|
lnIdPart = id_part
|
|
ELSE
|
|
SET STEP ON
|
|
* Trebuie sa creez partenerul!!!
|
|
This.trace('Nu exista in ROA partenerul: ' + m.lcDenumire + ' ' + m.lcCodFiscal)
|
|
ENDIF
|
|
ELSE
|
|
lnIdPart = id_part
|
|
ENDIF
|
|
ELSE
|
|
IF !EMPTY(m.lcDenumire)
|
|
LOCATE FOR denumire = m.lcDenumire
|
|
IF FOUND()
|
|
lnIdPart = id_part
|
|
ELSE
|
|
SET STEP ON
|
|
* Trebuie sa creez partenerul!!!
|
|
This.trace('Nu exista in ROA partenerul: ' + m.lcDenumire + ' ' + m.lcCodFiscal)
|
|
ENDIF
|
|
ELSE
|
|
SET STEP ON
|
|
* Trebuie sa creez partenerul!!!
|
|
This.trace('Nu exista in ROA partenerul: ' + m.lcDenumire + ' ' + m.lcCodFiscal)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SELECT cFacturiHotel
|
|
IF !EMPTY(m.lnIdPart)
|
|
REPLACE id_part WITH m.lnIdPart
|
|
ENDIF
|
|
ENDSCAN
|
|
|
|
* Cursor cu tipuri de plata, ca sa defalc baza si TVA pe tipuri de plata. 5125.01 (card), 03 (tichete) analitice diferite
|
|
CREATE CURSOR cPlata (nract N(20), tip C(20), suma N(20,2), procent N(20,6), cont C(4), acont C(4), id_part I, contc C(4), acontc C(4))
|
|
|
|
SELECT nract, ;
|
|
MAX(numerar) as numerar, MAX(card) as card, MAX(tichete) as tichete, MAX(viramentint) as viramentint, ;
|
|
MAX(pnumerar) as pnumerar, MAX(pcard) as pcard, MAX(ptichete) as ptichete, MAX(pviramentint) as pviramentint ;
|
|
FROM cFacturiHotel ;
|
|
GROUP BY nract ;
|
|
INTO CURSOR cPlatiTemp
|
|
|
|
SELECT cPlatiTemp
|
|
SCAN
|
|
SCATTER NAME loRec
|
|
WITH loRec
|
|
IF .numerar <> 0 OR (numerar = 0 AND card = 0 AND tichete = 0 AND viramentint = 0)
|
|
INSERT INTO cPlata (nract, tip, suma, procent, cont, acont, id_part, contc, acontc) VALUES (.nract, 'NUMERAR', .numerar, .pnumerar, m.lcContCasaHotel, m.lcAcontCasaHotel, m.lnIdPartCasaHotel, lcContFacturaCasaHotel, lcAContFacturaCasaHotel)
|
|
ENDIF
|
|
IF .card <> 0
|
|
INSERT INTO cPlata (nract, tip, suma, procent, cont, acont, id_part, contc, acontc) VALUES (.nract, 'CARD', .card, .pcard, m.lcContCardHotel, m.lcAcontCardHotel, m.lnIdPartCardHotel, lcContFacturaCardHotel, lcAContFacturaCardHotel)
|
|
ENDIF
|
|
IF .tichete <> 0
|
|
INSERT INTO cPlata (nract, tip, suma, procent, cont, acont, id_part, contc, acontc) VALUES (.nract, 'TICHETE', .tichete, .ptichete, m.lcContTicheteHotel, m.lcAcontTicheteHotel, m.lnIdPartTicheteHotel, lcContFacturaTicheteHotel, lcAContFacturaTicheteHotel)
|
|
ENDIF
|
|
IF .viramentint <> 0
|
|
INSERT INTO cPlata (nract, tip, suma, procent, cont, acont, id_part, contc, acontc) VALUES (.nract, 'VIRAMENT INTERN', .viramentint, .pviramentint, m.lcContViramentIntHotel, m.lcAcontViramentIntHotel, m.lnIdPartViramentIntHotel, lcContFacturaViramentIntHotel, lcAContFacturaViramentIntHotel)
|
|
ENDIF
|
|
ENDWITH
|
|
ENDSCAN
|
|
|
|
SELECT dataact, nract, proctva, conttva, aconttva, cont, acont, ;
|
|
SUM(valftvav) As valftvav, SUM(valtvav) as valtvav ;
|
|
FROM cFacturiHotel ;
|
|
group by 1,2,3,4,5,6,7 ;
|
|
INTO CURSOR cBazaTVATemp
|
|
|
|
SELECT b.*, ROUND(b.valftvav * p.procent, 2) as baza, ROUND(b.valtvav * p.procent, 2) as tva, p.tip as tipplata, p.cont as contplata, p.acont as acontplata, p.id_part as id_part_plata, p.contc, p.acontc ;
|
|
FROM cBazaTVATemp b LEFT JOIN cPlata p ON b.nract = p.nract ;
|
|
INTO CURSOR cBazaTVAPlati
|
|
|
|
SELECT f.*, p.baza, p.tva, p.tipplata, p.contplata, p.acontplata, p.id_part_plata, p.contc, p.acontc ;
|
|
FROM cFacturiHotel f JOIN cBazaTVAPlati p ON f.nract = p.nract AND ;
|
|
f.proctva = p.proctva AND f.cont = p.cont AND NVL(f.acont, 'x') = NVL(p.acont, 'x') AND ;
|
|
f.conttva = p.conttva AND NVL(f.aconttva, 'x') = NVL(p.aconttva, 'x') ;
|
|
INTO CURSOR cFacturiMonetar READWRITE
|
|
|
|
|
|
*****************************************
|
|
lcExplicatia5 = 'MONETAR HOTEL'
|
|
This.trace(m.lcExplicatia5)
|
|
|
|
* IESIRI MONETARE RESTAURANT BAZA 5125/5311 = 4111
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, scd, ascd, scc, ascc, id_partd, partd, id_partc, partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), ;
|
|
contplata As scd, acontplata As ascd, contc As scc, acontc As ascc, id_part_plata As id_partd, tipplata as partd, id_part As id_partc, denumire as partc, ;
|
|
CAST(0 as N(5,2)) as proc_tva, CAST(null as N(4)) As id_jtva_coloana, ;
|
|
tipplata As explicatia, numeorigine as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(baza+tva) As suma ;
|
|
FROM cFacturiMonetar ;
|
|
WHERE tip_factura <> 'decontare interna' ;
|
|
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
|
|
|
|
*!* * IESIRI MONETARE RESTAURANT TVA 5125/5311 = 4427.0201
|
|
*!* Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, scd, ascd, scc, ascc, id_partd, partd, id_partc, partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
*!* SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), ;
|
|
*!* contplata As scd, acontplata As ascd, conttva As scc, aconttva As ascc, id_part_plata As id_partd, tipplata as partd, 0 As id_partc, '' as partc, ;
|
|
*!* 1 + Round(proctva / 100, 2) As proc_tva, Iif(proctva = 24, 22, Iif(proctva = 20, 30, Iif(proctva = 19, 32, Iif(proctva = 9, 24, Iif(proctva = 5, 26, 32))))) As id_jtva_coloana, ;
|
|
*!* tipplata As explicatia, numeorigine as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
*!* tva As suma ;
|
|
*!* FROM cFacturiMonetar ;
|
|
*!* WHERE tip_factura <> 'decontare interna'
|
|
|
|
lcExplicatia5 = 'VENITURI HOTEL'
|
|
This.trace(m.lcExplicatia5)
|
|
|
|
lcExplicatia5 = 'FACTURI HOTEL'
|
|
This.trace(m.lcExplicatia5)
|
|
*!* factura platita direct de client
|
|
*!* 4111.02 = 704.0101/02
|
|
*!* 4111.02 = 4427.0201 (19) / 0202 (9)
|
|
|
|
*!* factura neintocmita platita de agentie
|
|
*!* 418.01 = 704.0101/02
|
|
*!* 418.01 = 4428.03 (19) / 04 (9)
|
|
SET STEP ON
|
|
* incasare cu tichete la receptie, 418 = 472 se face in Fidelio, la primirea tichetelor
|
|
* nota inversa se face in RESTAURANT: IESIRI MONETARE RESTAURANT BAZA 472.03 = 418.02, suma cu tot cu TVA
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, scd, ascd, scc, ascc, id_partd, partd, id_partc, partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), ;
|
|
m.lcContClientiRestaurant As scd, m.lcAContClientiRestaurant As ascd, m.lcContTicheteRestaurant As scc, m.lcAcontTicheteRestaurant As ascc, m.lnIdPartClientiRestaurant As id_partd, '' as partd, m.lnIdPartTicheteRestaurant As id_partc, CAST('' as C(100)) as partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 35, ;
|
|
Iif(proctva = 11, 39, ;
|
|
Iif(proctva = 19, 1, ;
|
|
Iif(proctva = 9, 3, ;
|
|
Iif(proctva = 5, 13, ;
|
|
Iif(proctva = 0, 11, ;
|
|
35)))))) AS N(4)) As id_jtva_coloana, ;
|
|
tipplata As explicatia, numeorigine as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(baza+tva) As suma ;
|
|
FROM cFacturiMonetar ;
|
|
WHERE tipplata = 'TICHETE' ;
|
|
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
|
|
|
|
* FACTURI FIDELIO BAZA
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, scd, ascd, scc, ascc, id_partd, partd, id_partc, partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), ;
|
|
contc As scd, acontc As ascd, cont As scc, acont As ascc, id_part as id_partd, denumire as partd, CAST(0 as I) As id_partc, CAST('' as C(100)) as partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 37, ;
|
|
Iif(proctva = 11, 41, ;
|
|
Iif(proctva = 19, 31, ;
|
|
Iif(proctva = 9, 23, ;
|
|
Iif(proctva = 5, 25, ;
|
|
Iif(proctva = 0, 11, ;
|
|
37)))))) AS N(4)) As id_jtva_coloana, ;
|
|
articol As explicatia, numeorigine as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(baza) As suma ;
|
|
FROM cFacturiMonetar ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
|
|
|
|
* FACTURI FIDELIO TVA
|
|
Insert Into actactan (id_set, id_fdoc, an, luna, dataact, dataireg, nract, scd, ascd, scc, ascc, id_partd, partd, id_partc, partc, proc_tva, id_jtva_coloana, explicatia, explicatia4, explicatia5, suma) ;
|
|
SELECT lnIdSet As id_set, lnIdFdocMonetar As id_fdoc, m.lnAn As an, m.lnLuna As luna, dataact, dataact As dataireg, INT(nract), ;
|
|
contc As scd, acontc As ascd, conttva As scc, aconttva As ascc, id_part as id_partd, denumire as partd, CAST(0 as I) As id_partc, CAST('' as C(100)) as partc, ;
|
|
1 + Round(proctva / 100, 2) As proc_tva, ;
|
|
CAST(Iif(proctva = 21, 38, ;
|
|
Iif(proctva = 11, 42, ;
|
|
Iif(proctva = 19, 32, ;
|
|
Iif(proctva = 9, 24, ;
|
|
Iif(proctva = 5, 26, ;
|
|
38))))) AS N(4)) As id_jtva_coloana, ;
|
|
articol As explicatia, numeorigine as explicatia4, lcExplicatia5 As explicatia5, ;
|
|
SUM(tva) As suma ;
|
|
FROM cFacturiMonetar ;
|
|
Group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
|
|
|
|
ENDIF && m.llHotel
|
|
|
|
DELETE FROM actactan WHERE suma = 0
|
|
|
|
|
|
* LIVRARI
|
|
* Pentru facturile cu 4111 in loc de 418 inlocuiesc Explicatie TVA Exigibil in loc de TVA Neexigibil
|
|
UPDATE actactan SET id_jtva_coloana = 1 WHERE scd = '4111' AND id_jtva_coloana = 31
|
|
UPDATE actactan SET id_jtva_coloana = 2 WHERE scd = '4111' AND id_jtva_coloana = 32
|
|
UPDATE actactan SET id_jtva_coloana = 3 WHERE scd = '4111' AND id_jtva_coloana = 23
|
|
UPDATE actactan SET id_jtva_coloana = 4 WHERE scd = '4111' AND id_jtva_coloana = 24
|
|
UPDATE actactan SET id_jtva_coloana = 13 WHERE scd = '4111' AND id_jtva_coloana = 25
|
|
UPDATE actactan SET id_jtva_coloana = 14 WHERE scd = '4111' AND id_jtva_coloana = 26
|
|
|
|
UPDATE actactan SET id_jtva_coloana = 35 WHERE scd = '4111' AND id_jtva_coloana = 37
|
|
UPDATE actactan SET id_jtva_coloana = 36 WHERE scd = '4111' AND id_jtva_coloana = 38
|
|
UPDATE actactan SET id_jtva_coloana = 39 WHERE scd = '4111' AND id_jtva_coloana = 41
|
|
UPDATE actactan SET id_jtva_coloana = 40 WHERE scd = '4111' AND id_jtva_coloana = 42
|
|
|
|
UPDATE actactan SET paymentcode = '10' WHERE scd = '5311'
|
|
UPDATE actactan SET paymentcode = '42' WHERE LEFT(scd,3) = '512'
|
|
|
|
SELECT * FROM actactan INTO CURSOR tAct
|
|
USE IN (SELECT('actactan'))
|
|
|
|
SELECT * FROM tAct ORDER BY explicatia5, dataact, nract, scd, scc INTO CURSOR actactan READWRITE
|
|
UPDATE actactan SET scd = ALLTRIM(STRTRAN(scd, CHR(9), '')), scc = ALLTRIM(STRTRAN(scc, CHR(9), ''))
|
|
UPDATE actactan SET ascd = ALLTRIM(STRTRAN(ascd, CHR(9), '')), ascc = ALLTRIM(STRTRAN(ascc, CHR(9), ''))
|
|
USE IN (SELECT('tAct'))
|
|
|
|
SET STEP ON
|
|
llFacturaDuplicat = .F.
|
|
If m.lnVerificaFacturi = 1
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name loRec Memo
|
|
llFacturaDuplicat = This.VerificaFactura(loRec)
|
|
Endif
|
|
|
|
If m.llTest OR !m.llFacturaDuplicat
|
|
This.Scrienote()
|
|
Endif
|
|
|
|
|
|
Endif && m.llImport
|
|
|
|
Use In (Select('actactan'))
|
|
SET STEP ON
|
|
If Used('act_test')
|
|
lcDirOutput = Addbs(m.lcDirImport)
|
|
lcFileOutput = m.lcDirOutput + 'act_test' + Sys(2) + '.xls'
|
|
|
|
Select act_test
|
|
Copy To (m.lcFileOutput) Type Xl5
|
|
Use In (Select('act_test'))
|
|
open_default_app(m.lcDirOutput)
|
|
open_default_app(m.lcFileOutput)
|
|
ENDIF
|
|
|
|
Return lnSucces
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE Destroy
|
|
|
|
CLEAR EVENTS
|
|
ENDPROC
|
|
|
|
PROCEDURE disconnectmentor
|
|
IF This.nHandleMentor > 0
|
|
SQLDISCONNECT(This.nHandleMentor)
|
|
This.nHandleMentor = -1
|
|
ENDIF
|
|
|
|
Return .T.
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE disconnectroa
|
|
Local lnSucces
|
|
lnSucces = goConn.Disconnect()
|
|
RETURN m.lnSucces
|
|
ENDPROC
|
|
|
|
PROCEDURE exportdate
|
|
Local laFiles[1], lcDirImport, ldDataImport, lnAn, lnFiles, lnLuna, lnSucces
|
|
Local lcFile, lcPrefix, lnFile
|
|
|
|
Thisform.Trace('Citire fisiere Fidelio&Biz')
|
|
|
|
lnSucces = CT_SUCCES
|
|
ldData1 = This.txtData1.Value
|
|
ldData2 = This.txtData2.Value
|
|
If Empty(m.ldData1)
|
|
AMESSAGEBOX('Completati data inceput pentru import!',0+16,_screen.Caption)
|
|
Return
|
|
Endif
|
|
If Empty(m.ldData2)
|
|
AMESSAGEBOX('Completati data sfarsit pentru import!',0+16,_screen.Caption)
|
|
Return
|
|
Endif
|
|
If m.ldData1 > m.ldData2
|
|
AMESSAGEBOX('Data de inceput trebuie sa fie mai mica sau egala decat data de sfarsit pentru import!',0+16,_screen.Caption)
|
|
Return
|
|
Endif
|
|
|
|
lnLuna = Month(m.ldData1)
|
|
lnAn = Year(m.ldData2)
|
|
lcAnLuna = ALLTRIM(STR(m.lnAn)) + PADL(m.lnLuna,2, '0')
|
|
|
|
lcCaleImportFidelio = Addbs(Alltrim(goApp.oSettings.cale_import_fidelio))
|
|
lcCaleImportBiz = Addbs(Alltrim(goApp.oSettings.cale_import_biz))
|
|
lcCaleImport = Addbs(Alltrim(goApp.oSettings.cale_import))
|
|
|
|
IF !DIRECTORY(m.lcCaleImportFidelio)
|
|
AMESSAGEBOX('Nu exista directorul de import ' + m.lcCaleImportFidelio, 0+16,_screen.Caption)
|
|
lnSucces = CT_INSUCCES
|
|
RETURN m.lnSucces
|
|
ENDIF
|
|
IF !DIRECTORY(m.lcCaleImportFidelio)
|
|
AMESSAGEBOX('Nu exista directorul de import Fidelio: ' + m.lcCaleImportFidelio, 0+16,_screen.Caption)
|
|
lnSucces = CT_INSUCCES
|
|
RETURN m.lnSucces
|
|
ENDIF
|
|
IF !DIRECTORY(m.lcCaleImportBiz)
|
|
AMESSAGEBOX('Nu exista directorul de import Biz: ' + m.lcCaleImportBiz, 0+16,_screen.Caption)
|
|
lnSucces = CT_INSUCCES
|
|
RETURN m.lnSucces
|
|
ENDIF
|
|
|
|
IF !DIRECTORY(m.lcCaleImport)
|
|
AMESSAGEBOX('Nu exista directorul de import: ' + m.lcCaleImport, 0+16,_screen.Caption)
|
|
lnSucces = CT_INSUCCES
|
|
RETURN m.lnSucces
|
|
ENDIF
|
|
|
|
********************************************
|
|
CREATE CURSOR nPart (id_part I null, cod C(16) null, denumire V(200) null, cod_fiscal V(50) null, reg_com V(50) null, ;
|
|
adresa V(250) null, judet V(250) null, indicativ_judet V(250) null, tara V(200) null, cod_tara V(200) null, ;
|
|
banca V(200) null, cont_banca v(200) null)
|
|
|
|
*!* lcFile = m.lcCaleImport + 'coresp_parteneri.dbf'
|
|
lcFile = m.lcCaleImport + 'coresp_parteneri.csv'
|
|
CREATE CURSOR coresp_parteneri (cod C(16), id_part I, cod_fiscal C(30), denumire C(100))
|
|
IF FILE(m.lcFile)
|
|
SELECT coresp_parteneri
|
|
APPEND FROM (m.lcFile) TYPE CSV
|
|
ELSE
|
|
SELECT coresp_parteneri
|
|
COPY to (m.lcFile) TYPE CSV
|
|
ENDIF
|
|
|
|
SELECT coresp_parteneri
|
|
INDEX on cod TAG cod
|
|
|
|
Create Cursor cIntrariRestaurant(;
|
|
idinregistrare C(50) null,;
|
|
tipdocument C(50) null,;
|
|
nrdocument C(20) null,;
|
|
datadocument C(20) null,;
|
|
codfiscal C(20) null,;
|
|
denumirefurnizor C(200) null,;
|
|
valoarefacturafaratva N(18,4) null,;
|
|
valoareajustatafaratva N(18,4) null,;
|
|
valoareajustare N(18,4) null,;
|
|
tvavaloareajustata N(18,4) null,;
|
|
cotatva N(5,2) null,;
|
|
codsectiedeintrare N(5) null,;
|
|
denumiresectiedeintrare C(100) null,;
|
|
tiptranzactie C(20) null)
|
|
|
|
Create Cursor cIesiriRestaurant(;
|
|
idinregistrare C(50) null,;
|
|
tipdocument C(50) null,;
|
|
nrdocument C(20) null,;
|
|
datadocument C(20) null,;
|
|
valoare N(18,4) null,;
|
|
codsectieiesire N(5) null,;
|
|
denumiresectieiesire C(100) null,;
|
|
codsectieintrare N(5) null,;
|
|
denumiresectieintrare C(100) null,;
|
|
tipiesire C(20) null,;
|
|
allowance_cod C(50) null,;
|
|
allowance_den C(50) null)
|
|
|
|
|
|
Create Cursor cVanzariRestaurant(;
|
|
idinregistrare C(50) null,;
|
|
tipdocument C(50) null,;
|
|
nrdocument C(20) null,;
|
|
datadocument C(20) null,;
|
|
valoarefaratva N(18,4) null,;
|
|
tva N(18,4) null,;
|
|
procenttva N(5,2) null,;
|
|
valoareachizitie N(18,4) null,;
|
|
codsectievanzare N(5) null,;
|
|
denumiresectievanzare C(100) null,;
|
|
tipplata C(20) null)
|
|
|
|
Create Cursor cFacturiFidelio(;
|
|
nr_nota N(10) null,;
|
|
nr_factura C(20) null,;
|
|
datanotafactura C(20) null,;
|
|
cumparator C(100) null,;
|
|
camera N(3) null,;
|
|
tip_camera C(3) null,;
|
|
tarif C(4) null,;
|
|
grupa_tarif C(3) null,;
|
|
pers_facturare N(1) null,;
|
|
sosire C(10) null,;
|
|
plecare C(10) null,;
|
|
codfiscal_cnp C(50) null,;
|
|
regcomert_ci_pass C(50) null,;
|
|
iban C(50) null,;
|
|
banca C(200) null,;
|
|
factura_speciala L(1) null,;
|
|
total_notafactura N(18,4) null,;
|
|
brut0_notafactura N(18,4) null,;
|
|
net0_notafactura N(18,4) null,;
|
|
brut1_notafactura N(18,4) null,;
|
|
net1_notafactura N(18,4) null,;
|
|
tva1_notafactura N(18,4) null,;
|
|
brut2_notafactura N(18,4) null,;
|
|
net2_notafactura N(18,4) null,;
|
|
tva2_notafactura N(18,4) null,;
|
|
cash_notafactura N(18,4) null,;
|
|
cc_notafactura N(18,4) null,;
|
|
cec_notafactura N(18,4) null,;
|
|
virament_notafactura N(18,4) null,;
|
|
alt_notafactura N(18,4) null,;
|
|
pos_id N(7) null,;
|
|
pos_data C(20) null,;
|
|
pos_dep N(5) null,;
|
|
pos_denumire C(100) null,;
|
|
pos_denumirepos C(100) null,;
|
|
pos_denumirearr C(100) null,;
|
|
pos_comentariu C(100) null,;
|
|
pos_cantitatea N(10) null,;
|
|
pos_numarcec C(20) null,;
|
|
pos_nrtelefon C(20) null,;
|
|
pos_pret_brut_ron N(18,4) null,;
|
|
pos_pret_brut_valuta N(18,4) null,;
|
|
pos_valuta C(5) null,;
|
|
pos_curs C(5) null,;
|
|
pos_pret_net_ron N(18,4) null,;
|
|
pos_pret_tva_ron N(18,4) null,;
|
|
pos_taxas C(20) null,;
|
|
pos_taxal C(20) null,;
|
|
pos_cameraorigine N(3) null,;
|
|
pos_numeorigine C(100) null,;
|
|
pos_origine C(100) null,;
|
|
pos_sosireorigine C(100) null,;
|
|
pos_plecareorigine C(100) null,;
|
|
pos_numar_cc C(100) null,;
|
|
virament_intern C(100) null,;
|
|
tip_factura C(50) null,;
|
|
tip_numar_factura C(50) null,;
|
|
grup C(10) null,;
|
|
nr_persoane C(10) null,;
|
|
companie_nume C(100) null,;
|
|
companie_cf_cnp C(50) null,;
|
|
companie_rc_cip C(50) null,;
|
|
companie_banca C(100) null,;
|
|
companie_iban C(100) null,;
|
|
companie_tplata C(100) null,;
|
|
companie_contract C(100) null,;
|
|
companie_contract_date C(100) null,;
|
|
companie_tara C(100) null,;
|
|
companie_oras C(100) null,;
|
|
companie_adresa C(200) null,;
|
|
agentie_nume C(100) null,;
|
|
agentie_cf_cnp C(100) null,;
|
|
agentie_rc_cip C(100) null,;
|
|
agentie_banca C(100) null,;
|
|
agentie_iban C(100) null,;
|
|
agentie_tplata C(100) null,;
|
|
agentie_contract C(100) null,;
|
|
agentie_contract_date C(100) null,;
|
|
agentie_tara C(100) null,;
|
|
agentie_oras C(100) null,;
|
|
agentie_adresa C(100) null,;
|
|
sursa_nume C(100) null,;
|
|
sursa_cf_cnp C(100) null,;
|
|
sursa_rc_cip C(100) null,;
|
|
sursa_banca C(100) null,;
|
|
sursa_iban C(100) null,;
|
|
sursa_tplata C(100) null,;
|
|
sursa_contract C(100) null,;
|
|
sursa_contract_date C(100) null,;
|
|
sursa_tara C(100) null,;
|
|
sursa_oras C(100) null,;
|
|
sursa_adresa C(100) null)
|
|
|
|
********************************************
|
|
|
|
* FIDELIO / HOTEL
|
|
lcFileSkeleton = 'bts_detalii_facturi_rep_' + m.lcAnLuna + '*.xml'
|
|
lcDirImport = m.lcCaleImportFidelio
|
|
lnFiles = Adir(laFiles, m.lcDirImport + m.lcFileSkeleton, '', 1)
|
|
If lnFiles = 0
|
|
Thisform.trace('Nu exista fisiere ' + m.lcFileSkeleton + ' in directorul ' + m.lcDirImport)
|
|
* lnSucces = CT_INSUCCES
|
|
* pot sa nu fie fisiere Hotel, doar restaurant
|
|
* RETURN m.lnSucces
|
|
Endif
|
|
FOR lnFile = 1 TO m.lnFiles
|
|
lcFileName = LOWER(laFiles[m.lnFile,1])
|
|
lcFile = ADDBS(m.lcDirImport) + m.lcFileName
|
|
lcDataFisier = RIGHT(JUSTSTEM(m.lcFileName),8) && 20240430 din bts_detalii_facturi_rep_20240430.xml
|
|
lnZi = INT(VAL(RIGHT(m.lcDataFisier,2)))
|
|
lnLuna = INT(VAL(SUBSTR(m.lcDataFisier,5,2)))
|
|
lnAn = INT(VAL(LEFT(m.lcDataFisier,4)))
|
|
ldDataFisier = DATE(m.lnAn, m.lnLuna, m.lnZi)
|
|
IF !BETWEEN(m.ldDataFisier, m.ldData1, m.ldData2)
|
|
LOOP
|
|
ENDIF
|
|
|
|
lnRecords = XMLTOCURSOR(m.lcFile, 'cFacturiTemp',512)
|
|
*!* USE (m.lcFile) IN 0 SHARED ALIAS cFacturiTemp
|
|
IF USED('cFacturiTemp')
|
|
SELECT cFacturiFidelio
|
|
APPEND FROM DBF('cFacturiTemp')
|
|
USE IN (SELECT('cFacturiTemp'))
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
* BIZ / RESTAURANT
|
|
lcFileSkeleton = '*_' + m.lcAnLuna + '*.xml' && iesiri/intrari/vanzari_aaaallzz.xml
|
|
lcDirImport = m.lcCaleImportBiz
|
|
lnFiles = Adir(laFiles, m.lcDirImport + m.lcFileSkeleton, '', 1)
|
|
If lnFiles = 0
|
|
Thisform.trace('Nu exista fisiere ' + m.lcFileSkeleton + ' in directorul ' + m.lcDirImport)
|
|
* lnSucces = CT_INSUCCES
|
|
* pot sa nu existe fisiere restaurant, doar hotel
|
|
* RETURN m.lnSucces
|
|
ENDIF
|
|
|
|
FOR lnFile = 1 TO m.lnFiles
|
|
lcFileName = LOWER(laFiles[m.lnFile,1])
|
|
lcFile = ADDBS(m.lcDirImport) + m.lcFileName
|
|
lcPrefix = LEFT(m.lcFileName,3)
|
|
|
|
lcDataFisier = RIGHT(JUSTSTEM(m.lcFileName),8) && 20240430 din bts_detalii_facturi_rep_20240430.xml
|
|
lnZi = INT(VAL(RIGHT(m.lcDataFisier,2)))
|
|
lnLuna = INT(VAL(SUBSTR(m.lcDataFisier,5,2)))
|
|
lnAn = INT(VAL(LEFT(m.lcDataFisier,4)))
|
|
ldDataFisier = DATE(m.lnAn, m.lnLuna, m.lnZi)
|
|
IF !BETWEEN(m.ldDataFisier, m.ldData1, m.ldData2)
|
|
LOOP
|
|
ENDIF
|
|
|
|
DO CASE
|
|
CASE LEFT(m.lcFileName, 8) = 'intrari_'
|
|
lcCursorTemp = 'cIntrariTemp'
|
|
lcCursor = 'cIntrariRestaurant'
|
|
CASE LEFT(m.lcFileName, 7) = 'iesiri_'
|
|
lcCursorTemp = 'cIesiriTemp'
|
|
lcCursor = 'cIesiriRestaurant'
|
|
CASE LEFT(m.lcFileName, 8) = 'vanzari_'
|
|
lcCursorTemp = 'cVanzariTemp'
|
|
lcCursor = 'cVanzariRestaurant'
|
|
ENDCASE
|
|
|
|
lnRecords = XMLTOCURSOR(m.lcFile, m.lcCursor, 512 + 8192) && 8192 se adauga in cursorul existent
|
|
|
|
*!* IF USED(m.lcCursorTemp)
|
|
*!* SELECT (m.lcCursor)
|
|
*!* APPEND FROM DBF(m.lcCursorTemp)
|
|
|
|
*!* USE IN (SELECT(m.lcCursorTemp))
|
|
*!* ENDIF
|
|
ENDFOR
|
|
|
|
IF USED('cFacturiFidelio')
|
|
SELECT distinct CAST(ALLTRIM(cumparator) as C(200)) as denumire, CAST(ALLTRIM(codfiscal_cnp) as C(50)) as cod_fiscal, CAST(ALLTRIM(regcomert_ci_pass) as C(50)) as reg_com, ;
|
|
CAST(ALLTRIM(iban) as C(50)) as cont_banca, CAST(ALLTRIM(banca) as C(100)) as banca ;
|
|
FROM cFacturiFidelio ;
|
|
INTO CURSOR cPartTemp
|
|
|
|
SELECT nPart
|
|
APPEND FROM DBF('cPartTemp')
|
|
USE IN (SELECT('cPartTemp'))
|
|
ENDIF
|
|
|
|
IF USED('cIntrariRestaurant')
|
|
SELECT distinct CAST(ALLTRIM(DenumireFurnizor) as C(200)) as denumire, CAST(ALLTRIM(CodFiscal) as C(50)) as cod_fiscal ;
|
|
FROM cIntrariRestaurant ;
|
|
INTO CURSOR cPartTemp
|
|
|
|
SELECT nPart
|
|
APPEND FROM DBF('cPartTemp')
|
|
USE IN (SELECT('cPartTemp'))
|
|
ENDIF
|
|
|
|
* Calculez checksum pentru cod cheie externa din denumire si cod fiscal, pentru ca nu am id partener extern
|
|
UPDATE nPart SET cod = SYS(2007,denumire+cod_fiscal,0,1)
|
|
|
|
Return m.lnSucces
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE Init
|
|
Local ldData1, ldData2, ldLastDay, lnHeight, lnWidth
|
|
|
|
DODEFAULT()
|
|
|
|
lnHeight = this.Height
|
|
lnWidth = this.Width
|
|
|
|
this.AutoCenter = .T.
|
|
this.WindowState = 2
|
|
|
|
_screen.Height = lnHeight + 15
|
|
_screen.Width = lnWidth + 15
|
|
|
|
|
|
this.Icon = _screen.Icon
|
|
|
|
ldData1 = goApp.oSettings.last_data2 + 1 && ultima zi din importul anterior + 1
|
|
IF EMPTY(m.ldData1)
|
|
ldData1 = DATE() - DAY(DATE()) + 1 && 1 ale lunii curente
|
|
ENDIF
|
|
* doar pentru testare folosesc luna mai 2024
|
|
*ldData1 = DATE(2024,5,1)
|
|
this.chkTest.Value = 1 && nu scrie notele contabile
|
|
|
|
ldLastDay = GOMONTH(m.ldData1, 1) - DAY(m.ldData1)
|
|
IF m.ldData1 <= m.ldLastDay
|
|
ldData2 = m.ldLastDay
|
|
ELSE
|
|
ldData2 = GOMONTH(m.ldLastDay, 1) - DAY(m.ldLastDay)
|
|
ENDIF
|
|
|
|
thisform.txtData1.Value = m.ldData1
|
|
thisform.txtData2.Value = m.ldData2
|
|
|
|
thisform.chkTVAIncasare.Value = goapp.osettings.nTVAIncasare
|
|
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE scrienote
|
|
*!* 25.04.2025 Completez codul de taxa saft in luna curenta
|
|
|
|
Private gnAn, gnIdSucursala, gnIdUtil, gnLuna
|
|
|
|
*** Daca am bifa de Test, nu scriu in ROA
|
|
Local lcMesaj, lcSql, llTest, lnHandle, lnSucces, lnSucces2, lnSucces3
|
|
Local lcDirImport, ldDataImport, lnAn, lnLuna
|
|
ldDataImport = This.txtData1.Value
|
|
lnLuna = Month(m.ldDataImport)
|
|
lnAn = Year(m.ldDataImport)
|
|
lcDirImport = Addbs(Alltrim(goApp.oSettings.cale_import)) + Alltrim(Str(m.lnAn)) + '\' + Padl(m.lnLuna, 2, '0') + '\'
|
|
lnSucces = CT_INSUCCES
|
|
SET STEP ON
|
|
llTest = (This.chkTest.Value = 1)
|
|
If m.llTest
|
|
thisform.trace('Salvare note in xls, fara scriere in Registrul Jurnal')
|
|
If !Used('act_test')
|
|
Select * From actactan Where .F. Into Cursor act_test Readwrite
|
|
Endif
|
|
Select act_test
|
|
Append From Dbf('actactan')
|
|
|
|
lnSucces = CT_SUCCES
|
|
RETURN m.lnSucces
|
|
Endif
|
|
thisform.trace('Scriere note in Registrul Jurnal')
|
|
|
|
lnSucces = This.Connectroa()
|
|
If lnSucces = CT_SUCCES
|
|
lnHandle = goConn.nHandle
|
|
lnSucces = SQLSetprop(m.lnHandle, "Transactions", 2)
|
|
Endif
|
|
|
|
If lnSucces = CT_SUCCES
|
|
lcSql = [SELECT seq_cod.nextval FROM dual]
|
|
SELECT distinct nract, dataact FROM actactan ORDER BY dataact, nract INTO CURSOR cNract
|
|
SELECT cNract
|
|
SCAN
|
|
IF MOD(RECNO(), 20) = 0
|
|
thisform.trace('Generez cod pentru factura ' + TRANSFORM(RECNO()) + '/' + TRANSFORM(RECCOUNT()))
|
|
ENDIF
|
|
|
|
pnCod = 0
|
|
lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCod)
|
|
IF lnSucces > 0
|
|
UPDATE actactan SET cod = m.pnCod WHERE nract = cNract.nract AND dataact = cNract.dataact
|
|
ENDIF
|
|
ENDSCAN
|
|
USE IN (SELECT('cNract'))
|
|
|
|
|
|
&& Creez note pentru fiecare luna/an
|
|
Select Distinct an, luna From actactan Order By an, luna Into Cursor cAnLuna
|
|
Select cAnLuna
|
|
Scan
|
|
gnAn = an
|
|
gnLuna = luna
|
|
gnIdUtil = - 3
|
|
gnIdSucursala = Null
|
|
|
|
If lnSucces = CT_SUCCES
|
|
thisform.trace('Initializare scriere')
|
|
lcSql = [begin pack_contafin.init_scriere_act_rul_local(?gnIdUtil,?gnAn,?gnLuna, 0,0,?gnIdSucursala); end;]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + lcSql))
|
|
Endif
|
|
|
|
If lnSucces = CT_SUCCES
|
|
thisform.trace('Salvare inregistrari')
|
|
SET STEP ON
|
|
Select * From actactan Where an = m.gnAn And luna = m.gnLuna ORDER BY cod Into Cursor cAct NOFILTER
|
|
lnSucces = This.sql_temp_insert('cAct', 'ACT_TEMP')
|
|
Use In (Select('cAct'))
|
|
Endif
|
|
|
|
If lnSucces = CT_SUCCES
|
|
thisform.trace('Finalizare scriere')
|
|
Private pcMesajRefacereNota
|
|
pcMesajRefacereNota = ""
|
|
lcSql = [begin pack_contafin.final_scriere_act_rul_local(?gnIdUtil, ?gnAn, ?gnLuna, NULL, 0, 1, ?@pcMesajRefacereNota); end;]
|
|
lnSucces = goExecutor.oExecute(GetHash('cSql=>' + m.lcSql))
|
|
If !Empty(Nvl(pcMesajRefacereNota, ''))
|
|
This.trace(m.pcMesajRefacereNota)
|
|
Messagebox(pcMesajRefacereNota, 0 + 48, 'Atentie')
|
|
Endif
|
|
Release pcMesajRefacereNota
|
|
Else
|
|
lcMesaj = goExecutor.cEroare
|
|
This.trace(m.lcMesaj)
|
|
Messagebox(m.lcMesaj)
|
|
Exit
|
|
Endif && lnSucces
|
|
Endscan && cAnLuna
|
|
|
|
Use In (Select('cAnLuna'))
|
|
|
|
* Completez codul de taxa saft in luna curenta
|
|
If lnSucces = CT_SUCCES
|
|
lcSql =[BEGIN pack_saft.UpdateTaxCode(?gnAn, ?gnLuna, ?gnAn, ?gnLuna); end;]
|
|
lnSucces = goExecutor.oExecute(GetHash('cSql=>' + m.lcSql))
|
|
If lnSucces <> CT_SUCCES
|
|
lcMesaj = goExecutor.cEroare
|
|
This.trace(m.lcMesaj)
|
|
Messagebox(m.lcMesaj)
|
|
Endif && lnSucces
|
|
ENDIF
|
|
|
|
If lnSucces = CT_SUCCES
|
|
|
|
lnSucces2 = goExecutor.oExecute(GetHash('cSql=>COMMIT'))
|
|
If lnSucces2 <> CT_SUCCES
|
|
lnSucces = CT_INSUCCES
|
|
Endif
|
|
Else
|
|
lnSucces2 = goExecutor.oExecute(GetHash('cSql=>ROLLBACK'))
|
|
Endif
|
|
|
|
If lnSucces2 <> CT_SUCCES
|
|
This.trace(goExecutor.cEroare)
|
|
Messagebox(lcSql + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
lnSucces3 = SQLSetprop(m.lnHandle, "Transactions", 1)
|
|
|
|
If lnSucces3 <> CT_SUCCES
|
|
lcMesaj = 'Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!'
|
|
This.trace(m.lcMesaj)
|
|
Messagebox(m.lcMesaj, 0 + 48, 'Atentie!')
|
|
Endif
|
|
Endif && lnSucces
|
|
|
|
This.Disconnectroa()
|
|
|
|
Return m.lnSucces
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE Show
|
|
LPARAMETERS nStyle
|
|
* goApp.oTrace = goImportFrm
|
|
DODEFAULT(nStyle)
|
|
ENDPROC
|
|
|
|
PROCEDURE sql_temp_insert
|
|
Lparameters tcAlias, tcTableName
|
|
|
|
Local lcAlias, lcCursor, lnSucces
|
|
Local lcDate, lcFieldName, lcFieldType, lcFieldValue, lcFields, lcInsert, lcMesaj, lcNumber, lcSql
|
|
Local lcString, lcTableName, lcValues, lnCount
|
|
Local lnField
|
|
|
|
Private poIreg, pcTableName
|
|
Local lcVariable
|
|
|
|
If Empty(tcAlias)
|
|
lcAlias = 'ACTACTAN'
|
|
Else
|
|
lcAlias = Upper(Alltrim(tcAlias))
|
|
Endif
|
|
If Empty(tcTableName)
|
|
pcTableName = 'ACT_TEMP'
|
|
Else
|
|
pcTableName = Upper(Alltrim(tcTableName))
|
|
Endif
|
|
|
|
lcCursor = 'crs_Coloane'
|
|
lcSql = [SELECT COLUMN_NAME AS COLOANA from user_tab_columns WHERE table_name = ?pcTableName]
|
|
lnSucces = goExecutor.oExecute(GetHash('cSql=>' + m.lcSql + '??cCursor=>' + m.lcCursor))
|
|
If m.lnSucces <> CT_SUCCES
|
|
lcMesaj = 'Eroare la selectare coloane din ' + m.lcTableName + Chr(13) + goExecutor.cEroare
|
|
This.trace(m.lcMesaj)
|
|
AMESSAGEBOX(m.lcMesaj, 0 + 16, 'Eroare')
|
|
Endif
|
|
|
|
If m.lnSucces = CT_SUCCES
|
|
Select (lcAlias)
|
|
lnCount = Fcount()
|
|
Scan
|
|
lcFields = []
|
|
lcValues = []
|
|
lcInsert = []
|
|
Scatter Name poIreg
|
|
|
|
IF MOD(RECNO(), 20) = 0
|
|
thisform.trace('Salvez nota ' + TRANSFORM(RECNO()) + '/' + TRANSFORM(RECCOUNT()))
|
|
ENDIF
|
|
|
|
For lnField = 1 To lnCount
|
|
Select (lcAlias)
|
|
lcFieldName = Upper(Alltrim(Field(lnField)))
|
|
lcFieldType = Type(lcFieldName)
|
|
lcFieldValue = Evaluate(lcFieldName)
|
|
If lcFieldType = 'C'
|
|
lcVariable = '?ALLTRIM(poIreg.' + lcFieldName + ')'
|
|
Else
|
|
lcVariable = '?poIreg.' + lcFieldName
|
|
Endif
|
|
|
|
Select CRS_COLOANE
|
|
Locate For Upper(Alltrim(COLOANA)) == lcFieldName
|
|
If !Found()
|
|
Loop
|
|
Endif
|
|
lcFields = lcFields + [,] + lcFieldName
|
|
lcNumber = '0'
|
|
lcDate = ''
|
|
lcString = ''
|
|
|
|
&& FAC NULL ID-URILE CU VALOARE 0
|
|
If Inlist(lcFieldName, 'ID_SUCURSALA')
|
|
If poIreg.id_sucursala = 0
|
|
poIreg.id_sucursala = Null
|
|
Endif
|
|
Endif
|
|
lcValues = lcValues + [,] + lcVariable
|
|
|
|
*!* DO CASE
|
|
*!* CASE lcFieldType = 'N'
|
|
*!* IF EMPTY(lcFieldValue) OR ISNULL(lcFieldValue)
|
|
*!* lcNumber = '0'
|
|
*!* ELSE
|
|
*!* lcNumber = ALLTRIM(STR(lcFieldValue,24,4))
|
|
*!* ENDIF
|
|
|
|
*!* lcValues = lcValues + [,] + lcNumber
|
|
*!* CASE lcFieldType = 'C'
|
|
*!* IF EMPTY(lcFieldValue) OR ISNULL(lcFieldValue)
|
|
*!* lcString = ''
|
|
*!* ELSE
|
|
*!* lcString = ALLTRIM(lcFieldValue)
|
|
*!* ENDIF
|
|
|
|
*!* lcValues = lcValues + [,] + ['] + lcString + [']
|
|
*!* CASE INLIST(lcFieldType,'D','T')
|
|
*!* IF EMPTY(lcFieldValue) OR ISNULL(lcFieldValue)
|
|
*!* lcDate = ''
|
|
*!* ELSE
|
|
*!* lcDate = DTOS(lcFieldValue)
|
|
*!* ENDIF
|
|
*!* lcValues = lcValues + [,] + [TO_DATE('] + lcDate + [','YYYY-MM-DD')]
|
|
*!* ENDCASE
|
|
|
|
Endfor
|
|
|
|
lcFields = Substr(lcFields, 2)
|
|
lcValues = Substr(lcValues, 2)
|
|
|
|
&& INSERT INTO ACT_TEMP
|
|
lcInsert = [INSERT INTO ] + m.pcTableName + [ (] + m.lcFields + [) VALUES (] + m.lcValues + [)]
|
|
lnSucces = goExecutor.oExecute(GetHash('cSql=>' + m.lcInsert))
|
|
If lnSucces <> CT_SUCCES
|
|
This.Trace(goExecutor.cEroare)
|
|
DEBUG
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
|
Exit
|
|
Endif
|
|
|
|
Endscan
|
|
Endif
|
|
|
|
Use In (SELECT('crs_coloane'))
|
|
|
|
Return lnSucces
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE sterge_import
|
|
Local lcCursor, lcMesaj, lcSql, llContinuare, lnInregistrari, lnPercent, lnSucces, lnGrupe
|
|
PRIVATE gnAn, gnIdSucursala, gnIdUtil, gnLuna, pnCod, pcOptiune
|
|
pcOptiune = ''
|
|
lcMeniu = ''
|
|
lnSucces = This.Connectroa()
|
|
If lnSucces = CT_SUCCES
|
|
lnHandle = goConn.nHandle
|
|
else
|
|
Return
|
|
Endif
|
|
|
|
gnAn = Year(Thisform.txtData1.Value)
|
|
gnLuna = Month(This.txtData1.Value)
|
|
gnIdUtil = - 3
|
|
gnIdSucursala = Null
|
|
|
|
llContinuare = .F.
|
|
lcSql = [select distinct explicatia5 from act where an=?gnAn and Luna=?gnLuna and id_set=50100 and sters=0 order by explicatia5]
|
|
lcCursor = [cExplicatia5]
|
|
lnSucces = goExecutor.oExecute(GetHash('cSql=>' + m.lcSql + '??cCursor=>' + m.lcCursor))
|
|
IF m.lnSucces = CT_SUCCES
|
|
lcMeniu = [Toate tipurile de documente]
|
|
If m.lnSucces = CT_SUCCES
|
|
SELECT cExplicatia5
|
|
SCAN
|
|
lcMeniu = m.lcMeniu + ';' + ALLTRIM(explicatia5)
|
|
ENDSCAN
|
|
ENDIF
|
|
USE IN (SELECT(m.lcCursor))
|
|
|
|
lnOptiune = xmenu(m.lcMeniu)
|
|
llContinuare = (m.lnOptiune > 0)
|
|
pcOptiune = IIF(m.lnOptiune = 1, '', GETWORDNUM(m.lcMeniu, m.lnOptiune, ';'))
|
|
ELSE
|
|
This.Trace(goExecutor.cEroare)
|
|
MESSAGEBOX(goExecutor.cEroare)
|
|
m.llContinuare = .F.
|
|
ENDIF
|
|
|
|
IF m.llContinuare
|
|
lcSql = [select distinct cod from act where an=?gnAn and Luna=?gnLuna and id_set=50100 and sters=0] + IIF(m.lnOptiune = 1, '', ' and explicatia5 = ?pcOptiune')
|
|
lcCursor = [cCoduri]
|
|
lnSucces = goExecutor.oExecute(GetHash('cSql=>' + m.lcSql + '??cCursor=>' + m.lcCursor))
|
|
If m.lnSucces = CT_SUCCES
|
|
lnInregistrari = Reccount(m.lcCursor)
|
|
If m.lnInregistrari > 0
|
|
llContinuare = (Messagebox('Doriti sa stergeti ' + Alltrim(Str(m.lnInregistrari)) + ' documente ' + IIF(pcOptiune = '', '', ' cu explicatia5 = ' + m.pcOptiune + ' ') + 'din luna ' + Padl(m.gnLuna, 2, '0') + '/' + Alltrim(Str(m.gnAn)) + '?', 4 + 32, _Screen.Caption) = 6)
|
|
Else
|
|
Messagebox('Nu sunt inregistrari in luna ' + Padl(m.gnLuna, 2, '0') + '/' + Alltrim(Str(m.gnAn)), 0 + 64, _Screen.Caption)
|
|
llContinuare = .F.
|
|
ENDIF
|
|
ELSE
|
|
This.Trace(goExecutor.cEroare)
|
|
MESSAGEBOX(goExecutor.cEroare)
|
|
m.llContinuare = .F.
|
|
Endif
|
|
ENDIF
|
|
|
|
If !m.llContinuare
|
|
Use In (Select(m.lcCursor))
|
|
This.Disconnectroa()
|
|
Return
|
|
Endif
|
|
|
|
lnSucces = SQLSetprop(m.lnhandle, "Transactions", 2)
|
|
|
|
If lnSucces = CT_SUCCES
|
|
lcSql = [begin pack_contafin.init_scriere_act_rul_local(?gnIdUtil,?gnAn,?gnLuna, 1,0,?gnIdSucursala); end;]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + lcSql))
|
|
If lnSucces = CT_SUCCES
|
|
Select cCoduri
|
|
lnGrupe = MAX(INT(RECCOUNT() / 10), 1)
|
|
SCAN
|
|
pnCod = cod
|
|
If Mod(Recno(), m.lnGrupe) = 0
|
|
lnPercent = Round(Recno() / Reccount() * 100, 0)
|
|
This.Trace('Stergere ' + Alltrim(Str(m.lnPercent)) + '%')
|
|
Endif
|
|
|
|
|
|
lcSql = [begin pack_contafin.sterge_document(?pnCod); end;]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + lcSql))
|
|
If lnSucces = CT_INSUCCES
|
|
This.Trace(goExecutor.cEroare)
|
|
EXIT
|
|
Endif
|
|
ENDSCAN
|
|
ELSE
|
|
This.Trace(goExecutor.cEroare)
|
|
ENDIF
|
|
USE IN (SELECT('cCoduri'))
|
|
ELSE
|
|
This.Trace(goExecutor.cEroare)
|
|
ENDIF
|
|
|
|
If lnSucces = CT_INSUCCES
|
|
goExecutor.oExecute(GetHash('cSql=>ROLLBACK'))
|
|
lcMesaj = 'Stergerea nu s-a efectuat!'
|
|
Else
|
|
goExecutor.oExecute(GetHash('cSql=>COMMIT'))
|
|
lcMesaj = 'Stergerea s-a efectuat cu succes'
|
|
Endif
|
|
|
|
SQLSetprop(m.lnhandle, "Transactions", 1)
|
|
|
|
This.Disconnectroa()
|
|
|
|
This.Trace(m.lcMesaj)
|
|
MESSAGEBOX(m.lcMesaj, 0 + 48, _screen.Caption)
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE trace
|
|
LPARAMETERS tcMessage
|
|
|
|
This.edtInfo.Value = This.edtInfo.Value + TRANSFORM(NVL(tcMessage,'')) + CHR(13) + CHR(10)
|
|
this.edtInfo.SelStart = LEN(this.edtInfo.Value)
|
|
This.edtInfo.Refresh()
|
|
ENDPROC
|
|
|
|
PROCEDURE verificafactura
|
|
Lparameters toRec
|
|
Private gnAn, gnIdSucursala, gnIdUtil, gnLuna, gcExplicatia5, gdDataAct, gnIdSet, gnNrAct
|
|
|
|
Local lcMesaj, lcSql, lnHandle, lnInregistrari, lnSucces
|
|
lnInregistrari = 0
|
|
lnSucces = This.Connectroa()
|
|
If lnSucces = CT_SUCCES
|
|
lnHandle = goConn.nHandle
|
|
Endif
|
|
|
|
If lnSucces = CT_SUCCES
|
|
gnAn = toRec.an
|
|
gnLuna = toRec.luna
|
|
gnIdUtil = - 3
|
|
gnIdSucursala = Null
|
|
gnNrAct = toRec.nract
|
|
gdDataAct = toRec.dataact
|
|
gnIdSet = toRec.id_set
|
|
gcExplicatia5 = Alltrim(toRec.explicatia5)
|
|
|
|
lcSql = [select COUNT(*) as nr from act where sters = 0 and an = ?gnAn and luna = ?gnLuna and nract = ?gnNrAct and dataact = ?gdDataAct and id_set = ?gnIdSet and explicatia5 = ?gcExplicatia5]
|
|
lnSucces = goExecutor.oExecute(GetHash("cCursor=>cInregistrari??cSql=>" + lcSql))
|
|
|
|
If lnSucces = CT_SUCCES
|
|
If !Used('cInregistrari')
|
|
lnInregistrari = 1 && daca da eroare, consider duplicat ca sa nu se insereze din greseala
|
|
lnSucces = CT_INSUCCES
|
|
lcMesaj = 'Nu exista cursorul cInregistrari cu numarul de inregistrari ale facturii!'
|
|
This.trace(m.lcMesaj)
|
|
Messagebox(m.lcMesaj, 0 + 48, 'Atentie!')
|
|
Else
|
|
lnInregistrari = cInregistrari.nr
|
|
ENDIF
|
|
ELSE
|
|
lnInregistrari = 1 && daca da eroare, consider duplicat ca sa nu se insereze din greseala
|
|
This.trace(goExecutor.cEroare)
|
|
Messagebox(goExecutor.cEroare, 0 + 48, 'Atentie!')
|
|
ENDIF
|
|
|
|
USE IN (SELECT('cInregistrari'))
|
|
Endif && lnSucces
|
|
|
|
This.Disconnectroa()
|
|
|
|
Return (m.lnInregistrari > 0)
|
|
ENDPROC
|
|
|
|
PROCEDURE chkTVAIncasare.Valid
|
|
goApp.oSettings.SetVariable([general], [tva_incasare], thisform.chkTVAIncasare.Value)
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE cmdExport.Click
|
|
Close Databases All
|
|
|
|
Local llSucces, ldData1, loEx as Exception
|
|
ldData1 = Thisform.txtData1.Value
|
|
|
|
lnSucces = Thisform.ExportDate()
|
|
|
|
If m.lnSucces = CT_SUCCES
|
|
lnSucces = Thisform.CompleteazaParteneriROA()
|
|
|
|
If m.lnSucces = CT_SUCCES
|
|
lnSucces = Thisform.Creeazanote()
|
|
|
|
goapp.osettings.SetVariable("general", "last_data1", DTOC(thisform.txtData1.Value))
|
|
goapp.osettings.SetVariable("general", "last_data2", DTOC(thisform.txtData2.Value))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
Thisform.Trace('Import incheiat ' + IIF(m.lnSucces = CT_SUCCES, 'cu succes.', 'fara succes.'))
|
|
ENDPROC
|
|
|
|
PROCEDURE Command1.Click
|
|
Thisform.sterge_import()
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|