details: /erp/devel/pi/rev/b354b5f68284
changeset: 8191:b354b5f68284
user: Eduardo Argal Guibert <eduardo.argal <at> openbravo.com>
date: Fri Jul 30 16:42:20 2010 +0200
summary: Fixes issue 0014101: Tax Payment extension point needed
details: /erp/devel/pi/rev/227f562b341e
changeset: 8192:227f562b341e
user: Eduardo Argal Guibert <eduardo.argal <at> openbravo.com>
date: Fri Jul 30 17:26:22 2010 +0200
summary: Fixes bug 0014099: Some fields have to be hidden
diffstat:
src-db/database/model/functions/C_TAXPAYMENT_POST.xml | 254 ++++++++++-------
src-db/database/model/tables/C_TAXPAYMENT.xml | 7 +
src-db/database/sourcedata/AD_COLUMN.xml | 35 ++
src-db/database/sourcedata/AD_FIELD.xml | 61 ++-
4 files changed, 224 insertions(+), 133 deletions(-)
diffs (truncated from 705 to 300 lines):
diff -r 88d18416a37e -r 227f562b341e
src-db/database/model/functions/C_TAXPAYMENT_POST.xml
--- a/src-db/database/model/functions/C_TAXPAYMENT_POST.xml Fri Aug 20
09:15:53 2010 +0200
+++ b/src-db/database/model/functions/C_TAXPAYMENT_POST.xml Fri Jul 30
17:26:22 2010 +0200
@@ -91,10 +91,17 @@
v_TRTcountY NUMBER;
v_TRTcountN NUMBER;
v_DBA_ErrorLog_ID VARCHAR2(32);
-
-
-
-
+v_dummy VARCHAR2(2000);
+v_count NUMBER:=0;
+v_FIN_PAYMENT_ID VARCHAR2(32);
+v_FIN_PAYMENT_DETAIL_ID VARCHAR2(32);
+v_FIN_FINACC_TRANSACTION_ID VARCHAR2(32);
+v_PaymentDocType_ID VARCHAR2(32);
+v_PaymentDocumentNo FIN_PAYMENT.DOCUMENTNO%TYPE;
+v_Financial_Account_ID VARCHAR2(32);
+v_PaymentMethod_ID VARCHAR2(32);
+v_CreateFinTransaction FIN_FINACC_PAYMENTMETHOD.AUTOMATIC_RECEIPT%TYPE;
+v_ExecutionType FIN_FINACC_PAYMENTMETHOD.PAYIN_EXECUTION_TYPE%TYPE;
BEGIN
-- Update AD_PInstance
@@ -156,8 +163,8 @@
if v_processed='Y' then
begin
- select tp.gl_journal_id , gljb.gl_journalbatch_id, tp.c_settlement_id
- into v_gl_journalid, v_gl_journalbatchid, v_settlementid
+ select tp.gl_journal_id , gljb.gl_journalbatch_id, tp.c_settlement_id,
tp.fin_payment_id
+ into v_gl_journalid, v_gl_journalbatchid, v_settlementid,
v_FIN_PAYMENT_ID
from c_taxpayment tp
inner join gl_journal glj on tp.gl_journal_id=glj.gl_journal_id
inner join gl_journalbatch gljb on
gljb.gl_journalbatch_id=glj.gl_journalbatch_id
@@ -175,21 +182,28 @@
delete from gl_journalbatch where
gl_journalbatch_id=v_gl_journalbatchid;
if v_ispayment = 'Y' then
- C_SETTLEMENT_POST(null, v_settlementid);
- update c_taxpayment set c_settlement_id=null where
c_taxpayment.C_TAXPAYMENT_ID = v_record_id;
- delete from c_debt_payment_balancing where c_debt_payment_id in
- (select c_debt_payment_id from c_debt_payment where
c_settlement_generate_id = v_settlementid);
- delete from c_debt_payment where c_settlement_generate_id =
v_settlementid;
- delete from c_settlement where c_settlement_id=v_settlementid;
- end if;
- end;
- update c_taxpayment set processed='N' where
c_taxpayment.C_TAXPAYMENT_ID = v_record_id;
+ SELECT COUNT(1) INTO v_count
+ FROM ad_preference
+ WHERE property = 'FinancialManagement'
+ AND ad_module_id <> '0';
+ IF (v_count > 0) THEN
+ v_dummy := AD_GET_PREFERENCE_VALUE('FinancialManagement', 'Y',
v_client_id, v_org_id, NULL, NULL, NULL);
+ ELSIF (v_count = 0) THEN
+ C_SETTLEMENT_POST(null, v_settlementid);
+ update c_taxpayment set c_settlement_id=null where
c_taxpayment.C_TAXPAYMENT_ID = v_record_id;
+ delete from c_debt_payment_balancing where c_debt_payment_id in
+ (select c_debt_payment_id from c_debt_payment where
c_settlement_generate_id = v_settlementid);
+ delete from c_debt_payment where c_settlement_generate_id =
v_settlementid;
+ delete from c_settlement where c_settlement_id=v_settlementid;
+ end if;
end if;
+ end;
+ end if;
if v_processed='N' then
begin
- --gl journal
+ --gl journal
ad_sequence_next('GL_JournalBatch', v_record_id, v_gl_journalbatchid);
ad_sequence_doc('DocumentNo_GL_JournalBatch', v_client_id, 'Y',
v_gljbdocumentno);
@@ -305,111 +319,141 @@
if v_ispayment='Y' then
+ select sum(case when c_taxregister.C_TAXREGISTER_TYPE_ID in
+ (select C_TAXREGISTER_TYPE_ID from c_taxregister_type where
c_taxregister_type.ISSOTRX='Y')
+ then taxtotalamt
+ else -taxtotalamt end ),
+ sum(case when c_taxregister.C_TAXREGISTER_TYPE_ID in
+ (select C_TAXREGISTER_TYPE_ID from c_taxregister_type where
c_taxregister_type.ISSOTRX='Y')
+ then -lastregaccumamt
+ else lastregaccumamt end )
+ into v_taxtotalamt, v_prevvatcredit
+ from c_taxregister where
c_taxregister.C_TAXPAYMENT_ID=v_record_id;
- v_settlementdoctype_id := ad_get_doctype(v_client_id, v_org_id,
to_char('STM'));
- ad_sequence_next('C_Settlement', v_record_id, v_settlementid);
- ad_sequence_doctype(v_settlementdoctype_id, v_record_id, 'Y',
v_sdocumentno);
+ if v_prevvatcredit < 0 then v_prevvatcredit := 0;
+ end if;
+ v_paymentamt := v_taxtotalamt - v_prevvatcredit;
- IF(v_sdocumentno IS NULL) THEN --to do send by mail
- ad_sequence_doc('DocumentNo_C_Settlement', v_client_id, 'Y',
v_sdocumentno);
- END IF;
- INSERT
- INTO c_settlement(c_settlement_id, ad_client_id,
ad_org_id, isactive, created, createdby, updated, updatedby,
documentno, datetrx, dateacct, settlementtype, c_doctype_id,
processing, processed, posted, createfrom, isgenerated, c_currency_id)
- SELECT v_settlementid,
- ad_client_id,
- ad_org_id,
- 'Y',
- now(),
- createdby,
- now(),
- updatedby,
- v_sdocumentno,
- v_date,
- TRUNC(now()),
- 'I',
- v_settlementdoctype_id,
- 'N',
- 'N',
- 'N',
- 'N',
- 'N',
- v_currency_id
- FROM c_taxpayment
- WHERE c_taxpayment_id = v_record_id;
+ if v_paymentamt <=0 then
+ v_isreceipt:='Y';
+ v_paymentamt:=(-1)*v_paymentamt;
+ v_paymentcreditamt := v_paymentamt;
+ v_paymentdebitamt := 0;
+ else
+ v_isreceipt:='N';
+ v_paymentcreditamt := 0;
+ v_paymentdebitamt := v_paymentamt;
+ end if;
+ SELECT COUNT(1) INTO v_count
+ FROM ad_preference
+ WHERE property = 'FinancialManagement'
+ AND ad_module_id <> '0';
+ IF (v_count > 0) THEN
+ v_dummy := AD_GET_PREFERENCE_VALUE('FinancialManagement', 'Y',
v_client_id, v_org_id, NULL, NULL, NULL);
+ ELSIF (v_count = 0) THEN
+ v_ResultStr:='Generating C_Debt_Payment';
+ v_settlementdoctype_id := ad_get_doctype(v_client_id,
v_org_id, to_char('STM'));
+ ad_sequence_next('C_Settlement', v_record_id, v_settlementid);
+ ad_sequence_doctype(v_settlementdoctype_id, v_record_id, 'Y',
v_sdocumentno);
- select sum(case when c_taxregister.C_TAXREGISTER_TYPE_ID in
- (select C_TAXREGISTER_TYPE_ID from c_taxregister_type where
c_taxregister_type.ISSOTRX='Y')
- then taxtotalamt
- else -taxtotalamt end ),
- sum(case when c_taxregister.C_TAXREGISTER_TYPE_ID in
- (select C_TAXREGISTER_TYPE_ID from c_taxregister_type where
c_taxregister_type.ISSOTRX='Y')
- then -lastregaccumamt
- else lastregaccumamt end )
- into v_taxtotalamt, v_prevvatcredit
- from c_taxregister where c_taxregister.C_TAXPAYMENT_ID=v_record_id;
+ IF(v_sdocumentno IS NULL) THEN --to do send by mail
+ ad_sequence_doc('DocumentNo_C_Settlement', v_client_id, 'Y',
v_sdocumentno);
+ END IF;
- if v_prevvatcredit < 0 then v_prevvatcredit := 0;
- end if;
- v_paymentamt := v_taxtotalamt - v_prevvatcredit;
+ INSERT
+ INTO c_settlement(c_settlement_id, ad_client_id,
ad_org_id, isactive, created, createdby, updated, updatedby,
documentno, datetrx, dateacct, settlementtype, c_doctype_id,
processing, processed, posted, createfrom, isgenerated, c_currency_id)
+ SELECT v_settlementid,
+ ad_client_id,
+ ad_org_id,
+ 'Y',
+ now(),
+ createdby,
+ now(),
+ updatedby,
+ v_sdocumentno,
+ v_date,
+ TRUNC(now()),
+ 'I',
+ v_settlementdoctype_id,
+ 'N',
+ 'N',
+ 'N',
+ 'N',
+ 'N',
+ v_currency_id
+ FROM c_taxpayment
+ WHERE c_taxpayment_id = v_record_id;
+ ad_sequence_next('C_Debt_Payment', v_record_id, v_debtpaymentid);
- if v_paymentamt <=0
- then
- begin
- v_isreceipt:='Y';
- v_paymentamt:=(-1)*v_paymentamt;
- v_paymentcreditamt := v_paymentamt;
- v_paymentdebitamt := 0;
- end;
- else
- begin
- v_isreceipt:='N';
- v_paymentcreditamt := 0;
- v_paymentdebitamt := v_paymentamt;
- end;
+ INSERT
+ INTO c_debt_payment(c_debt_payment_id, ad_client_id,
ad_org_id, isactive, created, createdby,
+ updated, updatedby, isreceipt, c_settlement_cancel_id,
c_settlement_generate_id, description,
+ c_invoice_id, c_bpartner_id, c_currency_id,
c_cashline_id, c_bankaccount_id, c_cashbook_id,
+ paymentrule, ispaid, amount, writeoffamt, dateplanned,
ismanual, isvalid, c_bankstatementline_id,
+ changesettlementcancel, cancel_processed,
generate_processed, c_project_id, status, status_initial)
+ VALUES(v_debtpaymentid, v_client_id, v_org_id, 'Y',
now(), v_createdby,
+ now(), v_updatedby, v_isreceipt, NULL, v_settlementid,
v_name,
+ NULL, v_bpartner_id, v_currency_id, NULL, NULL,
NULL,
+ v_paymentrule, 'N', v_paymentamt , 0, v_date, 'Y',
'Y', NULL,
+ 'N', 'N', 'Y', null, 'DE', 'DE');
+
+
+ ad_sequence_next('C_Debt_Payment_Balancing', v_record_id,
v_debtpaymentbalancingid);
+
+ insert
+ into c_debt_payment_balancing(c_debt_payment_balancing_id,
ad_client_id, ad_org_id, isactive, created, createdby,
+ updated, updatedby, c_debt_payment_id, AMOUNTDEBIT,
AMOUNTCREDIT, C_GLITEM_ID)
+ values(v_debtpaymentbalancingid, v_client_id, v_org_id,
'Y', now(), v_createdby,
+ now(), v_updatedby, v_debtpaymentid, v_paymentdebitamt,
v_paymentcreditamt, v_glitem_id);
+ C_SETTLEMENT_POST(null, v_settlementid);
+
+ UPDATE c_taxpayment
+ SET c_settlement_id = v_settlementid
+ where c_taxpayment.C_TAXPAYMENT_ID = v_record_id;
+ END IF;
end if;
-
-
- ad_sequence_next('C_Debt_Payment', v_record_id, v_debtpaymentid);
-
- INSERT
- INTO c_debt_payment(c_debt_payment_id, ad_client_id, ad_org_id,
isactive, created, createdby, updated, updatedby, isreceipt,
c_settlement_cancel_id, c_settlement_generate_id, description,
c_invoice_id, c_bpartner_id, c_currency_id, c_cashline_id,
c_bankaccount_id, c_cashbook_id, paymentrule, ispaid, amount,
writeoffamt, dateplanned, ismanual, isvalid, c_bankstatementline_id,
changesettlementcancel, cancel_processed, generate_processed,
c_project_id, status, status_initial)
- VALUES(v_debtpaymentid, v_client_id, v_org_id, 'Y', now(),
v_createdby, now(), v_updatedby, v_isreceipt, NULL, v_settlementid,
v_name, NULL, v_bpartner_id, v_currency_id, NULL, NULL, NULL,
v_paymentrule, 'N', v_paymentamt , 0, v_date, 'Y', 'Y', NULL,
'N', 'N', 'Y', null, 'DE', 'DE');
-
-
- ad_sequence_next('C_Debt_Payment_Balancing', v_record_id,
v_debtpaymentbalancingid);
-
- insert
- into c_debt_payment_balancing(c_debt_payment_balancing_id,
ad_client_id, ad_org_id, isactive, created, createdby, updated,
updatedby, c_debt_payment_id, AMOUNTDEBIT, AMOUNTCREDIT, C_GLITEM_ID)
- values(v_debtpaymentbalancingid, v_client_id, v_org_id, 'Y',
now(), v_createdby, now(), v_updatedby, v_debtpaymentid,
v_paymentdebitamt, v_paymentcreditamt, v_glitem_id);
-
-
-
-
- C_SETTLEMENT_POST(null, v_settlementid);
-
- UPDATE c_taxpayment
- SET c_settlement_id = v_settlementid
- where c_taxpayment.C_TAXPAYMENT_ID = v_record_id;
-
-
-
- end if;
-
- UPDATE c_taxpayment
- SET processed = 'Y'
- where c_taxpayment.C_TAXPAYMENT_ID = v_record_id;
END;
end if;
+ --C_TaxPayment_Post - Extension Point
+ SELECT count(*) INTO v_count FROM DUAL
+ WHERE EXISTS (SELECT 1 FROM ad_ep_procedures WHERE ad_extension_points_id =
'2166B73BAD34456CBABCDFE243A5FBCA');
+ IF (v_count=1) THEN
+ DECLARE
+ v_ep_instance VARCHAR2(32);
+ v_extension_point_id VARCHAR2(32) := '2166B73BAD34456CBABCDFE243A5FBCA';
+ BEGIN
+ v_ep_instance := get_uuid();
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id,
'Record_ID', v_record_id, NULL, NULL, NULL, NULL, NULL, NULL);
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id, 'User',
v_UpdatedBy, NULL, NULL, NULL, NULL, NULL, NULL);
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id,
'GLItem', v_glitem_id, NULL, NULL, NULL, NULL, NULL, NULL);
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id,
'Amount', NULL, NULL, v_paymentamt, NULL, NULL, NULL, NULL);
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id,
'IsReceipt', v_isreceipt, NULL, NULL, NULL, NULL, NULL, v_Message);
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id,
'Message', NULL, NULL, NULL, NULL, NULL, NULL, v_Message);
+ AD_EP_INSTANCE_PARA_INSERT(v_ep_instance, v_extension_point_id,
'Result', NULL, NULL, v_result, NULL, NULL, NULL, NULL);
+ AD_EXTENSION_POINT_HANDLER(v_ep_instance, v_extension_point_id);
+ SELECT p_number INTO v_Result
+ FROM ad_ep_instance_para
+ WHERE ad_ep_instance_id = v_ep_instance
+ AND parametername LIKE 'Result';
+ SELECT p_text INTO v_Message
+ FROM ad_ep_instance_para
+ WHERE ad_ep_instance_id = v_ep_instance
+ AND parametername LIKE 'Message';
+ DELETE FROM ad_ep_instance_para
+ WHERE ad_ep_instance_id = v_ep_instance;
+ END;
+ END IF;
+
+
-- stop processing
update c_taxpayment
------------------------------------------------------------------------------
This SF.net email is sponsored by
Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits