XML SP (Hareshsir)
XML SP (Hareshsir)
IF([custom_sys].[sys_check_store_procedure_exists]
('scm','sp_erp_delivery_order_mst_insup')=0)
BEGIN
DECLARE @proc_name VARCHAR(500)=''
SELECT
@proc_name=custom_sys.sys_dummy_func_return_store_procedure('scm','sp_erp_delivery_
order_mst_insup')
EXECUTE(@proc_name)
END
GO
--sub item
@delivery_order_sub_items_xml xml,
--output variables
SET @output_status = 0;
SET @output_msg_key = 'error';
SET @output_execution_msg = '';
BEGIN TRAN;
BEGIN TRY
IF (@code_exists = 1)
BEGIN
WHERE delivery_order_id=@delivery_order_id;
SET @output_status = 1;
SET @output_msg_key = 'updated';
END
ELSE IF (@can_insert=1 AND @delivery_order_id=0 )
BEGIN
--going to insert
INSERT INTO [erp_delivery_order_mst]
(
delivery_order_no
,delivery_order_date
,ref_sales_order_id
,ref_customer_id
,ref_customer_person_id
,ref_loading_location_id
,do_refference_no
,ref_currency_id
,do_total_amount
,current_authorised_level
,final_authorised_level
,is_delivery_order_authorised
,delivery_order_authorised_by
,delivery_order_authorised_date
,department_id
,company_id
,year_id
,sub_year_id
,created_by
,created_date
)
VALUES
(
@delivery_order_no
,@delivery_order_date
,@ref_sales_order_id
,@ref_customer_id
,@ref_customer_person_id
,@ref_loading_location_id
,@do_refference_no
,@ref_currency_id
,@do_total_amount
,@current_authorised_level
,@final_authorised_level
,@is_delivery_order_authorised
,@delivery_order_authorised_by
,@delivery_order_authorised_date
,@department_id
,@company_id
,@year_id
,@sub_year_id
,@ref_user_id
,@datetime
);
SET @delivery_order_id = @@IDENTITY;
SELECT @delivery_order_id AS output_pk_id;
SET @output_status = 1;
SET @output_msg_key = 'success';
END;
ELSE
BEGIN
SET @output_status = 0;
SET @output_msg_key = 'error';
END;
--sub item
IF(@output_status = 1)
BEGIN
IF OBJECT_ID('tempdb..#tmp_delivery_order_sub_items') IS
NOT NULL DROP TABLE #tmp_delivery_order_sub_items;
FROM
@delivery_order_sub_items_xml.nodes('//Main/Sub') AS dtltbl (dtlclmn)
)t1
sub.ref_sales_order_item_id=reftbl.ref_sales_order_item_id,
sub.ref_item_id=reftbl.ref_item_id,
sub.po_item_uom_id=reftbl.po_item_uom_id,
sub.do_item_remarks=reftbl.do_item_remarks,
sub.do_item_qty=reftbl.do_item_qty,
sub.do_item_unit_cost_actual=reftbl.do_item_unit_cost_actual,
sub.do_item_unit_cost=reftbl.do_item_unit_cost,
sub.do_item_total_cost_before_disc=reftbl.do_item_total_cost_before_disc,
sub.do_item_header_disc_perc=reftbl.do_item_header_disc_perc,
sub.do_item_header_disc_cost=reftbl.do_item_header_disc_cost,
sub.do_item_total_cost_after_disc=reftbl.do_item_total_cost_after_disc,
sub.do_item_sales_tax_id=reftbl.do_item_sales_tax_id,
sub.do_item_tax_perc=reftbl.do_item_tax_perc,
sub.do_item_tax_cost=reftbl.do_item_tax_cost,
sub.do_item_total_cost_after_tax=reftbl.do_item_total_cost_after_tax,
sub.ref_account_id=reftbl.ref_account_id,
sub.is_billing_completed=reftbl.is_billing_completed,
sub.modify_by=reftbl.modify_by,
sub.modify_date=reftbl.modify_date
SET @output_status = 1;
SET @output_msg_key = 'updated';
END
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
-- Catching any error and providing output
SET @output_status = 0;
SET @output_msg_key = 'exception';
SET @output_execution_msg = ERROR_MESSAGE();
END CATCH;