/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/logistics/transport.aspx
357 строк
17 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="transport.aspx.vb" Inherits="GA_transport" EnableEventValidation="false" %> <%@ Register Src="~/UserControls/editableGridNew.ascx" TagPrefix="uc1" TagName="editableGridNew" %> <%@ Register Src="~/UserControls/Auth.ascx" TagPrefix="uc1" TagName="Auth" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Cars & Drivers</title> <link href="../Styles/page.css" rel="stylesheet" /> <link href="../Styles/Site.css" rel="stylesheet" /> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <div> <div style="float: right;"> <uc1:Auth runat="server" ID="Auth1" /> </div> </div> <div> <asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1"> <asp:TabPanel runat="server" HeaderText="Routes" ID="Routes" Visible="false"> <ContentTemplate> <uc1:editableGridNew runat="server" ID="edgRoutes" TableId="1301" /> </ContentTemplate> </asp:TabPanel> <asp:TabPanel runat="server" HeaderText="Drivers daily" ID="drivers"> <ContentTemplate> <uc1:editableGridNew runat="server" ID="edgDriversDaily" TableId="1299" /> </ContentTemplate> </asp:TabPanel> <%--<asp:TabPanel runat="server" HeaderText="Cars daily" ID="cars"> <ContentTemplate> <uc1:editableGridNew runat="server" ID="edgCarsDaily" TableId="1300" /> </ContentTemplate> </asp:TabPanel>--%> <asp:TabPanel runat="server" HeaderText="Drivers master" ID="driversmaster"> <ContentTemplate> <uc1:editableGridNew runat="server" ID="edgDriversMaster" TableId="1298" /> </ContentTemplate> </asp:TabPanel> <asp:TabPanel runat="server" HeaderText="Monthly payment" ID="TabPanel1"> <ContentTemplate> <uc1:editableGridNew runat="server" ID="edMonthlyPayment" TableId="1851" /> </ContentTemplate> </asp:TabPanel> <asp:TabPanel runat="server" HeaderText="Working days" ID="workingdays"> <ContentTemplate> <uc1:editableGridNew runat="server" ID="edgWorkingDays" TableId="1720" /> </ContentTemplate> </asp:TabPanel> <asp:TabPanel runat="server" HeaderText="Month Report" ID="TabPanel2"> <ContentTemplate> <iframe src="month_report.aspx" style="width:100%; height:600px"></iframe> </ContentTemplate> </asp:TabPanel> </asp:TabContainer> </div> <asp:Panel ClientIDMode="Static" runat="server" ID="details" Style="z-index: 1000; color: white;" CssClass="borderRadius popup hidden"> <asp:Panel ID="detailsHeader" runat="server" CssClass="center header "> Route detail info </asp:Panel> <asp:DragPanelExtender ID="detailsHeader_DragPanelExtender" runat="server" DragHandleID="detailsHeader" Enabled="True" TargetControlID="details"> </asp:DragPanelExtender> <div id="detailsContent"></div> </asp:Panel> <script type="text/javascript"> $(document).ready(function () { }) function gridCommand(tableID, field, rowid, commandName, commandArgument) { switch (commandName) { case "VIEW_ROUTE_BY_DRIVER": var driver = commandArgument.split(":")[0]; var date = commandArgument.split(":")[1]; getRouteByDriver(tableID, driver, date) break; case "VIEW_ROUTE_BY_CAR": var carNumber = commandArgument.split(":")[0]; var date = commandArgument.split(":")[1]; getRouteByCar(tableID, carNumber, date) break; break; } }; function getRouteByCar(t, car, dt, tp) { var request = $.ajax({ url: "subreport.aspx", data: { type: tp, tid: t, car_number: car, date: dt } }); request.done(getDetailSuccess); request.fail(getDetailFail); }; function getRouteByDriver(t, drv, dt, tp) { var request = $.ajax({ url: "subreport.aspx", data: { type: tp, tid: t, driver: drv, date: dt } }); request.done(getDetailSuccess); request.fail(getDetailFail); }; function getDetailSuccess(result) { //console.log(result); $("#detailsContent").html(result); centerPopup($("#details")); } function getDetailFail(result) { //console.log(result); } // Calculate working time function dataSaved(tid, rowid, field, value) { if (field === "DATE_TYPE") { dateType = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"DATE_TYPE\"]").text(); } else { determineDateType($("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"DATE\"]").text()); } var s = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"START_TIME\"]").text(); var e = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"END_TIME\"]").text(); var hrs = calculateWorkHours(s, e, dateType); //console.log(hrs); var t1 = hrs.split(":")[0]; var t15 = hrs.split(":")[1]; var t2 = hrs.split(":")[2]; if (field === "START_TIME" || field === "END_TIME" || field === "DATE" || field === "DATE_TYPE") { $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"TARIFF_X1\"]").text(t1); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"TARIFF_X1_5\"]").text(t15); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"TARIFF_X2\"]").text(t2); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"DATE_TYPE\"]").text(dateType); //console.log(stime + " - " + etime + ":" + (etime - stime) / 1000 / 60 / 60); try { SaveDataDirect(tid, rowid, "TARIFF_X1", "NUMBER", t1); SaveDataDirect(tid, rowid, "TARIFF_X1_5", "NUMBER", t15); SaveDataDirect(tid, rowid, "TARIFF_X2", "NUMBER", t2); SaveDataDirect(tid, rowid, "DATE_TYPE", "TEXT", dateType); } catch (e) { console.log("can't save data: " + e) } } if (field === "START_TIME" || field === "END_TIME" || field === "TARIFF_X1" || field === "TARIFF_X1_5" || field === "TARIFF_X2" || field === "DATE" || field === "DATE_TYPE") { var driver = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"DRIVER_NAME\"]").text(); var date = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"DATE\"]").text(); var paymentDetails = getDriverPayments(date, driver, dateType); console.log(paymentDetails); // Расчет почасовой оплаты if (paymentDetails != null) { t1 = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"TARIFF_X1\"]").text(); t15 = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"TARIFF_X1_5\"]").text(); t2 = $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"TARIFF_X2\"]").text(); pt1 = 0; pt15 = 0; pt2 = 0; pt1 = (paymentDetails[0].per_hour * t1).toFixed(4); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"SALARY\"]").text(pt1); //S - короткий день, 7 рабочих часов, в овертайм идет +1 час if (dateType === "S") { if (t1 === "7") { // --------------↓ +1 час чтобы для расчета было 8 часов - полный рабочий день pt1 = (paymentDetails[0].per_hour * (Number(t1) + 1)).toFixed(4); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"SALARY\"]").text(pt1); } } pt15 = (paymentDetails[0].per_hour * t15 * 1.5).toFixed(4); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"OVERTIME\"]").text(pt15); pt2 = (paymentDetails[0].per_hour * t2 * 2).toFixed(4); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"OVERTIME_X2\"]").text(pt2); $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"PER_DAY\"]").text((paymentDetails[0].per_day).toFixed(4)); //Сохраняем данные в базу SaveDataDirect(tid, rowid, "SALARY", "NUMBER", pt1); SaveDataDirect(tid, rowid, "OVERTIME", "NUMBER", pt15); SaveDataDirect(tid, rowid, "OVERTIME_X2", "NUMBER", pt2); SaveDataDirect(tid, rowid, "DATE_TYPE", "TEXT", dateType) SaveDataDirect(tid, rowid, "PER_DAY", "NUMBER", (paymentDetails[0].per_day).toFixed(4)); } } if (field === "PARKING_FEE") { $("td[tid='" + tid + "'][rowid=\"" + rowid + "\"][field=\"PARKING___13_\"]").text((value * 1.13).toFixed(4)); SaveDataDirect(tid, rowid, "PARKING___13_", "NUMBER", (value * 1.13).toFixed(4)); } } var dayOfWeek = 0; var dateType = ""; function determineDateType(date) { var d = new Date(date); //dt.split("-")[0], dt.split("-")[1], dt.split("-")[2], 1, 1, 1, 1); dayOfWeek = d.getDay(); dateType = (dayOfWeek === 6 || dayOfWeek === 0 ? "W" : ""); //console.log(d + " ----> " + dayOfWeek + " --> " + dateType); } var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function () { try { determineDateType($("#TabContainer1_drivers_edgDriversDaily_DATE_TextBox1").val()); $("#TabContainer1_drivers_edgDriversDaily_DATE_TYPE").val(dateType); //$("#TabContainer1_drivers_edgDriversDaily_DATE_TYPE").text(dateType); assignNewItemHours($("#TabContainer1_drivers_edgDriversDaily_START_TIME").val(), $("#TabContainer1_drivers_edgDriversDaily_END_TIME").val(), dateType); } catch (e) { console.log("ERRORR: " + e); }; $("#TabContainer1_drivers_edgDriversDaily_DATE_TextBox1").on("change", function () { determineDateType($(this).val()); $("#TabContainer1_drivers_edgDriversDaily_DATE_TYPE").val(dateType); assignNewItemHours($("#TabContainer1_drivers_edgDriversDaily_START_TIME").val(), $("#TabContainer1_drivers_edgDriversDaily_END_TIME").val(), dateType); }) $("#TabContainer1_drivers_edgDriversDaily_DATE_TYPE").on("change", function () { //console.log("'" + $(this).val() + "'"); dateType = $(this).val(); assignNewItemHours($("#TabContainer1_drivers_edgDriversDaily_START_TIME").val(), $("#TabContainer1_drivers_edgDriversDaily_END_TIME").val(), dateType); }) $("#TabContainer1_drivers_edgDriversDaily_START_TIME").on("change", function () { assignNewItemHours($("#TabContainer1_drivers_edgDriversDaily_START_TIME").val(), $("#TabContainer1_drivers_edgDriversDaily_END_TIME").val(), dateType); }); $("#TabContainer1_drivers_edgDriversDaily_END_TIME").on("change", function () { assignNewItemHours($("#TabContainer1_drivers_edgDriversDaily_START_TIME").val(), $("#TabContainer1_drivers_edgDriversDaily_END_TIME").val(), dateType); }) }); function assignNewItemHours(s, e, dt) { var hrs = calculateWorkHours(s, e, dt); $("#TabContainer1_drivers_edgDriversDaily_TARIFF_X1_TextBox1").val(hrs.split(":")[0]); $("#TabContainer1_drivers_edgDriversDaily_TARIFF_X1_5_TextBox1").val(hrs.split(":")[1]); $("#TabContainer1_drivers_edgDriversDaily_TARIFF_X2_TextBox1").val(hrs.split(":")[2]); }; function calculateWorkHours(s, e, dt) { var stime = new Date("2015", "0", "0", s.split(":")[0], s.split(":")[1], "0"); var etime; if (e.split(":")[0] < s.split(":")[0]) { etime = new Date("2015", "0", "1", e.split(":")[0], e.split(":")[1], "0"); } else { etime = new Date("2015", "0", "0", e.split(":")[0], e.split(":")[1], "0"); } var ttlhours = (etime - stime) / 1000 / 60 / 60 - 1; var t1 = 0; var t15 = 0; var t2 = 0; //Обычный рабочий день if (dt === "") { if (ttlhours > 10) { t1 = 8; t15 = 2; t2 = ttlhours - 10; } else if (ttlhours > 8) { t1 = 8; t15 = ttlhours - 8; } else { t1 = ttlhours; } } else if (dt === 'S') { if (ttlhours > 9) { t1 = 7; t15 = 2; t2 = ttlhours - 9; } else if (ttlhours > 7) { t1 = 7; t15 = ttlhours - 7; } else { t1 = ttlhours; } } else { if (dt === "V") { t1 = ttlhours; t15 = 0; t2 = 0; } else if (dt === '2/3' || dt === 'I') { t1 = 8; t15 = 0; t2 = 0; } else { t1 = 0; t15 = 0; t2 = ttlhours; } } return t1 + ":" + t15 + ":" + t2; } function getDriverPayments(date, driver, dt) { var resultReturn; var handlerUrl = location.origin + location.pathname.replace("logistics/transport.aspx", "handlers/getsqldata.ashx"); //console.log(date + ' ' + driver + ' ' + dt); var request = $.ajax({ url: handlerUrl , data: { id: 1343, date: date, driver_name: driver, } , success: function (result) { try { resultReturn = JSON.parse(result); } catch (e) { resultReturn = null; } } , async: false }); return resultReturn; } </script> </form> </body> </html>