Commit 538277e2 authored by homunculus's avatar homunculus

[feat]完成发票认领申请、确认的开发

parent aae534c5
......@@ -9,10 +9,10 @@ set define off
begin
sys_code_pkg.delete_sys_code('claim_status');
sys_code_pkg.insert_sys_code('claim_status','认领状态','认领状态','认领状态','ZHS','');
sys_code_pkg.insert_sys_code_value('claim_status','未认领','未认领','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','认领中','认领中','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','已确认','已确认','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','认领退回','认领退回','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','UNCLAIMED','未认领','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','CLAIMING','认领中','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','CONFIRMED','已确认','ZHS');
sys_code_pkg.insert_sys_code_value('claim_status','RETURN','认领退回','ZHS');
end;
/
commit;
......
create or replace package body ACR_INVOICE_CLAIM_PKG is
g_status_unclaimed Constant Varchar2(30) := 'UNCLAIMED';
g_status_claiming Constant Varchar2(30) := 'CLAIMING';
g_status_confirmed Constant Varchar2(30) := 'CONFIRMED';
g_status_return Constant Varchar2(30) := 'RETURN';
Function lock_acr_invoice(p_invoice_hd_id Number)
Return acr_invoice_hd%Rowtype Is
r_acr_invoice_hd_rec acr_invoice_hd%Rowtype;
Begin
Select *
Into r_acr_invoice_hd_rec
From acr_invoice_hd
Where invoice_hd_id = p_invoice_hd_id
For Update Nowait;
Return r_acr_invoice_hd_rec;
End;
Procedure apply_invoice(p_invoice_hd_id Number, p_user_id Number) Is
r_acr_invoice_hd_rec acr_invoice_hd%Rowtype;
e_invoice_claim_status_err Exception;
begin
--锁表
r_acr_invoice_hd_rec := lock_acr_invoice(p_invoice_hd_id => p_invoice_hd_id);
--状态检查
If r_acr_invoice_hd_rec.claim_status <> g_status_return and r_acr_invoice_hd_rec.claim_status <>g_status_unclaimed Then
Raise e_invoice_claim_status_err;
End If;
--更新状态
Update acr_invoice_hd hd
Set claim_status = g_status_claiming,
hd.last_update_date = sysdate,
hd.last_updated_by = p_user_id
Where invoice_hd_id = p_invoice_hd_id;
Exception
When e_invoice_claim_status_err Then
sys_raise_app_error_pkg.raise_user_define_error(p_message_code => 'ACR516_INVOICE_CLAIM_STATUS_ERROR',
p_created_by => p_user_id,
p_package_name => 'ACR_INVOICE_CLAIM_PKG',
p_procedure_function_name => 'apply_invoice');
raise_application_error(sys_raise_app_error_pkg.c_error_number,
sys_raise_app_error_pkg.g_err_line_id);
end;
Procedure apply_invoice_confirm(p_invoice_hd_id Number, p_user_id Number) Is
r_acr_invoice_hd_rec acr_invoice_hd%Rowtype;
e_invoice_claim_status_err Exception;
begin
--锁表
r_acr_invoice_hd_rec := lock_acr_invoice(p_invoice_hd_id => p_invoice_hd_id);
--状态检查
If r_acr_invoice_hd_rec.claim_status <> g_status_claiming Then
Raise e_invoice_claim_status_err;
End If;
--更新状态
Update acr_invoice_hd hd
Set claim_status = g_status_confirmed,
hd.last_update_date = sysdate,
hd.last_updated_by = p_user_id
Where invoice_hd_id = p_invoice_hd_id;
Exception
When e_invoice_claim_status_err Then
sys_raise_app_error_pkg.raise_user_define_error(p_message_code => 'ACR516_INVOICE_CLAIM_STATUS_ERROR',
p_created_by => p_user_id,
p_package_name => 'ACR_INVOICE_CLAIM_PKG',
p_procedure_function_name => 'apply_invoice_confirm');
raise_application_error(sys_raise_app_error_pkg.c_error_number,
sys_raise_app_error_pkg.g_err_line_id);
end;
Procedure apply_invoice_return(p_invoice_hd_id Number, p_user_id Number) Is
r_acr_invoice_hd_rec acr_invoice_hd%Rowtype;
e_invoice_claim_status_err Exception;
begin
--锁表
r_acr_invoice_hd_rec := lock_acr_invoice(p_invoice_hd_id => p_invoice_hd_id);
--状态检查
If r_acr_invoice_hd_rec.claim_status <> g_status_claiming Then
Raise e_invoice_claim_status_err;
End If;
--更新状态
Update acr_invoice_hd hd
Set claim_status = g_status_return,
hd.last_update_date = sysdate,
hd.last_updated_by = p_user_id
Where invoice_hd_id = p_invoice_hd_id;
Exception
When e_invoice_claim_status_err Then
sys_raise_app_error_pkg.raise_user_define_error(p_message_code => 'ACR516_INVOICE_CLAIM_STATUS_ERROR',
p_created_by => p_user_id,
p_package_name => 'ACR_INVOICE_CLAIM_PKG',
p_procedure_function_name => 'apply_invoice_return');
raise_application_error(sys_raise_app_error_pkg.c_error_number,
sys_raise_app_error_pkg.g_err_line_id);
end;
end ACR_INVOICE_CLAIM_PKG;
......@@ -17,6 +17,7 @@ sys_function_assign_pkg.func_service_load('ACR517','modules/acr/ACR517/acr_invoi
--分配bm
sys_function_assign_pkg.func_bm_load('ACR517','csh.CSH518.hls_cashflow_item_v_lov');
sys_function_assign_pkg.func_bm_load('ACR517','acr.ACR605.acr_invoice_claim_confirm');
sys_function_assign_pkg.func_bm_load('ACR517','acr.ACR605.acr_invoice_claim_return');
--分配菜单
sys_load_sys_function_grp_pkg.sys_function_group_item_load(p_function_group_code=>'ACR_INVOICE',p_function_code=>'ACR517',p_enabled_flag=>'Y',P_USER_ID=>-1);
end;
......
alter table acr_invoice_hd add claim_status varchar2(30);
comment on column acr_invoice_hd.claim_status
is '认领状态';
\ No newline at end of file
is '认领状态';
alter table acr_invoice_hd add (invoice_code varchar2(200));
comment on column acr_invoice_hd.invoice_code is '发票代码';
\ No newline at end of file
......@@ -46,7 +46,9 @@
t1.company_id,
t1.CREATE_JE_FLAG,
t1.spv_company_id,
t1.bp_agent_name
t1.bp_agent_name,
t1.invoice_hd_id
FROM acr_invoice_hd_v t1
#WHERE_CLAUSE#
ORDER BY t1.invoice_date asc , t1.document_number asc
......
......@@ -15,6 +15,7 @@
t1.invoice_kind_desc,
t1.invoice_status,
t1.invoice_status_desc,
t1.invoice_code,
t1.invoice_number,
t1.bp_agent_name,
t1.vat_invoice_code,
......@@ -33,7 +34,9 @@
t1.CREATE_JE_FLAG,
t1.bp_tax_registry_num,
t1.claim_status,
t2.cf_item_desc
t1.claim_status_n,
t2.cf_item_desc,
t1.invoice_hd_id
FROM acr_invoice_hd_v t1, acr_invoice_contract_cf_v t2
#WHERE_CLAUSE#
ORDER BY t1.invoice_date desc , t1.document_number desc
......@@ -54,7 +57,15 @@
<bm:query-field name="invoice_kind_desc" queryExpression="t1.invoice_kind_desc = ${@invoice_kind_desc}"/>
<bm:query-field name="invoice_status_desc" queryExpression="t1.invoice_status_desc = ${@invoice_status_desc}"/>
<bm:query-field name="claim_status" queryExpression="t1.claim_status = ${@claim_status}"/>
<bm:query-field name="claim_status_n" queryExpression="t1.claim_status_n = ${@claim_status_n}"/>
<bm:query-field name="cf_item_desc" queryExpression="t1.cf_item_desc = ${@cf_item_desc}"/>
<bm:query-field name="document_number" queryExpression="t1.document_number = ${@document_number}"/>
<bm:query-field name="contract_number" queryExpression="t1.contract_number = ${@contract_number}"/>
<bm:query-field name="contract_name" queryExpression="t1.contract_name = ${@contract_name}"/>
<bm:query-field name="invoice_title" queryExpression="t1.invoice_title = ${@invoice_title}"/>
<bm:query-field name="invoice_code" queryExpression="t1.invoice_code = ${@invoice_code}"/>
<bm:query-field name="invoice_number" queryExpression="t1.invoice_number = ${@invoice_number}"/>
<bm:query-field name="query_contract_number" queryExpression="exists (select 1 from hls_document_flow_all_v df, con_contract cc where df.contract_id = cc.contract_id and df.ar_invoice_hd_id = t1.invoice_hd_id and cc.contract_number between nvl(${@contract_number_f}, cc.contract_number) and nvl(${@contract_number_t}, cc.contract_number))"/>
<bm:query-field name="query_project_number" queryExpression="exists (select 1 from hls_document_flow_all_v df, prj_project pp where df.ar_invoice_hd_id = t1.invoice_hd_id and df.project_id = pp.project_id and pp.project_number between nvl(${@project_number_f}, pp.project_number) and nvl(${@project_number_t}, pp.project_number))"/>
......
......@@ -33,25 +33,29 @@
t1.CREATE_JE_FLAG,
t1.bp_tax_registry_num,
t1.claim_status,
t2.cf_item_desc
t1.claim_status_n,
t2.cf_item_desc,
t1.invoice_hd_id
FROM acr_invoice_hd_v t1, acr_invoice_contract_cf_v t2
#WHERE_CLAUSE#
ORDER BY t1.invoice_date desc , t1.document_number desc
]]></bm:query-sql>
</bm:operation>
<!-- <bm:operation name="update">-->
<!-- <bm:update-sql><![CDATA[-->
<!-- BEGIN-->
<!-- -->
<!-- END;-->
<!-- ]]></bm:update-sql>-->
<!-- </bm:operation>-->
<bm:operation name="update">
<bm:update-sql><![CDATA[
BEGIN
acr_invoice_claim_pkg.apply_invoice_confirm(p_invoice_hd_id => ${@invoice_hd_id},
p_user_id => ${/session/@user_id});
END;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
<bm:query-fields>
<bm:query-field name="total_amount_f" queryExpression="t1.total_amount &gt;= ${@total_amount_f}"/>
<bm:query-field name="total_amount_t" queryExpression="t1.total_amount &gt;= ${@total_amount_t}"/>
<bm:query-field name="invoice_kind_desc" queryExpression="t1.invoice_kind_desc = ${@invoice_kind_desc}"/>
<bm:query-field name="invoice_status_desc" queryExpression="t1.invoice_status_desc = ${@invoice_status_desc}"/>
<bm:query-field name="claim_status_n" queryExpression="t1.claim_status_n = ${@claim_status_n}"/>
<bm:query-field name="claim_status" queryExpression="t1.claim_status = ${@claim_status}"/>
<bm:query-field name="cf_item_desc" queryExpression="t1.cf_item_desc = ${@cf_item_desc}"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="update">
<bm:update-sql><![CDATA[
BEGIN
acr_invoice_claim_pkg.apply_invoice_return(p_invoice_hd_id => ${@invoice_hd_id},
p_user_id => ${/session/@user_id});
END;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
</bm:model>
......@@ -6,6 +6,7 @@
modelaction="update"/>
<script><![CDATA[
window['${/parameter/@layout_code}_user_button1_layout_dynamic_click'] = function () {
}
//超链接渲染
......
......@@ -164,24 +164,24 @@
<!-- <a:toolbarButton click="acr512_invoice_delete" text="HLS.REMOVE"/>-->
</a:screenTopToolbar>
<a:form marginWidth="30" padding="0" title="销项发票维护" column="5">
<a:textField name="document_number_f" bindTarget="acr512_invoice_query_ds" prompt="HLS.DOCUMENT_NUMBER_FROM" width="135"/>
<a:textField name="document_number_t" bindTarget="acr512_invoice_query_ds" prompt="单据号到" width="135"/>
<!-- <a:comboBox name="currency_name" bindTarget="acr512_invoice_query_ds" prompt="HLS.CURRENCY" width="135"/> -->
<a:textField name="invoice_number_f" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_NUMBER_FROM" width="135"/>
<a:textField name="invoice_number_t" bindTarget="acr512_invoice_query_ds" prompt="发票号到" width="135"/>
<a:textField name="document_number_f" bindTarget="acr512_invoice_query_ds" prompt="HLS.DOCUMENT_NUMBER_FROM" width="135"/>
<a:textField name="document_number_t" bindTarget="acr512_invoice_query_ds" prompt="单据号到" width="135"/>
<!-- <a:comboBox name="currency_name" bindTarget="acr512_invoice_query_ds" prompt="HLS.CURRENCY" width="135"/> -->
<a:textField name="invoice_number_f" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_NUMBER_FROM" width="135"/>
<a:textField name="invoice_number_t" bindTarget="acr512_invoice_query_ds" prompt="发票号到" width="135"/>
<a:textField name="invoice_title" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_TITLE" width="135"/>
<a:lov name="contract_number_f" bindTarget="acr512_invoice_query_ds" prompt="HLS.CONTRACT_NUMBER_FROM" width="135"/>
<a:lov name="contract_number_t" bindTarget="acr512_invoice_query_ds" prompt="合同编号到" width="135"/>
<a:lov name="created_by_name" bindTarget="acr512_invoice_query_ds" prompt="ACR.CREATED_BY_NAME" width="135"/>
<a:datePicker name="invoice_date_f" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_DATE_FROM" width="135"/>
<a:datePicker name="invoice_date_t" bindTarget="acr512_invoice_query_ds" prompt="开票日期到" width="135"/>
<a:comboBox name="invoice_kind_desc" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_KIND" width="135"/>
<a:datePicker name="accounting_date_f" bindTarget="acr512_invoice_query_ds" prompt="HLS.ACCOUNT_DATE_FROM" width="135"/>
<a:datePicker name="accounting_date_t" bindTarget="acr512_invoice_query_ds" prompt="记账日期到" width="135"/>
<a:numberField name="total_amount_f" allowFormat="true" bindTarget="acr512_invoice_query_ds" prompt="ACR.TOTAL_AMOUNT_FROM" width="135"/>
<a:numberField name="total_amount_t" allowFormat="true" bindTarget="acr512_invoice_query_ds" prompt="发票金额到" width="135"/>
<a:textField name="bp_agent_name" bindTarget="acr512_invoice_query_ds" prompt="代理商" width="135"/>
<a:lov name="contract_number_t" bindTarget="acr512_invoice_query_ds" prompt="合同编号到" width="135"/>
<a:lov name="created_by_name" bindTarget="acr512_invoice_query_ds" prompt="ACR.CREATED_BY_NAME" width="135"/>
<a:datePicker name="invoice_date_f" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_DATE_FROM" width="135"/>
<a:datePicker name="invoice_date_t" bindTarget="acr512_invoice_query_ds" prompt="开票日期到" width="135"/>
<a:comboBox name="invoice_kind_desc" bindTarget="acr512_invoice_query_ds" prompt="ACR.INVOICE_KIND" width="135"/>
<a:datePicker name="accounting_date_f" bindTarget="acr512_invoice_query_ds" prompt="HLS.ACCOUNT_DATE_FROM" width="135"/>
<a:datePicker name="accounting_date_t" bindTarget="acr512_invoice_query_ds" prompt="记账日期到" width="135"/>
<a:numberField name="total_amount_f" allowFormat="true" bindTarget="acr512_invoice_query_ds" prompt="ACR.TOTAL_AMOUNT_FROM" width="135"/>
<a:numberField name="total_amount_t" allowFormat="true" bindTarget="acr512_invoice_query_ds" prompt="发票金额到" width="135"/>
<a:textField name="bp_agent_name" bindTarget="acr512_invoice_query_ds" prompt="代理商" width="135"/>
</a:form>
<a:grid id="acr512_invoice_update_grid_ds" bindTarget="acr512_invoice_result_ds" marginHeight="225" marginWidth="30" navBar="true">
<a:columns>
......
......@@ -97,7 +97,7 @@
<a:column name="bp_tax_registry_num" prompt="纳税人识别号"/>
<a:column name="ele_invoice_status_desc" prompt="电子发票状态"/>
<a:column name="swno" prompt="电子发票流水号" width="100"/>
<a:column name="claim_status" prompt="认领状态" width="100"/>
<a:column name="claim_status_n" prompt="认领状态" width="100"/>
</a:columns>
</a:grid>
</a:screenBody>
......
......@@ -4,6 +4,8 @@
</a:init-procedure>
<a:view>
<a:link id="bmLink_acr_invoice_return" model="acr.ACR605.acr_invoice_claim_return" modelaction="update"/>
<a:link id="bmLink_acr_invoice_claim_confirm" model="acr.ACR605.acr_invoice_claim_confirm" modelaction="update"/>
<script type="text/javascript"><![CDATA[
function acr517_invoice_query() {
$('acr517_invoice_result_ds').query();
......@@ -14,9 +16,48 @@
}
function acr517_invoice_confirm() {
$('acr517_invoice_result_ds').submitSelected();
var record = $('acr517_invoice_result_ds').getCurrentRecord();
// alert(record.get('invoice_hd_id'));
// debugger;
invoice_hd_id = record.get('invoice_hd_id');
Leaf.request({
url: $("bmLink_acr_invoice_claim_confirm").getUrl(),
para: {
invoice_hd_id:invoice_hd_id,
},
success:function(){
Leaf.SideBar.show({
msg: '操作成功',
duration: 2000
});
},
sync:true,
scope: this
});
}
function acr517_invoice_return() {
var record = $('acr517_invoice_result_ds').getCurrentRecord();
// alert(record.get('invoice_hd_id'));
// debugger;
invoice_hd_id = record.get('invoice_hd_id');
Leaf.request({
url: $("bmLink_acr_invoice_return").getUrl(),
para: {
invoice_hd_id:invoice_hd_id,
},
success:function(){
Leaf.SideBar.show({
msg: '操作成功',
duration: 2000
});
},
sync:true,
scope: this
});
}
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
<a:dataSets>
......@@ -26,17 +67,18 @@
<a:dataSet id="cf_item_options">
<a:datas dataSource="/model/hls_cashflow_item_list"/>
</a:dataSet>
<a:dataSet id="claim_status_ds" loadData="true" lookupCode="CLAIM_STATUS"/>
<!-- <a:dataSet id="claim_status_ds" loadData="true" lookupCode="CLAIM_STATUS"/>-->
<a:dataSet id="acr517_invoice_query_ds" autoCreate="true">
<a:fields>
<a:field name="document_number"/>
<a:field name="invoice_kind_desc" displayField="code_value_name" options="acr517_invoice_kind_ds"
returnField="invoice_kind" valueField="code_value"/>
<a:field name="invoice_status_desc" displayField="code_value_name" options="acr517_invoice_statu_ds" returnField="invoice_status" valueField="code_value"/>
<a:field name="total_amount"/>
<a:field name="cf_item"/>
<a:field name="cf_item_n" options="cf_item_options" displayField="description" returnField="cf_item" valueField="cf_item"/>
<a:field name="claim_status" options="claim_status_ds" displayField="code_value_name" valueField="code_value" returnField="claim_status"/>
<!-- <a:field name="claim_status" options="claim_status_ds" displayField="code_value_name" valueField="code_value" returnField="claim_status"/>-->
<a:field name="cf_item_desc" autoComplete="true" lovGridHeight="350" lovHeight="500" lovLabelWidth="100" lovService="csh.CSH518.hls_cashflow_item_v_lov?cf_direction=INFLOW" lovWidth="520" title="现金流项目">
<a:mapping>
<a:map from="cf_item" to="cf_item"/>
......@@ -56,8 +98,8 @@
<a:screenTitle/>
<a:toolbarButton click="acr517_invoice_query" text="HLS.QUERY"/>
<a:toolbarButton click="acr517_invoice_reset" text="HLS.RESET"/>
<a:toolbarButton click="" text="确认"/>
<a:toolbarButton click="" text="返回"/>
<a:toolbarButton click="acr517_invoice_confirm" text="确认"/>
<a:toolbarButton click="acr517_invoice_return" text="返回"/>
</a:screenTopToolbar>
<a:form marginWidth="30" padding="0" title="查询条件" column="4">
<a:textField name="document_number" bindTarget="acr517_invoice_query_ds" prompt="单据编号" width="135"/>
......@@ -98,7 +140,7 @@
<a:column name="bp_tax_registry_num" prompt="纳税人识别号"/>
<a:column name="ele_invoice_status_desc" prompt="电子发票状态"/>
<a:column name="swno" prompt="电子发票流水号" width="100"/>
<a:column name="claim_status" prompt="认领状态" width="100"/>
<a:column name="claim_status_n" prompt="认领状态" width="100"/>
</a:columns>
</a:grid>
</a:screenBody>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment