PageSourceSearch

https://thaineqas.com/js/common/tracking.js

js thaineqas.com collected 2026-10-09 00:35:54 UTC 5,414 bytes, 208 lines download raw bytes

1import * as gql from './graphql.js';
2import * as common from './common.js';
3import * as config from './config.js';
4
5// updateTracking
6// =========================
7// update the tracking inside the database without user modification.
8/*
9updateTracking(sent_year: String, receipt_tracking: String, 
10				first_tracking: String, second_tracking: String, 
11				third_tracking: String, tracking_id: ID, 
12				participant_code: ID, modifyUser: Boolean): Tracking
13*/
14export async function updateTracking(config)
15{
16
17	let query_dict = Object.entries(config).map(([key, value]) => `${ key }: "${ value }"`);
18		query_dict.push("modifyUser: false");
19
20	let query = `mutation {
21        updateTracking(${ query_dict.join(',') }) {
22				tracking_id
23            }
24        }`;
25
26    try {
27        let ret = await gql.sendMutation({ query });
28
29        if(ret['status'] == 'success') {
30            let tracking = ret['response']['data']['updateTracking'];
31            return tracking;
32        }
33    } catch(error) {
34        console.error(error);
35    }
36
37    return null;
38}
39
40// approvedTrackings
41// =========================
42// update the tracking on receipt tracking inside the database without user modification.
43// according to participant_code and year (sent_year).
44export async function approvedTracking(participant_code, sent_year)
45{
46	let tracking_ret = await updateTracking({ participant_code, sent_year, receipt_tracking: "ชำระเงินเรียบร้อยแล้ว"});
47
48	if(tracking_ret)
49		return true;
50
51	return false;
52}
53
54// addTracking
55// =========================
56// add the new tracking
57/* addTracking(participant_code: ID, sent_year: String): Tracking */
58export async function addTracking(participant_code, sent_year = null)
59{
60	let current_year = sent_year || (new Date()).getFullYear() ;
61
62    let query = `mutation {
63        addTracking(participant_code: "${ participant_code }", sent_year: "${ current_year }") {
64				tracking_id
65				participant_code
66				sent_year
67				receipt_tracking
68				first_tracking
69				second_tracking
70				third_tracking
71            }
72        }`;
73
74    try {
75        let ret = await gql.sendMutation({ query });
76
77        if(ret['status'] == 'success') {
78            let tracking = ret['response']['data']['addTracking'];
79            return tracking;
80        }
81    } catch(error) {
82        console.error(error);
83    }
84
85    return null;
86}
87
88/*
89	getTracking 
90	=================
91	get the tracking data according to participant_code
92*/
93export async function getTracking(config)
94{
95	if(!config.hasOwnProperty('participant_code'))
96		return null;
97
98    let query = `{
99        getTracking(participant_code: "${ config['participant_code'] }") {
100			tracking_id
101			sent_year
102            receipt_tracking
103            first_tracking
104            second_tracking
105            third_tracking
106        }
107    }`;
108
109	try {
110		let ret = await gql.sendGQL('query', query);
111
112		if(ret['status'] == 'success') {
113			let tracking_data = ret['response']['data']['getTracking'];
114            tracking_data = tracking_data.sort(sortTracking);
115			return tracking_data;
116		}
117	} catch(error) {
118		console.error(error);
119	}
120
121	return null;
122}
123
124// sortTracking
125// =================
126// sort the tracking data according to participant_code
127function sortTracking(a, b)
128{
129	if(a.hasOwnProperty('participant_code') && b.hasOwnProperty('participant_code')) {
130        let isparticipantequal = a['participant_code'] - b['participant_code'];
131
132        if(isparticipantequal != 0)
133            return isparticipantequal;
134    }
135
136	return a['sent_year'] - b['sent_year'];
137}
138
139export async function listTracking(year = 0)
140{
141	let query = '';
142	if(year == 0) {
143		query = `{
144			getTracking {
145				tracking_id
146				participant_code
147				sent_year
148				receipt_tracking
149				first_tracking
150				second_tracking
151				third_tracking
152			}
153		}`;
154	} else {
155		query = `{
156			getTracking(sent_year: "${ year }") {
157				tracking_id
158				participant_code
159				sent_year
160				receipt_tracking
161				first_tracking
162				second_tracking
163				third_tracking
164			}
165		}`;
166	}
167
168	try {
169		let ret = await gql.sendGQL('query', query);
170
171		if(ret['status'] == 'success') {
172			let tracking_data = ret['response']['data']['getTracking'];
173            tracking_data = tracking_data.sort(sortTracking);
174			return tracking_data;
175		}
176	} catch(error) {
177		console.error(error);
178	}
179
180	return null;
181}
182
183/*
184 * uploadTracking(config)
185 * ==========================================
186 * how to send => send via object { tracking_file: Upload!, tracking_type: String }
187 * if(tracking_type != 'receipt_tracking' && tracking_type != 'first_tracking'
188 * && tracking_type != 'second_tracking'  && tracking_type != 'third_tracking')
189 */
190export async function uploadTracking(config,)
191{
192	let { tracking_type, tracking_json, tracking_year } = config;
193    let query = `mutation {
194        	uploadTracking(tracking_type: "${ tracking_type }", tracking_json: "${ tracking_json }", tracking_year: "${ tracking_year }")
195        }`;
196
197    try {
198        let ret = await gql.sendMutation({ query });
199        if(ret['status'] == 'success') {
200            let tracking = ret['response']['data']['uploadTracking'];
201            return tracking;
202        }
203    } catch(error) {
204        console.error(error);
205    }
206
207    return null;
208}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.