Merge branch 'development_sultan' into 'main'

merge request

See merge request mirza.shafique/mohem_flutter_app!23
merge-requests/131/head
Sikander Saleem 3 years ago
commit 1c22905fcc

@ -0,0 +1,5 @@
{
"cSpell.words": [
"MPLOYEEIMAGE"
]
}

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="19.914" height="15.524" viewBox="0 0 19.914 15.524">
<g id="contact-details" transform="translate(0 -40.4)">
<g id="Group_7494" data-name="Group 7494" transform="translate(0 40.4)">
<rect id="Rectangle_17431" data-name="Rectangle 17431" width="1.676" height="1.677" transform="translate(3.789 9.359)" fill="#2bb8a6"/>
<path id="Path_4578" data-name="Path 4578" d="M70.584,123.011a.838.838,0,1,1-.838.838A.838.838,0,0,1,70.584,123.011Z" transform="translate(-65.957 -118.523)" fill="#2bb8a6"/>
<path id="Path_4579" data-name="Path 4579" d="M19.2,40.4H.719A.719.719,0,0,0,0,41.118V55.206a.719.719,0,0,0,.719.718H19.2a.718.718,0,0,0,.718-.718V41.119A.719.719,0,0,0,19.2,40.4ZM6.9,52.154a.718.718,0,0,1-.719.718H3.071a.718.718,0,0,1-.718-.718V49.041a.718.718,0,0,1,.718-.718H6.185a.718.718,0,0,1,.719.718v3.114ZM4.628,48A2.276,2.276,0,1,1,6.9,45.727,2.278,2.278,0,0,1,4.628,48Zm12.216,4.431H10A.718.718,0,0,1,10,51h6.844a.718.718,0,1,1,0,1.437Zm0-2.4H10A.719.719,0,0,1,10,48.6h6.844a.719.719,0,0,1,0,1.437Zm0-2.4H10a.719.719,0,0,1,0-1.437h6.844a.719.719,0,0,1,0,1.437Zm0-2.4H10a.719.719,0,0,1,0-1.437h6.844a.719.719,0,0,1,0,1.437Z" transform="translate(0 -40.4)" fill="#2bb8a6"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="15.083" height="20.111" viewBox="0 0 15.083 20.111">
<g id="Pin" transform="translate(-8)">
<path id="Path_4580" data-name="Path 4580" d="M15.542,0A7.552,7.552,0,0,0,8,7.542c0,5.414,7.026,12.2,7.325,12.481a.311.311,0,0,0,.434,0c.3-.286,7.325-7.067,7.325-12.481A7.552,7.552,0,0,0,15.542,0Zm0,11A3.457,3.457,0,1,1,19,7.542,3.457,3.457,0,0,1,15.542,11Z" fill="#2bb8a6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 435 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="17.224" height="16.16" viewBox="0 0 17.224 16.16">
<path id="family_3_" data-name="family (3)" d="M7.976,15.087v.831a2.518,2.518,0,0,1-2.515,2.515H2.214a.287.287,0,0,1-.287-.287V16.626A1.828,1.828,0,0,1,3.753,14.8H7.688A.287.287,0,0,1,7.976,15.087Zm-2.515,3.92c-2.147,0-2.919.007-3.237,0a.287.287,0,0,0-.3.287v.533a2.489,2.489,0,1,0,4.979-.02v-.713a.287.287,0,0,0-.383-.271A3.073,3.073,0,0,1,5.461,19.008Zm3.975,9.87a3.24,3.24,0,0,1-1.629,0,.144.144,0,0,0-.148.229,1.242,1.242,0,0,0,1.925-.006A.143.143,0,0,0,9.436,28.878Zm1.259-.217h-.059a.284.284,0,0,0-.268.2,1.826,1.826,0,0,1-3.319.377,1.9,1.9,0,0,1-.174-.376.288.288,0,0,0-.272-.2H6.528A1.724,1.724,0,0,0,4.8,30.385v.287a.287.287,0,0,0,.287.287h7.041a.287.287,0,0,0,.287-.287v-.287A1.724,1.724,0,0,0,10.7,28.661ZM1.93,27.605H.287A.287.287,0,0,0,0,27.893v2.78a.287.287,0,0,0,.287.287H1.93a.287.287,0,0,0,.287-.287v-2.78A.287.287,0,0,0,1.93,27.605Zm4.8-4.484a.287.287,0,0,0-.152-.522H6.491a.237.237,0,0,0-.223.154,1.949,1.949,0,0,1-1.792,1.294,1.975,1.975,0,0,1-1.825-1.33.174.174,0,0,0-.163-.117A2.489,2.489,0,0,0,0,25.087v1.656a.287.287,0,0,0,.287.287H1.93a.287.287,0,0,0,.287-.287v-.12a.293.293,0,0,1,.268-.3.287.287,0,0,1,.306.287v4.06a.287.287,0,0,0,.287.287h.862a.287.287,0,0,0,.287-.292c0-.074,0-.163,0-.282A2.3,2.3,0,0,1,5.9,28.174a.288.288,0,0,0,.148-.454,3.239,3.239,0,0,1,.68-4.6Zm8.007-.524a.234.234,0,0,0-.222.161A1.847,1.847,0,0,1,12.8,24.036a1.928,1.928,0,0,1-1.731-1.292.232.232,0,0,0-.216-.146c-.064,0-.131,0-.2,0a.288.288,0,0,0-.156.523,3.239,3.239,0,0,1,.678,4.6.288.288,0,0,0,.148.454,2.3,2.3,0,0,1,1.67,2.212c0,.119,0,.208,0,.282a.287.287,0,0,0,.287.292h.862a.287.287,0,0,0,.287-.287v-4.06a.287.287,0,0,1,.306-.287.293.293,0,0,1,.268.3v.12a.287.287,0,0,0,.287.287h1.642a.287.287,0,0,0,.287-.287V25.087A2.489,2.489,0,0,0,14.734,22.6Zm.272,5.295v2.78a.287.287,0,0,0,.287.287h1.642a.287.287,0,0,0,.287-.287v-2.78a.287.287,0,0,0-.287-.287H15.294A.287.287,0,0,0,15.007,27.893ZM12.857,14.816A3.583,3.583,0,0,0,9.243,18.4v3.564a.288.288,0,0,0,.392.267,3.056,3.056,0,0,1,.474-.139.288.288,0,0,0,.173-.455,3.1,3.1,0,0,1-.6-1.84V18.683a.862.862,0,0,1,.873-.862,10.523,10.523,0,0,0,3.477-.542,1.353,1.353,0,0,1,1.784,1.281v1.253a3.076,3.076,0,0,1-.6,1.825.287.287,0,0,0,.166.453,3.036,3.036,0,0,1,.617.2.288.288,0,0,0,.408-.261V18.441A3.609,3.609,0,0,0,12.857,14.816ZM8.612,23.092a2.659,2.659,0,1,0,2.659,2.659,2.662,2.662,0,0,0-2.659-2.659ZM12.06,22.8a.144.144,0,0,0-.137.239,1.156,1.156,0,0,0,1.819-.052.144.144,0,0,0-.152-.229A3.085,3.085,0,0,1,12.06,22.8Zm2.151-4.979a11.083,11.083,0,0,1-3.667.572.287.287,0,0,0-.291.287v1.109a2.492,2.492,0,1,0,4.984.02V18.559A.778.778,0,0,0,14.211,17.823ZM3.638,22.787a.144.144,0,0,0-.143.236,1.292,1.292,0,0,0,1.991-.044.144.144,0,0,0-.152-.23A3.069,3.069,0,0,1,3.638,22.787Z" transform="translate(0 -14.8)" fill="#2bb8a6"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="17.232" height="19.606" viewBox="0 0 17.232 19.606">
<g id="user_19_" data-name="user (19)" transform="translate(-31)">
<g id="Group_7233" data-name="Group 7233" transform="translate(34.446)">
<g id="Group_7232" data-name="Group 7232">
<path id="Path_16" data-name="Path 16" d="M126.17,0a5.17,5.17,0,1,0,5.169,5.17A5.175,5.175,0,0,0,126.17,0Z" transform="translate(-121)" fill="#2bb8a6"/>
</g>
</g>
<g id="Group_7235" data-name="Group 7235" transform="translate(31 11.488)">
<g id="Group_7234" data-name="Group 7234">
<path id="Path_17" data-name="Path 17" d="M46.048,302.228A7.369,7.369,0,0,0,40.765,300h-2.3a7.37,7.37,0,0,0-5.283,2.228A7.534,7.534,0,0,0,31,307.544a.574.574,0,0,0,.574.574H47.657a.574.574,0,0,0,.574-.574A7.534,7.534,0,0,0,46.048,302.228Z" transform="translate(-31 -300)" fill="#2bb8a6"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 936 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@ -52,6 +52,30 @@
"confirm": "تؤكد",
"passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح",
"itemsForSale": "سلع للبيع",
"attendanceDetails": "تفاصيل الحضور",
"order": "الطلبات",
"earlyOut": "الخروج مبكرا",
"shortage": "ساعات التقصير",
"excess": "Excess",
"lateIn": "القدوم المتاخر",
"approvedCheckOut": "وقت الخروج",
"approvedCheckIn": "وقت الدخول",
"actualCheckOut": "وقت الخروج",
"actualCheckIn": "وقت الدخول",
"present": "حضور",
"pres": "حضور",
"shiftTime": "وقت التناوب",
"absent": "غياب",
"attendance": "الحضور",
"scheduleDays": "ايام العمل",
"offDays": "ايام الراحه",
"nonAnalyzed": "لايوجد تحليل",
"shortageHour": "ساعات التقصير",
"stats": "الحاله",
"completed": "تم اكمال",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
"atLeastOneLowercase": "حرف صغير واحد على الأقل",
"atLeastOneUppercase": "حرف كبير واحد على الأقل",
@ -66,18 +90,172 @@
"whatsapp": "واتس اب",
"reject": "يرفض",
"approve": "يوافق",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"cancel": "إلغاء",
"requestedItems": "العناصر المطلوبة",
"request": "طلب",
"actions": "أجراءات",
"delegate": "مندوب",
"request_info": "اطلب معلومات",
"attachments": "المرفقات",
"info": "معلومات",
"employeeNumber": "رقم الموظف",
"assignmentNumber": "رقم الواجب",
"employeeName": "اسم الموظف",
"scheduleDate": "تاريخ الجدول الزمني",
"shiftType": "نوع التحول",
"shift": "يحول",
"breakText": "استراحة",
"actualSwipeStart": "بدء التمرير الفعلي",
"actualSwipeEnd": "التمرير الفعلي للنهاية",
"approvedSwipeStart": "وافق انتقاد البدء",
"approvedSwipeStartReason": "تمت الموافقة على سبب بدء التمرير السريع",
"approvedSwipeEnd": "تمت الموافقة على تمرير النهاية",
"approvedSwipeEndReason": "الموافقة على سبب إنهاء التمرير",
"from": "من",
"to": "ل",
"sent": "أرسلت",
"closed": "مغلق",
"id": "هوية شخصية",
"responder": "المستجيب",
"jobTitle": "عنوان وظيفي",
"grade": "درجة",
"jobCategory": "تصنيف الوظيفة",
"category": "فئة",
"employeeEmailAddress": "عنوان البريد الإلكتروني للموظف",
"payrollBranch": "فرع الرواتب",
"yourChangeHasBeenSavedSuccessfully": "تم حفظ التغيير الخاص بك بنجاح",
"code": "شفرة",
"unit": "وحدة",
"quantity": "كمية",
"dateRequired": "التاريخ مطلوب",
"lineStatus": "حالة الخط",
"statusDate": "تاريخ الحالة",
"transactionType": "نوع المعاملة",
"operatingUnit": "وحدة التشغيل",
"organizationCode": "كود المنظمة",
"organization": "منظمة",
"fromSubInventory": "من الجرد الفرعي",
"fromLocator": "من محدد المواقع",
"toSubInventory": "إلى الجرد الفرعي",
"toLocator": "إلى محدد المواقع",
"shipToLocator": "شحن إلى محدد المواقع",
"itemHistory": "تاريخ العنصر",
"mfg": "مبدع",
"lineType": "نوع الخط",
"price": "السعر",
"lineAmount": "مبلغ الخط",
"lineDiscount": "خصم الخط٪",
"needByDate": "القادمة إلى الأمام",
"promisedDate": "التسجيل وعد",
"deliverToLocation": "تسليم إلى الموقع",
"requisitionNumber": "رقم الطلب",
"requester": "مقدم الطلب",
"quotationAnalysis": "تحليل الاقتباس",
"subject": "موضوعات",
"description": "وصف",
"supplier": "المورد",
"site": "موقع",
"buyer": "مشتر",
"preparer": "معد",
"creationDate": "تاريخ الإنشاء",
"shipToLocation": "الشحن الى الموقع",
"quotationNumber": "رقم الإقتباس",
"quotationDate": "تاريخ الاقتباس",
"paymentTerms": "شروط الدفع",
"currency": "عملة",
"grossAmount": "المبلغ الإجمالي",
"discountAmount": "مقدار الخصم",
"customDuty": "الرسوم الجمركية",
"shipHandle": "مقبض السفينة",
"otherCharges": "رسوم أخرى",
"totalPOAmountWithVAT": "إجمالي مبلغ الشراء مع ضريبة القيمة المضافة",
"totalPOAmountInWords": "إجمالي مبلغ أمر الشراء بالكلمات",
"requestNumber": "رقم الطلب",
"uom": "UOM",
"operatingCode": "كود التشغيل",
"poNumber": "PO عدد",
"revision": "مراجعة",
"quantityOrdered": "الكمية المطلوبة",
"quantityReceived": "الكمية المستلمة",
"bonusQuantity": "كمية المكافأة",
"purchasePrice": "سعر الشراء",
"discountPer": "خصم ٪",
"balanceQuantity": "كمية التوازن",
"netPrice": "السعر الصافي",
"closureStatus": "حالة الإغلاق",
"quotationNetPrice": "صافي سعر الاقتباس",
"quotationUOM": "اقتباس UOM",
"quotationQty": "اقتباس الكمية",
"itemCode": "رمز الصنف",
"vendorName": "اسم البائع",
"quotationMFGPartNumber": "رقم الجزء MFG الاقتباس",
"quotationDeliveryDate": "تاريخ تسليم عرض الأسعار",
"quotationBonusQuantity": "كمية مكافأة الاقتباس",
"quotationLineTotal": "مجموع خط الاقتباس",
"rfqUOM": "RFQ UOM",
"rfqQty": "RFQ الكمية",
"rfqNumber": "رقم RFQ",
"human": "بشري",
"resources": "موارد",
"details": "تفاصيل",
"noDataAvailable": "لا تتوافر بيانات",
"productName": "اسم المنتج",
"productDescription": "وصف المنتج",
"unitPrice": "سعر الوحده",
"manufacturerName": "اسم المصنع",
"manufacturerPartName": "اسم جزء الشركة المصنعة",
"supplierName": "اسم المورد",
"supplierContact": "الاتصال بالمورد",
"chargeToPatient": "المسؤول عن المريض",
"justification": "التبرير",
"itemDescription": "وصف السلعة",
"groupCode": "كود المجموعة",
"primaryUOM": "UOM الابتدائية",
"subgroupDescription": "وصف المجموعة الفرعية",
"subgroupCode": "رمز المجموعة الفرعية",
"groupDescription": "وصف المجموعة",
"templateName": "اسم القالب",
"itemCreationStatus": "حالة إنشاء العنصر",
"standardizationApprovalStatus": "حالة الموافقة على التقييس",
"standardizationApprovalRejectionReason": "سبب رفض الموافقة على التقييس",
"analyzedBy": "تحليل بواسطة",
"approvedDate": "تاريخ الموافقة",
"itemType": "نوع العنصر",
"relatedTo": "متعلق ب",
"requestDate": "تاريخ الطلب",
"analyzedDate": "تاريخ التحليل",
"urgent": "العاجلة",
"requestDetails": "طلب تفاصيل",
"approvalLevel": "مستوى الموافقة",
"requesterDetails": "تفاصيل مقدم الطلب",
"myAttendance": "حضوري",
"workOnBreak": "العمل على استراحة",
"next": "التالي",
"completingYear": "نحن نقدر لك لاستكمال خدمة",
"year": "سنة",
"month": "شهر",
"day": "يوم",
"address" : "العنوان",
"phoneNumber": "رقم الجوال",
"businessGroup": "مجموعة العمل",
"Payroll": "الراتب",
"civilIdentityNumber": "رقم الهويه",
"dateOfBirth" : "تاريخ الميلاد",
"maritalStatus ": "الحالة الاجتماعية",
"fullName": "الأسم الكامل",
"remove": "حذف",
"profile": {
"reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
}
},
"profileCompletionPer": "استكمال الملف الشخصي",
"completeProfile": "الملف الشخصي الكامل",
"personalInformation": "معلومات شخصية",
"basicDetails": "تفاصيل أساسية",
"contactDetails": "بيانات التواصل",
"familyDetails": "تفاصيل عائلية"
},
"clicked": {
"zero": "You clicked {} times!",

@ -52,6 +52,27 @@
"confirm": "Confirm",
"passwordChangedSuccessfully": "Password changed successfully",
"itemsForSale": "Items for Sale",
"attendanceDetails": "Attendance Details",
"order": "order",
"earlyOut": "Early Out",
"shortage": "Shortage",
"excess": "Excess",
"lateIn": "Late In",
"approvedCheckOut": "Approved Check Out",
"approvedCheckIn": "Approved Check In",
"actualCheckOut": "Actual Check Out",
"actualCheckIn": "Actual Check In",
"present": "PRESENT 11",
"pres": "present",
"shiftTime": "Shift Time",
"absent": "ABSENT 10",
"attendance": "Attendance",
"scheduleDays": "Schedule\nDays",
"offDays": "Off\nDays",
"nonAnalyzed": "Non\nAnalyzed",
"shortageHour": "Shortage\nHour",
"stats": "Stats",
"completed": "Completed",
"doNotUseRecentPassword": "Do not use recent password",
"atLeastOneLowercase": "At least one lowercase",
"atLeastOneUppercase": "At least one uppercase",
@ -66,18 +87,176 @@
"whatsapp": "Whatsapp",
"reject": "Reject",
"approve": "Approve",
"cancel": "Cancel",
"requestedItems": "Requested Items",
"request": "Request",
"actions": "Actions",
"delegate": "Delegate",
"request_info": "Request Info",
"attachments": "Attachments",
"info": "Info.",
"employeeNumber": "Employee Number",
"assignmentNumber": "Assignment Number",
"employeeName": "Employee Name",
"scheduleDate": "Schedule Date",
"shiftType": "Shift Type",
"shift": "Shift",
"breakText": "Break",
"actualSwipeStart": "Actual Swipe Start",
"actualSwipeEnd": "Actual Swipe End",
"approvedSwipeStart": "Approved Swipe Start",
"approvedSwipeStartReason": "Approved Swipe Start Reason",
"approvedSwipeEnd": "Approved Swipe End",
"approvedSwipeEndReason": "Approved Swipe End Reason",
"from": "From",
"to": "To",
"sent": "Sent",
"closed": "Closed",
"id": "ID",
"responder": "Responder",
"jobTitle": "Job Title",
"grade": "Grade",
"jobCategory": "Job Category",
"category": "Category",
"employeeEmailAddress": "Employee Email Address",
"payrollBranch": "Payroll Branch",
"yourChangeHasBeenSavedSuccessfully": "Your change has been saved successfully",
"code": "Code",
"unit": "Unit",
"quantity": "Quantity",
"dateRequired": "Date Required",
"lineStatus": "Line Status",
"statusDate": "Status Date",
"transactionType": "Transaction Type",
"operatingUnit": "Operating Unit",
"organizationCode": "Organization Code",
"organization": "Organization",
"fromSubInventory": "From Sub Inventory",
"fromLocator": "From Locator",
"toSubInventory": "To Sub Inventory",
"toLocator": "To Locator",
"shipToLocator": "Ship To Locator",
"itemHistory": "Item History",
"mfg": "MFG",
"lineType": "Line Type",
"price": "Price",
"lineAmount": "Line Amount",
"lineDiscount": "Line Discount %",
"needByDate": "Need By Date",
"promisedDate": "Promised Date",
"deliverToLocation": "Deliver To Location",
"requisitionNumber": "Requisition Number",
"requester": "Requester",
"subject": "Subject",
"quotationAnalysis": "Quotation Analysis",
"description": "Description",
"supplier": "Supplier",
"site": "Site",
"buyer": "Buyer",
"preparer": "Preparer",
"creationDate": "Creation Date",
"shipToLocation": "Ship To Location",
"quotationNumber": "Quotation Number",
"quotationDate": "Quotation Date",
"paymentTerms": "Payment Terms",
"currency": "Currency",
"grossAmount": "Gross Amount",
"discountAmount": "Discount Amount",
"customDuty": "Custom Duty",
"shipHandle": "Ship Handle",
"otherCharges": "Other Charges",
"totalPOAmountWithVAT": "Total PO Amount With VAT",
"totalPOAmountInWords": "Total PO Amount In Words",
"requestNumber": "Request Number",
"uom": "UOM",
"operatingCode": "Operating Code",
"poNumber": "PO Number",
"revision": "Revision",
"quantityOrdered": "Quantity Ordered",
"quantityReceived": "Quantity Received",
"bonusQuantity": "Bonus Quantity",
"purchasePrice": "Purchase Price",
"discountPer": "Discount %",
"balanceQuantity": "Balance Quantity",
"netPrice": "Net Price",
"closureStatus": "Closure Status",
"quotationNetPrice": "Quotation Net Price",
"quotationUOM": "Quotation UOM",
"quotationQty": "Quotation Qty",
"itemCode": "item Code",
"vendorName": "Vendor Name",
"quotationMFGPartNumber": "Quotation MFG Part Number",
"quotationDeliveryDate": "Quotation Delivery Date",
"quotationBonusQuantity": "Quotation Bonus Quantity",
"quotationLineTotal": "Quotation Line Total",
"rfqUOM": "RFQ UOM",
"rfqQty": "RFQ Qty",
"rfqNumber": "RFQ Number",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"details": "Details",
"noDataAvailable": "No Data Available",
"productName": "Product Name",
"productDescription": "Product Description",
"unitPrice": "Unit Price",
"manufacturerName": "Manufacturer Name",
"manufacturerPartName": "Manufacturer Part Name",
"supplierName": "Supplier Name",
"supplierContact": "Supplier Contact",
"chargeToPatient": "Charge To Patient",
"justification": "Justification",
"itemDescription": "Item Description",
"groupCode": "Group Code",
"primaryUOM": "Primary UOM",
"subgroupDescription": "Subgroup Description",
"subgroupCode": "Subgroup Code",
"groupDescription": "Group Description",
"templateName": "Template Name",
"itemCreationStatus": "Item Creation Status",
"standardizationApprovalStatus": "Standardization Approval Status",
"standardizationApprovalRejectionReason": "Standardization Approval Rejection Reason",
"analyzedBy": "Analyzed By",
"approvedDate": "Approved Date",
"itemType": "Item Type",
"relatedTo": "Related To",
"requestDate": "Request Date",
"analyzedDate": "Analyzed Date",
"approvedCheckIn": "Approved Check In",
"urgent": "Urgent",
"requestDetails": "Request Details",
"approvalLevel": "Approval Level",
"requesterDetails": "Requester Details",
"myAttendance": "My Attendance",
"workOnBreak": "Work On Break",
"next": "Next",
"year": "Year",
"month": "Month",
"day": "Day",
"completingYear": "We appreciate you for completing the service of",
"address": "Address",
"phoneNumber": "Phone Number",
"businessGroup": "Business",
"Payroll": "Payroll",
"civilIdentityNumber": "Civil Identity Number",
"dateOfBirth": "Date of Birth",
"maritalStatus ": "Marital Status ",
"fullName": "Full Name",
"remove": "Remove",
"profile": {
"reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
}
},
"profileCompletionPer": "Profile Completion",
"completeProfile": "Complete Profile",
"personalInformation": "Personal Information",
"basicDetails": "Basic Details",
"contactDetails": "Contact Details",
"familyDetails": "Family Members"
},
"clicked": {
"zero": "You clicked {} times!",

@ -5,6 +5,7 @@ import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:http/http.dart';
import 'package:http/io_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/exceptions/api_exception.dart';
import '../main.dart';
@ -81,6 +82,9 @@ class ApiClient {
logger.i("res: " + response.body);
}
var jsonData = jsonDecode(response.body);
if (jsonData["IsAuthenticated"] != null) {
AppState().setIsAuthenticated = jsonData["IsAuthenticated"];
}
if (jsonData["ErrorMessage"] == null) {
return factoryConstructor(jsonData);
} else {
@ -237,4 +241,4 @@ class ApiClient {
}
Future<Response> _post(url, {Map<String, String>? headers, body, Encoding? encoding}) => _withClient((client) => client.post(url, headers: headers, body: body, encoding: encoding));
}
}

@ -0,0 +1,31 @@
import 'dart:async';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart';
import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart';
import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart';
import 'package:mohem_flutter_app/models/eit/get_eit_transaction_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
import 'api_client.dart';
class EITApiClient {
static final EITApiClient _instance = EITApiClient._internal();
EITApiClient._internal();
factory EITApiClient() => _instance;
Future<List<CollectionTransaction>?> getEITTransactions(String functionName) async {
String url = "${ApiConsts.erpRest}GET_EIT_TRANSACTIONS";
Map<String, dynamic> postParams = {'P_FUNCTION_NAME': functionName, "P_MENU_TYPE": "E", "P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
List<CollectionTransaction>? responseData = GET_EIT_Transactions_Model.fromJson(json['GetEITTransactionList'][0]).collectionTransaction;
return responseData;
}, url, postParams);
}
}

@ -79,7 +79,7 @@ class LoginApiClient {
Future<GenericResponseModel?> checkActivationCode(bool isDeviceNFC, String? mobileNumber, String activationCode, String? pUserName) async {
String url = "${ApiConsts.erpRest}CheckActivationCode";
Map<String, dynamic> postParams = {"isDeviceNFC": isDeviceNFC, "MobileNumber": mobileNumber, "activationCode": activationCode, "P_USER_NAME": pUserName};
Map<String, dynamic> postParams = {"IsDeviceNFC": isDeviceNFC, "MobileNumber": mobileNumber, "activationCode": activationCode, "P_USER_NAME": pUserName};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);

@ -0,0 +1,72 @@
import 'dart:async';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart';
import 'package:mohem_flutter_app/models/get_schedule_shifts_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'api_client.dart';
class MonthlyAttendanceApiClient {
static final MonthlyAttendanceApiClient _instance = MonthlyAttendanceApiClient._internal();
MonthlyAttendanceApiClient._internal();
factory MonthlyAttendanceApiClient() => _instance;
Future<GetTimeCardSummaryList?> getTimeCardSummary(String month, int year) async {
String url = "${ApiConsts.erpRest}GET_TIME_CARD_SUMMARY";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"SearchMonth": month,
"SearchYear": year,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return (responseData.getTimeCardSummaryList?.length ?? 0) > 0 ? responseData.getTimeCardSummaryList!.first : null;
}, url, postParams);
}
Future<List<GetDayHoursTypeDetailsList>> getDayHoursTypeDetails(String month, int year) async {
String url = "${ApiConsts.erpRest}GET_DAY_HOURS_TYPE_DETAILS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
"P_SELECTED_RESP_ID": -999,
"SearchMonth": month,
"SearchYear": year,
};
postParams.addAll(AppState().postParamsJson);
// postParams["DeviceToken"] = deviceToken;
// postParams["DeviceType"] = deviceType;
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
print("Response Data______");
print(responseData.getDayHoursTypeDetailsList!.length);
return responseData.getDayHoursTypeDetailsList ?? [];
}, url, postParams);
}
Future<GetScheduleShiftsDetailsList?> getScheduleShiftsDetails(int pRTPID) async {
String url = "${ApiConsts.erpRest}GET_SCHEDULE_SHIFTS_DETAILS";
Map<String, dynamic> postParams = {
"P_PAGE_LIMIT": 10,
"P_PAGE_NUM": 1,
"P_RTP_ID": pRTPID,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return (responseData.getScheduleShiftsDetailsList?.length ?? 0) > 0 ? responseData.getScheduleShiftsDetailsList!.first : null;
}, url, postParams);
}
}

@ -0,0 +1,57 @@
import 'dart:async';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_eit_transaction_list_model.dart';
import 'api_client.dart';
class MyAttendanceApiClient {
static final MyAttendanceApiClient _instance = MyAttendanceApiClient._internal();
MyAttendanceApiClient._internal();
factory MyAttendanceApiClient() => _instance;
Future<List<GetEITTransactionList>?> getEitTransaction(String pFunctionName) async {
String url = "${ApiConsts.erpRest}GET_EIT_TRANSACTIONS";
Map<String, dynamic> postParams = {"P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1, "P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_FUNCTION_NAME": pFunctionName};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getEITTransactionList ?? [];
}, url, postParams);
}
Future<GenericResponseModel> getEitDffStructure(String pFunctionName) async {
String url = "${ApiConsts.erpRest}GET_EIT_DFF_STRUCTURE";
Map<String, dynamic> postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_FUNCTION_NAME": pFunctionName};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<ESERVICESVS> getValueSetValues(String pSegmentName, String pDescFlexContextCode, String pDescFlexName, List<Map<String, dynamic>> list) async {
String url = "${ApiConsts.erpRest}GET_VALUE_SET_VALUES";
Map<String, dynamic> postParams = {
"P_SELECTED_RESP_ID": -999,
"P_MENU_TYPE": "E",
"P_PAGE_LIMIT": 1000,
"P_PAGE_NUM": 1,
"P_PARENT_VALUE": null,
"P_SEGMENT_NAME": pSegmentName,
"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode,
"P_DESC_FLEX_NAME": pDescFlexName,
"GetValueSetValuesTBL": list,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getValueSetValuesList!.first;
}, url, postParams);
}
}

@ -0,0 +1,135 @@
import 'dart:async';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'api_client.dart';
class ProfileApiClient {
static final ProfileApiClient _instance = ProfileApiClient._internal();
ProfileApiClient._internal();
factory ProfileApiClient() => _instance;
Future<List<GetEmployeeContactsList>> getEmployeeContacts() async {
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_CONTACTS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getEmployeeContactsList ?? [];
}, url, postParams);
}
Future<List<GetEmployeeBasicDetailsList>> getEmployeeBasicDetails() async {
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_BASIC_DETAILS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getEmployeeBasicDetailsList ?? [];
}, url, postParams);
}
Future<List<GetEmployeePhonesList>> getEmployeePhones() async {
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_PHONES";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getEmployeePhonesList ?? [];
}, url, postParams);
}
Future<List<GetEmployeeAddressList>> getEmployeeAddress() async {
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_ADDRESS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getEmployeeAddressList ?? [];
}, url, postParams);
}
Future updateEmpImage(img) async {
String url = "${ApiConsts.erpRest}UPDATE_EMPLOYEE_IMAGE";
Map<String, dynamic> postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_IMAGE": img};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
// GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return json['UpdateEmployeeImageList'];
}, url, postParams);
}
Future<GenericResponseModel> getDffStructure(String pFunctionName, String uRL, String requestType) async {
String url = ApiConsts.erpRest + uRL;
Map<String, dynamic> postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_FUNCTION_NAME": pFunctionName, "P_REQUEST_TYPE": requestType};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<GenericResponseModel> getColStructure(String pFunctionName, String uRL, String requestType) async {
String url = ApiConsts.erpRest + uRL;
Map<String, dynamic> postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_FUNCTION_NAME": pFunctionName, "P_REQUEST_TYPE": requestType};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<ESERVICESVS> getValueSetValues(String pSegmentName, String pDescFlexContextCode, String pDescFlexName, List<Map<String, dynamic>> list) async {
String url = "${ApiConsts.erpRest}GET_VALUE_SET_VALUES";
Map<String, dynamic> postParams = {
"P_SELECTED_RESP_ID": -999,
"P_MENU_TYPE": "E",
"P_PAGE_LIMIT": 1000,
"P_PAGE_NUM": 1,
"P_PARENT_VALUE": null,
"P_SEGMENT_NAME": pSegmentName,
"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode,
"P_DESC_FLEX_NAME": pDescFlexName,
"GetValueSetValuesTBL": list,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getValueSetValuesList!.first;
}, url, postParams);
}
Future<List<GetPhoneNumberTypesModel>> getPhoneNumberTypes() async {
String url = "${ApiConsts.erpRest}GET_OBJECT_VALUES";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getObjectValuesList ?? [];
}, url, postParams);
}
}

@ -5,6 +5,21 @@ import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
import 'package:mohem_flutter_app/models/get_item_creation_ntf_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_mo_Item_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_mo_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_notification_buttons_list_model.dart';
import 'package:mohem_flutter_app/models/get_po_Item_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/itg_request_model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
class WorkListApiClient {
@ -29,7 +44,7 @@ class WorkListApiClient {
}, url, postParams);
}
Future<ItgFormsModel?> GetITGTaskCountRequestType() async {
Future<ItgFormsModel?> getITGTaskCountRequestType() async {
String url = "${ApiConsts.cocRest}ITGGetTaskCountRequestType";
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
@ -38,4 +53,246 @@ class WorkListApiClient {
return responseData;
}, url, postParams);
}
Future<GenericResponseModel> getSubordinatesLeaves(String fromDate, String toDate) async {
String url = "${ApiConsts.erpRest}GET_SUBORDINATES_LEAVES";
Map<String, dynamic> postParams = {"P_DATE_FROM": "/Date(1639861200000+0300)/", "P_DATE_TO": "/Date(1640120400000+0300)/"};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<List<GetAttachementList>> getAttachments(int pNotificationID) async {
String url = "${ApiConsts.erpRest}GET_ATTACHMENTS";
Map<String, dynamic> postParams = {"P_NOTIFICATION_ID": pNotificationID};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getAttachementList ?? [];
}, url, postParams);
}
Future<List<GetActionHistoryList>> getActionHistory(int pNotificationID) async {
String url = "${ApiConsts.erpRest}GET_ACTION_HISTORY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getActionHistoryList ?? [];
}, url, postParams);
}
Future<List<GetNotificationButtonsList>> getNotificationButtons(int pNotificationID) async {
String url = "${ApiConsts.erpRest}GET_NOTIFICATION_BUTTONS";
Map<String, dynamic> postParams = {"P_NOTIFICATION_ID": pNotificationID};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getNotificationButtonsList ?? [];
}, url, postParams);
}
Future<List<NotificationGetRespondAttributesList>> notificationGetRespondAttributes(int pNotificationID) async {
String url = "${ApiConsts.erpRest}NOTIFICATION_GET_RESPOND_ATTRIBUTES";
Map<String, dynamic> postParams = {"P_NOTIFICATION_ID": pNotificationID};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.notificationGetRespondAttributesList ?? [];
}, url, postParams);
}
Future<GenericResponseModel> getBasicDetNTFBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_BASIC_DET_NTF_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<MemberInformationListModel> getUserInformation(int pSelectedResopID, String selectedEmployeeNumber) async {
String url = "${ApiConsts.erpRest}Get_UserInformation";
Map<String, dynamic> postParams = {
"P_SELECTED_RESP_ID": pSelectedResopID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
postParams["P_SELECTED_EMPLOYEE_NUMBER"] = selectedEmployeeNumber;
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.memberInformationList![0];
}, url, postParams);
}
Future<List<GetStampMsNotificationBodyList>> getStampMsNotificationBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_STAMP_MS_NOTIFICATION_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getStampMsNotificationBodyList ?? [];
}, url, postParams);
}
Future<List<GetStampNsNotificationBodyList>> getStampNsNotificationBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_STAMP_NS_NOTIFICATION_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getStampNsNotificationBodyList ?? [];
}, url, postParams);
}
Future<List<GetAbsenceCollectionNotificationBodyList>> getAbsenceNotificationBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_ABSENCE_NOTIFICATION_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getAbsenceCollectionNotificationBodyList ?? [];
}, url, postParams);
}
Future<GenericResponseModel> postNotificationActions(Map<String, dynamic> postParams) async {
String url = "${ApiConsts.erpRest}NOTIFICATION_ACTIONS";
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<List<GetMoNotificationBodyList>> getMoNotificationBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_MO_NOTIFICATION_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getMoNotificationBodyList ?? [];
}, url, postParams);
}
Future<GetPoNotificationBodyList?> getPoNotificationBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_PO_NOTIFICATION_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getPoNotificationBodyList;
}, url, postParams);
}
Future<List<GetMoItemHistoryList>> getMoItemHistory(int pItemID, int pOrgID) async {
String url = "${ApiConsts.erpRest}GET_MO_ITEM_HISTORY";
Map<String, dynamic> postParams = {
"P_ITEM_ID": pItemID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
"P_ORG_ID": pOrgID,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getMoItemHistoryList ?? [];
}, url, postParams);
}
Future<List<GetPoItemHistoryList>> getPoItemHistory(int pItemID) async {
String url = "${ApiConsts.erpRest}GET_PO_ITEM_HISTORY";
Map<String, dynamic> postParams = {
"P_ITEM_ID": pItemID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getPoItemHistoryList ?? [];
}, url, postParams);
}
Future<List<GetQuotationAnalysisList>> getQuotationAnalysis(int pItemID, int pPoHeaderId) async {
String url = "${ApiConsts.erpRest}GET_QUOTATION_ANALYSIS";
Map<String, dynamic> postParams = {
"P_ITEM_ID": pItemID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
"P_PO_HEADER_ID": pPoHeaderId,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getQuotationAnalysisList ?? [];
}, url, postParams);
}
Future<GetItemCreationNtfBodyList?> getItemCreationNtfBody(int pNotificationID, int pTransactionID) async {
String url = "${ApiConsts.erpRest}GET_ITEM_CREATION_NTF_BODY";
Map<String, dynamic> postParams = {
"P_NOTIFICATION_ID": pNotificationID,
"P_TRANSACTION_ID": pTransactionID,
"P_PAGE_LIMIT": 100,
"P_PAGE_NUM": 1,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData.getItemCreationNtfBodyList;
}, url, postParams);
}
Future<ITGRequest?> getITGFormDetails(String requestType, int taskId, int itemId, String employeeNumber) async {
String url = "${ApiConsts.cocRest}ITGGetFormDetials";
Map<String, dynamic> postParams = {
"RequestType": requestType,
"TaskID": taskId,
"ItemID": itemId,
"EmployeeNumber": "15153",
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
ItgFormsModel responseData = ItgFormsModel.fromJson(json);
return responseData.itgRequest;
}, url, postParams);
}
}

@ -1,8 +1,10 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/request_detail_model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
import 'package:mohem_flutter_app/models/post_params_model.dart';
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
class AppState {
static final AppState _instance = AppState._internal();
@ -11,6 +13,10 @@ class AppState {
factory AppState() => _instance;
bool isAuthenticated = false;
set setIsAuthenticated(v) => isAuthenticated = v;
bool isLogged = false;
set setLogged(v) => isLogged = v;
@ -63,4 +69,20 @@ class AppState {
List<PrivilegeListModel>? get privilegeListModel => _privilegeListModel;
set setPrivilegeListModel(List<PrivilegeListModel>? _privilegeListModel) => this._privilegeListModel = _privilegeListModel;
List<WorkListResponseModel>? workList;
set setWorkList(List<WorkListResponseModel>? _workList) => workList = _workList;
int? workListIndex;
set setWorkListIndex(int? _workListIndex) => workListIndex = _workListIndex;
List<RequestDetails>? requestAllList;
set setRequestAllList(List<RequestDetails>? _requestAllList) => requestAllList = _requestAllList;
int? itgWorkListIndex;
set setItgWorkListIndex(int? _itgWorkListIndex) => itgWorkListIndex = _itgWorkListIndex;
}

@ -6,10 +6,11 @@ class MyColors {
static const Color normalTextColor = Color(0xff5A5A5A);
static const Color lightTextColor = Color(0xffBFBFBF);
static const Color gradiantStartColor = Color(0xff33c0a5);
static const Color gradiantEndColor = Color(0xff259db7 );
static const Color gradiantEndColor = Color(0xff259db7);
static const Color textMixColor = Color(0xff2BB8A6);
static const Color backgroundColor = Color(0xffF8F8F8);
static const Color grey57Color = Color(0xff575757);
static const Color grey67Color = Color(0xff676767);
static const Color grey77Color = Color(0xff777777);
static const Color grey70Color = Color(0xff707070);
static const Color greyACColor = Color(0xffACACAC);
@ -26,4 +27,15 @@ class MyColors {
static const Color white = Color(0xffffffff);
static const Color green = Color(0xffffffff);
static const Color borderColor = Color(0xffE8E8E8);
// static const Color grey67Color = Color(0xff676767);
static const Color whiteColor = Color(0xFFEEEEEE);
static const Color greenColor = Color(0xff1FA269);
static const Color lightGreenColor = Color(0xff2AB2AB);
static const Color darkGreyColor = Color(0xff464646);
static const Color greyA5Color = Color(0xffA5A5A5);
static const Color blackColor = Color(0xff000014);
static const Color grey3AColor = Color(0xff2E303A);
static const Color darkColor = Color(0xff000015);
static const Color lightGrayColor = Color(0xff808080);
static const Color DarkRedColor = Color(0xffD02127);
}

@ -1,7 +1,7 @@
class ApiConsts {
//static String baseUrl = "http://10.200.204.20:2801/"; // Local server
static String baseUrl = "https://uat.hmgwebservices.com"; // UAT server
// static String baseUrl = "https://hmgwebservices.com"; // Live server
//static String baseUrl = "https://hmgwebservices.com"; // Live server
static String baseUrlServices = baseUrl + "/Services/"; // server
// static String baseUrlServices = "https://api.cssynapses.com/tangheem/"; // Live server
static String utilitiesRest = baseUrlServices + "Utilities.svc/REST/";

@ -23,6 +23,10 @@ class DateUtil {
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(date);
}
static DateTime convertSimpleStringDateToDateddMMyyyy(String date) {
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(date);
}
static DateTime convertStringToDateNoTimeZone(String date) {
// /Date(1585774800000+0300)/
if (date != null) {

@ -1,5 +1,10 @@
import 'dart:convert';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/config/routes.dart';
// import 'package:fluttertoast/fluttertoast.dart';
import 'package:mohem_flutter_app/exceptions/api_exception.dart';
@ -68,7 +73,7 @@ class Utils {
return await prefs.setString(key, value);
}
static void handleException(dynamic exception, Function(String)? onErrorMessage) {
static void handleException(dynamic exception, cxt, Function(String)? onErrorMessage) {
String errorMessage;
if (exception is APIException) {
if (exception.message == APIException.UNAUTHORIZED) {
@ -82,7 +87,19 @@ class Utils {
if (onErrorMessage != null) {
onErrorMessage(errorMessage);
} else {
showToast(errorMessage);
if (!AppState().isAuthenticated) {
showDialog(
context: cxt,
builder: (cxt) => ConfirmDialog(
message: errorMessage,
onTap: () {
Navigator.pushNamedAndRemoveUntil(cxt, AppRoutes.login, (Route<dynamic> route) => false);
},
),
);
} else {
showToast(errorMessage);
}
}
}
@ -94,4 +111,21 @@ class Utils {
),
);
}
static getPostBytes(img) {
try {
var b64 = img.replaceFirst('data:image/png;base64,', '');
if (img != null && Utils.isBase64(b64)) return Utils.dataFromBase64String(b64);
} catch (e) {}
return null;
}
static bool isBase64(String str) {
RegExp _base64 = RegExp(r'^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$');
return _base64.hasMatch(str);
}
static Uint8List dataFromBase64String(String base64String) {
return base64Decode(base64String);
}
}

@ -6,8 +6,26 @@ import 'package:mohem_flutter_app/ui/login/login_screen.dart';
import 'package:mohem_flutter_app/ui/login/new_password_screen.dart';
import 'package:mohem_flutter_app/ui/login/verify_last_login_screen.dart';
import 'package:mohem_flutter_app/ui/login/verify_login_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/missing_swipe_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/my_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart';
// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
import 'package:mohem_flutter_app/ui/screens/profile/profile_screen.dart';
import 'package:mohem_flutter_app/ui/screens/submenu_screen.dart';
import 'package:mohem_flutter_app/ui/profile/family_members.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/item_history_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/itg_detail_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/worklist_detail_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/work_list_screen.dart';
import 'package:mohem_flutter_app/ui/bottom_sheets/attendence_details_bottom_sheet.dart';
import 'package:mohem_flutter_app/ui/attendance/monthly_attendance.dart';
import 'package:mohem_flutter_app/ui/profile/profile.dart';
import 'package:mohem_flutter_app/ui/profile/personal_info.dart';
import 'package:mohem_flutter_app/ui/profile/basic_details.dart';
import 'package:mohem_flutter_app/ui/profile/contact_details.dart';
import 'package:mohem_flutter_app/ui/profile/family_members.dart';
class AppRoutes {
static const String splash = "/splash";
@ -21,23 +39,76 @@ class AppRoutes {
static const String loginVerification = "/loginVerification";
static const String dashboard = "/dashboard";
static const String todayAttendance = "/todayAttendance";
static const String subMenuScreen = "/submenuScreen";
static const String addEitScreen = "/addeitScreen";
static const String initialRoute = login;
//Work List
static const String workList = "/workList";
static const String missingSwipe = "/missingSwipe";
static const String workListDetail = "/workListDetail";
static const String itgDetail = "/itgDetail";
static const String itemHistory = "/itemHistory";
static const String myAttendance = "/myAttendance";
static const String dynamicScreen = "/dynamicScreen";
static const String addDynamicInput = "/addDynamicInput";
//profile
static const String addDynamicInputProfile = 'addDynamicInputProfile';
//Attendance
static const String attendance = "/attendance";
static const String monthlyAttendance = "/monthlyAttendance";
//Bottom Sheet
static const String attendanceDetailsBottomSheet = "/attendanceDetailsBottomSheet";
//Profile
static const String profile = "/profile";
static const String personalInfo = "/personalInfo";
static const String basicDetails = "/basicDetails";
static const String contactDetails = "/contactDetails";
static const String familyMembers = "/familyMembers";
static final Map<String, WidgetBuilder> routes = {
login: (context) => LoginScreen(),
verifyLogin: (context) => VerifyLoginScreen(),
verifyLastLogin: (context) => VerifyLastLoginScreen(),
dashboard: (context) => DashboardScreen(),
subMenuScreen: (context) => SubMenuScreen(),
newPassword: (context) => NewPasswordScreen(),
forgotPassword: (context) => ForgotPasswordScreen(),
todayAttendance: (context) => TodayAttendanceScreen(),
//eit
addEitScreen: (context) => AddEITScreen(),
//Work List
workList: (context) => WorkListScreen(),
missingSwipe: (context) => MissingSwipeScreen(),
workListDetail: (context) => WorkListDetailScreen(),
itgDetail: (context) => ItgDetailScreen(),
itemHistory: (context) => ItemHistoryScreen(),
myAttendance: (context) => MyAttendanceScreen(),
// workFromHome: (context) => WorkFromHomeScreen(),
// addWorkFromHome: (context) => AddWorkFromHomeScreen(),
profile: (context) => ProfileScreen(),
//Attendance
monthlyAttendance: (context) => MonthlyAttendance(),
//Bottom Sheet
attendanceDetailsBottomSheet: (context) => AttendenceDetailsBottomSheet(),
//Profile
//profile: (context) => Profile(),
//profile: (context) => Profile(),
personalInfo: (context) => PesonalInfo(),
basicDetails: (context) => BasicDetails(),
contactDetails: (context) => ContactDetails(),
familyMembers: (context) => FamilyMembers(),
dynamicScreen: (context) => DynamicListViewScreen(),
addDynamicInput: (context) => DynamicInputScreen(),
addDynamicInputProfile: (context) => DynamicInputScreenProfile(),
};
}

@ -226,3 +226,4 @@ class OtpDialog {
// }
}
}

@ -4,4 +4,6 @@ extension IntExtensions on int {
Widget get height => SizedBox(height: toDouble());
Widget get width => SizedBox(width: toDouble());
Widget get makeItSquare => SizedBox(width: toDouble(), height: toDouble());
}

@ -63,6 +63,10 @@ extension EmailValidator on String {
this,
style: TextStyle(color: color ?? MyColors.darkTextColor, fontSize: 17, letterSpacing: -0.68, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
);
Widget toText20({Color? color, bool isBold = false}) => Text(
this,
style: TextStyle(fontSize: 20, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4),
);
Widget toText22({Color? color, bool isBold = false}) => Text(
this,
@ -79,6 +83,11 @@ extension EmailValidator on String {
style: TextStyle(height: 32 / 32, color: color ?? MyColors.darkTextColor, fontSize: 32, letterSpacing: -1.92, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
);
Widget toText44({Color? color, bool isBold = false}) => Text(
this,
style: TextStyle(height: 32 / 32, color: color ?? MyColors.darkTextColor, fontSize: 44, letterSpacing: -2.64, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
);
Widget toSectionHeading({String upperHeading = "", String lowerHeading = ""}) {
String upper = "";
String lower = "";

@ -1,5 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:shimmer/shimmer.dart';
extension WidgetExtensions on Widget {
@ -36,4 +38,30 @@ extension WidgetExtensions on Widget {
switchOutCurve: Curves.linearToEaseOut,
child: this,
);
Widget objectContainerView({String title = ""}) {
return Container(
padding: const EdgeInsets.only(top: 15, bottom: 15, left: 14, right: 14),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
if (title.isNotEmpty) title.toText16(),
if (title.isNotEmpty) 12.height,
this,
],
),
);
}
}

@ -6,193 +6,583 @@ import 'dart:ui';
import 'package:easy_localization/easy_localization.dart' show AssetLoader;
class CodegenLoader extends AssetLoader {
class CodegenLoader extends AssetLoader{
const CodegenLoader();
@override
Future<Map<String, dynamic>> load(String fullPath, Locale locale) {
Future<Map<String, dynamic>> load(String fullPath, Locale locale ) {
return Future.value(mapLocales[locale.toString()]);
}
static const Map<String, dynamic> ar_SA = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "تسجيل الدخول",
"pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول",
"username": "اسم المستخدم",
"password": "كلمة المرور",
"welcomeBack": "مرحبا بعودتك",
"wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟",
"lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:",
"verificationType": "نوع التحقق:",
"pleaseVerify": "ارجوك تحقق",
"verifyThroughFace": "تحقق من خلال الوجه",
"verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع",
"verifyThroughSMS": "تحقق من خلال الرسائل القصيرة",
"verifyThroughWhatsapp": "تحقق من خلال Whatsapp",
"useAnotherAccount": "استخدم حسابا آخر",
"pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ",
"theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ",
"goodMorning": "صباح الخير",
"markAttendance": "علامة الحضور",
"timeLeftToday": "الوقت المتبقي اليوم",
"checkIn": "تحقق في",
"workList": "قائمة العمل",
"leaveBalance": "رصيد الاجازات",
"missingSwipes": "الضربات الشديدة في عداد المفقودين",
"ticketBalance": "رصيد التذكرة",
"other": "آخر",
"services": "خدمات",
"viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري",
"workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض",
"offers": "عروض & ",
"discounts": "الخصومات",
"newString": "جديد",
"setTheNewPassword": "قم بتعيين كلمة المرور الجديدة",
"typeYourNewPasswordBelow": "اكتب كلمة المرور الجديدة أدناه",
"confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث",
"title": "عنوان",
"home": "مسكن",
"mySalary": "راتبي",
"createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر",
"employeeId": "هوية الموظف",
"loginCodeWillSentToMobileNumber": "الرجاء إدخال معرف الموظف الخاص بك ، وسيتم إرسال رمز تسجيل الدخول إلى رقم هاتفك المحمول",
"changePassword": "تغيير كلمة المرور",
"ok": "موافق",
"confirm": "تؤكد",
"passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح",
"itemsForSale": "سلع للبيع",
"doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
"atLeastOneLowercase": "حرف صغير واحد على الأقل",
"atLeastOneUppercase": "حرف كبير واحد على الأقل",
"atLeastOneNumeric": "رقم واحد على الأقل",
"minimum8Characters": "8 أحرف على الأقل",
"doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة",
"itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص",
"confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور",
"sms": "رسالة قصيرة",
"fingerPrint": "بصمة",
"face": "التعرف على الوجه",
"whatsapp": "واتس اب",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"profile": {
"reset_password": {"label": "Reset Password", "username": "Username", "password": "password"}
static const Map<String,dynamic> ar_SA = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "تسجيل الدخول",
"pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول",
"username": "اسم المستخدم",
"password": "كلمة المرور",
"welcomeBack": "مرحبا بعودتك",
"wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟",
"lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:",
"verificationType": "نوع التحقق:",
"pleaseVerify": "ارجوك تحقق",
"verifyThroughFace": "تحقق من خلال الوجه",
"verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع",
"verifyThroughSMS": "تحقق من خلال الرسائل القصيرة",
"verifyThroughWhatsapp": "تحقق من خلال Whatsapp",
"useAnotherAccount": "استخدم حسابا آخر",
"pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ",
"theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ",
"goodMorning": "صباح الخير",
"markAttendance": "علامة الحضور",
"timeLeftToday": "الوقت المتبقي اليوم",
"checkIn": "تحقق في",
"workList": "قائمة العمل",
"leaveBalance": "رصيد الاجازات",
"missingSwipes": "الضربات الشديدة في عداد المفقودين",
"ticketBalance": "رصيد التذكرة",
"other": "آخر",
"services": "خدمات",
"viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري",
"workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض",
"offers": "عروض & ",
"discounts": "الخصومات",
"newString": "جديد",
"setTheNewPassword": "قم بتعيين كلمة المرور الجديدة",
"typeYourNewPasswordBelow": "اكتب كلمة المرور الجديدة أدناه",
"confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث",
"title": "عنوان",
"home": "مسكن",
"mySalary": "راتبي",
"createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر",
"employeeId": "هوية الموظف",
"loginCodeWillSentToMobileNumber": "الرجاء إدخال معرف الموظف الخاص بك ، وسيتم إرسال رمز تسجيل الدخول إلى رقم هاتفك المحمول",
"changePassword": "تغيير كلمة المرور",
"ok": "موافق",
"confirm": "تؤكد",
"passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح",
"itemsForSale": "سلع للبيع",
"attendanceDetails": "تفاصيل الحضور",
"order": "الطلبات",
"earlyOut": "الخروج مبكرا",
"shortage": "ساعات التقصير",
"excess": "Excess",
"lateIn": "القدوم المتاخر",
"approvedCheckOut": "وقت الخروج",
"approvedCheckIn": "وقت الدخول",
"actualCheckOut": "وقت الخروج",
"actualCheckIn": "وقت الدخول",
"present": "حضور",
"pres": "حضور",
"shiftTime": "وقت التناوب",
"absent": "غياب",
"attendance": "الحضور",
"scheduleDays": "ايام العمل",
"offDays": "ايام الراحه",
"nonAnalyzed": "لايوجد تحليل",
"shortageHour": "ساعات التقصير",
"stats": "الحاله",
"completed": "تم اكمال",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
"atLeastOneLowercase": "حرف صغير واحد على الأقل",
"atLeastOneUppercase": "حرف كبير واحد على الأقل",
"atLeastOneNumeric": "رقم واحد على الأقل",
"minimum8Characters": "8 أحرف على الأقل",
"doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة",
"itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص",
"confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور",
"sms": "رسالة قصيرة",
"fingerPrint": "بصمة",
"face": "التعرف على الوجه",
"whatsapp": "واتس اب",
"reject": "يرفض",
"approve": "يوافق",
"cancel": "إلغاء",
"requestedItems": "العناصر المطلوبة",
"request": "طلب",
"actions": "أجراءات",
"delegate": "مندوب",
"request_info": "اطلب معلومات",
"attachments": "المرفقات",
"info": "معلومات",
"employeeNumber": "رقم الموظف",
"assignmentNumber": "رقم الواجب",
"employeeName": "اسم الموظف",
"scheduleDate": "تاريخ الجدول الزمني",
"shiftType": "نوع التحول",
"shift": "يحول",
"breakText": "استراحة",
"actualSwipeStart": "بدء التمرير الفعلي",
"actualSwipeEnd": "التمرير الفعلي للنهاية",
"approvedSwipeStart": "وافق انتقاد البدء",
"approvedSwipeStartReason": "تمت الموافقة على سبب بدء التمرير السريع",
"approvedSwipeEnd": "تمت الموافقة على تمرير النهاية",
"approvedSwipeEndReason": "الموافقة على سبب إنهاء التمرير",
"from": "من",
"to": "ل",
"sent": "أرسلت",
"closed": "مغلق",
"id": "هوية شخصية",
"responder": "المستجيب",
"jobTitle": "عنوان وظيفي",
"grade": "درجة",
"jobCategory": "تصنيف الوظيفة",
"category": "فئة",
"employeeEmailAddress": "عنوان البريد الإلكتروني للموظف",
"payrollBranch": "فرع الرواتب",
"yourChangeHasBeenSavedSuccessfully": "تم حفظ التغيير الخاص بك بنجاح",
"code": "شفرة",
"unit": "وحدة",
"quantity": "كمية",
"dateRequired": "التاريخ مطلوب",
"lineStatus": "حالة الخط",
"statusDate": "تاريخ الحالة",
"transactionType": "نوع المعاملة",
"operatingUnit": "وحدة التشغيل",
"organizationCode": "كود المنظمة",
"organization": "منظمة",
"fromSubInventory": "من الجرد الفرعي",
"fromLocator": "من محدد المواقع",
"toSubInventory": "إلى الجرد الفرعي",
"toLocator": "إلى محدد المواقع",
"shipToLocator": "شحن إلى محدد المواقع",
"itemHistory": "تاريخ العنصر",
"mfg": "مبدع",
"lineType": "نوع الخط",
"price": "السعر",
"lineAmount": "مبلغ الخط",
"lineDiscount": "خصم الخط٪",
"needByDate": "القادمة إلى الأمام",
"promisedDate": "التسجيل وعد",
"deliverToLocation": "تسليم إلى الموقع",
"requisitionNumber": "رقم الطلب",
"requester": "مقدم الطلب",
"quotationAnalysis": "تحليل الاقتباس",
"subject": "موضوعات",
"description": "وصف",
"supplier": "المورد",
"site": "موقع",
"buyer": "مشتر",
"preparer": "معد",
"creationDate": "تاريخ الإنشاء",
"shipToLocation": "الشحن الى الموقع",
"quotationNumber": "رقم الإقتباس",
"quotationDate": "تاريخ الاقتباس",
"paymentTerms": "شروط الدفع",
"currency": "عملة",
"grossAmount": "المبلغ الإجمالي",
"discountAmount": "مقدار الخصم",
"customDuty": "الرسوم الجمركية",
"shipHandle": "مقبض السفينة",
"otherCharges": "رسوم أخرى",
"totalPOAmountWithVAT": "إجمالي مبلغ الشراء مع ضريبة القيمة المضافة",
"totalPOAmountInWords": "إجمالي مبلغ أمر الشراء بالكلمات",
"requestNumber": "رقم الطلب",
"uom": "UOM",
"operatingCode": "كود التشغيل",
"poNumber": "PO عدد",
"revision": "مراجعة",
"quantityOrdered": "الكمية المطلوبة",
"quantityReceived": "الكمية المستلمة",
"bonusQuantity": "كمية المكافأة",
"purchasePrice": "سعر الشراء",
"discountPer": "خصم ٪",
"balanceQuantity": "كمية التوازن",
"netPrice": "السعر الصافي",
"closureStatus": "حالة الإغلاق",
"quotationNetPrice": "صافي سعر الاقتباس",
"quotationUOM": "اقتباس UOM",
"quotationQty": "اقتباس الكمية",
"itemCode": "رمز الصنف",
"vendorName": "اسم البائع",
"quotationMFGPartNumber": "رقم الجزء MFG الاقتباس",
"quotationDeliveryDate": "تاريخ تسليم عرض الأسعار",
"quotationBonusQuantity": "كمية مكافأة الاقتباس",
"quotationLineTotal": "مجموع خط الاقتباس",
"rfqUOM": "RFQ UOM",
"rfqQty": "RFQ الكمية",
"rfqNumber": "رقم RFQ",
"human": "بشري",
"resources": "موارد",
"details": "تفاصيل",
"noDataAvailable": "لا تتوافر بيانات",
"productName": "اسم المنتج",
"productDescription": "وصف المنتج",
"unitPrice": "سعر الوحده",
"manufacturerName": "اسم المصنع",
"manufacturerPartName": "اسم جزء الشركة المصنعة",
"supplierName": "اسم المورد",
"supplierContact": "الاتصال بالمورد",
"chargeToPatient": "المسؤول عن المريض",
"justification": "التبرير",
"itemDescription": "وصف السلعة",
"groupCode": "كود المجموعة",
"primaryUOM": "UOM الابتدائية",
"subgroupDescription": "وصف المجموعة الفرعية",
"subgroupCode": "رمز المجموعة الفرعية",
"groupDescription": "وصف المجموعة",
"templateName": "اسم القالب",
"itemCreationStatus": "حالة إنشاء العنصر",
"standardizationApprovalStatus": "حالة الموافقة على التقييس",
"standardizationApprovalRejectionReason": "سبب رفض الموافقة على التقييس",
"analyzedBy": "تحليل بواسطة",
"approvedDate": "تاريخ الموافقة",
"itemType": "نوع العنصر",
"relatedTo": "متعلق ب",
"requestDate": "تاريخ الطلب",
"analyzedDate": "تاريخ التحليل",
"urgent": "العاجلة",
"requestDetails": "طلب تفاصيل",
"approvalLevel": "مستوى الموافقة",
"requesterDetails": "تفاصيل مقدم الطلب",
"myAttendance": "حضوري",
"workOnBreak": "العمل على استراحة",
"next": "التالي",
"completingYear": "نحن نقدر لك لاستكمال خدمة",
"year": "سنة",
"month": "شهر",
"day": "يوم",
"address": "العنوان",
"phoneNumber": "رقم الجوال",
"businessGroup": "مجموعة العمل",
"Payroll": "الراتب",
"civilIdentityNumber": "رقم الهويه",
"dateOfBirth": "تاريخ الميلاد",
"maritalStatus ": "الحالة الاجتماعية",
"fullName": "الأسم الكامل",
"remove": "حذف",
"profile": {
"reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
},
"clicked": {
"zero": "You clicked {} times!",
"one": "You clicked {} time!",
"two": "You clicked {} times!",
"few": "You clicked {} times!",
"many": "You clicked {} times!",
"other": "You clicked {} times!"
"profileCompletionPer": "استكمال الملف الشخصي",
"completeProfile": "الملف الشخصي الكامل",
"personalInformation": "معلومات شخصية",
"basicDetails": "تفاصيل أساسية",
"contactDetails": "بيانات التواصل",
"familyDetails": "تفاصيل عائلية"
},
"clicked": {
"zero": "You clicked {} times!",
"one": "You clicked {} time!",
"two": "You clicked {} times!",
"few": "You clicked {} times!",
"many": "You clicked {} times!",
"other": "You clicked {} times!"
},
"amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
},
"reset_locale": "Reset Language"
};
static const Map<String,dynamic> en_US = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "Login",
"pleaseEnterLoginDetails": "Please enter the detail below to login",
"username": "Username",
"password": "Password",
"welcomeBack": "Welcome back",
"wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?",
"lastLoginDetails": "Last Login Details:",
"verificationType": "Verification Type:",
"pleaseVerify": "Please Verify",
"verifyThroughFace": "Verify Through Face",
"verifyThroughFingerprint": "Verify Through Fingerprint",
"verifyThroughSMS": "Verify Through SMS",
"verifyThroughWhatsapp": "Verify Through Whatsapp",
"useAnotherAccount": "Use Another Account",
"pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ",
"theVerificationCodeWillExpireIn": "The verification code will expire in ",
"goodMorning": "Good Morning",
"markAttendance": "Mark Attendance",
"timeLeftToday": "Time Left Today",
"checkIn": "Check In",
"workList": "Work List",
"leaveBalance": "Leave Balance",
"missingSwipes": "Missing Swipes",
"ticketBalance": "Ticket Balance",
"other": "Other",
"services": "Services",
"viewAllServices": "View All Services",
"monthlyAttendance": "Monthly Attendance",
"workFromHome": "Work From Home",
"ticketRequest": "Ticket Request",
"viewAllOffers": "View All Offers",
"offers": "Offers & ",
"discounts": "Discounts",
"newString": "New",
"setTheNewPassword": "Set the new password",
"typeYourNewPasswordBelow": "Type your new password below",
"confirmPassword": "Confirm Password",
"update": "update",
"title": "Title",
"home": "Home",
"mySalary": "My Salary",
"createRequest": "Create Request",
"forgotPassword": "Forgot Password",
"employeeId": "Employee ID",
"loginCodeWillSentToMobileNumber": "Please Enter your Employee ID, A login code will be sent to your mobile number",
"changePassword": "Change Password",
"ok": "OK",
"confirm": "Confirm",
"passwordChangedSuccessfully": "Password changed successfully",
"itemsForSale": "Items for Sale",
"attendanceDetails": "Attendance Details",
"order": "order",
"earlyOut": "Early Out",
"shortage": "Shortage",
"excess": "Excess",
"lateIn": "Late In",
"approvedCheckOut": "Approved Check Out",
"approvedCheckIn": "Approved Check In",
"actualCheckOut": "Actual Check Out",
"actualCheckIn": "Actual Check In",
"present": "PRESENT 11",
"pres": "present",
"shiftTime": "Shift Time",
"absent": "ABSENT 10",
"attendance": "Attendance",
"scheduleDays": "Schedule\nDays",
"offDays": "Off\nDays",
"nonAnalyzed": "Non\nAnalyzed",
"shortageHour": "Shortage\nHour",
"stats": "Stats",
"completed": "Completed",
"doNotUseRecentPassword": "Do not use recent password",
"atLeastOneLowercase": "At least one lowercase",
"atLeastOneUppercase": "At least one uppercase",
"atLeastOneNumeric": "At least one numeric",
"minimum8Characters": "Minimum 8 characters",
"doNotAddRepeatingLetters": "Do not add repeating letters",
"itShouldContainSpecialCharacter": "It should contain special character",
"confirmPasswordMustMatch": "Confirm password must match",
"sms": "SMS",
"fingerPrint": "Fingerprint",
"face": "Face",
"whatsapp": "Whatsapp",
"reject": "Reject",
"approve": "Approve",
"cancel": "Cancel",
"requestedItems": "Requested Items",
"request": "Request",
"actions": "Actions",
"delegate": "Delegate",
"request_info": "Request Info",
"attachments": "Attachments",
"info": "Info.",
"employeeNumber": "Employee Number",
"assignmentNumber": "Assignment Number",
"employeeName": "Employee Name",
"scheduleDate": "Schedule Date",
"shiftType": "Shift Type",
"shift": "Shift",
"breakText": "Break",
"actualSwipeStart": "Actual Swipe Start",
"actualSwipeEnd": "Actual Swipe End",
"approvedSwipeStart": "Approved Swipe Start",
"approvedSwipeStartReason": "Approved Swipe Start Reason",
"approvedSwipeEnd": "Approved Swipe End",
"approvedSwipeEndReason": "Approved Swipe End Reason",
"from": "From",
"to": "To",
"sent": "Sent",
"closed": "Closed",
"id": "ID",
"responder": "Responder",
"jobTitle": "Job Title",
"grade": "Grade",
"jobCategory": "Job Category",
"category": "Category",
"employeeEmailAddress": "Employee Email Address",
"payrollBranch": "Payroll Branch",
"yourChangeHasBeenSavedSuccessfully": "Your change has been saved successfully",
"code": "Code",
"unit": "Unit",
"quantity": "Quantity",
"dateRequired": "Date Required",
"lineStatus": "Line Status",
"statusDate": "Status Date",
"transactionType": "Transaction Type",
"operatingUnit": "Operating Unit",
"organizationCode": "Organization Code",
"organization": "Organization",
"fromSubInventory": "From Sub Inventory",
"fromLocator": "From Locator",
"toSubInventory": "To Sub Inventory",
"toLocator": "To Locator",
"shipToLocator": "Ship To Locator",
"itemHistory": "Item History",
"mfg": "MFG",
"lineType": "Line Type",
"price": "Price",
"lineAmount": "Line Amount",
"lineDiscount": "Line Discount %",
"needByDate": "Need By Date",
"promisedDate": "Promised Date",
"deliverToLocation": "Deliver To Location",
"requisitionNumber": "Requisition Number",
"requester": "Requester",
"subject": "Subject",
"quotationAnalysis": "Quotation Analysis",
"description": "Description",
"supplier": "Supplier",
"site": "Site",
"buyer": "Buyer",
"preparer": "Preparer",
"creationDate": "Creation Date",
"shipToLocation": "Ship To Location",
"quotationNumber": "Quotation Number",
"quotationDate": "Quotation Date",
"paymentTerms": "Payment Terms",
"currency": "Currency",
"grossAmount": "Gross Amount",
"discountAmount": "Discount Amount",
"customDuty": "Custom Duty",
"shipHandle": "Ship Handle",
"otherCharges": "Other Charges",
"totalPOAmountWithVAT": "Total PO Amount With VAT",
"totalPOAmountInWords": "Total PO Amount In Words",
"requestNumber": "Request Number",
"uom": "UOM",
"operatingCode": "Operating Code",
"poNumber": "PO Number",
"revision": "Revision",
"quantityOrdered": "Quantity Ordered",
"quantityReceived": "Quantity Received",
"bonusQuantity": "Bonus Quantity",
"purchasePrice": "Purchase Price",
"discountPer": "Discount %",
"balanceQuantity": "Balance Quantity",
"netPrice": "Net Price",
"closureStatus": "Closure Status",
"quotationNetPrice": "Quotation Net Price",
"quotationUOM": "Quotation UOM",
"quotationQty": "Quotation Qty",
"itemCode": "item Code",
"vendorName": "Vendor Name",
"quotationMFGPartNumber": "Quotation MFG Part Number",
"quotationDeliveryDate": "Quotation Delivery Date",
"quotationBonusQuantity": "Quotation Bonus Quantity",
"quotationLineTotal": "Quotation Line Total",
"rfqUOM": "RFQ UOM",
"rfqQty": "RFQ Qty",
"rfqNumber": "RFQ Number",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"details": "Details",
"noDataAvailable": "No Data Available",
"productName": "Product Name",
"productDescription": "Product Description",
"unitPrice": "Unit Price",
"manufacturerName": "Manufacturer Name",
"manufacturerPartName": "Manufacturer Part Name",
"supplierName": "Supplier Name",
"supplierContact": "Supplier Contact",
"chargeToPatient": "Charge To Patient",
"justification": "Justification",
"itemDescription": "Item Description",
"groupCode": "Group Code",
"primaryUOM": "Primary UOM",
"subgroupDescription": "Subgroup Description",
"subgroupCode": "Subgroup Code",
"groupDescription": "Group Description",
"templateName": "Template Name",
"itemCreationStatus": "Item Creation Status",
"standardizationApprovalStatus": "Standardization Approval Status",
"standardizationApprovalRejectionReason": "Standardization Approval Rejection Reason",
"analyzedBy": "Analyzed By",
"approvedDate": "Approved Date",
"itemType": "Item Type",
"relatedTo": "Related To",
"requestDate": "Request Date",
"analyzedDate": "Analyzed Date",
"urgent": "Urgent",
"requestDetails": "Request Details",
"approvalLevel": "Approval Level",
"requesterDetails": "Requester Details",
"myAttendance": "My Attendance",
"workOnBreak": "Work On Break",
"next": "Next",
"year": "Year",
"month": "Month",
"day": "Day",
"completingYear": "We appreciate you for completing the service of",
"address": "Address",
"phoneNumber": "Phone Number",
"businessGroup": "Business",
"Payroll": "Payroll",
"civilIdentityNumber": "Civil Identity Number",
"dateOfBirth": "Date of Birth",
"maritalStatus ": "Marital Status ",
"fullName": "Full Name",
"remove": "remove",
"profile": {
"reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
},
"amount": {"zero": "Your amount : {} ", "one": "Your amount : {} ", "two": "Your amount : {} ", "few": "Your amount : {} ", "many": "Your amount : {} ", "other": "Your amount : {} "},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"}
},
"reset_locale": "Reset Language"
};
static const Map<String, dynamic> en_US = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "Login",
"pleaseEnterLoginDetails": "Please enter the detail below to login",
"username": "Username",
"password": "Password",
"welcomeBack": "Welcome back",
"wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?",
"lastLoginDetails": "Last Login Details:",
"verificationType": "Verification Type:",
"pleaseVerify": "Please Verify",
"verifyThroughFace": "Verify Through Face",
"verifyThroughFingerprint": "Verify Through Fingerprint",
"verifyThroughSMS": "Verify Through SMS",
"verifyThroughWhatsapp": "Verify Through Whatsapp",
"useAnotherAccount": "Use Another Account",
"pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ",
"theVerificationCodeWillExpireIn": "The verification code will expire in ",
"goodMorning": "Good Morning",
"markAttendance": "Mark Attendance",
"timeLeftToday": "Time Left Today",
"checkIn": "Check In",
"workList": "Work List",
"leaveBalance": "Leave Balance",
"missingSwipes": "Missing Swipes",
"ticketBalance": "Ticket Balance",
"other": "Other",
"services": "Services",
"viewAllServices": "View All Services",
"monthlyAttendance": "Monthly Attendance",
"workFromHome": "Work From Home",
"ticketRequest": "Ticket Request",
"viewAllOffers": "View All Offers",
"offers": "Offers & ",
"discounts": "Discounts",
"newString": "New",
"setTheNewPassword": "Set the new password",
"typeYourNewPasswordBelow": "Type your new password below",
"confirmPassword": "Confirm Password",
"update": "Update",
"title": "Title",
"home": "Home",
"mySalary": "My Salary",
"createRequest": "Create Request",
"forgotPassword": "Forgot Password",
"employeeId": "Employee ID",
"loginCodeWillSentToMobileNumber": "Please Enter your Employee ID, A login code will be sent to your mobile number",
"changePassword": "Change Password",
"ok": "OK",
"confirm": "Confirm",
"passwordChangedSuccessfully": "Password changed successfully",
"itemsForSale": "Items for Sale",
"doNotUseRecentPassword": "Do not use recent password",
"atLeastOneLowercase": "At least one lowercase",
"atLeastOneUppercase": "At least one uppercase",
"atLeastOneNumeric": "At least one numeric",
"minimum8Characters": "Minimum 8 characters",
"doNotAddRepeatingLetters": "Do not add repeating letters",
"itShouldContainSpecialCharacter": "It should contain special character",
"confirmPasswordMustMatch": "Confirm password must match",
"sms": "SMS",
"fingerPrint": "Fingerprint",
"face": "Face",
"whatsapp": "Whatsapp",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"profile": {
"reset_password": {"label": "Reset Password", "username": "Username", "password": "password"}
},
"clicked": {
"zero": "You clicked {} times!",
"one": "You clicked {} time!",
"two": "You clicked {} times!",
"few": "You clicked {} times!",
"many": "You clicked {} times!",
"other": "You clicked {} times!"
},
"amount": {"zero": "Your amount : {} ", "one": "Your amount : {} ", "two": "Your amount : {} ", "few": "Your amount : {} ", "many": "Your amount : {} ", "other": "Your amount : {} "},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"}
},
"reset_locale": "Reset Language"
};
static const Map<String, Map<String, dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
"profileCompletionPer": "Profile Completion",
"completeProfile": "Complete Profile",
"personalInformation": "Personal Information",
"basicDetails": "Basic Details",
"contactDetails": "Contact Details",
"familyDetails": "Family Members"
},
"clicked": {
"zero": "You clicked {} times!",
"one": "You clicked {} time!",
"two": "You clicked {} times!",
"few": "You clicked {} times!",
"many": "You clicked {} times!",
"other": "You clicked {} times!"
},
"amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
},
"reset_locale": "Reset Language"
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
}

@ -1,6 +1,6 @@
// DO NOT EDIT. This is code generated via package:easy_localization/generate.dart
abstract class LocaleKeys {
abstract class LocaleKeys {
static const mohemm = 'mohemm';
static const english = 'english';
static const arabic = 'arabic';
@ -53,6 +53,30 @@ abstract class LocaleKeys {
static const confirm = 'confirm';
static const passwordChangedSuccessfully = 'passwordChangedSuccessfully';
static const itemsForSale = 'itemsForSale';
static const attendanceDetails = 'attendanceDetails';
static const order = 'order';
static const earlyOut = 'earlyOut';
static const shortage = 'shortage';
static const excess = 'excess';
static const lateIn = 'lateIn';
static const approvedCheckOut = 'approvedCheckOut';
static const approvedCheckIn = 'approvedCheckIn';
static const actualCheckOut = 'actualCheckOut';
static const actualCheckIn = 'actualCheckIn';
static const present = 'present';
static const pres = 'pres';
static const shiftTime = 'shiftTime';
static const absent = 'absent';
static const attendance = 'attendance';
static const scheduleDays = 'scheduleDays';
static const offDays = 'offDays';
static const nonAnalyzed = 'nonAnalyzed';
static const shortageHour = 'shortageHour';
static const stats = 'stats';
static const completed = 'completed';
static const msg = 'msg';
static const msg_named = 'msg_named';
static const clickMe = 'clickMe';
static const doNotUseRecentPassword = 'doNotUseRecentPassword';
static const atLeastOneLowercase = 'atLeastOneLowercase';
static const atLeastOneUppercase = 'atLeastOneUppercase';
@ -65,22 +89,177 @@ abstract class LocaleKeys {
static const fingerPrint = 'fingerPrint';
static const face = 'face';
static const whatsapp = 'whatsapp';
static const msg = 'msg';
static const msg_named = 'msg_named';
static const clickMe = 'clickMe';
static const reject = 'reject';
static const approve = 'approve';
static const cancel = 'cancel';
static const requestedItems = 'requestedItems';
static const request = 'request';
static const actions = 'actions';
static const delegate = 'delegate';
static const request_info = 'request_info';
static const attachments = 'attachments';
static const info = 'info';
static const employeeNumber = 'employeeNumber';
static const assignmentNumber = 'assignmentNumber';
static const employeeName = 'employeeName';
static const scheduleDate = 'scheduleDate';
static const shiftType = 'shiftType';
static const shift = 'shift';
static const breakText = 'breakText';
static const actualSwipeStart = 'actualSwipeStart';
static const actualSwipeEnd = 'actualSwipeEnd';
static const approvedSwipeStart = 'approvedSwipeStart';
static const approvedSwipeStartReason = 'approvedSwipeStartReason';
static const approvedSwipeEnd = 'approvedSwipeEnd';
static const approvedSwipeEndReason = 'approvedSwipeEndReason';
static const from = 'from';
static const to = 'to';
static const sent = 'sent';
static const closed = 'closed';
static const id = 'id';
static const responder = 'responder';
static const jobTitle = 'jobTitle';
static const grade = 'grade';
static const jobCategory = 'jobCategory';
static const category = 'category';
static const employeeEmailAddress = 'employeeEmailAddress';
static const payrollBranch = 'payrollBranch';
static const yourChangeHasBeenSavedSuccessfully = 'yourChangeHasBeenSavedSuccessfully';
static const code = 'code';
static const unit = 'unit';
static const quantity = 'quantity';
static const dateRequired = 'dateRequired';
static const lineStatus = 'lineStatus';
static const statusDate = 'statusDate';
static const transactionType = 'transactionType';
static const operatingUnit = 'operatingUnit';
static const organizationCode = 'organizationCode';
static const organization = 'organization';
static const fromSubInventory = 'fromSubInventory';
static const fromLocator = 'fromLocator';
static const toSubInventory = 'toSubInventory';
static const toLocator = 'toLocator';
static const shipToLocator = 'shipToLocator';
static const itemHistory = 'itemHistory';
static const mfg = 'mfg';
static const lineType = 'lineType';
static const price = 'price';
static const lineAmount = 'lineAmount';
static const lineDiscount = 'lineDiscount';
static const needByDate = 'needByDate';
static const promisedDate = 'promisedDate';
static const deliverToLocation = 'deliverToLocation';
static const requisitionNumber = 'requisitionNumber';
static const requester = 'requester';
static const quotationAnalysis = 'quotationAnalysis';
static const subject = 'subject';
static const description = 'description';
static const supplier = 'supplier';
static const site = 'site';
static const buyer = 'buyer';
static const preparer = 'preparer';
static const creationDate = 'creationDate';
static const shipToLocation = 'shipToLocation';
static const quotationNumber = 'quotationNumber';
static const quotationDate = 'quotationDate';
static const paymentTerms = 'paymentTerms';
static const currency = 'currency';
static const grossAmount = 'grossAmount';
static const discountAmount = 'discountAmount';
static const customDuty = 'customDuty';
static const shipHandle = 'shipHandle';
static const otherCharges = 'otherCharges';
static const totalPOAmountWithVAT = 'totalPOAmountWithVAT';
static const totalPOAmountInWords = 'totalPOAmountInWords';
static const requestNumber = 'requestNumber';
static const uom = 'uom';
static const operatingCode = 'operatingCode';
static const poNumber = 'poNumber';
static const revision = 'revision';
static const quantityOrdered = 'quantityOrdered';
static const quantityReceived = 'quantityReceived';
static const bonusQuantity = 'bonusQuantity';
static const purchasePrice = 'purchasePrice';
static const discountPer = 'discountPer';
static const balanceQuantity = 'balanceQuantity';
static const netPrice = 'netPrice';
static const closureStatus = 'closureStatus';
static const quotationNetPrice = 'quotationNetPrice';
static const quotationUOM = 'quotationUOM';
static const quotationQty = 'quotationQty';
static const itemCode = 'itemCode';
static const vendorName = 'vendorName';
static const quotationMFGPartNumber = 'quotationMFGPartNumber';
static const quotationDeliveryDate = 'quotationDeliveryDate';
static const quotationBonusQuantity = 'quotationBonusQuantity';
static const quotationLineTotal = 'quotationLineTotal';
static const rfqUOM = 'rfqUOM';
static const rfqQty = 'rfqQty';
static const rfqNumber = 'rfqNumber';
static const human = 'human';
static const resources = 'resources';
static const details = 'details';
static const reject = 'reject';
static const approve = 'approve';
static const noDataAvailable = 'noDataAvailable';
static const productName = 'productName';
static const productDescription = 'productDescription';
static const unitPrice = 'unitPrice';
static const manufacturerName = 'manufacturerName';
static const manufacturerPartName = 'manufacturerPartName';
static const supplierName = 'supplierName';
static const supplierContact = 'supplierContact';
static const chargeToPatient = 'chargeToPatient';
static const justification = 'justification';
static const itemDescription = 'itemDescription';
static const groupCode = 'groupCode';
static const primaryUOM = 'primaryUOM';
static const subgroupDescription = 'subgroupDescription';
static const subgroupCode = 'subgroupCode';
static const groupDescription = 'groupDescription';
static const templateName = 'templateName';
static const itemCreationStatus = 'itemCreationStatus';
static const standardizationApprovalStatus = 'standardizationApprovalStatus';
static const standardizationApprovalRejectionReason = 'standardizationApprovalRejectionReason';
static const analyzedBy = 'analyzedBy';
static const approvedDate = 'approvedDate';
static const itemType = 'itemType';
static const relatedTo = 'relatedTo';
static const requestDate = 'requestDate';
static const analyzedDate = 'analyzedDate';
static const urgent = 'urgent';
static const requestDetails = 'requestDetails';
static const approvalLevel = 'approvalLevel';
static const requesterDetails = 'requesterDetails';
static const myAttendance = 'myAttendance';
static const workOnBreak = 'workOnBreak';
static const next = 'next';
static const completingYear = 'completingYear';
static const year = 'year';
static const month = 'month';
static const day = 'day';
static const address = 'address';
static const phoneNumber = 'phoneNumber';
static const businessGroup = 'businessGroup';
static const Payroll = 'Payroll';
static const civilIdentityNumber = 'civilIdentityNumber';
static const dateOfBirth = 'dateOfBirth';
static const maritalStatus = 'maritalStatus ';
static const fullName = 'fullName';
static const remove = 'remove';
static const profile_reset_password_label = 'profile.reset_password.label';
static const profile_reset_password_username = 'profile.reset_password.username';
static const profile_reset_password_password = 'profile.reset_password.password';
static const profile_reset_password = 'profile.reset_password';
static const profile_profileCompletionPer = 'profile.profileCompletionPer';
static const profile_completeProfile = 'profile.completeProfile';
static const profile_personalInformation = 'profile.personalInformation';
static const profile_basicDetails = 'profile.basicDetails';
static const profile_contactDetails = 'profile.contactDetails';
static const profile_familyDetails = 'profile.familyDetails';
static const profile = 'profile';
static const clicked = 'clicked';
static const amount = 'amount';
static const gender_with_arg = 'gender.with_arg';
static const gender = 'gender';
static const reset_locale = 'reset_locale';
}

@ -8,6 +8,7 @@ import 'package:mohem_flutter_app/config/app_provider.dart';
import 'package:mohem_flutter_app/generated/codegen_loader.g.dart';
import 'package:mohem_flutter_app/models/post_params_model.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/provider/eit_provider_model.dart';
import 'package:mohem_flutter_app/theme/app_theme.dart';
import 'package:mohem_flutter_app/widgets/nfc/nfc_reader_sheet.dart';
import 'package:nfc_manager/nfc_manager.dart';
@ -42,6 +43,7 @@ Future<void> main() async {
child: MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => DashboardProviderModel()),
ChangeNotifierProvider(create: (_) => EITProviderModel()),
],
child: MyApp(),
),

@ -1,4 +1,3 @@
class GetOpenMissingSwipesList {
GetOpenMissingSwipesList({
this.pOpenMissingSwipes,

@ -4,6 +4,9 @@
import 'dart:convert';
import 'package:mohem_flutter_app/models/itg_forms_models/itg_request_model.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/request_type_model.dart';
ItgFormsModel itgFormsModelFromMap(String str) => ItgFormsModel.fromJson(json.decode(str));
String itgFormsModelToMap(ItgFormsModel data) => json.encode(data.toMap());
@ -80,7 +83,7 @@ class ItgFormsModel {
String? successMsg;
dynamic successMsgN;
dynamic vidaUpdatedResponse;
dynamic itgRequest;
ITGRequest? itgRequest;
dynamic itgFormAttachmentsList;
String? message;
dynamic mohemmItgDepartmentSectionsList;
@ -124,7 +127,7 @@ class ItgFormsModel {
successMsg: json["SuccessMsg"] == null ? null : json["SuccessMsg"],
successMsgN: json["SuccessMsgN"],
vidaUpdatedResponse: json["VidaUpdatedResponse"],
itgRequest: json["ITGRequest"],
itgRequest: json['ITGRequest'] != null ? ITGRequest.fromJson(json['ITGRequest']) : null,
itgFormAttachmentsList: json["Itg_FormAttachmentsList"],
message: json["Message"] == null ? null : json["Message"],
mohemmItgDepartmentSectionsList: json["Mohemm_ITG_DepartmentSectionsList"],
@ -169,7 +172,7 @@ class ItgFormsModel {
"SuccessMsg": successMsg == null ? null : successMsg,
"SuccessMsgN": successMsgN,
"VidaUpdatedResponse": vidaUpdatedResponse,
"ITGRequest": itgRequest,
"ITGRequest": itgRequest == null ? null : itgRequest!.toJson(),
"Itg_FormAttachmentsList": itgFormAttachmentsList,
"Message": message == null ? null : message,
"Mohemm_ITG_DepartmentSectionsList": mohemmItgDepartmentSectionsList,
@ -187,69 +190,3 @@ class ItgFormsModel {
"statuseCode": statuseCode == null ? null : statuseCode,
};
}
class RequestType {
int? itemCount;
List<RequestDetails>? requestDetails;
String? requestTypeCode;
String? requestTypeName;
RequestType({this.itemCount, this.requestDetails, this.requestTypeCode, this.requestTypeName});
RequestType.fromJson(Map<String, dynamic> json) {
itemCount = json['ItemCount'];
if (json['RequestDetails'] != null) {
requestDetails = <RequestDetails>[];
json['RequestDetails'].forEach((v) {
requestDetails!.add(new RequestDetails.fromJson(v));
});
}
requestTypeCode = json['RequestTypeCode'];
requestTypeName = json['RequestTypeName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ItemCount'] = this.itemCount;
if (this.requestDetails != null) {
data['RequestDetails'] = this.requestDetails!.map((v) => v.toJson()).toList();
}
data['RequestTypeCode'] = this.requestTypeCode;
data['RequestTypeName'] = this.requestTypeName;
return data;
}
}
class RequestDetails {
int? iD;
int? itemID;
String? listID;
String? listName;
String? modifiedDate;
String? title;
String? uRL;
RequestDetails({this.iD, this.itemID, this.listID, this.listName, this.modifiedDate, this.title, this.uRL});
RequestDetails.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
itemID = json['ItemID'];
listID = json['ListID'];
listName = json['ListName'];
modifiedDate = json['ModifiedDate'];
title = json['Title'];
uRL = json['URL'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['ItemID'] = this.itemID;
data['ListID'] = this.listID;
data['ListName'] = this.listName;
data['ModifiedDate'] = this.modifiedDate;
data['Title'] = this.title;
data['URL'] = this.uRL;
return data;
}
}

@ -0,0 +1,32 @@
class GetSetValuesRequestModel {
String? sEGMENTNAME;
String? vALUECOLUMNNAME;
String? dESCRIPTION;
String? iDCOLUMNNAME;
String? fLEXVALUESETNAME;
GetSetValuesRequestModel(
{this.sEGMENTNAME,
this.vALUECOLUMNNAME,
this.dESCRIPTION,
this.iDCOLUMNNAME,
this.fLEXVALUESETNAME});
GetSetValuesRequestModel.fromJson(Map<String, dynamic> json) {
sEGMENTNAME = json['SEGMENT_NAME'];
vALUECOLUMNNAME = json['VALUE_COLUMN_NAME'];
dESCRIPTION = json['DESCRIPTION'];
iDCOLUMNNAME = json['ID_COLUMN_NAME'];
fLEXVALUESETNAME = json['FLEX_VALUE_SET_NAME'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['VALUE_COLUMN_NAME'] = this.vALUECOLUMNNAME;
data['DESCRIPTION'] = this.dESCRIPTION;
data['ID_COLUMN_NAME'] = this.iDCOLUMNNAME;
data['FLEX_VALUE_SET_NAME'] = this.fLEXVALUESETNAME;
return data;
}
}

@ -0,0 +1,103 @@
class GET_EIT_Transactions_Model {
List<CollectionTransaction>? collectionTransaction;
GET_EIT_Transactions_Model({this.collectionTransaction});
GET_EIT_Transactions_Model.fromJson(Map<String, dynamic> json) {
if (json['Collection_Transaction'] != null) {
collectionTransaction = <CollectionTransaction>[];
json['Collection_Transaction'].forEach((v) {
collectionTransaction!.add(new CollectionTransaction.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.collectionTransaction != null) {
data['Collection_Transaction'] = this.collectionTransaction!.map((v) => v.toJson()).toList();
}
return data;
}
}
class CollectionTransaction {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dATEVALUE;
String? dESCFLEXCONTEXTCODE;
String? dESCFLEXNAME;
String? dISPLAYFLAG;
int? fROMROWNUM;
int? nOOFROWS;
dynamic? nUMBERVALUE;
int? rOWNUM;
String? sEGMENTNAME;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? sEGMENTVALUEDSP;
int? tOROWNUM;
int? tRANSACTIONNUMBER;
String? vARCHAR2VALUE;
CollectionTransaction(
{this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dATEVALUE,
this.dESCFLEXCONTEXTCODE,
this.dESCFLEXNAME,
this.dISPLAYFLAG,
this.fROMROWNUM,
this.nOOFROWS,
this.nUMBERVALUE,
this.rOWNUM,
this.sEGMENTNAME,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.sEGMENTVALUEDSP,
this.tOROWNUM,
this.tRANSACTIONNUMBER,
this.vARCHAR2VALUE});
CollectionTransaction.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dATEVALUE = json['DATE_VALUE'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
dESCFLEXNAME = json['DESC_FLEX_NAME'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
fROMROWNUM = json['FROM_ROW_NUM'];
nOOFROWS = json['NO_OF_ROWS'];
nUMBERVALUE = json['NUMBER_VALUE'];
rOWNUM = json['ROW_NUM'];
sEGMENTNAME = json['SEGMENT_NAME'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
tOROWNUM = json['TO_ROW_NUM'];
tRANSACTIONNUMBER = json['TRANSACTION_NUMBER'];
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DATE_VALUE'] = this.dATEVALUE;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['NUMBER_VALUE'] = this.nUMBERVALUE;
data['ROW_NUM'] = this.rOWNUM;
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['TRANSACTION_NUMBER'] = this.tRANSACTIONNUMBER;
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
return data;
}
}

@ -1,14 +1,42 @@
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
import 'package:mohem_flutter_app/models/get_basic_det_ntf_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_eit_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/models/get_item_creation_ntf_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_mo_Item_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_mo_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_notification_buttons_list_model.dart';
import 'package:mohem_flutter_app/models/get_po_Item_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart';
import 'package:mohem_flutter_app/models/get_schedule_shifts_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
import 'package:mohem_flutter_app/models/notification_action_model.dart';
import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/subordinates_on_leaves_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
import 'basic_member_information_model.dart';
import 'get_mobile_login_info_list_model.dart';
import 'dashboard/get_accrual_balances_list_model.dart';
import 'dashboard/get_attendance_tracking_list_model.dart';
import 'dashboard/get_open_missing_swipes_list_model.dart';
import 'dashboard/get_open_notifications_list.dart';
import 'dashboard/list_menu.dart';
import 'dashboard/menu_entries.dart';
import 'get_mobile_login_info_list_model.dart';
import 'member_information_list_model.dart';
import 'privilege_list_model.dart';
@ -62,19 +90,19 @@ class GenericResponseModel {
String? forgetPasswordTokenID;
List<String>? getAbsenceAttachmentsList;
List<String>? getAbsenceAttendanceTypesList;
List<String>? getAbsenceCollectionNotificationBodyList;
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotificationBodyList;
List<String>? getAbsenceDffStructureList;
List<String>? getAbsenceTransactionList;
List<GetAccrualBalancesList>? getAccrualBalancesList;
List<String>? getActionHistoryList;
List<GetActionHistoryList>? getActionHistoryList;
List<String>? getAddressDffStructureList;
List<String>? getAddressNotificationBodyList;
List<String>? getApprovesList;
List<String>? getAttachementList;
List<GetAttachementList>? getAttachementList;
GetAttendanceTracking? getAttendanceTrackingList;
List<String>? getBasicDetColsStructureList;
List<String>? getBasicDetDffStructureList;
List<String>? getBasicDetNtfBodyList;
List<GetBasicDetColsStructureList>? getBasicDetColsStructureList;
List<GetBasicDetDffStructureList>? getBasicDetDffStructureList;
List<GetBasicDetNtfBodyList>? getBasicDetNtfBodyList;
List<String>? getCEICollectionNotificationBodyList;
List<String>? getCEIDFFStructureList;
List<String>? getCEITransactionList;
@ -88,31 +116,31 @@ class GenericResponseModel {
List<String>? getContactDffStructureList;
List<String>? getContactNotificationBodyList;
List<String>? getCountriesList;
List<String>? getDayHoursTypeDetailsList;
List<GetDayHoursTypeDetailsList>? getDayHoursTypeDetailsList;
List<String>? getDeductionsList;
List<String>? getDefaultValueList;
List<String>? getEITCollectionNotificationBodyList;
List<String>? getEITDFFStructureList;
List<String>? getEITTransactionList;
List<GetEITDFFStructureList>? getEITDFFStructureList;
List<GetEITTransactionList>? getEITTransactionList;
List<String>? getEarningsList;
List<String>? getEmployeeAddressList;
List<String>? getEmployeeBasicDetailsList;
List<String>? getEmployeeContactsList;
List<String>? getEmployeePhonesList;
List<GetEmployeeAddressList>? getEmployeeAddressList;
List<GetEmployeeBasicDetailsList>? getEmployeeBasicDetailsList;
List<GetEmployeeContactsList>? getEmployeeContactsList;
List<GetEmployeePhonesList>? getEmployeePhonesList;
List<String>? getEmployeeSubordinatesList;
List<String>? getFliexfieldStructureList;
List<String>? getHrCollectionNotificationBodyList;
List<String>? getHrTransactionList;
List<String>? getItemCreationNtfBodyList;
GetItemCreationNtfBodyList? getItemCreationNtfBodyList;
List<String>? getItemTypeNotificationsList;
List<String>? getItemTypesList;
List<String>? getLookupValuesList;
List<GetMenuEntriesList>? getMenuEntriesList;
List<String>? getMoItemHistoryList;
List<String>? getMoNotificationBodyList;
List<String>? getNotificationButtonsList;
List<GetMoItemHistoryList>? getMoItemHistoryList;
List<GetMoNotificationBodyList>? getMoNotificationBodyList;
List<GetNotificationButtonsList>? getNotificationButtonsList;
List<String>? getNotificationReassignModeList;
List<String>? getObjectValuesList;
List<GetPhoneNumberTypesModel>? getObjectValuesList;
GetOpenMissingSwipesList? getOpenMissingSwipesList;
List<GetOpenNotificationsList>? getOpenNotificationsList;
List<String>? getOpenNotificationsNumList;
@ -124,33 +152,33 @@ class GenericResponseModel {
List<String>? getPendingReqFunctionsList;
List<String>? getPerformanceAppraisalList;
List<String>? getPhonesNotificationBodyList;
List<String>? getPoItemHistoryList;
List<String>? getPoNotificationBodyList;
List<GetPoItemHistoryList>? getPoItemHistoryList;
GetPoNotificationBodyList? getPoNotificationBodyList;
List<String>? getPrNotificationBodyList;
List<String>? getQuotationAnalysisList;
List<GetQuotationAnalysisList>? getQuotationAnalysisList;
List<String>? getRFCEmployeeListList;
List<String>? getRespondAttributeValueList;
List<String>? getSITCollectionNotificationBodyList;
List<String>? getSITDFFStructureList;
List<String>? getSITTransactionList;
List<String>? getScheduleShiftsDetailsList;
List<GetScheduleShiftsDetailsList>? getScheduleShiftsDetailsList;
List<String>? getShiftTypesList;
List<String>? getStampMsNotificationBodyList;
List<String>? getStampNsNotificationBodyList;
List<GetStampMsNotificationBodyList>? getStampMsNotificationBodyList;
List<GetStampNsNotificationBodyList>? getStampNsNotificationBodyList;
List<String>? getSubordinatesAttdStatusList;
List<String>? getSubordinatesLeavesList;
List<SubordinatesLeavesList>? getSubordinatesLeavesList;
List<String>? getSubordinatesLeavesTotalVacationsList;
List<String>? getSummaryOfPaymentList;
List<String>? getSwipesList;
List<String>? getTermColsStructureList;
List<String>? getTermDffStructureList;
List<String>? getTermNotificationBodyList;
List<String>? getTimeCardSummaryList;
List<GetTimeCardSummaryList>? getTimeCardSummaryList;
List<String>? getUserItemTypesList;
List<String>? getVacationRulesList;
List<String>? getVaccinationOnHandList;
List<String>? getVaccinationsList;
List<String>? getValueSetValuesList;
List<ESERVICESVS>? getValueSetValuesList;
List<WorkListResponseModel>? getWorkList;
String? hRCertificateTemplate;
String? imgURLsList;
@ -189,16 +217,16 @@ class GenericResponseModel {
bool? mohemmIsInsertBusinessCardEnable;
String? mohemmWifiPassword;
String? mohemmWifiSSID;
String? notificationAction;
String? notificationGetRespondAttributesList;
String? notificationRespondRolesList;
NotificationAction? notificationAction;
List<NotificationGetRespondAttributesList>? notificationGetRespondAttributesList;
List<String>? notificationRespondRolesList;
int? oracleOutPutNumber;
String? pASSWORDEXPIREDMSG;
String? pCOUNTRYCODE;
String? pCOUNTRYNAME;
String? pDESCFLEXCONTEXTCODE;
String? pDESCFLEXCONTEXTNAME;
Null? pForm;
String? pForm;
String? pINFORMATION;
int? pMBLID;
String? pNUMOFSUBORDINATES;
@ -239,7 +267,7 @@ class GenericResponseModel {
String? submitPhonesTransactionList;
String? submitSITTransactionList;
String? submitTermTransactionList;
String? subordinatesOnLeavesList;
List<SubordinatesLeavesList>? subordinatesOnLeavesList;
String? sumbitAbsenceTransactionList;
String? tokenID;
String? updateAttachmentList;
@ -568,19 +596,56 @@ class GenericResponseModel {
forgetPasswordTokenID = json['ForgetPasswordTokenID'];
getAbsenceAttachmentsList = json['GetAbsenceAttachmentsList'];
getAbsenceAttendanceTypesList = json['GetAbsenceAttendanceTypesList'];
getAbsenceCollectionNotificationBodyList = json['GetAbsenceCollectionNotificationBodyList'];
if (json['GetAbsenceCollectionNotificationBodyList'] != null) {
getAbsenceCollectionNotificationBodyList = <GetAbsenceCollectionNotificationBodyList>[];
json['GetAbsenceCollectionNotificationBodyList'].forEach((v) {
getAbsenceCollectionNotificationBodyList!.add(new GetAbsenceCollectionNotificationBodyList.fromJson(v));
});
}
getAbsenceDffStructureList = json['GetAbsenceDffStructureList'];
getAbsenceTransactionList = json['GetAbsenceTransactionList'];
getAccrualBalancesList = json["GetAccrualBalancesList"] == null ? null : List<GetAccrualBalancesList>.from(json["GetAccrualBalancesList"].map((x) => GetAccrualBalancesList.fromJson(x)));
getActionHistoryList = json['GetActionHistoryList'];
if (json['GetActionHistoryList'] != null) {
getActionHistoryList = <GetActionHistoryList>[];
json['GetActionHistoryList'].forEach((v) {
getActionHistoryList!.add(GetActionHistoryList.fromJson(v));
});
}
getAddressDffStructureList = json['GetAddressDffStructureList'];
getAddressNotificationBodyList = json['GetAddressNotificationBodyList'];
getApprovesList = json['GetApprovesList'];
getAttachementList = json['GetAttachementList'];
if (json['GetAttachementList'] != null) {
getAttachementList = <GetAttachementList>[];
json['GetAttachementList'].forEach((v) {
getAttachementList!.add(new GetAttachementList.fromJson(v));
});
}
getAttendanceTrackingList = json["GetAttendanceTrackingList"] == null ? null : GetAttendanceTracking.fromMap(json["GetAttendanceTrackingList"]);
getBasicDetColsStructureList = json['GetBasicDetColsStructureList'];
getBasicDetDffStructureList = json['GetBasicDetDffStructureList'];
getBasicDetNtfBodyList = json['GetBasicDetNtfBodyList'];
if (json['GetBasicDetColsStructureList'] != null) {
getBasicDetColsStructureList = <GetBasicDetColsStructureList>[];
json['GetBasicDetColsStructureList'].forEach((v) {
getBasicDetColsStructureList!.add(new GetBasicDetColsStructureList.fromJson(v));
});
}
// getBasicDetDffStructureList = json['GetBasicDetDffStructureList'];
if (json['GetBasicDetDffStructureList'] != null) {
getBasicDetDffStructureList = <GetBasicDetDffStructureList>[];
json['GetBasicDetDffStructureList'].forEach((v) {
getBasicDetDffStructureList!.add(new GetBasicDetDffStructureList.fromJson(v));
});
}
if (json['GetBasicDetNtfBodyList'] != null) {
getBasicDetNtfBodyList = <GetBasicDetNtfBodyList>[];
json['GetBasicDetNtfBodyList'].forEach((v) {
getBasicDetNtfBodyList!.add(new GetBasicDetNtfBodyList.fromJson(v));
});
}
getCEICollectionNotificationBodyList = json['GetCEICollectionNotificationBodyList'];
getCEIDFFStructureList = json['GetCEIDFFStructureList'];
getCEITransactionList = json['GetCEITransactionList'];
@ -594,31 +659,91 @@ class GenericResponseModel {
getContactDffStructureList = json['GetContactDffStructureList'];
getContactNotificationBodyList = json['GetContactNotificationBodyList'];
getCountriesList = json['GetCountriesList'];
getDayHoursTypeDetailsList = json['GetDayHoursTypeDetailsList'];
if (json['GetDayHoursTypeDetailsList'] != null) {
getDayHoursTypeDetailsList = <GetDayHoursTypeDetailsList>[];
json['GetDayHoursTypeDetailsList'].forEach((v) {
getDayHoursTypeDetailsList!.add(new GetDayHoursTypeDetailsList.fromJson(v));
});
}
getDeductionsList = json['GetDeductionsList'];
getDefaultValueList = json['GetDefaultValueList'];
getEITCollectionNotificationBodyList = json['GetEITCollectionNotificationBodyList'];
getEITDFFStructureList = json['GetEITDFFStructureList'];
getEITTransactionList = json['GetEITTransactionList'];
if (json['GetEITDFFStructureList'] != null) {
getEITDFFStructureList = <GetEITDFFStructureList>[];
json['GetEITDFFStructureList'].forEach((v) {
getEITDFFStructureList!.add(new GetEITDFFStructureList.fromJson(v));
});
}
if (json['GetEITTransactionList'] != null) {
getEITTransactionList = <GetEITTransactionList>[];
json['GetEITTransactionList'].forEach((v) {
getEITTransactionList!.add(new GetEITTransactionList.fromJson(v));
});
}
getEarningsList = json['GetEarningsList'];
getEmployeeAddressList = json['GetEmployeeAddressList'];
getEmployeeBasicDetailsList = json['GetEmployeeBasicDetailsList'];
getEmployeeContactsList = json['GetEmployeeContactsList'];
getEmployeePhonesList = json['GetEmployeePhonesList'];
if (json['GetEmployeeAddressList'] != null) {
getEmployeeAddressList = <GetEmployeeAddressList>[];
json['GetEmployeeAddressList'].forEach((v) {
getEmployeeAddressList!.add(new GetEmployeeAddressList.fromJson(v));
});
}
if (json['GetEmployeeBasicDetailsList'] != null) {
getEmployeeBasicDetailsList = <GetEmployeeBasicDetailsList>[];
json['GetEmployeeBasicDetailsList'].forEach((v) {
getEmployeeBasicDetailsList!.add(new GetEmployeeBasicDetailsList.fromJson(v));
});
}
if (json['GetEmployeeContactsList'] != null) {
getEmployeeContactsList = <GetEmployeeContactsList>[];
json['GetEmployeeContactsList'].forEach((v) {
getEmployeeContactsList!.add(new GetEmployeeContactsList.fromJson(v));
});
}
if (json['GetEmployeePhonesList'] != null) {
getEmployeePhonesList = <GetEmployeePhonesList>[];
json['GetEmployeePhonesList'].forEach((v) {
getEmployeePhonesList!.add(new GetEmployeePhonesList.fromJson(v));
});
}
getEmployeeSubordinatesList = json['GetEmployeeSubordinatesList'];
getFliexfieldStructureList = json['GetFliexfieldStructureList'];
getHrCollectionNotificationBodyList = json['GetHrCollectionNotificationBodyList'];
getHrTransactionList = json['GetHrTransactionList'];
getItemCreationNtfBodyList = json['GetItemCreationNtfBodyList'];
getItemCreationNtfBodyList = json['GetItemCreationNtfBodyList'] != null ? new GetItemCreationNtfBodyList.fromJson(json['GetItemCreationNtfBodyList']) : null;
getItemTypeNotificationsList = json['GetItemTypeNotificationsList'];
getItemTypesList = json['GetItemTypesList'];
getLookupValuesList = json['GetLookupValuesList'];
getMenuEntriesList = json["GetMenuEntriesList"] == null ? null : List<GetMenuEntriesList>.from(json["GetMenuEntriesList"].map((x) => GetMenuEntriesList.fromJson(x)));
getMoItemHistoryList = json['GetMoItemHistoryList'];
getMoNotificationBodyList = json['GetMoNotificationBodyList'];
getNotificationButtonsList = json['GetNotificationButtonsList'];
getNotificationReassignModeList = json['GetNotificationReassignModeList'];
getObjectValuesList = json['GetObjectValuesList'];
if (json['GetMoItemHistoryList'] != null) {
getMoItemHistoryList = <GetMoItemHistoryList>[];
json['GetMoItemHistoryList'].forEach((v) {
getMoItemHistoryList!.add(new GetMoItemHistoryList.fromJson(v));
});
}
if (json['GetMoNotificationBodyList'] != null) {
getMoNotificationBodyList = <GetMoNotificationBodyList>[];
json['GetMoNotificationBodyList'].forEach((v) {
getMoNotificationBodyList!.add(new GetMoNotificationBodyList.fromJson(v));
});
}
if (json['GetNotificationButtonsList'] != null) {
getNotificationButtonsList = <GetNotificationButtonsList>[];
json['GetNotificationButtonsList'].forEach((v) {
getNotificationButtonsList!.add(new GetNotificationButtonsList.fromJson(v));
});
}
if (json['GetObjectValuesList'] != null) {
getObjectValuesList = <GetPhoneNumberTypesModel>[];
json['GetObjectValuesList'].forEach((v) {
getObjectValuesList!.add(new GetPhoneNumberTypesModel.fromJson(v));
});
}
getOpenMissingSwipesList = json["GetOpenMissingSwipesList"] == null ? null : GetOpenMissingSwipesList.fromJson(json["GetOpenMissingSwipesList"]);
getOpenNotificationsList = json["GetOpenNotificationsList"] == null ? null : List<GetOpenNotificationsList>.from(json["GetOpenNotificationsList"].map((x) => GetOpenNotificationsList.fromMap(x)));
getOpenNotificationsNumList = json['GetOpenNotificationsNumList'];
@ -630,33 +755,79 @@ class GenericResponseModel {
getPendingReqFunctionsList = json['GetPendingReqFunctionsList'];
getPerformanceAppraisalList = json['GetPerformanceAppraisalList'];
getPhonesNotificationBodyList = json['GetPhonesNotificationBodyList'];
getPoItemHistoryList = json['GetPoItemHistoryList'];
getPoNotificationBodyList = json['GetPoNotificationBodyList'];
if (json['GetPoItemHistoryList'] != null) {
getPoItemHistoryList = <GetPoItemHistoryList>[];
json['GetPoItemHistoryList'].forEach((v) {
getPoItemHistoryList!.add(new GetPoItemHistoryList.fromJson(v));
});
}
getPoNotificationBodyList = json['GetPoNotificationBodyList'] != null ? new GetPoNotificationBodyList.fromJson(json['GetPoNotificationBodyList']) : null;
getPrNotificationBodyList = json['GetPrNotificationBodyList'];
getQuotationAnalysisList = json['GetQuotationAnalysisList'];
if (json['GetQuotationAnalysisList'] != null) {
getQuotationAnalysisList = <GetQuotationAnalysisList>[];
json['GetQuotationAnalysisList'].forEach((v) {
getQuotationAnalysisList!.add(new GetQuotationAnalysisList.fromJson(v));
});
}
getRFCEmployeeListList = json['GetRFCEmployeeListList'];
getRespondAttributeValueList = json['GetRespondAttributeValueList'];
getSITCollectionNotificationBodyList = json['GetSITCollectionNotificationBodyList'];
getSITDFFStructureList = json['GetSITDFFStructureList'];
getSITTransactionList = json['GetSITTransactionList'];
getScheduleShiftsDetailsList = json['GetScheduleShiftsDetailsList'];
if (json['GetScheduleShiftsDetailsList'] != null) {
getScheduleShiftsDetailsList = <GetScheduleShiftsDetailsList>[];
json['GetScheduleShiftsDetailsList'].forEach((v) {
getScheduleShiftsDetailsList!.add(new GetScheduleShiftsDetailsList.fromJson(v));
});
}
getShiftTypesList = json['GetShiftTypesList'];
getStampMsNotificationBodyList = json['GetStampMsNotificationBodyList'];
getStampNsNotificationBodyList = json['GetStampNsNotificationBodyList'];
if (json['GetStampMsNotificationBodyList'] != null) {
getStampMsNotificationBodyList = <GetStampMsNotificationBodyList>[];
json['GetStampMsNotificationBodyList'].forEach((v) {
getStampMsNotificationBodyList!.add(new GetStampMsNotificationBodyList.fromJson(v));
});
}
if (json['GetStampNsNotificationBodyList'] != null) {
getStampNsNotificationBodyList = <GetStampNsNotificationBodyList>[];
json['GetStampNsNotificationBodyList'].forEach((v) {
getStampNsNotificationBodyList!.add(new GetStampNsNotificationBodyList.fromJson(v));
});
}
getSubordinatesAttdStatusList = json['GetSubordinatesAttdStatusList'];
getSubordinatesLeavesList = json['GetSubordinatesLeavesList'];
if (json['GetSubordinatesLeavesList'] != null) {
getSubordinatesLeavesList = <SubordinatesLeavesList>[];
json['GetSubordinatesLeavesList'].forEach((v) {
getSubordinatesLeavesList!.add(SubordinatesLeavesList.fromJson(v));
});
}
getSubordinatesLeavesTotalVacationsList = json['GetSubordinatesLeavesTotalVacationsList'];
getSummaryOfPaymentList = json['GetSummaryOfPaymentList'];
getSwipesList = json['GetSwipesList'];
getTermColsStructureList = json['GetTermColsStructureList'];
getTermDffStructureList = json['GetTermDffStructureList'];
getTermNotificationBodyList = json['GetTermNotificationBodyList'];
getTimeCardSummaryList = json['GetTimeCardSummaryList'];
if (json['GetTimeCardSummaryList'] != null) {
getTimeCardSummaryList = <GetTimeCardSummaryList>[];
json['GetTimeCardSummaryList'].forEach((v) {
getTimeCardSummaryList!.add(new GetTimeCardSummaryList.fromJson(v));
});
}
getUserItemTypesList = json['GetUserItemTypesList'];
getVacationRulesList = json['GetVacationRulesList'];
getVaccinationOnHandList = json['GetVaccinationOnHandList'];
getVaccinationsList = json['GetVaccinationsList'];
getValueSetValuesList = json['GetValueSetValuesList'];
if (json['GetValueSetValuesList'] != null) {
getValueSetValuesList = <ESERVICESVS>[];
json['GetValueSetValuesList'].forEach((v) {
getValueSetValuesList!.add(ESERVICESVS.fromJson(v));
});
}
if (json['GetWorkList'] != null) {
getWorkList = <WorkListResponseModel>[];
@ -703,7 +874,7 @@ class GenericResponseModel {
if (json['Mohemm_GetMobileLoginInfoList'] != null) {
mohemmGetMobileLoginInfoList = <GetMobileLoginInfoListModel>[];
json['Mohemm_GetMobileLoginInfoList'].forEach((v) {
mohemmGetMobileLoginInfoList!.add(new GetMobileLoginInfoListModel.fromJson(v));
mohemmGetMobileLoginInfoList!.add(GetMobileLoginInfoListModel.fromJson(v));
});
}
mohemmGetPatientIDList = json['Mohemm_GetPatientID_List'];
@ -712,9 +883,21 @@ class GenericResponseModel {
mohemmIsInsertBusinessCardEnable = json['Mohemm_IsInsertBusinessCardEnable'];
mohemmWifiPassword = json['Mohemm_Wifi_Password'];
mohemmWifiSSID = json['Mohemm_Wifi_SSID'];
notificationAction = json['NotificationAction'];
notificationGetRespondAttributesList = json['NotificationGetRespondAttributesList'];
notificationRespondRolesList = json['NotificationRespondRolesList'];
notificationAction = json['NotificationAction'] != null ? NotificationAction.fromJson(json['NotificationAction']) : null;
if (json['NotificationGetRespondAttributesList'] != null) {
notificationGetRespondAttributesList = <NotificationGetRespondAttributesList>[];
json['NotificationGetRespondAttributesList'].forEach((v) {
notificationGetRespondAttributesList!.add(NotificationGetRespondAttributesList.fromJson(v));
});
}
if (json['NotificationRespondRolesList'] != null) {
notificationRespondRolesList = <String>[];
json['NotificationGetRespondAttributesList'].forEach((v) {
// notificationRespondRolesList!.add(v);
});
}
oracleOutPutNumber = json['OracleOutPutNumber'];
pASSWORDEXPIREDMSG = json['PASSWORD_EXPIRED_MSG'];
pCOUNTRYCODE = json['P_COUNTRY_CODE'];
@ -769,7 +952,14 @@ class GenericResponseModel {
submitPhonesTransactionList = json['SubmitPhonesTransactionList'];
submitSITTransactionList = json['SubmitSITTransactionList'];
submitTermTransactionList = json['SubmitTermTransactionList'];
subordinatesOnLeavesList = json['SubordinatesOnLeavesList'];
if (json['SubordinatesOnLeavesList'] != null) {
subordinatesOnLeavesList = <SubordinatesLeavesList>[];
json['GetSubordinatesLeavesList'].forEach((v) {
subordinatesOnLeavesList!.add(SubordinatesLeavesList.fromJson(v));
});
}
sumbitAbsenceTransactionList = json['SumbitAbsenceTransactionList'];
tokenID = json['TokenID'];
updateAttachmentList = json['UpdateAttachmentList'];
@ -849,19 +1039,35 @@ class GenericResponseModel {
data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID;
data['GetAbsenceAttachmentsList'] = this.getAbsenceAttachmentsList;
data['GetAbsenceAttendanceTypesList'] = this.getAbsenceAttendanceTypesList;
data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList;
if (this.getAbsenceCollectionNotificationBodyList != null) {
data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList!.map((v) => v.toJson()).toList();
}
data['GetAbsenceDffStructureList'] = this.getAbsenceDffStructureList;
data['GetAbsenceTransactionList'] = this.getAbsenceTransactionList;
data['GetAccrualBalancesList'] = this.getAccrualBalancesList;
data['GetActionHistoryList'] = this.getActionHistoryList;
if (this.getActionHistoryList != null) {
data['GetActionHistoryList'] = this.getActionHistoryList!.map((v) => v.toJson()).toList();
}
data['GetAddressDffStructureList'] = this.getAddressDffStructureList;
data['GetAddressNotificationBodyList'] = this.getAddressNotificationBodyList;
data['GetApprovesList'] = this.getApprovesList;
data['GetAttachementList'] = this.getAttachementList;
if (this.getAttachementList != null) {
data['GetAttachementList'] = this.getAttachementList!.map((v) => v.toJson()).toList();
}
data['GetAttendanceTrackingList'] = this.getAttendanceTrackingList;
data['GetBasicDetColsStructureList'] = this.getBasicDetColsStructureList;
data['GetBasicDetDffStructureList'] = this.getBasicDetDffStructureList;
data['GetBasicDetNtfBodyList'] = this.getBasicDetNtfBodyList;
if (this.getBasicDetNtfBodyList != null) {
data['GetBasicDetNtfBodyList'] = this.getBasicDetNtfBodyList!.map((v) => v.toJson()).toList();
}
data['GetCEICollectionNotificationBodyList'] = this.getCEICollectionNotificationBodyList;
data['GetCEIDFFStructureList'] = this.getCEIDFFStructureList;
data['GetCEITransactionList'] = this.getCEITransactionList;
@ -875,29 +1081,56 @@ class GenericResponseModel {
data['GetContactDffStructureList'] = this.getContactDffStructureList;
data['GetContactNotificationBodyList'] = this.getContactNotificationBodyList;
data['GetCountriesList'] = this.getCountriesList;
data['GetDayHoursTypeDetailsList'] = this.getDayHoursTypeDetailsList;
if (this.getDayHoursTypeDetailsList != null) {
data['GetDayHoursTypeDetailsList'] = this.getDayHoursTypeDetailsList!.map((v) => v.toJson()).toList();
}
data['GetDeductionsList'] = this.getDeductionsList;
data['GetDefaultValueList'] = this.getDefaultValueList;
data['GetEITCollectionNotificationBodyList'] = this.getEITCollectionNotificationBodyList;
data['GetEITDFFStructureList'] = this.getEITDFFStructureList;
data['GetEITTransactionList'] = this.getEITTransactionList;
if (this.getEITDFFStructureList != null) {
data['GetEITDFFStructureList'] = this.getEITDFFStructureList!.map((v) => v.toJson()).toList();
}
if (this.getEITTransactionList != null) {
data['GetEITTransactionList'] = this.getEITTransactionList!.map((v) => v.toJson()).toList();
}
data['GetEarningsList'] = this.getEarningsList;
data['GetEmployeeAddressList'] = this.getEmployeeAddressList;
data['GetEmployeeBasicDetailsList'] = this.getEmployeeBasicDetailsList;
data['GetEmployeeContactsList'] = this.getEmployeeContactsList;
data['GetEmployeePhonesList'] = this.getEmployeePhonesList;
if (this.getEmployeeAddressList != null) {
data['GetEmployeeAddressList'] = this.getEmployeeAddressList!.map((v) => v.toJson()).toList();
}
if (this.getEmployeeBasicDetailsList != null) {
data['GetEmployeeBasicDetailsList'] = this.getEmployeeBasicDetailsList!.map((v) => v.toJson()).toList();
}
if (this.getEmployeeContactsList != null) {
data['GetEmployeeContactsList'] = this.getEmployeeContactsList!.map((v) => v.toJson()).toList();
}
if (this.getEmployeePhonesList != null) {
data['GetEmployeePhonesList'] = this.getEmployeePhonesList!.map((v) => v.toJson()).toList();
}
data['GetEmployeeSubordinatesList'] = this.getEmployeeSubordinatesList;
data['GetFliexfieldStructureList'] = this.getFliexfieldStructureList;
data['GetHrCollectionNotificationBodyList'] = this.getHrCollectionNotificationBodyList;
data['GetHrTransactionList'] = this.getHrTransactionList;
data['GetItemCreationNtfBodyList'] = this.getItemCreationNtfBodyList;
if (this.getItemCreationNtfBodyList != null) {
data['GetItemCreationNtfBodyList'] = this.getItemCreationNtfBodyList!.toJson();
}
data['GetItemTypeNotificationsList'] = this.getItemTypeNotificationsList;
data['GetItemTypesList'] = this.getItemTypesList;
data['GetLookupValuesList'] = this.getLookupValuesList;
data['GetMenuEntriesList'] = this.getMenuEntriesList;
data['GetMoItemHistoryList'] = this.getMoItemHistoryList;
data['GetMoNotificationBodyList'] = this.getMoNotificationBodyList;
data['GetNotificationButtonsList'] = this.getNotificationButtonsList;
if (this.getMoItemHistoryList != null) {
data['GetMoItemHistoryList'] = this.getMoItemHistoryList!.map((v) => v.toJson()).toList();
}
if (this.getMoNotificationBodyList != null) {
data['GetMoNotificationBodyList'] = this.getMoNotificationBodyList!.map((v) => v.toJson()).toList();
}
if (this.getNotificationButtonsList != null) {
data['GetNotificationButtonsList'] = this.getNotificationButtonsList!.map((v) => v.toJson()).toList();
}
data['GetNotificationReassignModeList'] = this.getNotificationReassignModeList;
data['GetObjectValuesList'] = this.getObjectValuesList;
data['GetOpenMissingSwipesList'] = this.getOpenMissingSwipesList;
@ -911,38 +1144,62 @@ class GenericResponseModel {
data['GetPendingReqFunctionsList'] = this.getPendingReqFunctionsList;
data['GetPerformanceAppraisalList'] = this.getPerformanceAppraisalList;
data['GetPhonesNotificationBodyList'] = this.getPhonesNotificationBodyList;
data['GetPoItemHistoryList'] = this.getPoItemHistoryList;
data['GetPoNotificationBodyList'] = this.getPoNotificationBodyList;
if (this.getPoItemHistoryList != null) {
data['GetPoItemHistoryList'] = this.getPoItemHistoryList!.map((v) => v.toJson()).toList();
}
if (this.getPoNotificationBodyList != null) {
data['GetPoNotificationBodyList'] = this.getPoNotificationBodyList!.toJson();
}
data['GetPrNotificationBodyList'] = this.getPrNotificationBodyList;
data['GetQuotationAnalysisList'] = this.getQuotationAnalysisList;
if (this.getQuotationAnalysisList != null) {
data['GetQuotationAnalysisList'] = this.getQuotationAnalysisList!.map((v) => v.toJson()).toList();
}
data['GetRFCEmployeeListList'] = this.getRFCEmployeeListList;
data['GetRespondAttributeValueList'] = this.getRespondAttributeValueList;
data['GetSITCollectionNotificationBodyList'] = this.getSITCollectionNotificationBodyList;
data['GetSITDFFStructureList'] = this.getSITDFFStructureList;
data['GetSITTransactionList'] = this.getSITTransactionList;
data['GetScheduleShiftsDetailsList'] = this.getScheduleShiftsDetailsList;
if (this.getScheduleShiftsDetailsList != null) {
data['GetScheduleShiftsDetailsList'] = this.getScheduleShiftsDetailsList!.map((v) => v.toJson()).toList();
}
data['GetShiftTypesList'] = this.getShiftTypesList;
data['GetStampMsNotificationBodyList'] = this.getStampMsNotificationBodyList;
if (this.getStampMsNotificationBodyList != null) {
data['GetStampMsNotificationBodyList'] = this.getStampMsNotificationBodyList!.map((v) => v.toJson()).toList();
}
if (this.getStampNsNotificationBodyList != null) {
data['GetStampNsNotificationBodyList'] = this.getStampNsNotificationBodyList!.map((v) => v.toJson()).toList();
}
data['GetStampNsNotificationBodyList'] = this.getStampNsNotificationBodyList;
data['GetSubordinatesAttdStatusList'] = this.getSubordinatesAttdStatusList;
data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList;
if (this.getSubordinatesLeavesList != null) {
data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList!.map((v) => v.toJson()).toList();
}
data['GetSubordinatesLeavesTotalVacationsList'] = this.getSubordinatesLeavesTotalVacationsList;
data['GetSummaryOfPaymentList'] = this.getSummaryOfPaymentList;
data['GetSwipesList'] = this.getSwipesList;
data['GetTermColsStructureList'] = this.getTermColsStructureList;
data['GetTermDffStructureList'] = this.getTermDffStructureList;
data['GetTermNotificationBodyList'] = this.getTermNotificationBodyList;
data['GetTimeCardSummaryList'] = this.getTimeCardSummaryList;
if (this.getTimeCardSummaryList != null) {
data['GetTimeCardSummaryList'] = this.getTimeCardSummaryList!.map((v) => v.toJson()).toList();
}
data['GetUserItemTypesList'] = this.getUserItemTypesList;
data['GetVacationRulesList'] = this.getVacationRulesList;
data['GetVaccinationOnHandList'] = this.getVaccinationOnHandList;
data['GetVaccinationsList'] = this.getVaccinationsList;
data['GetValueSetValuesList'] = this.getValueSetValuesList;
if (getValueSetValuesList != null) {
data['GetValueSetValuesList'] = getValueSetValuesList!.map((v) => v.toJson()).toList();
}
if (getWorkList != null) {
data['GetWorkList'] = getWorkList!.map((v) => v.toJson()).toList();
}
data['HRCertificateTemplate'] = this.hRCertificateTemplate;
data['ImgURLsList'] = this.imgURLsList;
data['InsertApInv'] = this.insertApInv;
@ -984,9 +1241,19 @@ class GenericResponseModel {
data['Mohemm_IsInsertBusinessCardEnable'] = this.mohemmIsInsertBusinessCardEnable;
data['Mohemm_Wifi_Password'] = this.mohemmWifiPassword;
data['Mohemm_Wifi_SSID'] = this.mohemmWifiSSID;
data['NotificationAction'] = this.notificationAction;
data['NotificationGetRespondAttributesList'] = this.notificationGetRespondAttributesList;
data['NotificationRespondRolesList'] = this.notificationRespondRolesList;
if (this.notificationAction != null) {
data['NotificationAction'] = this.notificationAction!.toJson();
}
if (notificationGetRespondAttributesList != null) {
data['NotificationGetRespondAttributesList'] = notificationGetRespondAttributesList!.map((v) => v.toJson()).toList();
}
if (notificationRespondRolesList != null) {
data['NotificationRespondRolesList'] = notificationRespondRolesList!.map((v) => v).toList();
}
data['OracleOutPutNumber'] = this.oracleOutPutNumber;
data['PASSWORD_EXPIRED_MSG'] = this.pASSWORDEXPIREDMSG;
data['P_COUNTRY_CODE'] = this.pCOUNTRYCODE;
@ -1037,6 +1304,11 @@ class GenericResponseModel {
data['SubmitSITTransactionList'] = this.submitSITTransactionList;
data['SubmitTermTransactionList'] = this.submitTermTransactionList;
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList;
if (this.subordinatesOnLeavesList != null) {
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList!.map((v) => v.toJson()).toList();
}
data['SumbitAbsenceTransactionList'] = this.sumbitAbsenceTransactionList;
data['TokenID'] = this.tokenID;
data['UpdateAttachmentList'] = this.updateAttachmentList;

@ -0,0 +1,97 @@
class GetAbsenceCollectionNotificationBodyList {
List<CollectionNotification>? collectionNotification;
GetAbsenceCollectionNotificationBodyList({this.collectionNotification});
GetAbsenceCollectionNotificationBodyList.fromJson(Map<String, dynamic> json) {
if (json['Collection_Notification'] != null) {
collectionNotification = <CollectionNotification>[];
json['Collection_Notification'].forEach((v) {
collectionNotification!.add(new CollectionNotification.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.collectionNotification != null) {
data['Collection_Notification'] =
this.collectionNotification!.map((v) => v.toJson()).toList();
}
return data;
}
}
class CollectionNotification {
String? aCTION;
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dATEVALUE;
String? dESCFLEXCONTEXTCODE;
String? dESCFLEXNAME;
String? dISPLAYFLAG;
int? nUMBERVALUE;
String? pREVSEGMENTVALUEDSP;
String? sEGMENTNAME;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? sEGMENTVALUEDSP;
int? tRANSACTIONNUMBER;
String? vARCHAR2VALUE;
CollectionNotification(
{this.aCTION,
this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dATEVALUE,
this.dESCFLEXCONTEXTCODE,
this.dESCFLEXNAME,
this.dISPLAYFLAG,
this.nUMBERVALUE,
this.pREVSEGMENTVALUEDSP,
this.sEGMENTNAME,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.sEGMENTVALUEDSP,
this.tRANSACTIONNUMBER,
this.vARCHAR2VALUE});
CollectionNotification.fromJson(Map<String, dynamic> json) {
aCTION = json['ACTION'];
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dATEVALUE = json['DATE_VALUE'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
dESCFLEXNAME = json['DESC_FLEX_NAME'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
nUMBERVALUE = json['NUMBER_VALUE'];
pREVSEGMENTVALUEDSP = json['PREV_SEGMENT_VALUE_DSP'];
sEGMENTNAME = json['SEGMENT_NAME'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
tRANSACTIONNUMBER = json['TRANSACTION_NUMBER'];
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ACTION'] = this.aCTION;
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DATE_VALUE'] = this.dATEVALUE;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['NUMBER_VALUE'] = this.nUMBERVALUE;
data['PREV_SEGMENT_VALUE_DSP'] = this.pREVSEGMENTVALUEDSP;
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
data['TRANSACTION_NUMBER'] = this.tRANSACTIONNUMBER;
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
return data;
}
}

@ -0,0 +1,76 @@
class GetActionHistoryList {
String? aCTION;
String? aCTIONCODE;
String? eMAILADDRESS;
String? eMPLOYEEIMAGE;
int? fROMROWNUM;
bool? isFavorite;
String? nAME;
String? nOTE;
String? nOTIFICATIONDATE;
int? nOTIFICATIONID;
int? nOOFROWS;
String? pOSITIONTITLE;
int? rOWNUM;
int? sEQUENCE;
int? tOROWNUM;
String? uSERNAME;
GetActionHistoryList(
{this.aCTION,
this.aCTIONCODE,
this.eMAILADDRESS,
this.eMPLOYEEIMAGE,
this.fROMROWNUM,
this.isFavorite,
this.nAME,
this.nOTE,
this.nOTIFICATIONDATE,
this.nOTIFICATIONID,
this.nOOFROWS,
this.pOSITIONTITLE,
this.rOWNUM,
this.sEQUENCE,
this.tOROWNUM,
this.uSERNAME});
GetActionHistoryList.fromJson(Map<String, dynamic> json) {
aCTION = json['ACTION'];
aCTIONCODE = json['ACTION_CODE'];
eMAILADDRESS = json['EMAIL_ADDRESS'];
eMPLOYEEIMAGE = json['EMPLOYEE_IMAGE'];
fROMROWNUM = json['FROM_ROW_NUM'];
isFavorite = json['IsFavorite'];
nAME = json['NAME'];
nOTE = json['NOTE'];
nOTIFICATIONDATE = json['NOTIFICATION_DATE'];
nOTIFICATIONID = json['NOTIFICATION_ID'];
nOOFROWS = json['NO_OF_ROWS'];
pOSITIONTITLE = json['POSITION_TITLE'];
rOWNUM = json['ROW_NUM'];
sEQUENCE = json['SEQUENCE'];
tOROWNUM = json['TO_ROW_NUM'];
uSERNAME = json['USER_NAME'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ACTION'] = this.aCTION;
data['ACTION_CODE'] = this.aCTIONCODE;
data['EMAIL_ADDRESS'] = this.eMAILADDRESS;
data['EMPLOYEE_IMAGE'] = this.eMPLOYEEIMAGE;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['IsFavorite'] = this.isFavorite;
data['NAME'] = this.nAME;
data['NOTE'] = this.nOTE;
data['NOTIFICATION_DATE'] = this.nOTIFICATIONDATE;
data['NOTIFICATION_ID'] = this.nOTIFICATIONID;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['POSITION_TITLE'] = this.pOSITIONTITLE;
data['ROW_NUM'] = this.rOWNUM;
data['SEQUENCE'] = this.sEQUENCE;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['USER_NAME'] = this.uSERNAME;
return data;
}
}

@ -0,0 +1,72 @@
class GetAttachementList {
int? aTTACHEDDOCUMENTID;
int? cATEGORYID;
int? dATATYPEID;
int? dOCUMENTID;
String? eNTITYNAME;
String? fILECONTENTTYPE;
String? fILEDATA;
int? fILEID;
String? fILENAME;
String? pK1VALUE;
String? pK2VALUE;
String? pK3VALUE;
String? pK4VALUE;
String? pK5VALUE;
int? sEQNUM;
GetAttachementList(
{this.aTTACHEDDOCUMENTID,
this.cATEGORYID,
this.dATATYPEID,
this.dOCUMENTID,
this.eNTITYNAME,
this.fILECONTENTTYPE,
this.fILEDATA,
this.fILEID,
this.fILENAME,
this.pK1VALUE,
this.pK2VALUE,
this.pK3VALUE,
this.pK4VALUE,
this.pK5VALUE,
this.sEQNUM});
GetAttachementList.fromJson(Map<String, dynamic> json) {
aTTACHEDDOCUMENTID = json['ATTACHED_DOCUMENT_ID'];
cATEGORYID = json['CATEGORY_ID'];
dATATYPEID = json['DATATYPE_ID'];
dOCUMENTID = json['DOCUMENT_ID'];
eNTITYNAME = json['ENTITY_NAME'];
fILECONTENTTYPE = json['FILE_CONTENT_TYPE'];
fILEDATA = json['FILE_DATA'];
fILEID = json['FILE_ID'];
fILENAME = json['FILE_NAME'];
pK1VALUE = json['PK1_VALUE'];
pK2VALUE = json['PK2_VALUE'];
pK3VALUE = json['PK3_VALUE'];
pK4VALUE = json['PK4_VALUE'];
pK5VALUE = json['PK5_VALUE'];
sEQNUM = json['SEQ_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ATTACHED_DOCUMENT_ID'] = this.aTTACHEDDOCUMENTID;
data['CATEGORY_ID'] = this.cATEGORYID;
data['DATATYPE_ID'] = this.dATATYPEID;
data['DOCUMENT_ID'] = this.dOCUMENTID;
data['ENTITY_NAME'] = this.eNTITYNAME;
data['FILE_CONTENT_TYPE'] = this.fILECONTENTTYPE;
data['FILE_DATA'] = this.fILEDATA;
data['FILE_ID'] = this.fILEID;
data['FILE_NAME'] = this.fILENAME;
data['PK1_VALUE'] = this.pK1VALUE;
data['PK2_VALUE'] = this.pK2VALUE;
data['PK3_VALUE'] = this.pK3VALUE;
data['PK4_VALUE'] = this.pK4VALUE;
data['PK5_VALUE'] = this.pK5VALUE;
data['SEQ_NUM'] = this.sEQNUM;
return data;
}
}

@ -0,0 +1,24 @@
class GetBasicDetNtfBodyList {
String? prevSegmentValueDsp;
String? segmentPrompt;
String? segmentValueDsp;
String? updatedFlag;
GetBasicDetNtfBodyList({this.prevSegmentValueDsp, this.segmentPrompt, this.segmentValueDsp, this.updatedFlag});
GetBasicDetNtfBodyList.fromJson(Map<String, dynamic> json) {
prevSegmentValueDsp = json['PREV_SEGMENT_VALUE_DSP'];
segmentPrompt = json['SEGMENT_PROMPT'];
segmentValueDsp = json['SEGMENT_VALUE_DSP'];
updatedFlag = json['UPDATED_FLAG'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['PREV_SEGMENT_VALUE_DSP'] = this.prevSegmentValueDsp;
data['SEGMENT_PROMPT'] = this.segmentPrompt;
data['SEGMENT_VALUE_DSP'] = this.segmentValueDsp;
data['UPDATED_FLAG'] = this.updatedFlag;
return data;
}
}

@ -0,0 +1,180 @@
class GetDayHoursTypeDetailsList {
Null? aBSENCEATTENDANCEID;
Null? aBSENCEATTENDANCETYPEID;
String? aBSENTFLAG;
String? aCTUALHRS;
String? aNALAYZEDFLAG;
String? aPPROVEDTIMEBACKHRS;
String? aPPRTIMEBACKFLAG;
int? aSSIGNMENTID;
String? aTTENDEDFLAG;
Null? cALENDARENTRYID;
String? cOMPOFFFLAG;
String? cOMPOFFHRS;
String? cOMPOFFHHRS;
String? cOMPOFFNHRS;
String? cOMPOFFWHRS;
String? dAYTYPE;
String? eARLYOUTFLAG;
String? eARLYOUTHRS;
String? eXCESSFLAG;
String? eXCESSHRS;
int? fROMROWNUM;
String? lATEINFLAG;
String? lATEINHRS;
String? mISSINGSWIPEFLAG;
String? nONSCHEDULEDFLAG;
Null? nOOFROWS;
String? oNCALLHRS;
Null? pERSONEXTRAINFOID;
String? pLANNEDOTHRS;
String? pLANNEDOTHRSFLAG;
String? rEMARKS;
int? rOWNUM;
int? rTPID;
String? sCHEDULEDHRS;
String? sCHEDULEDONCALLHRS;
String? sCHEDULEDPLANNEDOTHRS;
String? sCHEDULEDATE;
String? sHORTAGEFLAG;
String? sHORTAGEHRS;
String? tIMEBACKFLAG;
String? tIMEBACKHRS;
int? tOROWNUM;
GetDayHoursTypeDetailsList(
{this.aBSENCEATTENDANCEID,
this.aBSENCEATTENDANCETYPEID,
this.aBSENTFLAG,
this.aCTUALHRS,
this.aNALAYZEDFLAG,
this.aPPROVEDTIMEBACKHRS,
this.aPPRTIMEBACKFLAG,
this.aSSIGNMENTID,
this.aTTENDEDFLAG,
this.cALENDARENTRYID,
this.cOMPOFFFLAG,
this.cOMPOFFHRS,
this.cOMPOFFHHRS,
this.cOMPOFFNHRS,
this.cOMPOFFWHRS,
this.dAYTYPE,
this.eARLYOUTFLAG,
this.eARLYOUTHRS,
this.eXCESSFLAG,
this.eXCESSHRS,
this.fROMROWNUM,
this.lATEINFLAG,
this.lATEINHRS,
this.mISSINGSWIPEFLAG,
this.nONSCHEDULEDFLAG,
this.nOOFROWS,
this.oNCALLHRS,
this.pERSONEXTRAINFOID,
this.pLANNEDOTHRS,
this.pLANNEDOTHRSFLAG,
this.rEMARKS,
this.rOWNUM,
this.rTPID,
this.sCHEDULEDHRS,
this.sCHEDULEDONCALLHRS,
this.sCHEDULEDPLANNEDOTHRS,
this.sCHEDULEDATE,
this.sHORTAGEFLAG,
this.sHORTAGEHRS,
this.tIMEBACKFLAG,
this.tIMEBACKHRS,
this.tOROWNUM});
GetDayHoursTypeDetailsList.fromJson(Map<String, dynamic> json) {
aBSENCEATTENDANCEID = json['ABSENCE_ATTENDANCE_ID'];
aBSENCEATTENDANCETYPEID = json['ABSENCE_ATTENDANCE_TYPE_ID'];
aBSENTFLAG = json['ABSENT_FLAG'];
aCTUALHRS = json['ACTUAL_HRS'];
aNALAYZEDFLAG = json['ANALAYZED_FLAG'];
aPPROVEDTIMEBACKHRS = json['APPROVED_TIMEBACK_HRS'];
aPPRTIMEBACKFLAG = json['APPR_TIMEBACK_FLAG'];
aSSIGNMENTID = json['ASSIGNMENT_ID'];
aTTENDEDFLAG = json['ATTENDED_FLAG'];
cALENDARENTRYID = json['CALENDAR_ENTRY_ID'];
cOMPOFFFLAG = json['COMP_OFF_FLAG'];
cOMPOFFHRS = json['COMP_OFF_HRS'];
cOMPOFFHHRS = json['COMP_OFF_H_HRS'];
cOMPOFFNHRS = json['COMP_OFF_N_HRS'];
cOMPOFFWHRS = json['COMP_OFF_W_HRS'];
dAYTYPE = json['DAY_TYPE'];
eARLYOUTFLAG = json['EARLY_OUT_FLAG'];
eARLYOUTHRS = json['EARLY_OUT_HRS'];
eXCESSFLAG = json['EXCESS_FLAG'];
eXCESSHRS = json['EXCESS_HRS'];
fROMROWNUM = json['FROM_ROW_NUM'];
lATEINFLAG = json['LATE_IN_FLAG'];
lATEINHRS = json['LATE_IN_HRS'];
mISSINGSWIPEFLAG = json['MISSING_SWIPE_FLAG'];
nONSCHEDULEDFLAG = json['NON_SCHEDULED_FLAG'];
nOOFROWS = json['NO_OF_ROWS'];
oNCALLHRS = json['ON_CALL_HRS'];
pERSONEXTRAINFOID = json['PERSON_EXTRA_INFO_ID'];
pLANNEDOTHRS = json['PLANNED_OT_HRS'];
pLANNEDOTHRSFLAG = json['PLANNED_OT_HRS_FLAG'];
rEMARKS = json['REMARKS'];
rOWNUM = json['ROW_NUM'];
rTPID = json['RTP_ID'];
sCHEDULEDHRS = json['SCHEDULED_HRS'];
sCHEDULEDONCALLHRS = json['SCHEDULED_ON_CALL_HRS'];
sCHEDULEDPLANNEDOTHRS = json['SCHEDULED_PLANNED_OT_HRS'];
sCHEDULEDATE = json['SCHEDULE_DATE'];
sHORTAGEFLAG = json['SHORTAGE_FLAG'];
sHORTAGEHRS = json['SHORTAGE_HRS'];
tIMEBACKFLAG = json['TIMEBACK_FLAG'];
tIMEBACKHRS = json['TIMEBACK_HRS'];
tOROWNUM = json['TO_ROW_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ABSENCE_ATTENDANCE_ID'] = this.aBSENCEATTENDANCEID;
data['ABSENCE_ATTENDANCE_TYPE_ID'] = this.aBSENCEATTENDANCETYPEID;
data['ABSENT_FLAG'] = this.aBSENTFLAG;
data['ACTUAL_HRS'] = this.aCTUALHRS;
data['ANALAYZED_FLAG'] = this.aNALAYZEDFLAG;
data['APPROVED_TIMEBACK_HRS'] = this.aPPROVEDTIMEBACKHRS;
data['APPR_TIMEBACK_FLAG'] = this.aPPRTIMEBACKFLAG;
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
data['ATTENDED_FLAG'] = this.aTTENDEDFLAG;
data['CALENDAR_ENTRY_ID'] = this.cALENDARENTRYID;
data['COMP_OFF_FLAG'] = this.cOMPOFFFLAG;
data['COMP_OFF_HRS'] = this.cOMPOFFHRS;
data['COMP_OFF_H_HRS'] = this.cOMPOFFHHRS;
data['COMP_OFF_N_HRS'] = this.cOMPOFFNHRS;
data['COMP_OFF_W_HRS'] = this.cOMPOFFWHRS;
data['DAY_TYPE'] = this.dAYTYPE;
data['EARLY_OUT_FLAG'] = this.eARLYOUTFLAG;
data['EARLY_OUT_HRS'] = this.eARLYOUTHRS;
data['EXCESS_FLAG'] = this.eXCESSFLAG;
data['EXCESS_HRS'] = this.eXCESSHRS;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['LATE_IN_FLAG'] = this.lATEINFLAG;
data['LATE_IN_HRS'] = this.lATEINHRS;
data['MISSING_SWIPE_FLAG'] = this.mISSINGSWIPEFLAG;
data['NON_SCHEDULED_FLAG'] = this.nONSCHEDULEDFLAG;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['ON_CALL_HRS'] = this.oNCALLHRS;
data['PERSON_EXTRA_INFO_ID'] = this.pERSONEXTRAINFOID;
data['PLANNED_OT_HRS'] = this.pLANNEDOTHRS;
data['PLANNED_OT_HRS_FLAG'] = this.pLANNEDOTHRSFLAG;
data['REMARKS'] = this.rEMARKS;
data['ROW_NUM'] = this.rOWNUM;
data['RTP_ID'] = this.rTPID;
data['SCHEDULED_HRS'] = this.sCHEDULEDHRS;
data['SCHEDULED_ON_CALL_HRS'] = this.sCHEDULEDONCALLHRS;
data['SCHEDULED_PLANNED_OT_HRS'] = this.sCHEDULEDPLANNEDOTHRS;
data['SCHEDULE_DATE'] = this.sCHEDULEDATE;
data['SHORTAGE_FLAG'] = this.sHORTAGEFLAG;
data['SHORTAGE_HRS'] = this.sHORTAGEHRS;
data['TIMEBACK_FLAG'] = this.tIMEBACKFLAG;
data['TIMEBACK_HRS'] = this.tIMEBACKHRS;
data['TO_ROW_NUM'] = this.tOROWNUM;
return data;
}
}

@ -0,0 +1,307 @@
class GetEITDFFStructureList {
String? aLPHANUMERICALLOWEDFLAG;
String? aPPLICATIONCOLUMNNAME;
String? cHILDSEGMENTSDV;
List<String>? cHILDSEGMENTSDVSplited;
String? cHILDSEGMENTSVS;
List<String>? cHILDSEGMENTSVSSplited;
String? dEFAULTTYPE;
String? dEFAULTVALUE;
String? dESCFLEXCONTEXTCODE;
String? dESCFLEXCONTEXTNAME;
String? dESCFLEXNAME;
String? dISPLAYFLAG;
String? eNABLEDFLAG;
ESERVICESDV? eSERVICESDV;
List<ESERVICESVS>? eSERVICESVS;
String? fLEXVALUESETNAME;
String? fORMATTYPE;
String? fORMATTYPEDSP;
bool? isEmptyOption;
String? lONGLISTFLAG;
int? mAXIMUMSIZE;
String? mAXIMUMVALUE;
String? mINIMUMVALUE;
String? mOBILEENABLED;
String? nUMBERPRECISION;
String? nUMERICMODEENABLEDFLAG;
String? pARENTSEGMENTSDV;
List<PARENTSEGMENTSDVSplited>? pARENTSEGMENTSDVSplited;
String? pARENTSEGMENTSVS;
List<PARENTSEGMENTSVSSplitedVS>? pARENTSEGMENTSVSSplitedVS;
String? rEADONLY;
String? rEQUIREDFLAG;
String? sEGMENTNAME;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? uPPERCASEONLYFLAG;
String? uSEDFLAG;
String? vALIDATIONTYPE;
String? vALIDATIONTYPEDSP;
String? fieldAnswer;
GetEITDFFStructureList(
{this.aLPHANUMERICALLOWEDFLAG,
this.aPPLICATIONCOLUMNNAME,
this.cHILDSEGMENTSDV,
this.cHILDSEGMENTSDVSplited,
this.cHILDSEGMENTSVS,
this.cHILDSEGMENTSVSSplited,
this.dEFAULTTYPE,
this.dEFAULTVALUE,
this.dESCFLEXCONTEXTCODE,
this.dESCFLEXCONTEXTNAME,
this.dESCFLEXNAME,
this.dISPLAYFLAG,
this.eNABLEDFLAG,
this.eSERVICESDV,
this.eSERVICESVS,
this.fLEXVALUESETNAME,
this.fORMATTYPE,
this.fORMATTYPEDSP,
this.isEmptyOption,
this.lONGLISTFLAG,
this.mAXIMUMSIZE,
this.mAXIMUMVALUE,
this.mINIMUMVALUE,
this.mOBILEENABLED,
this.nUMBERPRECISION,
this.nUMERICMODEENABLEDFLAG,
this.pARENTSEGMENTSDV,
this.pARENTSEGMENTSDVSplited,
this.pARENTSEGMENTSVS,
this.pARENTSEGMENTSVSSplitedVS,
this.rEADONLY,
this.rEQUIREDFLAG,
this.sEGMENTNAME,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.uPPERCASEONLYFLAG,
this.uSEDFLAG,
this.vALIDATIONTYPE,
this.vALIDATIONTYPEDSP,
this.fieldAnswer});
GetEITDFFStructureList.fromJson(Map<String, dynamic> json) {
print("----------------==============================");
print("----------------:$json");
aLPHANUMERICALLOWEDFLAG = json['ALPHANUMERIC_ALLOWED_FLAG'];
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
cHILDSEGMENTSDV = json['CHILD_SEGMENTS_DV'];
cHILDSEGMENTSDVSplited = json['CHILD_SEGMENTS_DV_Splited'] == null ? <String>[] : json['CHILD_SEGMENTS_DV_Splited'].cast<String>();
cHILDSEGMENTSVS = json['CHILD_SEGMENTS_VS'];
cHILDSEGMENTSVSSplited = json['CHILD_SEGMENTS_VS_Splited'] == null ? <String>[] : json['CHILD_SEGMENTS_VS_Splited'].cast<String>();
dEFAULTTYPE = json['DEFAULT_TYPE'];
dEFAULTVALUE = json['DEFAULT_VALUE'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
dESCFLEXCONTEXTNAME = json['DESC_FLEX_CONTEXT_NAME'];
dESCFLEXNAME = json['DESC_FLEX_NAME'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
eNABLEDFLAG = json['ENABLED_FLAG'];
eSERVICESDV = json['E_SERVICES_DV'] != null ? new ESERVICESDV.fromJson(json['E_SERVICES_DV']) : null;
// if (json['E_SERVICES_VS'] != null) {
// eSERVICESVS = <String>[];
// json['E_SERVICES_VS'].forEach((v) {
// eSERVICESVS!.add(v);
// });
// }
if (json['E_SERVICES_VS'] != null) {
eSERVICESVS = <ESERVICESVS>[];
json['E_SERVICES_VS'].forEach((v) {
eSERVICESVS!.add(new ESERVICESVS.fromJson(v));
});
} else {
eSERVICESVS = <ESERVICESVS>[];
}
fLEXVALUESETNAME = json['FLEX_VALUE_SET_NAME'];
fORMATTYPE = json['FORMAT_TYPE'];
fORMATTYPEDSP = json['FORMAT_TYPE_DSP'];
isEmptyOption = json['IsEmptyOption'];
lONGLISTFLAG = json['LONGLIST_FLAG'];
mAXIMUMSIZE = json['MAXIMUM_SIZE'];
mAXIMUMVALUE = json['MAXIMUM_VALUE'];
mINIMUMVALUE = json['MINIMUM_VALUE'];
mOBILEENABLED = json['MOBILE_ENABLED'];
nUMBERPRECISION = json['NUMBER_PRECISION'];
nUMERICMODEENABLEDFLAG = json['NUMERIC_MODE_ENABLED_FLAG'];
pARENTSEGMENTSDV = json['PARENT_SEGMENTS_DV'];
if (json['PARENT_SEGMENTS_DV_Splited'] != null) {
pARENTSEGMENTSDVSplited = <PARENTSEGMENTSDVSplited>[];
json['PARENT_SEGMENTS_DV_Splited'].forEach((v) {
pARENTSEGMENTSDVSplited!.add(new PARENTSEGMENTSDVSplited.fromJson(v));
});
}
pARENTSEGMENTSVS = json['PARENT_SEGMENTS_VS'];
if (json['PARENT_SEGMENTS_VS_SplitedVS'] != null) {
pARENTSEGMENTSVSSplitedVS = <PARENTSEGMENTSVSSplitedVS>[];
json['PARENT_SEGMENTS_VS_SplitedVS'].forEach((v) {
pARENTSEGMENTSVSSplitedVS!.add(new PARENTSEGMENTSVSSplitedVS.fromJson(v));
});
}
rEADONLY = json['READ_ONLY'];
rEQUIREDFLAG = json['REQUIRED_FLAG'];
sEGMENTNAME = json['SEGMENT_NAME'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
uPPERCASEONLYFLAG = json['UPPERCASE_ONLY_FLAG'];
uSEDFLAG = json['USED_FLAG'];
vALIDATIONTYPE = json['VALIDATION_TYPE'];
vALIDATIONTYPEDSP = json['VALIDATION_TYPE_DSP'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ALPHANUMERIC_ALLOWED_FLAG'] = this.aLPHANUMERICALLOWEDFLAG;
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['CHILD_SEGMENTS_DV'] = this.cHILDSEGMENTSDV;
data['CHILD_SEGMENTS_DV_Splited'] = this.cHILDSEGMENTSDVSplited;
data['CHILD_SEGMENTS_VS'] = this.cHILDSEGMENTSVS;
data['CHILD_SEGMENTS_VS_Splited'] = this.cHILDSEGMENTSVSSplited;
data['DEFAULT_TYPE'] = this.dEFAULTTYPE;
data['DEFAULT_VALUE'] = this.dEFAULTVALUE;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['DESC_FLEX_CONTEXT_NAME'] = this.dESCFLEXCONTEXTNAME;
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['ENABLED_FLAG'] = this.eNABLEDFLAG;
if (this.eSERVICESDV != null) {
data['E_SERVICES_DV'] = this.eSERVICESDV!.toJson();
}
if (this.eSERVICESVS != null) {
data['E_SERVICES_VS'] = this.eSERVICESVS!.map((v) => v.toJson()).toList();
}
// if (this.eSERVICESVS != null) {
// data['E_SERVICES_VS'] = this.eSERVICESVS!.toList();
// }
data['FLEX_VALUE_SET_NAME'] = this.fLEXVALUESETNAME;
data['FORMAT_TYPE'] = this.fORMATTYPE;
data['FORMAT_TYPE_DSP'] = this.fORMATTYPEDSP;
data['IsEmptyOption'] = this.isEmptyOption;
data['LONGLIST_FLAG'] = this.lONGLISTFLAG;
data['MAXIMUM_SIZE'] = this.mAXIMUMSIZE;
data['MAXIMUM_VALUE'] = this.mAXIMUMVALUE;
data['MINIMUM_VALUE'] = this.mINIMUMVALUE;
data['MOBILE_ENABLED'] = this.mOBILEENABLED;
data['NUMBER_PRECISION'] = this.nUMBERPRECISION;
data['NUMERIC_MODE_ENABLED_FLAG'] = this.nUMERICMODEENABLEDFLAG;
data['PARENT_SEGMENTS_DV'] = this.pARENTSEGMENTSDV;
if (this.pARENTSEGMENTSDVSplited != null) {
data['PARENT_SEGMENTS_DV_Splited'] = this.pARENTSEGMENTSDVSplited!.map((v) => v.toJson()).toList();
}
data['PARENT_SEGMENTS_VS'] = this.pARENTSEGMENTSVS;
if (this.pARENTSEGMENTSVSSplitedVS != null) {
data['PARENT_SEGMENTS_VS_SplitedVS'] = this.pARENTSEGMENTSVSSplitedVS!.map((v) => v.toJson()).toList();
}
data['READ_ONLY'] = this.rEADONLY;
data['REQUIRED_FLAG'] = this.rEQUIREDFLAG;
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['UPPERCASE_ONLY_FLAG'] = this.uPPERCASEONLYFLAG;
data['USED_FLAG'] = this.uSEDFLAG;
data['VALIDATION_TYPE'] = this.vALIDATIONTYPE;
data['VALIDATION_TYPE_DSP'] = this.vALIDATIONTYPEDSP;
return data;
}
}
class ESERVICESDV {
String? pIDCOLUMNNAME;
String? pRETURNMSG;
String? pRETURNSTATUS;
String? pVALUECOLUMNNAME;
ESERVICESDV({this.pIDCOLUMNNAME, this.pRETURNMSG, this.pRETURNSTATUS, this.pVALUECOLUMNNAME});
ESERVICESDV.fromJson(Map<String, dynamic> json) {
pIDCOLUMNNAME = json['P_ID_COLUMN_NAME'];
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
pVALUECOLUMNNAME = json['P_VALUE_COLUMN_NAME'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['P_ID_COLUMN_NAME'] = this.pIDCOLUMNNAME;
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
data['P_VALUE_COLUMN_NAME'] = this.pVALUECOLUMNNAME;
return data;
}
}
class ESERVICESVS {
String? dESCRIPTION;
int? fROMROWNUM;
String? iDCOLUMNNAME;
int? nOOFROWS;
int? rOWNUM;
int? tOROWNUM;
String? vALUECOLUMNNAME;
ESERVICESVS({this.dESCRIPTION, this.fROMROWNUM, this.iDCOLUMNNAME, this.nOOFROWS, this.rOWNUM, this.tOROWNUM, this.vALUECOLUMNNAME});
ESERVICESVS.fromJson(Map<String, dynamic> json) {
dESCRIPTION = json['DESCRIPTION'];
fROMROWNUM = json['FROM_ROW_NUM'];
iDCOLUMNNAME = json['ID_COLUMN_NAME'];
nOOFROWS = json['NO_OF_ROWS'];
rOWNUM = json['ROW_NUM'];
tOROWNUM = json['TO_ROW_NUM'];
vALUECOLUMNNAME = json['VALUE_COLUMN_NAME'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DESCRIPTION'] = this.dESCRIPTION;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['ID_COLUMN_NAME'] = this.iDCOLUMNNAME;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['ROW_NUM'] = this.rOWNUM;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['VALUE_COLUMN_NAME'] = this.vALUECOLUMNNAME;
return data;
}
}
class PARENTSEGMENTSDVSplited {
String? isRequired;
String? name;
PARENTSEGMENTSDVSplited({this.isRequired, this.name});
PARENTSEGMENTSDVSplited.fromJson(Map<String, dynamic> json) {
isRequired = json['IsRequired'];
name = json['Name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['IsRequired'] = this.isRequired;
data['Name'] = this.name;
return data;
}
}
class PARENTSEGMENTSVSSplitedVS {
String? isRequired;
String? name;
PARENTSEGMENTSVSSplitedVS({this.isRequired, this.name});
PARENTSEGMENTSVSSplitedVS.fromJson(Map<String, dynamic> json) {
isRequired = json['IsRequired'];
name = json['Name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['IsRequired'] = this.isRequired;
data['Name'] = this.name;
return data;
}
}

@ -0,0 +1,104 @@
class GetEITTransactionList {
List<CollectionTransaction>? collectionTransaction;
GetEITTransactionList({this.collectionTransaction});
GetEITTransactionList.fromJson(Map<String, dynamic> json) {
if (json['Collection_Transaction'] != null) {
collectionTransaction = <CollectionTransaction>[];
json['Collection_Transaction'].forEach((v) {
collectionTransaction!.add(new CollectionTransaction.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.collectionTransaction != null) {
data['Collection_Transaction'] =
this.collectionTransaction!.map((v) => v.toJson()).toList();
}
return data;
}
}
class CollectionTransaction {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dATEVALUE;
String? dESCFLEXCONTEXTCODE;
String? dESCFLEXNAME;
String? dISPLAYFLAG;
int? fROMROWNUM;
int? nOOFROWS;
int? nUMBERVALUE;
int? rOWNUM;
String? sEGMENTNAME;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? sEGMENTVALUEDSP;
int? tOROWNUM;
int? tRANSACTIONNUMBER;
String? vARCHAR2VALUE;
CollectionTransaction(
{this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dATEVALUE,
this.dESCFLEXCONTEXTCODE,
this.dESCFLEXNAME,
this.dISPLAYFLAG,
this.fROMROWNUM,
this.nOOFROWS,
this.nUMBERVALUE,
this.rOWNUM,
this.sEGMENTNAME,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.sEGMENTVALUEDSP,
this.tOROWNUM,
this.tRANSACTIONNUMBER,
this.vARCHAR2VALUE});
CollectionTransaction.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dATEVALUE = json['DATE_VALUE'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
dESCFLEXNAME = json['DESC_FLEX_NAME'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
fROMROWNUM = json['FROM_ROW_NUM'];
nOOFROWS = json['NO_OF_ROWS'];
nUMBERVALUE = json['NUMBER_VALUE'];
rOWNUM = json['ROW_NUM'];
sEGMENTNAME = json['SEGMENT_NAME'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
tOROWNUM = json['TO_ROW_NUM'];
tRANSACTIONNUMBER = json['TRANSACTION_NUMBER'];
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DATE_VALUE'] = this.dATEVALUE;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['NUMBER_VALUE'] = this.nUMBERVALUE;
data['ROW_NUM'] = this.rOWNUM;
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['TRANSACTION_NUMBER'] = this.tRANSACTIONNUMBER;
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
return data;
}
}

@ -0,0 +1,50 @@
class GetEmployeeAddressList {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dATEVALUE;
String? dISPLAYFLAG;
Null? nUMBERVALUE;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? sEGMENTVALUEDSP;
String? vARCHAR2VALUE;
GetEmployeeAddressList(
{this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dATEVALUE,
this.dISPLAYFLAG,
this.nUMBERVALUE,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.sEGMENTVALUEDSP,
this.vARCHAR2VALUE});
GetEmployeeAddressList.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dATEVALUE = json['DATE_VALUE'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
nUMBERVALUE = json['NUMBER_VALUE'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DATE_VALUE'] = this.dATEVALUE;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['NUMBER_VALUE'] = this.nUMBERVALUE;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
return data;
}
}

@ -0,0 +1,53 @@
class GetEmployeeBasicDetailsList {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dATEVALUE;
String? dISPLAYFLAG;
int? gROUPNUM;
int? nUMBERVALUE;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? sEGMENTVALUEDSP;
String? vARCHAR2VALUE;
GetEmployeeBasicDetailsList(
{this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dATEVALUE,
this.dISPLAYFLAG,
this.gROUPNUM,
this.nUMBERVALUE,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.sEGMENTVALUEDSP,
this.vARCHAR2VALUE});
GetEmployeeBasicDetailsList.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dATEVALUE = json['DATE_VALUE'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
gROUPNUM = json['GROUP_NUM'];
nUMBERVALUE = json['NUMBER_VALUE'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DATE_VALUE'] = this.dATEVALUE;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['GROUP_NUM'] = this.gROUPNUM;
data['NUMBER_VALUE'] = this.nUMBERVALUE;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
return data;
}
}

@ -0,0 +1,45 @@
class GetEmployeeContactsList {
String? cONTACTNAME;
int? cONTACTPERSONID;
int? cONTACTRELATIONSHIPID;
String? cONTACTTYPE;
String? dATEOFBIRTH;
int? pERSONID;
String? pRIMARYCONTACTFLAG;
String? rELATIONSHIP;
GetEmployeeContactsList(
{this.cONTACTNAME,
this.cONTACTPERSONID,
this.cONTACTRELATIONSHIPID,
this.cONTACTTYPE,
this.dATEOFBIRTH,
this.pERSONID,
this.pRIMARYCONTACTFLAG,
this.rELATIONSHIP});
GetEmployeeContactsList.fromJson(Map<String, dynamic> json) {
cONTACTNAME = json['CONTACT_NAME'];
cONTACTPERSONID = json['CONTACT_PERSON_ID'];
cONTACTRELATIONSHIPID = json['CONTACT_RELATIONSHIP_ID'];
cONTACTTYPE = json['CONTACT_TYPE'];
dATEOFBIRTH = json['DATE_OF_BIRTH'];
pERSONID = json['PERSON_ID'];
pRIMARYCONTACTFLAG = json['PRIMARY_CONTACT_FLAG'];
rELATIONSHIP = json['RELATIONSHIP'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['CONTACT_NAME'] = this.cONTACTNAME;
data['CONTACT_PERSON_ID'] = this.cONTACTPERSONID;
data['CONTACT_RELATIONSHIP_ID'] = this.cONTACTRELATIONSHIPID;
data['CONTACT_TYPE'] = this.cONTACTTYPE;
data['DATE_OF_BIRTH'] = this.dATEOFBIRTH;
data['PERSON_ID'] = this.pERSONID;
data['PRIMARY_CONTACT_FLAG'] = this.pRIMARYCONTACTFLAG;
data['RELATIONSHIP'] = this.rELATIONSHIP;
return data;
}
}

@ -0,0 +1,53 @@
class GetEmployeePhonesList {
String? dATEFROM;
String? dATETO;
int? oBJECTVERSIONNUMBER;
int? pARENTID;
String? pARENTTABLE;
int? pHONEID;
String? pHONENUMBER;
String? pHONETYPE;
String? pHONETYPEMEANING;
int? rOWINDEX;
GetEmployeePhonesList(
{this.dATEFROM,
this.dATETO,
this.oBJECTVERSIONNUMBER,
this.pARENTID,
this.pARENTTABLE,
this.pHONEID,
this.pHONENUMBER,
this.pHONETYPE,
this.pHONETYPEMEANING,
this.rOWINDEX});
GetEmployeePhonesList.fromJson(Map<String, dynamic> json) {
dATEFROM = json['DATE_FROM'];
dATETO = json['DATE_TO'];
oBJECTVERSIONNUMBER = json['OBJECT_VERSION_NUMBER'];
pARENTID = json['PARENT_ID'];
pARENTTABLE = json['PARENT_TABLE'];
pHONEID = json['PHONE_ID'];
pHONENUMBER = json['PHONE_NUMBER'];
pHONETYPE = json['PHONE_TYPE'];
pHONETYPEMEANING = json['PHONE_TYPE_MEANING'];
rOWINDEX = json['ROW_INDEX'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DATE_FROM'] = this.dATEFROM;
data['DATE_TO'] = this.dATETO;
data['OBJECT_VERSION_NUMBER'] = this.oBJECTVERSIONNUMBER;
data['PARENT_ID'] = this.pARENTID;
data['PARENT_TABLE'] = this.pARENTTABLE;
data['PHONE_ID'] = this.pHONEID;
data['PHONE_NUMBER'] = this.pHONENUMBER;
data['PHONE_TYPE'] = this.pHONETYPE;
data['PHONE_TYPE_MEANING'] = this.pHONETYPEMEANING;
data['ROW_INDEX'] = this.rOWINDEX;
return data;
}
}

@ -0,0 +1,292 @@
class GetItemCreationNtfBodyList {
List<ItemCreationHeader>? itemCreationHeader;
List<ItemCreationLines>? itemCreationLines;
String? pINFORMATION;
String? pQUESTION;
GetItemCreationNtfBodyList({this.itemCreationHeader, this.itemCreationLines, this.pINFORMATION, this.pQUESTION});
GetItemCreationNtfBodyList.fromJson(Map<String, dynamic> json) {
if (json['ItemCreationHeader'] != null) {
itemCreationHeader = <ItemCreationHeader>[];
json['ItemCreationHeader'].forEach((v) {
itemCreationHeader!.add(new ItemCreationHeader.fromJson(v));
});
}
if (json['ItemCreationLines'] != null) {
itemCreationLines = <ItemCreationLines>[];
json['ItemCreationLines'].forEach((v) {
itemCreationLines!.add(new ItemCreationLines.fromJson(v));
});
}
pINFORMATION = json['P_INFORMATION'];
pQUESTION = json['P_QUESTION'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.itemCreationHeader != null) {
data['ItemCreationHeader'] = this.itemCreationHeader!.map((v) => v.toJson()).toList();
}
if (this.itemCreationLines != null) {
data['ItemCreationLines'] = this.itemCreationLines!.map((v) => v.toJson()).toList();
}
data['P_INFORMATION'] = this.pINFORMATION;
data['P_QUESTION'] = this.pQUESTION;
return data;
}
}
class ItemCreationHeader {
String? aNALYZEDBY;
int? aNALYZEDBYID;
String? aNALYZEDDATE;
String? aPPROVEDDATE;
String? cATEGORY;
int? cATEGORYID;
String? iTEMTYPE;
String? oPERATINGUNIT;
int? oRGID;
int? rELATEDID;
String? rELATEDTO;
String? rEQUESTER;
int? rEQUESTERID;
String? rEQUESTDATE;
String? sTATUS;
int? tRANSACTIONHEADERID;
String? uRGENTFLAG;
String? uRGENTFLAGDISP;
String? wFITEMKEYANALYSIS;
String? wFITEMKEYAPPROVAL;
String? wFITEMTYPE;
ItemCreationHeader(
{this.aNALYZEDBY,
this.aNALYZEDBYID,
this.aNALYZEDDATE,
this.aPPROVEDDATE,
this.cATEGORY,
this.cATEGORYID,
this.iTEMTYPE,
this.oPERATINGUNIT,
this.oRGID,
this.rELATEDID,
this.rELATEDTO,
this.rEQUESTER,
this.rEQUESTERID,
this.rEQUESTDATE,
this.sTATUS,
this.tRANSACTIONHEADERID,
this.uRGENTFLAG,
this.uRGENTFLAGDISP,
this.wFITEMKEYANALYSIS,
this.wFITEMKEYAPPROVAL,
this.wFITEMTYPE});
ItemCreationHeader.fromJson(Map<String, dynamic> json) {
aNALYZEDBY = json['ANALYZED_BY'];
aNALYZEDBYID = json['ANALYZED_BY_ID'];
aNALYZEDDATE = json['ANALYZED_DATE'];
aPPROVEDDATE = json['APPROVED_DATE'];
cATEGORY = json['CATEGORY'];
cATEGORYID = json['CATEGORY_ID'];
iTEMTYPE = json['ITEM_TYPE'];
oPERATINGUNIT = json['OPERATING_UNIT'];
oRGID = json['ORG_ID'];
rELATEDID = json['RELATED_ID'];
rELATEDTO = json['RELATED_TO'];
rEQUESTER = json['REQUESTER'];
rEQUESTERID = json['REQUESTER_ID'];
rEQUESTDATE = json['REQUEST_DATE'];
sTATUS = json['STATUS'];
tRANSACTIONHEADERID = json['TRANSACTION_HEADER_ID'];
uRGENTFLAG = json['URGENT_FLAG'];
uRGENTFLAGDISP = json['URGENT_FLAG_DISP'];
wFITEMKEYANALYSIS = json['WF_ITEM_KEY_ANALYSIS'];
wFITEMKEYAPPROVAL = json['WF_ITEM_KEY_APPROVAL'];
wFITEMTYPE = json['WF_ITEM_TYPE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ANALYZED_BY'] = this.aNALYZEDBY;
data['ANALYZED_BY_ID'] = this.aNALYZEDBYID;
data['ANALYZED_DATE'] = this.aNALYZEDDATE;
data['APPROVED_DATE'] = this.aPPROVEDDATE;
data['CATEGORY'] = this.cATEGORY;
data['CATEGORY_ID'] = this.cATEGORYID;
data['ITEM_TYPE'] = this.iTEMTYPE;
data['OPERATING_UNIT'] = this.oPERATINGUNIT;
data['ORG_ID'] = this.oRGID;
data['RELATED_ID'] = this.rELATEDID;
data['RELATED_TO'] = this.rELATEDTO;
data['REQUESTER'] = this.rEQUESTER;
data['REQUESTER_ID'] = this.rEQUESTERID;
data['REQUEST_DATE'] = this.rEQUESTDATE;
data['STATUS'] = this.sTATUS;
data['TRANSACTION_HEADER_ID'] = this.tRANSACTIONHEADERID;
data['URGENT_FLAG'] = this.uRGENTFLAG;
data['URGENT_FLAG_DISP'] = this.uRGENTFLAGDISP;
data['WF_ITEM_KEY_ANALYSIS'] = this.wFITEMKEYANALYSIS;
data['WF_ITEM_KEY_APPROVAL'] = this.wFITEMKEYAPPROVAL;
data['WF_ITEM_TYPE'] = this.wFITEMTYPE;
return data;
}
}
class ItemCreationLines {
String? cHARGETOPATIENT;
int? fROMROWNUM;
int? iNVENTORYITEMID;
String? iTEMCODE;
String? iTEMCREATIONSTATUS;
String? iTEMCREATIONSTATUSDISP;
String? iTEMDESCRIPTION;
String? iTEMGROUP;
String? iTEMGROUPCODE;
String? iTEMSUBGROUP;
String? iTEMSUBGROUPCODE;
String? iTEMTYPE;
String? jUSTIFICATION;
int? lINENUMBER;
int? nOOFROWS;
String? pRIMARYUOM;
String? pRIMARYUOMCODE;
String? pRODUCTDESCRIPTION;
String? pRODUCTNAME;
int? rOWNUM;
String? sTANARDSTATUSDISP;
int? sTANDARDMANUFACTURERID;
String? sTANDARDMANUFACTURERNAME;
String? sTANDARDMFGPARTNUM;
String? sTANDARDREJECTREASON;
String? sTANDARDSTATUS;
String? sUPPLIERCONTACT;
String? sUPPLIERNAME;
int? tEMPLATEID;
String? tEMPLATENAME;
int? tOROWNUM;
int? tRANSACTIONHEADERID;
int? tRANSACTIONLINEID;
int? uNITPRICE;
String? uSERMANUFACTURERNAME;
String? uSERMFGPARTNUM;
ItemCreationLines(
{this.cHARGETOPATIENT,
this.fROMROWNUM,
this.iNVENTORYITEMID,
this.iTEMCODE,
this.iTEMCREATIONSTATUS,
this.iTEMCREATIONSTATUSDISP,
this.iTEMDESCRIPTION,
this.iTEMGROUP,
this.iTEMGROUPCODE,
this.iTEMSUBGROUP,
this.iTEMSUBGROUPCODE,
this.iTEMTYPE,
this.jUSTIFICATION,
this.lINENUMBER,
this.nOOFROWS,
this.pRIMARYUOM,
this.pRIMARYUOMCODE,
this.pRODUCTDESCRIPTION,
this.pRODUCTNAME,
this.rOWNUM,
this.sTANARDSTATUSDISP,
this.sTANDARDMANUFACTURERID,
this.sTANDARDMANUFACTURERNAME,
this.sTANDARDMFGPARTNUM,
this.sTANDARDREJECTREASON,
this.sTANDARDSTATUS,
this.sUPPLIERCONTACT,
this.sUPPLIERNAME,
this.tEMPLATEID,
this.tEMPLATENAME,
this.tOROWNUM,
this.tRANSACTIONHEADERID,
this.tRANSACTIONLINEID,
this.uNITPRICE,
this.uSERMANUFACTURERNAME,
this.uSERMFGPARTNUM});
ItemCreationLines.fromJson(Map<String, dynamic> json) {
cHARGETOPATIENT = json['CHARGE_TO_PATIENT'];
fROMROWNUM = json['FROM_ROW_NUM'];
iNVENTORYITEMID = json['INVENTORY_ITEM_ID'];
iTEMCODE = json['ITEM_CODE'];
iTEMCREATIONSTATUS = json['ITEM_CREATION_STATUS'];
iTEMCREATIONSTATUSDISP = json['ITEM_CREATION_STATUS_DISP'];
iTEMDESCRIPTION = json['ITEM_DESCRIPTION'];
iTEMGROUP = json['ITEM_GROUP'];
iTEMGROUPCODE = json['ITEM_GROUP_CODE'];
iTEMSUBGROUP = json['ITEM_SUBGROUP'];
iTEMSUBGROUPCODE = json['ITEM_SUBGROUP_CODE'];
iTEMTYPE = json['ITEM_TYPE'];
jUSTIFICATION = json['JUSTIFICATION'];
lINENUMBER = json['LINE_NUMBER'];
nOOFROWS = json['NO_OF_ROWS'];
pRIMARYUOM = json['PRIMARY_UOM'];
pRIMARYUOMCODE = json['PRIMARY_UOM_CODE'];
pRODUCTDESCRIPTION = json['PRODUCT_DESCRIPTION'];
pRODUCTNAME = json['PRODUCT_NAME'];
rOWNUM = json['ROW_NUM'];
sTANARDSTATUSDISP = json['STANARD_STATUS_DISP'];
sTANDARDMANUFACTURERID = json['STANDARD_MANUFACTURER_ID'];
sTANDARDMANUFACTURERNAME = json['STANDARD_MANUFACTURER_NAME'];
sTANDARDMFGPARTNUM = json['STANDARD_MFG_PART_NUM'];
sTANDARDREJECTREASON = json['STANDARD_REJECT_REASON'];
sTANDARDSTATUS = json['STANDARD_STATUS'];
sUPPLIERCONTACT = json['SUPPLIER_CONTACT'];
sUPPLIERNAME = json['SUPPLIER_NAME'];
tEMPLATEID = json['TEMPLATE_ID'];
tEMPLATENAME = json['TEMPLATE_NAME'];
tOROWNUM = json['TO_ROW_NUM'];
tRANSACTIONHEADERID = json['TRANSACTION_HEADER_ID'];
tRANSACTIONLINEID = json['TRANSACTION_LINE_ID'];
uNITPRICE = json['UNIT_PRICE'];
uSERMANUFACTURERNAME = json['USER_MANUFACTURER_NAME'];
uSERMFGPARTNUM = json['USER_MFG_PART_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['CHARGE_TO_PATIENT'] = this.cHARGETOPATIENT;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['INVENTORY_ITEM_ID'] = this.iNVENTORYITEMID;
data['ITEM_CODE'] = this.iTEMCODE;
data['ITEM_CREATION_STATUS'] = this.iTEMCREATIONSTATUS;
data['ITEM_CREATION_STATUS_DISP'] = this.iTEMCREATIONSTATUSDISP;
data['ITEM_DESCRIPTION'] = this.iTEMDESCRIPTION;
data['ITEM_GROUP'] = this.iTEMGROUP;
data['ITEM_GROUP_CODE'] = this.iTEMGROUPCODE;
data['ITEM_SUBGROUP'] = this.iTEMSUBGROUP;
data['ITEM_SUBGROUP_CODE'] = this.iTEMSUBGROUPCODE;
data['ITEM_TYPE'] = this.iTEMTYPE;
data['JUSTIFICATION'] = this.jUSTIFICATION;
data['LINE_NUMBER'] = this.lINENUMBER;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['PRIMARY_UOM'] = this.pRIMARYUOM;
data['PRIMARY_UOM_CODE'] = this.pRIMARYUOMCODE;
data['PRODUCT_DESCRIPTION'] = this.pRODUCTDESCRIPTION;
data['PRODUCT_NAME'] = this.pRODUCTNAME;
data['ROW_NUM'] = this.rOWNUM;
data['STANARD_STATUS_DISP'] = this.sTANARDSTATUSDISP;
data['STANDARD_MANUFACTURER_ID'] = this.sTANDARDMANUFACTURERID;
data['STANDARD_MANUFACTURER_NAME'] = this.sTANDARDMANUFACTURERNAME;
data['STANDARD_MFG_PART_NUM'] = this.sTANDARDMFGPARTNUM;
data['STANDARD_REJECT_REASON'] = this.sTANDARDREJECTREASON;
data['STANDARD_STATUS'] = this.sTANDARDSTATUS;
data['SUPPLIER_CONTACT'] = this.sUPPLIERCONTACT;
data['SUPPLIER_NAME'] = this.sUPPLIERNAME;
data['TEMPLATE_ID'] = this.tEMPLATEID;
data['TEMPLATE_NAME'] = this.tEMPLATENAME;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['TRANSACTION_HEADER_ID'] = this.tRANSACTIONHEADERID;
data['TRANSACTION_LINE_ID'] = this.tRANSACTIONLINEID;
data['UNIT_PRICE'] = this.uNITPRICE;
data['USER_MANUFACTURER_NAME'] = this.uSERMANUFACTURERNAME;
data['USER_MFG_PART_NUM'] = this.uSERMFGPARTNUM;
return data;
}
}

@ -0,0 +1,100 @@
class GetMoItemHistoryList {
String? dATEREQUIRED;
String? dESCRIPTION;
String? fROMLOCATOR;
int? fROMROWNUM;
String? fROMSUBINVENTORYCODE;
String? iTEMCODE;
String? lINESTATUSDIS;
int? nOOFROWS;
String? oPERATINGUNITNAME;
String? oRGANIZATIONCODE;
int? oRGANIZATIONID;
String? oRGANIZATIONNAME;
int? qUANTITY;
String? rEQUESTNUMBER;
int? rOWNUM;
String? sHIPTOLOCATION;
String? sTATUSDATE;
String? tOLOCATOR;
int? tOROWNUM;
String? tOSUBINVENTORYCODE;
String? tRANSACTIONTYPENAME;
String? uNITOFMEASURE;
GetMoItemHistoryList(
{this.dATEREQUIRED,
this.dESCRIPTION,
this.fROMLOCATOR,
this.fROMROWNUM,
this.fROMSUBINVENTORYCODE,
this.iTEMCODE,
this.lINESTATUSDIS,
this.nOOFROWS,
this.oPERATINGUNITNAME,
this.oRGANIZATIONCODE,
this.oRGANIZATIONID,
this.oRGANIZATIONNAME,
this.qUANTITY,
this.rEQUESTNUMBER,
this.rOWNUM,
this.sHIPTOLOCATION,
this.sTATUSDATE,
this.tOLOCATOR,
this.tOROWNUM,
this.tOSUBINVENTORYCODE,
this.tRANSACTIONTYPENAME,
this.uNITOFMEASURE});
GetMoItemHistoryList.fromJson(Map<String, dynamic> json) {
dATEREQUIRED = json['DATE_REQUIRED'];
dESCRIPTION = json['DESCRIPTION'];
fROMLOCATOR = json['FROM_LOCATOR'];
fROMROWNUM = json['FROM_ROW_NUM'];
fROMSUBINVENTORYCODE = json['FROM_SUBINVENTORY_CODE'];
iTEMCODE = json['ITEM_CODE'];
lINESTATUSDIS = json['LINE_STATUS_DIS'];
nOOFROWS = json['NO_OF_ROWS'];
oPERATINGUNITNAME = json['OPERATING_UNIT_NAME'];
oRGANIZATIONCODE = json['ORGANIZATION_CODE'];
oRGANIZATIONID = json['ORGANIZATION_ID'];
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
qUANTITY = json['QUANTITY'];
rEQUESTNUMBER = json['REQUEST_NUMBER'];
rOWNUM = json['ROW_NUM'];
sHIPTOLOCATION = json['SHIP_TO_LOCATION'];
sTATUSDATE = json['STATUS_DATE'];
tOLOCATOR = json['TO_LOCATOR'];
tOROWNUM = json['TO_ROW_NUM'];
tOSUBINVENTORYCODE = json['TO_SUBINVENTORY_CODE'];
tRANSACTIONTYPENAME = json['TRANSACTION_TYPE_NAME'];
uNITOFMEASURE = json['UNIT_OF_MEASURE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DATE_REQUIRED'] = this.dATEREQUIRED;
data['DESCRIPTION'] = this.dESCRIPTION;
data['FROM_LOCATOR'] = this.fROMLOCATOR;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['FROM_SUBINVENTORY_CODE'] = this.fROMSUBINVENTORYCODE;
data['ITEM_CODE'] = this.iTEMCODE;
data['LINE_STATUS_DIS'] = this.lINESTATUSDIS;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['OPERATING_UNIT_NAME'] = this.oPERATINGUNITNAME;
data['ORGANIZATION_CODE'] = this.oRGANIZATIONCODE;
data['ORGANIZATION_ID'] = this.oRGANIZATIONID;
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
data['QUANTITY'] = this.qUANTITY;
data['REQUEST_NUMBER'] = this.rEQUESTNUMBER;
data['ROW_NUM'] = this.rOWNUM;
data['SHIP_TO_LOCATION'] = this.sHIPTOLOCATION;
data['STATUS_DATE'] = this.sTATUSDATE;
data['TO_LOCATOR'] = this.tOLOCATOR;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['TO_SUBINVENTORY_CODE'] = this.tOSUBINVENTORYCODE;
data['TRANSACTION_TYPE_NAME'] = this.tRANSACTIONTYPENAME;
data['UNIT_OF_MEASURE'] = this.uNITOFMEASURE;
return data;
}
}

@ -0,0 +1,104 @@
class GetMoNotificationBodyList {
String? dATEREQUIRED;
String? dESCRIPTION;
String? fROMLOCATOR;
int? fROMROWNUM;
String? fROMSUBINVENTORY;
String? iTEMCODE;
int? iTEMID;
int? lINENUMBER;
String? lINESTATUS;
int? nOOFROWS;
String? oPERATINGUNIT;
String? oRGANIZATIONCODE;
String? oRGANIZATIONNAME;
int? oRGID;
int? qUANTITY;
int? rOWNUM;
String? sHIPTOLOCATION;
String? sTATUSDATE;
String? tOLOCATOR;
int? tOROWNUM;
String? tOSUBINVENTORY;
String? tRANSACTIONTYPENAME;
String? uOM;
GetMoNotificationBodyList(
{this.dATEREQUIRED,
this.dESCRIPTION,
this.fROMLOCATOR,
this.fROMROWNUM,
this.fROMSUBINVENTORY,
this.iTEMCODE,
this.iTEMID,
this.lINENUMBER,
this.lINESTATUS,
this.nOOFROWS,
this.oPERATINGUNIT,
this.oRGANIZATIONCODE,
this.oRGANIZATIONNAME,
this.oRGID,
this.qUANTITY,
this.rOWNUM,
this.sHIPTOLOCATION,
this.sTATUSDATE,
this.tOLOCATOR,
this.tOROWNUM,
this.tOSUBINVENTORY,
this.tRANSACTIONTYPENAME,
this.uOM});
GetMoNotificationBodyList.fromJson(Map<String, dynamic> json) {
dATEREQUIRED = json['DATE_REQUIRED'];
dESCRIPTION = json['DESCRIPTION'];
fROMLOCATOR = json['FROM_LOCATOR'];
fROMROWNUM = json['FROM_ROW_NUM'];
fROMSUBINVENTORY = json['FROM_SUBINVENTORY'];
iTEMCODE = json['ITEM_CODE'];
iTEMID = json['ITEM_ID'];
lINENUMBER = json['LINE_NUMBER'];
lINESTATUS = json['LINE_STATUS'];
nOOFROWS = json['NO_OF_ROWS'];
oPERATINGUNIT = json['OPERATING_UNIT'];
oRGANIZATIONCODE = json['ORGANIZATION_CODE'];
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
oRGID = json['ORG_ID'];
qUANTITY = json['QUANTITY'];
rOWNUM = json['ROW_NUM'];
sHIPTOLOCATION = json['SHIP_TO_LOCATION'];
sTATUSDATE = json['STATUS_DATE'];
tOLOCATOR = json['TO_LOCATOR'];
tOROWNUM = json['TO_ROW_NUM'];
tOSUBINVENTORY = json['TO_SUBINVENTORY'];
tRANSACTIONTYPENAME = json['TRANSACTION_TYPE_NAME'];
uOM = json['UOM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DATE_REQUIRED'] = this.dATEREQUIRED;
data['DESCRIPTION'] = this.dESCRIPTION;
data['FROM_LOCATOR'] = this.fROMLOCATOR;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['FROM_SUBINVENTORY'] = this.fROMSUBINVENTORY;
data['ITEM_CODE'] = this.iTEMCODE;
data['ITEM_ID'] = this.iTEMID;
data['LINE_NUMBER'] = this.lINENUMBER;
data['LINE_STATUS'] = this.lINESTATUS;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['OPERATING_UNIT'] = this.oPERATINGUNIT;
data['ORGANIZATION_CODE'] = this.oRGANIZATIONCODE;
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
data['ORG_ID'] = this.oRGID;
data['QUANTITY'] = this.qUANTITY;
data['ROW_NUM'] = this.rOWNUM;
data['SHIP_TO_LOCATION'] = this.sHIPTOLOCATION;
data['STATUS_DATE'] = this.sTATUSDATE;
data['TO_LOCATOR'] = this.tOLOCATOR;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['TO_SUBINVENTORY'] = this.tOSUBINVENTORY;
data['TRANSACTION_TYPE_NAME'] = this.tRANSACTIONTYPENAME;
data['UOM'] = this.uOM;
return data;
}
}

@ -0,0 +1,25 @@
class GetNotificationButtonsList {
String? bUTTONACTION;
String? bUTTONICON;
String? bUTTONLABEL;
int? bUTTONSEQ;
GetNotificationButtonsList(
{this.bUTTONACTION, this.bUTTONICON, this.bUTTONLABEL, this.bUTTONSEQ});
GetNotificationButtonsList.fromJson(Map<String, dynamic> json) {
bUTTONACTION = json['BUTTON_ACTION'];
bUTTONICON = json['BUTTON_ICON'];
bUTTONLABEL = json['BUTTON_LABEL'];
bUTTONSEQ = json['BUTTON_SEQ'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['BUTTON_ACTION'] = this.bUTTONACTION;
data['BUTTON_ICON'] = this.bUTTONICON;
data['BUTTON_LABEL'] = this.bUTTONLABEL;
data['BUTTON_SEQ'] = this.bUTTONSEQ;
return data;
}
}

@ -0,0 +1,92 @@
class GetPoItemHistoryList {
int? bALANCEQUANTITY;
int? bONUSQUANTITY;
String? bUYER;
String? cLOSEDCODE;
String? cREATIONDATE;
int? dISCOUNTPERCENTAGE;
int? fROMROWNUM;
int? iTEMID;
int? nETPRICE;
int? nOOFROWS;
String? oUNAME;
String? pONUMBER;
int? pURCHASEPRICE;
int? qUANTITYORDERED;
int? qUANTITYRECEIVED;
int? rEVISIONNUM;
int? rOWNUM;
String? sUPPLIER;
int? tOROWNUM;
String? uOM;
GetPoItemHistoryList(
{this.bALANCEQUANTITY,
this.bONUSQUANTITY,
this.bUYER,
this.cLOSEDCODE,
this.cREATIONDATE,
this.dISCOUNTPERCENTAGE,
this.fROMROWNUM,
this.iTEMID,
this.nETPRICE,
this.nOOFROWS,
this.oUNAME,
this.pONUMBER,
this.pURCHASEPRICE,
this.qUANTITYORDERED,
this.qUANTITYRECEIVED,
this.rEVISIONNUM,
this.rOWNUM,
this.sUPPLIER,
this.tOROWNUM,
this.uOM});
GetPoItemHistoryList.fromJson(Map<String, dynamic> json) {
bALANCEQUANTITY = json['BALANCE_QUANTITY'];
bONUSQUANTITY = json['BONUS_QUANTITY'];
bUYER = json['BUYER'];
cLOSEDCODE = json['CLOSED_CODE'];
cREATIONDATE = json['CREATION_DATE'];
dISCOUNTPERCENTAGE = json['DISCOUNT_PERCENTAGE'];
fROMROWNUM = json['FROM_ROW_NUM'];
iTEMID = json['ITEM_ID'];
nETPRICE = json['NET_PRICE'];
nOOFROWS = json['NO_OF_ROWS'];
oUNAME = json['OU_NAME'];
pONUMBER = json['PO_NUMBER'];
pURCHASEPRICE = json['PURCHASE_PRICE'];
qUANTITYORDERED = json['QUANTITY_ORDERED'];
qUANTITYRECEIVED = json['QUANTITY_RECEIVED'];
rEVISIONNUM = json['REVISION_NUM'];
rOWNUM = json['ROW_NUM'];
sUPPLIER = json['SUPPLIER'];
tOROWNUM = json['TO_ROW_NUM'];
uOM = json['UOM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['BALANCE_QUANTITY'] = this.bALANCEQUANTITY;
data['BONUS_QUANTITY'] = this.bONUSQUANTITY;
data['BUYER'] = this.bUYER;
data['CLOSED_CODE'] = this.cLOSEDCODE;
data['CREATION_DATE'] = this.cREATIONDATE;
data['DISCOUNT_PERCENTAGE'] = this.dISCOUNTPERCENTAGE;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['ITEM_ID'] = this.iTEMID;
data['NET_PRICE'] = this.nETPRICE;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['OU_NAME'] = this.oUNAME;
data['PO_NUMBER'] = this.pONUMBER;
data['PURCHASE_PRICE'] = this.pURCHASEPRICE;
data['QUANTITY_ORDERED'] = this.qUANTITYORDERED;
data['QUANTITY_RECEIVED'] = this.qUANTITYRECEIVED;
data['REVISION_NUM'] = this.rEVISIONNUM;
data['ROW_NUM'] = this.rOWNUM;
data['SUPPLIER'] = this.sUPPLIER;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['UOM'] = this.uOM;
return data;
}
}

@ -0,0 +1,242 @@
class GetPoNotificationBodyList {
List<POHeader>? pOHeader;
List<POLines>? pOLines;
String? pINFORMATION;
String? pQUESTION;
GetPoNotificationBodyList(
{this.pOHeader, this.pOLines, this.pINFORMATION, this.pQUESTION});
GetPoNotificationBodyList.fromJson(Map<String, dynamic> json) {
if (json['POHeader'] != null) {
pOHeader = <POHeader>[];
json['POHeader'].forEach((v) {
pOHeader!.add(new POHeader.fromJson(v));
});
}
if (json['POLines'] != null) {
pOLines = <POLines>[];
json['POLines'].forEach((v) {
pOLines!.add(new POLines.fromJson(v));
});
}
pINFORMATION = json['P_INFORMATION'];
pQUESTION = json['P_QUESTION'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.pOHeader != null) {
data['POHeader'] = this.pOHeader!.map((v) => v.toJson()).toList();
}
if (this.pOLines != null) {
data['POLines'] = this.pOLines!.map((v) => v.toJson()).toList();
}
data['P_INFORMATION'] = this.pINFORMATION;
data['P_QUESTION'] = this.pQUESTION;
return data;
}
}
class POHeader {
String? bUYER;
String? cOMMENTS;
String? cREATIONDATE;
String? cURRENCYNAME;
int? cUSTOMDUTY;
int? dISCOUNTAMOUNT;
int? gROSSAMOUNT;
String? lOCCUR;
int? lOCCURTOTPOAMT;
int? oTHERCHARGES;
String? pAYMENTTERMS;
String? pONUMBER;
String? pREPARER;
String? qUOTATIONDATE;
String? qUOTATIONNUMBER;
int? sALESTAX;
int? sHIPHANDLE;
String? sHIPTOLOCATIONNAME;
int? tOTALPODISCOUNT;
int? tOTPOAMT;
String? tOTPOAMTWORD;
String? vENDORNAME;
String? vENDORSITECODE;
POHeader(
{this.bUYER,
this.cOMMENTS,
this.cREATIONDATE,
this.cURRENCYNAME,
this.cUSTOMDUTY,
this.dISCOUNTAMOUNT,
this.gROSSAMOUNT,
this.lOCCUR,
this.lOCCURTOTPOAMT,
this.oTHERCHARGES,
this.pAYMENTTERMS,
this.pONUMBER,
this.pREPARER,
this.qUOTATIONDATE,
this.qUOTATIONNUMBER,
this.sALESTAX,
this.sHIPHANDLE,
this.sHIPTOLOCATIONNAME,
this.tOTALPODISCOUNT,
this.tOTPOAMT,
this.tOTPOAMTWORD,
this.vENDORNAME,
this.vENDORSITECODE});
POHeader.fromJson(Map<String, dynamic> json) {
bUYER = json['BUYER'];
cOMMENTS = json['COMMENTS'];
cREATIONDATE = json['CREATION_DATE'];
cURRENCYNAME = json['CURRENCY_NAME'];
cUSTOMDUTY = json['CUSTOM_DUTY'];
dISCOUNTAMOUNT = json['DISCOUNT_AMOUNT'];
gROSSAMOUNT = json['GROSS_AMOUNT'];
lOCCUR = json['LOC_CUR'];
lOCCURTOTPOAMT = json['LOC_CUR_TOT_PO_AMT'];
oTHERCHARGES = json['OTHER_CHARGES'];
pAYMENTTERMS = json['PAYMENT_TERMS'];
pONUMBER = json['PO_NUMBER'];
pREPARER = json['PREPARER'];
qUOTATIONDATE = json['QUOTATION_DATE'];
qUOTATIONNUMBER = json['QUOTATION_NUMBER'];
sALESTAX = json['SALES_TAX'];
sHIPHANDLE = json['SHIP_HANDLE'];
sHIPTOLOCATIONNAME = json['SHIP_TO_LOCATION_NAME'];
tOTALPODISCOUNT = json['TOTAL_PO_DISCOUNT'];
tOTPOAMT = json['TOT_PO_AMT'];
tOTPOAMTWORD = json['TOT_PO_AMT_WORD'];
vENDORNAME = json['VENDOR_NAME'];
vENDORSITECODE = json['VENDOR_SITE_CODE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['BUYER'] = this.bUYER;
data['COMMENTS'] = this.cOMMENTS;
data['CREATION_DATE'] = this.cREATIONDATE;
data['CURRENCY_NAME'] = this.cURRENCYNAME;
data['CUSTOM_DUTY'] = this.cUSTOMDUTY;
data['DISCOUNT_AMOUNT'] = this.dISCOUNTAMOUNT;
data['GROSS_AMOUNT'] = this.gROSSAMOUNT;
data['LOC_CUR'] = this.lOCCUR;
data['LOC_CUR_TOT_PO_AMT'] = this.lOCCURTOTPOAMT;
data['OTHER_CHARGES'] = this.oTHERCHARGES;
data['PAYMENT_TERMS'] = this.pAYMENTTERMS;
data['PO_NUMBER'] = this.pONUMBER;
data['PREPARER'] = this.pREPARER;
data['QUOTATION_DATE'] = this.qUOTATIONDATE;
data['QUOTATION_NUMBER'] = this.qUOTATIONNUMBER;
data['SALES_TAX'] = this.sALESTAX;
data['SHIP_HANDLE'] = this.sHIPHANDLE;
data['SHIP_TO_LOCATION_NAME'] = this.sHIPTOLOCATIONNAME;
data['TOTAL_PO_DISCOUNT'] = this.tOTALPODISCOUNT;
data['TOT_PO_AMT'] = this.tOTPOAMT;
data['TOT_PO_AMT_WORD'] = this.tOTPOAMTWORD;
data['VENDOR_NAME'] = this.vENDORNAME;
data['VENDOR_SITE_CODE'] = this.vENDORSITECODE;
return data;
}
}
class POLines {
String? dELIVERTOLOCATION;
int? fROMROWNUM;
String? iTEMCODE;
String? iTEMDESCRIPTION;
int? iTEMID;
int? lINEAMOUNT;
int? lINEDISCPERCENTAGE;
int? lINENUM;
String? lINETYPE;
String? mFG;
String? nEEDBYDATE;
int? nOOFROWS;
int? pOHEADERID;
String? pROMISEDDATE;
String? pRNUM;
int? qUANTITY;
String? rEQUESTOR;
int? rOWNUM;
int? tOROWNUM;
int? uNITPRICE;
String? uOM;
POLines(
{this.dELIVERTOLOCATION,
this.fROMROWNUM,
this.iTEMCODE,
this.iTEMDESCRIPTION,
this.iTEMID,
this.lINEAMOUNT,
this.lINEDISCPERCENTAGE,
this.lINENUM,
this.lINETYPE,
this.mFG,
this.nEEDBYDATE,
this.nOOFROWS,
this.pOHEADERID,
this.pROMISEDDATE,
this.pRNUM,
this.qUANTITY,
this.rEQUESTOR,
this.rOWNUM,
this.tOROWNUM,
this.uNITPRICE,
this.uOM});
POLines.fromJson(Map<String, dynamic> json) {
dELIVERTOLOCATION = json['DELIVER_TO_LOCATION'];
fROMROWNUM = json['FROM_ROW_NUM'];
iTEMCODE = json['ITEM_CODE'];
iTEMDESCRIPTION = json['ITEM_DESCRIPTION'];
iTEMID = json['ITEM_ID'];
lINEAMOUNT = json['LINE_AMOUNT'];
lINEDISCPERCENTAGE = json['LINE_DISC_PERCENTAGE'];
lINENUM = json['LINE_NUM'];
lINETYPE = json['LINE_TYPE'];
mFG = json['MFG'];
nEEDBYDATE = json['NEED_BY_DATE'];
nOOFROWS = json['NO_OF_ROWS'];
pOHEADERID = json['PO_HEADER_ID'];
pROMISEDDATE = json['PROMISED_DATE'];
pRNUM = json['PR_NUM'];
qUANTITY = json['QUANTITY'];
rEQUESTOR = json['REQUESTOR'];
rOWNUM = json['ROW_NUM'];
tOROWNUM = json['TO_ROW_NUM'];
uNITPRICE = json['UNIT_PRICE'];
uOM = json['UOM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DELIVER_TO_LOCATION'] = this.dELIVERTOLOCATION;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['ITEM_CODE'] = this.iTEMCODE;
data['ITEM_DESCRIPTION'] = this.iTEMDESCRIPTION;
data['ITEM_ID'] = this.iTEMID;
data['LINE_AMOUNT'] = this.lINEAMOUNT;
data['LINE_DISC_PERCENTAGE'] = this.lINEDISCPERCENTAGE;
data['LINE_NUM'] = this.lINENUM;
data['LINE_TYPE'] = this.lINETYPE;
data['MFG'] = this.mFG;
data['NEED_BY_DATE'] = this.nEEDBYDATE;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['PO_HEADER_ID'] = this.pOHEADERID;
data['PROMISED_DATE'] = this.pROMISEDDATE;
data['PR_NUM'] = this.pRNUM;
data['QUANTITY'] = this.qUANTITY;
data['REQUESTOR'] = this.rEQUESTOR;
data['ROW_NUM'] = this.rOWNUM;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['UNIT_PRICE'] = this.uNITPRICE;
data['UOM'] = this.uOM;
return data;
}
}

@ -0,0 +1,84 @@
class GetQuotationAnalysisList {
int? fROMROWNUM;
String? iTEMCODE;
String? iTEMDESC;
int? nOOFROWS;
String? qUOTBONUSQTY;
String? qUOTDELIVERYDATE;
int? qUOTLINETOTAL;
String? qUOTMFGPARTNUM;
String? qUOTNUM;
int? qUOTQTY;
int? qUOTUNITPRICE;
String? qUOTUOM;
String? rFQNUM;
int? rFQQTY;
String? rFQUOM;
int? rOWNUM;
int? tOROWNUM;
String? vENDORNAME;
GetQuotationAnalysisList(
{this.fROMROWNUM,
this.iTEMCODE,
this.iTEMDESC,
this.nOOFROWS,
this.qUOTBONUSQTY,
this.qUOTDELIVERYDATE,
this.qUOTLINETOTAL,
this.qUOTMFGPARTNUM,
this.qUOTNUM,
this.qUOTQTY,
this.qUOTUNITPRICE,
this.qUOTUOM,
this.rFQNUM,
this.rFQQTY,
this.rFQUOM,
this.rOWNUM,
this.tOROWNUM,
this.vENDORNAME});
GetQuotationAnalysisList.fromJson(Map<String, dynamic> json) {
fROMROWNUM = json['FROM_ROW_NUM'];
iTEMCODE = json['ITEM_CODE'];
iTEMDESC = json['ITEM_DESC'];
nOOFROWS = json['NO_OF_ROWS'];
qUOTBONUSQTY = json['QUOT_BONUS_QTY'];
qUOTDELIVERYDATE = json['QUOT_DELIVERY_DATE'];
qUOTLINETOTAL = json['QUOT_LINE_TOTAL'];
qUOTMFGPARTNUM = json['QUOT_MFG_PART_NUM'];
qUOTNUM = json['QUOT_NUM'];
qUOTQTY = json['QUOT_QTY'];
qUOTUNITPRICE = json['QUOT_UNIT_PRICE'];
qUOTUOM = json['QUOT_UOM'];
rFQNUM = json['RFQ_NUM'];
rFQQTY = json['RFQ_QTY'];
rFQUOM = json['RFQ_UOM'];
rOWNUM = json['ROW_NUM'];
tOROWNUM = json['TO_ROW_NUM'];
vENDORNAME = json['VENDOR_NAME'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['ITEM_CODE'] = this.iTEMCODE;
data['ITEM_DESC'] = this.iTEMDESC;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['QUOT_BONUS_QTY'] = this.qUOTBONUSQTY;
data['QUOT_DELIVERY_DATE'] = this.qUOTDELIVERYDATE;
data['QUOT_LINE_TOTAL'] = this.qUOTLINETOTAL;
data['QUOT_MFG_PART_NUM'] = this.qUOTMFGPARTNUM;
data['QUOT_NUM'] = this.qUOTNUM;
data['QUOT_QTY'] = this.qUOTQTY;
data['QUOT_UNIT_PRICE'] = this.qUOTUNITPRICE;
data['QUOT_UOM'] = this.qUOTUOM;
data['RFQ_NUM'] = this.rFQNUM;
data['RFQ_QTY'] = this.rFQQTY;
data['RFQ_UOM'] = this.rFQUOM;
data['ROW_NUM'] = this.rOWNUM;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['VENDOR_NAME'] = this.vENDORNAME;
return data;
}
}

@ -0,0 +1,129 @@
class GetScheduleShiftsDetailsList {
String? aCTUALWOBHRS;
String? aPPROVEDENDDATETIME;
String? aPPROVEDENDREASON;
String? aPPROVEDENDREASONDESC;
String? aPPROVEDENDTIME;
String? aPPROVEDSTARTDATETIME;
String? aPPROVEDSTARTREASON;
String? aPPROVEDSTARTREASONDESC;
String? aPPROVEDSTARTTIME;
int? aSSIGNMENTID;
String? bREAKNAME;
int? fROMROWNUM;
int? nOOFROWS;
String? pERCENTAGE;
int? rOWNUM;
int? rTPID;
int? rTPSCHEDULEID;
String? sCHEDULEDATE;
int? sEQNO;
String? sHTACTUALENDDATETIME;
String? sHTACTUALENDTIME;
String? sHTACTUALHRS;
String? sHTACTUALSTARTDATETIME;
String? sHTACTUALSTARTTIME;
String? sHTCODE;
String? sHTNAME;
String? sHTTYPE;
String? sHTTYPEDESC;
int? tOROWNUM;
GetScheduleShiftsDetailsList(
{this.aCTUALWOBHRS,
this.aPPROVEDENDDATETIME,
this.aPPROVEDENDREASON,
this.aPPROVEDENDREASONDESC,
this.aPPROVEDENDTIME,
this.aPPROVEDSTARTDATETIME,
this.aPPROVEDSTARTREASON,
this.aPPROVEDSTARTREASONDESC,
this.aPPROVEDSTARTTIME,
this.aSSIGNMENTID,
this.bREAKNAME,
this.fROMROWNUM,
this.nOOFROWS,
this.pERCENTAGE,
this.rOWNUM,
this.rTPID,
this.rTPSCHEDULEID,
this.sCHEDULEDATE,
this.sEQNO,
this.sHTACTUALENDDATETIME,
this.sHTACTUALENDTIME,
this.sHTACTUALHRS,
this.sHTACTUALSTARTDATETIME,
this.sHTACTUALSTARTTIME,
this.sHTCODE,
this.sHTNAME,
this.sHTTYPE,
this.sHTTYPEDESC,
this.tOROWNUM});
GetScheduleShiftsDetailsList.fromJson(Map<String, dynamic> json) {
aCTUALWOBHRS = json['ACTUAL_WOB_HRS'];
aPPROVEDENDDATETIME = json['APPROVED_END_DATETIME'];
aPPROVEDENDREASON = json['APPROVED_END_REASON'];
aPPROVEDENDREASONDESC = json['APPROVED_END_REASON_DESC'];
aPPROVEDENDTIME = json['APPROVED_END_TIME'];
aPPROVEDSTARTDATETIME = json['APPROVED_START_DATETIME'];
aPPROVEDSTARTREASON = json['APPROVED_START_REASON'];
aPPROVEDSTARTREASONDESC = json['APPROVED_START_REASON_DESC'];
aPPROVEDSTARTTIME = json['APPROVED_START_TIME'];
aSSIGNMENTID = json['ASSIGNMENT_ID'];
bREAKNAME = json['BREAK_NAME'];
fROMROWNUM = json['FROM_ROW_NUM'];
nOOFROWS = json['NO_OF_ROWS'];
pERCENTAGE = json['PERCENTAGE'];
rOWNUM = json['ROW_NUM'];
rTPID = json['RTP_ID'];
rTPSCHEDULEID = json['RTP_SCHEDULE_ID'];
sCHEDULEDATE = json['SCHEDULE_DATE'];
sEQNO = json['SEQ_NO'];
sHTACTUALENDDATETIME = json['SHT_ACTUAL_END_DATETIME'];
sHTACTUALENDTIME = json['SHT_ACTUAL_END_TIME'];
sHTACTUALHRS = json['SHT_ACTUAL_HRS'];
sHTACTUALSTARTDATETIME = json['SHT_ACTUAL_START_DATETIME'];
sHTACTUALSTARTTIME = json['SHT_ACTUAL_START_TIME'];
sHTCODE = json['SHT_CODE'];
sHTNAME = json['SHT_NAME'];
sHTTYPE = json['SHT_TYPE'];
sHTTYPEDESC = json['SHT_TYPE_DESC'];
tOROWNUM = json['TO_ROW_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ACTUAL_WOB_HRS'] = this.aCTUALWOBHRS;
data['APPROVED_END_DATETIME'] = this.aPPROVEDENDDATETIME;
data['APPROVED_END_REASON'] = this.aPPROVEDENDREASON;
data['APPROVED_END_REASON_DESC'] = this.aPPROVEDENDREASONDESC;
data['APPROVED_END_TIME'] = this.aPPROVEDENDTIME;
data['APPROVED_START_DATETIME'] = this.aPPROVEDSTARTDATETIME;
data['APPROVED_START_REASON'] = this.aPPROVEDSTARTREASON;
data['APPROVED_START_REASON_DESC'] = this.aPPROVEDSTARTREASONDESC;
data['APPROVED_START_TIME'] = this.aPPROVEDSTARTTIME;
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
data['BREAK_NAME'] = this.bREAKNAME;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['PERCENTAGE'] = this.pERCENTAGE;
data['ROW_NUM'] = this.rOWNUM;
data['RTP_ID'] = this.rTPID;
data['RTP_SCHEDULE_ID'] = this.rTPSCHEDULEID;
data['SCHEDULE_DATE'] = this.sCHEDULEDATE;
data['SEQ_NO'] = this.sEQNO;
data['SHT_ACTUAL_END_DATETIME'] = this.sHTACTUALENDDATETIME;
data['SHT_ACTUAL_END_TIME'] = this.sHTACTUALENDTIME;
data['SHT_ACTUAL_HRS'] = this.sHTACTUALHRS;
data['SHT_ACTUAL_START_DATETIME'] = this.sHTACTUALSTARTDATETIME;
data['SHT_ACTUAL_START_TIME'] = this.sHTACTUALSTARTTIME;
data['SHT_CODE'] = this.sHTCODE;
data['SHT_NAME'] = this.sHTNAME;
data['SHT_TYPE'] = this.sHTTYPE;
data['SHT_TYPE_DESC'] = this.sHTTYPEDESC;
data['TO_ROW_NUM'] = this.tOROWNUM;
return data;
}
}

@ -0,0 +1,132 @@
class GetStampMsNotificationBodyList {
int? aCTUALWOBHRS;
int? aCTUALWOBSEC;
String? aPPROVEDENDREASONDESC;
String? aPPROVEDSTARTDATETIME;
String? aPPROVEDSTARTREASON;
String? aPPROVEDSTARTTIME;
int? aSSIGNMENTID;
int? aSSIGNMENTNUMBER;
String? bREAKNAME;
String? bUSINESSGROUPID;
String? eMPLOYEENAME;
int? eMPLOYEENUMBER;
String? eMPLOYMENTCATEGORY;
int? pAYROLLID;
String? pAYROLLNAME;
String? sCHEDULEDATE;
int? sEQNO;
String? sHTACTUALENDDATETIME;
String? sHTACTUALENDTIME;
String? sHTACTUALHRS;
int? sHTACTUALSEC;
String? sHTACTUALSTARTDATETIME;
String? sHTACTUALSTARTTIME;
String? sHTCODE;
int? sHTID;
String? sHTNAME;
String? sHTTYPE;
String? sHTTYPEDESC;
int? sUPERVISORID;
int? tKPERSONID;
GetStampMsNotificationBodyList(
{this.aCTUALWOBHRS,
this.aCTUALWOBSEC,
this.aPPROVEDENDREASONDESC,
this.aPPROVEDSTARTDATETIME,
this.aPPROVEDSTARTREASON,
this.aPPROVEDSTARTTIME,
this.aSSIGNMENTID,
this.aSSIGNMENTNUMBER,
this.bREAKNAME,
this.bUSINESSGROUPID,
this.eMPLOYEENAME,
this.eMPLOYEENUMBER,
this.eMPLOYMENTCATEGORY,
this.pAYROLLID,
this.pAYROLLNAME,
this.sCHEDULEDATE,
this.sEQNO,
this.sHTACTUALENDDATETIME,
this.sHTACTUALENDTIME,
this.sHTACTUALHRS,
this.sHTACTUALSEC,
this.sHTACTUALSTARTDATETIME,
this.sHTACTUALSTARTTIME,
this.sHTCODE,
this.sHTID,
this.sHTNAME,
this.sHTTYPE,
this.sHTTYPEDESC,
this.sUPERVISORID,
this.tKPERSONID});
GetStampMsNotificationBodyList.fromJson(Map<String, dynamic> json) {
aCTUALWOBHRS = json['ACTUAL_WOB_HRS'];
aCTUALWOBSEC = json['ACTUAL_WOB_SEC'];
aPPROVEDENDREASONDESC = json['APPROVED_END_REASON_DESC'];
aPPROVEDSTARTDATETIME = json['APPROVED_START_DATETIME'];
aPPROVEDSTARTREASON = json['APPROVED_START_REASON'];
aPPROVEDSTARTTIME = json['APPROVED_START_TIME'];
aSSIGNMENTID = json['ASSIGNMENT_ID'];
aSSIGNMENTNUMBER = json['ASSIGNMENT_NUMBER'];
bREAKNAME = json['BREAK_NAME'];
bUSINESSGROUPID = json['BUSINESS_GROUP_ID'];
eMPLOYEENAME = json['EMPLOYEE_NAME'];
eMPLOYEENUMBER = json['EMPLOYEE_NUMBER'];
eMPLOYMENTCATEGORY = json['EMPLOYMENT_CATEGORY'];
pAYROLLID = json['PAYROLL_ID'];
pAYROLLNAME = json['PAYROLL_NAME'];
sCHEDULEDATE = json['SCHEDULE_DATE'];
sEQNO = json['SEQ_NO'];
sHTACTUALENDDATETIME = json['SHT_ACTUAL_END_DATETIME'];
sHTACTUALENDTIME = json['SHT_ACTUAL_END_TIME'];
sHTACTUALHRS = json['SHT_ACTUAL_HRS'];
sHTACTUALSEC = json['SHT_ACTUAL_SEC'];
sHTACTUALSTARTDATETIME = json['SHT_ACTUAL_START_DATETIME'];
sHTACTUALSTARTTIME = json['SHT_ACTUAL_START_TIME'];
sHTCODE = json['SHT_CODE'];
sHTID = json['SHT_ID'];
sHTNAME = json['SHT_NAME'];
sHTTYPE = json['SHT_TYPE'];
sHTTYPEDESC = json['SHT_TYPE_DESC'];
sUPERVISORID = json['SUPERVISOR_ID'];
tKPERSONID = json['TK_PERSON_ID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ACTUAL_WOB_HRS'] = this.aCTUALWOBHRS;
data['ACTUAL_WOB_SEC'] = this.aCTUALWOBSEC;
data['APPROVED_END_REASON_DESC'] = this.aPPROVEDENDREASONDESC;
data['APPROVED_START_DATETIME'] = this.aPPROVEDSTARTDATETIME;
data['APPROVED_START_REASON'] = this.aPPROVEDSTARTREASON;
data['APPROVED_START_TIME'] = this.aPPROVEDSTARTTIME;
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
data['ASSIGNMENT_NUMBER'] = this.aSSIGNMENTNUMBER;
data['BREAK_NAME'] = this.bREAKNAME;
data['BUSINESS_GROUP_ID'] = this.bUSINESSGROUPID;
data['EMPLOYEE_NAME'] = this.eMPLOYEENAME;
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
data['EMPLOYMENT_CATEGORY'] = this.eMPLOYMENTCATEGORY;
data['PAYROLL_ID'] = this.pAYROLLID;
data['PAYROLL_NAME'] = this.pAYROLLNAME;
data['SCHEDULE_DATE'] = this.sCHEDULEDATE;
data['SEQ_NO'] = this.sEQNO;
data['SHT_ACTUAL_END_DATETIME'] = this.sHTACTUALENDDATETIME;
data['SHT_ACTUAL_END_TIME'] = this.sHTACTUALENDTIME;
data['SHT_ACTUAL_HRS'] = this.sHTACTUALHRS;
data['SHT_ACTUAL_SEC'] = this.sHTACTUALSEC;
data['SHT_ACTUAL_START_DATETIME'] = this.sHTACTUALSTARTDATETIME;
data['SHT_ACTUAL_START_TIME'] = this.sHTACTUALSTARTTIME;
data['SHT_CODE'] = this.sHTCODE;
data['SHT_ID'] = this.sHTID;
data['SHT_NAME'] = this.sHTNAME;
data['SHT_TYPE'] = this.sHTTYPE;
data['SHT_TYPE_DESC'] = this.sHTTYPEDESC;
data['SUPERVISOR_ID'] = this.sUPERVISORID;
data['TK_PERSON_ID'] = this.tKPERSONID;
return data;
}
}

@ -0,0 +1,61 @@
class GetStampNsNotificationBodyList {
int? aSSIGNMENTID;
String? aSSIGNMENTNUMBER;
int? bUSINESSGROUPID;
String? eMPLOYEENAME;
String? eMPLOYEENUMBER;
String? eMPLOYMENTCATEGORY;
int? pAYROLLID;
String? pAYROLLNAME;
int? pERSONID;
String? sCHEDULEDATE;
int? sUPERVISORID;
int? tKPERSONID;
GetStampNsNotificationBodyList(
{this.aSSIGNMENTID,
this.aSSIGNMENTNUMBER,
this.bUSINESSGROUPID,
this.eMPLOYEENAME,
this.eMPLOYEENUMBER,
this.eMPLOYMENTCATEGORY,
this.pAYROLLID,
this.pAYROLLNAME,
this.pERSONID,
this.sCHEDULEDATE,
this.sUPERVISORID,
this.tKPERSONID});
GetStampNsNotificationBodyList.fromJson(Map<String, dynamic> json) {
aSSIGNMENTID = json['ASSIGNMENT_ID'];
aSSIGNMENTNUMBER = json['ASSIGNMENT_NUMBER'];
bUSINESSGROUPID = json['BUSINESS_GROUP_ID'];
eMPLOYEENAME = json['EMPLOYEE_NAME'];
eMPLOYEENUMBER = json['EMPLOYEE_NUMBER'];
eMPLOYMENTCATEGORY = json['EMPLOYMENT_CATEGORY'];
pAYROLLID = json['PAYROLL_ID'];
pAYROLLNAME = json['PAYROLL_NAME'];
pERSONID = json['PERSON_ID'];
sCHEDULEDATE = json['SCHEDULE_DATE'];
sUPERVISORID = json['SUPERVISOR_ID'];
tKPERSONID = json['TK_PERSON_ID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
data['ASSIGNMENT_NUMBER'] = this.aSSIGNMENTNUMBER;
data['BUSINESS_GROUP_ID'] = this.bUSINESSGROUPID;
data['EMPLOYEE_NAME'] = this.eMPLOYEENAME;
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
data['EMPLOYMENT_CATEGORY'] = this.eMPLOYMENTCATEGORY;
data['PAYROLL_ID'] = this.pAYROLLID;
data['PAYROLL_NAME'] = this.pAYROLLNAME;
data['PERSON_ID'] = this.pERSONID;
data['SCHEDULE_DATE'] = this.sCHEDULEDATE;
data['SUPERVISOR_ID'] = this.sUPERVISORID;
data['TK_PERSON_ID'] = this.tKPERSONID;
return data;
}
}

@ -0,0 +1,153 @@
class GetTimeCardSummaryList {
int? aBSENTDAYS;
int? aCTUALHRS;
int? aPPROVEDTIMEBACKHRS;
int? aSSIGNMENTID;
int? aTTENDEDDAYS;
int? bUSINESSTRIP;
int? cOMPOFFHHRS;
int? cOMPOFFNHRS;
int? cOMPOFFWHRS;
int? dESIREDSCHEDULEDHRS;
int? eARLYOUTHRS;
int? eXCESSHRS;
int? hALFDAYLEAVE;
int? lATEINHRS;
int? lEAVESHOLIDAYSHRS;
int? nONSCHEDULEDAYS;
int? nOTANALYZEDDAYS;
int? oFFDAYS;
int? oNCALLHRS;
int? pAIDLEAVE;
int? pERIODDAYS;
int? pLANNEDOTHRS;
int? pUBLICHOLIDAY;
int? sCHEDULEDHRS;
int? sCHEDULEDONCALLHRS;
int? sCHEDULEDPLANNEDOTHRS;
int? sCHEDULEDAYS;
int? sHORTAGEHRS;
int? sHORTAGESCHEDULEHRS;
int? sICKLEAVE;
int? tIMEBACKHRS;
double? tIMEBACKBALANCE;
int? uNAUTHORIZEDLEAVE;
int? uNCOVERDSHORTAGEHRS;
int? uNPAIDLEAVE;
GetTimeCardSummaryList(
{this.aBSENTDAYS,
this.aCTUALHRS,
this.aPPROVEDTIMEBACKHRS,
this.aSSIGNMENTID,
this.aTTENDEDDAYS,
this.bUSINESSTRIP,
this.cOMPOFFHHRS,
this.cOMPOFFNHRS,
this.cOMPOFFWHRS,
this.dESIREDSCHEDULEDHRS,
this.eARLYOUTHRS,
this.eXCESSHRS,
this.hALFDAYLEAVE,
this.lATEINHRS,
this.lEAVESHOLIDAYSHRS,
this.nONSCHEDULEDAYS,
this.nOTANALYZEDDAYS,
this.oFFDAYS,
this.oNCALLHRS,
this.pAIDLEAVE,
this.pERIODDAYS,
this.pLANNEDOTHRS,
this.pUBLICHOLIDAY,
this.sCHEDULEDHRS,
this.sCHEDULEDONCALLHRS,
this.sCHEDULEDPLANNEDOTHRS,
this.sCHEDULEDAYS,
this.sHORTAGEHRS,
this.sHORTAGESCHEDULEHRS,
this.sICKLEAVE,
this.tIMEBACKHRS,
this.tIMEBACKBALANCE,
this.uNAUTHORIZEDLEAVE,
this.uNCOVERDSHORTAGEHRS,
this.uNPAIDLEAVE});
GetTimeCardSummaryList.fromJson(Map<String, dynamic> json) {
aBSENTDAYS = json['ABSENT_DAYS'];
aCTUALHRS = json['ACTUAL_HRS'];
aPPROVEDTIMEBACKHRS = json['APPROVED_TIMEBACK_HRS'];
aSSIGNMENTID = json['ASSIGNMENT_ID'];
aTTENDEDDAYS = json['ATTENDED_DAYS'];
bUSINESSTRIP = json['BUSINESS_TRIP'];
cOMPOFFHHRS = json['COMP_OFF_H_HRS'];
cOMPOFFNHRS = json['COMP_OFF_N_HRS'];
cOMPOFFWHRS = json['COMP_OFF_W_HRS'];
dESIREDSCHEDULEDHRS = json['DESIRED_SCHEDULED_HRS'];
eARLYOUTHRS = json['EARLY_OUT_HRS'];
eXCESSHRS = json['EXCESS_HRS'];
hALFDAYLEAVE = json['HALF_DAY_LEAVE'];
lATEINHRS = json['LATE_IN_HRS'];
lEAVESHOLIDAYSHRS = json['LEAVES_HOLIDAYS_HRS'];
nONSCHEDULEDAYS = json['NON_SCHEDULE_DAYS'];
nOTANALYZEDDAYS = json['NOT_ANALYZED_DAYS'];
oFFDAYS = json['OFF_DAYS'];
oNCALLHRS = json['ON_CALL_HRS'];
pAIDLEAVE = json['PAID_LEAVE'];
pERIODDAYS = json['PERIOD_DAYS'];
pLANNEDOTHRS = json['PLANNED_OTHRS'];
pUBLICHOLIDAY = json['PUBLIC_HOLIDAY'];
sCHEDULEDHRS = json['SCHEDULED_HRS'];
sCHEDULEDONCALLHRS = json['SCHEDULED_ON_CALL_HRS'];
sCHEDULEDPLANNEDOTHRS = json['SCHEDULED_PLANNED_OT_HRS'];
sCHEDULEDAYS = json['SCHEDULE_DAYS'];
sHORTAGEHRS = json['SHORTAGE_HRS'];
sHORTAGESCHEDULEHRS = json['SHORTAGE_SCHEDULE_HRS'];
sICKLEAVE = json['SICK_LEAVE'];
tIMEBACKHRS = json['TIMEBACK_HRS'];
tIMEBACKBALANCE = json['TIME_BACK_BALANCE'];
uNAUTHORIZEDLEAVE = json['UNAUTHORIZED_LEAVE'];
uNCOVERDSHORTAGEHRS = json['UNCOVERD_SHORTAGE_HRS'];
uNPAIDLEAVE = json['UNPAID_LEAVE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ABSENT_DAYS'] = this.aBSENTDAYS;
data['ACTUAL_HRS'] = this.aCTUALHRS;
data['APPROVED_TIMEBACK_HRS'] = this.aPPROVEDTIMEBACKHRS;
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
data['ATTENDED_DAYS'] = this.aTTENDEDDAYS;
data['BUSINESS_TRIP'] = this.bUSINESSTRIP;
data['COMP_OFF_H_HRS'] = this.cOMPOFFHHRS;
data['COMP_OFF_N_HRS'] = this.cOMPOFFNHRS;
data['COMP_OFF_W_HRS'] = this.cOMPOFFWHRS;
data['DESIRED_SCHEDULED_HRS'] = this.dESIREDSCHEDULEDHRS;
data['EARLY_OUT_HRS'] = this.eARLYOUTHRS;
data['EXCESS_HRS'] = this.eXCESSHRS;
data['HALF_DAY_LEAVE'] = this.hALFDAYLEAVE;
data['LATE_IN_HRS'] = this.lATEINHRS;
data['LEAVES_HOLIDAYS_HRS'] = this.lEAVESHOLIDAYSHRS;
data['NON_SCHEDULE_DAYS'] = this.nONSCHEDULEDAYS;
data['NOT_ANALYZED_DAYS'] = this.nOTANALYZEDDAYS;
data['OFF_DAYS'] = this.oFFDAYS;
data['ON_CALL_HRS'] = this.oNCALLHRS;
data['PAID_LEAVE'] = this.pAIDLEAVE;
data['PERIOD_DAYS'] = this.pERIODDAYS;
data['PLANNED_OTHRS'] = this.pLANNEDOTHRS;
data['PUBLIC_HOLIDAY'] = this.pUBLICHOLIDAY;
data['SCHEDULED_HRS'] = this.sCHEDULEDHRS;
data['SCHEDULED_ON_CALL_HRS'] = this.sCHEDULEDONCALLHRS;
data['SCHEDULED_PLANNED_OT_HRS'] = this.sCHEDULEDPLANNEDOTHRS;
data['SCHEDULE_DAYS'] = this.sCHEDULEDAYS;
data['SHORTAGE_HRS'] = this.sHORTAGEHRS;
data['SHORTAGE_SCHEDULE_HRS'] = this.sHORTAGESCHEDULEHRS;
data['SICK_LEAVE'] = this.sICKLEAVE;
data['TIMEBACK_HRS'] = this.tIMEBACKHRS;
data['TIME_BACK_BALANCE'] = this.tIMEBACKBALANCE;
data['UNAUTHORIZED_LEAVE'] = this.uNAUTHORIZEDLEAVE;
data['UNCOVERD_SHORTAGE_HRS'] = this.uNCOVERDSHORTAGEHRS;
data['UNPAID_LEAVE'] = this.uNPAIDLEAVE;
return data;
}}

@ -0,0 +1,21 @@
class AllowedActions {
String? action;
String? details;
bool? isAvailable;
AllowedActions({this.action, this.details, this.isAvailable});
AllowedActions.fromJson(Map<String, dynamic> json) {
action = json['Action'];
details = json['Details'];
isAvailable = json['IsAvailable'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['Action'] = this.action;
data['Details'] = this.details;
data['IsAvailable'] = this.isAvailable;
return data;
}
}

@ -0,0 +1,27 @@
import 'package:mohem_flutter_app/models/itg_forms_models/fields_model.dart';
class FieldGoups {
List<Fields>? fields;
String? title;
FieldGoups({this.fields, this.title});
FieldGoups.fromJson(Map<String, dynamic> json) {
if (json['Fields'] != null) {
fields = <Fields>[];
json['Fields'].forEach((v) {
fields!.add(new Fields.fromJson(v));
});
}
title = json['Title'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.fields != null) {
data['Fields'] = this.fields!.map((v) => v.toJson()).toList();
}
data['Title'] = this.title;
return data;
}
}

@ -0,0 +1,27 @@
class Fields {
List<String>? multipleValue;
String? tableValue;
String? title;
String? type;
String? value;
Fields({this.multipleValue, this.tableValue, this.title, this.type, this.value});
Fields.fromJson(Map<String, dynamic> json) {
multipleValue = json['MultipleValue'] != null ? json['MultipleValue'].cast<String>() : null;
tableValue = json['TableValue'];
title = json['Title'];
type = json['Type'];
value = json['Value'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['MultipleValue'] = this.multipleValue;
data['TableValue'] = this.tableValue;
data['Title'] = this.title;
data['Type'] = this.type;
data['Value'] = this.value;
return data;
}
}

@ -0,0 +1,52 @@
import 'package:mohem_flutter_app/models/itg_forms_models/allowed_actions_model.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/field_goups_model.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/wf_history_model.dart';
class ITGRequest {
List<AllowedActions>? allowedActions;
Null? attachments;
List<FieldGoups>? fieldGoups;
Null? grantFields;
List<WFHistory>? wFHistory;
ITGRequest({this.allowedActions, this.attachments, this.fieldGoups, this.grantFields, this.wFHistory});
ITGRequest.fromJson(Map<String, dynamic> json) {
if (json['AllowedActions'] != null) {
allowedActions = <AllowedActions>[];
json['AllowedActions'].forEach((v) {
allowedActions!.add(new AllowedActions.fromJson(v));
});
}
attachments = json['Attachments'];
if (json['FieldGoups'] != null) {
fieldGoups = <FieldGoups>[];
json['FieldGoups'].forEach((v) {
fieldGoups!.add(new FieldGoups.fromJson(v));
});
}
grantFields = json['GrantFields'];
if (json['WFHistory'] != null) {
wFHistory = <WFHistory>[];
json['WFHistory'].forEach((v) {
wFHistory!.add(new WFHistory.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.allowedActions != null) {
data['AllowedActions'] = this.allowedActions!.map((v) => v.toJson()).toList();
}
data['Attachments'] = this.attachments;
if (this.fieldGoups != null) {
data['FieldGoups'] = this.fieldGoups!.map((v) => v.toJson()).toList();
}
data['GrantFields'] = this.grantFields;
if (this.wFHistory != null) {
data['WFHistory'] = this.wFHistory!.map((v) => v.toJson()).toList();
}
return data;
}
}

@ -0,0 +1,34 @@
class RequestDetails {
int? iD;
int? itemID;
String? listID;
String? listName;
String? modifiedDate;
String? title;
String? uRL;
String? requestType;
RequestDetails({this.iD, this.itemID, this.listID, this.listName, this.modifiedDate, this.title, this.uRL,this.requestType});
RequestDetails.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
itemID = json['ItemID'];
listID = json['ListID'];
listName = json['ListName'];
modifiedDate = json['ModifiedDate'];
title = json['Title'];
uRL = json['URL'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['ItemID'] = this.itemID;
data['ListID'] = this.listID;
data['ListName'] = this.listName;
data['ModifiedDate'] = this.modifiedDate;
data['Title'] = this.title;
data['URL'] = this.uRL;
return data;
}
}

@ -0,0 +1,33 @@
import 'package:mohem_flutter_app/models/itg_forms_models/request_detail_model.dart';
class RequestType {
int? itemCount;
List<RequestDetails>? requestDetails;
String? requestTypeCode;
String? requestTypeName;
RequestType({this.itemCount, this.requestDetails, this.requestTypeCode, this.requestTypeName});
RequestType.fromJson(Map<String, dynamic> json) {
itemCount = json['ItemCount'];
if (json['RequestDetails'] != null) {
requestDetails = <RequestDetails>[];
json['RequestDetails'].forEach((v) {
requestDetails!.add(new RequestDetails.fromJson(v));
});
}
requestTypeCode = json['RequestTypeCode'];
requestTypeName = json['RequestTypeName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ItemCount'] = this.itemCount;
if (this.requestDetails != null) {
data['RequestDetails'] = this.requestDetails!.map((v) => v.toJson()).toList();
}
data['RequestTypeCode'] = this.requestTypeCode;
data['RequestTypeName'] = this.requestTypeName;
return data;
}
}

@ -0,0 +1,40 @@
class WFHistory {
String? action;
String? approvalLevel;
String? date;
String? email;
String? employeeID;
String? name;
String? notes;
WFHistory(
{this.action,
this.approvalLevel,
this.date,
this.email,
this.employeeID,
this.name,
this.notes});
WFHistory.fromJson(Map<String, dynamic> json) {
action = json['Action'];
approvalLevel = json['ApprovalLevel'];
date = json['Date'];
email = json['Email'];
employeeID = json['EmployeeID'];
name = json['Name'];
notes = json['Notes'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['Action'] = this.action;
data['ApprovalLevel'] = this.approvalLevel;
data['Date'] = this.date;
data['Email'] = this.email;
data['EmployeeID'] = this.employeeID;
data['Name'] = this.name;
data['Notes'] = this.notes;
return data;
}
}

@ -0,0 +1,18 @@
class NotificationAction {
String? pRETURNMSG;
String? pRETURNSTATUS;
NotificationAction({this.pRETURNMSG, this.pRETURNSTATUS});
NotificationAction.fromJson(Map<String, dynamic> json) {
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
return data;
}
}

@ -0,0 +1,24 @@
class NotificationGetRespondAttributesList {
String? attributeDisplayName;
String? attributeFormat;
String? attributeName;
String? attributeType;
NotificationGetRespondAttributesList({this.attributeDisplayName, this.attributeFormat, this.attributeName, this.attributeType});
NotificationGetRespondAttributesList.fromJson(Map<String, dynamic> json) {
attributeDisplayName = json['ATTRIBUTE_DISPLAY_NAME'];
attributeFormat = json['ATTRIBUTE_FORMAT'];
attributeName = json['ATTRIBUTE_NAME'];
attributeType = json['ATTRIBUTE_TYPE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['ATTRIBUTE_DISPLAY_NAME'] = attributeDisplayName;
data['ATTRIBUTE_FORMAT'] = attributeFormat;
data['ATTRIBUTE_NAME'] = attributeName;
data['ATTRIBUTE_TYPE'] = attributeType;
return data;
}
}

@ -0,0 +1,85 @@
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
class GetBasicDetColsStructureList {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dISPLAYFLAG;
int? mAXIMUMSIZE;
String? oBJECTNAME;
String? oBJECTTYPE;
List<ObjectValuesList>? objectValuesList;
String? rEQUIREDFLAG;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
GetEmployeeBasicDetailsList? userBasicDetail;
GetBasicDetColsStructureList({
this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dISPLAYFLAG,
this.mAXIMUMSIZE,
this.oBJECTNAME,
this.oBJECTTYPE,
this.objectValuesList,
this.rEQUIREDFLAG,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.userBasicDetail,
});
GetBasicDetColsStructureList.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
mAXIMUMSIZE = json['MAXIMUM_SIZE'];
oBJECTNAME = json['OBJECT_NAME'];
oBJECTTYPE = json['OBJECT_TYPE'];
if (json['ObjectValuesList'] != null) {
objectValuesList = <ObjectValuesList>[];
json['ObjectValuesList'].forEach((v) {
objectValuesList!.add(new ObjectValuesList.fromJson(v));
});
}
rEQUIREDFLAG = json['REQUIRED_FLAG'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['MAXIMUM_SIZE'] = this.mAXIMUMSIZE;
data['OBJECT_NAME'] = this.oBJECTNAME;
data['OBJECT_TYPE'] = this.oBJECTTYPE;
if (this.objectValuesList != null) {
data['ObjectValuesList'] = this.objectValuesList!.map((v) => v.toJson()).toList();
}
data['REQUIRED_FLAG'] = this.rEQUIREDFLAG;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
return data;
}
}
class ObjectValuesList {
String? cODE;
String? dESCRIPTION;
String? mEANING;
ObjectValuesList({this.cODE, this.dESCRIPTION, this.mEANING});
ObjectValuesList.fromJson(Map<String, dynamic> json) {
cODE = json['CODE'];
dESCRIPTION = json['DESCRIPTION'];
mEANING = json['MEANING'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['CODE'] = this.cODE;
data['DESCRIPTION'] = this.dESCRIPTION;
data['MEANING'] = this.mEANING;
return data;
}
}

@ -0,0 +1,188 @@
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
class GetBasicDetDffStructureList {
String? aLPHANUMERICALLOWEDFLAG;
String? aPPLICATIONCOLUMNNAME;
String? cHILDSEGMENTSVS;
Null? cHILDSEGMENTSVSSplited;
String? dEFAULTTYPE;
String? dEFAULTVALUE;
String? dESCFLEXCONTEXTCODE;
String? dESCFLEXCONTEXTNAME;
String? dESCFLEXNAME;
String? dISPLAYFLAG;
String? eNABLEDFLAG;
ESERVICESDV? eSERVICESDV;
List<ESERVICESVS>? eSERVICESVS;
String? fLEXVALUESETNAME;
String? fORMATTYPE;
String? fORMATTYPEDSP;
bool? isEmptyOption;
String? lONGLISTFLAG;
int? mAXIMUMSIZE;
String? mAXIMUMVALUE;
String? mINIMUMVALUE;
String? mOBILEENABLED;
String? nUMBERPRECISION;
String? nUMERICMODEENABLEDFLAG;
String? pARENTSEGMENTSDV;
List<Null>? pARENTSEGMENTSDVSplited;
String? pARENTSEGMENTSVS;
List<Null>? pARENTSEGMENTSVSSplitedVS;
String? rEADONLY;
String? rEQUIREDFLAG;
String? sEGMENTNAME;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? uPPERCASEONLYFLAG;
String? uSEDFLAG;
String? vALIDATIONTYPE;
String? vALIDATIONTYPEDSP;
GetEmployeeBasicDetailsList? userBasicDetail;
GetBasicDetDffStructureList(
{this.aLPHANUMERICALLOWEDFLAG,
this.aPPLICATIONCOLUMNNAME,
this.cHILDSEGMENTSVS,
this.cHILDSEGMENTSVSSplited,
this.dEFAULTTYPE,
this.dEFAULTVALUE,
this.dESCFLEXCONTEXTCODE,
this.dESCFLEXCONTEXTNAME,
this.dESCFLEXNAME,
this.dISPLAYFLAG,
this.eNABLEDFLAG,
this.eSERVICESDV,
this.eSERVICESVS,
this.fLEXVALUESETNAME,
this.fORMATTYPE,
this.fORMATTYPEDSP,
this.isEmptyOption,
this.lONGLISTFLAG,
this.mAXIMUMSIZE,
this.mAXIMUMVALUE,
this.mINIMUMVALUE,
this.mOBILEENABLED,
this.nUMBERPRECISION,
this.nUMERICMODEENABLEDFLAG,
this.pARENTSEGMENTSDV,
this.pARENTSEGMENTSDVSplited,
this.pARENTSEGMENTSVS,
this.pARENTSEGMENTSVSSplitedVS,
this.rEADONLY,
this.rEQUIREDFLAG,
this.sEGMENTNAME,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.uPPERCASEONLYFLAG,
this.uSEDFLAG,
this.vALIDATIONTYPE,
this.vALIDATIONTYPEDSP,
this.userBasicDetail});
GetBasicDetDffStructureList.fromJson(Map<String, dynamic> json) {
aLPHANUMERICALLOWEDFLAG = json['ALPHANUMERIC_ALLOWED_FLAG'];
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
cHILDSEGMENTSVS = json['CHILD_SEGMENTS_VS'];
cHILDSEGMENTSVSSplited = json['CHILD_SEGMENTS_VS_Splited'];
dEFAULTTYPE = json['DEFAULT_TYPE'];
dEFAULTVALUE = json['DEFAULT_VALUE'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
dESCFLEXCONTEXTNAME = json['DESC_FLEX_CONTEXT_NAME'];
dESCFLEXNAME = json['DESC_FLEX_NAME'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
eNABLEDFLAG = json['ENABLED_FLAG'];
eSERVICESDV = json['E_SERVICES_DV'] != null ? ESERVICESDV.fromJson(json['E_SERVICES_DV']) : null;
if (json['E_SERVICES_VS'] != null) {
eSERVICESVS = <ESERVICESVS>[];
json['E_SERVICES_VS'].forEach((v) {
eSERVICESVS!.add(ESERVICESVS.fromJson(v));
});
}
fLEXVALUESETNAME = json['FLEX_VALUE_SET_NAME'];
fORMATTYPE = json['FORMAT_TYPE'];
fORMATTYPEDSP = json['FORMAT_TYPE_DSP'];
isEmptyOption = json['IsEmptyOption'];
lONGLISTFLAG = json['LONGLIST_FLAG'];
mAXIMUMSIZE = json['MAXIMUM_SIZE'];
mAXIMUMVALUE = json['MAXIMUM_VALUE'];
mINIMUMVALUE = json['MINIMUM_VALUE'];
mOBILEENABLED = json['MOBILE_ENABLED'];
nUMBERPRECISION = json['NUMBER_PRECISION'];
nUMERICMODEENABLEDFLAG = json['NUMERIC_MODE_ENABLED_FLAG'];
pARENTSEGMENTSDV = json['PARENT_SEGMENTS_DV'];
if (json['PARENT_SEGMENTS_DV_Splited'] != null) {
pARENTSEGMENTSDVSplited = <Null>[];
json['PARENT_SEGMENTS_DV_Splited'].forEach((v) {
pARENTSEGMENTSDVSplited!.add((v));
});
}
pARENTSEGMENTSVS = json['PARENT_SEGMENTS_VS'];
if (json['PARENT_SEGMENTS_VS_SplitedVS'] != null) {
pARENTSEGMENTSVSSplitedVS = <Null>[];
json['PARENT_SEGMENTS_VS_SplitedVS'].forEach((v) {
pARENTSEGMENTSVSSplitedVS!.add(v);
});
}
rEADONLY = json['READ_ONLY'];
rEQUIREDFLAG = json['REQUIRED_FLAG'];
sEGMENTNAME = json['SEGMENT_NAME'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
uPPERCASEONLYFLAG = json['UPPERCASE_ONLY_FLAG'];
uSEDFLAG = json['USED_FLAG'];
vALIDATIONTYPE = json['VALIDATION_TYPE'];
vALIDATIONTYPEDSP = json['VALIDATION_TYPE_DSP'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = Map<String, dynamic>();
data['ALPHANUMERIC_ALLOWED_FLAG'] = this.aLPHANUMERICALLOWEDFLAG;
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['CHILD_SEGMENTS_VS'] = this.cHILDSEGMENTSVS;
data['CHILD_SEGMENTS_VS_Splited'] = this.cHILDSEGMENTSVSSplited;
data['DEFAULT_TYPE'] = this.dEFAULTTYPE;
data['DEFAULT_VALUE'] = this.dEFAULTVALUE;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['DESC_FLEX_CONTEXT_NAME'] = this.dESCFLEXCONTEXTNAME;
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['ENABLED_FLAG'] = this.eNABLEDFLAG;
if (this.eSERVICESDV != null) {
data['E_SERVICES_DV'] = this.eSERVICESDV!.toJson();
}
if (this.eSERVICESVS != null) {
data['E_SERVICES_VS'] = this.eSERVICESVS!.map((v) => v.toJson()).toList();
}
data['FLEX_VALUE_SET_NAME'] = this.fLEXVALUESETNAME;
data['FORMAT_TYPE'] = this.fORMATTYPE;
data['FORMAT_TYPE_DSP'] = this.fORMATTYPEDSP;
data['IsEmptyOption'] = this.isEmptyOption;
data['LONGLIST_FLAG'] = this.lONGLISTFLAG;
data['MAXIMUM_SIZE'] = this.mAXIMUMSIZE;
data['MAXIMUM_VALUE'] = this.mAXIMUMVALUE;
data['MINIMUM_VALUE'] = this.mINIMUMVALUE;
data['MOBILE_ENABLED'] = this.mOBILEENABLED;
data['NUMBER_PRECISION'] = this.nUMBERPRECISION;
data['NUMERIC_MODE_ENABLED_FLAG'] = this.nUMERICMODEENABLEDFLAG;
data['PARENT_SEGMENTS_DV'] = this.pARENTSEGMENTSDV;
if (this.pARENTSEGMENTSDVSplited != null) {
data['PARENT_SEGMENTS_DV_Splited'] = this.pARENTSEGMENTSDVSplited!.map((v) => v).toList();
}
data['PARENT_SEGMENTS_VS'] = this.pARENTSEGMENTSVS;
if (this.pARENTSEGMENTSVSSplitedVS != null) {
data['PARENT_SEGMENTS_VS_SplitedVS'] = this.pARENTSEGMENTSVSSplitedVS!.map((v) => v).toList();
}
data['READ_ONLY'] = this.rEADONLY;
data['REQUIRED_FLAG'] = this.rEQUIREDFLAG;
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['UPPERCASE_ONLY_FLAG'] = this.uPPERCASEONLYFLAG;
data['USED_FLAG'] = this.uSEDFLAG;
data['VALIDATION_TYPE'] = this.vALIDATIONTYPE;
data['VALIDATION_TYPE_DSP'] = this.vALIDATIONTYPEDSP;
return data;
}
}

@ -0,0 +1,21 @@
class GetPhoneNumberTypesModel {
String? cODE;
String? dESCRIPTION;
String? mEANING;
GetPhoneNumberTypesModel({this.cODE, this.dESCRIPTION, this.mEANING});
GetPhoneNumberTypesModel.fromJson(Map<String, dynamic> json) {
cODE = json['CODE'];
dESCRIPTION = json['DESCRIPTION'];
mEANING = json['MEANING'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['CODE'] = this.cODE;
data['DESCRIPTION'] = this.dESCRIPTION;
data['MEANING'] = this.mEANING;
return data;
}
}

@ -0,0 +1,12 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ProfileMenu {
final String name;
final String icon;
final String route;
final String dynamicUrl;
final String functionName;
final String requestID;
ProfileMenu({this.name = '', this.icon = '', this.route = '', this.dynamicUrl = '', this.functionName = '', this.requestID = ''});
}

@ -0,0 +1,68 @@
class SubordinatesLeavesList {
String? aBSENCEATTENDANCETYPENAME;
String? cALENDARENTRYDESC;
String? dATEEND;
String? dATESTART;
String? eMPLOYEEIMAGE;
String? eMPLOYEENAME;
String? eMPLOYEENUMBER;
String? eVENTDATE;
String? lEAVETYPE;
int? oRGANIZATIONID;
String? oRGANIZATIONNAME;
String? pOSITIONTITLE;
String? rEPLACEMENTNAME;
String? sTATUS;
SubordinatesLeavesList(
{this.aBSENCEATTENDANCETYPENAME,
this.cALENDARENTRYDESC,
this.dATEEND,
this.dATESTART,
this.eMPLOYEEIMAGE,
this.eMPLOYEENAME,
this.eMPLOYEENUMBER,
this.eVENTDATE,
this.lEAVETYPE,
this.oRGANIZATIONID,
this.oRGANIZATIONNAME,
this.pOSITIONTITLE,
this.rEPLACEMENTNAME,
this.sTATUS});
SubordinatesLeavesList.fromJson(Map<String, dynamic> json) {
aBSENCEATTENDANCETYPENAME = json['ABSENCE_ATTENDANCE_TYPE_NAME'];
cALENDARENTRYDESC = json['CALENDAR_ENTRY_DESC'];
dATEEND = json['DATE_END'];
dATESTART = json['DATE_START'];
eMPLOYEEIMAGE = json['EMPLOYEE_IMAGE'];
eMPLOYEENAME = json['EMPLOYEE_NAME'];
eMPLOYEENUMBER = json['EMPLOYEE_NUMBER'];
eVENTDATE = json['EVENT_DATE'];
lEAVETYPE = json['LEAVE_TYPE'];
oRGANIZATIONID = json['ORGANIZATION_ID'];
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
pOSITIONTITLE = json['POSITION_TITLE'];
rEPLACEMENTNAME = json['REPLACEMENT_NAME'];
sTATUS = json['STATUS'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ABSENCE_ATTENDANCE_TYPE_NAME'] = this.aBSENCEATTENDANCETYPENAME;
data['CALENDAR_ENTRY_DESC'] = this.cALENDARENTRYDESC;
data['DATE_END'] = this.dATEEND;
data['DATE_START'] = this.dATESTART;
data['EMPLOYEE_IMAGE'] = this.eMPLOYEEIMAGE;
data['EMPLOYEE_NAME'] = this.eMPLOYEENAME;
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
data['EVENT_DATE'] = this.eVENTDATE;
data['LEAVE_TYPE'] = this.lEAVETYPE;
data['ORGANIZATION_ID'] = this.oRGANIZATIONID;
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
data['POSITION_TITLE'] = this.pOSITIONTITLE;
data['REPLACEMENT_NAME'] = this.rEPLACEMENTNAME;
data['STATUS'] = this.sTATUS;
return data;
}
}

@ -41,7 +41,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
List<GetMenuEntriesList>? getMenuEntriesList;
//Attendance Tracking API's & Methods
Future<bool> fetchAttendanceTracking() async {
Future<bool> fetchAttendanceTracking(context) async {
try {
attendanceTracking = await DashboardApiClient().getAttendanceTracking();
print("attendanceTracking:" + (attendanceTracking!.pRemainingHours).toString());
@ -59,7 +59,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
notifyListeners();
} catch (ex) {
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
return true;
}
@ -71,8 +71,8 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
return ((hour * 60 * 60) + (mints * 60) + seconds);
}
update() {
fetchAttendanceTracking();
update(context) {
fetchAttendanceTracking(context);
// isAttendanceTrackingLoading = !isAttendanceTrackingLoading;
// isWorkListLoading = !isWorkListLoading;
// attendanceTracking?.pSwipeIn = "a";
@ -101,12 +101,12 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
logger.wtf(ex);
if (showLoading) Utils.hideLoading(context);
notifyListeners();
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
}
//Missing Siwpe API's & Methods
Future fetchMissingSwipe() async {
Future fetchMissingSwipe(context) async {
try {
GenericResponseModel? genericResponseModel = await DashboardApiClient().getOpenMissingSwipes();
isMissingSwipeLoading = false;
@ -116,12 +116,12 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
isMissingSwipeLoading = false;
logger.wtf(ex);
notifyListeners();
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
}
//Leave and Ticket Balance API's & Methods
Future fetchLeaveTicketBalance() async {
Future fetchLeaveTicketBalance(context) async {
try {
GenericResponseModel? genericResponseModel = await DashboardApiClient().getAccrualBalances();
isLeaveTicketBalanceLoading = false;
@ -132,7 +132,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
isLeaveTicketBalanceLoading = false;
logger.wtf(ex);
notifyListeners();
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
}
@ -151,7 +151,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
} catch (ex) {
logger.wtf(ex);
notifyListeners();
Utils.handleException(ex, null);
Utils.handleException(ex, null, null);
}
}
@ -166,7 +166,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
} catch (ex) {
logger.wtf(ex);
notifyListeners();
Utils.handleException(ex, null);
Utils.handleException(ex, null, null);
}
}
@ -187,4 +187,8 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
// }
return menus;
}
void notify() {
notifyListeners();
}
}

@ -0,0 +1,36 @@
import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/dashboard_api_client.dart';
import 'package:mohem_flutter_app/api/eit_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/main.dart';
import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart';
import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/models/dashboard/menus.dart';
import 'package:mohem_flutter_app/models/eit/get_eit_transaction_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/widgets/Updater.dart';
/// Mix-in [DiagnosticableTreeMixin] to have access to [debugFillProperties] for the devtool
// ignore: prefer_mixin
class EITProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
List<CollectionTransaction>? eitTransactionList;
late bool isEitLoaded = false;
void getEITList(String functionName) async {
try {
eitTransactionList = await EITApiClient().getEITTransactions(functionName);
isEitLoaded = true;
notifyListeners();
} catch (ex) {
isEitLoaded = false;
logger.wtf(ex);
notifyListeners();
Utils.handleException(ex, null, (ts) {
print(ts);
});
}
}
}

@ -0,0 +1,804 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:mohem_flutter_app/api/monthlyAttendance_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_schedule_shifts_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/widgets/circular_step_progress_bar.dart';
import 'package:provider/provider.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:flutter/cupertino.dart';
import 'package:pie_chart/pie_chart.dart';
class MonthlyAttendance extends StatefulWidget {
MonthlyAttendance({Key? key}) : super(key: key);
@override
_MonthlyAttendanceState createState() {
return _MonthlyAttendanceState();
}
}
class _MonthlyAttendanceState extends State<MonthlyAttendance> {
bool isPresent = true;
bool isAbsent = true;
bool isMissingDays = true;
bool isOffDays = true;
DateTime date = DateTime.now();
late var formattedDate;
var currentMonth = DateTime.now().month;
String searchMonth = getMonth(DateTime.now().month);
int searchYear = DateTime.now().year;
int? pRTPID;
List<GetDayHoursTypeDetailsList> getDayHoursTypeDetailsList = [];
GetTimeCardSummaryList? getTimeCardSummaryList;
// GetDayHoursTypeDetailsList? getDayHoursTypeDetailsList;
GetScheduleShiftsDetailsList? getScheduleShiftsDetailsList;
@override
void initState() {
super.initState();
getTimeCardSummary(searchMonth, searchYear);
getDayHoursTypeDetails(date.day, searchMonth, searchYear);
formattedDate = DateFormat('MMM-yyyy').format(date);
}
void getTimeCardSummary(searchMonth, searchYear) async {
try {
Utils.showLoading(context);
getTimeCardSummaryList = await MonthlyAttendanceApiClient().getTimeCardSummary(searchMonth, searchYear);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void getDayHoursTypeDetails(index, searchMonth, searchYear) async {
try {
Utils.showLoading(context);
getDayHoursTypeDetailsList = await MonthlyAttendanceApiClient().getDayHoursTypeDetails(searchMonth, searchYear);
Utils.hideLoading(context);
pRTPID = getDayHoursTypeDetailsList[index].rTPID;
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
countAllAttendDays();
getScheduleShiftsDetails(pRTPID);
}
getScheduleShiftsDetails(pRTPID) async {
try {
Utils.showLoading(context);
getScheduleShiftsDetailsList = await MonthlyAttendanceApiClient().getScheduleShiftsDetails(pRTPID);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
countAllAttendDays() {
// print(getDayHoursTypeDetailsList.length);
for (int i = 0; i < getDayHoursTypeDetailsList.length; i++) {
if (getDayHoursTypeDetailsList[i].aTTENDEDFLAG == 'Y') {
isPresent = true;
isAbsent = false;
isMissingDays = false;
isOffDays = false;
} else if (getDayHoursTypeDetailsList[i].aTTENDEDFLAG == 'N' && getDayHoursTypeDetailsList[i].aBSENTFLAG == 'Y') {
isPresent = false;
isAbsent = true;
isMissingDays = false;
isOffDays = false;
} else if (getDayHoursTypeDetailsList[i].aTTENDEDFLAG == 'N' && getDayHoursTypeDetailsList[i].dAYTYPE == 'OFF') {
isPresent = false;
isAbsent = false;
isMissingDays = false;
isOffDays = true;
} else {
isPresent = false;
isAbsent = false;
isMissingDays = true;
isOffDays = false;
}
}
}
final CalendarController _calendarController = CalendarController();
final List<Color> _colorList = [Color(0xff2AB2AB), Color(0xff202529)];
@override
Widget build(BuildContext context) {
Map<String, double> dataMap = {
"Present": getTimeCardSummaryList!.aTTENDEDDAYS!.toDouble(),
"Absent": getTimeCardSummaryList!.aBSENTDAYS!.toDouble(),
};
return Scaffold(
appBar: AppBar(
backgroundColor: MyColors.white,
leading: IconButton(
icon: const Icon(
Icons.arrow_back_ios,
color: MyColors.backgroundBlackColor,
),
onPressed: () => Navigator.pop(context),
),
),
backgroundColor: Colors.white,
body: ListView(
scrollDirection: Axis.vertical,
children: [
Column(
children: [
20.height,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Attendance".toText24(isBold: true, color: MyColors.darkIconColor),
Row(
children: [
Text(formattedDate),
const Icon(Icons.keyboard_arrow_down_rounded, color: MyColors.greyACColor),
],
).onPress(() async {
await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2021),
lastDate: DateTime.now(),
builder: (context, child) {
return Theme(
data: ThemeData.dark().copyWith(
colorScheme: const ColorScheme.dark(
primary: MyColors.lightGreenColor,
onPrimary: MyColors.white,
surface: MyColors.lightGreenColor,
onSurface: MyColors.darkTextColor,
),
dialogBackgroundColor: Colors.white,
),
child: child!,
);
},
).then((selectedDate) {
if (selectedDate != null) {
var selectedMonth = DateFormat('MMMM').format(selectedDate);
var selectedYear = DateFormat('yyyy').format(selectedDate);
searchMonth = selectedMonth;
searchYear = int.parse(selectedYear);
setState(() {
// date = selectedDate;
formattedDate = DateFormat('MMMM-yyyy').format(selectedDate);
getTimeCardSummary(searchMonth, searchYear);
getDayHoursTypeDetails(selectedDate.day, searchMonth, searchYear);
});
}
});
})
],
).paddingOnly(left: 21, right: 21),
18.height,
AspectRatio(aspectRatio: 333 / 270, child: calendarWidget()).paddingOnly(left: 21, right: 21),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
optionUI("Schedule\nDays", "${getTimeCardSummaryList!.sCHEDULEDAYS}"),
6.width,
optionUI("Off\nDays", "${getTimeCardSummaryList!.oFFDAYS}"),
6.width,
optionUI("Non\nAnalyzed", "${getTimeCardSummaryList!.uNAUTHORIZEDLEAVE}"),
6.width,
optionUI("Shortage\nHour", "${getTimeCardSummaryList!.sHORTAGEHRS}"),
],
).paddingOnly(left: 21, right: 21),
35.height,
Container(
width: double.infinity,
height: 227,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)),
boxShadow: [
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 26,
color: MyColors.darkColor.withOpacity(0.1),
),
],
),
child: Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Column(
children: [
"Attendance".toText12(isBold: true, color: MyColors.grey3AColor),
"Stats".toText24(isBold: true, color: MyColors.grey3AColor),
],
).paddingOnly(left: 21, top: 29, bottom: 36),
Row(
children: [
Container(
height: 9,
width: 9,
decoration: BoxDecoration(
color: MyColors.lightGreenColor,
borderRadius: BorderRadius.circular(100),
),
),
Container(
margin: const EdgeInsets.only(left: 5, right: 5),
child: "PRESENT ${getTimeCardSummaryList!.aTTENDEDDAYS}".toText16(isBold: true, color: MyColors.lightGreenColor),
),
],
).paddingOnly(left: 21, right: 23),
8.height,
Row(
children: [
Container(
height: 9,
width: 9,
decoration: BoxDecoration(
color: MyColors.backgroundBlackColor,
borderRadius: BorderRadius.circular(100),
),
),
Container(
margin: const EdgeInsets.only(left: 5, right: 5),
child: "ABSENT ${getTimeCardSummaryList!.aBSENTDAYS}".toText16(
isBold: true,
color: MyColors.backgroundBlackColor,
),
)
],
).paddingOnly(left: 21, top: 8),
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
width: 169,
height: 170,
child: PieChart(
dataMap: dataMap,
animationDuration: const Duration(milliseconds: 800),
chartLegendSpacing: 0,
chartRadius: MediaQuery.of(context).size.width / 5.2,
colorList: _colorList,
initialAngleInDegree: 0,
chartType: ChartType.ring,
ringStrokeWidth: 80,
legendOptions: const LegendOptions(
showLegendsInRow: false,
showLegends: false,
),
chartValuesOptions: const ChartValuesOptions(
showChartValueBackground: false,
showChartValues: true,
showChartValuesInPercentage: true,
showChartValuesOutside: false,
decimalPlaces: 1,
chartValueStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 16,
color: MyColors.white,
)),
),
),
],
).paddingOnly(left: 65, top: 27, right: 21, bottom: 28),
],
),
),
],
),
],
),
);
}
Widget optionUI(String title, String value) {
return AspectRatio(
aspectRatio: 1 / 1,
child: Container(
padding: const EdgeInsets.only(top: 10, left: 8, right: 8, bottom: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
offset: const Offset(0, 1),
blurRadius: 15,
color: MyColors.darkColor.withOpacity(0.1),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[title.toText10(color: MyColors.darkTextColor).expanded, value.toText20(color: MyColors.darkTextColor)],
),
),
).expanded;
}
Widget calendarWidget() {
return SfCalendar(
view: CalendarView.month,
// onViewChanged: viewChanged,
controller: _calendarController,
headerHeight: 0,
todayHighlightColor: MyColors.grey3AColor,
viewHeaderStyle: const ViewHeaderStyle(
dayTextStyle: TextStyle(color: MyColors.grey3AColor, fontSize: 13, fontWeight: FontWeight.w600),
),
monthCellBuilder: (cxt, build) {
int val = build.date.day;
val == countAllAttendDays();
if (isPresent) {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(
gradient: const LinearGradient(
transform: GradientRotation(.46),
begin: Alignment.topRight,
end: Alignment.bottomLeft,
colors: [MyColors.gradiantEndColor, MyColors.gradiantStartColor],
),
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 26,
color: MyColors.blackColor.withOpacity(0.100),
),
],
),
alignment: Alignment.center,
child: Text(
"${build.date.day}",
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w500,
color: MyColors.white,
),
),
);
} else if (isAbsent) {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(
color: MyColors.backgroundBlackColor,
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 26,
color: MyColors.blackColor.withOpacity(0.100),
),
],
),
alignment: Alignment.center,
child: Text(
"${build.date.day}",
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w500,
color: MyColors.white,
),
),
);
} else if (isMissingDays) {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(
border: Border.all(color: MyColors.backgroundBlackColor, width: 2.0, style: BorderStyle.solid), //Border.all
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 26,
color: MyColors.blackColor.withOpacity(0.100),
),
],
),
alignment: Alignment.center,
child: Text(
"${build.date.day}",
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w500,
color: Color(0xff1F2428),
),
),
);
} else if (isOffDays) {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(
color: MyColors.greyACColor.withOpacity(.12),
shape: BoxShape.circle,
),
alignment: Alignment.center,
child: Text(
"${build.date.day}",
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w500,
color: MyColors.greyA5Color,
),
),
);
} else {
return Container();
}
},
monthViewSettings: const MonthViewSettings(
dayFormat: 'EEE',
showTrailingAndLeadingDates: false,
appointmentDisplayMode: MonthAppointmentDisplayMode.appointment,
showAgenda: false,
navigationDirection: MonthNavigationDirection.horizontal,
monthCellStyle: MonthCellStyle(
textStyle: TextStyle(
fontStyle: FontStyle.normal,
fontSize: 13,
color: Colors.white,
),
),
),
showNavigationArrow: false,
showDatePickerButton: false,
showCurrentTimeIndicator: false,
showWeekNumber: false,
cellBorderColor: Colors.white,
selectionDecoration: BoxDecoration(
border: Border.all(color: MyColors.white, width: 10),
borderRadius: const BorderRadius.all(Radius.circular(100)),
shape: BoxShape.circle,
),
dataSource: MeetingDataSource(_getDataSource()),
onTap: calendarTapped,
);
}
calendarTapped(CalendarTapDetails details) {
dynamic string = getScheduleShiftsDetailsList!.pERCENTAGE;
dynamic percentage = string!.indexOf('%');
print(percentage);
print(details.date?.day.toString());
int? index = details.date?.day;
if (index != null) {
index = index - 1;
}
getDayHoursTypeDetails(index, getMonth(details.date!.month), details.date?.year);
showModalBottomSheet(
context: context,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
isScrollControlled: true,
backgroundColor: MyColors.backgroundBlackColor,
builder: (_) {
return DraggableScrollableSheet(
maxChildSize: 0.9,
expand: false,
builder: (_, controller) {
return Column(
children: [
Container(
width: 75,
height: 7,
margin: const EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: MyColors.darkGreyColor,
),
),
Expanded(
child: ListView.builder(
controller: controller,
itemCount: 1,
itemBuilder: (_, i) => Container(
decoration: const BoxDecoration(
borderRadius: BorderRadius.vertical(
top: Radius.circular(35.0),
),
color: MyColors.backgroundBlackColor,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(children: [
"${getScheduleShiftsDetailsList!.sCHEDULEDATE!.substring(0, 9)}".toText24(isBold: true, color: Colors.white),
"Attendance Details".tr().toText16(color: MyColors.lightGreyEFColor),
21.height,
]).paddingOnly(top: 25, left: 21, right: 21, bottom: 10),
Center(
child: CircularStepProgressBar(
totalSteps: 16 * 4,
currentStep: percentage,
width: 210,
height: 210,
selectedColor: MyColors.gradiantEndColor,
unselectedColor: MyColors.grey70Color,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
"${getScheduleShiftsDetailsList!.pERCENTAGE}".toText44(color: Colors.white, isBold: true),
"Completed".tr().toText11(color: MyColors.greyACColor),
19.height,
"Shift Time".tr().toText11(color: MyColors.greyACColor),
"${getScheduleShiftsDetailsList!.sHTNAME}".toText22(color: Colors.white, isBold: true),
],
),
),
),
),
Container(
padding: const EdgeInsets.only(top: 20, bottom: 20),
),
Stack(
children: [
Container(
height: 5,
padding: const EdgeInsets.only(top: 24, bottom: 24),
color: MyColors.backgroundBlackColor,
),
Container(
width: double.infinity,
decoration: const BoxDecoration(borderRadius: BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)), color: Colors.white),
padding: const EdgeInsets.only(left: 21, right: 21, top: 28, bottom: 24),
child: Column(
children: [
Row(
children: [
Container(
margin: const EdgeInsets.only(right: 30, left: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Actual Check In ".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getScheduleShiftsDetailsList!.sHTACTUALSTARTTIME}".toText22(color: Colors.black, isBold: true),
],
),
),
40.width,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Actual Check Out".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getScheduleShiftsDetailsList!.sHTACTUALENDTIME}".toText22(color: Colors.black, isBold: true),
],
),
],
),
25.height,
const Divider(
height: 1,
thickness: 1,
color: MyColors.whiteColor,
),
25.height,
Row(
children: [
Container(
margin: const EdgeInsets.only(right: 30, left: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Approved Check In".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getScheduleShiftsDetailsList!.aPPROVEDSTARTTIME}".toText22(color: MyColors.greenColor, isBold: true),
],
),
),
30.width,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Approved Check Out".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getScheduleShiftsDetailsList!.aPPROVEDENDTIME}".toText22(color: MyColors.greenColor, isBold: true),
],
),
],
),
25.height,
const Divider(
height: 1,
thickness: 1,
color: MyColors.whiteColor,
),
25.height,
Row(
children: [
Container(
margin: const EdgeInsets.only(right: 30, left: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Late In".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getDayHoursTypeDetailsList[i].lATEINHRS}".toText22(color: MyColors.redColor, isBold: true),
],
),
),
80.width,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Excess".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getDayHoursTypeDetailsList[i].eXCESSHRS}".toText22(color: Colors.black, isBold: true),
],
),
],
),
25.height,
const Divider(
height: 1,
thickness: 1,
color: MyColors.whiteColor,
),
25.height,
Row(
children: [
Container(
margin: const EdgeInsets.only(right: 30, left: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Shortage".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getDayHoursTypeDetailsList[i].sHORTAGEHRS}".toText22(color: Colors.black, isBold: true),
],
),
),
80.width,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Early Out".tr().toText11(
color: MyColors.grey67Color,
),
8.height,
"${getDayHoursTypeDetailsList[i].eARLYOUTHRS}".toText22(color: Colors.black, isBold: true),
],
),
],
),
],
),
),
],
),
],
),
),
),
),
],
);
},
);
},
);
}
List<Meeting> _getDataSource() {
final List<Meeting> meetings = <Meeting>[];
return meetings;
}
static getMonth(int month) {
switch (month) {
case 1:
return "January";
case 2:
return "February";
case 3:
return "March";
case 4:
return "April";
case 5:
return "May";
case 6:
return "June";
case 7:
return "July";
case 8:
return "August";
case 9:
return "September";
case 10:
return "October";
case 11:
return "November";
case 12:
return "December";
}
}
}
class MeetingDataSource extends CalendarDataSource {
MeetingDataSource(List<Meeting> source) {
appointments = source;
}
@override
DateTime getStartTime(int index) {
return _getMeetingData(index).from;
}
@override
DateTime getEndTime(int index) {
return _getMeetingData(index).to;
}
@override
String getSubject(int index) {
return _getMeetingData(index).eventName;
}
@override
Color getColor(int index) {
return _getMeetingData(index).background;
}
@override
bool isAllDay(int index) {
return _getMeetingData(index).isAllDay;
}
Meeting _getMeetingData(int index) {
final dynamic meeting = appointments;
Meeting meetingData;
if (meeting is Meeting) {
meetingData = meeting;
}
return meeting;
}
}
class Meeting {
Meeting(this.eventName, this.from, this.to, this.background, this.isAllDay);
String eventName;
DateTime from;
DateTime to;
Color background;
bool isAllDay;
}

@ -0,0 +1,228 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/widgets/circular_step_progress_bar.dart';
class AttendenceDetailsBottomSheet extends StatefulWidget {
AttendenceDetailsBottomSheet({Key? key}) : super(key: key);
@override
_AttendenceDetailsBottomSheetState createState() => _AttendenceDetailsBottomSheetState();
}
class _AttendenceDetailsBottomSheetState extends State<AttendenceDetailsBottomSheet> {
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomSheet:BottomSheet(
onClosing: () => print("not getting called"),
builder: (_) => Container(
color: Colors.red,
height: MediaQuery.of(context).size.height*0.9,
child: Column(
children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.vertical( top: Radius.circular(25.0),),
color: MyColors.backgroundBlackColor,
),
margin:EdgeInsets.only(top: 45) ,
padding: EdgeInsets.only(left: 11, right: 11, bottom: 21),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Center(
child: Padding(
padding: const EdgeInsets.all(10),
child: Container(
margin:EdgeInsets.only(top: 5) ,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(35.0),),
color: Color(0xff464646),
),
width: 80,
height: 6,
),
),
),
Container(
padding: EdgeInsets.only(top: 25,left: 11, right: 11, bottom: 10),
child: Column(children: [
"June 13, 2021".toText24(isBold: true, color: Colors.white),
// LocaleKeys.attendanceDetails.tr().toText16(color: Color(0xffACACAC)),
// LocaleKeys.timeLeftToday.tr().toText16(color: Color(0xffACACAC)),
21.height,
] ),
),
Center(
child: CircularStepProgressBar(
totalSteps: 16 * 4,
currentStep: 16,
width: 210,
height: 210,
selectedColor: MyColors.gradiantEndColor,
unselectedColor: MyColors.grey70Color,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
"99%".toText32(color: Colors.white, isBold: true),
"Completed".tr().toText12(color: MyColors.greyACColor),
19.height,
"Shift Time".tr().toText12(color: MyColors.greyACColor),
"08:00 - 17:00".toText22(color: Colors.white, isBold: true),
],
),
),
),
),
],
),
),
Stack(
children: [
Container(
height: 32,
// padding: EdgeInsets.only(top: 24, bottom: 24),
color: MyColors.backgroundBlackColor,
),
Container(
width: double.infinity,
decoration: BoxDecoration(borderRadius: BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)), color: Colors.white),
margin: EdgeInsets.only(top: 10),
padding: EdgeInsets.only(left: 21, right: 21, top: 24, bottom: 24),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children:[
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
"Actual Check In ".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"08:27".toText22(color: Colors.black, isBold: true),
],
),
SizedBox(height: 30,),
Row(
children: [
"Approved Check In".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"09:27".toText22(color: Color(0xff1FA269), isBold: true),
],
),
SizedBox(height: 30,),
Row(
children: [
"Late In".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"00:27".toText22(color: Color(0xffD02127), isBold: true),
],
),
SizedBox(height: 30,),
Row(
children: [ "Shortage".tr().toText12(color: MyColors.black),
] ),
SizedBox(height: 8,),
Row(
children: [
"00:00".toText22(color: Colors.black, isBold: true),],
),
],
),
],
),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
"Actual Check Out".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"18:20".toText22(color: Colors.black, isBold: true),],
),
SizedBox(height: 30,),
Row(
children: [ "Approved Check Out".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"18:20".toText22(color: Color(0xff1FA269), isBold: true),],
),
SizedBox(height: 30,),
Row(
children: ["Excess".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"00:00".toText22(color: Colors.black, isBold: true),],
),
SizedBox(height: 30,),
Row(
children: ["Early Out".tr().toText12(color: MyColors.black),
],
),
SizedBox(height: 8,),
Row(
children: [
"00:00".toText22(color: Colors.black, isBold: true),],
),
],
),
],
),
] ),
),
]),
],
),
)
));
}
}

@ -10,6 +10,7 @@ import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/ui/landing/widget/app_drawer.dart';
import 'package:mohem_flutter_app/ui/landing/widget/menus_widget.dart';
import 'package:mohem_flutter_app/ui/landing/widget/services_widget.dart';
import 'package:mohem_flutter_app/widgets/circular_avatar.dart';
@ -27,15 +28,15 @@ class DashboardScreen extends StatefulWidget {
class _DashboardScreenState extends State<DashboardScreen> {
late DashboardProviderModel data;
final GlobalKey<ScaffoldState> _scaffoldState = GlobalKey();
@override
void initState() {
super.initState();
data = Provider.of<DashboardProviderModel>(context, listen: false);
data.fetchAttendanceTracking();
data.fetchAttendanceTracking(context);
data.fetchWorkListCounter(context);
data.fetchMissingSwipe();
data.fetchLeaveTicketBalance();
data.fetchMissingSwipe(context);
data.fetchLeaveTicketBalance(context);
data.fetchMenuEntries();
}
@ -47,344 +48,277 @@ class _DashboardScreenState extends State<DashboardScreen> {
@override
Widget build(BuildContext context) {
List<String> namesD = ["Nostalgia Perfume Perfume", "Al Nafoura", "AlJadi", "Nostalgia Perfume"];
final GlobalKey<ScaffoldState> _key = GlobalKey(); //
return Scaffold(
body: Column(
children: [
Row(
children: [
Row(
mainAxisSize: MainAxisSize.min,
children: [
CircularAvatar(
width: 34,
height: 34,
url: "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png",
key: _scaffoldState,
body: Column(
children: [
Row(
children: [
Builder(builder: (context) {
return Row(
mainAxisSize: MainAxisSize.min,
children: [
CircularAvatar(
width: 34,
height: 34,
url: "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png",
),
8.width,
SvgPicture.asset("assets/images/side_nav.svg"),
],
).onPress(() {
_scaffoldState.currentState!.openDrawer();
});
}),
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
//AppLogo(),
8.width,
LocaleKeys.mohemm.tr().toText14()
],
),
8.width,
SvgPicture.asset("assets/images/side_nav.svg"),
],
).onPress(() {}),
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
//AppLogo(),
8.width,
LocaleKeys.mohemm.tr().toText14()
],
),
),
SizedBox(
width: 36,
height: 36,
child: Stack(
alignment: Alignment.centerLeft,
SizedBox(
width: 36,
height: 36,
child: Stack(
alignment: Alignment.centerLeft,
children: [
SvgPicture.asset("assets/images/announcements.svg"),
Positioned(
right: 0,
top: 0,
child: Container(
padding: const EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(color: MyColors.redColor, borderRadius: BorderRadius.circular(17)),
child: "3".toText12(color: Colors.white),
),
)
],
),
).onPress(() {
data.update(context);
})
],
).paddingOnly(left: 21, right: 21, top: 48, bottom: 7),
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
SvgPicture.asset("assets/images/announcements.svg"),
Positioned(
right: 0,
top: 0,
child: Container(
padding: const EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(color: MyColors.redColor, borderRadius: BorderRadius.circular(17)),
child: "3".toText12(color: Colors.white),
),
)
],
),
).onPress(() {
data.update();
})
],
).paddingOnly(left: 21, right: 21, top: 48, bottom: 7),
Expanded(
child: Column(
// padding: EdgeInsets.zero,
// physics: NeverScrollableScrollPhysics(),
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
LocaleKeys.goodMorning.tr().toText14(color: MyColors.grey77Color),
"Mahmoud Shrouf".toText24(isBold: true),
16.height,
Row(
children: [
LocaleKeys.goodMorning.tr().toText14(color: MyColors.grey77Color),
"Mahmoud Shrouf".toText24(isBold: true),
16.height,
Row(
children: [
Expanded(
child: AspectRatio(
aspectRatio: 159 / 159,
child: Consumer<DashboardProviderModel>(
builder: (context, model, child) {
return (model.isAttendanceTrackingLoading
? GetAttendanceTrackingShimmer()
: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
gradient: const LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
]),
),
child: Stack(
alignment: Alignment.center,
Expanded(
child: AspectRatio(
aspectRatio: 159 / 159,
child: Consumer<DashboardProviderModel>(
builder: (context, model, child) {
return (model.isAttendanceTrackingLoading
? GetAttendanceTrackingShimmer()
: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
gradient: const LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
]),
),
child: Stack(
alignment: Alignment.center,
children: [
if (model.isTimeRemainingInSeconds == 0) SvgPicture.asset("assets/images/thumb.svg"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (model.isTimeRemainingInSeconds == 0) SvgPicture.asset("assets/images/thumb.svg"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.markAttendance.tr().toText14(color: Colors.white, isBold: true),
if (model.isTimeRemainingInSeconds == 0) "01-02-2022".toText12(color: Colors.white),
if (model.isTimeRemainingInSeconds != 0)
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
9.height,
CountdownTimer(
endTime: model.endTime,
onEnd: null,
endWidget: "00:00:00".toText14(color: Colors.white, isBold: true),
textStyle: TextStyle(color: Colors.white, fontSize: 14, letterSpacing: -0.48, fontWeight: FontWeight.bold),
),
LocaleKeys.timeLeftToday.tr().toText12(color: Colors.white),
9.height,
ClipRRect(
borderRadius: BorderRadius.all(
Radius.circular(20),
),
child: LinearProgressIndicator(
value: model.progress,
minHeight: 8,
valueColor: const AlwaysStoppedAnimation<Color>(Colors.white),
backgroundColor: const Color(0xff196D73),
),
),
],
),
],
).paddingOnly(top: 12, right: 15, left: 12),
),
Row(
children: [
Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.markAttendance.tr().toText14(color: Colors.white, isBold: true),
if (model.isTimeRemainingInSeconds == 0) "01-02-2022".toText12(color: Colors.white),
if (model.isTimeRemainingInSeconds != 0)
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
9.height,
CountdownTimer(
endTime: model.endTime,
onEnd: null,
endWidget: "00:00:00".toText14(color: Colors.white, isBold: true),
textStyle: TextStyle(color: Colors.white, fontSize: 14, letterSpacing: -0.48, fontWeight: FontWeight.bold),
),
LocaleKeys.timeLeftToday.tr().toText12(color: Colors.white),
9.height,
ClipRRect(
borderRadius: BorderRadius.all(
Radius.circular(20),
),
child: LinearProgressIndicator(
value: model.progress,
minHeight: 8,
valueColor: const AlwaysStoppedAnimation<Color>(Colors.white),
backgroundColor: const Color(0xff196D73),
),
),
],
),
LocaleKeys.checkIn.tr().toText12(color: Colors.white),
(model.attendanceTracking!.pSwipeIn == null ? "--:--" : model.attendanceTracking!.pSwipeIn)
.toString()
.toText14(color: Colors.white, isBold: true),
4.height,
],
).paddingOnly(top: 12, right: 15, left: 12),
).paddingOnly(left: 12),
),
Row(
children: [
Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.checkIn.tr().toText12(color: Colors.white),
(model.attendanceTracking!.pSwipeIn == null ? "--:--" : model.attendanceTracking!.pSwipeIn)
.toString()
.toText14(color: Colors.white, isBold: true),
4.height,
],
).paddingOnly(left: 12),
),
Container(
width: 45,
height: 45,
padding: const EdgeInsets.only(left: 14, right: 14),
decoration: const BoxDecoration(
color: Color(0xff259EA4),
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(15),
),
),
child: SvgPicture.asset(model.isTimeRemainingInSeconds == 0 ? "assets/images/play.svg" : "assets/images/stop.svg"),
Container(
width: 45,
height: 45,
padding: const EdgeInsets.only(left: 14, right: 14),
decoration: const BoxDecoration(
color: Color(0xff259EA4),
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(15),
),
],
),
child: SvgPicture.asset(model.isTimeRemainingInSeconds == 0 ? "assets/images/play.svg" : "assets/images/stop.svg"),
),
],
),
],
),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.todayAttendance);
}))
.animatedSwither();
},
),
),
],
),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.todayAttendance);
}))
.animatedSwither();
},
),
9.width,
Expanded(
child: MenusWidget(),
),
],
),
),
9.width,
Expanded(
child: MenusWidget(),
),
20.height,
],
).paddingOnly(left: 21, right: 21, top: 7),
ServicesWidget(),
8.height,
),
],
),
),
),
Container(
width: double.infinity,
padding: EdgeInsets.only(top: 31),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(topRight: Radius.circular(50), topLeft: Radius.circular(50)),
border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
).paddingOnly(left: 21, right: 21, top: 7),
ServicesWidget(),
8.height,
Container(
width: double.infinity,
padding: EdgeInsets.only(top: 31),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(topRight: Radius.circular(50), topLeft: Radius.circular(50)),
border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
LocaleKeys.offers.tr().toText12(),
Row(
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
LocaleKeys.discounts.tr().toText24(isBold: true),
6.width,
Container(
padding: const EdgeInsets.only(left: 8, right: 8),
decoration: BoxDecoration(
color: MyColors.yellowColor,
borderRadius: BorderRadius.circular(10),
),
child: LocaleKeys.newString.tr().toText10(isBold: true)),
LocaleKeys.offers.tr().toText12(),
Row(
children: [
LocaleKeys.discounts.tr().toText24(isBold: true),
6.width,
Container(
padding: const EdgeInsets.only(left: 8, right: 8),
decoration: BoxDecoration(
color: MyColors.yellowColor,
borderRadius: BorderRadius.circular(10),
),
child: LocaleKeys.newString.tr().toText10(isBold: true)),
],
),
],
),
],
),
),
LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true),
],
).paddingOnly(left: 21, right: 21),
SizedBox(
height: 103 + 33,
child: ListView.separated(
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.only(left: 21, right: 21, top: 13),
scrollDirection: Axis.horizontal,
itemBuilder: (cxt, index) {
return SizedBox(
width: 73,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: 73,
height: 73,
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(
Radius.circular(100),
),
LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true),
],
).paddingOnly(left: 21, right: 21),
SizedBox(
height: 103 + 33,
child: ListView.separated(
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.only(left: 21, right: 21, top: 13),
scrollDirection: Axis.horizontal,
itemBuilder: (cxt, index) {
return SizedBox(
width: 73,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: 73,
height: 73,
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(
Radius.circular(100),
),
border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
),
child: ClipRRect(
borderRadius: const BorderRadius.all(
Radius.circular(50),
),
child: Image.network(
"https://play-lh.googleusercontent.com/NPo88ojmhah4HDiposucJmfQIop4z4xc8kqJK9ITO9o-yCab2zxIp7PPB_XPj2iUojo",
fit: BoxFit.cover,
),
),
),
border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
),
child: ClipRRect(
borderRadius: const BorderRadius.all(
Radius.circular(50),
4.height,
Expanded(
child: namesD[6 % (index + 1)].toText12(isCenter: true, maxLine: 2),
),
child: Image.network(
"https://play-lh.googleusercontent.com/NPo88ojmhah4HDiposucJmfQIop4z4xc8kqJK9ITO9o-yCab2zxIp7PPB_XPj2iUojo",
fit: BoxFit.cover,
),
),
),
4.height,
Expanded(
child: namesD[6 % (index + 1)].toText12(isCenter: true, maxLine: 2),
],
),
],
),
);
},
separatorBuilder: (cxt, index) => 8.width,
itemCount: 6),
);
},
separatorBuilder: (cxt, index) => 8.width,
itemCount: 6),
),
],
),
],
),
)
],
),
)
],
),
bottomNavigationBar: BottomNavigationBar(
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Padding(
padding: const EdgeInsets.all(4.0),
child: SvgPicture.asset(
"assets/icons/home.svg",
width: 20,
height: 20,
),
),
label: 'Home',
),
BottomNavigationBarItem(
icon: Padding(
padding: const EdgeInsets.all(4.0),
child: SvgPicture.asset(
"assets/icons/create_req.svg",
width: 20,
height: 20,
),
),
label: 'Create Request',
),
BottomNavigationBarItem(
icon: Padding(
padding: const EdgeInsets.all(4.0),
child: SvgPicture.asset(
"assets/icons/work_list.svg",
width: 20,
height: 20,
),
),
label: 'Work List',
),
BottomNavigationBarItem(
icon: Padding(
padding: const EdgeInsets.all(4.0),
child: SvgPicture.asset(
"assets/icons/item_for_sale.svg",
width: 20,
height: 20,
)
],
),
),
),
label: 'Items for Sale',
),
],
currentIndex: 0,
selectedLabelStyle: TextStyle(
fontSize: 8,
color: Color(0xff989898),
fontWeight: FontWeight.w600,
),
unselectedLabelStyle: TextStyle(
fontSize: 8,
color: Color(0xff989898),
fontWeight: FontWeight.w600,
)
],
),
type: BottomNavigationBarType.fixed,
selectedItemColor: Colors.black,
backgroundColor: Color(0xffF8F8F8),
onTap: (v) {},
),
);
drawer: SafeArea(child: AppDrawer()));
}
}

@ -33,7 +33,7 @@ class TodayAttendanceScreen extends StatefulWidget {
class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
ValueNotifier<dynamic> result = ValueNotifier(null);
late DashboardProviderModel data;
bool isNfcEnabled = false, isNfcLocationEnabled = false, isQrEnabled = false, isQrLocationEnabled = false, isWifiEnabled = false, isWifiLocationEnabled = false;
bool isNfcEnabled = true, isNfcLocationEnabled = false, isQrEnabled = false, isQrLocationEnabled = false, isWifiEnabled = false, isWifiLocationEnabled = false;
@override
void initState() {
@ -42,19 +42,19 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
data = Provider.of<DashboardProviderModel>(context, listen: false);
}
checkAttendanceAvailablity() async {
void checkAttendanceAvailablity() async {
bool isAvailable = await NfcManager.instance.isAvailable();
setState(() {
AppState().privilegeListModel!.forEach((element) {
// Check availability
if (isAvailable) if (element.serviceName == "enableNFC") {
// if (element.previlege ?? false)
isNfcEnabled = true;
print(element.serviceName.toString() + " " + element.previlege.toString()); // Check availability
if (element.serviceName == "enableNFC") {
if (isAvailable) if (element.previlege ?? false) isNfcEnabled = true;
} else if (element.serviceName == "enableQR") {
if (element.previlege ?? false) isQrEnabled = true;
} else if (element.serviceName == "enableWIFI") {
if (element.previlege ?? false) isWifiEnabled = true;
} else if (element.serviceName == "enableLocatoinNFC") {
} else if (element.serviceName!.trim() == "enableLocationNFC") {
if (element.previlege ?? false) isNfcLocationEnabled = true;
} else if (element.serviceName == "enableLocationQR") {
if (element.previlege ?? false) isQrLocationEnabled = true;
@ -84,7 +84,7 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
actions: [
IconButton(
onPressed: () {
data.fetchAttendanceTracking();
data.fetchAttendanceTracking(context);
},
icon: Icon(
Icons.ac_unit,
@ -190,24 +190,13 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, childAspectRatio: 1 / 1, crossAxisSpacing: 8, mainAxisSpacing: 8),
children: <Widget>[
attendanceMethod("NFC", "assets/images/nfc.svg", isNfcEnabled, () {
showNfcReader(context, onNcfScan: (String? nfcId) async {
print(nfcId);
Utils.showLoading(context);
try {
GenericResponseModel? g = await DashboardApiClient().markAttendance(pointType: 2, nfcValue: nfcId ?? "");
bool status = await model.fetchAttendanceTracking();
Utils.hideLoading(context);
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, (msg) {
Utils.confirmDialog(context, msg);
});
}
});
// Location.getCurrentLocation((LatLng? latlng) {
// print(latlng!.longitude.toString());
// });
if (isNfcLocationEnabled) {
Location.getCurrentLocation((LatLng? latlng) {
performNfcAttendance(model, lat: latlng?.latitude.toString() ?? "", lng: latlng?.longitude.toString() ?? "");
});
} else {
performNfcAttendance(model);
}
}),
attendanceMethod("Wifi", "assets/images/wufu.svg", isWifiEnabled, () {}),
],
@ -244,6 +233,30 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
);
}
Future<void> performNfcAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async {
if (isNfcLocationEnabled) {
print("nfc location enabled");
} else {
print("nfc not location enabled");
}
showNfcReader(context, onNcfScan: (String? nfcId) async {
print(nfcId);
Utils.showLoading(context);
try {
GenericResponseModel? g = await DashboardApiClient().markAttendance(pointType: 2, nfcValue: nfcId ?? "", isGpsRequired: isNfcLocationEnabled, lat: lat, long: lng);
bool status = await model.fetchAttendanceTracking(context);
Utils.hideLoading(context);
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, context, (msg) {
Utils.confirmDialog(context, msg);
});
}
});
}
Widget attendanceMethod(String title, String image, bool isEnabled, VoidCallback onPress) => Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),

@ -0,0 +1,47 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/ui/landing/widget/drawer_item.dart';
import 'package:provider/provider.dart';
class AppDrawer extends StatefulWidget {
@override
_AppDrawerState createState() => _AppDrawerState();
}
class _AppDrawerState extends State<AppDrawer> {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
child: Drawer(
child: Column(children: <Widget>[
const SizedBox(
height: 200,
),
Expanded(
child: ListView(padding: const EdgeInsets.all(21), physics: const BouncingScrollPhysics(), children: [
Divider(),
InkWell(
child: DrawerItem(
'My Profile',
icon: Icons.person,
color: Colors.grey,
),
onTap: () {
drawerNavigator(context, AppRoutes.profile);
})
]))
])));
}
drawerNavigator(context, routeName) {
Navigator.of(context).pushNamed(routeName);
}
}
String capitalizeOnlyFirstLater(String text) {
if (text.trim().isEmpty) return "";
return "${text[0].toUpperCase()}${text.substring(1)}";
}

@ -0,0 +1,59 @@
import 'dart:ui';
import 'package:flutter/material.dart';
class DrawerItem extends StatefulWidget {
final String title;
final String subTitle;
final IconData icon;
final Color color;
final dynamic assetLink;
const DrawerItem(this.title, {required this.icon, required this.color, this.subTitle = '', this.assetLink});
@override
_DrawerItemState createState() => _DrawerItemState();
}
class _DrawerItemState extends State<DrawerItem> {
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(top: 0, bottom: 5, left: 0, right: 0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
if (widget.assetLink != null)
Container(
height: 20,
width: 20,
child: Image.asset(widget.assetLink),
),
if (widget.assetLink == null)
Icon(
widget.icon,
color: widget.color ?? Colors.black87,
size: 25,
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width * 0.45,
child: Text(widget.title,
style: TextStyle(
color: widget.color ?? Color(0xFF2E303A),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
letterSpacing: -0.84,
)),
),
],
),
),
],
));
}
}

@ -0,0 +1,110 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/models/dashboard/menus.dart';
import 'package:mohem_flutter_app/models/eit/get_eit_transaction_model.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/provider/eit_provider_model.dart';
import 'package:mohem_flutter_app/ui/work_list/work_list_screen.dart';
import 'package:mohem_flutter_app/widgets/loading_dialog.dart';
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:provider/provider.dart';
class MissingSwipe extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<EITProviderModel>(
builder: (context, data, child) {
return !data.isEitLoaded
? LoadingDialog()
: SizedBox(
width: double.infinity,
height: double.infinity,
child: ListView.separated(
itemBuilder: (context, index) {
return rowItem(data.eitTransactionList![index]);
},
separatorBuilder: (context, index) {
return 12.height;
},
itemCount: data.eitTransactionList?.length ?? 0,
padding: EdgeInsets.only(left: 21, right: 21),
));
},
);
}
Widget rowItem(CollectionTransaction types) {
return InkWell(
onTap: () {
// Navigator.pushNamed(context, AppRoutes.missingSwipe);
},
child: Container(
width: double.infinity,
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
gradient: LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomRight, colors: [Colors.red, Colors.blue]),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/images/miss_swipe.svg",
color: Colors.white,
),
2.height,
Text(types.aPPLICATIONCOLUMNNAME.toString())
],
).paddingAll(6),
),
12.width,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
"Missing Swipe Request".toText16(),
"Missing Swipe Request for Hussain, Mohammad has been approved".toText10(),
12.height,
Row(
children: [
Expanded(child: "07 Jan 2021".toText10(color: MyColors.lightTextColor)),
SvgPicture.asset(
"assets/images/arrow_next.svg",
color: MyColors.darkIconColor,
)
],
),
],
),
),
],
),
),
);
}
}

@ -1,10 +1,13 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:provider/provider.dart';
@ -15,13 +18,13 @@ class ServicesWidget extends StatelessWidget {
List<String> namesT = [LocaleKeys.monthlyAttendance.tr(), LocaleKeys.workFromHome.tr(), LocaleKeys.ticketRequest.tr(), LocaleKeys.monthlyAttendance.tr()];
List<String> iconT = [
"assets/images/monthly_attendance.svg",
"assets/images/work_from_home.svg",
"assets/images/dynamic_screens.svg",
"assets/images/ticket_request.svg",
"assets/images/work_from_home.svg",
"assets/images/work_from_home.svg",
"assets/images/work_from_home.svg",
"assets/images/work_from_home.svg",
"assets/images/work_from_home.svg"
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg"
];
return Consumer<DashboardProviderModel>(
@ -30,83 +33,89 @@ class ServicesWidget extends StatelessWidget {
? whileLoading()
: ListView.separated(
itemBuilder: (context, parentIndex) {
return Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
firstWord(data.homeMenus![parentIndex].menuEntry.prompt!).toText12(),
lastWord(data.homeMenus![parentIndex].menuEntry.prompt!).toText24(isBold: true),
],
),
),
LocaleKeys.viewAllServices.tr().toText12(isUnderLine: true),
],
).paddingOnly(left: 21, right: 21),
SizedBox(
height: 105 + 26,
child: ListView.separated(
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.only(left: 21, right: 21, top: 13, bottom: 13),
scrollDirection: Axis.horizontal,
itemBuilder: (cxt, index) {
return AspectRatio(
aspectRatio: 105 / 105,
child: data.isServicesMenusLoading
? ServicesMenuShimmer()
: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
return Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
data.homeMenus![parentIndex].menuEntry.prompt!.toSectionHeading().expanded,
LocaleKeys.viewAllServices.tr().toText12(isUnderLine: true),
],
).paddingOnly(left: 21, right: 21),
SizedBox(
height: 105 + 26,
child: ListView.separated(
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.only(left: 21, right: 21, top: 13, bottom: 13),
scrollDirection: Axis.horizontal,
itemBuilder: (cxt, index) {
return AspectRatio(
aspectRatio: 105 / 105,
child: data.isServicesMenusLoading
? ServicesMenuShimmer()
: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SvgPicture.asset(iconT[index]),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: data.homeMenus![parentIndex].menuEntiesList[index].prompt!.toText11(isBold: true),
),
SvgPicture.asset("assets/images/arrow_next.svg").paddingOnly(bottom: 4)
],
)
],
).paddingOnly(left: 10, right: 10, bottom: 10, top: 12),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SvgPicture.asset(iconT[index]),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: data.homeMenus![parentIndex].menuEntiesList[index].prompt!.toText11(isBold: true),
),
SvgPicture.asset("assets/images/arrow_next.svg").paddingOnly(bottom: 4)
],
)
],
).paddingOnly(left: 10, right: 10, bottom: 10, top: 12),
),
);
},
separatorBuilder: (cxt, index) => 9.width,
itemCount: data.homeMenus![parentIndex].menuEntiesList.length),
),
],
).onPress(() {
handleOnPress(context, data.homeMenus![parentIndex].menuEntiesList[index]);
});
},
separatorBuilder: (cxt, index) => 9.width,
itemCount: data.homeMenus![parentIndex].menuEntiesList.length),
),
],
),
);
},
separatorBuilder: (context, index) {
return 12.height;
},
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
physics: const NeverScrollableScrollPhysics(),
itemCount: data.homeMenus!.length);
},
);
}
void handleOnPress(context, GetMenuEntriesList menuEntry) {
print(menuEntry.menuName);
if (menuEntry.menuName == "HMG_OTL_SS" || menuEntry.menuName == "HMG_PT_OTL_SS") {
Navigator.pushNamed(context, AppRoutes.myAttendance);
} else {
Utils.showToast("In Progress");
}
}
String firstWord(String value) {
return value.split(" ").length > 1 ? value.split(" ")[0] : "";
}

@ -69,7 +69,7 @@ class _ForgotPasswordScreenState extends State<ForgotPasswordScreen> {
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
}

@ -69,25 +69,24 @@ class _LoginScreenState extends State<LoginScreen> {
}
String? firebaseToken;
GetMobileLoginInfoListModel? loginInfo;
Future<void> checkFirebaseToken() async {
try {
Utils.showLoading(context);
firebaseToken = await _firebaseMessaging.getToken();
GetMobileLoginInfoListModel? loginInfo = await LoginApiClient().getMobileLoginInfoNEW(firebaseToken ?? "", Platform.isAndroid ? "android" : "ios");
loginInfo = await LoginApiClient().getMobileLoginInfoNEW(firebaseToken ?? "", Platform.isAndroid ? "android" : "ios");
if (loginInfo == null) {
Utils.hideLoading(context);
print("Device token not found");
return;
} else {
loginInfo!.deviceToken = firebaseToken;
await checkPrefs();
Utils.hideLoading(context);
performLogin();
}
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
}
@ -112,14 +111,14 @@ class _LoginScreenState extends State<LoginScreen> {
}
Utils.hideLoading(context);
if (_autoLogin) {
Navigator.pushNamed(context, AppRoutes.verifyLastLogin);
Navigator.pushNamed(context, AppRoutes.verifyLastLogin, arguments: loginInfo);
} else {
Navigator.pushNamed(context, AppRoutes.verifyLogin, arguments: "$firebaseToken");
}
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, (msg) {
Utils.handleException(ex, context, (msg) {
Utils.confirmDialog(context, msg);
});
}
@ -127,8 +126,10 @@ class _LoginScreenState extends State<LoginScreen> {
@override
Widget build(BuildContext context) {
username.text="15153";
password.text="Xy12345@";
username.text = "15153";
password.text = "Abcd@1234";
// username.text = "15444";
// password.text = "w123456@";
return Scaffold(
body: Column(
children: [

@ -46,7 +46,7 @@ class _NewPasswordScreenState extends State<NewPasswordScreen> {
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, (msg) {
Utils.handleException(ex, context, (msg) {
Utils.confirmDialog(context, msg);
});
}

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@ -222,47 +224,60 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
// isMoreOption = true;
});
} else {
Utils.showLoading(context);
if (_flag == 2 || _flag == 3) {
bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics();
if (authenticateWithFaceAndTouchID) {
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboard, (Route<dynamic> route) => false);
return;
} else {
Utils.hideLoading(context);
return;
}
}
await LoginApiClient().checkMobileAppVersion();
await LoginApiClient().memberLogin(AppState().getUserName!, AppState().password!);
BasicMemberInformationModel? memberInformationModel = await LoginApiClient().mohemmSendActivationCodeByOTPNotificationType(
checkBiometricIsAvailable(BiometricType.fingerprint) ? 1 : 0, AppState().memberLoginList?.pMOBILENUMBER, _flag, AppState().getUserName);
Utils.hideLoading(context);
OtpDialog(
context,
_flag,
int.tryParse(AppState().memberLoginList?.pMOBILENUMBER ?? ""),
(value) async {
Utils.showLoading(context);
try {
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(false, AppState().memberLoginList?.pMOBILENUMBER, value, AppState().getUserName);
if (genericResponseModel?.errorMessage != null) {
Utils.showToast(genericResponseModel?.errorMessage ?? "");
// Navigator.pop(context);
}
Utils.hideLoading(context);
Navigator.pop(context);
try {
Utils.showLoading(context);
if (_flag == 2 || _flag == 3) {
bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics();
if (authenticateWithFaceAndTouchID) {
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboard, (Route<dynamic> route) => false);
} catch (ex) {
print(ex);
return;
} else {
Utils.hideLoading(context);
Utils.handleException(ex, null);
return;
}
},
() => {
Navigator.pop(context),
},
).displayDialog(context);
}
await LoginApiClient().checkMobileAppVersion();
await LoginApiClient().memberLogin(AppState().getUserName!, AppState().password!);
BasicMemberInformationModel? memberInformationModel = await LoginApiClient().mohemmSendActivationCodeByOTPNotificationType(
checkBiometricIsAvailable(BiometricType.fingerprint) ? 1 : 0, AppState().memberLoginList?.pMOBILENUMBER, _flag, AppState().getUserName);
Utils.hideLoading(context);
OtpDialog(
context,
_flag,
int.tryParse(AppState().memberLoginList?.pMOBILENUMBER ?? ""),
(value) async {
Utils.showLoading(context);
try {
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(false, AppState().memberLoginList?.pMOBILENUMBER, value, AppState().getUserName);
GenericResponseModel? genericResponseModel1 = await LoginApiClient().insertMobileLoginInfoNEW(
AppState().memberLoginList?.pEMAILADDRESS ?? "",
genericResponseModel?.pSESSIONID ?? 0,
genericResponseModel?.memberInformationList![0].eMPLOYEENAME ?? "",
_flag,
AppState().memberLoginList?.pMOBILENUMBER ?? "",
AppState().getUserName!,
mobileLoginInfoListModel!.deviceToken!,
Platform.isAndroid ? "android" : "ios");
if (genericResponseModel?.errorMessage != null) {
Utils.showToast(genericResponseModel?.errorMessage ?? "");
// Navigator.pop(context);
}
Utils.hideLoading(context);
Navigator.pop(context);
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboard, (Route<dynamic> route) => false);
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
},
() => {
Navigator.pop(context),
},
).displayDialog(context);
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
// authenticateUser(_flag, isActive: _loginIndex);
}

@ -666,7 +666,7 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
(value) async {
Utils.showLoading(context);
try {
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(false, AppState().memberLoginList?.pMOBILENUMBER, value, AppState().getUserName);
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(true, AppState().memberLoginList?.pMOBILENUMBER, value, AppState().getUserName);
GenericResponseModel? genericResponseModel1 = await LoginApiClient().insertMobileLoginInfoNEW(
AppState().memberLoginList?.pEMAILADDRESS ?? "",
genericResponseModel?.pSESSIONID ?? 0,
@ -682,6 +682,9 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
AppState().setPrivilegeListModel = genericResponseModel!.privilegeList ?? [];
AppState().setMemberInformationListModel = genericResponseModel.memberInformationList?.first;
MemberInformationListModel.saveToPrefs(genericResponseModel.memberInformationList ?? []);
genericResponseModel.privilegeList!.forEach((element) {
print(element.serviceName.toString() + " " + element.previlege.toString()); // Check availability
});
PrivilegeListModel.saveToPrefs(genericResponseModel.privilegeList ?? []);
Utils.saveStringFromPrefs(SharedPrefsConsts.username, AppState().getUserName!);
Utils.saveStringFromPrefs(SharedPrefsConsts.password, AppState().password!);
@ -692,7 +695,7 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
},
() => {
@ -702,7 +705,7 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, null);
Utils.handleException(ex, context, null);
}
}
},

@ -0,0 +1,220 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dyanmic_forms/get_set_values_request_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
class DynamicInputScreen extends StatefulWidget {
DynamicInputScreen({Key? key}) : super(key: key);
@override
_DynamicInputScreenState createState() {
return _DynamicInputScreenState();
}
}
class _DynamicInputScreenState extends State<DynamicInputScreen> {
GenericResponseModel? genericResponseModel;
List<GetEITDFFStructureList>? getEitDffStructureList;
DynamicListViewParams? dynamicParams;
@override
void initState() {
super.initState();
}
void getTransactionsStructure() async {
try {
Utils.showLoading(context);
genericResponseModel = await MyAttendanceApiClient().getEitDffStructure(dynamicParams!.dynamicId);
getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? [];
//getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void calGetValueSetValues(GetEITDFFStructureList structureList) async {
try {
Utils.showLoading(context);
String segmentId = structureList.cHILDSEGMENTSVS!;
List<GetEITDFFStructureList> filteredList = getEitDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? [];
List<Map<String, dynamic>> values = filteredList
.map((e) => GetSetValuesRequestModel(
sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME)
.toJson())
.toList();
ESERVICESVS genericResponseModel = await MyAttendanceApiClient().getValueSetValues(structureList.cHILDSEGMENTSVS!, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values);
int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == structureList.cHILDSEGMENTSVS);
getEitDffStructureList![index].eSERVICESVS!.add(genericResponseModel);
// getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? [];
//getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
if (dynamicParams == null) {
dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicListViewParams;
getTransactionsStructure();
}
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: dynamicParams!.title,
),
body: Column(
children: [
(getEitDffStructureList == null
? const SizedBox()
: (getEitDffStructureList!.isEmpty
? LocaleKeys.noDataAvailable.tr().toText16().center
: ListView.separated(
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(21),
itemBuilder: (cxt, int parentIndex) => parseDynamicFormatType(getEitDffStructureList![parentIndex], parentIndex),
separatorBuilder: (cxt, index) => 0.height,
itemCount: getEitDffStructureList!.length)))
.expanded,
// 12.height,
DefaultButton(
LocaleKeys.next.tr(),
(getEitDffStructureList ?? []).isEmpty
? null
: () => {
//Navigator.of(context).pushNamed(LOGIN_TYPE)
},
).insideContainer,
],
),
);
}
Widget parseDynamicFormatType(GetEITDFFStructureList model, int index) {
if (model.dISPLAYFLAG != "N") {
} else {
return const SizedBox();
}
if (model.fORMATTYPE == "C") {
if (model.eSERVICESVS?.isNotEmpty ?? false) {
return PopupMenuButton(
child: DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
isEnable: false,
isPopup: true,
).paddingOnly(bottom: 12),
itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i),
],
onSelected: (int index) {
ESERVICESDV eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: model.eSERVICESVS![index].vALUECOLUMNNAME,
pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: model.eSERVICESVS![index].vALUECOLUMNNAME);
print(model.eSERVICESVS![index].toJson());
});
}
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
isReadOnly: model.rEADONLY == "Y",
onChange: (text) {
model.fieldAnswer = text;
},
).paddingOnly(bottom: 12);
} else if (model.fORMATTYPE == "X") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.eSERVICESDV?.pIDCOLUMNNAME ?? (getEitDffStructureList![index].fieldAnswer ?? ""),
suffixIconData: Icons.calendar_today,
isEnable: false,
onTap: () async {
DateTime date = await _selectDate(context);
DateTime date1 = DateTime(date.year, date.month, date.day);
getEitDffStructureList![index].fieldAnswer = date.toString();
ESERVICESDV eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: DateFormat('yyyy-MM-dd').format(date1),
pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
getEitDffStructureList![index].eSERVICESDV = eservicesdv;
setState(() {});
if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
calGetValueSetValues(model);
}
},
).paddingOnly(bottom: 12);
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [],
).objectContainerView();
}
DateTime selectedDate = DateTime.now();
Future<DateTime> _selectDate(BuildContext context) async {
DateTime time = selectedDate;
if (!Platform.isIOS) {
await showCupertinoModalPopup(
context: context,
builder: (cxt) => Container(
height: 250,
color: Colors.white,
child: CupertinoDatePicker(
backgroundColor: Colors.white,
mode: CupertinoDatePickerMode.date,
onDateTimeChanged: (value) {
if (value != null && value != selectedDate) {
time = value;
}
},
initialDateTime: selectedDate,
),
),
);
} else {
final DateTime? picked =
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
if (picked != null && picked != selectedDate) {
time = picked;
}
}
return time;
}
}

@ -0,0 +1,106 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_eit_transaction_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
class DynamicListViewParams {
String title;
String dynamicId;
String uRL;
String requestID;
String colsURL;
DynamicListViewParams(this.title, this.dynamicId, {this.uRL = 'GET_EIT_DFF_STRUCTURE', this.requestID = '', this.colsURL = ''});
}
class DynamicListViewScreen extends StatefulWidget {
DynamicListViewScreen({Key? key}) : super(key: key);
@override
_DynamicListViewScreenState createState() {
return _DynamicListViewScreenState();
}
}
class _DynamicListViewScreenState extends State<DynamicListViewScreen> {
List<GetEITTransactionList>? getEITTransactionList;
DynamicListViewParams? dynamicParams;
@override
void initState() {
super.initState();
}
void getTransactions() async {
try {
Utils.showLoading(context);
getEITTransactionList = await MyAttendanceApiClient().getEitTransaction(dynamicParams!.dynamicId);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
if (dynamicParams == null) {
dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicListViewParams;
getTransactions();
}
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: dynamicParams!.title,
),
body: getEITTransactionList == null
? const SizedBox()
: (getEITTransactionList!.isEmpty
? LocaleKeys.noDataAvailable.tr().toText16().center
: ListView.separated(
physics: const BouncingScrollPhysics(),
padding: EdgeInsets.all(21),
itemBuilder: (cxt, int parentIndex) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
for (int t = 0; t < (getEITTransactionList![parentIndex].collectionTransaction ?? []).length; t++)
if (getEITTransactionList![parentIndex].collectionTransaction![t].dISPLAYFLAG == "Y")
ItemDetailView(
getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTPROMPT!, getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTVALUEDSP ?? ""),
],
).objectContainerView(),
separatorBuilder: (cxt, index) => 12.height,
itemCount: getEITTransactionList!.length)),
floatingActionButton: Container(
height: 50,
width: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle,
gradient: LinearGradient(transform: GradientRotation(.83), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
]),
),
child: const Icon(Icons.add, color: Colors.white, size: 30),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.addDynamicInput, arguments: dynamicParams);
}),
);
}
}

@ -0,0 +1,65 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
class MyAttendanceScreen extends StatelessWidget {
MyAttendanceScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: LocaleKeys.myAttendance.tr(),
),
body: SizedBox(
width: double.infinity,
height: double.infinity,
child: ListView(
children: [
itemView(
"assets/images/pdf.svg",
LocaleKeys.missingSwipes.tr(),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.missingSwipes.tr(), "HMG_OTL_MISSING_SWIPE_EIT_SS"));
}),
12.height,
itemView(
"assets/images/pdf.svg",
LocaleKeys.workFromHome.tr(),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.workFromHome.tr(), "HMG_OTL_WFH_EIT_SS"));
}),
12.height,
itemView(
"assets/images/pdf.svg",
LocaleKeys.workOnBreak.tr(),
),
],
).paddingAll(21)),
);
}
Widget itemView(String icon, String title) {
return Row(
children: [
(title).toText16().expanded,
12.width,
SvgPicture.asset(
"assets/images/arrow_next.svg",
color: MyColors.darkIconColor,
)
],
).objectContainerView();
}
}

@ -0,0 +1,238 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
class BasicDetails extends StatefulWidget {
const BasicDetails({Key? key}) : super(key: key);
@override
_BasicDetailsState createState() => _BasicDetailsState();
}
class _BasicDetailsState extends State<BasicDetails> {
String? fullName = "";
String? maritalStatus = "";
String? birthDate = "";
String? civilIdentityNumber = "";
String? emailAddress = "";
String? employeeNo = "";
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
@override
void initState() {
super.initState();
getEmployeeBasicDetails();
basicDetails();
}
void getEmployeeBasicDetails() async {
try {
Utils.showLoading(context);
getEmployeeBasicDetailsList = await ProfileApiClient().getEmployeeBasicDetails();
Utils.hideLoading(context);
basicDetails();
print("getEmployeeBasicDetailsList.length");
print(getEmployeeBasicDetailsList.length);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
basicDetails() {
for (int i = 0; i < getEmployeeBasicDetailsList.length; i++) {
if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'FULL_NAME') {
fullName = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'MARITAL_STATUS') {
maritalStatus = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'DATE_OF_BIRTH') {
birthDate = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'NATIONAL_IDENTIFIER') {
civilIdentityNumber = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMAIL_ADDRESS') {
emailAddress = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMPLOYEE_NUMBER') {
employeeNo = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
}
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_basicDetails.tr(),
),
// appBar: AppBar(
// backgroundColor: MyColors.white,
// leading: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// IconButton(
// icon: const Icon(
// Icons.arrow_back_ios,
// color: MyColors.backgroundBlackColor,
// ),
// onPressed: () => Navigator.pop(context),
// ),
// "Basic Details".toText24(isBold: true, color: MyColors.blackColor),
// ],
// ),
// ),
backgroundColor: MyColors.backgroundColor,
bottomSheet: footer(),
body: Column(
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 28,
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 13, bottom: 5),
height: 280,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
LocaleKeys.fullName.tr().toText13(color: MyColors.lightGrayColor),
"${fullName}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.maritalStatus.tr().toText13(color: MyColors.lightGrayColor),
"${maritalStatus}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.dateOfBirth.tr().toText13(color: MyColors.lightGrayColor),
"${birthDate}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.civilIdentityNumber.tr().toText13(color: MyColors.lightGrayColor),
"${civilIdentityNumber}".toText16(isBold: true, color: MyColors.blackColor),
]),
),
],
));
}
footer() {
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
color: MyColors.white,
boxShadow: [
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton(LocaleKeys.update.tr(), () async {
showAlertDialog(context);
}).insideContainer,
);
}
showAlertDialog(BuildContext context) {
dynamic changeOrNew = 1;
Widget cancelButton = TextButton(
child: Text("Cancel"),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = TextButton(
child: Text("Next"),
onPressed: () {
continueDynamicForms();
},
);
StatefulBuilder alert = StatefulBuilder(builder: (context, setState) {
return AlertDialog(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10.0))),
title: Text("Confirm"),
content: Builder(builder: (context) {
// Get available height and width of the build area of this widget. Make a choice depending on the size.
var height = MediaQuery.of(context).size.height * .5;
return Container(
height: height,
child: Column(children: [
Text(
"Select the type of change you want to make.",
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
Divider(),
Column(
children: [
ListTile(
title: Text("correct or complete the current details"),
leading: Radio(
value: 1,
groupValue: changeOrNew,
onChanged: (value) {
setState(() {
changeOrNew = int.parse(value.toString());
});
},
activeColor: Colors.green,
),
),
ListTile(
title: Text("Enter new Information because of a real change to the current details (e.g because of a change in marital status)"),
leading: Radio(
value: 2,
groupValue: changeOrNew,
onChanged: (value) {
setState(() {
changeOrNew = int.parse(value.toString());
});
},
activeColor: Colors.green,
),
),
],
)
]));
}),
actions: [
cancelButton,
continueButton,
],
);
});
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
void continueDynamicForms() {
Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile,
arguments: DynamicProfileParams(LocaleKeys.profile_basicDetails.tr(), 'HR_PERINFO_SS',
uRL: 'GET_BASIC_DET_DFF_STRUCTURE', requestID: 'BASIC_DETAILS', getEmployeeBasicDetailsList: getEmployeeBasicDetailsList));
}
}

@ -0,0 +1,236 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/ui/profile/phone_numbers.dart';
import 'package:mohem_flutter_app/ui/profile/profile.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
class ContactDetails extends StatefulWidget {
const ContactDetails({Key? key}) : super(key: key);
@override
_ContactDetailsState createState() => _ContactDetailsState();
}
class _ContactDetailsState extends State<ContactDetails> {
String? fullName = "";
String? maritalStatus = "";
String? birthDate = "";
String? civilIdentityNumber = "";
String? emailAddress = "";
String? employeeNo = "";
List<GetEmployeePhonesList> getEmployeePhonesList = [];
List<GetEmployeeAddressList> getEmployeeAddressList = [];
@override
void initState() {
super.initState();
getEmployeePhones();
setState(() {});
}
void getEmployeePhones() async {
try {
Utils.showLoading(context);
getEmployeePhonesList = await ProfileApiClient().getEmployeePhones();
getEmployeeAddress();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void getEmployeeAddress() async {
try {
Utils.showLoading(context);
getEmployeeAddressList = await ProfileApiClient().getEmployeeAddress();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_contactDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
bottomSheet: footer(),
body: Column(children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 20,
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 5, bottom: 20),
height: 200,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
IconButton(
icon: Icon(
Icons.edit_location_alt_outlined,
size: 20,
),
onPressed: () {
updatePhone();
},
)
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: getEmployeePhonesList
.map((e) => Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
"${e.pHONETYPEMEANING}".toText13(color: MyColors.lightGrayColor),
"${e.pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
]))
.toList())
])
// [
// "${getEmployeePhonesList[0].pHONETYPEMEANING}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeePhonesList[0].pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,),
// "${getEmployeePhonesList[1].pHONETYPEMEANING}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeePhonesList[1].pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
// ]
),
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 20,
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 5, bottom: 20),
height: 400,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: SingleChildScrollView(
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
IconButton(
icon: Icon(
Icons.edit_location_alt_outlined,
size: 20,
),
onPressed: () {},
)
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: getEmployeeAddressList
.map((e) => Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
"${e.sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
"${e.sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
]))
.toList())
])))
// "${getEmployeeAddressList[0].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[0].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[2].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[2].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[3].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[3].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[4].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[4].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[5].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[5].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[6].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[6].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
//]),
//),
//],
]));
}
footer() {
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
color: MyColors.white,
boxShadow: [
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton(LocaleKeys.update.tr(), () async {
// context.setLocale(const Locale("en", "US")); // to change Loacle
Profile();
}).insideContainer,
);
}
updatePhone() {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => PhoneNumbers(getEmployeePhonesList: this.getEmployeePhonesList)),
);
}
}

@ -0,0 +1,326 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dyanmic_forms/get_set_values_request_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
class DynamicProfileParams {
String title;
String dynamicId;
String uRL;
String requestID;
String colsURL;
List<GetEmployeeBasicDetailsList>? getEmployeeBasicDetailsList;
DynamicProfileParams(this.title, this.dynamicId,
{this.uRL = 'GET_EIT_DFF_STRUCTURE', this.requestID = '', this.colsURL = '', this.getEmployeeBasicDetailsList = const <GetEmployeeBasicDetailsList>[]});
}
class DynamicInputScreenProfile extends StatefulWidget {
DynamicInputScreenProfile({Key? key}) : super(key: key);
@override
_DynamicInputScreenState createState() {
return _DynamicInputScreenState();
}
}
class _DynamicInputScreenState extends State<DynamicInputScreenProfile> {
GenericResponseModel? genericResponseModel;
List<GetBasicDetDffStructureList>? getBasicDetDffStructureList;
List<GetBasicDetColsStructureList>? getBasicDetColsStructureList;
DynamicProfileParams? dynamicParams;
@override
void initState() {
super.initState();
}
void getTransactionsStructure() async {
try {
Utils.showLoading(context);
genericResponseModel = await ProfileApiClient().getDffStructure(dynamicParams!.dynamicId, dynamicParams!.uRL, dynamicParams!.requestID);
getBasicDetDffStructureList = genericResponseModel?.getBasicDetDffStructureList ?? [];
getBasicDetDffStructureList?.forEach((element) {
element.userBasicDetail = dynamicParams!.getEmployeeBasicDetailsList!.singleWhere((userDetail) => userDetail.aPPLICATIONCOLUMNNAME == element.aPPLICATIONCOLUMNNAME);
});
genericResponseModel = await ProfileApiClient().getColStructure(dynamicParams!.dynamicId, 'GET_BASIC_DET_COLS_STRUCTURE', dynamicParams!.requestID);
getBasicDetColsStructureList = genericResponseModel?.getBasicDetColsStructureList ?? [];
getBasicDetColsStructureList?.forEach((element) {
element.userBasicDetail = dynamicParams!.getEmployeeBasicDetailsList!.singleWhere((userDetail) => userDetail.aPPLICATIONCOLUMNNAME == element.aPPLICATIONCOLUMNNAME);
});
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void calGetValueSetValues(GetBasicDetDffStructureList structureList) async {
try {
Utils.showLoading(context);
String segmentId = structureList.cHILDSEGMENTSVS!;
List<GetBasicDetDffStructureList> filteredList = getBasicDetDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? [];
List<Map<String, dynamic>> values = filteredList
.map((e) => GetSetValuesRequestModel(
sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME)
.toJson())
.toList();
ESERVICESVS genericResponseModel = await MyAttendanceApiClient().getValueSetValues(structureList.cHILDSEGMENTSVS!, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values);
int index = getBasicDetDffStructureList!.indexWhere((element) => element.sEGMENTNAME == structureList.cHILDSEGMENTSVS);
getBasicDetDffStructureList![index].eSERVICESVS!.add(genericResponseModel);
// getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? [];
//getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
if (dynamicParams == null) {
dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicProfileParams;
getTransactionsStructure();
}
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: dynamicParams!.title,
),
body: Column(
children: [
(getBasicDetDffStructureList == null && getBasicDetColsStructureList == null
? const SizedBox()
: (getBasicDetDffStructureList!.isEmpty && getBasicDetColsStructureList!.isEmpty
? LocaleKeys.noDataAvailable.tr().toText16().center
: ListView(
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(21),
children: [
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (BuildContext cxt, int parentIndex) {
return parseDynamicFormatTypeCols(getBasicDetColsStructureList![parentIndex], parentIndex);
},
separatorBuilder: (cxt, index) => 0.height,
itemCount: getBasicDetColsStructureList!.length),
12.height,
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (BuildContext cxt, int parentIndex) {
return parseDynamicFormatType(getBasicDetDffStructureList![parentIndex], parentIndex);
},
separatorBuilder: (cxt, index) => 0.height,
itemCount: getBasicDetDffStructureList!.length),
],
)))
.expanded,
// 12.height,
DefaultButton(
LocaleKeys.next.tr(),
(getBasicDetDffStructureList ?? []).isEmpty
? null
: () => {
//Navigator.of(context).pushNamed(LOGIN_TYPE)
},
).insideContainer,
],
),
);
}
Widget parseDynamicFormatType(GetBasicDetDffStructureList model, int index) {
if (model.dISPLAYFLAG != "N") {
} else {
return const SizedBox();
}
if (model.fORMATTYPE == "C") {
if (model.eSERVICESVS?.isNotEmpty ?? false) {
return PopupMenuButton(
child: DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.userBasicDetail?.sEGMENTVALUEDSP ?? "",
isEnable: false,
isPopup: true,
).paddingOnly(bottom: 12),
itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i),
],
onSelected: (int popupIndex) {
getBasicDetDffStructureList![index].userBasicDetail!.sEGMENTVALUEDSP = model.eSERVICESVS![popupIndex].vALUECOLUMNNAME!;
setState(() {});
});
}
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
isReadOnly: model.rEADONLY == "Y",
onChange: (text) {
getBasicDetDffStructureList![index].userBasicDetail!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
} else if (model.fORMATTYPE == "X") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.eSERVICESDV?.pIDCOLUMNNAME ?? (getBasicDetDffStructureList![index].userBasicDetail?.sEGMENTVALUEDSP ?? ""),
suffixIconData: Icons.calendar_today,
isEnable: false,
onTap: () async {
DateTime date = await _selectDate(context);
DateTime date1 = DateTime(date.year, date.month, date.day);
getBasicDetDffStructureList![index].userBasicDetail!.sEGMENTVALUEDSP = date.toString();
ESERVICESDV eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: DateFormat('yyyy-MM-dd').format(date1),
pRETURNMSG: "null",
pRETURNSTATUS: getBasicDetDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
getBasicDetDffStructureList![index].eSERVICESDV = eservicesdv;
setState(() {});
if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
calGetValueSetValues(model);
}
},
).paddingOnly(bottom: 12);
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [],
).objectContainerView();
}
Widget parseDynamicFormatTypeCols(GetBasicDetColsStructureList model, int index) {
if (model.dISPLAYFLAG != "N") {
} else {
return const SizedBox();
}
if (model.dATATYPE == "VARCHAR2") {
if (model.objectValuesList?.isNotEmpty ?? false) {
return PopupMenuButton(
child: DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.userBasicDetail?.sEGMENTVALUEDSP ?? "",
isEnable: false,
isPopup: true,
).paddingOnly(bottom: 12),
itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < model.objectValuesList!.length; i++) PopupMenuItem<int>(child: Text(model.objectValuesList![i].mEANING!), value: i),
],
onSelected: (int popupIndex) {
ESERVICESDV eservicesdv =
ESERVICESDV(pIDCOLUMNNAME: model.objectValuesList![index].dESCRIPTION, pRETURNMSG: "null", pRETURNSTATUS: model.oBJECTNAME, pVALUECOLUMNNAME: model.aPPLICATIONCOLUMNNAME);
getBasicDetDffStructureList![index].userBasicDetail!.sEGMENTVALUEDSP = model.objectValuesList![popupIndex].dESCRIPTION!;
setState(() {});
});
}
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.userBasicDetail?.sEGMENTVALUEDSP ?? "",
//model.aPPLICATIONCOLUMNNAME ?? "",
//"",
isReadOnly: false,
onChange: (text) {
getBasicDetColsStructureList![index].userBasicDetail!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
} else if (model.dATATYPE == "DATE") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.aPPLICATIONCOLUMNNAME ?? (getBasicDetColsStructureList![index].userBasicDetail?.sEGMENTVALUEDSP ?? ""),
suffixIconData: Icons.calendar_today,
isEnable: false,
onTap: () async {
DateTime date = await _selectDate(context);
DateTime date1 = DateTime(date.year, date.month, date.day);
getBasicDetColsStructureList![index].userBasicDetail?.sEGMENTVALUEDSP = date.toString();
// ESERVICESDV eservicesdv = ESERVICESDV(
// pIDCOLUMNNAME: DateFormat('yyyy-MM-dd').format(date1),
// pRETURNMSG: "null",
// pRETURNSTATUS: getBasicDetDffStructureList![index].dEFAULTVALUE,
// pVALUECOLUMNNAME: DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
// getBasicDetDffStructureList![index].eSERVICESDV = eservicesdv;
setState(() {});
// if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// calGetValueSetValues(model);
// }
},
).paddingOnly(bottom: 12);
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [],
).objectContainerView();
}
DateTime selectedDate = DateTime.now();
Future<DateTime> _selectDate(BuildContext context) async {
DateTime time = selectedDate;
if (!Platform.isIOS) {
await showCupertinoModalPopup(
context: context,
builder: (cxt) => Container(
height: 250,
color: Colors.white,
child: CupertinoDatePicker(
backgroundColor: Colors.white,
mode: CupertinoDatePickerMode.date,
onDateTimeChanged: (value) {
if (value != null && value != selectedDate) {
time = value;
}
},
initialDateTime: selectedDate,
),
),
);
} else {
final DateTime? picked =
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
if (picked != null && picked != selectedDate) {
time = picked;
}
}
return time;
}
}

@ -0,0 +1,105 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_eit_transaction_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
class DynamicListViewParams {
String title;
String dynamicId;
String uRL;
String requestID;
DynamicListViewParams(this.title, this.dynamicId, {this.uRL = 'GET_EIT_DFF_STRUCTURE', this.requestID = ''});
}
class DynamicListViewScreen extends StatefulWidget {
DynamicListViewScreen({Key? key}) : super(key: key);
@override
_DynamicListViewScreenState createState() {
return _DynamicListViewScreenState();
}
}
class _DynamicListViewScreenState extends State<DynamicListViewScreen> {
List<GetEITTransactionList>? getEITTransactionList;
DynamicListViewParams? dynamicParams;
@override
void initState() {
super.initState();
}
void getTransactions() async {
try {
Utils.showLoading(context);
getEITTransactionList = await MyAttendanceApiClient().getEitTransaction(dynamicParams!.dynamicId);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
if (dynamicParams == null) {
dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicListViewParams;
getTransactions();
}
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: dynamicParams!.title,
),
body: getEITTransactionList == null
? const SizedBox()
: (getEITTransactionList!.isEmpty
? LocaleKeys.noDataAvailable.tr().toText16().center
: ListView.separated(
physics: const BouncingScrollPhysics(),
padding: EdgeInsets.all(21),
itemBuilder: (cxt, int parentIndex) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
for (int t = 0; t < (getEITTransactionList![parentIndex].collectionTransaction ?? []).length; t++)
if (getEITTransactionList![parentIndex].collectionTransaction![t].dISPLAYFLAG == "Y")
ItemDetailView(
getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTPROMPT!, getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTVALUEDSP ?? ""),
],
).objectContainerView(),
separatorBuilder: (cxt, index) => 12.height,
itemCount: getEITTransactionList!.length)),
floatingActionButton: Container(
height: 50,
width: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle,
gradient: LinearGradient(transform: GradientRotation(.83), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
]),
),
child: const Icon(Icons.add, color: Colors.white, size: 30),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.addDynamicInput, arguments: dynamicParams);
}),
);
}
}

@ -0,0 +1,251 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/dialogs/otp_dialog.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
import 'package:mohem_flutter_app/ui/profile/profile.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
class FamilyMembers extends StatefulWidget {
const FamilyMembers({Key? key}) : super(key: key);
@override
_FamilyMembersState createState() => _FamilyMembersState();
}
class _FamilyMembersState extends State<FamilyMembers> {
List<GetEmployeeContactsList> getEmployeeContactsList = [];
@override
void initState() {
super.initState();
getEmployeeContacts();
}
void getEmployeeContacts() async {
try {
Utils.showLoading(context);
getEmployeeContactsList = await ProfileApiClient().getEmployeeContacts();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_familyDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
bottomSheet:footer(),
body: Column(
children: [
SizedBox(height: 20,),
getEmployeeContactsList.length != 0
? SingleChildScrollView(
child: Column(
children: <Widget>[
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: getEmployeeContactsList.length,
itemBuilder: (context, index) {
return Container(
child: Column(
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(top: 10, left: 26, right: 26,),
padding: EdgeInsets.only(left: 14, right: 14,top: 13, ),
height: 110,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"${getEmployeeContactsList[index].cONTACTNAME}".toText16(color: MyColors.blackColor),
"${getEmployeeContactsList[index].rELATIONSHIP}".toText11(isBold: true, color: MyColors.textMixColor),
SizedBox(height: 5,),
Divider(
color: MyColors.lightGreyEFColor,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Container(
child: InkWell(
onTap: () {
},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.edit,
size: 15,
color: MyColors.grey67Color,
),
),
TextSpan(
text: LocaleKeys.update.tr(),
style: TextStyle(
color: MyColors.grey67Color,
fontSize: 12,
fontWeight: FontWeight.bold,
),
),
],
),
),
)
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: SizedBox(
child: Container(
width: 3,
color: MyColors.lightGreyEFColor,
),
),
),
Container(
child: InkWell(
onTap: () {
showAlertDialog(context);
},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.delete,
size: 15,
color: Color(0x99FF0000),
),
),
TextSpan(
text:LocaleKeys.remove.tr(),
style: TextStyle(
color: MyColors.DarkRedColor,
fontSize: 12,
fontWeight: FontWeight.bold,
),
),
],
),
),
)
),
// ElevatedButton.icon(
// icon: Icon(
// Icons.delete,
// size: 15,
// color: Color(0x99FF0000),
// ),
// style: ElevatedButton.styleFrom(
// shadowColor: Colors.white,
// primary: Colors.white,
// ),
// label: "remove".toText12(color: MyColors.DarkRedColor),
// onPressed: (){},
// ),
],
),
]
),
),
],
)
);
})
],
),
):Container(),
],
)
);
}
footer(){
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
color: MyColors.white,
boxShadow: [
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton(LocaleKeys.update.tr(), () async {
// context.setLocale(const Locale("en", "US")); // to change Loacle
Profile();
}).insideContainer,
);
}
showAlertDialog(BuildContext context) {
Widget cancelButton = TextButton(
child: Text("CANCEL"),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = TextButton(
child: Text("OK"),
onPressed: () {},
);
AlertDialog alert = AlertDialog(
title: Text("Confirm"),
content: Text("Are You Sure You Want to Remove this Member?"),
actions: [
cancelButton,
continueButton,
],
);
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
}

@ -0,0 +1,113 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
class PesonalInfo extends StatefulWidget {
const PesonalInfo({Key? key}) : super(key: key);
@override
_PesonalInfoState createState() => _PesonalInfoState();
}
class _PesonalInfoState extends State<PesonalInfo> {
String? fullName = "";
String? maritalStatus = "";
String? birthDate = "";
String? civilIdentityNumber = "";
String? emailAddress = "";
String? employeeNo = "";
// List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
// MemberInformationListModel? _memberInformationList;
late MemberInformationListModel memberInformationList;
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
@override
void initState() {
super.initState();
memberInformationList = AppState().memberInformationList!;
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_personalInformation.tr(),
),
backgroundColor: MyColors.backgroundColor,
// bottomSheet:footer(),
body: Column(
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 28,
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 13, bottom: 20),
height: 350,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
LocaleKeys.category.tr().toText13(color: MyColors.lightGrayColor),
"${memberInformationList!.eMPLOYMENTCATEGORYMEANING}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.address.tr().toText13(color: MyColors.lightGrayColor),
"${memberInformationList!.lOCATIONNAME}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.phoneNumber.tr().toText13(color: MyColors.lightGrayColor),
"${memberInformationList!.eMPLOYEEMOBILENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.businessGroup.tr().toText13(color: MyColors.lightGrayColor),
"${memberInformationList!.bUSINESSGROUPNAME}".toText16(isBold: true, color: MyColors.blackColor),
SizedBox(
height: 20,
),
LocaleKeys.Payroll.tr().toText13(color: MyColors.lightGrayColor),
"${memberInformationList!.pAYROLLNAME}".toText16(isBold: true, color: MyColors.blackColor),
]),
),
],
));
}
footer() {
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
color: MyColors.white,
boxShadow: [
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton(LocaleKeys.update.tr(), () async {}).insideContainer,
);
}
}

@ -0,0 +1,115 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/ui/profile/profile.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
class PhoneNumbers extends StatefulWidget {
List<GetEmployeePhonesList> getEmployeePhonesList;
PhoneNumbers({Key? key, required this.getEmployeePhonesList}) : super(key: key);
@override
_PhoneNumbersState createState() => _PhoneNumbersState();
}
class _PhoneNumbersState extends State<PhoneNumbers> {
List<GetPhoneNumberTypesModel> getPhoneNumberTypesList = [];
@override
void initState() {
super.initState();
getPhoneNumberTypes();
}
void getPhoneNumberTypes() async {
Utils.showLoading(context);
getPhoneNumberTypesList = await ProfileApiClient().getPhoneNumberTypes();
setState(() {});
Utils.hideLoading(context);
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_contactDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
bottomSheet: footer(),
body: Column(children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 20,
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 5, bottom: 20),
height: 400,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: widget.getEmployeePhonesList
.map((e) => Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
PopupMenuButton(
child: DynamicTextFieldWidget(
"Please Select *",
e.pHONETYPEMEANING ?? "",
isEnable: true,
isPopup: true,
).paddingOnly(bottom: 12),
itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < getPhoneNumberTypesList.length; i++) PopupMenuItem<int>(child: Text(getPhoneNumberTypesList![i].mEANING!), value: i),
],
onSelected: (int index) {
e.pHONETYPEMEANING = getPhoneNumberTypesList[index].mEANING;
setState(() {});
}),
"${e.pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
]))
.toList())))
]));
}
footer() {
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
color: MyColors.white,
boxShadow: [
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton(LocaleKeys.update.tr(), () async {
// context.setLocale(const Locale("en", "US")); // to change Loacle
Profile();
}).insideContainer,
);
}
updatePhone() {}
}

@ -0,0 +1,289 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
class Profile extends StatefulWidget {
const Profile({Key? key}) : super(key: key);
@override
_ProfileState createState() => _ProfileState();
}
class _ProfileState extends State<Profile> {
String? fullName = "";
String? maritalStatus = "";
String? birthDate = "";
String? civilIdentityNumber = "";
String? emailAddress = "";
String? employeeNo = "";
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
@override
void initState() {
super.initState();
getEmployeeBasicDetails();
basicDetails();
}
void getEmployeeBasicDetails() async {
try {
Utils.showLoading(context);
getEmployeeBasicDetailsList = await ProfileApiClient().getEmployeeBasicDetails();
Utils.hideLoading(context);
basicDetails();
print("getEmployeeBasicDetailsList.length");
print(getEmployeeBasicDetailsList.length);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
basicDetails() {
for (int i = 0; i < getEmployeeBasicDetailsList.length; i++) {
if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'FULL_NAME') {
fullName = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'MARITAL_STATUS') {
maritalStatus = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'DATE_OF_BIRTH') {
birthDate = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'NATIONAL_IDENTIFIER') {
civilIdentityNumber = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMAIL_ADDRESS') {
emailAddress = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMPLOYEE_NUMBER') {
employeeNo = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
}
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: MyColors.lightGreenColor,
leading: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
IconButton(
icon: const Icon(
Icons.arrow_back_ios,
color: MyColors.backgroundBlackColor,
),
onPressed: () => Navigator.pop(context),
),
],
),
),
backgroundColor: MyColors.lightGreenColor,
body: Stack(children: [
Align(
alignment: Alignment.topRight,
child: Container(
height: 30,
width: 80,
padding: EdgeInsets.only(left: 10.0, right: 10.0, top: 5, bottom: 5),
decoration: BoxDecoration(
border: Border.all(
color: MyColors.gradiantEndColor,
style: BorderStyle.solid,
),
color: MyColors.gradiantEndColor,
borderRadius: BorderRadius.circular(100.0)),
child: InkWell(
onTap: () {},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.image,
size: 20,
color: Colors.white,
),
),
TextSpan(
text: " Edit",
),
],
),
),
)
),
),
Container(
width: double.infinity,
margin: EdgeInsets.only(top: 48),
height: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(topLeft: Radius.circular(30.0), topRight: Radius.circular(30.0)),
),
child: Column(
children: [
"${fullName}".toText20(isBold: true, color: MyColors.blackColor),
"${employeeNo}".toText12(isBold: false, color: MyColors.lightGrayColor),
"${emailAddress}".toText12(isBold: false, color: MyColors.black),
SizedBox(
height: 5,
),
Divider(
color: MyColors.lightGreyE6Color,
height: 20,
thickness: 8,
indent: 0,
endIndent: 0,
),
Container(
padding: EdgeInsets.only(left: 10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
InkWell(
onTap: () {
},
child: Row(
children: <Widget>[
SizedBox(
width: 15,
),
"Personal Information".toText16(isBold: true, color: MyColors.grey3AColor),
],
),
),
SizedBox(
height: 5,
),
InkWell(
onTap: () {
},
child: Row(
children: <Widget>[
SizedBox(
width: 15,
),
"Basic Details".toText16(isBold: true, color: MyColors.grey3AColor),
],
),
),
SizedBox(
height: 5,
),
InkWell(
onTap: () {
},
child: Row(
children: <Widget>[
SizedBox(
width: 20,
),
"Contact Details".toText16(isBold: true, color: MyColors.grey3AColor),
],
),
),
SizedBox(
height: 5,
),
InkWell(
onTap: () {
},
child: Row(
children: <Widget>[
SizedBox(
width: 20,
),
"Family Members".toText16(isBold: true, color: MyColors.grey3AColor),
],
),
),
SizedBox(
height: 5,
),
],
),
),
],
).paddingOnly( top: 35, bottom: 36),
),
Align(
alignment: Alignment.topCenter,
child: SizedBox(
child: CircleAvatar(
radius: 40.0,
backgroundColor: Colors.white,
child: CircleAvatar(
child: Align(
alignment: Alignment.bottomRight,
// child: CircleAvatar(
// backgroundColor: Colors.white,
// radius: 12.0,
// child: Icon(
// Icons.camera_alt,
// size: 15.0,
// color: Color(0xFF404040),
// ),
// ),
),
radius: 38.0,
// url:"",
),
),
)),
])
// Container(
// margin: const EdgeInsets.only(top:50),
// decoration: const BoxDecoration(
// color: Colors.white,
// borderRadius: BorderRadius.only(
// topLeft: Radius.circular(30.0),
// topRight: Radius.circular(30.0))
// ),
// // color: MyColors.white,
// child: Stack(
// children: [
// Container(
// height: 30,
// color: MyColors.lightGreenColor,
// margin: const EdgeInsets.only(bottom: 20,),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// CircleAvatar(
// backgroundColor: Colors.grey.shade800,
// ),
// ],
// ),
// ),
// ListView(
// scrollDirection: Axis.vertical,
// children: [
// Column(
// children: [
// // 20.height,
// ],
// )
// ],
// ),
// ]
// ),
// ),
);
}
}

@ -0,0 +1,64 @@
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/models/dashboard/menus.dart';
import 'package:mohem_flutter_app/provider/eit_provider_model.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/ui/landing/widget/missing_swipe.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:provider/provider.dart';
class AddEITScreen extends StatelessWidget {
late GetMenuEntriesList getMenu;
late EITProviderModel data;
@override
Widget build(BuildContext context) {
getMenu = ModalRoute.of(context)!.settings.arguments as GetMenuEntriesList;
data = Provider.of<EITProviderModel>(context, listen: false);
data.getEITList(getMenu.functionName.toString());
return DefaultTabController(
length: 2,
child: Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(context, title: getMenu.prompt.toString()),
//AppBar(
// title: getMenu.prompt.toString(),
// ),
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20), bottomRight: Radius.circular(20)),
gradient: LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomRight, colors: [
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
]),
),
clipBehavior: Clip.antiAlias,
child: TabBar(
indicatorColor: Colors.white,
labelColor: Colors.white,
tabs: [
Tab(
text: "Missing Swipe",
),
Tab(
text: "Swipe Request",
),
],
),
),
Expanded(
child: TabBarView(
children: [MissingSwipe(), Container()],
),
)
])),
));
}
}

@ -0,0 +1,135 @@
import 'dart:ui';
import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/ui/screens/profile/widgets/header.dart';
import 'package:mohem_flutter_app/ui/screens/profile/widgets/profile_panel.dart';
import 'package:mohem_flutter_app/widgets/bottom_sheet.dart';
class ProfileScreen extends StatefulWidget {
const ProfileScreen({Key? key}) : super(key: key);
@override
_ProfileScreenState createState() => _ProfileScreenState();
}
class _ProfileScreenState extends State<ProfileScreen> {
late MemberInformationListModel memberInformationList;
final ImagePicker _picker = ImagePicker();
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
@override
void initState() {
super.initState();
memberInformationList = AppState().memberInformationList!;
//getEmployeeBasicDetails();
}
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
backgroundColor: const Color(0xffefefef),
body: Stack(children: [
Container(
height: 300,
margin: EdgeInsets.only(top: 50),
decoration: BoxDecoration(image: DecorationImage(image: MemoryImage(Utils.getPostBytes(memberInformationList.eMPLOYEEIMAGE)), fit: BoxFit.cover)),
child: new BackdropFilter(
filter: new ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),
child: new Container(
decoration: new BoxDecoration(color: Colors.white.withOpacity(0.0)),
),
)),
SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(crossAxisAlignment: CrossAxisAlignment.center, children: [
SizedBox(
height: 80,
),
Container(
padding: EdgeInsets.only(left: 15, right: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
IconButton(
onPressed: () {
Navigator.pop(context);
},
icon: Icon(
Icons.arrow_back_ios,
color: Colors.white,
)),
InkWell(
onTap: () {
startImageSheet();
},
child: Container(
padding: EdgeInsets.only(left: 10, right: 10, top: 5, bottom: 5),
decoration: BoxDecoration(borderRadius: BorderRadius.circular(15), color: Colors.black.withOpacity(.3)),
child: Row(children: [
Icon(Icons.photo, color: Colors.white),
Text(
'Edit',
style: TextStyle(color: Colors.white, fontSize: 12),
)
]))),
],
)),
HeaderPanel(memberInformationList),
ProfilePanle(memberInformationList)
]),
)
]));
}
startImageSheet() {
showMyBottomSheet(context,
child: Column(
children: [
Container(
padding: EdgeInsets.only(left: 20, right: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [Text('OK'), Text('CANCEL')],
)),
BottomSheetItem(
onTap: () {
openGallery(false);
},
title: 'Open Gallery',
icon: Icons.browse_gallery_outlined,
),
BottomSheetItem(
onTap: () {
openGallery(true);
},
title: 'Open Camera',
icon: Icons.camera,
)
],
));
}
void openGallery(bool isCamera) async {
final XFile? image = await _picker.pickImage(source: isCamera ? ImageSource.camera : ImageSource.gallery);
if (image != null) {
String img = base64.encode(await image!.readAsBytes());
Utils.showLoading(context);
dynamic empImageUpdteResp = await ProfileApiClient().updateEmpImage(img);
Utils.hideLoading(context);
if (empImageUpdteResp['P_RETURN_STATUS'] == 'S') {
setState(() {
memberInformationList.eMPLOYEEIMAGE = img;
});
}
}
}
}

@ -0,0 +1,19 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
class HeaderPanel extends StatelessWidget {
HeaderPanel(this.memberInformationList);
late MemberInformationListModel memberInformationList;
@override
Widget build(BuildContext context) {
double _width = MediaQuery.of(context).size.width;
return Container(
padding: EdgeInsets.symmetric(horizontal: _width / 10, vertical: 0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [],
));
}
}

@ -0,0 +1,131 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:mohem_flutter_app/models/profile_menu.model.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
class ProfileInFo extends StatelessWidget {
ProfileInFo(this.memberInfo);
MemberInformationListModel memberInfo;
String data = '.';
double sliderValue = 75;
List<ProfileMenu> menu = [
ProfileMenu(name: LocaleKeys.profile_personalInformation.tr(), icon: 'personal-info.svg', route: AppRoutes.personalInfo, dynamicUrl: ''),
ProfileMenu(
name: LocaleKeys.profile_basicDetails.tr(),
icon: 'basic-details.svg',
route: AppRoutes.basicDetails,
),
ProfileMenu(name: LocaleKeys.profile_contactDetails.tr(), icon: 'contact-details.svg', route: AppRoutes.contactDetails, dynamicUrl: ''),
ProfileMenu(name: LocaleKeys.profile_familyDetails.tr(), icon: 'family-members.svg', route: AppRoutes.familyMembers, dynamicUrl: ''),
];
@override
Widget build(BuildContext context) {
return Container(
child: Column(crossAxisAlignment: CrossAxisAlignment.center, children: [
/// card header
customLabel(memberInfo.eMPLOYEENAME.toString(), 22, Colors.black, true),
customLabel(memberInfo.eMPLOYEENUMBER.toString() + ' | ' + memberInfo.jOBNAME.toString(), 14, Colors.grey, false),
customLabel(memberInfo.eMPLOYEEEMAILADDRESS.toString(), 13, Colors.black, true),
Divider(height: 40, thickness: 8, color: const Color(0xffefefef)),
customLabel(LocaleKeys.completingYear.tr(), 10, Colors.black, true),
SizedBox(height: 10),
Container(
child: Row(mainAxisAlignment: MainAxisAlignment.spaceAround, crossAxisAlignment: CrossAxisAlignment.center, children: [
Column(
children: [customLabel(LocaleKeys.year.tr(), 14, const Color(0xff808080), true), customLabel(memberInfo.sERVICEYEARS.toString().padLeft(2, '0'), 22, Color(0xff2BB8A6), true)],
),
Column(
children: [customLabel(LocaleKeys.month.tr(), 14, const Color(0xff808080), true), customLabel(memberInfo.sERVICEMONTHS.toString().padLeft(2, '0'), 22, Color(0xff2BB8A6), true)],
),
Column(
children: [customLabel(LocaleKeys.day.tr(), 14, const Color(0xff808080), true), customLabel(memberInfo.sERVICEDAYS.toString().padLeft(2, '0'), 22, Color(0xff2BB8A6), true)],
)
])),
Divider(height: 40, thickness: 8, color: const Color(0xffefefef)),
Container(
padding: EdgeInsets.only(
left: 20,
right: 20,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
customLabel(LocaleKeys.profile_profileCompletionPer.tr() + ' 75%', 18, Colors.black, true),
const SizedBox(height: 10),
Row(
children: [
for (var i = 0; i < 4; i++)
if (i < 3) Expanded(child: drawSlider(Color(0xff2BB8A6))) else Expanded(child: drawSlider(const Color(0xffefefef)))
],
),
const SizedBox(height: 10),
Text(
LocaleKeys.profile_completeProfile.tr(),
style: TextStyle(color: Color(0xff2BB8A6), fontWeight: FontWeight.bold, decoration: TextDecoration.underline),
),
],
)),
/// description
Divider(height: 50, thickness: 8, color: const Color(0xffefefef)),
Column(
children: menu.map((i) => rowItem(i, context)).toList(),
)
]));
}
Widget drawSlider(color) {
return Row(children: [
Expanded(
flex: 1,
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
height: 6,
width: 20,
color: color,
),
)),
Container(height: 6, width: 3, color: Colors.white),
]);
}
Widget rowItem(obj, context) {
return InkWell(
onTap: () {
//if (obj.dynamicUrl == '') {
Navigator.pushNamed(context, obj.route);
// } else {
// Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile, arguments: DynamicListViewParams(obj.name, obj.functionName, uRL: obj.dynamicUrl, requestID: obj.requestID));
//}
},
child: ListTile(
leading: SvgPicture.asset('assets/images/' + obj.icon),
title: Text(obj.name),
trailing: Icon(Icons.arrow_forward),
),
);
}
Widget customLabel(String label, double size, Color color, bool isBold, {double padding = 0.0}) => Container(
padding: EdgeInsets.all(padding),
// height: 50,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [Text(label, style: TextStyle(color: color, fontSize: size, fontWeight: isBold ? FontWeight.bold : FontWeight.normal))]));
}

@ -0,0 +1,36 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/ui/screens/profile/widgets/profile_info.dart';
class ProfilePanle extends StatelessWidget {
ProfilePanle(this.memberInformationList);
late MemberInformationListModel memberInformationList;
@override
Widget build(BuildContext context) {
double _width = MediaQuery.of(context).size.width;
return Container(
margin: EdgeInsets.fromLTRB(5, 0, 5, 10),
height: MediaQuery.of(context).size.height,
child: Stack(children: [
Container(
width: _width,
margin: EdgeInsets.only(top: 50),
padding: EdgeInsets.only(top: 50),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)),
boxShadow: [BoxShadow(color: Colors.white60, blurRadius: 10, spreadRadius: 10)]),
child: ProfileInFo(memberInformationList),
),
Container(height: 100, alignment: Alignment.center, child: ProfileImage())
]));
}
Widget ProfileImage() => CircleAvatar(
radius: 70,
backgroundImage: MemoryImage(Utils.getPostBytes(memberInformationList.eMPLOYEEIMAGE)),
backgroundColor: Colors.black,
);
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save