*!* 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 ^ ************************************************************************************************************************