Initial: flux text FoxBin2Prg (git urmareste .??2 in-arbore, binarele VFP git-ignored)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
21
Programe/actualizari.prg
Normal file
21
Programe/actualizari.prg
Normal file
@@ -0,0 +1,21 @@
|
||||
*!* actualizari
|
||||
PROCEDURE actualizare_stoc_072010
|
||||
LPARAMETERS tnPretvIdentic
|
||||
|
||||
IF AMESSAGEBOX('Doriti sa actualizati stocul de marfa la pret de vanzare 19% la 24%?',4+32, _screen.Caption) <> 6
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
LOCAL lnPretvIdentic
|
||||
lnPretvIdentic = 0
|
||||
IF TYPE('tnPretvIdentic') = 'N'
|
||||
lnPretvIdentic = IIF(INLIST(m.tnPretvIdentic,0,1), m.tnPretvIdentic, m.lnPretvIdentic)
|
||||
ENDIF
|
||||
lcSql = [begin actualizare_stoc_072010(] + ALLTRIM(STR(lnPretvIdentic)) + [); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0+16, _screen.Caption)
|
||||
ELSE
|
||||
AMESSAGEBOX('Actualizarea s-a incheiat cu succes. Verificati notele contabile si stocul de marfa la pret de vanzare.',0+64, _screen.Caption)
|
||||
ENDIF
|
||||
ENDPROC
|
||||
963
Programe/cont2000.prg
Normal file
963
Programe/cont2000.prg
Normal file
@@ -0,0 +1,963 @@
|
||||
PARAMETERS tparam
|
||||
|
||||
&&& cont2003
|
||||
|
||||
PUBLIC gcNumeProgram, gcAntet
|
||||
LOCAL lchost, lcUserName, lcPassword, lnIdUtil, lnIdProgram, lcUserNameApp,lcPasswordApp
|
||||
STORE '' TO lchost, lcUserName, lcPassword, lcUserNameApp,lcPasswordApp,gcAntet
|
||||
STORE 0 TO lnIdUtil, lnIdProgram
|
||||
gcNumeProgram = [ROAGEST]
|
||||
_Screen.Icon=gcNumeProgram+[.ICO]
|
||||
*_screen.Icon = 'D:\CONTAFIN_ORACLE\COMUN\GRAFICE\ICONITE\GESTIUNI.ICO'
|
||||
|
||||
|
||||
IF !LIKE(gcNumeProgram + '*', UPPER(ALLTRIM(JUSTSTEM(SYS(16,0)))))
|
||||
Messagebox("Nu puteti porni acest program!",0+16,"Atentie")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
SET CENTURY ON
|
||||
SET DELETED ON
|
||||
SET DATE TO DMY
|
||||
SET MARK TO '/'
|
||||
SET EXCLUSIVE OFF
|
||||
SET CPDIALOG OFF
|
||||
SET TALK OFF
|
||||
SET SAFETY OFF
|
||||
SET ESCAPE OFF
|
||||
SET EXACT ON
|
||||
SET ANSI ON
|
||||
SET CONSOLE OFF
|
||||
SET NOTIFY OFF
|
||||
SET SECONDS OFF
|
||||
SET HOURS TO 24
|
||||
*SET NULLDISPLAY TO '*'
|
||||
SET NULLDISPLAY TO ''
|
||||
SET DECIMALS TO 4
|
||||
SET POINT TO '.'
|
||||
|
||||
*!* SET REPORTBEHAVIOR 90 && sa se seteze inainte de raport
|
||||
|
||||
|
||||
_SCREEN.WINDOWSTATE=2
|
||||
_SCREEN.VISIBLE=.T.
|
||||
|
||||
|
||||
|
||||
|
||||
*VARIABILE_______
|
||||
LOCAL lcMainClassLib
|
||||
LOCAL lcLastSetTalk,lcLastSetPath,lcLastSetClassLib,lcOnShutdown
|
||||
|
||||
*VARIABILE__________________________________________________________________________
|
||||
DECLARE nror[65000]
|
||||
DECLARE RTVA[22,2]
|
||||
err1=.F.
|
||||
|
||||
PUBLIC CRLF
|
||||
STORE CHR(13) + CHR(10) TO CRLF
|
||||
PUBLIC pcNl,pcAn
|
||||
STORE "" TO pcNl,pcAn && se initializeaza in start00
|
||||
|
||||
PUBLIC pcTitlu ,pl_verificat
|
||||
STORE "" TO pcTitlu
|
||||
STORE .F. TO pl_verificat
|
||||
|
||||
PUBLIC BUTON, luna_inchisa, luna_neplatita, PRIMADATA, m.ctva, m.ctvam, m.ctvai, antet, m.nivel
|
||||
PUBLIC OStart,OSETVIZ,OSETTULBAR,OSETINSTRUM,orm,OTEXT,OJUR,osetgest,tlbr_INSTR,tlbr_VIZ,oprinc,DIRGEN
|
||||
PUBLIC pcapsocsub,pcapsocvar
|
||||
pcapsocsub=0
|
||||
pcapsocvar=0
|
||||
m.nivel = 0
|
||||
PUBLIC a4
|
||||
a4=.T.
|
||||
m.nrgrup=999
|
||||
|
||||
STORE .F. TO luna_inchisa,tlbr_INSTRum,tlbr_VIZ
|
||||
STORE 1 TO BUTON,col_menu
|
||||
STORE .T. TO PRIMADATA,luna_neplatita
|
||||
|
||||
*-- Save and configure environment.***********************
|
||||
|
||||
lcLastSetTalk=SET("TALK")
|
||||
SET TALK OFF
|
||||
lcLastSetPath=SET("PATH")
|
||||
|
||||
SET PATH TO ;DATE;INCLUDE;FERESTRE;GRAFICE;HELP;CLASE;MENIURI;PROGRAME;RAPOARTE;PROGS;LIBS;
|
||||
PUSH MENU _MSYSMENU
|
||||
lcLastSetClassLib=SET("CLASSLIB")
|
||||
lcMainClassLib="clase\cont2000"
|
||||
|
||||
|
||||
|
||||
*CLASE__________________________________________________________
|
||||
SET CLASSLIB TO (lcMainClassLib) ADDITIVE
|
||||
SET CLASSLIB TO GESTIUNI ADDITIVE
|
||||
SET CLASSLIB TO CAUT ADDITIVE
|
||||
*SET CLASSLIB TO FERESTREBAZA ADDITIVE
|
||||
*SET CLASSLIB TO CONT2000-1 ADDITIVE
|
||||
*SET CLASSLIB TO CONT2000-2 ADDITIVE
|
||||
*SET CLASSLIB TO CONT2000-3 ADDITIVE
|
||||
SET CLASSLIB TO BAZA ADDITIVE
|
||||
SET CLASSLIB TO comun ADDITIVE
|
||||
*!* messagebox in romana - ar trebui bagat intr-o librarie de utilitati
|
||||
*!* messagebox.vcx, functia amessagebox in oproceduri_comune, imagini mb_*.bmp, messagebox.h
|
||||
SET CLASSLIB TO messagebox ADDITIVE
|
||||
SET CLASSLIB TO registry ADDITIVE
|
||||
SET CLASSLIB TO cauta_alfa_forms.vcx ADDITIVE
|
||||
|
||||
&& CLASE ORACLE
|
||||
SET CLASSLIB TO DECABAZA ADDITIVE
|
||||
SET CLASSLIB TO onomenclatoare ADDITIVE
|
||||
SET CLASSLIB TO stocuri.vcx ADDITIVE
|
||||
SET CLASSLIB TO rulaje.vcx ADDITIVE
|
||||
SET CLASSLIB TO ointroduceri ADDITIVE
|
||||
SET CLASSLIB TO ointroduceri_web ADDITIVE
|
||||
SET CLASSLIB TO ointroduceri_depozit ADDITIVE
|
||||
SET CLASSLIB TO overificari ADDITIVE
|
||||
SET CLASSLIB TO ferestre_oracle ADDITIVE
|
||||
SET CLASSLIB TO ferestre_cere_date.vcx ADDITIVE
|
||||
SET CLASSLIB TO configurare.vcx ADDITIVE
|
||||
SET CLASSLIB TO serii_numere.vcx ADDITIVE
|
||||
SET CLASSLIB TO omodificari.vcx ADDITIVE
|
||||
SET CLASSLIB TO ocompensari.vcx ADDITIVE
|
||||
SET CLASSLIB TO caut_ora ADDITIVE
|
||||
SET CLASSLIB TO onote_contabile ADDITIVE
|
||||
SET CLASSLIB TO otoolbar ADDITIVE
|
||||
SET CLASSLIB TO bon_fisc ADDITIVE &&serii bonuri fiscale
|
||||
SET CLASSLIB TO onom_articole ADDITIVE
|
||||
SET CLASSLIB TO onom_retete ADDITIVE
|
||||
Set Classlib To oinventar ADDITIVE
|
||||
|
||||
SET CLASSLIB TO orapoarte ADDITIVE
|
||||
SET CLASSLIB TO orapoarte_gestiuni ADDITIVE
|
||||
SET CLASSLIB TO orapoarte_parametri ADDITIVE
|
||||
SET CLASSLIB TO ONOM_CURS ADDITIVE
|
||||
|
||||
SET CLASSLIB TO ctl32_statusbar_fals.vcx additive
|
||||
SET CLASSLIB TO ctl32_common.vcx additive
|
||||
SET CLASSLIB TO ctl32_structs.vcx additive
|
||||
SET CLASSLIB TO ctl32_progressbar.vcx additive
|
||||
SET CLASSLIB TO ctl32_balloontip.vcx additive
|
||||
SET CLASSLIB TO ocriterii.vcx ADDITIVE
|
||||
SET CLASSLIB TO oavize.vcx ADDITIVE
|
||||
|
||||
*!* v 2.0.62
|
||||
Set Classlib To oschimbare_pret.vcx additive
|
||||
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
|
||||
|
||||
*PROCEDURI______________________________________________________
|
||||
SET PROCEDURE TO PROCEDURI
|
||||
SET PROCEDURE TO acces_meniu additive
|
||||
SET PROCEDURE TO cauta_alfa additive
|
||||
*SET PROCEDURE TO totPROC ADDITIVE
|
||||
*SET PROCEDURE TO refverif ADDITIVE
|
||||
*SET PROCEDURE TO PROCMENIU ADDITIVE
|
||||
*SET PROCEDURE TO TOTV ADDITIVE
|
||||
SET PROCEDURE TO pmenu ADDITIVE
|
||||
SET PROCEDURE TO proceduri_comune ADDITIVE
|
||||
*SET PROCEDURE TO totv.prg ADDITIVE
|
||||
SET PROCEDURE TO quitapp ADDITIVE
|
||||
SET PROCEDURE TO init_program ADDITIVE
|
||||
SET PROCEDURE TO oproceduri_listari.prg ADDITIVE
|
||||
SET PROCEDURE TO oproceduri_configurare.prg ADDITIVE
|
||||
SET PROCEDURE TO oproceduri_articole.prg ADDITIVE
|
||||
SET PROCEDURE TO oproceduri_retete.prg ADDITIVE
|
||||
SET PROCEDURE TO orapoarte.prg ADDITIVE
|
||||
SET PROCEDURE TO mesaje ADDITIVE
|
||||
SET PROCEDURE TO oserii_numere.prg ADDITIVE
|
||||
SET PROCEDURE TO oexport.prg ADDITIVE
|
||||
SET PROCEDURE TO wwConfig.prg ADDITIVE
|
||||
SET PROCEDURE TO proceduri_rapoarte.prg additive
|
||||
SET PROCEDURE TO OPROCEDURI_CURS.PRG ADDITIVE
|
||||
Set procedure to orapoarte_dinamice.prg additive
|
||||
|
||||
&& PROCEDURI ORACLE
|
||||
SET PROCEDURE TO GENCURSOR.PRG ADDITIVE
|
||||
SET PROCEDURE TO OPROCEDURI_COMUNE.PRG ADDITIVE
|
||||
SET PROCEDURE TO OINIT_OPTIUNI.PRG ADDITIVE
|
||||
SET PROCEDURE TO updateserver.prg ADDITIVE
|
||||
SET PROCEDURE TO oinainte_de.prg ADDITIVE
|
||||
SET PROCEDURE TO ooperatii_comune.prg ADDITIVE
|
||||
|
||||
SET PROCEDURE TO Ocompensari.PRG ADDITIVE
|
||||
SET PROCEDURE TO OPROCEDURI_aMS.PRG ADDITIVE
|
||||
SET PROCEDURE TO oproceduri_rulaje additive
|
||||
SET PROCEDURE TO oproceduri_stocuri additive
|
||||
SET PROCEDURE TO OINTRODUCERI ADDITIVE
|
||||
SET PROCEDURE TO oHeader.prg ADDITIVE
|
||||
SET PROCEDURE TO proceduri_excel.PRG ADDITIVE
|
||||
SET PROCEDURE TO onomenclatoare.PRG ADDITIVE
|
||||
*!* SET PROCEDURE TO orapoarte.prg ADDITIVE
|
||||
*!* SET PROCEDURE TO orap_trezorerie ADDITIVE
|
||||
*!* SET PROCEDURE TO omeniu_initializari ADDITIVE
|
||||
SET PROCEDURE TO osecurity ADDITIVE
|
||||
SET PROCEDURE TO ocautare ADDITIVE
|
||||
SET PROCEDURE TO orefaceri ADDITIVE
|
||||
SET PROCEDURE TO ofacturare_comun.PRG ADDITIVE
|
||||
SET PROCEDURE TO ofacturare_stoc.PRG ADDITIVE
|
||||
|
||||
&& modificare 06.03
|
||||
&& casa de marcat
|
||||
SET PROCEDURE TO oproceduri_casademarcat ADDITIVE
|
||||
SET PROCEDURE TO oproceduri_casa_marcat_e500 ADDITIVE
|
||||
|
||||
&& sfarsit modificare 06.03
|
||||
SET PROCEDURE TO oproceduri_casa_marcat_mp500 ADDITIVE
|
||||
*!* 12.05.2006
|
||||
*!* marius mutu
|
||||
SET PROCEDURE TO oproceduri_util.prg ADDITIVE
|
||||
*!*
|
||||
|
||||
*!* 16.06.2006
|
||||
*!* marius.mutu
|
||||
SET PROCEDURE TO wwxmlhttp.prg ADDITIVE
|
||||
SET PROCEDURE TO ini.prg ADDITIVE
|
||||
|
||||
*!* 25.08.2006
|
||||
*!* marius.mutu
|
||||
SET PROCEDURE TO odocumente.prg ADDITIVE
|
||||
|
||||
*!* 28.05.2007
|
||||
*!* marius.mutu
|
||||
SET PROCEDURE TO regex.prg ADDITIVE
|
||||
SET PROCEDURE TO wwutils.prg ADDITIVE
|
||||
SET PROCEDURE TO inchidere_k ADDITIVE
|
||||
|
||||
*!* v 2.0.62
|
||||
Set procedure to oschimbare_pret.prg additive
|
||||
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
|
||||
|
||||
IF PCOUNT() = 1 AND TYPE('tparam') = 'C'
|
||||
glParametri = .T.
|
||||
PRIVATE laParametri
|
||||
DECLARE LAPARAMETRI[1]
|
||||
lcParam = ALLTRIM(tParam)
|
||||
lnNr = lista2array(lcParam,@laParametri,";")
|
||||
IF lnNr < 5
|
||||
aMESSAGEBOX('Numar incorect de parametri',0+16,'Eroare')
|
||||
RETURN
|
||||
ENDIF
|
||||
lcHost = laParametri[1]
|
||||
lcUserName = laParametri[2]
|
||||
lcPassword = laParametri[3]
|
||||
lnIdUtil = ROUND(VAL(laParametri[4]),0)
|
||||
lnIdProgram = ROUND(VAL(laParametri[5]),0)
|
||||
ELSE
|
||||
glParametri = .F.
|
||||
lcHost = 'JCSSERVER'
|
||||
lcUserName = 'CONTAFIN_ORACLE'
|
||||
lcPassword = ''
|
||||
lnIdUtil = 0
|
||||
lnIdProgram = 0
|
||||
|
||||
ENDIF
|
||||
|
||||
PUBLIC glVerificTabel && daca se verifica structura tabelelor in totv.prg
|
||||
glVerificTabel=.T.
|
||||
|
||||
PUBLIC glQuit
|
||||
glQuit = .F.
|
||||
|
||||
PUBLIC gnIdIstoric
|
||||
gnIdIstoric = 0
|
||||
|
||||
|
||||
PUBLIC gcAppPath,gcAppName, gcTempPath, gcCaleServerDate, gcUserNameApp, gcPasswordApp
|
||||
STORE '' TO gcUserNameApp, gcPasswordApp, gnNivelUtilizator, gnGrupUtilizator, gcAcces
|
||||
PUBLIC gcSchemaPath
|
||||
STORE '' TO gcSchemaPath
|
||||
*!* 10.09.2007
|
||||
*!* marius.mutu
|
||||
*!* folosesc shortpath ca sa pot instala in "c:\program files\..."
|
||||
*!* gcAppPath = UPPER(ADDBS(JUSTPATH(SYS(16,0)))) && d:\contafin\cont2003\
|
||||
gcAppPath = ADDBS(ShortPath(GetAppStartPath())) && wwutils.prg
|
||||
gcAppName = ALLT(UPPE(JUSTSTEM(SYS(16,0)))) && "cont2003"
|
||||
Set Path To Addbs(Substr(gcAppPath,1,Rat([\],gcAppPath,2)))+[COMUNROA\] Additive && modificare v 2.0.80
|
||||
|
||||
gcAppPath = STRTRAN(gcAppPath, "\PROGRAME", "")
|
||||
|
||||
gcUtilizatoriPath = gcAppPath + "UTILIZATORI\"
|
||||
|
||||
_reportpreview = gcAppPath + "reportpreview.app"
|
||||
|
||||
STORE "" TO gcTempPath, gcCaleServerDate
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*** DIRGEN
|
||||
liat=RAT("\",gcAppPath,2)
|
||||
DIRGEN=ADDBS(LEFT(gcAppPath,liat-1))
|
||||
|
||||
gcSecurityPath = DIRGEN + 'Security\'
|
||||
gcSecurityFile = gcSecurityPath + 'ROA_SECURITY.TXT'
|
||||
|
||||
CD &DIRGEN
|
||||
|
||||
PRIVATE gcGeneralIniFile
|
||||
gcGeneralIniFile = DIRGEN + "settings.ini"
|
||||
IF !FILE(gcGeneralIniFile)
|
||||
|
||||
TEXT TO lcSettings NOSHOW
|
||||
[errors]
|
||||
host=
|
||||
ENDTEXT
|
||||
|
||||
STRTOFILE(lcSettings, gcGeneralIniFile)
|
||||
ENDIF
|
||||
|
||||
|
||||
PRIVATE poLog,goLog && obiect pt logarea mesajelor sistemului
|
||||
poLog = NEWOBJECT("Log_Mesaje","Log_Mesaje.prg")
|
||||
goLog = poLog
|
||||
*!* Locale
|
||||
Set Classlib To locale Additive
|
||||
Private gcLocalePath, goLocale, gcLocale
|
||||
gcLocalePath = gcAppPath + "Locale\"
|
||||
*!* lcLocaleDb = gcLocalePath + "locale.dbc"
|
||||
*!* Open Database (m.lcLocaleDb)
|
||||
*!* modificare ROAGEST v 2.0.107
|
||||
*!* goLocale=Newobject("Locale","Locale.vcx")
|
||||
lcLanguage = getini(gcGeneralIniFile,"locale","lang")
|
||||
llLocale= getini(gcGeneralIniFile,"locale","llocale")
|
||||
*!* IF !EMPTY(m.llLocale) AND m.llLocale<>'0'
|
||||
*!* goLocale.llocale=.T.
|
||||
*!* ENDIF
|
||||
*!* modificare ROAGEST v 2.0.107 ^
|
||||
If Empty(m.lcLanguage)
|
||||
gcLocale = 'Romana'
|
||||
Else
|
||||
gcLocale = m.lcLanguage
|
||||
Endif
|
||||
*!* modificare ROAGEST v 2.0.107
|
||||
Local lcObjLocale
|
||||
If gcLocale = 'Romana'
|
||||
lcObjLocale = [Locale_dummy]
|
||||
Else
|
||||
lcObjLocale = [Locale]
|
||||
Endif
|
||||
goLocale=Newobject(lcObjLocale,"Locale.vcx")
|
||||
If !Empty(m.llLocale) And m.llLocale<>'0'
|
||||
goLocale.llocale=.T.
|
||||
Endif
|
||||
Release lcObjLocale
|
||||
*!* modificare ROAGEST v 2.0.107 ^
|
||||
goLocale.locale = gcLocale
|
||||
*!* Locale ^
|
||||
|
||||
IF verificari()
|
||||
_SCREEN.VISIBLE=.T.
|
||||
DO mesaj WITH "Se fac verificari programului","Va rugam reveniti"
|
||||
glQuit= .T.
|
||||
QUIT
|
||||
ENDIF
|
||||
|
||||
*!* IF !Debug_Start()
|
||||
*!* lcParam=tparam
|
||||
*!* WAIT WINDOW 'lcParam ' +lcParam
|
||||
*!* IF EMPTY(tparam) OR (TYPE('tParam')='C' AND !verific_start(tparam,dirgen,gcAppName))
|
||||
*!* _SCREEN.VISIBLE=.T.
|
||||
*!* DO mesaj WITH "Programul trebuie pornit doar din START",""
|
||||
*!* QUIT
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PUBLIC tipar,SER_PERM,SER_PERI,VERSIUNE
|
||||
STORE .F. TO SER_PERM,SER_PERI
|
||||
|
||||
|
||||
***************************** VARIABILE ORACLE
|
||||
PRIVATE goUtilizator
|
||||
private gnHandle,gnidutil,GCCODFISCAL,GCADRESA,GCNUMEFIRMA,GCMONEDA,GNDIFZILE, gcUserNameApp, gcPasswordApp
|
||||
PRIVATE gnButon && variabila pentru renunt si terminat
|
||||
STORE 2 TO gnButon
|
||||
STORE '' TO GCCODFISCAL,GCADRESA,GCNUMEFIRMA,GCMONEDA, gcUserNameApp, gcPasswordApp, gcNivelUtilizator, gcGrupUtilizator, gcAcces
|
||||
gnHandle = -1
|
||||
gnidutil = 0
|
||||
|
||||
PRIVATE gcHost, gcUserName, gcPassword,gofundal, gnIdProgram, gnId_Prg_Owner
|
||||
gnIdProgram = 0
|
||||
gnId_Prg_Owner = 0
|
||||
gofundal=''
|
||||
|
||||
PRIVATE goFirma,gnIdFirma,gcFirma,gnAn,gnLuna && ,gnPA,gnPC
|
||||
&& STORE 0 TO gnPA,gnPC && nr. de zecimale afisare, calcul
|
||||
STORE null TO gofirma
|
||||
STORE 0 TO gnIdFirma,gnAn,gnLuna
|
||||
STORE '' TO gcFirma
|
||||
|
||||
PRIVATE glUltimaLuna,glPrimaLuna, glLunaBuna,glLuna_neplatita,glLunaInchisa
|
||||
|
||||
STORE .F. to glUltimaLuna,glPrimaLuna, glLunaBuna,glLuna_neplatita,glLunaInchisa
|
||||
|
||||
***toolbar***
|
||||
PRIVATE otool,ohelp
|
||||
STORE '' TO otool,ohelp
|
||||
***toolbar***
|
||||
|
||||
PRIVATE gcS && schema firmei
|
||||
STORE 'CONTAFIN' TO gcS
|
||||
|
||||
IF TYPE('laparametri',1)="A"
|
||||
IF ALEN(laParametri,1)=10
|
||||
gnAn = VAL(laParametri[7])
|
||||
gnLuna = VAL(laParametri[8]) &&lansare noua
|
||||
gcS = laParametri[9]
|
||||
gnIdFirma = VAL(laParametri[10])
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
PRIVATE gcCopyRight
|
||||
gcCopyRight = '<27> ROA Romfast SRL'
|
||||
|
||||
&& modificare 06.03
|
||||
&& casa de marcat
|
||||
PRIVATE glListareBonFiscal
|
||||
STORE .F. TO glListareBonFiscal
|
||||
&& sfarsit modificare 06.03
|
||||
|
||||
&& obiect global wrap pt sqlexec cu text eroare si succes
|
||||
PRIVATE goExecutor,goConn,goExport
|
||||
goExecutor = CREATEOBJECT("oExecutor")
|
||||
goConn = CREATEOBJECT("oConn")
|
||||
goExport = Createobject("oExportConfig")
|
||||
|
||||
PRIVATE goMyXMLHTTP
|
||||
lcHostErrors = getini(gcGeneralIniFile,'errors','host')
|
||||
goMyXMLHTTP = CREATEOBJECT("MyXMLHTTP", lcHostErrors)
|
||||
|
||||
&& obiect global pt luna aleasa din calendar
|
||||
PRIVATE goCalendar
|
||||
STORE null TO goCalendar
|
||||
|
||||
|
||||
gcHost = lcHost
|
||||
gcUserName = lcUserName
|
||||
gcPassword = lcPassword
|
||||
gcUserNameApp = lcUserNameApp
|
||||
gcPasswordApp = lcPasswordApp
|
||||
gnIdUtil = lnIdUtil
|
||||
gnIdProgram = lnIdProgram
|
||||
|
||||
|
||||
IF !glParametri
|
||||
lnValid = getcrsSecurity(gcSecurityFile)
|
||||
IF lnValid > 0
|
||||
IF USED('crsHost')
|
||||
SELECT crsHost
|
||||
GO top
|
||||
gcHost = ALLTRIM(host)
|
||||
gcUserName = ALLTRIM(schema)
|
||||
gcPassword = ALLTRIM(pwd)
|
||||
USE IN crsHost
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
***************************** VARIABILE ORACLE
|
||||
|
||||
&& DECLARARE VARIABILE GLOBALE SPECIFICE APLICATIEI CARE NU SE AFLA IN OPTIUNI_FIRMA
|
||||
&& (SE AFLA IN DIRECTORUL PROIECTULUI, NU IN COMUN)
|
||||
*DO OVARIABILE_GLOBALE.PRG
|
||||
|
||||
|
||||
USE &gcAppPath\SERCONT IN 0 ALIAS SER SHARED
|
||||
SELECT SER
|
||||
GO TOP
|
||||
tipar=TIP
|
||||
SER_PERM=SER_PERMAN
|
||||
SER_PERI=SER_PERIOD
|
||||
VERSIUNE=VERcont
|
||||
MODEL_PROGRAM=MODEL
|
||||
USE IN SER
|
||||
parolamea=SUBSTR(tipar,MONTH(DATE()),1)
|
||||
parolamea=parolamea+ALLT(STR(DAY(DATE())))+ALLT(STR(MONTH(DATE())))
|
||||
|
||||
IF !_DEBUG()
|
||||
IF SER_PERM AND !verif_ser_perm()
|
||||
QUIT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
PUBLIC NUMEPROGRAM,MENIUPROGRAM,FUNDALPROGRAM
|
||||
|
||||
|
||||
|
||||
|
||||
m.contab = 'GESIUNI'
|
||||
NUMEPROGRAM = 'ROA - Gestiuni'
|
||||
MENIUPROGRAM = gcAppPath + "meniuri\contGEST.mpr"
|
||||
FUNDALPROGRAM = gcAppPath + "FERESTRE\FUNDAL.scx"
|
||||
_program='gest'
|
||||
|
||||
*-- Configure application object.*****************************
|
||||
|
||||
Local laVersion
|
||||
Dimension laVersion(12)
|
||||
If Agetfileversion(laVersion, Sys(16,0)) > 0
|
||||
NUMEPROGRAM = laVersion(10)
|
||||
Endif
|
||||
Release laVersion
|
||||
|
||||
|
||||
lcOnShutdown="ShutDown()"
|
||||
ON SHUTDOWN &lcOnShutdown
|
||||
ON ERROR ErrorHandler(ERROR(),PROGRAM(),LINENO())
|
||||
_SHELL="DO Cleanup IN progs\cont2003"
|
||||
|
||||
*-- Instantiate application object.***************************
|
||||
RELEASE goApp
|
||||
PUBLIC goApp
|
||||
goApp=CREATEOBJECT("cApplication")
|
||||
|
||||
goApp.SetCaption(NUMEPROGRAM)
|
||||
goApp.cStartupMenu=MENIUPROGRAM
|
||||
*goApp.cStartupForm=FUNDALPROGRAM
|
||||
goApp.cStartupForm = DIRGEN + "COMUN\ferestre\frm_login.scx"
|
||||
|
||||
*-- Show application.
|
||||
goApp.SHOW
|
||||
|
||||
|
||||
|
||||
*-- Release application.
|
||||
RELEASE goApp
|
||||
|
||||
*-- Restore default menu.
|
||||
POP MENU _MSYSMENU
|
||||
|
||||
*-- Restore environment.
|
||||
ON ERROR
|
||||
ON SHUTDOWN
|
||||
IF NOT lcLastSetClassLib==SET("classlib")
|
||||
RELEASE CLASSLIB (lcMainClassLib)
|
||||
ENDIF
|
||||
IF EMPTY(lcLastSetPath)
|
||||
SET PATH TO
|
||||
ELSE
|
||||
SET PATH TO &lcLastSetPath
|
||||
ENDIF
|
||||
IF lcLastSetTalk=="ON"
|
||||
SET TALK ON
|
||||
ELSE
|
||||
SET TALK OFF
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
* FUNCTII______________________________________________________________________
|
||||
FUNCTION ErrorHandler(nError,cMethod,nLine)
|
||||
LOCAL lcErrorMsg,lcCodeLineMsg
|
||||
|
||||
WAIT CLEAR
|
||||
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)
|
||||
lcErrorMsg=lcErrorMsg+"Method: "+cMethod
|
||||
lcCodeLineMsg=MESSAGE(1)
|
||||
IF BETWEEN(nLine,1,10000) AND NOT lcCodeLineMsg="..."
|
||||
lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine))
|
||||
IF NOT EMPTY(lcCodeLineMsg)
|
||||
lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF TYPE('goMyXMLHTTP') = 'O'
|
||||
lcLunaHTTP = IIF(TYPE('gnLuna') = 'N', TRANSFORM(gnLuna) + "/","") + IIF(TYPE('GNAN') = 'N', TRANSFORM(gnAn),"")
|
||||
lcErrorMsgHTTP = SYS(0) + ":" + IIF(TYPE('GCS')='C'," " + GCS,"") + ": " + lcLunaHTTP + CHR(13) +CHR(10) + lcErrorMsg + ;
|
||||
CHR(13) +CHR(10) + CHR(13) + CHR(10) + GETCALLSTACK()
|
||||
lcUserName = gcUserNameApp
|
||||
lcProgram = JUSTSTEM(SYS(16,0))
|
||||
goMyXMLHTTP.postError(lcErrorMsgHTTP, lcUserName, lcProgram)
|
||||
ENDIF
|
||||
|
||||
IF _vfp.StartMode = 0
|
||||
DEBUG
|
||||
SUSPEND
|
||||
ENDIF
|
||||
IF AMESSAGEBOX(lcErrorMsg,17,_SCREEN.CAPTION)#1
|
||||
ON ERROR
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
ENDFUNC
|
||||
|
||||
|
||||
|
||||
FUNCTION SHUTDOWN
|
||||
IF start_nou()
|
||||
=End_Istoric(gnIdIstoric, ADDBS(DIRGEN)+"DATERETEA\", "START_ISTORIC")
|
||||
ENDIF
|
||||
IF TYPE("goApp")=="O" AND NOT ISNULL(goApp)
|
||||
RETURN goApp.OnShutDown()
|
||||
ENDIF
|
||||
Cleanup()
|
||||
QUIT
|
||||
ENDFUNC
|
||||
|
||||
|
||||
FUNCTION Cleanup
|
||||
|
||||
IF CNTBAR("_msysmenu")=7
|
||||
RETURN
|
||||
ENDIF
|
||||
ON ERROR
|
||||
ON SHUTDOWN
|
||||
SET CLASSLIB TO
|
||||
SET PATH TO
|
||||
CLEAR ALL
|
||||
CLOSE ALL
|
||||
POP MENU _MSYSMENU
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*-----------------------------------------------------
|
||||
|
||||
FUNCTION verif_ser_perm
|
||||
CLEAR
|
||||
|
||||
RETURN PORNIRE()
|
||||
********
|
||||
*?pornire()
|
||||
|
||||
FUNCTION PORNIRE
|
||||
SET EXACT ON
|
||||
PRIVATE calewin,calesys,checksum1,checksum2,serinreg,serdisk,file1,file2,valret,serdisktemp,ser1,ser2,key1,KEY2
|
||||
STORE '' TO calewin,serinreg,serdisk,calesys,serdisktemp,catehd,ser1,ser2,key1,KEY2
|
||||
STORE 0 TO checksum1,checksum2
|
||||
STORE .T. TO valret
|
||||
DECLARE INTEGER SHGetFolderPath IN SHFOLDER.DLL ;
|
||||
INTEGER hwndOwner, ;
|
||||
INTEGER nFolder, ;
|
||||
INTEGER hToken, ;
|
||||
INTEGER dwFlags, ;
|
||||
STRING @ pszPath
|
||||
DECLARE INTEGER GetActiveWindow IN WIN32API
|
||||
#DEFINE CSIDL_WINDOWS 36
|
||||
#DEFINE CSIDL_SYSTEM 37
|
||||
#DEFINE CSIDL_PROGRAMS 38
|
||||
lcPath = REPL(CHR(0),261)
|
||||
=SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath)
|
||||
calewin=LEFT(lcPath,AT(CHR(0),lcPath)-1)
|
||||
lcPath = REPL(CHR(0),261)
|
||||
=SHGetFolderPath(GetActiveWindow(),CSIDL_SYSTEM,0,0,@lcPath)
|
||||
calesys=LEFT(lcPath,AT(CHR(0),lcPath)-1)
|
||||
&&se verifica existenta celor trei fisiere
|
||||
IF (NOT FILE(calesys+'\diskserial.dll')) OR (NOT FILE(calesys+'\getmacip.dll')) OR (NOT FILE(calewin+'\comdir.snr'))
|
||||
valret=.F.
|
||||
ENDIF
|
||||
IF valret
|
||||
file1=FILETOSTR(calesys+'\diskserial.dll')
|
||||
checksum1=SYS(2007,file1)
|
||||
file2=FILETOSTR(calesys+'\getmacip.dll')
|
||||
checksum2=SYS(2007,file2)
|
||||
&&severifica daca dll-urile nu au fost modificate
|
||||
IF (VAL(checksum1) != 58755) OR (VAL(checksum2) != 30476)
|
||||
valret=.F.
|
||||
ENDIF
|
||||
ENDIF
|
||||
&&se citesc seriile tutturor celor patru hard disk-uri posibile(pe IDE primary master,primary slave...)
|
||||
&&se tine minte primul cu seria nenula-daca nu s-a putut citi seria de la nici unul se pune o serie default
|
||||
&&seria default este "NUAREHAR"
|
||||
IF valret
|
||||
DECLARE INTEGER GetSerialNumber IN diskSerial.DLL INTEGER ,STRING
|
||||
catehd=0
|
||||
FOR i=0 TO 3
|
||||
serdisktemp=SPACE(40)
|
||||
GetSerialNumber(i,@serdisktemp)
|
||||
IF (LEN(ALLTRIM(serdisktemp))!=0) AND (catehd=0)
|
||||
serdisktemp=sircaracter(serdisktemp)
|
||||
serdisk=serdisktemp
|
||||
catehd=catehd+1
|
||||
ENDIF
|
||||
ENDFOR
|
||||
IF (LEN(ALLTRIM(serdisk))=0)
|
||||
serdisk='NUAREHAR'
|
||||
ELSE
|
||||
IF ((LEN(ALLTRIM(serdisk))>0) AND (LEN(ALLTRIM(serdisk))<8))
|
||||
serdisk=serdisk+REPLICATE('1',8-LEN(ALLTRIM(serdisk)))
|
||||
ENDIF
|
||||
ENDIF
|
||||
serdisk=SUBSTR(ALLTRIM(serdisk),LEN(ALLTRIM(serdisk))-7,8)
|
||||
ENDIF
|
||||
&&se citeste din comdir.snr seria de inregistrare si se verifica egalitatea cu seria obtinuta anterior
|
||||
IF valret
|
||||
gnFileHandle = FOPEN(calewin+'\comdir.snr')
|
||||
nSize = FSEEK(gnFileHandle, 0, 2) && Move pointer to EOF
|
||||
IF nSize!=9
|
||||
valret=.F.
|
||||
ELSE
|
||||
= FSEEK(gnFileHandle, 0, 0) && Move pointer to BOF
|
||||
cString = FREAD(gnFileHandle,9)
|
||||
ser1=SUBSTR(cString,1,4)
|
||||
ser2=SUBSTR(cString,5,4)
|
||||
key1=SUBSTR(cString,9,1)
|
||||
KEY2=DECTOBIN(ALLTRIM(HEXDEC(key1)))
|
||||
serinreg=decodare1(ALLTRIM(UPPER(ser1)),KEY2)+decodare1(ALLTRIM(UPPER(ser2)),KEY2)
|
||||
IF serdisk!=serinreg
|
||||
valret=.F.
|
||||
ENDIF
|
||||
ENDIF
|
||||
= FCLOSE(gnFileHandle)
|
||||
ENDIF
|
||||
seriedisk1=serdisk
|
||||
serieinreg1=serinreg
|
||||
ON ERROR valret=.F.
|
||||
RETURN valret
|
||||
*************
|
||||
FUNCTION decodare1
|
||||
PARAMETERS lstring,CHEIE
|
||||
LOCAL lens,poz1,poz2,POZ3,lret,LRET2,lcstring,val1,lret1
|
||||
lret=''
|
||||
lret1=''
|
||||
LRET2=''
|
||||
lcstring=ALLTRIM(UPPER(lstring))
|
||||
lens=LEN(lcstring)
|
||||
FOR i=1 TO 4
|
||||
poz1=SUBSTR(lcstring,i,1)
|
||||
val1=ASC(poz1)
|
||||
POZ3=SUBSTR(CHEIE,i,1)
|
||||
DO CASE
|
||||
CASE val1>=48 AND val1<=57
|
||||
IF ((val1-47)+INT(VAL(POZ3)))<=10
|
||||
poz2=CHR(val1+INT(VAL(POZ3)))
|
||||
ELSE
|
||||
poz2=CHR(val1+INT(VAL(POZ3))-10)
|
||||
ENDIF
|
||||
CASE val1>=65 AND val1<=90
|
||||
IF ((val1-64)+2*INT(VAL(POZ3)))<=26
|
||||
poz2=CHR(val1+2*INT(VAL(POZ3)))
|
||||
ELSE
|
||||
poz2=CHR(val1+2*INT(VAL(POZ3))-26)
|
||||
ENDIF
|
||||
ENDCASE
|
||||
LRET2=LRET2+poz2
|
||||
ENDFOR
|
||||
FOR i=1 TO lens
|
||||
poz1=SUBSTR(LRET2,i,1)
|
||||
val1=ASC(poz1)
|
||||
DO CASE
|
||||
CASE val1>=48 AND val1<=57
|
||||
IF ((val1-47)+i)<=10
|
||||
poz2=CHR(val1+i)
|
||||
ELSE
|
||||
poz2=CHR(val1+i-10)
|
||||
ENDIF
|
||||
CASE val1>=65 AND val1<=90
|
||||
IF ((val1-64)+2*i)<=26
|
||||
poz2=CHR(val1+2*i)
|
||||
ELSE
|
||||
poz2=CHR(val1+2*i-26)
|
||||
ENDIF
|
||||
ENDCASE
|
||||
lret=lret+poz2
|
||||
ENDFOR
|
||||
lens=LEN(lret)
|
||||
FOR i=1 TO lens
|
||||
poz1=SUBSTR(lret,i,1)
|
||||
val1=ASC(poz1)
|
||||
DO CASE
|
||||
CASE val1>=48 AND val1<=57
|
||||
poz2=CHR(val1+17)&& din 0-9 in A-J
|
||||
CASE val1>=65 AND val1<=74
|
||||
poz2=CHR(val1-17)&& din A-J in 0-9
|
||||
CASE val1>=75 AND val1<=82
|
||||
poz2=CHR(val1+8)&&din K-R in S-Z
|
||||
CASE val1>=83 AND val1<=90
|
||||
poz2=CHR(val1-8)&&din S-Z in K-R
|
||||
ENDCASE
|
||||
lret1=lret1+poz2
|
||||
ENDFOR
|
||||
RETURN lret1
|
||||
***********
|
||||
&&transformarea in decimal a unui caracter hexa
|
||||
FUNCTION HEXDEC
|
||||
LPARAMETERS LC
|
||||
LOCAL LV
|
||||
DO CASE
|
||||
CASE LC=='0'
|
||||
LV='0'
|
||||
CASE LC=='1'
|
||||
LV='1'
|
||||
CASE LC=='2'
|
||||
LV='2'
|
||||
CASE LC=='3'
|
||||
LV='3'
|
||||
CASE LC=='4'
|
||||
LV='4'
|
||||
CASE LC=='5'
|
||||
LV='5'
|
||||
CASE LC=='6'
|
||||
LV='6'
|
||||
CASE LC=='7'
|
||||
LV='7'
|
||||
CASE LC=='8'
|
||||
LV='8'
|
||||
CASE LC=='9'
|
||||
LV='9'
|
||||
CASE LC=='A'
|
||||
LV='10'
|
||||
CASE LC=='B'
|
||||
LV='11'
|
||||
CASE LC=='C'
|
||||
LV='12'
|
||||
CASE LC=='D'
|
||||
LV='13'
|
||||
CASE LC=='E'
|
||||
LV='14'
|
||||
CASE LC=='F'
|
||||
LV='15'
|
||||
ENDCASE
|
||||
RETURN LV
|
||||
****************
|
||||
&&codarea binara din hexa pe patru biti
|
||||
FUNCTION DECTOBIN
|
||||
PARAMETERS sc
|
||||
LOCAL lretf
|
||||
DO CASE
|
||||
CASE sc=='0'
|
||||
lretf='0000'
|
||||
CASE sc=='1'
|
||||
lretf='0001'
|
||||
CASE sc=='2'
|
||||
lretf='0010'
|
||||
CASE sc=='3'
|
||||
lretf='0011'
|
||||
CASE sc=='4'
|
||||
lretf='0100'
|
||||
CASE sc=='5'
|
||||
lretf='0101'
|
||||
CASE sc=='6'
|
||||
lretf='0110'
|
||||
CASE sc=='7'
|
||||
lretf='0111'
|
||||
CASE sc=='8'
|
||||
lretf='1000'
|
||||
CASE sc=='9'
|
||||
lretf='1001'
|
||||
CASE sc=='10'
|
||||
lretf='1010'
|
||||
CASE sc=='11'
|
||||
lretf='1011'
|
||||
CASE sc=='12'
|
||||
lretf='1100'
|
||||
CASE sc=='13'
|
||||
lretf='1101'
|
||||
CASE sc=='14'
|
||||
lretf='1110'
|
||||
CASE sc=='15'
|
||||
lretf='1111'
|
||||
ENDCASE
|
||||
RETURN lretf
|
||||
***********
|
||||
FUNCTION ECARACTER
|
||||
PARAMETERS strg1
|
||||
PRIVATE pz,ch,lcstring,vret,lg1
|
||||
STORE 0 TO pz,lg1
|
||||
STORE '' TO ch,lcstring
|
||||
STORE .T. TO vret
|
||||
lcstring=UPPER(strg1)
|
||||
lg1=LEN(lcstring)
|
||||
FOR ind1=1 TO lg1
|
||||
ch=SUBSTR(lcstring,ind1,1)
|
||||
IF (NOT BETWEEN(ASC(ch),48,57)) AND (NOT BETWEEN(ASC(ch),65,90))
|
||||
vret=.F.
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
RETURN vret
|
||||
************
|
||||
FUNCTION sircaracter
|
||||
PARAMETERS strg1
|
||||
PRIVATE pz,ch,lcstring,vret,lg1,lciesire
|
||||
STORE 0 TO pz,lg1
|
||||
STORE '' TO ch,lcstring,lciesire
|
||||
STORE .T. TO vret
|
||||
strg1=STRTRAN(strg1,ALLTRIM(CHR(39)),'')&&caracterul '
|
||||
strg1=STRTRAN(strg1,ALLTRIM(CHR(39)),'')&&caracterul "
|
||||
lcstring=UPPER(ALLTRIM(strg1))
|
||||
lg1=LEN(lcstring)
|
||||
FOR ind1=1 TO lg1
|
||||
ch=SUBSTR(lcstring,ind1,1)
|
||||
IF BETWEEN(ASC(ch),48,57) OR BETWEEN(ASC(ch),65,90)
|
||||
lciesire=lciesire+ch
|
||||
ENDIF
|
||||
ENDFOR
|
||||
RETURN lciesire
|
||||
|
||||
|
||||
|
||||
***-------------------------------------
|
||||
PROCEDURE _DEBUG
|
||||
|
||||
RETURN .T.
|
||||
|
||||
PRIVATE lcret,lcfisier,lcPath,lccalewin
|
||||
DECLARE INTEGER SHGetFolderPath IN SHFOLDER.DLL ;
|
||||
INTEGER hwndOwner, ;
|
||||
INTEGER nFolder, ;
|
||||
INTEGER hToken, ;
|
||||
INTEGER dwFlags, ;
|
||||
STRING @ pszPath
|
||||
DECLARE INTEGER GetActiveWindow IN WIN32API
|
||||
#DEFINE CSIDL_WINDOWS 36
|
||||
|
||||
|
||||
lcPath = REPL(CHR(0),261)
|
||||
=SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath)
|
||||
lccalewin=LEFT(lcPath,AT(CHR(0),lcPath)-1)
|
||||
|
||||
lcret=.F.
|
||||
lcfisier=ADDBS(lccalewin)+[DEBUG.TXT]
|
||||
|
||||
IF FILE(lcfisier)
|
||||
LCVAL=FILETOSTR(lcfisier)
|
||||
|
||||
LNVAL1=MOD(VAL(RIGHT(LCVAL,1)),2) && restul 1 sau 0; daca e impar e 1
|
||||
lnval2=VAL(LEFT(LCVAL,LEN(LCVAL)-1))
|
||||
IF LNVAL1=1 OR YEAR(DATE())-MONTH(DATE())=lnval2
|
||||
lcret=.T.
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN lcret
|
||||
|
||||
ENDPROC
|
||||
|
||||
|
||||
FUNCTION Start_Nou
|
||||
|
||||
RETURN Exista_Branch(,,dirgen)
|
||||
|
||||
ENDFUNC && start_nou
|
||||
|
||||
PROCEDURE Debug_Start
|
||||
|
||||
lcFile = gcAppPath + "debug.txt"
|
||||
|
||||
IF FILE(lcFile) &&OR !Start_Nou()
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
RETURN .F.
|
||||
|
||||
ENDPROC && Debug_Start
|
||||
************************************************************************
|
||||
PROCEDURE verificari
|
||||
PARAMETERS tcFisierVerif
|
||||
|
||||
lcverificari = ADDBS(gcAppPath)+gcAppName+".txt"
|
||||
|
||||
|
||||
IF FILE(lcverificari)
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
RETURN .F.
|
||||
|
||||
ENDPROC && verificari
|
||||
26
Programe/cumplun-furn.prg
Normal file
26
Programe/cumplun-furn.prg
Normal file
@@ -0,0 +1,26 @@
|
||||
set deleted on
|
||||
sele cumplun
|
||||
*dele all
|
||||
set order to tag nume
|
||||
sele furnizor
|
||||
DELE ALL
|
||||
set order to tag nume
|
||||
|
||||
|
||||
|
||||
|
||||
SELE DISTINCT ALLT(NUME) AS NUME,COD_FISCAL FROM CUMPLUN INTO CURSOR TT
|
||||
SELE FURNIZOR
|
||||
APPE FROM DBF('TT')
|
||||
USE IN TT
|
||||
|
||||
sele furnizor
|
||||
scan
|
||||
scat memv
|
||||
sele cumplun
|
||||
sum achitat to m.platit for ALLT(nume)=ALLT(m.nume)
|
||||
sum totctva to m.achizit for ALLT(nume)=ALLT(m.nume)
|
||||
sele furnizor
|
||||
gath memv
|
||||
endscan
|
||||
|
||||
127
Programe/exportare.prg
Normal file
127
Programe/exportare.prg
Normal file
@@ -0,0 +1,127 @@
|
||||
LPARAMETERS tabel, initial, final
|
||||
LOCAL nrc, i, c
|
||||
STORE 0 TO nrc, i
|
||||
STORE '' TO c
|
||||
|
||||
A='C:\MY DOCUMENTS'
|
||||
B='C:\DOCUMENTS AND SETTINGS'
|
||||
DO CASE
|
||||
CASE DIRECTORY('&A')
|
||||
SET DEFAULT TO '&A'
|
||||
CASE DIRECTORY('&B')
|
||||
SET DEFAULT TO '&B'
|
||||
OTHERWISE
|
||||
MD &A
|
||||
SET DEFAULT TO '&A'
|
||||
ENDCASE
|
||||
|
||||
|
||||
exista_excel=.F.
|
||||
|
||||
initial = ','+initial+',' &&Pentru a recunoste coloanele'
|
||||
final = ','+final+',' &&---||---
|
||||
|
||||
nrc = OCCURS(',', '&initial')
|
||||
nrc=nrc-1 && scade vircula din fata
|
||||
|
||||
LOCAL ARRAY c_initial(nrc)
|
||||
LOCAL ARRAY c_final(nrc)
|
||||
|
||||
FOR i = 1 TO nrc
|
||||
n = AT(',', '&initial', i)
|
||||
n2 =AT(',', '&initial', i+1)
|
||||
c_Initial[i] = SUBSTR('&initial', n+1, n2-n-1)
|
||||
*MESSAGEBOX(c_initial[i])
|
||||
n = AT(',', '&final', i)
|
||||
n2 =AT(',', '&final', i+1)
|
||||
c_final[i] = SUBSTR('&final', n+1, n2-n-1)
|
||||
*MESSAGEBOX(c_final[i])
|
||||
ENDFOR
|
||||
|
||||
FOR i=1 TO nrc
|
||||
IF i=nrc
|
||||
c=c+c_initial[i]+' as '+c_final[i]
|
||||
ELSE
|
||||
c=c+c_initial[i]+' as '+c_final[i]+','
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
calea_fis = PUTFILE('Nume fisier:', 'Foaie_Excel', 'XLS')
|
||||
IF EMPTY(calea_fis) && Esc pressed
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
SELECT &c FROM &tabel INTO CURSOR cur
|
||||
SELECT cur
|
||||
EXPORT TO (calea_fis) TYPE XL5
|
||||
|
||||
SET DEFAULT TO &DIRGEN
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
PROCEDURE EXPORTARE2
|
||||
LPARAMETERS tabel
|
||||
*, initial, final
|
||||
LOCAL nrc, i, c
|
||||
STORE 0 TO nrc, i
|
||||
STORE '' TO c
|
||||
|
||||
A='C:\MY DOCUMENTS'
|
||||
B='C:\DOCUMENTS AND SETTINGS'
|
||||
DO CASE
|
||||
CASE DIRECTORY('&A')
|
||||
SET DEFAULT TO '&A'
|
||||
CASE DIRECTORY('&B')
|
||||
SET DEFAULT TO '&B'
|
||||
OTHERWISE
|
||||
MD &A
|
||||
SET DEFAULT TO '&A'
|
||||
ENDCASE
|
||||
|
||||
|
||||
*!* exista_excel=.F.
|
||||
|
||||
*!* initial = ','+initial+',' &&Pentru a recunoste coloanele'
|
||||
*!* final = ','+final+',' &&---||---
|
||||
|
||||
*!* nrc = OCCURS(',', '&initial')
|
||||
*!* nrc=nrc-1 && scade vircula din fata
|
||||
|
||||
*!* LOCAL ARRAY c_initial(nrc)
|
||||
*!* LOCAL ARRAY c_final(nrc)
|
||||
*!*
|
||||
*!* FOR i = 1 TO nrc
|
||||
*!* n = AT(',', '&initial', i)
|
||||
*!* n2 =AT(',', '&initial', i+1)
|
||||
*!* c_Initial[i] = SUBSTR('&initial', n+1, n2-n-1)
|
||||
*!* *MESSAGEBOX(c_initial[i])
|
||||
*!* n = AT(',', '&final', i)
|
||||
*!* n2 =AT(',', '&final', i+1)
|
||||
*!* c_final[i] = SUBSTR('&final', n+1, n2-n-1)
|
||||
*!* *MESSAGEBOX(c_final[i])
|
||||
*!* ENDFOR
|
||||
*!*
|
||||
*!* FOR i=1 TO nrc
|
||||
*!* IF i=nrc
|
||||
*!* c=c+c_initial[i]+' as '+c_final[i]
|
||||
*!* ELSE
|
||||
*!* c=c+c_initial[i]+' as '+c_final[i]+','
|
||||
*!* ENDIF
|
||||
*!* ENDFOR
|
||||
*!*
|
||||
calea_fis = PUTFILE('Nume fisier:', 'Foaie_Excel', 'XLS')
|
||||
IF EMPTY(calea_fis) && Esc pressed
|
||||
RETURN
|
||||
ENDIF
|
||||
*!*
|
||||
*!* SELECT &c FROM &tabel INTO CURSOR cur
|
||||
SELECT &tabel
|
||||
EXPORT TO (calea_fis) TYPE XL5
|
||||
|
||||
SET DEFAULT TO &DIRGEN
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
106
Programe/fisa_ob_inventar.prg
Normal file
106
Programe/fisa_ob_inventar.prg
Normal file
@@ -0,0 +1,106 @@
|
||||
PROCEDURE fisa_ob_inventar
|
||||
&& tlToate - se genereaza raportul pt. toate obiectele de inventar
|
||||
|
||||
SET SAFETY OFF
|
||||
|
||||
PRIVATE pcTitlu, pcPerioada, pcDataOra && pt. raport
|
||||
|
||||
PRIVATE pcli, pcai, pclf, pcaf && pt. forma de alegere perioada
|
||||
STORE m.nl TO pcli, pclf
|
||||
STORE m.an TO pcai, pcaf
|
||||
|
||||
LOCAL lnnrlunii, lnnrlunif, lcprimaluna, lcprimulan, lcultimaluna, lcultimulan
|
||||
STORE 0 TO lnnrlunii, lnnrlunif
|
||||
STORE "" TO lcprimaluna, lcprimulan, lcultimaluna, lcultimulan
|
||||
|
||||
podif=CREATEOBJECT("frm_datai_dataf")
|
||||
podif.SHOW(1)
|
||||
IF buton = 2
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lnnrlunii = VAL(pcai)*12+VAL(pcli)
|
||||
lnnrlunif = VAL(pcaf)*12+VAL(pclf)
|
||||
SELECT nl, an FROM calendar ;
|
||||
WHERE BETWEEN(VAL(an)*12+VAL(nl),lnnrlunii,lnnrlunif) ;
|
||||
INTO CURSOR cCalendar
|
||||
|
||||
SELECT cCalendar
|
||||
IF _TALLY=0
|
||||
DO mesaj WITH "Nu exista nici o luna deschisa in perioada",pcli + ' ' + pcai + ' - ' + pclf + ' ' + pcaf
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
SELECT cCalendar
|
||||
GO TOP
|
||||
lcprimaluna = nl
|
||||
lcprimulan = an
|
||||
GO BOTTOM
|
||||
lcultimaluna = nl
|
||||
lcultimulan = an
|
||||
|
||||
pcperioada = "Perioada de referinta " + "01/" + lcprimaluna + "/" + lcprimulan + " - " + DTOC(ultimazi(lcultimulan,lcultimaluna))
|
||||
|
||||
od=CREATEOBJECT('frm_toate')
|
||||
od.label1.CAPTION='Sa se genereze situatia pentru:'
|
||||
od.cmdrenunt1.CAPTION='\<Un obiect de inventar'
|
||||
od.cmdtermin1.CAPTION='\<Toate obiectele'
|
||||
od.SHOW(1)
|
||||
|
||||
&& trebuie sa adun datele din toate fisierele existente in perioada
|
||||
llprimaluna = .T.
|
||||
SELECT cCalendar
|
||||
SCAN
|
||||
lcAn = an
|
||||
lcnl = nl
|
||||
lcDate = ADDBS(calefirma)+"an"+lcAn+"\date"+lcnl
|
||||
lcfisobinvent = ADDBS(lcDate)+"obinvent.dbf"
|
||||
|
||||
IF FILE(lcfisobinvent)
|
||||
USE (lcfisobinvent) IN 0 again ALIAS tobinvent
|
||||
IF llprimaluna && aduc peste inregistrarile din prima luna restul inregistrarilor
|
||||
SELECT * from tobinvent INTO CURSOR obinventar_total READWRITE
|
||||
ELSE
|
||||
SELECT * from tobinvent INTO CURSOR obinventar_partial
|
||||
SELECT obinventar_total
|
||||
APPEND FROM DBF("obinventar_partial")
|
||||
USE IN obinventar_partial
|
||||
ENDIF
|
||||
IF USED("tobinvent")
|
||||
USE IN tobinvent
|
||||
ENDIF
|
||||
ELSE
|
||||
*!* DO mesaj WITH "Nu exista fisierul "+ lcfisobinvent
|
||||
AMESSAGEBOX("Nu exista fisierul "+lcfisobinvent+" !",0+48,"Atentie")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
llprimaluna = .F.
|
||||
SELECT cCalendar
|
||||
ENDSCAN
|
||||
|
||||
USE IN cCalendar
|
||||
pcDataOra = get_ora(2)
|
||||
|
||||
IF buton = 1 && obiectul de inventar ales
|
||||
SELE DISTINCT obinventar_total.denumire FROM obinventar_total INTO TABLE &loc\&nfscurt\tempo\tden
|
||||
INDEX ON denumire TAG denumire OF &loc\&nfscurt\tempo\tden
|
||||
|
||||
DO caut_alfa_cursor WITH 'tden','denumire','Denumirea obiectului de inventar','m.denumire'
|
||||
pcTitlu = "Fisa obiectului de inventar " + ALLTRIM(m.denumire)
|
||||
|
||||
SELE obinventar_total
|
||||
SET FILTER TO denumire = m.denumire
|
||||
REPORT FORM FISA TO PRINTER PROMPT PREVIEW
|
||||
SELE obinventar_total
|
||||
SET FILTER TO
|
||||
ELSE && toate obiectele de inventar
|
||||
pcTitlu = "Fisa obiectelor de inventar "
|
||||
SELE obinventar_total
|
||||
REPORT FORM FISA TO PRINTER PROMPT PREVIEW
|
||||
ENDIF
|
||||
|
||||
USE IN obinventar_total
|
||||
|
||||
ENDPROC && fisa_ob_inventar
|
||||
***-----------------------------------------------------------------------------------------------------------
|
||||
1041
Programe/gestiuni.prg
Normal file
1041
Programe/gestiuni.prg
Normal file
File diff suppressed because it is too large
Load Diff
387
Programe/inchidere_k.prg
Normal file
387
Programe/inchidere_k.prg
Normal file
@@ -0,0 +1,387 @@
|
||||
*!* 21.09.2010
|
||||
*!* marius.mutu
|
||||
*!* #2722 Fruvimed
|
||||
*!* inchidere_k am folosit lnCoeficientTva si GetProcTvaStandard() in loc de 19/119
|
||||
|
||||
*!* 11.10.2017
|
||||
*!* marius.mutu
|
||||
*!* inchidere_k_custodie - tratare optiuni tip nou pentru analitice 371,378,4428
|
||||
|
||||
* inchidere cu K
|
||||
Procedure inchidere_k
|
||||
|
||||
Private pnK, pcAcont371, pcAcont378, pcAcont4111, pcAcont4428
|
||||
Store 0 To pnK
|
||||
Store '' To pcAcont371, pcAcont378, pcAcont4111, pcAcont4428
|
||||
|
||||
Local lnK, lcCursor, llStergeNotaPrecedenta, lnId_Set, lnCod, llVerificAnalitic, llCompletareParteneri, lnRaspuns
|
||||
Store 0 To lnK, lnCod, lnRaspuns
|
||||
Store .T. To llVerificAnalitic, llCompletareParteneri
|
||||
|
||||
Local lnAnalitice371, lnAnalitice378, lnAnalitice4111, lnAnalitice4428
|
||||
Store 0 To lnAnalitice371, lnAnalitice378, lnAnalitice4111, lnAnalitice4428
|
||||
|
||||
llStergeNotaPrecedenta = .T.
|
||||
lnId_Set = 90017
|
||||
lnCod = 0
|
||||
|
||||
*!* 21.09.2010
|
||||
lnCoeficientTva = GetProcTvaStandard() / (100 + GetProcTvaStandard()) && 24/124
|
||||
*!* 21.09.2010 ^
|
||||
|
||||
***---------------------------------------------------
|
||||
*** 371
|
||||
lcSql=[select count(*) as cnt from balana where an = ?gnAn and luna = ?gnLuna and cont = '371' ]
|
||||
lcCursor = 'crs_acont371'
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Endif
|
||||
|
||||
Select crs_acont371
|
||||
lnAnalitice371 = Cnt
|
||||
|
||||
If lnAnalitice371 > 0
|
||||
loCauta = caut_acont('371')
|
||||
pcAcont371 = loCauta.acont
|
||||
Endif
|
||||
|
||||
If Used('crs_acont371')
|
||||
Use In crs_acont371
|
||||
Endif
|
||||
|
||||
*** 378
|
||||
lcSql=[select count(*) as cnt from balana where an = ?gnAn and luna = ?gnLuna and cont = '378' ]
|
||||
lcCursor = 'crs_acont378'
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Endif
|
||||
|
||||
Select crs_acont378
|
||||
lnAnalitice378 = Cnt
|
||||
|
||||
If lnAnalitice378 > 0
|
||||
loCauta = caut_acont('378')
|
||||
pcAcont378 = loCauta.acont
|
||||
Endif
|
||||
|
||||
If Used('crs_acont378')
|
||||
Use In crs_acont378
|
||||
Endif
|
||||
|
||||
*** 4111
|
||||
lcSql=[select count(*) as cnt from balana where an = ?gnAn and luna = ?gnLuna and cont = '4111' ]
|
||||
lcCursor = 'crs_acont4111'
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Endif
|
||||
|
||||
Select crs_acont4111
|
||||
lnAnalitice4111 = Cnt
|
||||
|
||||
If lnAnalitice4111 > 0
|
||||
loCauta = caut_acont('4111')
|
||||
pcAcont4111 = loCauta.acont
|
||||
Endif
|
||||
|
||||
If Used('crs_acont4111')
|
||||
Use In crs_acont4111
|
||||
Endif
|
||||
|
||||
*** 4428
|
||||
lcSql=[select count(*) as cnt from balana where an = ?gnAn and luna = ?gnLuna and cont = '4428' ]
|
||||
lcCursor = 'crs_acont4428'
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Endif
|
||||
|
||||
Select crs_acont4428
|
||||
lnAnalitice4428 = Cnt
|
||||
|
||||
If lnAnalitice4428 > 0
|
||||
loCauta = caut_acont('4428')
|
||||
pcAcont4428 = loCauta.acont
|
||||
Endif
|
||||
|
||||
If Used('crs_acont4428')
|
||||
Use In crs_acont4428
|
||||
Endif
|
||||
***---------------------------------------------------
|
||||
|
||||
If llStergeNotaPrecedenta
|
||||
lnSucces = sterge_nota(lnCod, lnId_Set)
|
||||
If lnSucces < 0
|
||||
Return
|
||||
Endif
|
||||
Endif
|
||||
|
||||
* lcSel = [{call pack_inchideri.K_transferuri(?gnAn, ?gnLuna)}]
|
||||
lcSel = [{call pack_inchideri.K_transferuri(]+Alltrim(Str(gnAn))+[,]+Alltrim(Str(gnLuna))+ [)}]
|
||||
lcCursor = 'crsTransferuri'
|
||||
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select Count(*) As Cnt From crsTransferuri Into Cursor cNrTransf
|
||||
Select cNrTransf
|
||||
lnTransferuri = Cnt
|
||||
If Used('cNrTransf')
|
||||
Use In cNrTransf
|
||||
Endif
|
||||
If lnTransferuri > 0
|
||||
lnRaspuns = AMESSAGEBOX('Doriti sa faceti nota de reglare transferuri?',4, 'Reglare transferuri')
|
||||
|
||||
If lnRaspuns = 6
|
||||
***---------------------------------------
|
||||
* lcSel = [{call pack_inchideri.K_general(?gnAn, ?gnLuna, ?pcAcont371, ?pcAcont378, ?pcAcont4428)}]
|
||||
lcSel = [{call pack_inchideri.K_general(]+Alltrim(Str(gnAn))+[,]+Alltrim(Str(gnLuna))+[,]+;
|
||||
IIF(!Empty(pcAcont371),['] + Alltrim(pcAcont371) + ['],'NULL')+[,]+ ;
|
||||
IIF(!Empty(pcAcont378),['] + Alltrim(pcAcont378) + ['],'NULL')+[,]+;
|
||||
IIF(!Empty(pcAcont4428),['] + Alltrim(pcAcont4428) + ['],'NULL')+[)}]
|
||||
lcCursor = 'crsK'
|
||||
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select crsK
|
||||
pnK = Round(Nvl(k, 0),gnPC)
|
||||
|
||||
***---------------------------------------
|
||||
|
||||
Create Cursor crsCorecturi (id_partd N(10), partd C(70), id_partc N(10), partc C(70), scd C(4), scc C(4), suma N(20,4))
|
||||
|
||||
Select crsTransferuri
|
||||
Scan
|
||||
lnId_partd = id_partd
|
||||
lcPartd = partd
|
||||
lnId_partc = id_partc
|
||||
lcPartc = partc
|
||||
lnsuma = suma
|
||||
|
||||
*!* 21.09.2010
|
||||
|
||||
Insert Into crsCorecturi (id_partd, partd, id_partc, partc, scd, scc, suma) ;
|
||||
VALUES (lnId_partc, lcPartc, lnId_partd, lcPartd, '4428', '4428', Round(lnsuma * m.lnCoeficientTva,gnPC))
|
||||
lnTva = ROUND(lnsuma * m.lnCoeficientTva, gnPc)
|
||||
*!* 21.09.2010 ^
|
||||
*!* Insert Into crsCorecturi (id_partd, partd, id_partc, partc, scd, scc, suma) ;
|
||||
*!* VALUES (lnId_partc, lcPartc, lnId_partd, lcPartd, '378', '378', ROUND((lnsuma-lnTva)*pnK/100,gnPC))
|
||||
Insert Into crsCorecturi (id_partd, partd, id_partc, partc, scd, scc, suma) ;
|
||||
VALUES (lnId_partc, lcPartc, lnId_partd, lcPartd, '378', '378', Round((lnsuma-lnTva)*pnK/(100+pnK),gnPC))
|
||||
Select crsTransferuri
|
||||
Endscan
|
||||
|
||||
If Used('crsTransferuri')
|
||||
Use In crsTransferuri
|
||||
Endif
|
||||
|
||||
***---------------------------------------
|
||||
|
||||
llVerificAnalitic = .T.
|
||||
llCompletareParteneri = .T.
|
||||
lcCursor = 'crsCorecturi'
|
||||
|
||||
If lnSucces > 0
|
||||
lnSucces = scrie_nota_import(lnId_Set, llVerificAnalitic, llCompletareParteneri, lcCursor)
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
|
||||
***---------------------------------------
|
||||
***---------------------------------- calcul K magazine
|
||||
|
||||
***------------
|
||||
|
||||
* lcSel = [{call pack_inchideri.K_parteneri(?gnAn, ?gnLuna, ?pcAcont371, ?pcAcont378, ?pcAcont4111, ?pcAcont4428)}]
|
||||
lcSel = [{call pack_inchideri.K_parteneri(]+Alltrim(Str(gnAn))+[,]+Alltrim(Str(gnLuna))+[,]+ ;
|
||||
IIF(!Empty(pcAcont371),['] + Alltrim(pcAcont371) + ['],'NULL')+[,]+ ;
|
||||
IIF(!Empty(pcAcont378),['] + Alltrim(pcAcont378) + ['],'NULL')+[,]+;
|
||||
IIF(!Empty(pcAcont4111),['] + Alltrim(pcAcont4111) + ['],'NULL')+[,]+ ;
|
||||
IIF(!Empty(pcAcont4428),['] + Alltrim(pcAcont4428) + ['],'NULL')+[)}]
|
||||
lcCursor = 'crsK_mag'
|
||||
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Return
|
||||
Endif
|
||||
***---------------------------------- calcul K magazine
|
||||
|
||||
Create Cursor crsInchKmag (id_partd N(10), partd C(70), id_partc N(10), partc C(70), scd C(4), scc C(4), ascc C(4), suma N(20,4))
|
||||
|
||||
Select crsK_mag
|
||||
Scan For rc4111 + rd4111 <> 0
|
||||
lnId_part = id_part
|
||||
lcPartener = Alltrim(denumire)
|
||||
lnK = Round(k/100,gnPC)
|
||||
ln4111 = Round(rc4111+rd4111 ,gnPC)
|
||||
|
||||
lnTva = Round(ln4111 * m.lnCoeficientTva,gnPC)
|
||||
*lnAD = Round((ln4111-lnTva)*lnK,gnPC)
|
||||
*!* 09.09.2008
|
||||
*!* MARIUS MUTU - TREBUIE SESIZARE DE LA FRUVIMED
|
||||
*!* lnAD = Round((ln4111-lnTva)*k/(100+k),gnPC)
|
||||
lnAD = Round((ln4111-lnTva)*k/100,gnPC)
|
||||
*!* 09.09.2008 ^
|
||||
Insert Into crsInchKmag (id_partd, partd, id_partc, partc, scd, scc, suma) ;
|
||||
VALUES (lnId_part, lcPartener,lnId_part, lcPartener,'4428', '371', lnTva)
|
||||
Insert Into crsInchKmag (id_partd, partd, id_partc, partc, scd, scc, suma) ;
|
||||
VALUES (lnId_part, lcPartener,lnId_part, lcPartener,'378', '371', lnAD)
|
||||
Insert Into crsInchKmag (id_partd, partd, id_partc, partc, scd, scc, suma) ;
|
||||
VALUES (0, '',lnId_part, lcPartener,'607', '371', ln4111-lnTva-lnAD)
|
||||
|
||||
Select crsK_mag
|
||||
Endscan
|
||||
|
||||
***-------------------------------
|
||||
llStergeNotaPrecedenta = .T.
|
||||
lnId_Set = 90018
|
||||
lnCod = 0
|
||||
llVerificAnalitic = .T.
|
||||
llCompletareParteneri = .T.
|
||||
lcCursor = 'crsInchKmag'
|
||||
|
||||
If llStergeNotaPrecedenta
|
||||
lnSucces = sterge_nota(lnCod, lnId_Set)
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
Select crsInchKmag
|
||||
Replace All ascc With pcAcont371
|
||||
lnSucces = scrie_nota_import(lnId_Set, llVerificAnalitic, llCompletareParteneri, lcCursor)
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
Private pcTitlu, pcDataOra
|
||||
pcTitlu = "Inchidere folosind metoda cu k"
|
||||
pcDataOra = get_ora(2)
|
||||
|
||||
Select km.*, 1 As tip, ;
|
||||
0000000000 As id_partd, Space(70) As partd, ;
|
||||
0000000000 As id_partc, Space(70) As partc, ;
|
||||
SPACE(4) As scd, ;
|
||||
SPACE(4) As scc, ;
|
||||
SPACE(4) As ascc, ;
|
||||
0000000000000000000000.00 As suma ;
|
||||
From crsK_mag km Into Cursor crsList Readwrite
|
||||
|
||||
|
||||
If Used('crsCorecturi')
|
||||
Select C.*, 2 As tip From crsCorecturi C Into Cursor c2
|
||||
Select crsList
|
||||
Append From Dbf('c2')
|
||||
If Used('c2')
|
||||
Use In c2
|
||||
Endif
|
||||
|
||||
Use In crsCorecturi
|
||||
Endif
|
||||
|
||||
Select C.*, 3 As tip From crsInchKmag C Into Cursor c3
|
||||
|
||||
If Used('crsInchKmag')
|
||||
Use In crsInchKmag
|
||||
Endif
|
||||
|
||||
Select crsList
|
||||
Append From Dbf('c3')
|
||||
If Used('c3')
|
||||
Use In c3
|
||||
Endif
|
||||
|
||||
Select crsList
|
||||
Report Form rap_inchidere_k.frx To Printer Prompt Preview
|
||||
|
||||
* Select * From crsList Into Table C:\List.Dbf
|
||||
|
||||
If Used('crsList')
|
||||
Use In crsList
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If Used('crsK_mag')
|
||||
Use In crsK_mag
|
||||
Endif
|
||||
|
||||
Endproc && inchidere_k
|
||||
************************************************************************************************************************
|
||||
*!* modificare v 2.2.35
|
||||
Procedure inchidere_k_custodie
|
||||
Local lcCursor, lcCursorFinal, llStergeNotaPrecedenta, lnId_Set, lnCod, llVerificAnalitic, llCompletareParteneri
|
||||
Store .T. To llVerificAnalitic, llCompletareParteneri, llStergeNotaPrecedenta
|
||||
Store 0 To lnCod
|
||||
lnId_Set = 90019
|
||||
lcCursorFinal = [crsK]
|
||||
lcCursor = [crsK_custodie]
|
||||
If llStergeNotaPrecedenta
|
||||
lnSucces = sterge_nota(lnCod, lnId_Set)
|
||||
Endif
|
||||
SET STEP ON
|
||||
*************************
|
||||
*** Analitice 371,378,4428 versiune noua
|
||||
*** FactAnaliticCustK_5 / FactAnaliticCustK_9 / FactAnaliticCustK_19
|
||||
*************************
|
||||
lcSql = [SELECT procent FROM cote_tva WHERE an = ?gnAn AND luna = ?gnLuna and procent <> 0]
|
||||
llSucces = goExecutor.oExecuta(m.lcSql, "cCoteTVATemp")
|
||||
IF m.llSucces
|
||||
SELECT cCoteTVATemp
|
||||
SCAN
|
||||
lcProcent = ALLTRIM(STR(INT(procent)))
|
||||
lcVariabilaName = 'gcFactAnaliticCustK_' + m.lcProcent && gcFactAnaliticCustK_5 / gcFactAnaliticCustK_9 / gcFactAnaliticCustK_19
|
||||
|
||||
If TYPE(m.lcVariabilaName) <> "U"
|
||||
lcAnaliticK = &lcVariabilaName
|
||||
IF !EMPTY(m.lcAnaliticK)
|
||||
lcSel = [{call pack_inchideri.K_custodie(]+Alltrim(Str(gnAn))+[,]+Alltrim(Str(gnLuna))+[,] + m.lcProcent + [)}]
|
||||
llSucces = goExecutor.oExecuta(lcSel,lcCursor)
|
||||
If m.llSucces
|
||||
IF !USED(m.lcCursorFinal)
|
||||
SELECT * FROM (lcCursor) WHERE .F. INTO CURSOR (m.lcCursorFinal) READWRITE
|
||||
ENDIF && !USED(m.lcCursorFinal)
|
||||
|
||||
Insert Into (m.lcCursorFinal) Select * From (m.lcCursor)
|
||||
USE IN (SELECT(m.lcCursor))
|
||||
ENDIF && m.llSucces
|
||||
ENDIF && !EMPTY(m.lcAnaliticK)
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
ENDIF && m.llSucces
|
||||
|
||||
*************************
|
||||
*** Daca nu am gasit analiticele versiune noua, caut si analitice versiune veche
|
||||
IF !USED(m.lcCursorFinal)
|
||||
lcSel = [{call pack_inchideri.K_custodie(]+Alltrim(Str(gnAn))+[,]+Alltrim(Str(gnLuna))+[,1)}]
|
||||
llSucces = goExecutor.oExecuta(lcSel,lcCursor)
|
||||
If llSucces
|
||||
copiaza_structura_cursor(lcCursor,lcCursorFinal)
|
||||
If !Empty(NVL(IIF(TYPE("gcFactAnaliticCustK2")=="U",NULL,gcFactAnaliticCustK2),""))
|
||||
Insert Into (lcCursorFinal) Select * From (lcCursor)
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
lcSel = [{call pack_inchideri.K_custodie(]+Alltrim(Str(gnAn))+[,]+Alltrim(Str(gnLuna))+[,2)}]
|
||||
llSucces = goExecutor.oExecuta(lcSel,lcCursor)
|
||||
Endif
|
||||
If llSucces
|
||||
Insert Into (lcCursorFinal) Select * From (lcCursor)
|
||||
lnSucces = scrie_nota_import(lnId_Set, llVerificAnalitic, llCompletareParteneri, lcCursorFinal)
|
||||
Endif
|
||||
|
||||
Endif
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
ENDIF
|
||||
ELSE
|
||||
lnSucces = scrie_nota_import(lnId_Set, llVerificAnalitic, llCompletareParteneri, lcCursorFinal)
|
||||
ENDIF && !USED(m.lcCursorFinal)
|
||||
|
||||
Use In (SELECT(lcCursorFinal))
|
||||
Endproc && inchidere_k_custodie
|
||||
*!* modificare v 2.1.8 ^
|
||||
************************************************************************************************************************
|
||||
412
Programe/ofactureaza.prg
Normal file
412
Programe/ofactureaza.prg
Normal file
@@ -0,0 +1,412 @@
|
||||
*** AVIZ TRANSFER (apelat din ointroduceri.prg dupa scrierea NIR-ului pret de lista id_set 231, 247, 266)
|
||||
|
||||
*!* 30.03.2010
|
||||
*!* marius.mutu
|
||||
*!* completare parametrii V_SERIE_ACT_INCASARE, V_DATAORA_EXP la apelul pack_facturare.scrie_factura2
|
||||
|
||||
*!* 19.05.2010
|
||||
*!* marius.mutu
|
||||
*!* finalizeaza_scriere_verificare - apel parametru aditional
|
||||
|
||||
|
||||
*!* 05.11.2010
|
||||
*!* marius.mutu
|
||||
*!* adauga_articol_factura + parametru multiplicator_curs = 1
|
||||
|
||||
*!* 13.06.2017
|
||||
*!* marius.mutu
|
||||
*!* scatter name poArt memo - nu exporta campul "explicatia" MEMO
|
||||
|
||||
Private ptDataOra
|
||||
Local lnIdSet,lnIdTipDoc,lcCursorVerificare,lcCursorFinal,pcSirDifAcont ,pcSirDifPart,lnSucces
|
||||
lnSucces = 1
|
||||
lcCursorVerificare = [crsactverif]
|
||||
lcCursorFinal = [tmpactactan]
|
||||
pcSirDifAcont = []
|
||||
pcSirDifPart = []
|
||||
|
||||
|
||||
|
||||
lnIdSet = 25000 + 30 - 1 + gnScadereStoc * 10
|
||||
*!* lcObiect = [frm_date_aviz_lucrare]
|
||||
lnIdTipDoc = 6
|
||||
If Type('poDate') <> 'O'
|
||||
poDate=Createobject("oDateFactura",lnIdSet,30)
|
||||
Private poGeneratorNumere
|
||||
poGeneratorNumere = Createobject("oGeneratorNumere")
|
||||
Else
|
||||
If Type('poGeneratorNumere') <> 'U'
|
||||
poGeneratorNumere.ResetNumere()
|
||||
Endif
|
||||
Endif
|
||||
|
||||
poDate.rezultat_serii=poGeneratorNumere.creeaza_cursor_serii(lnIdTipDoc)
|
||||
|
||||
If Type('poDateGestiuneDest') <> 'O'
|
||||
poDateGestiuneDest = Createobject("oDateGestiune")
|
||||
Endif
|
||||
Select actactan
|
||||
*!* SCATTER NAME poclient FIELDS nract
|
||||
*!* ADDPROPERTY(poclient,'denumire','')
|
||||
poDate.id_client = actactan.id_gestin
|
||||
poDate.nume_client = actactan.GESTIN
|
||||
poDate.DATAACT = actactan.DATAACT
|
||||
poDate.tip = 30
|
||||
*!* poClient.denumire = poDate.descriere
|
||||
pnButon=1
|
||||
ofrmceredate=Createobject('frm_date_aviz')
|
||||
ofrmceredate.Show(1)
|
||||
Release ofrmceredate
|
||||
If pnButon=2
|
||||
poGeneratorNumere.dezaloca_numar(lnIdTipDoc)
|
||||
Release poDate,poGeneratorNumere
|
||||
Return
|
||||
Else
|
||||
poGeneratorNumere.verifica_numar(lnIdTipDoc,poDate.nract)
|
||||
Endif
|
||||
|
||||
*!* Select 0 As id_c,id_articol,serie,id_gestiune,id_valuta,discunitar As discount_unitar ,codmat,denumire,um,1 As gestionabil,;
|
||||
*!* cant As cantitate,proc_tvav,0 As preturi_cu_tva,Curs,Pret As preta,pretv As Pret,tvav,0 As pret_val,nume_val,;
|
||||
*!* 0 As discount_unitar_val,0 As tip_valuta,Cont,acont From rul_temp ;
|
||||
*!* into Cursor crs_artTemp
|
||||
|
||||
*!* modificare v 2.0.77
|
||||
*!* Create Cursor crsfactura(id_c N(20),id_temp N(20),id_articol N(20),id_pol N(20) Null,id_gestiune N(20),Cont c(4),um c(10), ;
|
||||
*!* id_valuta N(10),gestionabil N(1),tip_valuta N(1),Curs N(20,4),id_jtva_coloana N(20) Null,codmat c(100),codbare c(50),codmatf c(100),;
|
||||
*!* pret_achizitie N(20,4),denumire c(100),pretftva N(20,4),pretctva N(20,4),valftva N(20,4), valtva N(20,4),valctva N(20,4),;
|
||||
*!* cantitate N(20,4),discountftva N(20,4), discountctva N(20,4), valdiscountftva N(20,4),valdiscounttva N(20,4),;
|
||||
*!* valdiscountctva N(20,4),valdiminuatftva N(20,4),valdiminuattva N(20,4), valdiminuatctva N(20,4),proc_tvav N(20,4),cu_tva N(1),serie c(100),;
|
||||
*!* vpretftva N(20,4),vpretctva N(20,4),vvalftva N(20,4),vvaltva N(20,4),vvalctva N(20,4),;
|
||||
*!* vdiscountftva N(20,4),vdiscountctva N(20,4),vvaldiscountftva N(20,4),vvaldiscounttva N(20,4),;
|
||||
*!* vvaldiscountctva N(20,4),vvaldiminuatftva N(20,4),vvaldiminuattva N(20,4),vvaldiminuatctva N(20,4),id_set_fact N(20) Null,explicatie c(100),;
|
||||
*!* id_part_rez N(10) Null,id_lucrare_rez N(10) Null,pretv_orig N(20,4),pretd N(20,4),id_valuta_d N(20))
|
||||
*!* modificare v 2.0.142
|
||||
*!* creeaza_crsfactura()
|
||||
creeaza_facturacrs([crsfactura])
|
||||
*!* modificare v 2.0.142 ^
|
||||
*!* modificare v 2.0.77 ^
|
||||
|
||||
*!* modificare roagest2.0.46
|
||||
*!* Local lcIdJtva
|
||||
*!* Select crs_artTemp
|
||||
*!* Local lni
|
||||
*!* Store 0 To lni
|
||||
*!* Scan
|
||||
*!* Scatter Name loArticole
|
||||
*!* lni = lni +1
|
||||
*!* Select crsfactura
|
||||
*!* update_jtva_coloane([JV],'CrsCotaTva',0)
|
||||
*!* Select CrsCotaTva
|
||||
*!* Locate For cota_tva = (loArticole.proc_tvav*100-100)
|
||||
*!* If Found()
|
||||
*!* lcIdJtva = id_jtva_coloana
|
||||
*!* Else
|
||||
*!* lcIdJtva = Null
|
||||
*!* Endif
|
||||
*!* Use In CrsCotaTva
|
||||
*!* Insert Into crsfactura ;
|
||||
*!* (id_c,id_temp,id_articol,id_gestiune,Cont,um,;
|
||||
*!* id_valuta,gestionabil ,tip_valuta ,Curs ,id_jtva_coloana ,codmat ,;
|
||||
*!* pret_achizitie,denumire ,pretftva ,pretctva ,valftva , valtva ,valctva ,;
|
||||
*!* cantitate ,discountftva , discountctva , valdiscountftva ,valdiscounttva ,;
|
||||
*!* valdiscountctva ,valdiminuatftva ,valdiminuattva , valdiminuatctva ,proc_tvav ,cu_tva ,serie ,;
|
||||
*!* id_set_fact ,explicatie,id_pol ) ;
|
||||
*!* values (;
|
||||
*!* lni,loArticole.id_c,loArticole.id_articol,loArticole.id_gestiune,loArticole.Cont,loArticole.um,;
|
||||
*!* loArticole.id_valuta,loArticole.gestionabil,loArticole.tip_valuta,loArticole.Curs,lcIdJtva ,loArticole.codmat,;
|
||||
*!* loArticole.preta,loArticole.denumire,loArticole.Pret,loArticole.Pret+loArticole.tvav,Round(loArticole.cantitate*loArticole.Pret,gnpa),Round(loArticole.cantitate*loArticole.tvav,gnpa),Round((loArticole.cantitate*loArticole.Pret)+(loArticole.cantitate*loArticole.tvav),gnpa),;
|
||||
*!* loArticole.cantitate,0,0,0,0,;
|
||||
*!* 0,Round(loArticole.cantitate*loArticole.Pret,gnpa),Round(loArticole.cantitate*loArticole.tvav,gnpa),Round((loArticole.cantitate*loArticole.Pret)+(loArticole.cantitate*loArticole.tvav),gnpa),loArticole.proc_tvav,loArticole.preturi_cu_tva,'',;
|
||||
*!* null,'',Null)
|
||||
*!* &&25039
|
||||
|
||||
*!* Select crs_artTemp
|
||||
*!* Endscan
|
||||
|
||||
*!* ar trebui comasat if-ul de mai jos cu completeaza_facturacrs din ofacturare_stoc.prg
|
||||
Local lnPretCuTva
|
||||
lnPretCuTva = Iif(INLIST(gnTipGest,6,7), 1, 0)
|
||||
If !INLIST(gnTipGest,6,7)
|
||||
Insert Into crsfactura (id_gestiune,id_articol,Cont,gestionabil,denumire,serie,cantitate,cu_tva,pretftva,pretctva,;
|
||||
valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
|
||||
valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,um,codmat,codbare,codmatf,;
|
||||
vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
|
||||
vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,pretd,id_valuta_d,pret_achizitie) ;
|
||||
Select id_gestiune,id_articol,Cont,;
|
||||
1 as gestionabil,denumire, Nvl(serie,' ') As serie, cant As cantitate,m.lnPretCuTva As cu_tva,;
|
||||
Round(pretv,gnPPretV) As pretftva,;
|
||||
Round(pretv,gnPPretV) + Round(Round(pretv,gnPPretV) * (proc_tvav-1),gnPPretV) As pretctva,;
|
||||
Round(Round(pretv,gnPPretV)*cant,gnPc) As valftva,;
|
||||
ROUND(Round(pretv*cant,gnPc)*(proc_tvav-1),gnPc) As valtva, ;
|
||||
Round(Round(pretv,gnPPretV)*cant,gnPc) + Round(Round(pretv*cant,gnPc)*(proc_tvav-1),gnPc) As valctva, ;
|
||||
ROUND(discunitar,gnPPretV) As discountftva,;
|
||||
ROUND(discunitar,gnPPretV)+Round(Round(discunitar,gnPPretV)*(proc_tvav-1),gnPPretV) As discountctva,;
|
||||
Round(Round(discunitar,gnPPretV)*cant,gnPc) As valdiscountftva, ;
|
||||
ROUND(Round(discunitar*cant,gnPc)*(proc_tvav-1),gnPc) As valdiscounttva, ;
|
||||
Round(Round(discunitar,gnPPretV)*cant,gnPc) + Round(Round(discunitar*cant,gnPc)*(proc_tvav-1),gnPc) As valdiscountctva,;
|
||||
Round(Round(pretv-discunitar,gnPPretV)*cant,gnPc) As valdiminuatftva,;
|
||||
ROUND(Round((pretv-discunitar)*cant,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
|
||||
ROUND(Round(Round(pretv-discunitar,gnPPretV)*cant,gnPc)*proc_tvav,gnPc) As valdiminuatctva,;
|
||||
proc_tvav, Nvl(um,Space(50)) As um, Nvl(codmat,Space(50)) As codmat, Nvl(codbare,Space(50)) As codbare,Nvl(codmatf,Space(50)) As codmatf,;
|
||||
Round(pretvval,gnPVal) As vpretftva,;
|
||||
ROUND(Round(pretvval,gnPVal)*cant,gnPVal) As vvalftva,;
|
||||
ROUND(Round(Round(pretvval,gnPVal)*cant,gnPVal)*(proc_tvav-1),gnPVal) As vvaltva,;
|
||||
0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
|
||||
Round(Round(pretvval-0,gnPVal)*cant,gnPVal) As vvaldiminuatftva,;
|
||||
ROUND(Round((pretvval-0)*cant,gnPVal)*(proc_tvav-1),gnPVal) As vvaldiminuattva,;
|
||||
ROUND(Round(Round(pretvval-0,gnPVal)*cant,gnPVal)*proc_tvav,gnPVal) As vvaldiminuatctva,;
|
||||
pretd,id_valuta,pret From rul_temp
|
||||
*!* modificare v 2.0.77 : am adaugat pretd,id_valuta
|
||||
*!* modificare v 2.0.142 : am completat vvaldiminuatftva, vvaldiminuattva, vvaldiminuatctva
|
||||
Else
|
||||
Insert Into crsfactura (id_gestiune,id_articol,Cont,gestionabil,denumire,serie,cantitate,cu_tva,pretftva,pretctva,;
|
||||
valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
|
||||
valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,um,codmat,codbare,codmatf,;
|
||||
vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
|
||||
vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,pretd,id_valuta_d,pret_achizitie) ;
|
||||
Select id_gestiune,id_articol,Cont,;
|
||||
1 as gestionabil,denumire, Nvl(serie,' ') As serie, cant As cantitate,m.lnPretCuTva As cu_tva,Round(pretv,gnPPretV) As pretftva, ;
|
||||
Round(pretv+tvav,gnPPretV) As pretctva,;
|
||||
Round(Round((pretv+tvav),gnPPretV)*cant,gnPc) - Round(Round((pretv+tvav)*cant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valftva, ;
|
||||
Round(Round((pretv+tvav)*cant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valtva, ;
|
||||
Round(Round((pretv+tvav),gnPPretV)*cant,gnPc) As valctva, ;
|
||||
ROUND(discunitar,gnPPretV) As discountftva, ;
|
||||
ROUND(discunitar,gnPPretV)+Round(Round(discunitar,gnPPretV)*(proc_tvav-1),gnPPretV) As discountctva,;
|
||||
Round(Round(discunitar,gnPPretV)*cant,gnPc) As valdiscountftva, ;
|
||||
Round(Round(discunitar*cant,gnPc)*(proc_tvav-1),gnPc) As valdiscounttva, ;
|
||||
Round(Round(discunitar,gnPPretV)*cant,gnPc) + Round(Round(discunitar*cant,gnPc)*(proc_tvav-1),gnPc) As valdiscountctva, ;
|
||||
Round(Round(pretv-discunitar,gnPPretV)*cant,gnPc) As valdiminuatftva,;
|
||||
ROUND(Round((pretv-discunitar)*cant,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
|
||||
ROUND(Round(Round(pretv-discunitar,gnPPretV)*cant,gnPc)*proc_tvav,gnPc) As valdiminuatctva,;
|
||||
proc_tvav, Nvl(um,Space(50)) As um,Nvl(codmat,Space(50)) As codmat, Nvl(codbare,Space(50)) As codbare,Nvl(codmatf,Space(50)) As codmatf,;
|
||||
Round(pretvval,gnPVal) As vpretftva,;
|
||||
ROUND(Round(pretvval,gnPVal)*cant,gnPVal) As vvalftva,;
|
||||
ROUND(Round(Round(pretvval,gnPVal)*cant,gnPVal)*(proc_tvav-1),gnPVal) As vvaltva,;
|
||||
0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
|
||||
Round(Round(pretvval-0,gnPVal)*cant,gnPVal) As vvaldiminuatftva,;
|
||||
ROUND(Round((pretvval-0)*cant,gnPVal)*(proc_tvav-1),gnPVal) As vvaldiminuattva,;
|
||||
ROUND(Round(Round(pretvval-0,gnPVal)*cant,gnPVal)*proc_tvav,gnPVal) As vvaldiminuatctva,;
|
||||
pretd,id_valuta,pret From rul_temp
|
||||
*!* modificare v 2.0.77 : am adaugat pretd,id_valuta
|
||||
*!* modificare v 2.0.142 : am completat vvaldiminuatftva, vvaldiminuattva, vvaldiminuatctva
|
||||
Endif
|
||||
|
||||
update_jtva_coloane([JV],'CrsCotaTva',0)
|
||||
Select crsFactura
|
||||
Scan
|
||||
Scatter Name loArticole
|
||||
Select CrsCotaTva
|
||||
Locate For cota_tva = (loArticole.proc_tvav*100-100)
|
||||
If Found()
|
||||
lcIdJtva = id_jtva_coloana
|
||||
Else
|
||||
lcIdJtva = Null
|
||||
Endif
|
||||
Select crsFactura
|
||||
Replace id_jtva_coloana With lcIdJtva
|
||||
Endscan
|
||||
|
||||
|
||||
Use In CrsCotaTva
|
||||
*!*\ modificare roagest2.0.46
|
||||
*!* DEBUG
|
||||
*!* SUSPEND
|
||||
lnSucces = SQLSetprop(gnHandle,"Transactions", 2)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX('Programul nu a reusit trecerea pe tranzactie manuala',0+16,'Eroare')
|
||||
Else
|
||||
|
||||
Select actactan
|
||||
Locate For Alltrim(scd) = '371' And INLIST(Alltrim(scc), '401', '408')
|
||||
Select actactan
|
||||
ptDataOra = dataora
|
||||
poDate.DATAACT = DATAACT
|
||||
lcSql = [pack_facturare.initializeaza_date_factura(] + ;
|
||||
[to_date('] + Dtoc(actactan.dataireg,2) + [','YYYYMMDD'),] + ;
|
||||
Nvl(Alltrim(Str(poDate.id_fdoc)),[NULL]) + [,to_date('] + Dtoc(actactan.DATAACT,2) + [','YYYYMMDD'),] + ;
|
||||
[to_date('] + Alltrim(Dtoc(actactan.datascad,2)) + [','YYYYMMDD'),'] + Nvl(poDate.serie_act,[]) + [',] + ;
|
||||
Alltrim(Str(poDate.nract)) + [,] + ;
|
||||
Iif(Isnull(actactan.id_gestin),[NULL],Alltrim(Str(actactan.id_gestin))) + [,] + ;
|
||||
Iif(Isnull(actactan.id_lucrare),[NULL],Alltrim(Str(actactan.id_lucrare))) + [,] + ;
|
||||
Iif(Isnull(actactan.id_sectie),[NULL],Alltrim(Str(actactan.id_sectie))) + [,] + ;
|
||||
Iif(IsNull(poDate.id_venchelt),[NULL],Alltrim(Str(poDate.id_venchelt))) + [,] + ;
|
||||
Iif(Isnull(actactan.id_responsabil),[NULL],Alltrim(Str(actactan.id_responsabil))) + [,] + ;
|
||||
IIF(EMPTY(nvl(poDate.explicatia4,[])),[NULL],['] + STRTRAN(ALLTRIM(poDate.explicatia4),['],['']) + [']) + [,] + ; && modificare ROAGEST v 2.1.11
|
||||
Iif(Isnull(poDate.listaid),[NULL],['] + Alltrim(Iif(Type('podate.listaid')='C',poDate.listaid,Str(poDate.listaid))) + [']) + [,] + ;
|
||||
['] + Alltrim(Nvl('',[])) + [',] + ;
|
||||
Alltrim(Str(30)) + [,] + Alltrim(Str(actactan.id_set)) + [,] + ;
|
||||
[to_date('] + Dtoc(actactan.DATAACT,2) + [','YYYYMMDD'),] + Alltrim(Str(actactan.id_valuta)) + [,] + ;
|
||||
Alltrim(Str(0)) + [,] + ;
|
||||
alltrim(str(actactan.tva_incasare)) + [,] + ; && modificare ROAGEST v 2.2.0
|
||||
Iif(Isnull(gnIdSucursala),[NULL],Alltrim(Str(gnIdSucursala))) + [,] + ;
|
||||
Alltrim(Str(gnIdUtil)) + [);]
|
||||
|
||||
lcSql = lcSql + [ pack_facturare.initializeaza_date_gestiune(] + Alltrim(Str(poDateGestiuneDest.id_gestiune)) + [,] + ;
|
||||
Alltrim(Str(poDateGestiuneDest.id_tipgest)) + [,'] + Alltrim(poDateGestiuneDest.Cont) +[',] + ;
|
||||
['] + Alltrim(Nvl(poDateGestiuneDest.acont,[])) + [');]
|
||||
|
||||
lcSql = [begin ] + lcSql + [ end;]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.oPrelucrareEroare(),0+16,"Eroare")
|
||||
llReturn = .F.
|
||||
Else
|
||||
lcSql = []
|
||||
Private poArt
|
||||
lcSql = []
|
||||
Select crsfactura
|
||||
Scan
|
||||
Scatter Name poArt MEMO
|
||||
*!* modificare v 2.0.77 : am adaugat pretd,id_valuta_d
|
||||
*!* modificare v 2.0.121 : am adaugat NULL pentru id_ctr ( in id_set_fact )
|
||||
*!* 05.11.2010
|
||||
lcSql = lcSql + [pack_facturare.adauga_articol_factura(] + Alltrim(Str(poArt.id_temp)) + [,] + ;
|
||||
Alltrim(Str(poArt.id_articol)) + [,'] + Alltrim(Nvl(poArt.serie,[])) + [',] + ;
|
||||
['] + Alltrim(Nvl(poArt.explicatie,'')) + [',] + Nvl(Alltrim(Str(poact.id_pol)),[NULL]) + [,] + ;
|
||||
Nvl(Alltrim(Str(poArt.id_gestiune)),[NULL]) + [,] + Alltrim(Str(poArt.pret_achizitie,18,gnPPret)) + [,] + ;
|
||||
Alltrim(Str(poArt.pretd,18,gnPPretVal)) + [,] + ;
|
||||
Iif(IsNull(poArt.id_valuta_d),[NULL],Alltrim(Str(poArt.id_valuta_d))) + [,] + ;
|
||||
IIF(poArt.cu_tva=0,;
|
||||
IIF(poArt.tip_valuta = 0,Alltrim(Str(poArt.pretftva,18,gnPPretV)),Alltrim(Str(poArt.vpretftva,18,gnPVal))),;
|
||||
IIF(poArt.tip_valuta = 0,Alltrim(Str(poArt.pretctva,18,gnPPretV)),Alltrim(Str(poArt.vpretctva,18,gnPVal)))) + [,] + ;
|
||||
Alltrim(Str(poArt.id_valuta)) + [,] + Alltrim(Str(poArt.cu_tva)) + [,] + Alltrim(Str(poArt.gestionabil)) + [,] + ;
|
||||
Alltrim(Str(poArt.cantitate,18,gnPCant)) + [,] + ;
|
||||
IIF(poArt.cu_tva = 0,;
|
||||
Iif(poArt.tip_valuta = 0,Alltrim(Str(poArt.discountftva,18,gnPPretV)),Alltrim(Str(poArt.vdiscountftva,18,gnPVal))), ;
|
||||
IIF(poArt.tip_valuta = 0,Alltrim(Str(poArt.discountctva,18,gnPPretV)),Alltrim(Str(poArt.vdiscountctva,18,gnPVal)))) + [,] + ;
|
||||
['] + Alltrim(Nvl(poArt.Cont,'')) + [',] + Alltrim(Str(poArt.Curs,18,4)) + [,1,] + Alltrim(Str(poArt.id_jtva_coloana)) + [,] + ;
|
||||
Nvl(Alltrim(Str(poArt.id_part_rez)),[NULL]) + [,] + Nvl(Alltrim(Str(poArt.id_lucrare_rez)),[NULL]) + [,] + ;
|
||||
Alltrim(Str(poArt.pretv_orig,18,gnPPretV)) + [,] + ;
|
||||
Nvl(Alltrim(Str(poArt.id_set_fact)),[NULL]) + [,NULL,] + Alltrim(Str(gnIdUtil)) + [);]
|
||||
*!* 05.11.2010 ^
|
||||
lcSql = [begin ] + lcSql + [ end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.oPrelucrareEroare(),0+16,"Eroare")
|
||||
llReturn = .F.
|
||||
Exit
|
||||
Else
|
||||
lcSql = []
|
||||
Endif
|
||||
Endscan
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
*!* modificare v 2.0.79 : am adaugat poDate.nid_vanzare
|
||||
*!* modificare v 2.0.142
|
||||
*!* lcSql = [{call pack_facturare.scrie_factura(0,0,] + ;
|
||||
*!* ALLTRIM(Str(0,18,gnPc)) + [,0,] + ;
|
||||
*!* [NULL,] + ;
|
||||
*!* [0,] + ;
|
||||
*!* [NULL,] + ;
|
||||
*!* [NULL,] + ;
|
||||
*!* [NULL,] + ;
|
||||
*!* [null,0,0,?poDate.nid_vanzare)}]
|
||||
*!* 30.03.2010
|
||||
lcSql = [{call pack_facturare.scrie_factura2(0,0,] + ;
|
||||
ALLTRIM(Str(0,18,gnPc)) + [,'',0,] + ;
|
||||
[NULL,] + ;
|
||||
[NULL,] + ;
|
||||
[NULL,] + ;
|
||||
[NULL,] + ;
|
||||
[0,] + ;
|
||||
[SYSDATE,] + ;
|
||||
[NULL,] + ;
|
||||
[null,0,0,?poDate.nid_vanzare)}]
|
||||
*!* 30.03.2010 ^
|
||||
*!* modificare v 2.0.142 ^
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursorVerificare)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.oPrelucrareEroare(),0+16,"Eroare")
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Endif
|
||||
If lnSucces > 0
|
||||
If Reccount(lcCursorVerificare)>0
|
||||
gnButon = 1
|
||||
Select a.*,a.suma As totftva, a.suma As tottva, Ttod(a.dataactt) As DATAACT, ;
|
||||
Ttod(a.datairegt) As dataireg, Ttod(a.datascadt) As datascad, ;
|
||||
0 As pozitie_1, 0 As pozitie_2 From (lcCursorVerificare) a Into Cursor (lcCursorFinal) Readwrite
|
||||
Use In (lcCursorVerificare)
|
||||
Select (lcCursorFinal)
|
||||
Do Form verificare With .T.,.T.
|
||||
If gnButon = 1
|
||||
Select (lcCursorFinal)
|
||||
Scan For Nvl(ascd,'') <> Nvl(ascd1,'') Or Nvl(ascc,'') <> Nvl(ascc1,'') Or ;
|
||||
NVL(id_partd,0) <> Nvl(id_partd1,0) Or Nvl(id_partc,0) <> Nvl(id_partc1,0)
|
||||
If Nvl(ascd,'') <> Nvl(ascd1,'') Or Nvl(ascc,'') <> Nvl(ascc1,'')
|
||||
pcSirDifAcont = pcSirDifAcont + Alltrim(Str(id_act)) + [|] + Alltrim(Nvl(ascd,'')) + [|] + Alltrim(Nvl(ascc,'')) + [;]
|
||||
Endif
|
||||
If Nvl(id_partd,0) <> Nvl(id_partd1,0) Or Nvl(id_partc,0) <> Nvl(id_partc1,0)
|
||||
If (Like([41*],scd) And Nvl(id_partd,0) <> Nvl(id_partd1,0)) ;
|
||||
Or (Like([41*],scc) And Nvl(id_partc,0) <> Nvl(id_partc1,0))
|
||||
aMESSAGEBOX("Nu puteti modifica clientul!",48,"Atentie")
|
||||
Return .F.
|
||||
Else
|
||||
pcSirDifPart = pcSirDifPart + Alltrim(Str(id_act)) + [|] + Alltrim(Str(Nvl(id_partd,0))) + [|] + Alltrim(Str(Nvl(id_partc,0))) + [;]
|
||||
Endif
|
||||
Endif
|
||||
Endscan
|
||||
lnReturn = 1
|
||||
gnButon = 2
|
||||
llReturn = .F.
|
||||
*!* modificare v 2.0.79 : am adaugat poDate.nid_vanzare
|
||||
*!* 19.05.2010
|
||||
lcSql = [begin pack_facturare.finalizeaza_scriere_verificare(0,] + ;
|
||||
[NULL]+ [,] + ;
|
||||
[NULL]+ [,] + ;
|
||||
[NULL]+ [,] + ;
|
||||
[0]+ [,] + ;
|
||||
[SYSDATE]+ [,] + ;
|
||||
[NULL]+ [,] + ;
|
||||
[null,'] + Alltrim(Nvl(pcSirDifAcont,[])) + [','] + ;
|
||||
ALLTRIM(Nvl(pcSirDifPart,[])) + [',0,?poDate.nid_vanzare); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
Endif
|
||||
If lnSucces<0
|
||||
aMESSAGEBOX(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
||||
gnButon = 2
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Use In (lcCursorFinal)
|
||||
Endif
|
||||
Endif
|
||||
Use In (Select(lcCursorVerificare))
|
||||
|
||||
If lnSucces > 0
|
||||
Private PNTIPFACTURARE
|
||||
Store 0 To PNTIPFACTURARE
|
||||
listeaza_ofacturare_stoc()
|
||||
Endif
|
||||
Endif &&SQLSETPROP
|
||||
|
||||
USE IN crsfactura
|
||||
|
||||
IF lnSucces > 0
|
||||
lnSucces = goexecutor.oexecute('COMMIT')
|
||||
ELSE
|
||||
poGeneratorNumere.dezaloca_numar(lnIdTipDoc)
|
||||
Release poDate,poGeneratorNumere
|
||||
lnSucces = goexecutor.oexecute('ROLLBACK')
|
||||
ENDIF
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goexecutor.ceroare,0+16,'Eroare')
|
||||
ENDIF
|
||||
|
||||
lnSucces = SQLSetprop(gnHandle,"Transactions", 1)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX('Programul nu a reusit trecerea pe tranzactie automata',0+16,'Eroare')
|
||||
ENDIF
|
||||
*!* DEBUG
|
||||
*!* SUSPEND
|
||||
*!* prelucreaza_factura(0,0,0,;
|
||||
*!* Iif(InList(poDate.tip,23,25,27,28,29,30,41) and Nvl(gnPretListSubunitati,2)=1,1,2)) && ofacturare_comun.prg
|
||||
|
||||
*!* lcRaport = [AVIZ_TRANSFER]
|
||||
*!* lnVizualizare = Iif(Type('gnVizualAviz')='N',gnVizualAviz,1)
|
||||
*!* lcSetare = [AVIZ]
|
||||
*!* Local loExport
|
||||
*!* loExport = Createobject("oExportConfig")
|
||||
*!* loExport.listareUserReport('crsfacturafinala','FRX',lcRaport,lnVizualizare,lcSetare)
|
||||
|
||||
476
Programe/oimportdinxml.prg
Normal file
476
Programe/oimportdinxml.prg
Normal file
@@ -0,0 +1,476 @@
|
||||
*!* 22.12.2016
|
||||
*!* marius.mutu
|
||||
*!* completez_date_xml - corectat eroare sql din versiunea 10/2015
|
||||
|
||||
PROCEDURE importbonconsumLE
|
||||
LPARAMETERS tnIdSet
|
||||
Local loXMLRequest as "Msxml2.xmlhttp"
|
||||
Local lcExtract, lcImportXML, lcUserlogIMPPath, lcXML, llCreareGeneratorNumere,lcImportXMLSTR
|
||||
Local lnNrmixuri, loEx, loMixMare,lnI
|
||||
PRIVATE pcFisierImport,pnIdGestiune,pnI
|
||||
STORE 0 TO pnIdGestiune
|
||||
pcFisierImport = gcDirimportxml + [\pour.log]
|
||||
lcUserlogIMPPath = gcDirMare + 'USERLOGS\' + m.GCS + '\' + m.gcNumeProgram + [\IMP_PROFITMANAGER]
|
||||
lcImportXML = ADDBS(lcUserlogIMPPath) + [pour_] + ttoc(DATETIME(), 1) + [.xml]
|
||||
If !Directory(m.lcUserlogIMPPath)
|
||||
Md (m.lcUserlogIMPPath)
|
||||
ENDIF
|
||||
SET STEP ON
|
||||
IF !FILE(m.pcFisierImport)
|
||||
aMESSAGEBOX('Nu exista fisierul de import ' + m.pcFisierImport + '!', 0 + 16, _screen.Caption)
|
||||
RETURN
|
||||
ENDIF
|
||||
lcImportXMLSTR = FILETOSTR(m.pcFisierImport)
|
||||
*!* lcImportXMLSTR = STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(strtran(strtran(strtran(strtran(strtran(lcImportXMLSTR ,CHR(227),[a]),CHR(226),[a]),CHR(238),[i]),CHR(186),[s]),CHR(254),[t]),CHR(195),;
|
||||
*!* [A]),CHR(194),[A]),CHR(206),'I'),CHR(170),'S'),CHR(222),'T')
|
||||
lcImportXMLSTR = STRTRAN(strtran(strtran(strtran(strtran(strtran(lcImportXMLSTR ,CHR(227),[a]),CHR(226),[a]),CHR(238),[i]),CHR(186),[s]),CHR(254),[t]),CHR(39),[ ])
|
||||
lcImportXMLSTR = Strtran(Strtran(Strtran(Strtran(Strtran(lcImportXMLSTR,Chr(195),[A]),Chr(206),[I]),Chr(194),[A]),Chr(170),[S]),Chr(222),[T])
|
||||
TRY
|
||||
STRTOFILE(m.lcImportXMLSTR, m.lcImportXML)
|
||||
*!* Copy File (pcFisierImport) To (lcImportXML)
|
||||
CATCH TO loEx
|
||||
aMESSAGEBOX(loEx.Message, 0 + 16, _screen.Caption)
|
||||
RETURN
|
||||
ENDTRY
|
||||
|
||||
If Type('poGeneratorNumere') = 'U'
|
||||
Private poGeneratorNumere
|
||||
poGeneratorNumere = Createobject('oGeneratorNumere')
|
||||
llCreareGeneratorNumere = .T.
|
||||
ENDIF
|
||||
|
||||
XMLTOCURSOR(lcImportXML, 'crsXMLmare', 512)
|
||||
|
||||
SELECT crsXmlMare
|
||||
LOCATE FOR LEFT(ALLTRIM(TRANSFORM(date)),6)<> ALLTRIM(STR(gnAn))+PADL(ALLTRIM(STR(gnLuna)),2,'0')
|
||||
IF FOUND()
|
||||
aMESSAGEBOX('Fisierul de importat are documente cu data actului din alta luna decat cea in care se lucreaza!', 0 + 16, _screen.Caption)
|
||||
USE IN crsXmlMare
|
||||
RETURN
|
||||
|
||||
ENDIF
|
||||
SELECT crsXmlMare
|
||||
loXMLRequest = CreateObject("Msxml2.xmlhttp")
|
||||
loXMLRequest.open("GET", lcImportXML, .F.)
|
||||
loXMLRequest.send(.null.)
|
||||
lcXML = loXMLRequest.responseText
|
||||
lnNrmixuri = OCCURS([<MIX>], lcXML)
|
||||
CREATE CURSOR crsExecutii (instr m, nrord c(50))
|
||||
CREATE CURSOR crsAtentionari (mesaj c(100), afara l, codmat c(50),rezolvat l, nrord c(50),pret n(16,4),id_lucrare n(10),time n(20))
|
||||
CREATE CURSOR crsBontot (id_articol n(20), denumire c(100), cant n(14, 3), pret n(16, 4), valoare n(16, 4), proc_tvav n(5, 2), id_lucrare n(10), codmat c(50),time n(20))
|
||||
CREATE CURSOR crsIesiritot (id_lucrare n(10), serie c(100), cant n(14, 3), nract n(14), id_fdoc n(5), dataact d, dataireg d, id_gestout n(5), id_responsabil n(10), id_venchelt n(5), id_sectie n(5), id_articol n(20),suma_imp n(16,4),suma n(16,4), nrord c(50),time n(20))
|
||||
|
||||
loTherm = Newobject("_thermometer","_therm","","Import bon de consum pe lucrare in curs de executie ...")
|
||||
lcTask = "Import ..."
|
||||
_Screen.MousePointer= 11
|
||||
With loTherm
|
||||
.AlwaysOnTop=.T.
|
||||
.Show()
|
||||
|
||||
lnPercent = 5
|
||||
.Update(lnPercent, lcTask)
|
||||
|
||||
pnI = 1
|
||||
FOR lnI = 1 TO lnNrmixuri
|
||||
pnI = lnI
|
||||
lcExtract = [<mix>] + STREXTRACT(lcXML, '</version>', '<panels>', lnI) + [</mix>]
|
||||
XMLTOCURSOR(lcExtract, 'crsingrediente')
|
||||
|
||||
lnPercent = 50 / (lnNrmixuri - lnI)
|
||||
.Update(lnPercent, lcTask)
|
||||
|
||||
SELECT crsXmlMare
|
||||
GOTO lnI
|
||||
SCATTER NAME loMixMare
|
||||
IF !completez_date_xml(loMixMare, tnIdSet)
|
||||
USE IN crsingrediente
|
||||
aMESSAGEBOX('Bonul de consum NU a fost importat!', 0 + 48, _screen.Caption)
|
||||
EXIT
|
||||
ENDIF
|
||||
USE IN crsingrediente
|
||||
|
||||
ENDFOR
|
||||
.AlwaysOnTop=.F.
|
||||
IF !afiseaza_mesaje()
|
||||
lnPercent = 70
|
||||
.Update(lnPercent, lcTask)
|
||||
DO executa_instr WITH tnIdSet
|
||||
ENDIF
|
||||
|
||||
lnPercent = 100
|
||||
.Update(lnPercent, lcTask)
|
||||
|
||||
USE IN crsExecutii
|
||||
USE IN crsAtentionari
|
||||
USE IN crsBontot
|
||||
USE IN crsIesiritot
|
||||
USE IN crsXmlMare
|
||||
.Complete()
|
||||
.AlwaysOnTop=.F.
|
||||
Endwith
|
||||
Release loTherm
|
||||
_Screen.MousePointer= 0
|
||||
ENDPROC
|
||||
*---------------------------------
|
||||
|
||||
|
||||
PROCEDURE completez_date_xml
|
||||
LPARAMETERS toMixMare, tnIdSet
|
||||
PRIVATE poActActan, pcXMLDetaliiBon, pcXMLDetaliiIesiri, pnIdVanzare, pcMesaj
|
||||
LOCAL lnRaspunReset
|
||||
STORE 0 TO lnRaspunReset
|
||||
|
||||
Dimension taValori[1,3]
|
||||
taValori[1,1]="poAct.nract"
|
||||
taValori[1,2]= [1]
|
||||
taValori[1,3]= .T.
|
||||
*!* lans(id_set_operatie,.F.,.T.,@taValori)
|
||||
|
||||
Local lcActactanSave, lcCursor, lcSql, lnBut, lnCante, lnPret, lnSucces, lnnr, loLucrari, loart,lnValImport
|
||||
Local loing
|
||||
lnValImport = 0
|
||||
lcActactanSave = gcTempPath + 'oscrie_in_fisiere_actactan' + ALLTRIM(TRANSFORM(toMixMare.date)) + '.xml'
|
||||
IF pnI = 1
|
||||
lnRaspunReset = aMESSAGEBOX('Resetati datele documentului deja introduse?',4+32,_screen.Caption)
|
||||
ENDIF
|
||||
IF !FILE(lcActactanSave) OR lnRaspunReset = 6
|
||||
|
||||
IF lans(tnIdSet,.F.,.T.,@taValori) = 2
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
*----salvez xml-ul cu datele introduse
|
||||
SELECT ACTACTAN
|
||||
CURSORTOXML('actactan', lcActactanSave, 1, 2 + 512, 0, "1")
|
||||
ELSE
|
||||
XMLTOCURSOR(lcActactanSave, 'actactan', 512)
|
||||
SELECT ACTACTAN
|
||||
ENDIF
|
||||
SET STEP ON
|
||||
|
||||
*-----------------------
|
||||
*!* generez numarul de bon urmator
|
||||
LOCAL lCursorSerii, lcNumeCursor, lcSerieCursor
|
||||
llCreareGeneratorNumere = .T.
|
||||
lCursorSerii = poGeneratorNumere.creeaza_cursor_serii(22)
|
||||
lcNumeCursor = poGeneratorNumere.getNumeCursor(22)
|
||||
lcSerieCursor = poGeneratorNumere.getSerieCursor(22)
|
||||
*!* If poGeneratorNumere.verifica_serie(2)
|
||||
lnnr = poGeneratorNumere.aloca_numar(22, Null)
|
||||
*!* ENDIF
|
||||
SELECT ACTACTAN
|
||||
REPLACE ALL nract WITH lnnr, nnir WITH lnnr
|
||||
*-----------------------
|
||||
*--------------------
|
||||
*!* caut id_lucrare in nom_lucrari unde nrord = jobnumber - daca nu exista lucrarea = atentionare = afara din bon
|
||||
lcSql = [select id_lucrare,nrord from nom_lucrari where nrord = '] + ALLTRIM(toMixMare.jobnumber) + [' and sters = 0]
|
||||
lcCursor = [v_lucrari]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
goExecutor.oReset()
|
||||
IF lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
|
||||
SELECT v_Lucrari
|
||||
SCATTER NAME loLucrari
|
||||
IF EMPTY(NVL(id_lucrare, 0))
|
||||
INSERT INTO crsAtentionari (mesaj, afara,nrord) VALUES ('Nu exista lucrarea ' + ALLTRIM(toMixMare.jobnumber) + [!], .t.,ALLTRIM(toMixMare.jobnumber))
|
||||
ELSE
|
||||
SELECT ACTACTAN
|
||||
REPLACE ALL id_lucrare WITH loLucrari.id_lucrare, nrord WITH loLucrari.nrord
|
||||
ENDIF
|
||||
USE IN v_Lucrari
|
||||
*--------------------
|
||||
*!* caut daca lucrarea a fost validata, daca este validat => atentionare => il scoate din bon
|
||||
lcSql = [select validat from dev_ordl d left join nom_lucrari l on d.id_lucrare = l.id_lucrare where d.sters = 0 and l.sters = 0 and l.nrord = '] + ALLTRIM(toMixMare.jobnumber) + [']
|
||||
lcCursor = [v_validat]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
goExecutor.oReset()
|
||||
IF lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
|
||||
SELECT v_validat
|
||||
IF validat = 1
|
||||
INSERT INTO crsAtentionari (mesaj, afara,nrord) VALUES ('Lucrarea ' + ALLTRIM(toMixMare.jobnumber) + [ a fost validata si nu se mai pot face modificari asupra ei!!], .t.,ALLTRIM(toMixMare.jobnumber))
|
||||
ENDIF
|
||||
USE IN v_validat
|
||||
*-------------------------------
|
||||
SELECT ACTACTAN
|
||||
LOCATE FOR nr_nota = 1
|
||||
SCATTER NAME poActActan
|
||||
pnIdGestiune = poActActan.id_gestout
|
||||
USE IN ACTACTAN
|
||||
|
||||
SELECT crsingrediente
|
||||
SCAN
|
||||
SCATTER NAME loing
|
||||
lnCante = ROUND((VAL(STRTRAN(ALLTRIM(TRANSFORM(loing.amount)), ',', '.')) / VAL(STRTRAN(ALLTRIM(TRANSFORM(loing.density)), ',', '.'))) / 1000, gnpcant) && transform in litri din grame
|
||||
*!* lnPret = VAL(STRTRAN(ALLTRIM(TRANSFORM(loing.price)), ',', '.'))
|
||||
|
||||
lcSql = [select a.id_articol,a.denumire,a.codmat] + ;
|
||||
[,SUM(a.cants+a.cant-a.cante) as stoc,a.pret from vstoc a where a.an = ?gnAn and a.luna = ?gnluna and a.codmat = '] + ALLTRIM(loing.code) + [' and id_gestiune = ]+ ALLTRIM(STR(poActActan.id_gestout));
|
||||
+[ group by a.id_articol,a.denumire,a.codmat,a.pret]
|
||||
lcCursor = [v_articole]
|
||||
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
goExecutor.oReset()
|
||||
IF lnSucces < 0
|
||||
aMESSAGEBOX(ALLTRIM(toMixMare.jobnumber)+ [ ] + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
|
||||
SELECT v_articole
|
||||
DELETE for stoc < lnCante
|
||||
GO TOP
|
||||
|
||||
SCATTER NAME loart
|
||||
lnPret = loart.pret
|
||||
*---------------------------
|
||||
*!* daca nu exista articolul respectiv in nom_articole/in stoc => atentionare => il scoate din bon
|
||||
IF EMPTY(NVL(loart.id_articol, 0))
|
||||
INSERT INTO crsAtentionari (mesaj, afara, codmat,nrord) VALUES ('Nu exista articolul ' + ALLTRIM(loing.code) + [ in stocul gestiunii ]+ALLTRIM(poActActan.gestout)+[!], .t., ALLTRIM(loing.code),ALLTRIM(toMixMare.jobnumber))
|
||||
ENDIF
|
||||
*----------------------------
|
||||
|
||||
*---------------------------
|
||||
*!* daca exista mai multe articole cu acelasi codmat, sa il pun sa aleaga (dar ii arat si stocul pe fiecare posibilitate de alegere)
|
||||
SELECT v_articole
|
||||
IF RECCOUNT() > 1
|
||||
INSERT INTO crsAtentionari (mesaj, afara, codmat,nrord,pret,id_lucrare,time) VALUES ('Exista mai multe articole cu codul material = ' + ALLTRIM(loart.codmat) + [!], .f., ALLTRIM(loart.codmat),ALLTRIM(toMixMare.jobnumber),loart.pret,loLucrari.id_lucrare,VAL(TRANSFORM(toMixMare.time)))
|
||||
ENDIF
|
||||
*----------------------------
|
||||
|
||||
INSERT INTO crsBontot (id_articol, denumire, cant, pret, valoare, proc_tvav, id_lucrare, codmat,time);
|
||||
VALUES (loart.id_articol, ALLTRIM(loart.denumire), lnCante, lnPret, lnCante * lnPret, gnProcTvaImp, loLucrari.id_lucrare, ALLTRIM(loing.code),VAL(TRANSFORM(toMixMare.time)))
|
||||
lnValImport = lnValImport + round(lnCante * lnPret,2)
|
||||
SELECT crsingrediente
|
||||
ENDSCAN
|
||||
|
||||
|
||||
INSERT INTO crsIesiritot (id_lucrare, serie, cant, nract, id_fdoc, dataact, dataireg, id_gestout, id_responsabil, id_venchelt, id_sectie, id_articol,suma_imp,nrord,suma,time);
|
||||
VALUES (loLucrari.id_lucrare, ALLTRIM(NVL(TRANSFORM(toMixMare.colorcode),[])) + [ - ] + ALLTRIM(toMixMare.colorname), VAL(strtran(ALLTRIM(TRANSFORM(toMixMare.mixsize)), [,], [.])), ;
|
||||
poActActan.nract, poActActan.id_fdoc, poActActan.dataact, poActActan.dataireg, poActActan.id_gestout, poActActan.id_responsabil, poActActan.id_venchelt, poActActan.id_sectie, -100009,lnValImport,ALLTRIM(toMixMare.jobnumber),0,VAL(TRANSFORM(toMixMare.time)))
|
||||
|
||||
|
||||
poGeneratorNumere.resetAll()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RETURN .t.
|
||||
*!* ----------------afiseaza mesaje----------------
|
||||
PROCEDURE afiseaza_mesaje
|
||||
LOCAL llErori
|
||||
Local loAfisMesaje as 'frm_atenterori'
|
||||
Private pcselect, pcschema, pcfiltru, pcorder, postoc, llAfiseaza
|
||||
Store '' To postoc
|
||||
pcschema = ['stoc n(16,4),id_articol n(10),codmat c(50),denumire c(100),nume_gestiune c(50),cgest c(20),pret n(16,4), ales n(1)']
|
||||
pcselect = ['select a.cants+a.cant-a.cante as stoc,a.id_articol,a.codmat,a.denumire,a.nume_gestiune,a.cgest,a.pret, 0 as ales from vstoc a '+] + ;
|
||||
['where 1=2']
|
||||
pcfiltru = [ 1 = 2]
|
||||
pcorder = [a.denumire]
|
||||
llAfiseaza = .F.
|
||||
gencursor('poStoc', 'v_stoc', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
||||
postoc.ca_baza1.afisare()
|
||||
*!* SELECT v_stoc
|
||||
*!* BROWSE
|
||||
|
||||
SELECT crsAtentionari
|
||||
LOCATE FOR afara = .t.
|
||||
IF FOUND()
|
||||
llErori = .t.
|
||||
ENDIF
|
||||
|
||||
SELECT crsAtentionari
|
||||
IF RECCOUNT() > 0
|
||||
GO TOP
|
||||
loAfisMesaje = CREATEOBJECT('frm_atenterori')
|
||||
loAfisMesaje._grdrow2.ReadOnly = .f.
|
||||
loAfisMesaje.nidgestiune = pnIdGestiune
|
||||
loAfisMesaje.but_termin1.visible = !llErori
|
||||
loAfisMesaje.show(1)
|
||||
ENDIF
|
||||
|
||||
IF gnButon = 2
|
||||
llErori = .t.
|
||||
ENDIF
|
||||
SELECT crsIesiritot
|
||||
SCAN
|
||||
SCATTER NAME loiesiri
|
||||
SELECT round(SUM(cant * pret),2) as suma FROM crsBontot INTO CURSOR crsBonsume WHERE id_lucrare = loiesiri.id_lucrare AND time = loiesiri.time
|
||||
SELECT crsIesiritot
|
||||
REPLACE suma_imp WITH crsBonsume.suma
|
||||
USE IN crsBonsume
|
||||
SELECT crsIesiritot
|
||||
ENDSCAN
|
||||
RELEASE loiesiri
|
||||
|
||||
SELECT crsBontot
|
||||
RETURN llErori
|
||||
*!* ----------------afiseaza mesaje----------------
|
||||
|
||||
*!* ----------------executa_instr----------------
|
||||
|
||||
PROCEDURE executa_instr
|
||||
LPARAMETERS tnIdSet
|
||||
PRIVATE pcXMLDetaliiIesiri, pcXMLDetaliiBon, pnIdVanzare
|
||||
LOCAL lcCursorVerificare
|
||||
Local lcCursorFinal, lcSql, llReturn, lnReturn, lnSucces, loexec, loiesiri,lnSume0
|
||||
STORE 0 TO lnSume0
|
||||
|
||||
PRIVATE pcSirDifAcont, pcSirDifPart
|
||||
lcCursorVerificare = [crsactverif]
|
||||
lcCursorFinal = [actactan]
|
||||
pcSirDifAcont = []
|
||||
pcSirDifPart = []
|
||||
SELECT crsIesiritot
|
||||
GO TOP
|
||||
oModificSumaLuc = CREATEOBJECT('frm_lucrari_sume')
|
||||
oModificSumaLuc._grdBase1.column3.readonly = .f.
|
||||
oModificSumaLuc.show(1)
|
||||
SELECT crsIesiritot
|
||||
COUNT FOR suma_imp=0 TO lnSume0
|
||||
IF lnSume0 > 0
|
||||
aMESSAGEBOX('Atentie! Bonurile cu sume = 0 nu vor fi importate!',0+64,_screen.Caption)
|
||||
SELECT crsIesiritot
|
||||
DELETE ALL FOR suma_imp = 0 &&AND suma = 0
|
||||
ENDIF
|
||||
IF gnButon = 2
|
||||
poGeneratorNumere.dezaloca_numar(22)
|
||||
Release poDate, poGeneratorNumere
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
SELECT crsIesiritot
|
||||
SCAN
|
||||
SCATTER NAME loiesiri
|
||||
SELECT id_lucrare, serie, cant, id_articol,suma FROM crsIesiritot INTO CURSOR crsIesiri WHERE id_lucrare = loiesiri.id_lucrare AND time = loiesiri.time
|
||||
Cursortoxml("crsIesiri", "pcXMLDetaliiIesiri", 1, 1, 0, "")
|
||||
SELECT crsIesiri
|
||||
USE IN crsIesiri
|
||||
SELECT * FROM crsBontot INTO CURSOR crsBon WHERE id_lucrare = loiesiri.id_lucrare AND time = loiesiri.time
|
||||
Cursortoxml("crsBon", "pcXMLDetaliiBon", 1, 1, 0, "")
|
||||
USE IN crsBon
|
||||
|
||||
SELECT crsExecutii
|
||||
SCATTER NAME loexec MEMO BLANK
|
||||
loexec.instr = [{call pack_gest_import.import_BON(] + ALLTRIM(STR(loiesiri.nract)) + [,]
|
||||
loexec.instr = loexec.instr + ALLTRIM(STR(loiesiri.id_fdoc)) + [,]
|
||||
loexec.instr = loexec.instr + [ TO_DATE('] + NVL(DTOS(loiesiri.dataact), "") + [','YYYYMMDD'),]
|
||||
loexec.instr = loexec.instr + [ TO_DATE('] + NVL(DTOS(loiesiri.dataireg), "") + [','YYYYMMDD'),]
|
||||
loexec.instr = loexec.instr + ALLTRIM(STR(loiesiri.id_gestout)) + [,]
|
||||
loexec.instr = loexec.instr + ALLTRIM(STR(loiesiri.id_responsabil)) + [,]
|
||||
loexec.instr = loexec.instr + ALLTRIM(STR(loiesiri.id_venchelt)) + [,]
|
||||
loexec.instr = loexec.instr + ALLTRIM(STR(loiesiri.id_sectie)) + [,]
|
||||
loexec.instr = loexec.instr + [?gnIdutil,]
|
||||
loexec.instr = loexec.instr + [?gnIdSucursala,]
|
||||
loexec.instr = loexec.instr + ALLTRIM(STR(tnIdSet)) + [,']
|
||||
loexec.instr = loexec.instr + ALLTRIM(pcXMLDetaliiBon) + [',']
|
||||
loexec.instr = loexec.instr + ALLTRIM(pcXMLDetaliiIesiri) + [')}]
|
||||
|
||||
loexec.nrord = ALLTRIM(loIesiri.nrord)
|
||||
|
||||
INSERT INTO crsExecutii (instr,nrord) VALUES (loexec.instr,loexec.nrord)
|
||||
|
||||
SELECT crsIesiritot
|
||||
ENDSCAN
|
||||
|
||||
SELECT crsExecutii
|
||||
lnSucces = SQLSetprop(gnHandle, "Transactions", 2)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX('Programul nu a reusit trecerea pe tranzactie manuala', 0 + 16, 'Eroare')
|
||||
ELSE
|
||||
|
||||
SELECT crsExecutii
|
||||
SCAN
|
||||
SCATTER NAME loexec memo
|
||||
|
||||
lnSucces = goExecutor.oExecute(loexec.instr, lcCursorVerificare)
|
||||
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(ALLTRIM(loexec.nrord)+[ ]+goExecutor.oPrelucrareEroare(), 0 + 16, "Eroare")
|
||||
llReturn = .F.
|
||||
EXIT
|
||||
else
|
||||
If Reccount(lcCursorVerificare) > 0
|
||||
gnButon = 1
|
||||
Select a.*, a.suma As totftva, a.suma As tottva, Ttod(a.dataactt) As dataact, ;
|
||||
Ttod(a.datairegt) As dataireg, Ttod(a.datascadt) As datascad, ;
|
||||
0 As pozitie_1, 0 As pozitie_2 From (lcCursorVerificare) a Into Cursor (lcCursorFinal) Readwrite
|
||||
Use In (lcCursorVerificare)
|
||||
Select (lcCursorFinal)
|
||||
Do Form verificare With .T., .T.
|
||||
If gnButon = 1
|
||||
Select (lcCursorFinal)
|
||||
Scan For Nvl(ascd, '') <> Nvl(ascd1, '') Or Nvl(ascc, '') <> Nvl(ascc1, '') Or ;
|
||||
NVL(id_partd, 0) <> Nvl(id_partd1, 0) Or Nvl(id_partc, 0) <> Nvl(id_partc1, 0)
|
||||
If Nvl(ascd, '') <> Nvl(ascd1, '') Or Nvl(ascc, '') <> Nvl(ascc1, '')
|
||||
pcSirDifAcont = pcSirDifAcont + Alltrim(Str(id_act)) + [|] + Alltrim(Nvl(ascd, '')) + [|] + Alltrim(Nvl(ascc, '')) + [;]
|
||||
Endif
|
||||
If Nvl(id_partd, 0) <> Nvl(id_partd1, 0) Or Nvl(id_partc, 0) <> Nvl(id_partc1, 0)
|
||||
If (Like([41*], scd) And Nvl(id_partd, 0) <> Nvl(id_partd1, 0)) ;
|
||||
Or (Like([41*], scc) And Nvl(id_partc, 0) <> Nvl(id_partc1, 0))
|
||||
aMESSAGEBOX("Nu puteti modifica clientul!", 48, "Atentie")
|
||||
llReturn = .F.
|
||||
Else
|
||||
pcSirDifPart = pcSirDifPart + Alltrim(Str(id_act)) + [|] + Alltrim(Str(Nvl(id_partd, 0))) + [|] + Alltrim(Str(Nvl(id_partc, 0))) + [;]
|
||||
Endif
|
||||
Endif
|
||||
Endscan
|
||||
|
||||
|
||||
lcSql = [begin pack_gest_import.finalizeaza_scriere_verificare(?gnAn,?gnLuna,] + ;
|
||||
['] + Alltrim(Nvl(pcSirDifAcont, [])) + [','] + ;
|
||||
ALLTRIM(Nvl(pcSirDifPart, [])) + ['); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
Endif
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.oPrelucrareEroare(), 16, "Eroare")
|
||||
Endif
|
||||
Use In (lcCursorFinal)
|
||||
Endif
|
||||
Endif
|
||||
Use In (Select(lcCursorVerificare))
|
||||
|
||||
|
||||
ENDSCAN
|
||||
|
||||
ENDIF
|
||||
IF lnSucces < 0 OR gnButon = 2
|
||||
poGeneratorNumere.dezaloca_numar(22)
|
||||
Release poDate, poGeneratorNumere
|
||||
lnSucces = goExecutor.oExecute('ROLLBACK')
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
aMESSAGEBOX('Bonul de consum NU a fost importat!', 0 + 48, _screen.Caption)
|
||||
llReturn = .F.
|
||||
|
||||
ELSE
|
||||
lnSucces = goExecutor.oExecute('COMMIT')
|
||||
aMESSAGEBOX('Importul bonului de consum a luat sfarsit!', 0 + 64, _screen.Caption)
|
||||
DELETE File (pcFisierImport)
|
||||
llReturn = .T.
|
||||
SELECT crsIesiritot
|
||||
SCAN
|
||||
SCATTER NAME loiesiri
|
||||
lnTip = gnTipGest
|
||||
DO listare_descarcare_productie WITH loiesiri.nract, lnTip
|
||||
SELECT crsIesiritot
|
||||
ENDSCAN
|
||||
|
||||
ENDIF
|
||||
|
||||
lnSucces = SQLSetprop(gnHandle, "Transactions", 1)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX('Programul nu a reusit trecerea pe tranzactie automata', 0 + 16, 'Eroare')
|
||||
ENDIF
|
||||
|
||||
RETURN llReturn
|
||||
ENDPROC
|
||||
*!* ----------------executa_instr----------------
|
||||
|
||||
|
||||
96
Programe/ovariabile_globale.prg
Normal file
96
Programe/ovariabile_globale.prg
Normal file
@@ -0,0 +1,96 @@
|
||||
**OVARIABILE_GLOBALE.PRG
|
||||
|
||||
|
||||
PUBLIC gcGestPermis, gcGrupePermis,gnTipGest,gcGestPermis_Nume,gcGrupePermis_Nume
|
||||
STORE '' TO gcGestPermis,gcGrupePermis,gcGestPermis_Nume,gcGrupePermis_Nume
|
||||
STORE 0 TO gnTipGest
|
||||
|
||||
IF TYPE('gcContObInv') = 'U'
|
||||
PUBLIC gcContObInv
|
||||
gcContObInv = '8039'
|
||||
ENDIF
|
||||
SET TEXTMERGE ON TO MEMVAR lcSql NOSHOW
|
||||
\select DISTINCT C.ID_GRUPE, C.NUME_GRUPA
|
||||
\ from <<gcS>>.VGEST_NOM_GRUPE C
|
||||
\ JOIN (select id_grupe
|
||||
\ from <<gcS>>.gest_nom_grupe
|
||||
\ where sters = 0
|
||||
\ start with ID_GRUPE IN (SELECT ID_GRUPE FROM <<gcS>>.VGEST_CORESP_UTIL_GRUPE WHERE ID_UTIL = <<gnIdUtil>>)
|
||||
\ connect by prior id_grupe = parent_id) g on c.id_grupe = g.id_grupe
|
||||
SET TEXTMERGE TO
|
||||
|
||||
*!* lcSql = [select * from ] + gcs + [.VGEST_CORESP_UTIL_GRUPE where id_util =] + ALLTRIM(STR(gnIdUtil))
|
||||
|
||||
lcCursor = [GRUPE_permis]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
ELSE
|
||||
SELECT grupe_permis
|
||||
SCAN
|
||||
gcGrupePermis = gcGrupePermis + ',' + ALLTRIM(STR(id_grupe))
|
||||
gcGrupePermis_Nume = gcGrupePermis_Nume + ',' + ALLTRIM(nume_grupa)
|
||||
ENDSCAN
|
||||
gcGrupePermis = SUBSTR(gcGrupePermis,2)
|
||||
gcGrupePermis_Nume = SUBSTR(gcGrupePermis_Nume,2)
|
||||
USE IN grupe_permis
|
||||
ENDIF
|
||||
goExecutor.oReset()
|
||||
*!* AMESSAGEBOX(gcGrupePermis_nume)
|
||||
|
||||
IF '-1' $ gcGrupePermis
|
||||
gcGestPermis = '-1'
|
||||
ELSE
|
||||
*!* lcSql = [SELECT * FROM ] + gcs + [.VGEST_CORESP_GRUPE_GESTIUNI A JOIN ] + gcs + [.VGEST_CORESP_UTIL_GRUPE B ]+ ;
|
||||
*!* [ON A.ID_GRUPE = B.ID_GRUPE WHERE B.ID_UTIL = ] + ALLTRIM(STR(gnIdUtil))
|
||||
|
||||
SET TEXTMERGE ON TO MEMVAR lcSql NOSHOW
|
||||
\select DISTINCT ID_GESTIUNE, NUME_GESTIUNE
|
||||
\ from <<gcS>>.vgest_coresp_grupe_gestiuni c
|
||||
\ join (select id_grupe
|
||||
\ from <<gcS>>.gest_nom_grupe
|
||||
\ where sters = 0
|
||||
\ start with ID_GRUPE IN (SELECT ID_GRUPE FROM <<gcS>>.VGEST_CORESP_UTIL_GRUPE WHERE ID_UTIL = <<gnIdUtil>>)
|
||||
\ connect by prior id_grupe = parent_id) g on c.id_grupe = g.id_grupe
|
||||
SET TEXTMERGE TO
|
||||
|
||||
|
||||
lcCursor = [gest_permis]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
ELSE
|
||||
SELECT gest_permis
|
||||
SCAN
|
||||
gcGestPermis = gcGestPermis + ',' + ALLTRIM(STR(id_gestiune))
|
||||
gcGestPermis_Nume = gcGestPermis_Nume + ',' + ALLTRIM(nume_gestiune)
|
||||
ENDSCAN
|
||||
gcGestPermis = SUBSTR(gcGestPermis,2)
|
||||
gcGestPermis_Nume = SUBSTR(gcGestPermis_Nume,2)
|
||||
USE IN gest_permis
|
||||
ENDIF
|
||||
goExecutor.oReset()
|
||||
ENDIF
|
||||
*!* AMESSAGEBOX(gcGestPermis_nume)
|
||||
*WAIT WINDOW gcGestPermis + ',' + gcGrupePermis
|
||||
|
||||
*****************************************************************************
|
||||
*** Citesc setarea pentru ReportBehaviour
|
||||
IF TYPE('gnReportBehaviour') = 'U'
|
||||
PUBLIC gnReportBehaviour
|
||||
gnReportBehaviour = 90
|
||||
ENDIF
|
||||
|
||||
LOCAL lcReportBehaviour
|
||||
lcReportBehaviour = NVL(getini(m.gcGeneralIniFile,'report','reportbehaviour'), '')
|
||||
IF EMPTY(m.lcReportBehaviour)
|
||||
setini(m.gcGeneralIniFile,'report','reportbehaviour', '90')
|
||||
gnReportBehaviour = 90
|
||||
ELSE
|
||||
gnReportBehaviour = VAL(m.lcReportBehaviour)
|
||||
ENDIF
|
||||
IF !INLIST(gnReportBehaviour, 80, 90)
|
||||
setini(m.gcGeneralIniFile,'report','reportbehaviour', '90')
|
||||
gnReportBehaviour = 90
|
||||
ENDIF
|
||||
*****************************************************************************
|
||||
1093
Programe/roagest.prg
Normal file
1093
Programe/roagest.prg
Normal file
File diff suppressed because it is too large
Load Diff
3
Programe/shutdown.prg
Normal file
3
Programe/shutdown.prg
Normal file
@@ -0,0 +1,3 @@
|
||||
IF TYPE("goApp")=="O" AND NOT ISNULL(goApp)
|
||||
RETURN goApp.OnShutDown()
|
||||
ENDIF
|
||||
157
Programe/suma_in_vorbe.prg
Normal file
157
Programe/suma_in_vorbe.prg
Normal file
@@ -0,0 +1,157 @@
|
||||
*----------------------------------------------------------------------------------
|
||||
*FUNCTION SUMA_IN_VORBE
|
||||
param suma
|
||||
local i,lit,numar1
|
||||
store 0 to i
|
||||
store '' to lit,numar1
|
||||
|
||||
copy file &dirgen\_ALFA\datean\mila1.* to &loc\&nfscurt\tempo\mila1.*
|
||||
use &loc\&nfscurt\tempo\mila1 in 0 alias mila1
|
||||
numar1=space(12)
|
||||
|
||||
numar1=str(suma,12)
|
||||
dimension a(12)
|
||||
a(1)=subs(numar1,12,1)
|
||||
a(2)=subs(numar1,11,1)
|
||||
a(3)=subs(numar1,10,1)
|
||||
a(4)=subs(numar1,9,1)
|
||||
a(5)=subs(numar1,8,1)
|
||||
a(6)=subs(numar1,7,1)
|
||||
a(7)=subs(numar1,6,1)
|
||||
a(8)=subs(numar1,5,1)
|
||||
a(9)=subs(numar1,4,1)
|
||||
a(10)=subs(numar1,3,1)
|
||||
a(11)=subs(numar1,2,1)
|
||||
a(12)=subs(numar1,1,1)
|
||||
sele mila1
|
||||
*********************
|
||||
loca for nr=val(a(12))
|
||||
lit=lit+alltri(cr1)
|
||||
|
||||
if val(a(11))=1
|
||||
if val(a(10))=0
|
||||
loca for nr=val(a(11))
|
||||
lit=lit+alltri(cr5)
|
||||
else
|
||||
loca for nr=val(a(10))
|
||||
lit=lit+alltri(cr4)
|
||||
endif
|
||||
else
|
||||
if val(a(10))=0
|
||||
loca for nr=val(a(11))
|
||||
lit=lit+alltrim(cr5)
|
||||
else
|
||||
loca for nr=val(a(11))
|
||||
lit=lit+alltrim(cr2)
|
||||
loca for nr=val(a(10))
|
||||
lit=lit+alltrim(cr3)
|
||||
endif
|
||||
endif
|
||||
do case
|
||||
case val(a(12)) # 0
|
||||
lit=lit+' miliarde'
|
||||
case val(a(11)) # 0
|
||||
lit=lit+' miliarde'
|
||||
case val(a(10)) # 0
|
||||
lit=lit+' miliarde'
|
||||
endcase
|
||||
***********************
|
||||
loca for nr=val(a(9))
|
||||
lit=lit+alltri(cr1)
|
||||
|
||||
if val(a(8))=1
|
||||
if val(a(7))=0
|
||||
loca for nr=val(a(8))
|
||||
lit=lit+alltri(cr5)
|
||||
else
|
||||
loca for nr=val(a(7))
|
||||
lit=lit+alltri(cr4)
|
||||
endif
|
||||
else
|
||||
if val(a(7))=0
|
||||
loca for nr=val(a(8))
|
||||
lit=lit+alltrim(cr5)
|
||||
else
|
||||
loca for nr=val(a(8))
|
||||
lit=lit+alltrim(cr2)
|
||||
loca for nr=val(a(7))
|
||||
lit=lit+alltrim(cr3)
|
||||
endif
|
||||
endif
|
||||
do case
|
||||
case val(a(9)) # 0
|
||||
lit=lit+' milioane'
|
||||
case val(a(8)) # 0
|
||||
lit=lit+' milioane'
|
||||
case val(a(7)) # 0
|
||||
lit=lit+' milioane'
|
||||
endcase
|
||||
***********************
|
||||
loca for nr=val(a(6))
|
||||
lit=lit+alltri(cr1)
|
||||
|
||||
if val(a(5))=1
|
||||
if val(a(4))=0
|
||||
loca for nr=val(a(5))
|
||||
lit=lit+alltri(cr5)
|
||||
else
|
||||
loca for nr=val(a(4))
|
||||
lit=lit+alltri(cr4)
|
||||
endif
|
||||
else
|
||||
if val(a(4))=0
|
||||
loca for nr=val(a(5))
|
||||
lit=lit+alltrim(cr5)
|
||||
else
|
||||
loca for nr=val(a(5))
|
||||
lit=lit+alltrim(cr2)
|
||||
loca for nr=val(a(4))
|
||||
lit=lit+alltrim(cr3)
|
||||
endif
|
||||
endif
|
||||
do case
|
||||
case val(a(6)) # 0
|
||||
lit=lit+' mii'
|
||||
case val(a(5)) # 0
|
||||
lit=lit+' mii'
|
||||
case val(a(4)) # 0
|
||||
lit=lit+' mii'
|
||||
endcase
|
||||
|
||||
*********************
|
||||
loca for nr=val(a(3))
|
||||
lit=lit+alltri(cr1)
|
||||
|
||||
if val(a(2))=1
|
||||
if val(a(1))=0
|
||||
loca for nr=val(a(2))
|
||||
lit=lit+alltri(cr5)
|
||||
else
|
||||
loca for nr=val(a(1))
|
||||
lit=lit+alltri(cr4)
|
||||
endif
|
||||
else
|
||||
if val(a(1))=0
|
||||
loca for nr=val(a(2))
|
||||
lit=lit+alltrim(cr5)
|
||||
else
|
||||
loca for nr=val(a(2))
|
||||
lit=lit+alltrim(cr2)
|
||||
loca for nr=val(a(1))
|
||||
lit=lit+alltrim(cr3)
|
||||
endif
|
||||
endif
|
||||
do case
|
||||
case val(a(3)) # 0
|
||||
lit=lit+' lei'
|
||||
case val(a(2)) # 0
|
||||
lit=lit+' lei'
|
||||
case val(a(1)) # 0
|
||||
lit=lit+' lei'
|
||||
endcase
|
||||
|
||||
sele mila1
|
||||
use
|
||||
|
||||
lit=strtran(lit,' ','')
|
||||
return lit
|
||||
69
Programe/update_nomenclator.prg
Normal file
69
Programe/update_nomenclator.prg
Normal file
@@ -0,0 +1,69 @@
|
||||
**********************************************************
|
||||
PROCEDURE update_nomenclator
|
||||
|
||||
*!* DO update_coresp_tip_part
|
||||
*!* DO update_coresp_tip_cont
|
||||
DO update_lunilean
|
||||
|
||||
*** tabele meniu deschise din proiect
|
||||
LOCAL lcCaleDateMenu
|
||||
|
||||
lcCaleDateMenu=gcAppPath+[\COMUN\DATEMENU\]
|
||||
|
||||
*!* modificare v 2.0.120
|
||||
lnSucces = xdate()
|
||||
*!* IF !USED('XREQUEST')
|
||||
*!* USE &lcCaleDateMenu.XREQUEST IN 0 ALIAS XREQUEST
|
||||
*!* ENDIF
|
||||
*!* IF !USED('xitems')
|
||||
*!* USE &lcCaleDateMenu.xitems IN 0 ALIAS xitems
|
||||
*!* ENDIF
|
||||
*!* *!* IF !USED('YACT')
|
||||
*!* *!* USE &lcCaleDateMenu.YACT IN 0 ALIAS YACT
|
||||
*!* *!* ENDIF
|
||||
*!* IF !USED('XSETS')
|
||||
*!* USE &lcCaleDateMenu.XSETS IN 0 ALIAS XSETS ORDER TAG ID_SET
|
||||
*!* ENDIF
|
||||
*!* IF !USED('xACT')
|
||||
*!* USE &lcCaleDateMenu.xACT IN 0 ALIAS xACT
|
||||
*!* ENDIF
|
||||
*!* IF !USED('xnote')
|
||||
*!* USE &lcCaleDateMenu.xnote IN 0 ALIAS xnote
|
||||
*!* ENDIF
|
||||
*!* modificare v 2.0.120 ^
|
||||
|
||||
IF !USED('menu1')
|
||||
USE &lcCaleDateMenu.menu1 IN 0 ALIAS menu1 EXCL
|
||||
ENDIF
|
||||
|
||||
IF !USED('INFISIERE')
|
||||
USE &lcCaleDateMenu.INFISIERE IN 0 ALIAS INFISIERE
|
||||
ENDIF
|
||||
|
||||
IF !USED('selectii')
|
||||
USE &lcCaleDateMenu.gest_selectii IN 0 ALIAS selectii
|
||||
ENDIF
|
||||
|
||||
IF !USED('nom_meniu')
|
||||
USE &lcCaleDateMenu.nom_meniu IN 0 ALIAS nom_meniu
|
||||
ENDIF
|
||||
|
||||
*!* modificare v 2.2.3
|
||||
If !Used('mila1')
|
||||
Use &lcCaleDateMenu.mila1 In 0 Alias mila1
|
||||
endif
|
||||
*!* modificare v 2.2.3 ^
|
||||
|
||||
*!* IF !USED('refaceri')
|
||||
*!* USE &lcCaleDateMenu.refaceri IN 0 ALIAS refaceri
|
||||
*!* ENDIF
|
||||
|
||||
*!* IF !USED('tabela_fisa_cont')
|
||||
*!* USE &lcCaleDateMenu.tabela_fisa_cont IN 0 ALIAS tabela_fisa_cont
|
||||
*!* ENDIF
|
||||
|
||||
*!* 03.09.2007
|
||||
*!* marius.mutu
|
||||
CREATE CURSOR dual (dummy c(10))
|
||||
INSERT INTO dual (dummy) VALUES ("x")
|
||||
ENDPROC && update_nomenclator
|
||||
Reference in New Issue
Block a user