View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000691 | Кредиторы | General | public | 2014-07-28 13:08 | 2015-06-06 08:27 |
Reporter | ruslan | Assigned To | barry | ||
Priority | urgent | Severity | feature | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Summary | 0000691: -Расчеты с Кредиторами-Платежные документы - Открыть поле для изменния курса валют. | ||||
Description | Аналогично 689 задаче только для кредиторов. | ||||
Tags | No tags attached. | ||||
|
slkt32.zip |
|
Добавь кнопку рядом с курсом валюты - Обновить курс из справочника(с иконкой типа как Обновить информацию), часто документы делают задним числом а курс потягивается неправильный, соответственно при изменении даты он не меняется автоматически... |
|
Остался вопрос с Покупкой/Продажей валюты... там тоже надо открыть поле для изменения курса валют, добавить кнопку рядом с полем курс валюты - Обновить курс из справочника. Расчет проводок Убытку/Доходу с продажи валюты делать относительно курса из формы. И еще для визуализации разницы между курсом в форме и курсом в справочнике за этот день, сделай при открытии формы(изменении даты оплаты, даты валютирования) изменение цвета шрифта в поле курс валюты на красный, если курс отличается от справочного. |
|
1. При открытии на редактирование формы платежного документа с Продажей валюты, курс на дату Валютирования в форму поттягивается из справочника Курсы валют, а не читается из базы, хотя сохраняет в БД правильный курс. 2. Проводки по расчету Суммы зачисления по покупке валюты и Доход/Убыток я подправил create or alter procedure SALEKT_GENACCNREC ( ID integer) as declare variable DT varchar(5); declare variable KT varchar(5); declare variable comment varchar(255); declare variable SALEKTCOMMENT varchar(255); declare variable SUMTYP integer; declare variable DATTYP integer; declare variable ACCNKEY integer; declare variable SALEKEY integer; declare variable NAMEID integer; declare variable SUMMA double precision; declare variable SUMM double precision; declare variable PROVSUMMA double precision; declare variable DT1 integer; declare variable KT1 integer; declare variable DT3 integer; declare variable KT3 integer; declare variable DT6 integer; declare variable KT6 integer; declare variable D1 integer; declare variable K1 integer; declare variable D3 integer; declare variable K3 integer; declare variable D6 integer; declare variable K6 integer; declare variable NBR varchar(20); declare variable DAT_ timestamp; declare variable USERNAME varchar(20); declare variable OPERID integer; declare variable PRSNID integer; declare variable STORNO integer; declare variable DTPRT integer; declare variable DTOBJ integer; declare variable KTPRT integer; declare variable KTOBJ integer; declare variable OPER integer; declare variable OPID integer; declare variable PROC double precision; declare variable OURACNID integer; declare variable CTYP integer; declare variable CURRTYP integer; declare variable BDATE timestamp; declare variable CURS double precision; declare variable CSUMMA double precision; declare variable BSUMMA double precision; declare variable BKSUMMA double precision; declare variable BESUMMA double precision; declare variable OURORGNID integer; declare variable ORGACCNID integer; declare variable FINRES integer; declare variable ACCNTEMP varchar(5); declare variable ATEMP integer; declare variable BCURS double precision; declare variable B1CURS double precision; declare variable E1CURS double precision; declare variable ACSUMMA double precision; declare variable ADATE timestamp; declare variable DT8 integer; declare variable DT9 integer; declare variable KT8 integer; declare variable KT9 integer; declare variable VL1 integer; declare variable VL2 integer; declare variable BACCNID integer; declare variable CALCNDS integer; declare variable NDSPROC double precision; declare variable NDS double precision; declare variable PROCNDS double precision; begin for select id,nameid,summa,summ,nbr,saledate, BAccnID, BCurs, username,operid,comment,PrsnID, OurAccnID, AccnID, CTyp, CurrTyp, Curs, CSumma, BDATE, bSumma, bKSumma, bESumma, OurOrgnID, VL1, VL2, CalcNds, NdsProc, Nds from salekt where id=:id into :salekey,:nameid,:summa,:summ,:nbr,:dat_, :BAccnID, :BCurs, :username,:operid, :salektcomment,:PrsnID, :OurAcnID, :OrgAccnID, :CTyp, :CurrTyp, :Curs, :CSumma, :BDATE, :bSumma,:bKSumma,:bESumma, :OurOrgnID, :VL1, :VL2, :CalcNds, :NdsProc, :Nds do begin aDate = :DAT_; ProcNDS = 20; select cast(val as double precision) from sysconst where OurOrgnID=:OurOrgnID and name='ProcNDS' into :procNDS; if (:CalcNds is Null) then begin -- по умолчанию (для старых записей) if (:CTyp = 1) then begin -- в иностранной валюте NdsProc = 0.0; Nds = 0.0; end else begin -- в национальной валюте NdsProc = :ProcNds; Nds = :Summa / (100 + :NdsProc) * :NdsProc; end end if (:dat_ is null) then exit; if(:CTyp<>1) then begin CurrTyp=Null; Curs=1.0; CSumma=0.0; end for select ID,dt,kt,sumtyp,comment,storno, AccnDate, dtprt,dtobj,ktprt,ktobj, Oper, Proc, FinRes from storaccn where oper=10 and operid=:operid into :OpID,:dt,:kt,:sumtyp,:comment,:storno, :DatTyp, :dtprt,:dtobj,:ktprt,:ktobj,:Oper, :Proc, :FinRes do begin if(:DatTyp = 2 or :DatTyp=3) then execute procedure SaleKt_GenAccnRecSale(:ID, :OpID); else begin if(:DatTyp=4) then aDate = :BDATE; provsumma = 0.0; aCSumma = 0.0; if((:salektcomment <> '') and (:salektcomment is not null)) then Comment = :SaleKtComment; -- Сумма платежа if (:sumtyp=0) then begin provsumma = :summa; aCSumma = :cSumma; end -- НДС с суммы if (:sumtyp=1) then begin provsumma = :Nds;--:summa*:ProcNDS/(100.0+:ProcNDS); -- aCSumma = :cSumma * :ProcNDS /(100.0+:ProcNDS); end -- Сумма без НДС if (:sumtyp=2) then begin provsumma = :Summa - :Nds; --:summa-(:summa*:ProcNDS/(100+:ProcNDS)); -- aCSumma = :cSumma-(:cSumma*:ProcNDS/(100+:ProcNDS)); end -- Остаток Суммы (неразнесенный) if (:sumtyp=3) then provsumma = :summ; -- Сумма продажи (продажа валюты) if (:SumTyp=5) then ProvSumma = :BSumma; -- Сумма зачисления (продажа/покупка валюты) if (:SumTyp=6) then begin if (:CTyp = 1) then -- продажа ProvSumma = :BESumma; else begin -- покупка CurrTyp = Null; Curs = 0.0; select CurrTyp from OrgnBankAccn where ID = :BAccnID into :CurrTyp; --select Val from Currency_GetValue(:CurrTyp, :BDate) into :Curs; select curs from salekt where id = :Id into :Curs; ProvSumma = 0.0; if (:Curs <> 0.0) then ProvSumma = :BESumma * :Curs; aCSumma = :BESumma; end end /* Сумма комиссионых банку (продажа валюты) */ if (:SumTyp=7) then ProvSumma = :BKSumma; -- Прибыль с продажи (продажа/покупка валюты) if (:SumTyp=8) then begin if (:CTyp = 1) then -- продажа ProvSumma = :BSumma-:Summa; else begin -- покупка CurrTyp = Null; Curs = 0.0; select CurrTyp from OrgnBankAccn where ID = :BAccnID into :CurrTyp; --select Val from Currency_GetValue(:CurrTyp, :BDate) into :Curs; select curs from salekt where id=:id into :Curs; ProvSumma = 0.0; if (:Curs <> 0.0) then begin ProvSumma = :BESumma * (:Curs - :BCurs); aCSumma = ProvSumma / :Curs; end end end /* Курсовая разница (НБ) */ if (:SumTyp=9) then begin Select Val from Currency_GetValue(:CurrTyp, :DAT_ ) into :b1Curs; Select Val from Currency_GetValue(:CurrTyp, :BDate) into :e1Curs; ProvSumma = :CSumma * (:e1Curs-:b1Curs); end d1 = null; dt1=null; k1=null; kt1=null; select a1,a3,a6, a8, a9 from accnplan where accn=:dt into :d1,:d3,:d6,:dt8,:dt9; select a1,a3,a6, a8, a9 from accnplan where accn=:kt into :k1,:k3,:k6,:kt8,:kt9; if(:d1 is not null and :d1 <> 0) then dt1=:NameID; else dt1=Null; if(:d3 is not null and :d3 <> 0) then dt3=:PrsnID; else dt3=Null; if(:d6 is not null and :d6 <> 0) then begin dt6 = :OrgAccnID; if (:SumTyp = 6) then dt6 = :BAccnID; end else dt6 = Null; if(:k1 is not null and :k1 <> 0) then kt1=:NameID; else kt1=Null; if(:k3 is not null and :k3 <> 0) then kt3=:PrsnID; else kt3=Null; if(:k6 is not null and :k6 <> 0) then begin kt6 = :OurAcnID; if (:SumTyp = 6) then kt6 = :BAccnID; end else kt6 = Null; if (:dt8 is not Null) then dt8 = :VL1; if (:dt9 is not Null) then dt9 = :VL2; if (:kt8 is not Null) then kt8 = :VL1; if (:kt9 is not Null) then kt9 = :VL2; if(:Storno<>0) then begin ProvSumma=-:ProvSumma; aCSumma = -:cSumma; end if(:Proc<>0.0 and :Proc is not Null) then begin ProvSumma = :ProvSumma / 100.00 * :Proc; aCSumma = :aCSumma / 100.00 * :Proc; end if(:FinRes = 0) then begin /* при отриц. сумме - обнулить */ if (:ProvSumma < 0.0) then begin ProvSumma = 0.0; aCSumma = 0.0; end end if(:FinRes = 2) then begin /* при отриц. сумме - поменять корреспонденцию */ if (:ProvSumma < 0.0) then begin ProvSumma = -:ProvSumma; aCSumma = -:aCSumma; AccnTemp = Dt; Dt = Kt; Kt = AccnTemp; aTemp = dt1; dt1=kt1; kt1=aTemp; aTemp = dt3; dt3=kt3; kt3=aTemp; aTemp = dt6; dt6=kt6; kt6=aTemp; aTemp = dt8; dt8=kt8; kt8=aTemp; aTemp = dt9; dt9=kt9; kt9=aTemp; end end if((:provsumma <> 0.0) and (:DAT_ is not null)) then begin if(:Curs=0.0 or :Curs is null) then Curs=1.0; AccnKey = Gen_ID(AccnProv_ID, 1); insert into accnprov(ID,OurOrgnID,DAT_,dt,kt,summa,dt1,kt1,dt3,kt3, comment,document,username,dt6,kt6, dtprt,dtobj,ktprt,ktobj,Oper,OperID,DocID, CurrTyp,Curs,CSumma, dt8, dt9, kt8, kt9) values(:accnkey,:OurOrgnID,:aDate,:dt,:kt,:provsumma,:dt1,:kt1,:dt3,:kt3, :comment,:nbr,:username,:dt6,:kt6, :dtprt,:dtobj,:ktprt,:ktobj,:Oper,:OperID,:ID, :CurrTyp,:Curs,:aCSumma, :dt8, :dt9, :kt8, :kt9); insert into salektac (id,salekey,accnkey) values(gen_id(salektac_id, 1),:salekey,:accnkey); end end /* not salecros */ end end end |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-07-28 13:08 | ruslan | New Issue | |
2014-07-28 13:08 | ruslan | Relationship added | related to 0000689 |
2014-11-25 07:45 | barry | Assigned To | => barry |
2014-11-25 07:45 | barry | Status | new => acknowledged |
2014-11-25 07:53 | barry | Note Added: 0001794 | |
2014-11-25 07:53 | barry | Status | acknowledged => feedback |
2014-12-12 11:12 | ruslan | Note Added: 0001808 | |
2014-12-12 11:12 | ruslan | Status | feedback => assigned |
2014-12-25 09:49 | ruslan | Note Added: 0001852 | |
2014-12-25 09:49 | ruslan | Status | assigned => feedback |
2015-03-25 14:08 | ruslan | Priority | normal => urgent |
2015-04-14 22:55 | ruslan | Note Added: 0001987 | |
2015-04-14 22:55 | ruslan | Status | feedback => assigned |
2015-04-17 21:05 | ruslan | Status | assigned => resolved |
2015-04-17 21:05 | ruslan | Resolution | open => fixed |
2015-06-06 08:27 | ruslan | Status | resolved => closed |