بعد الانتظار الطويل لم اجد اي تجاوب من اعضاءالمنتدي
ولذالك احب ان اقد لكم هذ الكود لعملية الاقفال وفتح سنة جديدة
declare
كرسر لتجميع المبالغ للسنة الحالية وجعلها مبالغ افتتاحية للسنة الجديدة
cursor blsy is select no_acc,NAME_ACC,nvl(sum(DEBTOR),0),nvl(sum(CRDITOR),0),CENCOST ,FLG from daly where LCK<>1
group by FLG,no_acc,NAME_ACC,CENCOST ;
كرسر لتجميع المبالغ للمصاريف والايرادات وجعلها في حساب الارباح والخسارة
n_c varchar2(22);
dbt number(30);
crd number(30);
n_rec varchar2(100);
n varchar2(15);
fg varchar2(22);
cncost number(30);
cvr number(30);
dtl varchar2(100);
dat date;
nam varchar2(100);
norc number(30);
debs number(30);
crds number(30);
debsfg number(30);
crdsfg number(30);
fgg varchar2(40);
eql number;
n1 number;
d1 date;
cursor c3 is select no_acc,type_acc
from gacc;
n_acco varchar2(30);
typ_acc varchar2(30);
albk number;
scc number;
cursor prft is select nvl(DEBTOR,0),nvl(CRDITOR,0),flg from daly where substr(NO_ACC,1,1) between 2 and 3 ;
i varchar(100);
nn number;
m number;
begin
-- end loop; create buck up for all date
--close c4;
albk:=show_alert('bk');
if albk=alert_button1 then
-- call_form('d:\updateacc\import and export');
call_form(:global.path||'\import and export');
scc:=show_alert('sc');
elsif albk=alert_button2 then
null;
end if;
insert into ledger(NO_ACC,NO_REC,DATE_REC ,MON_DEBT,MON_CRDT,DETAIL,TYPE_CROVR,CENCOST,FLG)
select no_acc,no_rec,date_rec,DEBTOR,CRDITOR , DTL_ACC ,CROVR,CENCOST ,FLG
from daly where date_rec between :dstr and :dend and lck<>1;
--ÓíÊã ÊÌãíÚ ÇáãÕÇÑíÝ æÇáÇíÑÇÏÇÊ ææÖÚåÇ Ýí ÍÓÇÈ ÇáÇÑÈÇÍ æÇáÎÓÇÆÑ
select count(*) into i from gacc where name_acc=:prof ;
if i=1 then
null;
else
message('ÍÓÇÈ ÇáÇÑÈÇÍ æÇáÎÓÇÑÉ ÛíÑ ãæÌæÏ Ýí ÇáÏáíá åá ÇäÊ ãÊÇßÏ ãä ÇÖÇÝÊÉ');
-- message('are yuo sur add to prof');
select max(NO_ACC)+1,lvl_acc into nn,m from gacc where MAIN_AC=2112 group by lvl_acc ;
:noprf:=nn;
insert into gacc (MAIN_AC ,NO_ACC,NAME_ACC,LVL_ACC) values(2112,nn,:prof,m);
end if;
open prft;
debsfg:=0;
crdsfg :=0;
loop
fetch prft into debs,crds,fgg;
exit when prft%notfound;
select EQLCR into eql from curr where flg=fgg;
debsfg:= debsfg+debs*eql;
crdsfg := crdsfg+crds*eql;
end loop;
close prft;
select max(NO_REC)+1 into norc from rec_daly;
insert into REC_DALY(NO_REC,DATE_REC)values(norc,:NEXDAT);
insert into daly (no_acc,NAME_ACC,no_rec,date_rec,DEBTOR,CRDITOR ,DTL_ACC ) values(:noprf,:prof,norc,:NEXDAT,debsfg, crdsfg,'ÇáÇÑÈÇÍ æÇáÎÓÇÆÑ ááÚÇã ÇáãÇÖí' );
اضافة صافي الايرادات والمصروفات في حساب الارباح والخسارة
norc:=norc+1;
go_block('daly');
open blsy;
loop
fetch blsy into n_c,nam,dbt,crd,cncost,fg;
exit when blsy%notfound;
:no_acc:=n_c;
:NAME_ACC:=NAM;
:no_rec:=norc;
:date_rec:=sysdate;
:DEBTOR:=dbt;
:CRDITOR :=crd;
:DTL_ACC:='ÑÕíÏ ÓÇÈÞ';
:CENCOST:=cncost;
:FLG:=fg;
لتجميع المبالغ للسنة الحالية وجعلها مبالغ افتتاحية للسنة الجديدة
insert into REC_DALY(NO_REC,DATE_REC)values(norc,:NEXDAT);
insert into daly (no_acc,NAME_ACC,no_rec,date_rec,DEBTOR,CRDITOR ,DTL_ACC ,CENCOST ,FLG) values(n_c,NAM,norc,:NEXDAT,dbt,crd,'ÑÕíÏ ÓÇÈÞ' ,cncost,fg);
next_record;
norc:=norc+1;
end loop;
close blsy;
update daly set lck=1 where date_rec<sysdate;
commit;
-- update gacc set ACC_STR=nvl(crds,0)-nvl(debs,0) ;
end;