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:
2026-07-16 11:22:03 +03:00
commit 7ae0c39d5e
204 changed files with 66147 additions and 0 deletions

21
Programe/actualizari.prg Normal file
View 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
View 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
View 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
View 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

View 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

File diff suppressed because it is too large Load Diff

387
Programe/inchidere_k.prg Normal file
View 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
View 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
View 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----------------

View 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

File diff suppressed because it is too large Load Diff

3
Programe/shutdown.prg Normal file
View 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
View 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

View 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