Files
Facilitor/APPL/PDA/order.asp
Ruud Lipper 7475103ccd AAGN#36425 geplande uitvoerdatum ook bij offertes tonen
svn path=/Website/trunk/; revision=29547
2016-05-27 06:47:40 +00:00

487 lines
21 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
TODO: lijkt mij dat er gewoon naar ../mld_close resp. ../opdr_close.asp moet worden gesubmit?
*/ %>
<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../mld/mld_flexkenmerk.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="../Shared/uitvoerendeselector.inc" -->
<!-- #include file="../Shared/contactpersoonselector.inc" -->
<%
FCLTHeader.Requires({ js: ["./modernizr-3.3.0.custom.min.js"] });
FCLTHeader.Requires({ plugins: ["suggest"]
, js: ["../mld/mld_edit_opdr.js", "num2curr.js", "jquery.timepicker-table.js"],
css: ["timePicker-table.css"]});
var opdr_key = getQParamInt("opdr_key", -1);
var mld_key = getQParamInt("mld_key", -1);
var copy = false;
// Mogelijke parameters voor toevoegen only
if (opdr_key == -1)
{
var dienst_key = getQParamInt("dienst_key", -1);
var uitv_key = getQParamInt("uitv_key", -1);
var opdr_type = getQParamInt("opdr_type", -1);
if (opdr_type == -1)
{
Server.Transfer("order_new.asp"); // Ga eerst opdrachttype kiezen
}
}
if (opdr_key > -1)
{ // BESTAANDE OPDRACHT
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
user.auth_required_or_abort(this_opdr.canReadAny);
var mld_opdr = mld.mld_opdr_info(opdr_key);
var mld_melding = mld.mld_melding_info(mld_opdr.mld_key);
var opdr_type = mld_opdr.opdr_type;
var uitv_key = mld_opdr.uitvoerende_key;
var subject = L("lcl_opdr_info") + " " + (mld_melding.prefix || "") + mld_opdr.mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr;
mld_opdr.opdr_type_org = mld_opdr.opdr_type;
mld_key = mld_opdr.mld_key;
var sqlCount = ", (SELECT count(*) FROM mld_opdr o "
+ " WHERE o.mld_melding_key = m.mld_melding_key "
+ " AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9) "
+ " AND o.mld_opdr_key <> " + opdr_key + ") aantal_open";
}
else
{ // NIEUWE OPDRACHT
var cnt_key = getQParamInt("cnt_key", -1);
var params = { uitvoerende_key: getQParamInt("uitv_key", -1)
, cnt_key: cnt_key
, opdr_copy_key: -1
, act_key: -1
};
var mld_opdr = mld.mld_opdr_info_new(mld_key, opdr_type, params);
// Bepaal discipline
sql = "SELECT sm.mld_ins_discipline_key"
+ " FROM mld_melding m"
+ " , mld_stdmelding sm"
+ " WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
var this_opdr = mld.func_enabled_mld(oRs("mld_ins_discipline_key").value, "D"); // wat mag ik zoal op een melding
oRs.Close();
var mld_melding = mld.mld_melding_info(mld_key);
var subject = L("lcl_mobile_newopdracht") + " " + (mld_melding.prefix || "") + mld_opdr.mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr;
var sqlCount = ", 0 aantal_open";
}
sql = "SELECT l.alg_locatie_code||"
+ " NVL2(g.alg_gebouw_code,'-'||g.alg_gebouw_code,'') ||"
+ " NVL2(g.alg_verdieping_code,'-'||g.alg_verdieping_code,'') ||"
+ " NVL2(g.alg_ruimte_nr,'-'||g.alg_ruimte_nr,'')||"
+ " NVL2(g.alg_terreinsector_code,'-'||g.alg_terreinsector_code,'') plaatscode,"
+ " alg_onroerendgoed_omschrijving plaats "
+ sqlCount
+ " FROM mld_melding m"
+ " , alg_v_allonrgoed_gegevens g"
+ " , alg_locatie l"
+ " , prs_v_perslid_fullnames_all pf"
+ " WHERE m.mld_melding_key= " + mld_key
+ " AND m.prs_perslid_key = pf.prs_perslid_key"
+ " AND m.mld_alg_locatie_key=l.alg_locatie_key(+)"
+ " AND m.mld_alg_onroerendgoed_keys=g.alg_onroerendgoed_keys(+)";
oRs = Oracle.Execute(sql);
lcode = !oRs.Eof && oRs("plaatscode").value? oRs("plaatscode").value + " " + oRs("plaats").value : "";
aantal_open = oRs.fields("aantal_open").value;
oRs.close();
%>
<html>
<head>
<% FCLTMHeader.Generate(); %>
<script type="text/javascript">
var timerID=null;
var typeopdr_matchtype = <%=mld_opdr.typeopdr_matchtype || -1%>; // voor als readonly
var mld_ord_show_cost = <%=S("mld_ord_show_cost")? 1 : 0%> == 1;
var opdrkosten_verplicht = <%=mld_opdr.opdrkosten_verplicht || 0%>;
function delayed(delay, fn)
{
if (timerID) clearTimeout(timerID);
timerID = setTimeout(fn, delay);
}
function opdr_goedkeur()
{
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
if (confirm(L("lcl_mld_opdr_goedkeur").format(opdr_nr)))
{
var data = { opdr_key: <%=opdr_key%>
};
<% protectRequest.dataToken("data"); %>
$.post( "../mld/opdr_goedkeur.asp"
, data
, McltCallbackAndThenAlways(opdr_action_callback)
, "json"
);
}
}
function opdr_approve()
{
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
if (confirm(L("lcl_mld_opdr_approve").format(opdr_nr)))
{
var data = { opdr_key: <%=opdr_key%>
};
<% protectRequest.dataToken("data"); %>
$.post( "../mld/opdr_approve.asp"
, data
, McltCallbackAndThenAlways(opdr_action_callback)
, "json"
);
}
}
function opdr_reject()
{
var opmerk = prompt(L("lcl_mld_inf_opmerking_fiat"), "");
if (!opmerk)
return;
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
if (confirm(L("lcl_mld_opdr_reject").format(opdr_nr)))
{
var data = { opdr_key: <%=opdr_key%>
, opmerk: opmerk //L("lcl_mld_opdr_rejectedbymobile")
};
<% protectRequest.dataToken("data"); %>
$.post("../mld/opdr_reject_save.asp"
, data
, McltCallbackAndThenAlways(opdr_action_callback)
, "json");
}
}
function opdr_accept_offer()
{
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
if (confirm(L("lcl_mld_opdr_approve").format(opdr_nr)))
{
var murl = "?opdr_key=<%=opdr_key%>&submit=1";
var data = { opdr_key: <%=opdr_key%>
};
<% protectRequest.dataToken("data"); %>
$.post("../mld/opdr_accept_offer_save.asp" + murl
, data
, McltCallbackAndThenAlways(opdr_action_callback)
, "json");
}
}
function opdr_reject_offer()
{
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
if (confirm(L("lcl_mld_opdr_reject").format(opdr_nr)))
{
var murl = "?opdr_key=<%=opdr_key%>&submit=1";
var data = { opdr_key: <%=opdr_key%>
};
<% protectRequest.dataToken("data"); %>
$.post("../mld/opdr_reject_offer_save.asp" + murl
, data
, McltCallbackAndThenAlways(opdr_action_callback)
, "json");
}
}
function opdr_action_callback()
{
//window.location.href = "fiat_list.asp"; // Als je terug bent in fiat_list en doet dan "terug" kom je in de zojuist gefiatteerde opdracht.
// Het fiatteren van een opdracht is aangeroepen vanuit fiat_list.
// Dus 1 stap terug in history om daar weer te komen.
window.history.go(-1);
}
function opdr_close()
{
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
var kosten_verplicht_afm = <%=mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2))? 1 : 0%> == 1;
var opdr_kosten = isNaN($("#tot_kosten").val())? 0 : parseFloat($("#tot_kosten").val());
if (kosten_verplicht_afm && opdr_kosten == 0)
{
alert(L("lcl_mld_opdr_kosten_verpl_afm"));
return false;
}
var opdr_afhandeling = ("<%=mld_opdr.typeopdr_afhandeling%>" == "1");
if ($("#opdr_opm").val() == "" && opdr_afhandeling)
{
alert(L("lcl_pda_opdr_opm_required"));
return false;
}
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), opdr_close_callback_1, "json");
return false;
}
function opdr_close_callback_1()
{
$.post("../mld/opdr_close_save.asp?opdr_key=<%=opdr_key%>", $("[name=u2]").serialize(), opdr_close_callback_2, "json");
return false;
}
function opdr_close_callback_2()
{
// Terug naar lijst met open opdrachten.
window.location.href = "orders_list.asp";
}
function opdr_submit()
{
// Als totaalkosten verplicht is, moet er een waarde > 0 zijn ingevuld.
if ((opdrkosten_verplicht) && (parseFloat($("#tot_kosten").val().replace(',', '.')) == "0.00"))
$("#tot_kosten").val("");
if (!validateForm("u2"))
return false;
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), McltCallbackAndThenAlways(opdr_submit_callback), "json");
return false;
}
function opdr_submit_callback(json)
{
if (json.success)
{
jqToast(L("lcl_mobile_data_saved"));
<%
if (opdr_key < 0)
{
%>
// Nieuwe melding aangemaakt. Altijd complete reload, we hebben nu een opdr_key namelijk
// window.location.href = "order.asp?opdr_key=" + json.opdr_key + "&mld_key=<%=mld_key%>";
window.location.href = "melding.asp?mld_key=<%=mld_key%>";
<%
}
%>
}
}
</script>
</head>
<body>
<% PAGE_START({id: "opdr-1-"+opdr_key});
HEADER({title: subject, back:true, home: true});
CONTENT_START();
%>
<script>
</script>
<form action="../mld/mld_edit_opdr_save.asp?mobile=1&opdr_key=<%=opdr_key%>" method="post" name="u2" id="u2">
<input type="hidden" name="forcesave" id="forcesave" value="0">
<input type="hidden" name="opdr_key" value="<%=opdr_key%>"/>
<input type="hidden" name="mld_key" value="<%=mld_key%>"/>
<input type="hidden" name="t_opdr" value="<%=opdr_type%>"/>
<input type="hidden" name="uitvoerende" value="<%=uitv_key%>"/>
<input type="hidden" name="uitvkeystr" value="<%=uitv_key%>"/>
<input type="hidden" name="behandelaar" value="<%=user_key%>"/>
<%
BLOCK_START({collapsed: true, title: mld_opdr.opdr_type_omschr});
FCLTuitvoerendeselector("uitvoerende",
"sgUitv",
{ uitvoerendekey: mld_opdr.uitvoerende_key,
label: mld_opdr.srtdiscbes ? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"),
readonly: true
});
if (opdr_key > -1)
{
FCLTcontactpersoonselector("contactpers",
"sgCntPersUitv",
{ contactpersoonKey: mld_opdr.contactpersuitv_key,
label: L("lcl_contact_pers"),
filtercode: "U",
suppressEmpty: true,
readonly: true
});
if (this_opdr.canRead("WEB_ORDBOF"))
{
params = { suppressEmpty: true };
var authparamsCNTUSE = user.checkAutorisation("WEB_CNTUSE", true);
var authparamsCNTMAN = user.checkAutorisation("WEB_CNTMAN", true);
if (mld_opdr.contract_key && mld_opdr.contract_key>0 && (authparamsCNTUSE || authparamsCNTMAN))
params.moreinfo = "./contract.asp?cnt_key="+mld_opdr.contract_key;
ROFIELD("fld", L("lcl_contract"), mld_opdr.contract_naam, params);
}
}
ROFIELD("fld", L("lcl_mld_meldingsoort") ,mld_melding.ins_discipline_omschrijving + "-" + mld_melding.mld_stdmelding_omschrijving) ;
var vOrderdate = (opdr_key > 0 ? mld_opdr.mld_opdr_datumbegin : new Date());
ROFIELD("fld", L("lcl_orderdate"), toDateTimeString(vOrderdate)
, { readonly: true
}
);
%> <input type="hidden" name="orderdate" id="orderdate" value="<%=vOrderdate.getTime()%>" /> <%
BLOCK_END();
ROFIELD("fld", L("lcl_place"), lcode, {suppressEmpty: true});
// Ik kan geen datum kiezen op de iPhone; calender sluit niet.
FCLTcalendar("date_done",
{ datum: mld_opdr.mld_opdr_einddatum,
minDate: (S("mld_enforce_orderdates") == 1 ? mld_melding.melddatum : (opdr_key < 0 ? new Date() : mld_opdr.mld_opdr_datumbegin)),
maxDate: (S("mld_enforce_orderdates") == 1 ? mld_melding.einddatum : null),
label: L("lcl_opdr_enddate"),
// werkt niet omdat mld_einddatum niet bestaand en heeft toch geen effect? onChange: "DateChanged()",
readonly: (opdr_key > 0 && !this_opdr.canDatesChange),
volgnr: 2,
required: true,
mobile: true
} );
FCLTcalendar("date_plan",
{ datum: mld_opdr.mld_opdr_plandatum,
readonly: (opdr_key > 0 && !this_opdr.canDatesChange),
label: L("lcl_opdr_plandate"),
required: false,
timeField: true,
timeStep: 15,
startTime: 8,
endTime: 18,
calendars: 1,
initEmpty: !mld_opdr.mld_opdr_plandatum,
initTimeEmpty: !mld_opdr.mld_opdr_plandatum,
mobile: true
} );
if (opdr_key > -1)
ROFIELD("fld", L("lcl_txt"), mld_opdr.opdr_omschr, {multi: true});
else
RWFIELD("opdr_omschr", L("lcl_txt"), mld_opdr.opdr_omschr, {multi: true});
generateFlexKenmerkBlock ({ fnpre: function () {},
fnpost: "",
opdr_key: opdr_key,
opdr_type: mld_opdr.opdr_type,
opdr_type_org: mld_opdr.opdr_type_org,
opdr_status: mld_opdr.opdr_status,
mld_key: mld_key,
stdm_arr: [],
showClose: (opdr_key > 0 && this_opdr && (this_opdr.canClose || this_opdr.canSeeARFlex)),
mobile: true,
reado: (opdr_key > 0 && !(this_opdr.canFlexChange || this_opdr.canChangeARFlex))
});
// de kostenvelden zijn nogal afhankelijk van mld_opdr.typeopdr_matchtype
// 1,2 --> alle kosten velden
// 3 --> alleen uren velden/uurtarief en wel kostenplaats
// 4 --> geen kosten of kostenplaats en wel uren
// 5 --> Alleen meerdere materialen invullen en kostenplaats
if (opdr_key > -1)
{
if ((mld_melding.mld_status == 7 || mld_melding.mld_status == 5) && this_opdr.canOpmChange)
{
RWFIELD("opdr_opm" , L("lcl_mld_final_remark"), mld_opdr.opdr_opmerking, {multi: true});
// Of de melding naast de opdracht ook gesloten moet worden,
// moet volgens configuratie settings worden bepaald, zonder extra interactie (zoals bij API (API/api_opdrsoap.asp)) (FSN#26329)
// Bij afmelden &mobile=1 meegeven, dan moet opdr_close_save.asp dit oplossen.
%><input type="hidden" name="mobile" value="1"><%
//
}
else
{
ROFIELD("fld" , L("lcl_mld_final_remark"), mld_opdr.opdr_opmerking, {multi: true} );
}
var nu = new Date;
%> <input type="hidden" name="date_from" value="<%=nu.getTime()%>"> <%
%> <input type="hidden" name="orgdate" value="<%=nu.getTime()%>"> <%
}
// TOTAAL KOSTEN
if (mld_opdr.typeopdr_matchtype != 4)
{ // 0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden.
isRequired = (mld_opdr.typeopdr_kosten_verplicht & 1 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 1)) ||
((mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2)) &&
(mld_opdr.opdr_status == 5 || mld_opdr.opdr_status == 8)) ||
((mld_opdr.typeopdr_kosten_verplicht & 4 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 4)) &&
mld_opdr.opdr_status == 6)
RWFIELD( "tot_kosten"
, L("lcl_total_cost") + "&nbsp;" + S("currency_pref")
, safe.jsfloat(mld_opdr.t_cost.toFixed(2))
, { pclass: "currency" + (isRequired? " required" : "")
, datarole: "fieldcontain"
, datatype: "number"
, readonly: (opdr_key > 0 && !this_opdr.canUrenMatChange)
}
);
}
CONTROLGROUP_START()
// Buttons
if (opdr_key > -1)
{
if (this_opdr.canChange)
BUTTON(L("lcl_submit"), {click: "opdr_submit()", dataicon: "refresh"});
if (this_opdr.canGoedkeur ||
this_opdr.canGoedkeur2 ||
this_opdr.canGoedkeur3 ||
this_opdr.canGoedkeur4 ||
this_opdr.canGoedkeur5)
BUTTON(L("lcl_goedkeur"), {click: "opdr_goedkeur()", dataicon: "check"});
if (this_opdr.canApprove)
BUTTON(L("lcl_approve"), {click: "opdr_approve()", dataicon: "check"});
if (this_opdr.canReject)
BUTTON(L("lcl_reject"), {click: "opdr_reject()", dataicon: "delete"});
if (this_opdr.canAcceptOffer)
BUTTON(L("lcl_approve"), {click: "opdr_accept_offer()", dataicon: "check"});
if (this_opdr.canRejectOffer)
BUTTON(L("lcl_reject"), {click: "opdr_reject_offer()", dataicon: "delete"});
if (this_opdr.canClose)
{
BUTTON(L("lcl_close"), {click: "opdr_close()", dataicon: "check"});
}
trackinglines = mobile.hastrackingpage('opdracht', opdr_key);
if (trackinglines > 0)
{
BUTTON(L("lcl_history"), {linkid: "#opdr-2-"+opdr_key, dataicon: "bullets", transition: "pop", datarel: "dialog"});
}
if (this_opdr.canShowOpdrNote) // Heb ik rechten om notities te zien
{
var tsql = "SELECT COUNT(*) FROM mld_opdr_note n WHERE n.mld_opdr_key = " + opdr_key;
toRs = Oracle.Execute(tsql);
BUTTON(L("lcl_mld_frame_notes")+" ("+toRs(0).value+")", {linkid: "./notitie.asp?node=opdracht&key="+opdr_key, dataicon: "comment", dataajax: 'false'});
}
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding
if (this_mld.canReadAny)
{
BUTTON(L("lcl_complain"), {linkid: "./melding.asp?mld_key="+mld_opdr.mld_key , dataicon: "alert", dataajax: "false"});
}
}
else
{
BUTTON(L("lcl_newsubmit"), {click: "opdr_submit()", dataicon: "refresh"});
trackinglines = 0;
}
CONTROLGROUP_END()
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
FOOTER();
PAGE_END();
if (trackinglines > 0)
{
PAGE_START({id: "opdr-2-"+opdr_key})
mobile.trackingpage('opdracht', opdr_key, subject);
PAGE_END();
}
%>
</body>
</html>