MARX#75026 Pakbonnummer en notificatie per (deel)levering bij bestelopdracht

svn path=/Website/trunk/; revision=58450
This commit is contained in:
Jos Groot Lipman
2022-12-22 15:21:43 +00:00
parent 260eb3d505
commit 576acb4c6b
5 changed files with 162 additions and 11 deletions

View File

@@ -0,0 +1,95 @@
<%@ language="javascript"%>
<% /*
$Revision$
$Id$
File: bes_bestellevr_list.asp
Beschrijving: Toont levering info van een bestelopdracht
Note:
*/%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/status.inc"-->
<!--#include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="bes.inc" -->
<%
var outputmode = getQParamInt("outputmode", 0);
var opdr_key = getQParamInt('opdr_key');
var bes_bestelopdr = bes.bestelopdracht_info(opdr_key);
var bes_bestelling = bes.bestelling_info(bes_bestelopdr.bes_key_str[0]);
var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
var this_bestelling = bes.func_enabled_bestelling(bes_bestelling)
var hasBOread = this_bestelopdr.canReadBOF || this_bestelopdr.canReadBOR;
// Ik moet leesrechten (BESBOF, BESBOR of BESBAC) hebben of ik moet kostenplaatsverantwoordelijke zijn om de opdracht in te mogen zien.
user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVerantwoordelijke);
%>
<html>
<head>
<% FCLTHeader.Generate({ outputmode: outputmode }); %>
</head>
<script>
function bes_opdr_deliver()
{
url = "../bes/opdr_delivery.asp?opdr_key=<%=opdr_key%>&is_multi=0";
FcltMgr.openModalDetail(url, L("lcl_bes_delivery"), {xwidth: 800, callback: FcltMgr.reload});
}
</script>
<body class="listmode">
<%
var sql = "SELECT bes_bestellevr_opmerk, "
+ " bes_bestellevr_pakbon, "
+ " bes_bestellevr_datum, "
+ " bes_srtdeel_nr, "
+ " bes_srtdeel_omschrijving, "
+ " bes_bestellevr_item_aantal, "
+ " prs_perslid_naam_friendly"
+ " FROM bes_bestellevr_item bbli, "
+ " bes_bestellevr bbl, "
+ " bes_bestelopdr bbo, "
+ " bes_bestelopdr_item bbi, "
+ " bes_bestelling_item bi, "
+ " bes_srtdeel bs, "
+ " prs_v_perslid_fullnames_all p "
+ " WHERE bbo.bes_bestelopdr_key = " + opdr_key
+ " AND bbo.bes_bestelopdr_key = bbi.bes_bestelopdr_key "
+ " AND bbli.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key "
+ " AND bbl.bes_bestellevr_key = bbli.bes_bestellevr_key "
+ " AND bi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key "
+ " AND bi.bes_Srtdeel_key = bs.bes_srtdeel_key "
+ " AND p.prs_perslid_key (+) = bbl.prs_perslid_key"; // outer join voor hard verwijderde persoon
var buttons = [];
if (this_bestelopdr.canDeliver)
buttons.push({icon: "fa-bell", title: L("lcl_bes_delivery"), action:"bes_opdr_deliver()" });
buttons.push({ icon: "fa-fclt-refresh", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
var rst = new ResultsetTable({ sql:sql,
ID: "deliverytable",
outputmode: outputmode,
showAll: getQParamInt("showall", 0),
buttons: buttons
});
rst.addColumn(new Column({caption: L("lcl_bes_bestellevr_pakbon"), content: "bes_bestellevr_pakbon", datatype: "varchar" }));
rst.addColumn(new Column({caption: L("lcl_date_time"), content: "bes_bestellevr_datum", datatype: "datetime"}));
rst.addColumn(new Column({caption: L("lcl_mld_changedby"), content: "prs_perslid_naam_friendly", datatype: "varchar"}));
rst.addColumn(new Column({caption: L("lcl_bes_comment"), content: "bes_bestellevr_opmerk", datatype: "varchar"}));
rst.addColumn(new Column({caption: L("lcl_bes_srtdeel_nr"), content: "bes_srtdeel_nr", datatype: "varchar"}));
rst.addColumn(new Column({caption: L("lcl_bes_srtdeel"), content: "bes_srtdeel_omschrijving", datatype: "varchar"}));
rst.addColumn(new Column({caption: L("lcl_bes_delivered_now"), content: "bes_bestellevr_item_aantal", datatype: "number"}));
var cnt = rst.processResultset();
%>
</body>
</html>
<% ASPPAGE_END(); %>

View File

@@ -14,6 +14,7 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../fin/fin_verkoopfactuur.inc" -->
<!-- #include file="bes.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest","jQuery"],
js: ["jquery-ui.js"] })
@@ -28,7 +29,6 @@ var opdr_key = getQParamInt('ordernr');
var autoopdr = getQParam('autoopdr', '');
var sql = "SELECT bo.bes_bestelopdr_id"
+ " , bo.bes_bestelopdr_status"
+ " , b.bes_bestelling_parentkey"
+ " FROM bes_bestelopdr bo"
+ " , bes_bestelling_item bi"
@@ -51,6 +51,9 @@ oRs = Oracle.Execute(sql);
if (!oRs.eof)
opdr_parent_key = oRs("bes_bestelopdr_key").value;
oRs.Close();
var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
%>
<html>
<head>
@@ -90,9 +93,27 @@ oRs.Close();
IFRAMER("finfactuur", page, { refreshOnClose: true, title: L("lcl_fin_invoices_frame")} );
}
// Zijn er delivery records?
var sql = "SELECT bbl.bes_bestellevr_key"
+ " FROM bes_bestellevr_item bbli, "
+ " bes_bestellevr bbl, "
+ " bes_bestelopdr bbo, "
+ " bes_bestelopdr_item bbi"
+ " WHERE bbo.bes_bestelopdr_key = " + opdr_key
+ " AND bbo.bes_bestelopdr_key = bbi.bes_bestelopdr_key "
+ " AND bbli.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key "
+ " AND bbl.bes_bestellevr_key = bbli.bes_bestellevr_key ";
var oRs = Oracle.Execute(sql);
var hasDelivery = !oRs.EOF;
oRs.Close();
if (hasDelivery || this_bestelopdr.canDeliver)
{
page="../bes/bes_bestellevr_list.asp?embedded=1&opdr_key=" + opdr_key;
IFRAMER("besdelivery", page, { refreshOnClose: true, title: L("lcl_bes_delivery")} );
}
verkoopfactuur_IFRAMER('bestelopdr', opdr_key);
// tracking naar subframe :-)
var autfunction = {fo: 'WEB_BESFOF', bo: ['WEB_BESBOR', 'WEB_BESBOF'], mi: 'WEB_BESBAC'}[urole] || 'WEB_BESUSE';
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)

View File

@@ -79,14 +79,14 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
function bes_opdr_reject()
{
var url = "../BES/opdr_reject.asp?opdr_key=<%=opdr_key%>&urole=<%=urole%>";
var url = "../bes/opdr_reject.asp?opdr_key=<%=opdr_key%>&urole=<%=urole%>";
FcltMgr.openModalDetail(url, L("lcl_bes_order_reject").format(<%=opdr_key%>),
{callback: <%=bes_bestelling.parent_key?"FcltMgr.closeDetail":"FcltMgr.reload"%>});
}
function bes_opdr_deliver()
{
url = "../BES/opdr_delivery.asp?opdr_key=<%=opdr_key%>&urole=<%=urole%>&is_multi=0";
url = "../bes/opdr_delivery.asp?opdr_key=<%=opdr_key%>&urole=<%=urole%>&is_multi=0";
FcltMgr.openModalDetail(url, L("lcl_bes_delivery"), {xwidth: 800, callback: FcltMgr.reload});
}
@@ -160,7 +160,7 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
IFRAMER_HEADER(L("lcl_bes_opdrframe_algemeen"), buttons)
%>
<form action="order_details.asp" method="post" name="u2" >
<%
<%
BLOCK_START("besOpdr", L("lcl_bes_opdrframe_algemeen"), {icon: "fa-shipping-fast"});
ROFIELDTR("fld", L("lcl_bes_BesOrder"), S("bes_bestelopdr_prefix") + bes_bestelopdr.bestelopdr_id);

View File

@@ -104,9 +104,9 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
+ " , bi.bes_bestelling_item_key"
+ " , boi.bes_bestelopdr_item_aantal"
+ " , boi.bes_bestelopdr_item_aantalontv"
+ " , m.mld_adres_bezoek_adres || ' ' ||"
+ " m.mld_adres_bezoek_postcode || ' ' ||"
+ " m.mld_adres_bezoek_plaats delivery_place"
+ " , m.mld_adres_bezoek_adres"
+ " , m.mld_adres_bezoek_postcode"
+ " , m.mld_adres_bezoek_plaats"
+ " , b.bes_bestelopdr_opmerking"
+ " , bes.prs_perslid_key"
+ " , boi.bes_bestelopdr_item_key"
@@ -144,14 +144,21 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
oRs = Oracle.Execute(sql);
count = 0;
var delivery_place = (oRs("mld_adres_bezoek_adres").Value
? oRs("mld_adres_bezoek_adres").Value + ' '
+ oRs("mld_adres_bezoek_postcode").Value + ' '
+ oRs("mld_adres_bezoek_plaats delivery_place").Value
: "");
MODAL_BLOCK_START("besdelivery", L("lcl_bes_delvery_h_pref") + S("bes_bestelopdr_prefix") + ordernr_id + L("lcl_bes_delvery_h_suf"), { icon: "fa-shipping-fast" });
ROFIELDTR("fld", L("lcl_bes_Supplier"), oRs("prs_bedrijf_naam").value);
RWFIELDTR("pakbon", "fld", L("lcl_bes_bestellevr_pakbon"), "");
RWTEXTAREATR("notsat",
"fldtxt",
L("lcl_bes_not_satisfied") + " " + L("lcl_bes_your_comment"),
oRs("bes_bestelopdr_delivery_opmerk").value,
{html: "rows='3'"});
ROFIELDTR("fld", L("lcl_bes_adres_lev"), oRs("delivery_place").value);
ROFIELDTR("fld", L("lcl_bes_adres_lev"), delivery_place, {suppressEmpty: true});
MODAL_BLOCK_END();
MODAL_BLOCK_START("besItems", L("lcl_bes_bestelling_items"), { icon: "fa-list", nopadding: true });
%>

View File

@@ -21,6 +21,9 @@ var ontv, oldcnt, bokey, bikey;
var max_o_i = getFParamInt( 'max_o_i', 0 );
var opdr_key_arr = getQParamIntArray("opdr_key");
var isMulti = getQParamInt("is_multi", 0);
var pakbon = getQParam("pakbon", "");
var newremark = getFParam("notsat", "");
var result = {};
var tobedelivered = 0;
var ingesloten = [];
@@ -150,6 +153,7 @@ for (var index = 0; index < ingesloten.length; index++)
var trackarray = [];
var besopdr_id = "";
var bes_bestellevr_key = -1; // TODO: bes_bestellevr record aanmaken met pakbon en newremark
for (i = 0; i < max_o_i; i++)
{
ontv = isMulti ? cntArr[i] : getFParamFloat("cnt" + i, 0);
@@ -159,6 +163,31 @@ for (var index = 0; index < ingesloten.length; index++)
if ( !isNaN(ontv) && ontv != 0 && !isNaN(oldcnt))
{
if (!(bes_bestellevr_key > 0))
{
var fields = [ { dbs: "bes_bestellevr_key", typ: "key", seq: "bes_s_bes_bestellevr_key" },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "bes_bestellevr_opmerk", typ: "varchar", val: newremark, len: 320 },
{ dbs: "bes_bestellevr_pakbon", typ: "varchar", frm: "pakbon", len: 50 }
];
var levrIns = buildInsert("bes_bestellevr", fields);
Oracle.Execute(levrIns.sql);
bes_bestellevr_key = levrIns.sequences["bes_bestellevr_key"];
}
sql = "INSERT INTO bes_bestellevr_item"
+ " ( bes_bestellevr_key"
+ " , bes_bestelopdr_item_key"
+ " , bes_bestellevr_item_aantal"
+ " )"
+ " VALUES "
+ " (" + bes_bestellevr_key
+ " , " + bokey
+ " , " + ontv
+ " )";
Oracle.Execute(sql);
// lekje: er is hier nog geen controle dat de bes_bestelopdr_item ook daadwerkelijk
// bij opdracht opdr_key hoort.
sql = "UPDATE bes_bestelopdr_item B"
+ " SET bes_bestelopdr_item_aantalontv = "
+ " COALESCE(bes_bestelopdr_item_aantalontv, 0) + " + ontv
@@ -166,6 +195,7 @@ for (var index = 0; index < ingesloten.length; index++)
+ " WHERE bes_bestelopdr_item_key = " + bokey;
Oracle.Execute(sql);
// bes_bestelling_item_aantalontv is vrij deprecated
sql = "UPDATE bes_bestelling_item"
+ " SET bes_bestelling_item_aantalontv = "
+ " COALESCE(bes_bestelling_item_aantalontv, 0) + " + ontv
@@ -194,8 +224,6 @@ for (var index = 0; index < ingesloten.length; index++)
bes.updatebestelopdrstatus(opdr_key);
bes.updatebestellingstatus(bes_key);
var newremark = getFParam("notsat", "");
if (newremark != "")
{
var fields = [{dbs: "bes_bestelopdr_delivery_opmerk", typ: "varchar", val: newremark, len: 320 }];