[
{
"objectID": "docs.html",
"href": "docs.html",
"title": "docs",
"section": "",
"text": "Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org."
},
{
"objectID": "docs.html#quarto",
"href": "docs.html#quarto",
"title": "docs",
"section": "",
"text": "Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org."
},
{
"objectID": "index.html",
"href": "index.html",
"title": "سامانه تردد",
"section": "",
"text": "مقدمه\nسامانه تردد",
"crumbs": [
"خانه",
"صفحه اصلی"
]
},
{
"objectID": "index.html#بخش-اول",
"href": "index.html#بخش-اول",
"title": "سامانه تردد",
"section": "",
"text": "مورد اول\nمورد دوم\nمورد سوم"
},
{
"objectID": "index.html#بخش-دوم",
"href": "index.html#بخش-دوم",
"title": "سامانه تردد",
"section": "",
"text": "این بخش یک فرمول ریاضی را نشان میدهد:\n\\[\nE = mc^2\n\\]"
},
{
"objectID": "docs/models.html",
"href": "docs/models.html",
"title": "مدلها",
"section": "",
"text": "فیلدهای موجود در دیتابیس\nمدل درخواست کاربر که شامل رویههای واردات، صادرات، ترانزیت، تدارکات، تجهیزات، سوخترسانی، آبرسانی، عودت تجهیزات (ورود و خروج) میشود.\nconst mongoose = require('mongoose');\n\nconst REQUEST_STATUSES = {\n OPEN: 0, // باز\n IN_PROGRESS: 1, // در حال بررسی\n CLOSE: 2, // بسته شده\n END: 3, // پایان عملیات\n};\n\nconst REQUEST_PERMISSIONS_STATUSES = {\n NOT_HAS: 0, // ندارد\n HAS: 1, // دارد\n CANCEL: 2, // لغو شده\n IN_PROGRESS: 3, // در حال بررسی\n};\n\n// ['صادرات', 'واردات', 'ترانزیت', 'آب رسانی', 'سوخت رسانی', 'تجهیزات', 'تدارکات'],\nconst OPERATION_TYPES = {\n EXPORT: 0,\n IMPORT: 1,\n TRANSIT: 2,\n WATER: 3,\n FUEL: 4,\n EQUIPMENT: 5,\n PROVISION: 6,\n};\n\n// یک تردد، چند تردد، شهری\nconst TRAFFIC_TYPES = {\n ONE_DIRECTION: 0,\n MULTIPLE_DIRECTION: 1,\n CITY: 2,\n ENTRANCE_PERMISSION: 3,\n EXIT_PERMISSION: 4,\n};\n\n// کانتینری، نفتی، عمومی\nconst TERMINAL_OPTIONS = {\n CONTAINER: 0,\n OIL: 1,\n GENERAL: 2,\n SERVICE: 3,\n};\n\n// تخلیه، بارگیری، تشریفات گمرکی\nconst ENTRANCE_TRAFFIC_TYPES = {\n LOAD: 0,\n UNLOAD: 1,\n CUSTOM: 2,\n SERVICE: 3,\n};\n\nconst requestSchema = new mongoose.Schema(\n {\n کسی که درخواست ثبت میکنه - واردات صادرات و ...\n requestBy: {\n type: mongoose.Types.ObjectId,\n ref: 'User',\n },\n\n به نمایندگی از ... درخواستها ثبت میشه. نماینده در واقع\n requestFor: [\n {\n type: mongoose.Types.ObjectId,\n ref: 'User',\n },\n ],\n\n // نوع عملیات درخواست مثل واردات صادرات و ...\n operationType: {\n type: Number,\n required: [true, 'نوع عملیات الزامی می باشد.'],\n enum: Object.values(OPERATION_TYPES),\n },\n\n // فیلدی حمل یکسره و عملیاتی در آن ذخیره میشود\n options: {\n type: String,\n },\n\n // فیلدی که جهت در آن ذخیره میشود. جهت تخلیه، بارگیری و تشریفات گمرکی و ...\n entranceTrafficType: {\n type: Number,\n enum: Object.values(ENTRANCE_TRAFFIC_TYPES),\n },\n\n // حساسیت کالا در این فیلد ذخیره میشود\n danger: [\n {\n type: mongoose.Types.ObjectId,\n ref: 'dangerType',\n required: false,\n },\n ],\n\n // تاییده نهایی نوع تردد که توسط ادمین وارد میشود\n traffic: {\n // تردد تایید شده توسط مجوز دهنده\n type: Number,\n enum: Object.values(TRAFFIC_TYPES),\n },\n\n // اظهار نوع تردد که توسط کاربر ثبت میشود و نهایی نیست\n trafficType: {\n // اظهار تردد\n type: Number,\n enum: Object.values(TRAFFIC_TYPES),\n },\n\n // پایانهای که کالا برای آن ثبت میشود\n terminalOption: {\n type: Number,\n enum: Object.values(TERMINAL_OPTIONS),\n },\n\n // آدرس فایل حواله سوخت و ...\n filename: {\n type: String,\n },\n\n // نام محصول یا کالایی که کاربر وارد میکند\n name: {\n // نام بار\n type: String,\n trim: true,\n },\n\n // شماره سفر\n voyageNumber: {\n type: String,\n },\n\n // کد قبض انبار اگر کالا عمومی و یا کانتینری باشد\n receiptNumber: [\n {\n type: String,\n trim: true,\n },\n ],\n\n // تناژ کالا\n tonaj: {\n type: String,\n },\n\n // عددی که برای تناژ استفاده میشود\n tonajNumber: {\n type: String,\n },\n\n // واحد تناژ کالا\n tonajType: {\n type: String,\n },\n\n // تعداد محصول یا بار\n packageNumber: {\n type: String,\n },\n\n // شماره پلاکهای ثبت شده برای درخواست کاربر\n plates: [\n {\n type: mongoose.Types.ObjectId,\n ref: 'plates',\n required: false,\n },\n ],\n\n // بدون استفاده\n truckNumber: {\n type: String,\n },\n\n // اسم شناور\n vesselName: String,\n\n // اسم کشتی رانی صاحب شناور\n shipping: {\n type: String,\n },\n\n // منطقه عملیاتی\n storeRoom: {\n type: mongoose.Types.ObjectId,\n ref: 'storeRoom',\n required: false,\n },\n // نوع منطقه عملیاتی - که استفاده نمیشود\n storeRoomType: {\n type: String,\n },\n\n // دستگاه نظارت درخواست\n supervisionDepartment: {\n type: mongoose.Types.ObjectId,\n ref: 'supervisionDepartment',\n required: false,\n },\n\n // کاربری که برای درخواست مشاور است\n consultingUser: {\n type: String,\n },\n consultingUsername: {\n type: String,\n },\n consultingStatus: {\n type: String,\n },\n supervisionStatus: {\n type: String,\n },\n propertyBossStatus: {\n type: String,\n },\n HSEStatus: {\n type: String,\n },\n portBossStatus: {\n type: String,\n },\n customsStatus: {\n type: String,\n },\n selectedStores: {\n type: Array,\n },\n\n // مقصد کالا\n destination: {\n type: mongoose.SchemaTypes.ObjectId,\n trim: true,\n ref: 'city',\n },\n\n // مجوز یگان حفاظت \n permissionGuard: {\n // مجوز یگان حفاظت\n type: Number,\n enum: Object.values(REQUEST_PERMISSIONS_STATUSES),\n default: REQUEST_PERMISSIONS_STATUSES.IN_PROGRESS,\n },\n\n // مجوز پایانه اسکله برای حرکت کردن ناوگان حمل از پایانه کامیونی\n permissionPier: {\n // مجوز اسکله\n type: Number,\n enum: Object.values(REQUEST_PERMISSIONS_STATUSES),\n default: REQUEST_PERMISSIONS_STATUSES.IN_PROGRESS,\n },\n\n // اظهارات کوتاژ کاربر\n userCottages: [\n //اظهار کوتاژ\n {\n type: String,\n trim: true,\n },\n ],\n date: {\n type: Date,\n },\n dateString: {\n type: String,\n },\n\n // کامنت اسکله - بروز میشود\n pierComment: {\n type: String,\n },\n\n // پایانه حمل\n terminalTruckName: {\n type: mongoose.Types.ObjectId,\n ref: 'terminals',\n required: false,\n },\n\n // شماره حواله سوخت\n gasolineRequestNumber: {\n type: String,\n },\n\n // شماره سفارش\n orderNumber: {\n type: String,\n },\n\n // دروازهای که درخواست برای \n gateName: {\n type: mongoose.Types.ObjectId,\n ref: 'gate',\n required: [true, 'نام دروازه الزامی می باشد.'],\n },\n\n // کد رهگیری تولید شده\n requestNumber: {\n type: String,\n },\n supervisionUser: {\n type: String,\n },\n supervisionUsername: {\n type: String,\n },\n propertyBossUser: {\n type: String,\n },\n propertyBossUsername: {\n type: String,\n },\n HSEUser: {\n type: String,\n },\n HSEUsername: {\n type: String,\n },\n portBossUser: {\n type: String,\n },\n portBossUsername: {\n type: String,\n },\n terminalUser: {\n type: String,\n },\n terminalUsername: {\n type: String,\n },\n permissionPierDate: {\n type: Date,\n },\n permissionPierDateString: {\n type: String,\n },\n\n // وضعیت درخواست کاربر\n status: {\n type: Number,\n enum: Object.values(REQUEST_STATUSES),\n default: REQUEST_STATUSES.IN_PROGRESS,\n },\n\n // اظهارات کوتاژ کاربر تایید شده است یا نه\n cottageVerified: {\n type: Boolean,\n default: false,\n },\n verfiedAt: {\n type: Date,\n required: false,\n },\n cottages: [\n // کوتاژهای تایید شده توسط سرویس استعلام گمرک\n {\n type: mongoose.Types.ObjectId,\n ref: 'cottage',\n required: false,\n },\n ],\n\n // فیلدی برای کانتینر خالی\n emptyContainer: {\n type: Boolean,\n },\n\n // اگر کالا خطرناک باشد \n unNumber: {\n type: String,\n },\n\n // اگر کالا خطرناک باشد\n casNumber: {\n type: String,\n },\n process: {\n // شروع فرآیند\n type: mongoose.SchemaTypes.ObjectId,\n ref: 'process',\n },\n commodityList: [\n // لیست اقلام\n {\n type: mongoose.SchemaTypes.ObjectId,\n ref: 'equipements',\n required: false,\n },\n ],\n },\n { timestamps: true }\n);\n\nconst Request = mongoose.model('request', requestSchema);\n\nmodule.exports = {\n Request,\n REQUEST_STATUSES,\n REQUEST_PERMISSIONS_STATUSES,\n TERMINAL_OPTIONS,\n TRAFFIC_TYPES,\n OPERATION_TYPES,\n};\n\nمدل مربوط به شماره پلاک درخواستها که کاربر اطلاعات راننده را وارد میکند.\nconst mongoose = require('mongoose');\nconst { TRAFFIC_TYPES } = require('./request.model');\n\n// وضعیت فعلی پلاک که در چه مرحلهای است\nconst PLATE_STATES = {\n OUT_PORT: 0,\n IN_PORT: 1,\n CLOSED: 2,\n};\n\n// پلاک مجوز حرکت دارد یا ندارد\nconst PLATE_PERMISSIONS = {\n NOT_HAS: 0,\n HAS: 1,\n PENDING: 2,\n};\n\n// یگان حفاظت مجوز ورود و خروج پلاک را بصورت اتوماتیک توسط دوربین پلاکخوان ثبت کرده یا بصورت دستی\nconst GUARD_REGISTRATION_TYPES = {\n AUTO: 0,\n MANUAL: 1,\n};\n\n// مدل پلاک\nconst platesSchema = new mongoose.Schema(\n {\n // شماره پلاک\n plate: {\n type: String,\n trim: true,\n },\n //مجوز ورود به بندر که هم یگان حفاظت برای چند ترددی و شهری صادر می کند و هم پایانه کامیونی\n permission: {\n type: Number,\n enum: Object.values(PLATE_PERMISSIONS),\n },\n\n // مجوز یگان حفاظت\n permissionGuard: {\n type: Number,\n },\n permissionGuardDate: {\n type: Date,\n },\n status: {\n type: Number,\n },\n\n // نوع ترددی که توسط ادمین ثبت شده است\n traffic: {\n type: Number,\n enum: Object.values(TRAFFIC_TYPES),\n },\n\n // زمان ورود ناوگان حمل به درون بندر\n entranceTime: [\n {\n type: Date,\n },\n ],\n entranceTimeString: [\n {\n type: String,\n },\n ],\n\n // زمان خروج ناوگان حمل از بندر\n exitTime: [\n {\n type: Date,\n },\n ],\n exitTimeString: [\n {\n type: String,\n },\n ],\n\n // مجوز پایانه راهداری\n delfardTerminalTime: {\n type: Date,\n },\n delfardTerminalTimeString: {\n type: String,\n },\n\n // زمان مجوز گرفتن از پایانه کامیونی\n truckTerminalTime: {\n type: Date,\n },\n truckTerminalTimeString: {\n type: String,\n },\n\n // تخلف\n violationType: {\n type: String,\n },\n violationComment: {\n type: String,\n },\n\n // حساسیت کالایی که حمل میکند\n dangers: [\n {\n type: mongoose.SchemaTypes.ObjectId,\n ref: 'dangerType',\n },\n ],\n date: {\n type: Date,\n },\n dateString: {\n type: String,\n },\n\n // اگر درخواست از نوع کانتینری باشد شمارههای کانتینر هم باید وارد شود\n containerNumbers: [\n {\n type: String,\n },\n ],\n\n closeDate: {\n type: Date,\n },\n\n // اسم راننده\n driverName: {\n type: String,\n },\n\n // شماره پاسپورت برای خارجیها و کد ملی برای داخلیها\n driverPersonalCode: {\n type: String,\n },\n\n // شماره موبایل راننده\n driverMobile: {\n type: String,\n },\n\n // ملیت راننده\n driverNationality: {\n type: String,\n },\n\n // نوع ناوگان حمل\n truckType: {\n type: mongoose.SchemaTypes.ObjectId,\n ref: 'trucks',\n },\n\n // کدی که اگر نوع ناوگان از نوع چادری یا یخچالی باشد\n TYnumber: {\n type: String,\n },\n\n // درخواست کنسل شده است یا نه\n isCancel: {\n type: Boolean,\n },\n bijakType: {\n type: String,\n },\n bijakNumber: {\n type: Number,\n },\n bijakTruckScaleNumber: {\n type: String,\n },\n bijakUser: {\n type: String,\n },\n bijakGCOMS: {\n type: Array,\n },\n\n // درخواست برای بستن \n requestForClose: {\n type: Boolean,\n },\n requestForCloseFullName: {\n type: String,\n },\n\n // نوع پلاک که ایرانی خارجی و منطقه آزاد باشد\n plateOption: {\n type: String,\n },\n plateState: {\n type: Number,\n enum: Object.values(PLATE_STATES),\n default: PLATE_STATES.OUT_PORT,\n },\n\n // نوع ورود پلاک به بندر\n entranceGuardRegistrationType: {\n type: Number,\n enum: Object.values(GUARD_REGISTRATION_TYPES),\n },\n\n // نوع خروج پلاک از بندر\n exitGuardRegistrationType: {\n type: Number,\n enum: Object.values(GUARD_REGISTRATION_TYPES),\n },\n // transportation\n\n // شرکت حمل اگر درخواست شهری ثبت شود\n transportationCompany: {\n type: mongoose.SchemaTypes.ObjectId,\n ref: 'terminals',\n required: false,\n },\n },\n { timestamps: true }\n);\n\nconst Plate = mongoose.model('plates', platesSchema);\n\nmodule.exports = { Plate, PLATE_STATES, PLATE_PERMISSIONS };",
"crumbs": [
"مستندات",
"مدلها"
]
}
]