CREATE OR REPLACE FUNCTION copyItemSite(pitemsiteid INTEGER,
pdestwhsid INTEGER) RETURNS INTEGER AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
-- See www.xtuple.com/CPAL for the full text of the software license.
BEGIN
CREATE OR REPLACE FUNCTION copyItemSite(pitemsiteid INTEGER,
pdestwhsid INTEGER,
pdestitemid INTEGER) RETURNS INTEGER AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
-- See www.xtuple.com/CPAL for the full text of the software license.
DECLARE
- pitemsiteid ALIAS FOR $1;
- pdestwhsid ALIAS FOR $2;
- _destwhs whsinfo%ROWTYPE;
- _new itemsite%ROWTYPE;
+ pitemsiteid ALIAS FOR $1;
+ pdestwhsid ALIAS FOR $2;
+ _destwhs whsinfo%ROWTYPE;
+ _new itemsite%ROWTYPE;
+ _supplywarehousid INTEGER := NULL;
BEGIN
-- make a copy of the old itemsite
FROM itemsite
WHERE ((itemsite_item_id=COALESCE(pdestitemid, _new.itemsite_item_id))
AND (itemsite_warehous_id=pdestwhsid OR
- (itemsite_warehous_id IS NULL AND pdestwhsid IS NULL)));
+ (itemsite_warehous_id IS NULL AND pdestwhsid IS NULL)));
IF (FOUND) THEN
RETURN _new.itemsite_id;
END IF;
+ -- find supply itemsite
+ IF (_new.itemsite_supply_itemsite_id IS NOT NULL) THEN
+ SELECT itemsite_warehous_id INTO _supplywarehousid
+ FROM itemsite
+ WHERE (itemsite_id=_new.itemsite_supply_itemsite_id);
+ IF (FOUND) THEN
+ SELECT itemsite_id INTO _new.itemsite_supply_itemsite_id
+ FROM itemsite
+ WHERE (itemsite_warehous_id=_supplywarehousid)
+ AND (itemsite_item_id=pdestitemid);
+ END IF;
+ END IF;
+
-- now override the things we know have to change
- _new.itemsite_id := NEXTVAL('itemsite_itemsite_id_seq');
- _new.itemsite_warehous_id := pdestwhsid;
- _new.itemsite_qtyonhand := 0;
- _new.itemsite_value := 0;
- _new.itemsite_datelastcount := NULL;
- _new.itemsite_datelastused := NULL;
- _new.itemsite_nnqoh := 0;
- _new.itemsite_location_id := -1;
+ _new.itemsite_id := NEXTVAL('itemsite_itemsite_id_seq');
+ _new.itemsite_warehous_id := pdestwhsid;
+ _new.itemsite_qtyonhand := 0;
+ _new.itemsite_value := 0;
+ _new.itemsite_datelastcount := NULL;
+ _new.itemsite_datelastused := NULL;
+ _new.itemsite_nnqoh := 0;
+ _new.itemsite_location_id := -1;
+ _new.itemsite_recvlocation_id := -1;
+ _new.itemsite_issuelocation_id := -1;
+ _new.itemsite_location_dist := FALSE;
+ _new.itemsite_recvlocation_dist := FALSE;
+ _new.itemsite_issuelocation_dist := FALSE;
IF (_destwhs.warehous_transit) THEN
- _new.itemsite_reorderlevel := 0;
- _new.itemsite_ordertoqty := 0;
- _new.itemsite_soldranking := NULL;
- _new.itemsite_posupply := FALSE;
- _new.itemsite_wosupply := FALSE;
- _new.itemsite_loccntrl := FALSE;
- _new.itemsite_safetystock := 0;
- _new.itemsite_minordqty := 0;
- _new.itemsite_multordqty := 0;
- _new.itemsite_leadtime := 0;
- _new.itemsite_controlmethod := 'R';
+ _new.itemsite_reorderlevel := 0;
+ _new.itemsite_ordertoqty := 0;
+ _new.itemsite_soldranking := NULL;
+ _new.itemsite_posupply := FALSE;
+ _new.itemsite_wosupply := FALSE;
+ _new.itemsite_loccntrl := FALSE;
+ _new.itemsite_safetystock := 0;
+ _new.itemsite_minordqty := 0;
+ _new.itemsite_multordqty := 0;
+ _new.itemsite_leadtime := 0;
+ _new.itemsite_controlmethod := 'R';
IF(_new.itemsite_costmethod='N') THEN
- _new.itemsite_costmethod := 'S';
+ _new.itemsite_costmethod := 'S';
END IF;
- _new.itemsite_active := TRUE;
- -- ? _new.itemsite_plancode_id := -1;
- -- ? _new.itemsite_costcat_id := -1;
- _new.itemsite_eventfence := 1;
- _new.itemsite_sold := FALSE;
- _new.itemsite_stocked := FALSE;
- _new.itemsite_location_id := -1;
- _new.itemsite_useparams := FALSE;
- _new.itemsite_useparamsmanual := FALSE;
- _new.itemsite_createpr := FALSE;
- _new.itemsite_location := NULL;
- _new.itemsite_location_comments := NULL;
- _new.itemsite_notes := 'Transit Warehouse';
- _new.itemsite_nnqoh := 0;
- _new.itemsite_createwo := FALSE;
- _new.itemsite_costcat_id := _destwhs.warehous_costcat_id;
+ _new.itemsite_active := TRUE;
+ -- ? _new.itemsite_plancode_id := -1;
+ -- ? _new.itemsite_costcat_id := -1;
+ _new.itemsite_eventfence := 1;
+ _new.itemsite_sold := FALSE;
+ _new.itemsite_stocked := FALSE;
+ _new.itemsite_location_id := -1;
+ _new.itemsite_useparams := FALSE;
+ _new.itemsite_useparamsmanual := FALSE;
+ _new.itemsite_createpr := FALSE;
+ _new.itemsite_location := NULL;
+ _new.itemsite_location_comments := NULL;
+ _new.itemsite_notes := 'Transit Warehouse';
+ _new.itemsite_nnqoh := 0;
+ _new.itemsite_createwo := FALSE;
+ _new.itemsite_costcat_id := _destwhs.warehous_costcat_id;
+ _new.itemsite_supply_itemsite_id := NULL;
END IF;
INSERT INTO itemsite (
- itemsite_id, itemsite_item_id,
- itemsite_warehous_id, itemsite_qtyonhand,
- itemsite_costmethod, itemsite_value,
- itemsite_reorderlevel, itemsite_ordertoqty,
- itemsite_cyclecountfreq, itemsite_datelastcount,
+ itemsite_id, itemsite_item_id,
+ itemsite_warehous_id, itemsite_qtyonhand,
+ itemsite_costmethod, itemsite_value,
+ itemsite_reorderlevel, itemsite_ordertoqty,
+ itemsite_cyclecountfreq, itemsite_datelastcount,
itemsite_datelastused,
- itemsite_posupply, itemsite_wosupply,
+ itemsite_posupply, itemsite_wosupply,
itemsite_loccntrl,
- itemsite_safetystock, itemsite_minordqty,
- itemsite_multordqty, itemsite_leadtime,
- itemsite_abcclass, itemsite_issuemethod,
- itemsite_controlmethod, itemsite_active,
- itemsite_plancode_id, itemsite_costcat_id,
- itemsite_eventfence, itemsite_sold,
- itemsite_stocked, itemsite_freeze,
+ itemsite_safetystock, itemsite_minordqty,
+ itemsite_multordqty, itemsite_leadtime,
+ itemsite_abcclass, itemsite_issuemethod,
+ itemsite_controlmethod, itemsite_active,
+ itemsite_plancode_id, itemsite_costcat_id,
+ itemsite_eventfence, itemsite_sold,
+ itemsite_stocked, itemsite_freeze,
itemsite_location_id,
- itemsite_useparams, itemsite_useparamsmanual,
- itemsite_soldranking, itemsite_createpr,
- itemsite_location, itemsite_location_comments,
- itemsite_notes, itemsite_perishable,
- itemsite_nnqoh, itemsite_autoabcclass,
- itemsite_ordergroup, itemsite_disallowblankwip,
- itemsite_maxordqty, itemsite_mps_timefence,
- itemsite_createwo, itemsite_warrpurc,
+ itemsite_useparams, itemsite_useparamsmanual,
+ itemsite_soldranking, itemsite_createpr,
+ itemsite_location, itemsite_location_comments,
+ itemsite_notes, itemsite_perishable,
+ itemsite_nnqoh, itemsite_autoabcclass,
+ itemsite_ordergroup, itemsite_disallowblankwip,
+ itemsite_maxordqty, itemsite_mps_timefence,
+ itemsite_createwo, itemsite_warrpurc,
itemsite_autoreg,
- itemsite_planning_type, itemsite_supply_itemsite_id
+ itemsite_planning_type, itemsite_supply_itemsite_id,
+ itemsite_createsopr, itemsite_createsopo,
+ itemsite_dropship,
+ itemsite_recvlocation_id, itemsite_issuelocation_id,
+ itemsite_location_dist, itemsite_recvlocation_dist,
+ itemsite_issuelocation_dist
) VALUES (
- _new.itemsite_id, COALESCE(pdestitemid, _new.itemsite_item_id),
- _new.itemsite_warehous_id, _new.itemsite_qtyonhand,
- _new.itemsite_costmethod, _new.itemsite_value,
- _new.itemsite_reorderlevel, _new.itemsite_ordertoqty,
- _new.itemsite_cyclecountfreq, _new.itemsite_datelastcount,
+ _new.itemsite_id, COALESCE(pdestitemid, _new.itemsite_item_id),
+ _new.itemsite_warehous_id, _new.itemsite_qtyonhand,
+ _new.itemsite_costmethod, _new.itemsite_value,
+ _new.itemsite_reorderlevel, _new.itemsite_ordertoqty,
+ _new.itemsite_cyclecountfreq, _new.itemsite_datelastcount,
_new.itemsite_datelastused,
- _new.itemsite_posupply, _new.itemsite_wosupply,
+ _new.itemsite_posupply, _new.itemsite_wosupply,
_new.itemsite_loccntrl,
- _new.itemsite_safetystock, _new.itemsite_minordqty,
- _new.itemsite_multordqty, _new.itemsite_leadtime,
- _new.itemsite_abcclass, _new.itemsite_issuemethod,
- _new.itemsite_controlmethod, _new.itemsite_active,
- _new.itemsite_plancode_id, _new.itemsite_costcat_id,
- _new.itemsite_eventfence, _new.itemsite_sold,
- _new.itemsite_stocked, _new.itemsite_freeze,
+ _new.itemsite_safetystock, _new.itemsite_minordqty,
+ _new.itemsite_multordqty, _new.itemsite_leadtime,
+ _new.itemsite_abcclass, _new.itemsite_issuemethod,
+ _new.itemsite_controlmethod, _new.itemsite_active,
+ _new.itemsite_plancode_id, _new.itemsite_costcat_id,
+ _new.itemsite_eventfence, _new.itemsite_sold,
+ _new.itemsite_stocked, _new.itemsite_freeze,
_new.itemsite_location_id,
- _new.itemsite_useparams, _new.itemsite_useparamsmanual,
- _new.itemsite_soldranking, _new.itemsite_createpr,
- _new.itemsite_location, _new.itemsite_location_comments,
- _new.itemsite_notes, _new.itemsite_perishable,
- _new.itemsite_nnqoh, _new.itemsite_autoabcclass,
- _new.itemsite_ordergroup, _new.itemsite_disallowblankwip,
- _new.itemsite_maxordqty, _new.itemsite_mps_timefence,
- _new.itemsite_createwo, _new.itemsite_warrpurc,
+ _new.itemsite_useparams, _new.itemsite_useparamsmanual,
+ _new.itemsite_soldranking, _new.itemsite_createpr,
+ _new.itemsite_location, _new.itemsite_location_comments,
+ _new.itemsite_notes, _new.itemsite_perishable,
+ _new.itemsite_nnqoh, _new.itemsite_autoabcclass,
+ _new.itemsite_ordergroup, _new.itemsite_disallowblankwip,
+ _new.itemsite_maxordqty, _new.itemsite_mps_timefence,
+ _new.itemsite_createwo, _new.itemsite_warrpurc,
_new.itemsite_autoreg,
- _new.itemsite_planning_type, _new.itemsite_supply_itemsite_id
+ _new.itemsite_planning_type, _new.itemsite_supply_itemsite_id,
+ _new.itemsite_createsopr, _new.itemsite_createsopo,
+ _new.itemsite_dropship,
+ _new.itemsite_recvlocation_id, _new.itemsite_issuelocation_id,
+ _new.itemsite_location_dist, _new.itemsite_recvlocation_dist,
+ _new.itemsite_issuelocation_dist
);
RETURN _new.itemsite_id;
END;
-$$ LANGUAGE 'plpgsql';
+$$ LANGUAGE 'plpgsql';
\ No newline at end of file
-- Group: apOpenItems
-- Name: detail
--- Notes:
+-- Notes:
-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
-- See www.xtuple.com/CPAL for the full text of the software license.
WHEN (apopen_doctype='V') THEN <? value("voucher") ?>
ELSE <? value("other") ?>
END AS f_doctype,
+ CASE WHEN (apopen_doctype='C') THEN 'emphasis' END AS f_doctype_qtforegroundrole,
vend_number, vend_name,
apopen_invcnumber AS invoicenumber,
- apopen_docdate, apopen_duedate, apopen_amount, apopen_status,
+ apopen_docdate, apopen_duedate, apopen_amount, apopen_status,
<? if exists("isReport") ?>
- formatDate(apopen_docdate) AS f_docdate,
- formatDate(apopen_duedate) AS f_duedate,
+ formatDate(apopen_docdate) AS f_docdate,
+ formatDate(apopen_duedate) AS f_duedate,
formatMoney(apopen_amount) AS f_amount,
formatMoney(apopen_paid - COALESCE(SUM(apapply_target_paid),0)) AS f_paid,
- formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) *
- CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
+ formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) *
+ CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
END) AS f_balance,
- formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0))
- / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
+ formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0))
+ / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
END)) AS f_base_balance,
<? endif ?>
apopen_paid - COALESCE(SUM(apapply_target_paid),0) AS paid,
- (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) *
- CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
+ (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) *
+ CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
END AS balance,
currConcat(apopen_curr_id) AS currAbbr,
- (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0))
- / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
+ (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0))
+ / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
END) AS base_balance,
'curr' AS apopen_amount_xtnumericrole,
'curr' AS paid_xtnumericrole,
'curr' AS balance_xtnumericrole,
'curr' AS base_balance_xtnumericrole,
- 0 AS base_balance_xttotalrole
- FROM apopen
+ 0 AS base_balance_xttotalrole
+ FROM apopen
JOIN vendinfo ON (vend_id=apopen_vend_id)
JOIN vendtype ON (vendtype_id=vend_vendtype_id)
- LEFT OUTER JOIN apapply ON (((apopen_id=apapply_target_apopen_id)
- OR (apopen_id=apapply_source_apopen_id))
- AND (apapply_postdate > <? value("asofDate") ?>))
- WHERE ( (COALESCE(apopen_closedate,date <? value("asofDate") ?> + integer '1')><? value("asofDate") ?>)
+ LEFT OUTER JOIN apapply ON (((apopen_id=apapply_target_apopen_id)
+ OR (apopen_id=apapply_source_apopen_id))
+ AND (apapply_postdate > <? value("asofDate") ?>))
+ WHERE ( (COALESCE(apopen_closedate,date <? value("asofDate") ?> + integer '1')><? value("asofDate") ?>)
AND (CASE WHEN (<? value("useDocDate") ?>) THEN apopen_docdate ELSE apopen_distdate END<=<? value("asofDate") ?>)
<? if exists("vend_id") ?>
AND (apopen_vend_id=<? value("vend_id") ?>)
<? if exists("vendtype_pattern") ?>
AND (vendtype_code~<? value("vendtype_pattern") ?>)
<? endif ?>
- AND (apopen_duedate BETWEEN <? value("startDate") ?> AND <? value("endDate") ?>) )
- GROUP BY apopen_id, apopen_ponumber, apopen_docnumber,apopen_doctype, apopen_invcnumber, apopen_docdate,
+ AND (apopen_duedate BETWEEN <? value("startDate") ?> AND <? value("endDate") ?>) )
+ GROUP BY apopen_id, apopen_ponumber, apopen_docnumber,apopen_doctype, apopen_invcnumber, apopen_docdate,
apopen_duedate, apopen_docdate, apopen_amount, apopen_paid, apopen_curr_id, apopen_curr_rate,
apopen.apopen_status, vend_number, vend_name
- ORDER BY apopen_docdate;
+ ORDER BY apopen_docdate;
\ No newline at end of file
-- Name: detail_nohierarchy
-- Notes: Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
-- See www.xtuple.com/CPAL for the full text of the software license.
---
+--
-- Non-hierarchical view to support CSV export from Project List screen
SELECT prj_id AS id, 1 AS altId,
prj.*, crmacct_name, cntct_name,
addr_city, addr_state,
prjtype_descr AS project_type,
- CASE WHEN (prj_status='P') THEN 'Planning'
- WHEN (prj_status='O') THEN 'In-Process'
- WHEN (prj_status='C') THEN 'Completed'
- ELSE 'Unknown' END AS project_status
+ CASE WHEN (prj_status='P') THEN <? value("planning") ?>
+ WHEN (prj_status='O') THEN <? value("open") ?>
+ WHEN (prj_status='C') THEN <? value("complete") ?>
+ ELSE <? value("undefined") ?> END AS project_status
<? foreach("char_id_text_list") ?>
, charass_alias<? literal("char_id_text_list") ?>.charass_value AS char<? literal("char_id_text_list") ?>
<? endforeach ?>
<? foreach("char_id_date_list") ?>
, charass_alias<? literal("char_id_date_list") ?>.charass_value::date AS char<? literal("char_id_date_list") ?>
<? endforeach ?>
-FROM prj()
+FROM prj()
LEFT JOIN prjtype ON (prj_prjtype_id=prjtype_id)
LEFT JOIN crmacct ON (prj_crmacct_id=crmacct_id)
LEFT JOIN cntct ON (crmacct_cntct_id_1=cntct_id)
LEFT JOIN addr ON (cntct_addr_id=addr_id)
<? foreach("char_id_text_list") ?>
- LEFT OUTER JOIN charass charass_alias<? literal("char_id_text_list") ?> ON ((charass_alias<? literal("char_id_text_list") ?>.charass_target_type='PROJ')
+ LEFT OUTER JOIN charass charass_alias<? literal("char_id_text_list") ?> ON ((charass_alias<? literal("char_id_text_list") ?>.charass_target_type='PROJ')
AND (charass_alias<? literal("char_id_text_list") ?>.charass_target_id=prj_id)
AND (charass_alias<? literal("char_id_text_list") ?>.charass_char_id=<? value("char_id_text_list") ?>))
LEFT OUTER JOIN char char_alias<? literal("char_id_text_list") ?> ON (charass_alias<? literal("char_id_text_list") ?>.charass_char_id=char_alias<? literal("char_id_text_list") ?>.char_id)
<? endforeach ?>
<? foreach("char_id_list_list") ?>
- LEFT OUTER JOIN charass charass_alias<? literal("char_id_list_list") ?> ON ((charass_alias<? literal("char_id_list_list") ?>.charass_target_type='PROJ')
+ LEFT OUTER JOIN charass charass_alias<? literal("char_id_list_list") ?> ON ((charass_alias<? literal("char_id_list_list") ?>.charass_target_type='PROJ')
AND (charass_alias<? literal("char_id_list_list") ?>.charass_target_id=prj_id)
AND (charass_alias<? literal("char_id_list_list") ?>.charass_char_id=<? value("char_id_list_list") ?>))
LEFT OUTER JOIN char char_alias<? literal("char_id_list_list") ?> ON (charass_alias<? literal("char_id_list_list") ?>.charass_char_id=char_alias<? literal("char_id_list_list") ?>.char_id)
<? endforeach ?>
<? foreach("char_id_date_list") ?>
- LEFT OUTER JOIN charass charass_alias<? literal("char_id_date_list") ?> ON ((charass_alias<? literal("char_id_date_list") ?>.charass_target_type='PROJ')
+ LEFT OUTER JOIN charass charass_alias<? literal("char_id_date_list") ?> ON ((charass_alias<? literal("char_id_date_list") ?>.charass_target_type='PROJ')
AND (charass_alias<? literal("char_id_date_list") ?>.charass_target_id=prj_id)
AND (charass_alias<? literal("char_id_date_list") ?>.charass_char_id=<? value("char_id_date_list") ?>))
LEFT OUTER JOIN char char_alias<? literal("char_id_date_list") ?> ON (charass_alias<? literal("char_id_date_list") ?>.charass_char_id=char_alias<? literal("char_id_date_list") ?>.char_id)
<? if exists("username") ?>
AND (prj_username=<? value("username") ?> OR prj_owner_username=<? value("username") ?>)
<? endif ?>
-<? if exists("assigned_username") ?>
- AND (prj_username=<? value("assigned_username") ?>)
+<? if exists("assigned_username") ?>
+ AND (prj_username=<? value("assigned_username") ?>)
<? elseif exists("assigned_usr_pattern") ?>
- AND (prj_username ~ <? value("assigned_usr_pattern") ?>)
+ AND (prj_username ~ <? value("assigned_usr_pattern") ?>)
<? endif ?>
-<? if exists("owner_username") ?>
- AND (prj_owner_username=<? value("owner_username") ?>)
+<? if exists("owner_username") ?>
+ AND (prj_owner_username=<? value("owner_username") ?>)
<? elseif exists("owner_usr_pattern") ?>
- AND (prj_owner_username ~ <? value("owner_usr_pattern") ?>)
+ AND (prj_owner_username ~ <? value("owner_usr_pattern") ?>)
<? endif ?>
<? if exists("crmacct_id") ?>
AND (prj_crmacct_id=<? value("crmacct_id") ?>)
<? if exists("cntct_id") ?>
AND (prj_cntct_id=<? value("cntct_id") ?>)
<? endif ?>
+<? if exists("prjtype_id") ?>
+ AND (prj_prjtype_id=<? value("prjtype_id") ?>)
+<? endif ?>
+<? if exists("prjstatus") ?>
+ AND (prj_status=<? value("prjstatus") ?>)
+<? elseif not exists("showComplete") ?>
+ AND (prj_status <> 'C')
+<? endif ?>
<? if exists("startStartDate") ?>
AND (prj_start_date >= <? value("startStartDate") ?>)
<? endif ?>
<? if exists("completedEndDate") ?>
AND (prj_completed_date <= <? value("completedEndDate") ?>)
<? endif ?>
-<? if not exists("showComplete") ?>
- AND (prj_status <> 'C')
-<? endif ?>
<? if exists("id") ?>
AND (prj_id=<? value("id") ?>)
<? endif ?>
<? literal("charClause") ?>
-ORDER BY prj_number;
+ORDER BY prj_number;
\ No newline at end of file