Commit 6d1deaf2 authored by Mohit Kumar's avatar Mohit Kumar
Browse files

AttendanceList

RewardList
TourExpenses
Implementation
parent 55280429
<svg width="19" height="23" viewBox="0 0 19 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.30296 22.3088C9.54649 22.4149 9.82518 22.4149 10.0687 22.3088C12.9526 21.0534 18.8689 15.0635 18.8689 9.3966C18.8689 4.32746 14.7595 0.21875 9.69104 0.21875H9.67151C4.60236 0.21875 0.493652 4.32811 0.493652 9.3966C0.493652 15.0641 6.41905 21.0534 9.30361 22.3088H9.30296Z" fill="url(#paint0_linear_137_4196)"/>
<path d="M9.62669 4.30859C11.0612 4.30859 12.2241 5.47153 12.2241 6.906C12.2241 8.34047 11.0612 9.50341 9.62669 9.50341C8.19223 9.50341 7.02929 8.34047 7.02929 6.906C7.02929 5.47153 8.19223 4.30859 9.62669 4.30859ZM5.39101 13.1746C5.34478 12.7233 5.36497 12.3443 5.36497 12.3443C5.36497 12.3443 5.34413 12.0995 5.39101 11.6561C5.39101 11.6522 5.39166 11.6483 5.39231 11.645C5.43008 11.2817 5.59417 10.9424 5.85397 10.6826C6.11378 10.4235 6.45823 10.2548 6.82353 10.2158C7.36072 10.1591 8.99574 10.1279 9.82659 10.1279C10.6575 10.1279 11.991 10.1585 12.5288 10.2158C12.8941 10.2548 13.2386 10.4235 13.4984 10.6833C13.7582 10.9431 13.9223 11.2823 13.96 11.6463C13.96 11.6502 13.9607 11.6535 13.9613 11.6574C14.0076 12.1015 14.0017 12.3443 14.0017 12.345C14.0017 12.345 14.0082 12.7259 13.962 13.1772C13.962 13.1811 13.9613 13.185 13.9607 13.1882C13.9229 13.5581 13.7595 13.9227 13.501 14.219C13.2425 14.5146 12.8993 14.7269 12.534 14.8037C11.9982 14.9248 10.662 15.0446 9.8279 15.0388C8.99378 15.0596 7.35551 14.93 6.81962 14.8024C6.45433 14.7256 6.11118 14.5133 5.85267 14.217C5.59417 13.9208 5.43073 13.5555 5.39297 13.1863C5.39297 13.1824 5.39231 13.1785 5.39166 13.1746H5.39101Z" fill="url(#paint1_linear_137_4196)"/>
<defs>
<linearGradient id="paint0_linear_137_4196" x1="18.8689" y1="23.3195" x2="0.493653" y2="1.03342" gradientUnits="userSpaceOnUse">
<stop stop-color="#EF3739"/>
<stop offset="1" stop-color="#F47E67"/>
</linearGradient>
<linearGradient id="paint1_linear_137_4196" x1="13.3682" y1="14.3564" x2="5.93537" y2="6.92358" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFDDCE"/>
<stop offset="0.57" stop-color="white"/>
<stop offset="1" stop-color="white"/>
</linearGradient>
</defs>
</svg>
<svg width="19" height="19" viewBox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_139_4204)">
<path d="M10.1374 18.3871C8.72519 18.4226 5.94937 18.2029 5.04362 17.9871C4.42535 17.8568 3.84434 17.4969 3.40637 16.9961C2.9684 16.4954 2.69227 15.8764 2.62839 15.251L2.62626 15.2318C2.57914 14.7647 2.56455 14.2948 2.5826 13.8257C2.5826 13.8257 2.54711 13.4115 2.62661 12.6601C2.62661 12.6537 2.62661 12.6473 2.62839 12.6413C2.69409 12.0246 2.96976 11.4492 3.40921 11.0115C3.85102 10.5692 4.43015 10.2903 5.05142 10.2207C5.96108 10.1246 8.72945 10.072 10.1364 10.072C11.5433 10.072 13.8016 10.1242 14.7113 10.2207C15.3326 10.2904 15.9118 10.5694 16.3535 11.0119C16.7929 11.4497 17.0685 12.0252 17.1343 12.642L17.1364 12.6608C17.2149 13.4125 17.2042 13.8246 17.2042 13.8249C17.2066 14.2954 17.1839 14.7656 17.1364 15.2336C17.1364 15.24 17.1364 15.2464 17.1347 15.2528C17.0704 15.8785 16.7939 16.4968 16.356 16.9983C15.918 17.4998 15.3381 17.8582 14.7198 17.9889C13.8123 18.1944 11.5496 18.3967 10.1374 18.3871ZM9.79776 0.218751C8.92791 0.219242 8.07773 0.477637 7.35472 0.961267C6.6317 1.4449 6.06832 2.13204 5.7358 2.93583C5.40328 3.73962 5.31655 4.62395 5.48657 5.47703C5.6566 6.3301 6.07575 7.11361 6.69103 7.72849C7.30631 8.34337 8.09008 8.76202 8.94327 8.93149C9.79645 9.10097 10.6807 9.01367 11.4843 8.68063C12.2879 8.34759 12.9747 7.78376 13.4578 7.06044C13.941 6.33711 14.1988 5.48677 14.1988 4.61691C14.1987 4.03911 14.0848 3.46698 13.8636 2.93321C13.6424 2.39943 13.3182 1.91448 12.9095 1.50604C12.5008 1.09761 12.0156 0.773698 11.4817 0.552821C10.9478 0.331943 10.3756 0.218424 9.79776 0.218751Z" fill="url(#paint0_linear_139_4204)"/>
</g>
<defs>
<linearGradient id="paint0_linear_139_4204" x1="2.5748" y1="9.30469" x2="17.206" y2="9.30469" gradientUnits="userSpaceOnUse">
<stop stop-color="#0080DE"/>
<stop offset="0.6" stop-color="#49BCFF"/>
<stop offset="1" stop-color="#61CAFF"/>
</linearGradient>
<clipPath id="clip0_139_4204">
<rect width="18.1719" height="18.1719" fill="white" transform="translate(0.782715 0.21875)"/>
</clipPath>
</defs>
</svg>
<svg width="22" height="21" viewBox="0 0 22 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.0137 17.3984C11.2372 17.3984 11.4521 17.4858 11.6123 17.6416C11.7725 17.7976 11.8661 18.0099 11.8721 18.2334V19.3643C11.8718 19.5916 11.7809 19.81 11.6201 19.9707C11.4592 20.1313 11.241 20.2217 11.0137 20.2217C10.7863 20.2216 10.568 20.1305 10.4072 19.9697C10.2467 19.809 10.1564 19.5914 10.1562 19.3643V18.2334C10.1623 18.0099 10.2558 17.7976 10.416 17.6416C10.5761 17.4859 10.7904 17.3986 11.0137 17.3984ZM10.1064 0.925781C10.5524 0.248579 11.4729 0.248673 11.9189 0.925781C12.6439 2.02466 13.3977 3.13061 14.1621 4.22949C14.3143 4.44951 14.5351 4.61332 14.79 4.69434C16.0521 5.0947 17.3233 5.50162 18.5977 5.90137C19.3818 6.15023 19.7203 7.03782 19.2324 7.63965C18.4409 8.62518 17.6209 9.64181 16.7949 10.6797C16.6306 10.8845 16.5406 11.1388 16.5391 11.4014C16.5366 12.6912 16.5077 13.9802 16.4531 15.2676C16.4143 16.0548 15.6165 16.6848 14.9131 16.457C13.7599 16.0874 12.5823 15.6737 11.3848 15.2363C11.1449 15.1484 10.8815 15.1483 10.6416 15.2363C9.44421 15.6736 8.26669 16.0856 7.11426 16.457C6.4114 16.6837 5.61364 16.0548 5.57422 15.2676C5.51879 13.9802 5.48992 12.6912 5.48828 11.4014C5.48631 11.1389 5.39621 10.8847 5.23242 10.6797C4.40649 9.64188 3.58638 8.62327 2.79492 7.63965C2.30711 7.03788 2.64463 6.15035 3.42676 5.90137C4.70188 5.50158 5.97317 5.09474 7.23535 4.69434C7.49041 4.61335 7.71106 4.44959 7.86328 4.22949C8.6265 3.13056 9.38142 2.02471 10.1064 0.925781ZM2.27051 11.1943C2.48688 11.1243 2.72226 11.1427 2.9248 11.2461C3.12732 11.3496 3.28051 11.5297 3.35059 11.7461C3.42051 11.9624 3.40221 12.198 3.29883 12.4004C3.19537 12.6029 3.01517 12.7561 2.79883 12.8262L1.66406 13.1953C1.57855 13.223 1.48929 13.2372 1.39941 13.2373C1.19509 13.2375 0.997218 13.1648 0.841797 13.0322C0.68645 12.8996 0.583649 12.7154 0.551758 12.5137C0.519957 12.3118 0.560927 12.1048 0.667969 11.9307C0.775087 11.7565 0.94115 11.6261 1.13574 11.5635L2.27051 11.1943ZM19.1064 11.2451C19.3091 11.142 19.5445 11.124 19.7607 11.1943L20.8955 11.5645C21.0896 11.6276 21.2547 11.7577 21.3613 11.9316C21.468 12.1059 21.5096 12.3129 21.4775 12.5146C21.4454 12.7163 21.3419 12.8998 21.1865 13.0322C21.031 13.1647 20.8332 13.2376 20.6289 13.2373C20.539 13.2376 20.4497 13.2233 20.3643 13.1953L19.2305 12.8252C19.0143 12.7548 18.8346 12.6019 18.7314 12.3994C18.6283 12.1967 18.6093 11.9604 18.6797 11.7441C18.7501 11.528 18.9038 11.3482 19.1064 11.2451ZM5.20703 0.229492C5.43152 0.265321 5.63214 0.389219 5.76562 0.573242L6.46387 1.53418C6.55666 1.66199 6.61158 1.81325 6.62402 1.9707C6.63642 2.12807 6.60569 2.28604 6.53418 2.42676C6.46248 2.56761 6.35248 2.68686 6.21777 2.76953C6.0832 2.852 5.92835 2.89534 5.77051 2.89551L5.66895 2.88965C5.56871 2.87789 5.4713 2.84774 5.38086 2.80176C5.26011 2.74031 5.15475 2.65166 5.0752 2.54199L4.37793 1.58008C4.24437 1.39596 4.18886 1.16604 4.22461 0.941406C4.26038 0.716811 4.38426 0.515375 4.56836 0.381836C4.75245 0.248375 4.98247 0.19375 5.20703 0.229492ZM16.8213 0.229492C17.0459 0.193743 17.2759 0.24832 17.46 0.381836C17.6441 0.51538 17.7679 0.716801 17.8037 0.941406C17.8395 1.16604 17.7839 1.39596 17.6504 1.58008L16.9531 2.54004C16.8737 2.64992 16.7692 2.7392 16.6484 2.80078C16.5277 2.8623 16.3943 2.89476 16.2588 2.89453C16.101 2.89433 15.9461 2.85008 15.8115 2.76758C15.6769 2.68501 15.5669 2.56743 15.4951 2.42676C15.4234 2.2861 15.3921 2.12812 15.4043 1.9707C15.4165 1.81328 15.4719 1.6621 15.5645 1.53418L16.2617 0.573242C16.3952 0.389176 16.5967 0.265289 16.8213 0.229492Z" fill="url(#paint0_linear_123_4889)"/>
<defs>
<linearGradient id="paint0_linear_123_4889" x1="18.6564" y1="27.4435" x2="1.24079" y2="3.4673" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF8011"/>
<stop offset="1" stop-color="#FFC022"/>
</linearGradient>
</defs>
</svg>
<svg width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.1884 3.45117C10.254 3.45123 10.3165 3.46846 10.3553 3.49805C12.7723 5.34454 15.7199 7.96658 17.6727 9.80469C17.8178 9.94137 17.9804 10.0536 18.1552 10.1396C18.1864 12.0382 18.101 13.9364 17.8983 15.835C17.7429 17.1743 16.4587 18.4598 15.119 18.6152C11.8318 18.9665 8.54487 18.9665 5.25769 18.6152C3.91839 18.4597 2.63385 17.1746 2.47839 15.835C2.27571 13.9364 2.18994 12.0382 2.22156 10.1396C2.39607 10.0535 2.55978 9.94148 2.70496 9.80469C4.65776 7.96658 7.60492 5.3441 10.0214 3.49805C10.061 3.468 10.1233 3.45117 10.1884 3.45117ZM8.26453 1.2002C9.3793 0.346017 10.9985 0.345839 12.1141 1.2002C15.2634 3.60605 18.6833 6.78164 19.6561 7.69727C20.0233 8.04326 20.0407 8.62161 19.6952 8.98926C19.5154 9.17999 19.2722 9.27637 19.0292 9.27637V9.27734C18.8044 9.27734 18.5796 9.19445 18.4032 9.02832C16.4313 7.17231 13.4519 4.52283 11.0038 2.65234C10.5385 2.29608 9.83898 2.29588 9.37488 2.65137C6.926 4.52222 3.94672 7.17192 1.97449 9.02832C1.60717 9.3743 1.02847 9.35696 0.682495 8.98926C0.336647 8.62197 0.353997 8.04323 0.721558 7.69727C1.69469 6.78128 5.11458 3.60679 8.26453 1.2002ZM15.1971 0.260742C15.7792 0.198682 16.3621 0.19865 16.9442 0.260742C17.1815 0.288369 17.4086 0.516647 17.4364 0.753906C17.4753 1.11813 17.4899 2.8694 17.4803 4.27344C16.6246 3.51718 15.6599 2.6852 14.6678 1.86914C14.6755 1.33078 14.6872 0.912034 14.704 0.753906C14.7314 0.516522 14.9598 0.288558 15.1971 0.260742Z" fill="#D9D9D9"/>
<path d="M10.1884 3.45117C10.254 3.45123 10.3165 3.46846 10.3553 3.49805C12.7723 5.34454 15.7199 7.96658 17.6727 9.80469C17.8178 9.94137 17.9804 10.0536 18.1552 10.1396C18.1864 12.0382 18.101 13.9364 17.8983 15.835C17.7429 17.1743 16.4587 18.4598 15.119 18.6152C11.8318 18.9665 8.54487 18.9665 5.25769 18.6152C3.91839 18.4597 2.63385 17.1746 2.47839 15.835C2.27571 13.9364 2.18994 12.0382 2.22156 10.1396C2.39607 10.0535 2.55978 9.94148 2.70496 9.80469C4.65776 7.96658 7.60492 5.3441 10.0214 3.49805C10.061 3.468 10.1233 3.45117 10.1884 3.45117ZM8.26453 1.2002C9.3793 0.346017 10.9985 0.345839 12.1141 1.2002C15.2634 3.60605 18.6833 6.78164 19.6561 7.69727C20.0233 8.04326 20.0407 8.62161 19.6952 8.98926C19.5154 9.17999 19.2722 9.27637 19.0292 9.27637V9.27734C18.8044 9.27734 18.5796 9.19445 18.4032 9.02832C16.4313 7.17231 13.4519 4.52283 11.0038 2.65234C10.5385 2.29608 9.83898 2.29588 9.37488 2.65137C6.926 4.52222 3.94672 7.17192 1.97449 9.02832C1.60717 9.3743 1.02847 9.35696 0.682495 8.98926C0.336647 8.62197 0.353997 8.04323 0.721558 7.69727C1.69469 6.78128 5.11458 3.60679 8.26453 1.2002ZM15.1971 0.260742C15.7792 0.198682 16.3621 0.19865 16.9442 0.260742C17.1815 0.288369 17.4086 0.516647 17.4364 0.753906C17.4753 1.11813 17.4899 2.8694 17.4803 4.27344C16.6246 3.51718 15.6599 2.6852 14.6678 1.86914C14.6755 1.33078 14.6872 0.912034 14.704 0.753906C14.7314 0.516522 14.9598 0.288558 15.1971 0.260742Z" fill="url(#paint0_linear_123_4903)"/>
<path d="M11.4665 15.4515C11.3836 15.4515 11.3006 15.4273 11.2269 15.3766L8.10308 13.2163C7.94917 13.1093 7.88105 12.9134 7.93617 12.7319C7.99118 12.5504 8.15653 12.4271 8.34331 12.4271H9.6212C10.1694 12.4271 10.6152 11.9749 10.6152 11.4191C10.6152 10.8632 10.1694 10.411 9.6212 10.411H8.34331C8.10817 10.411 7.91734 10.2174 7.91734 9.97892C7.91734 9.74043 8.10817 9.54688 8.34331 9.54688H9.6212C10.639 9.54688 11.4671 10.3867 11.4671 11.4191C11.4671 12.4173 10.6923 13.236 9.72062 13.2889L11.7073 14.6629C11.9016 14.7971 11.9515 15.0662 11.8192 15.2631C11.7369 15.3852 11.6028 15.4515 11.4665 15.4515Z" fill="#FAFAFA"/>
<path d="M12.0349 10.411H8.3432C8.10807 10.411 7.91724 10.2174 7.91724 9.97892C7.91724 9.74043 8.10807 9.54688 8.3432 9.54688H12.0349C12.2701 9.54688 12.4609 9.74043 12.4609 9.97892C12.4609 10.2174 12.2701 10.411 12.0349 10.411Z" fill="#FAFAFA"/>
<path d="M12.0349 11.9969H8.3432C8.10807 11.9969 7.91724 11.8034 7.91724 11.5649C7.91724 11.3264 8.10807 11.1328 8.3432 11.1328H12.0349C12.2701 11.1328 12.4609 11.3264 12.4609 11.5649C12.4609 11.8034 12.2701 11.9969 12.0349 11.9969Z" fill="#FAFAFA"/>
<defs>
<linearGradient id="paint0_linear_123_4903" x1="0.434062" y1="9.54677" x2="19.9428" y2="9.54677" gradientUnits="userSpaceOnUse">
<stop stop-color="#0CAA0C"/>
<stop offset="0.6" stop-color="#4BD14B"/>
<stop offset="1" stop-color="#60E260"/>
</linearGradient>
</defs>
</svg>
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_319_4694)">
<path d="M10.3839 15.8096C10.3839 14.9168 10.6245 14.0405 11.0805 13.273C11.5366 12.5055 12.1911 11.8751 12.9752 11.4482C13.7592 11.0213 14.6439 10.8136 15.5361 10.8472C16.4282 10.8807 17.2948 11.1541 18.0447 11.6386C18.0504 11.2705 18.0532 10.878 18.0532 10.4541C18.0532 8.27618 17.9791 6.91632 17.8326 5.50846C17.7327 4.54847 17.323 3.64496 16.6407 2.96167C16.2082 2.53022 15.6875 2.19743 15.1143 1.98616C15.0755 1.97169 15.0359 1.95757 14.9964 1.94381C14.7037 1.84538 14.4011 1.77946 14.0939 1.74722L14.0647 1.7444C12.8933 1.6237 12.7066 1.52734 10.236 1.52734C7.76545 1.52734 7.36593 1.6237 6.19454 1.74581L6.16524 1.74863C5.84288 1.78272 5.5255 1.85377 5.21937 1.9604V1.94416C4.45619 2.2036 3.78344 2.6765 3.28092 3.30676C2.7784 3.93702 2.4672 4.69819 2.38424 5.49999C2.23707 6.91173 2.1626 8.27159 2.1626 10.4541C2.1626 12.6367 2.23707 13.9976 2.38424 15.4087C2.48435 16.3715 2.9126 17.2707 3.59714 17.9552C4.28167 18.6398 5.18083 19.068 6.14371 19.1681L6.17301 19.171C7.3444 19.2931 7.53252 19.3894 10.0027 19.3894C10.8208 19.3894 11.412 19.3788 11.8789 19.3601C11.405 18.8983 11.0286 18.3461 10.7718 17.7363C10.515 17.1264 10.3831 16.4713 10.3839 15.8096ZM8.55321 5.30623H14.4165C14.6394 5.30623 14.8531 5.39476 15.0107 5.55236C15.1683 5.70995 15.2569 5.9237 15.2569 6.14657C15.2569 6.36944 15.1683 6.58318 15.0107 6.74078C14.8531 6.89837 14.6394 6.98691 14.4165 6.98691H8.55321C8.33033 6.98691 8.11659 6.89837 7.959 6.74078C7.8014 6.58318 7.71287 6.36944 7.71287 6.14657C7.71287 5.9237 7.8014 5.70995 7.959 5.55236C8.11659 5.39476 8.33033 5.30623 8.55321 5.30623ZM8.55321 10.5826C8.33033 10.5826 8.11659 10.4941 7.959 10.3365C7.8014 10.1789 7.71287 9.96515 7.71287 9.74228C7.71287 9.5194 7.8014 9.30566 7.959 9.14807C8.11659 8.99047 8.33033 8.90194 8.55321 8.90194H10.6489C10.8718 8.90194 11.0856 8.99047 11.2431 9.14807C11.4007 9.30566 11.4893 9.5194 11.4893 9.74228C11.4893 9.96515 11.4007 10.1789 11.2431 10.3365C11.0856 10.4941 10.8718 10.5826 10.6489 10.5826H8.55321ZM5.80031 6.98691C5.57743 6.98691 5.36369 6.89837 5.2061 6.74078C5.0485 6.58318 4.95997 6.36944 4.95997 6.14657C4.95997 5.9237 5.0485 5.70995 5.2061 5.55236C5.36369 5.39476 5.57743 5.30623 5.80031 5.30623C6.02318 5.30623 6.23692 5.39476 6.39452 5.55236C6.55211 5.70995 6.64065 5.9237 6.64065 6.14657C6.64065 6.36944 6.55211 6.58318 6.39452 6.74078C6.23692 6.89837 6.02318 6.98691 5.80031 6.98691ZM5.80031 10.5826C5.57743 10.5826 5.36369 10.4941 5.2061 10.3365C5.0485 10.1789 4.95997 9.96515 4.95997 9.74228C4.95997 9.5194 5.0485 9.30566 5.2061 9.14807C5.36369 8.99047 5.57743 8.90194 5.80031 8.90194C6.02318 8.90194 6.23692 8.99047 6.39452 9.14807C6.55211 9.30566 6.64065 9.5194 6.64065 9.74228C6.64065 9.96515 6.55211 10.1789 6.39452 10.3365C6.23692 10.4941 6.02318 10.5826 5.80031 10.5826Z" fill="url(#paint0_linear_319_4694)"/>
<path d="M10.3839 15.8096C10.3839 14.9168 10.6245 14.0405 11.0805 13.273C11.5366 12.5055 12.1911 11.8751 12.9752 11.4482C13.7592 11.0213 14.6439 10.8136 15.5361 10.8472C16.4282 10.8807 17.2948 11.1541 18.0447 11.6386C18.0504 11.2705 18.0532 10.878 18.0532 10.4541C18.0532 8.27618 17.9791 6.91632 17.8326 5.50846C17.7327 4.54847 17.323 3.64496 16.6407 2.96167C16.2082 2.53022 15.6875 2.19743 15.1143 1.98616C15.0755 1.97169 15.0359 1.95757 14.9964 1.94381C14.7037 1.84538 14.4011 1.77946 14.0939 1.74722L14.0647 1.7444C12.8933 1.6237 12.7066 1.52734 10.236 1.52734C7.76545 1.52734 7.36593 1.6237 6.19454 1.74581L6.16524 1.74863C5.84288 1.78272 5.5255 1.85377 5.21937 1.9604V1.94416C4.45619 2.2036 3.78344 2.6765 3.28092 3.30676C2.7784 3.93702 2.4672 4.69819 2.38424 5.49999C2.23707 6.91173 2.1626 8.27159 2.1626 10.4541C2.1626 12.6367 2.23707 13.9976 2.38424 15.4087C2.48435 16.3715 2.9126 17.2707 3.59714 17.9552C4.28167 18.6398 5.18083 19.068 6.14371 19.1681L6.17301 19.171C7.3444 19.2931 7.53252 19.3894 10.0027 19.3894C10.8208 19.3894 11.412 19.3788 11.8789 19.3601C11.405 18.8983 11.0286 18.3461 10.7718 17.7363C10.515 17.1264 10.3831 16.4713 10.3839 15.8096ZM8.55321 5.30623H14.4165C14.6394 5.30623 14.8531 5.39476 15.0107 5.55236C15.1683 5.70995 15.2569 5.9237 15.2569 6.14657C15.2569 6.36944 15.1683 6.58318 15.0107 6.74078C14.8531 6.89837 14.6394 6.98691 14.4165 6.98691H8.55321C8.33033 6.98691 8.11659 6.89837 7.959 6.74078C7.8014 6.58318 7.71287 6.36944 7.71287 6.14657C7.71287 5.9237 7.8014 5.70995 7.959 5.55236C8.11659 5.39476 8.33033 5.30623 8.55321 5.30623ZM8.55321 10.5826C8.33033 10.5826 8.11659 10.4941 7.959 10.3365C7.8014 10.1789 7.71287 9.96515 7.71287 9.74228C7.71287 9.5194 7.8014 9.30566 7.959 9.14807C8.11659 8.99047 8.33033 8.90194 8.55321 8.90194H10.6489C10.8718 8.90194 11.0856 8.99047 11.2431 9.14807C11.4007 9.30566 11.4893 9.5194 11.4893 9.74228C11.4893 9.96515 11.4007 10.1789 11.2431 10.3365C11.0856 10.4941 10.8718 10.5826 10.6489 10.5826H8.55321ZM5.80031 6.98691C5.57743 6.98691 5.36369 6.89837 5.2061 6.74078C5.0485 6.58318 4.95997 6.36944 4.95997 6.14657C4.95997 5.9237 5.0485 5.70995 5.2061 5.55236C5.36369 5.39476 5.57743 5.30623 5.80031 5.30623C6.02318 5.30623 6.23692 5.39476 6.39452 5.55236C6.55211 5.70995 6.64065 5.9237 6.64065 6.14657C6.64065 6.36944 6.55211 6.58318 6.39452 6.74078C6.23692 6.89837 6.02318 6.98691 5.80031 6.98691ZM5.80031 10.5826C5.57743 10.5826 5.36369 10.4941 5.2061 10.3365C5.0485 10.1789 4.95997 9.96515 4.95997 9.74228C4.95997 9.5194 5.0485 9.30566 5.2061 9.14807C5.36369 8.99047 5.57743 8.90194 5.80031 8.90194C6.02318 8.90194 6.23692 8.99047 6.39452 9.14807C6.55211 9.30566 6.64065 9.5194 6.64065 9.74228C6.64065 9.96515 6.55211 10.1789 6.39452 10.3365C6.23692 10.4941 6.02318 10.5826 5.80031 10.5826Z" fill="url(#paint1_linear_319_4694)"/>
<circle cx="15.5504" cy="15.8556" r="3.9298" fill="white"/>
<path d="M15.5504 11.4297C13.1069 11.4297 11.1265 13.4101 11.1265 15.8536C11.1265 18.2971 13.1069 20.2775 15.5504 20.2775C17.9939 20.2775 19.9742 18.2971 19.9742 15.8536C19.9742 13.4101 17.9939 11.4297 15.5504 11.4297ZM18.1237 15.2305L15.2473 18.1069C15.0948 18.2613 14.8934 18.3366 14.6919 18.3366C14.4905 18.3366 14.2891 18.2594 14.1366 18.1069L12.7078 16.6781C12.4009 16.3713 12.4009 15.8724 12.7078 15.5656C13.0146 15.2587 13.5135 15.2587 13.8203 15.5656L14.6919 16.4372L17.0112 14.1179C17.318 13.8111 17.8169 13.8111 18.1237 14.1179C18.4306 14.4248 18.4306 14.9236 18.1237 15.2305Z" fill="#1487C9"/>
<path d="M15.5504 11.4297C13.1069 11.4297 11.1265 13.4101 11.1265 15.8536C11.1265 18.2971 13.1069 20.2775 15.5504 20.2775C17.9939 20.2775 19.9742 18.2971 19.9742 15.8536C19.9742 13.4101 17.9939 11.4297 15.5504 11.4297ZM18.1237 15.2305L15.2473 18.1069C15.0948 18.2613 14.8934 18.3366 14.6919 18.3366C14.4905 18.3366 14.2891 18.2594 14.1366 18.1069L12.7078 16.6781C12.4009 16.3713 12.4009 15.8724 12.7078 15.5656C13.0146 15.2587 13.5135 15.2587 13.8203 15.5656L14.6919 16.4372L17.0112 14.1179C17.318 13.8111 17.8169 13.8111 18.1237 14.1179C18.4306 14.4248 18.4306 14.9236 18.1237 15.2305Z" fill="url(#paint2_linear_319_4694)"/>
</g>
<defs>
<linearGradient id="paint0_linear_319_4694" x1="2.1626" y1="10.5625" x2="19.1286" y2="10.5625" gradientUnits="userSpaceOnUse">
<stop stop-color="#6949C6"/>
<stop offset="0.6" stop-color="#7C6EE0"/>
<stop offset="1" stop-color="#A28EEF"/>
</linearGradient>
<linearGradient id="paint1_linear_319_4694" x1="2.16262" y1="10.9662" x2="19.8918" y2="10.9662" gradientUnits="userSpaceOnUse">
<stop stop-color="#0080DE"/>
<stop offset="0.6" stop-color="#49BCFF"/>
<stop offset="1" stop-color="#61CAFF"/>
</linearGradient>
<linearGradient id="paint2_linear_319_4694" x1="13.6364" y1="20.2775" x2="17.8411" y2="11.6125" gradientUnits="userSpaceOnUse">
<stop stop-color="#5BAF25"/>
<stop offset="1" stop-color="#89BD3D"/>
</linearGradient>
<clipPath id="clip0_319_4694">
<rect width="20" height="20" fill="white" transform="translate(0.624023 0.5625)"/>
</clipPath>
</defs>
</svg>
<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_319_4821)">
<path d="M4.91292 14.5885C6.13196 14.5885 7.11977 15.5767 7.11977 16.7953C7.11977 18.0144 6.13152 19.0022 4.91292 19.0022C3.69388 19.0022 2.70606 18.0139 2.70606 16.7953C2.70606 15.5763 3.69432 14.5885 4.91292 14.5885ZM15.924 16.7953C15.924 18.0144 16.9123 19.0022 18.1309 19.0022C19.3499 19.0022 20.3378 18.0139 20.3378 16.7953C20.3378 15.5767 19.3495 14.5885 18.1309 14.5885C16.9119 14.5885 15.924 15.5767 15.924 16.7953ZM21.0585 10.7093L20.8942 9.27349C20.8627 8.99988 20.6153 8.80319 20.3417 8.83466C20.0681 8.86613 19.8714 9.11352 19.9029 9.38714L20.0672 10.823C20.0987 11.0966 20.3461 11.2933 20.6197 11.2618C20.8933 11.2303 21.09 10.9829 21.0585 10.7093ZM22.5529 15.1541C22.4165 15.9928 21.8868 16.3032 21.1105 16.5034C20.9632 14.9893 19.6834 13.8017 18.1313 13.8017C16.4805 13.8017 15.1377 15.1449 15.1377 16.7953C15.1377 17.0104 15.1609 17.2198 15.2042 17.4221C14.0935 17.468 13.0261 17.4951 12.3552 17.4886C11.6716 17.4956 9.15704 17.4671 7.84097 17.4195C7.8838 17.218 7.90697 17.0091 7.90697 16.7953C7.90697 15.1445 6.5638 13.8017 4.91335 13.8017C3.37043 13.8017 2.09676 14.9749 1.93678 16.4763C1.18587 16.2643 0.677971 15.8455 0.501388 14.9993C0.326552 14.1623 0.267545 12.1946 0.377255 10.625C0.492646 9.05582 0.752276 7.90628 0.992238 7.06139C1.40091 5.6697 2.84156 4.39472 4.25597 4.12416C5.11529 3.95413 9.90534 3.78454 11.474 3.80203C13.0423 3.78454 18.929 3.99478 19.7896 4.16481C21.2071 4.43537 21.6879 5.6697 22.111 7.06139C22.3593 7.90628 22.5096 9.05582 22.6408 10.625C22.7662 12.1941 22.6753 14.3087 22.5534 15.1536L22.5529 15.1541ZM6.42175 7.68686C6.42175 7.42243 6.20582 7.20913 5.94182 7.21219C5.66252 7.21525 4.57286 7.21874 4.29356 7.22224C3.91111 7.22749 3.47883 7.46614 3.31186 7.78871C2.94777 8.57984 2.78255 9.36922 2.84243 10.1555C2.85161 10.5703 3.40453 10.9598 3.90018 10.9672C4.31061 10.9729 5.5314 10.9777 5.94182 10.9825C6.20626 10.9856 6.42218 10.7723 6.42218 10.5078V7.68686H6.42175ZM11.3591 7.64971C11.3591 7.38659 11.1449 7.17329 10.8818 7.1746C10.1025 7.17853 8.91752 7.18378 8.13819 7.19077C7.87769 7.19296 7.66745 7.40494 7.66745 7.66588V10.5297C7.66745 10.7902 7.87769 11.0022 8.13819 11.0044C8.91752 11.0109 10.1025 11.0166 10.8818 11.0205C11.1449 11.0218 11.3591 10.809 11.3591 10.5454V7.64928V7.64971ZM16.2151 7.64097C16.2151 7.37916 16.0032 7.16629 15.7409 7.16629C14.9616 7.16498 13.7766 7.16542 12.9973 7.16629C12.7355 7.16673 12.5235 7.37959 12.5235 7.64141V10.5533C12.5235 10.8151 12.7355 11.0275 12.9973 11.0284C13.7766 11.0302 14.9616 11.0302 15.7409 11.0288C16.0027 11.0288 16.2151 10.816 16.2151 10.5542V7.64097ZM21.6324 11.5896C21.5651 10.2521 21.4576 9.09778 21.0642 7.69736C21.0638 7.69561 21.0629 7.69386 21.0624 7.69211C20.9527 7.39139 20.6197 7.18902 20.2486 7.18596C19.5187 7.18028 18.627 7.17635 17.8971 7.17285C17.6344 7.17154 17.4206 7.3844 17.4206 7.64753V10.5485C17.4206 10.5603 17.4206 10.5721 17.4219 10.5834C17.4355 10.7688 17.5692 10.9235 17.7458 10.9808L20.9899 12.028C21.1433 12.0774 21.3142 12.0586 21.4458 11.9651C21.5708 11.8759 21.646 11.7387 21.6324 11.5896Z" fill="url(#paint0_linear_319_4821)"/>
</g>
<defs>
<linearGradient id="paint0_linear_319_4821" x1="0.321744" y1="11.4017" x2="22.7007" y2="11.4017" gradientUnits="userSpaceOnUse">
<stop stop-color="#ED6C14"/>
<stop offset="0.6" stop-color="#FF9045"/>
<stop offset="1" stop-color="#FFB54A"/>
</linearGradient>
<clipPath id="clip0_319_4821">
<rect width="22.3789" height="22.3789" fill="white" transform="translate(0.321777 0.210938)"/>
</clipPath>
</defs>
</svg>
class attendanceRequestDetailsResponse {
RequestDetails? requestDetails;
String? error;
String? message;
int? sessionExists;
attendanceRequestDetailsResponse(
{this.requestDetails, this.error, this.message, this.sessionExists});
attendanceRequestDetailsResponse.fromJson(Map<String, dynamic> json) {
requestDetails = json['request_details'] != null
? new RequestDetails.fromJson(json['request_details'])
: null;
error = json['error'];
message = json['message'];
sessionExists = json['session_exists'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.requestDetails != null) {
data['request_details'] = this.requestDetails!.toJson();
}
data['error'] = this.error;
data['message'] = this.message;
data['session_exists'] = this.sessionExists;
return data;
}
}
class RequestDetails {
String? id;
String? attendanceType;
String? type;
String? date;
String? checkInType;
String? checkInTime;
String? chechOutType;
String? checkOutTime;
String? status;
String? requestedDatetime;
String? createdEmpName;
String? employeeName;
String? level1Remarks;
String? level1EmpName;
String? level2Remarks;
String? checkInProofDirFilePath;
String? checkOutProofDirFilePath;
String? level2EmpName;
String? note;
String? checkInLocation;
String? checkOutLocation;
String? location;
RequestDetails(
{this.id,
this.attendanceType,
this.type,
this.date,
this.checkInType,
this.checkInTime,
this.chechOutType,
this.checkOutTime,
this.status,
this.requestedDatetime,
this.createdEmpName,
this.employeeName,
this.level1Remarks,
this.level1EmpName,
this.level2Remarks,
this.checkInProofDirFilePath,
this.checkOutProofDirFilePath,
this.level2EmpName,
this.note,
this.checkInLocation,
this.checkOutLocation,
this.location
});
RequestDetails.fromJson(Map<String, dynamic> json) {
id = json['id'];
attendanceType = json['attendance_type'];
type = json['type'];
date = json['date'];
checkInType = json['check_in_type'];
checkInTime = json['check_in_time'];
chechOutType = json['chech_out_type'];
checkOutTime = json['check_out_time'];
status = json['status'];
requestedDatetime = json['requested_datetime'];
createdEmpName = json['created_emp_name'];
employeeName = json['employee_name'];
level1Remarks = json['level1_remarks'];
level1EmpName = json['level1_emp_name'];
level2Remarks = json['level2_remarks'];
checkInProofDirFilePath = json['check_in_proof_dir_file_path'];
checkOutProofDirFilePath = json['check_out_proof_dir_file_path'];
level2EmpName = json['level2_emp_name'];
note = json['note'];
checkInLocation = json['check_in_location'];
checkOutLocation = json['check_out_location'];
location = json['location'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['attendance_type'] = this.attendanceType;
data['type'] = this.type;
data['date'] = this.date;
data['check_in_type'] = this.checkInType;
data['check_in_time'] = this.checkInTime;
data['chech_out_type'] = this.chechOutType;
data['check_out_time'] = this.checkOutTime;
data['status'] = this.status;
data['requested_datetime'] = this.requestedDatetime;
data['created_emp_name'] = this.createdEmpName;
data['employee_name'] = this.employeeName;
data['level1_remarks'] = this.level1Remarks;
data['level1_emp_name'] = this.level1EmpName;
data['level2_remarks'] = this.level2Remarks;
data['check_in_proof_dir_file_path'] = this.checkInProofDirFilePath;
data['check_out_proof_dir_file_path'] = this.checkOutProofDirFilePath;
data['level2_emp_name'] = this.level2EmpName;
data['note'] = this.note;
data['check_in_location'] = this.checkInLocation;
data['check_out_location'] = this.location;
data['location'] = this.location;
return data;
}
}
class attendanceRequestListResponse {
List<RequestList>? requestList;
String? error;
String? message;
int? sessionExists;
attendanceRequestListResponse(
{this.requestList, this.error, this.message, this.sessionExists});
attendanceRequestListResponse.fromJson(Map<String, dynamic> json) {
if (json['request_list'] != null) {
requestList = <RequestList>[];
json['request_list'].forEach((v) {
requestList!.add(new RequestList.fromJson(v));
});
}
error = json['error'];
message = json['message'];
sessionExists = json['session_exists'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.requestList != null) {
data['request_list'] = this.requestList!.map((v) => v.toJson()).toList();
}
data['error'] = this.error;
data['message'] = this.message;
data['session_exists'] = this.sessionExists;
return data;
}
}
class RequestList {
String? id;
String? attendanceType;
String? type;
String? date;
String? checkInType;
String? checkInTime;
String? chechOutType;
String? checkOutTime;
String? status;
String? requestedDatetime;
RequestList(
{this.id,
this.attendanceType,
this.type,
this.date,
this.checkInType,
this.checkInTime,
this.chechOutType,
this.checkOutTime,
this.status,
this.requestedDatetime});
RequestList.fromJson(Map<String, dynamic> json) {
id = json['id'];
attendanceType = json['attendance_type'];
type = json['type'];
date = json['date'];
checkInType = json['check_in_type'];
checkInTime = json['check_in_time'];
chechOutType = json['chech_out_type'];
checkOutTime = json['check_out_time'];
status = json['status'];
requestedDatetime = json['requested_datetime'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['attendance_type'] = this.attendanceType;
data['type'] = this.type;
data['date'] = this.date;
data['check_in_type'] = this.checkInType;
data['check_in_time'] = this.checkInTime;
data['chech_out_type'] = this.chechOutType;
data['check_out_time'] = this.checkOutTime;
data['status'] = this.status;
data['requested_datetime'] = this.requestedDatetime;
return data;
}
}
class rewardListResponse {
RewardsList? rewardsList;
String? achievedAmount;
String? disbursedAmount;
String? balanceAmount;
String? error;
String? message;
int? sessionExists;
rewardListResponse(
{this.rewardsList,
this.achievedAmount,
this.disbursedAmount,
this.balanceAmount,
this.error,
this.message,
this.sessionExists});
rewardListResponse.fromJson(Map<String, dynamic> json) {
rewardsList = json['rewards_list'] != null
? new RewardsList.fromJson(json['rewards_list'])
: null;
achievedAmount = json['achieved_amount'];
disbursedAmount = json['disbursed_amount'];
balanceAmount = json['balance_amount'];
error = json['error'];
message = json['message'];
sessionExists = json['session_exists'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.rewardsList != null) {
data['rewards_list'] = this.rewardsList!.toJson();
}
data['achieved_amount'] = this.achievedAmount;
data['disbursed_amount'] = this.disbursedAmount;
data['balance_amount'] = this.balanceAmount;
data['error'] = this.error;
data['message'] = this.message;
data['session_exists'] = this.sessionExists;
return data;
}
}
class RewardsList {
String? id;
String? empId;
String? description;
String? type;
String? cAmount;
String? dAmount;
String? enteredBy;
String? isApproved;
String? approvedBy;
String? approvedDatetime;
String? updatedDatetime;
String? isExist;
String? dateTime;
String? employeeName;
String? entryName;
RewardsList(
{this.id,
this.empId,
this.description,
this.type,
this.cAmount,
this.dAmount,
this.enteredBy,
this.isApproved,
this.approvedBy,
this.approvedDatetime,
this.updatedDatetime,
this.isExist,
this.dateTime,
this.employeeName,
this.entryName});
RewardsList.fromJson(Map<String, dynamic> json) {
id = json['id'];
empId = json['emp_id'];
description = json['description'];
type = json['type'];
cAmount = json['c_amount'];
dAmount = json['d_amount'];
enteredBy = json['entered_by'];
isApproved = json['is_approved'];
approvedBy = json['approved_by'];
approvedDatetime = json['approved_datetime'];
updatedDatetime = json['updated_datetime'];
isExist = json['is_exist'];
dateTime = json['date_time'];
employeeName = json['employee_name'];
entryName = json['entry_name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['emp_id'] = this.empId;
data['description'] = this.description;
data['type'] = this.type;
data['c_amount'] = this.cAmount;
data['d_amount'] = this.dAmount;
data['entered_by'] = this.enteredBy;
data['is_approved'] = this.isApproved;
data['approved_by'] = this.approvedBy;
data['approved_datetime'] = this.approvedDatetime;
data['updated_datetime'] = this.updatedDatetime;
data['is_exist'] = this.isExist;
data['date_time'] = this.dateTime;
data['employee_name'] = this.employeeName;
data['entry_name'] = this.entryName;
return data;
}
}
class tourExpensesDetailsResponse {
RequestDetails? requestDetails;
TourExpenses? tourExpenses;
List<TravelExpenses>? travelExpenses;
List<HotelExpenses>? hotelExpenses;
List<OtherExpenses>? otherExpenses;
String? error;
String? message;
int? sessionExists;
tourExpensesDetailsResponse(
{this.requestDetails,
this.tourExpenses,
this.travelExpenses,
this.hotelExpenses,
this.otherExpenses,
this.error,
this.message,
this.sessionExists});
tourExpensesDetailsResponse.fromJson(Map<String, dynamic> json) {
requestDetails = json['request_details'] != null
? new RequestDetails.fromJson(json['request_details'])
: null;
tourExpenses = json['tour_expenses'] != null
? new TourExpenses.fromJson(json['tour_expenses'])
: null;
if (json['travel_expenses'] != null) {
travelExpenses = <TravelExpenses>[];
json['travel_expenses'].forEach((v) {
travelExpenses!.add(new TravelExpenses.fromJson(v));
});
}
if (json['hotel_expenses'] != null) {
hotelExpenses = <HotelExpenses>[];
json['hotel_expenses'].forEach((v) {
hotelExpenses!.add(new HotelExpenses.fromJson(v));
});
}
if (json['other_expenses'] != null) {
otherExpenses = <OtherExpenses>[];
json['other_expenses'].forEach((v) {
otherExpenses!.add(new OtherExpenses.fromJson(v));
});
}
error = json['error'];
message = json['message'];
sessionExists = json['session_exists'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.requestDetails != null) {
data['request_details'] = this.requestDetails!.toJson();
}
if (this.tourExpenses != null) {
data['tour_expenses'] = this.tourExpenses!.toJson();
}
if (this.travelExpenses != null) {
data['travel_expenses'] =
this.travelExpenses!.map((v) => v.toJson()).toList();
}
if (this.hotelExpenses != null) {
data['hotel_expenses'] =
this.hotelExpenses!.map((v) => v.toJson()).toList();
}
if (this.otherExpenses != null) {
data['other_expenses'] =
this.otherExpenses!.map((v) => v.toJson()).toList();
}
data['error'] = this.error;
data['message'] = this.message;
data['session_exists'] = this.sessionExists;
return data;
}
}
class RequestDetails {
String? id;
String? employeeName;
String? placeOfVisit;
String? appliedDate;
String? fromDate;
String? toDate;
String? type;
String? appliedAmount;
String? approvedAmount;
String? approvalStatus;
String? tlApprovedBy;
String? tlApprovedAmount;
String? tlRemarks;
String? tlApprovedDate;
String? hrApprovedBy;
String? hrApprovedAmount;
String? hrRemarks;
Null? hrApprovedDate;
RequestDetails(
{this.id,
this.employeeName,
this.placeOfVisit,
this.appliedDate,
this.fromDate,
this.toDate,
this.type,
this.appliedAmount,
this.approvedAmount,
this.approvalStatus,
this.tlApprovedBy,
this.tlApprovedAmount,
this.tlRemarks,
this.tlApprovedDate,
this.hrApprovedBy,
this.hrApprovedAmount,
this.hrRemarks,
this.hrApprovedDate});
RequestDetails.fromJson(Map<String, dynamic> json) {
id = json['id'];
employeeName = json['employee_name'];
placeOfVisit = json['place_of_visit'];
appliedDate = json['applied_date'];
fromDate = json['from_date'];
toDate = json['to_date'];
type = json['type'];
appliedAmount = json['applied_amount'];
approvedAmount = json['approved_amount'];
approvalStatus = json['approval_status'];
tlApprovedBy = json['tl_approved_by'];
tlApprovedAmount = json['tl_approved_amount'];
tlRemarks = json['tl_remarks'];
tlApprovedDate = json['tl_approved_date'];
hrApprovedBy = json['hr_approved_by'];
hrApprovedAmount = json['hr_approved_amount'];
hrRemarks = json['hr_remarks'];
hrApprovedDate = json['hr_approved_date'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['employee_name'] = this.employeeName;
data['place_of_visit'] = this.placeOfVisit;
data['applied_date'] = this.appliedDate;
data['from_date'] = this.fromDate;
data['to_date'] = this.toDate;
data['type'] = this.type;
data['applied_amount'] = this.appliedAmount;
data['approved_amount'] = this.approvedAmount;
data['approval_status'] = this.approvalStatus;
data['tl_approved_by'] = this.tlApprovedBy;
data['tl_approved_amount'] = this.tlApprovedAmount;
data['tl_remarks'] = this.tlRemarks;
data['tl_approved_date'] = this.tlApprovedDate;
data['hr_approved_by'] = this.hrApprovedBy;
data['hr_approved_amount'] = this.hrApprovedAmount;
data['hr_remarks'] = this.hrRemarks;
data['hr_approved_date'] = this.hrApprovedDate;
return data;
}
}
class TourExpenses {
String? placeOfVisit;
String? da;
String? type;
String? appliedAmount;
String? fromDate;
String? toDate;
String? extraNote;
TourExpenses(
{this.placeOfVisit,
this.da,
this.type,
this.appliedAmount,
this.fromDate,
this.toDate,
this.extraNote});
TourExpenses.fromJson(Map<String, dynamic> json) {
placeOfVisit = json['place_of_visit'];
da = json['da'];
type = json['type'];
appliedAmount = json['applied_amount'];
fromDate = json['from_date'];
toDate = json['to_date'];
extraNote = json['extra_note'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['place_of_visit'] = this.placeOfVisit;
data['da'] = this.da;
data['type'] = this.type;
data['applied_amount'] = this.appliedAmount;
data['from_date'] = this.fromDate;
data['to_date'] = this.toDate;
data['extra_note'] = this.extraNote;
return data;
}
}
class TravelExpenses {
String? froma;
String? toa;
String? travelType;
String? fare;
String? travelBill;
String? imageDirFilePath;
TravelExpenses(
{this.froma,
this.toa,
this.travelType,
this.fare,
this.travelBill,
this.imageDirFilePath});
TravelExpenses.fromJson(Map<String, dynamic> json) {
froma = json['froma'];
toa = json['toa'];
travelType = json['travel_type'];
fare = json['fare'];
travelBill = json['travel_bill'];
imageDirFilePath = json['image_dir_file_path'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['froma'] = this.froma;
data['toa'] = this.toa;
data['travel_type'] = this.travelType;
data['fare'] = this.fare;
data['travel_bill'] = this.travelBill;
data['image_dir_file_path'] = this.imageDirFilePath;
return data;
}
}
class HotelExpenses {
String? hotelName;
String? fromDate;
String? toDate;
String? amount;
String? imageDirFilePath;
HotelExpenses(
{this.hotelName,
this.fromDate,
this.toDate,
this.amount,
this.imageDirFilePath});
HotelExpenses.fromJson(Map<String, dynamic> json) {
hotelName = json['hotel_name'];
fromDate = json['from_date'];
toDate = json['to_date'];
amount = json['amount'];
imageDirFilePath = json['image_dir_file_path'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['hotel_name'] = this.hotelName;
data['from_date'] = this.fromDate;
data['to_date'] = this.toDate;
data['amount'] = this.amount;
data['image_dir_file_path'] = this.imageDirFilePath;
return data;
}
}
class OtherExpenses {
String? otherAmount;
String? otherDate;
String? otherDesc;
String? imageDirFilePath;
OtherExpenses(
{this.otherAmount,
this.otherDate,
this.otherDesc,
this.imageDirFilePath});
OtherExpenses.fromJson(Map<String, dynamic> json) {
otherAmount = json['other_amount'];
otherDate = json['other_date'];
otherDesc = json['other_desc'];
imageDirFilePath = json['image_dir_file_path'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['other_amount'] = this.otherAmount;
data['other_date'] = this.otherDate;
data['other_desc'] = this.otherDesc;
data['image_dir_file_path'] = this.imageDirFilePath;
return data;
}
}
class tourExpensesListResponse {
List<TourList>? tourList;
String? error;
String? message;
int? sessionExists;
tourExpensesListResponse(
{this.tourList, this.error, this.message, this.sessionExists});
tourExpensesListResponse.fromJson(Map<String, dynamic> json) {
if (json['tour_list'] != null) {
tourList = <TourList>[];
json['tour_list'].forEach((v) {
tourList!.add(new TourList.fromJson(v));
});
}
error = json['error'];
message = json['message'];
sessionExists = json['session_exists'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.tourList != null) {
data['tour_list'] = this.tourList!.map((v) => v.toJson()).toList();
}
data['error'] = this.error;
data['message'] = this.message;
data['session_exists'] = this.sessionExists;
return data;
}
}
class TourList {
String? id;
String? placeOfVisit;
String? appliedDate;
String? fromDate;
String? toDate;
String? type;
String? appliedAmount;
String? approvedAmount;
String? approvalStatus;
TourList(
{this.id,
this.placeOfVisit,
this.appliedDate,
this.fromDate,
this.toDate,
this.type,
this.appliedAmount,
this.approvedAmount,
this.approvalStatus});
TourList.fromJson(Map<String, dynamic> json) {
id = json['id'];
placeOfVisit = json['place_of_visit'];
appliedDate = json['applied_date'];
fromDate = json['from_date'];
toDate = json['to_date'];
type = json['type'];
appliedAmount = json['applied_amount'];
approvedAmount = json['approved_amount'];
approvalStatus = json['approval_status'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['place_of_visit'] = this.placeOfVisit;
data['applied_date'] = this.appliedDate;
data['from_date'] = this.fromDate;
data['to_date'] = this.toDate;
data['type'] = this.type;
data['applied_amount'] = this.appliedAmount;
data['approved_amount'] = this.approvedAmount;
data['approval_status'] = this.approvalStatus;
return data;
}
}
...@@ -16,6 +16,7 @@ class HomescreenNotifier extends ChangeNotifier { ...@@ -16,6 +16,7 @@ class HomescreenNotifier extends ChangeNotifier {
String _curdate = ""; String _curdate = "";
String _empId = ""; String _empId = "";
String _session = ""; String _session = "";
String _requestId = "";
String _webPageUrl = ""; String _webPageUrl = "";
String _whizzdomPageUrl = ""; String _whizzdomPageUrl = "";
String _roleStatus = ""; String _roleStatus = "";
...@@ -34,6 +35,8 @@ class HomescreenNotifier extends ChangeNotifier { ...@@ -34,6 +35,8 @@ class HomescreenNotifier extends ChangeNotifier {
String get session => _session; String get session => _session;
String get requestId => _requestId;
String get webPageUrl => _webPageUrl; String get webPageUrl => _webPageUrl;
String get whizzdomPageUrl => _whizzdomPageUrl; String get whizzdomPageUrl => _whizzdomPageUrl;
...@@ -68,6 +71,7 @@ class HomescreenNotifier extends ChangeNotifier { ...@@ -68,6 +71,7 @@ class HomescreenNotifier extends ChangeNotifier {
_email = await SharedpreferencesService().getString("UserEmail") ?? ""; _email = await SharedpreferencesService().getString("UserEmail") ?? "";
_session = await SharedpreferencesService().getString("Session_id") ?? ""; _session = await SharedpreferencesService().getString("Session_id") ?? "";
_roleStatus = await SharedpreferencesService().getString("roles") ?? ""; _roleStatus = await SharedpreferencesService().getString("roles") ?? "";
_requestId = await SharedpreferencesService().getString("attendRequestId") ?? "";
var lastLocationTime = await SharedpreferencesService().getString( var lastLocationTime = await SharedpreferencesService().getString(
"lastLocationTime", "lastLocationTime",
); );
......
import 'package:flutter/cupertino.dart';
import 'package:generp/Models/hrmModels/attendanceRequestDetailsResponse.dart';
import 'package:provider/provider.dart';
import '../../Models/hrmModels/attendanceRequestListResponse.dart';
import '../../services/api_calling.dart';
import '../HomeScreenNotifier.dart';
class AttendanceDetailsProvider extends ChangeNotifier {
attendanceRequestDetailsResponse? _response;
bool _isLoading = false;
String? _errorMessage;
attendanceRequestDetailsResponse? get response => _response;
bool get isLoading => _isLoading;
String? get errorMessage => _errorMessage;
Future<void> fetchAttendanceRequestDetail(context,String requestId) async {
_isLoading = true;
_errorMessage = null;
_response = null;
notifyListeners();
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final result = await ApiCalling.attendanceRequestDetailAPI(provider.empId, provider.session, requestId);
if (result != null) {
_response = result;
} else {
_errorMessage = "No data found!";
}
} catch (e) {
_errorMessage = "Something went wrong: $e";
}
_isLoading = false;
notifyListeners();
}
}
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../Models/hrmModels/attendanceRequestListResponse.dart';
import '../../Utils/SharedpreferencesService.dart';
import '../../services/api_calling.dart';
import '../HomeScreenNotifier.dart';
class Attendancelistprovider extends ChangeNotifier {
attendanceRequestListResponse? _response;
bool _isLoading = false;
String? _errorMessage;
attendanceRequestListResponse? get response => _response;
bool get isLoading => _isLoading;
String? get errorMessage => _errorMessage;
/// fetch aattendance request list
Future<void> fetchAttendanceRequests(context,String type, String from, String to) async {
_isLoading = true;
_errorMessage = null;
notifyListeners();
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final result = await ApiCalling.attendanceRequestListAPI(provider.empId, provider.session, type, from, to);
debugPrint('empId: ${provider.empId}, session: ${provider.requestId}');
if (result != null) {
_response = result;
} else {
_errorMessage = "No data found!";
}
} catch (e) {
_errorMessage = "Error: $e";
}
_isLoading = false;
notifyListeners();
}
DateTime? _date;
final TextEditingController dateController = TextEditingController();
void setDate(DateTime newDate) {
_date = newDate;
dateController.text =
"${newDate.day}-${newDate.month}-${newDate.year}";
notifyListeners();
}
void showDatePickerDialog(BuildContext context) {
if (_date == null) {
setDate(DateTime.now());
}
showCupertinoModalPopup<void>(
context: context,
builder: (BuildContext context) => Container(
height: 250,
padding: const EdgeInsets.only(top: 6.0),
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
color: CupertinoColors.systemBackground.resolveFrom(context),
child: SafeArea(
top: false,
child: Column(
children: [
SizedBox(
height: 40,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CupertinoButton(
child: const Text("Cancel",
style: TextStyle(color: Colors.blue)),
onPressed: () {
Navigator.pop(context);
},
),
CupertinoButton(
child: const Text("Done",
style: TextStyle(color: Colors.blue)),
onPressed: () {
setDate(_date ?? DateTime.now());
Navigator.pop(context);
},
),
],
),
),
Expanded(
child: CupertinoDatePicker(
dateOrder: DatePickerDateOrder.dmy,
initialDateTime: _date ?? DateTime.now(),
mode: CupertinoDatePickerMode.date,
onDateTimeChanged: (DateTime newDate) {
_date = newDate; // temp update
},
),
),
],
),
),
),
);
}
}
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../Models/hrmModels/rewardListResponse.dart';
import '../../services/api_calling.dart';
import '../HomeScreenNotifier.dart';
class RewardListProvider extends ChangeNotifier {
rewardListResponse? _response;
bool _isLoading = false;
String? _errorMessage;
/// Getters
rewardListResponse? get response => _response;
bool get isLoading => _isLoading;
String? get errorMessage => _errorMessage;
/// Fetch Reward List
Future<void> fetchRewardList(BuildContext context) async {
_isLoading = true;
_errorMessage = null;
_response = null;
notifyListeners();
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final result = await ApiCalling.rewardListAPI(
provider.empId,
provider.session,
);
if (result != null) {
_response = result;
} else {
_errorMessage = "No reward data found!";
}
} catch (e) {
_errorMessage = "Something went wrong: $e";
}
_isLoading = false;
notifyListeners();
}
}
import 'package:flutter/cupertino.dart';
import 'package:provider/provider.dart';
import '../../Models/hrmModels/tourExpensesDetailsResponse.dart';
import '../../services/api_calling.dart';
import '../HomeScreenNotifier.dart';
class TourExpensesDetailsProvider extends ChangeNotifier {
tourExpensesDetailsResponse? _response;
bool _isLoading = false;
String? _errorMessage;
tourExpensesDetailsResponse? get response => _response;
bool get isLoading => _isLoading;
String? get errorMessage => _errorMessage;
Future<void> fetchTourExpensesDetails(BuildContext context, String tourBillId) async {
_isLoading = true;
_errorMessage = null;
_response = null;
notifyListeners();
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final result = await ApiCalling.tourExpensesDetailAPI(
provider.session,
provider.empId,
tourBillId,
);
print("==== Tour Submitted ====");
print("empId: "+provider.empId);
print("Session: ${provider.session}");
print(": $result.");
print("finish");
print("=============================");
if (result != null) {
_response = result;
} else {
_errorMessage = "No data found!";
}
} catch (e) {
_errorMessage = "Something went wrong: $e";
}
_isLoading = false;
notifyListeners();
}
}
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../Models/hrmModels/tourExpensesListResponse.dart';
import '../../services/api_calling.dart';
import '../HomeScreenNotifier.dart';
class TourExpensesProvider extends ChangeNotifier {
tourExpensesListResponse? _response;
bool _isLoading = false;
String? _errorMessage;
tourExpensesListResponse? get response => _response;
bool get isLoading => _isLoading;
String? get errorMessage => _errorMessage;
/// Fetch tour expenses list
Future<void> fetchTourExpenses(BuildContext context, String pageNumber) async {
_isLoading = true;
_errorMessage = null;
notifyListeners();
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final result = await ApiCalling.tourExpensesListAPI(
provider.empId,
provider.session,
pageNumber,
);
debugPrint('empId: ${provider.empId}, session: ${provider.session}');
if (result != null) {
_response = result;
} else {
_errorMessage = "No data found!";
}
} catch (e) {
_errorMessage = "Error: $e";
}
_isLoading = false;
notifyListeners();
}
DateTime? _date;
final TextEditingController dateController = TextEditingController();
void setDate(DateTime newDate) {
_date = newDate;
dateController.text = "${newDate.day}-${newDate.month}-${newDate.year}";
notifyListeners();
}
void showDatePickerDialog(BuildContext context) {
if (_date == null) {
setDate(DateTime.now());
}
showCupertinoModalPopup<void>(
context: context,
builder: (BuildContext context) => Container(
height: 250,
padding: const EdgeInsets.only(top: 6.0),
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
color: CupertinoColors.systemBackground.resolveFrom(context),
child: SafeArea(
top: false,
child: Column(
children: [
SizedBox(
height: 40,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CupertinoButton(
child: const Text("Cancel", style: TextStyle(color: Colors.blue)),
onPressed: () => Navigator.pop(context),
),
CupertinoButton(
child: const Text("Done", style: TextStyle(color: Colors.blue)),
onPressed: () {
setDate(_date ?? DateTime.now());
Navigator.pop(context);
},
),
],
),
),
Expanded(
child: CupertinoDatePicker(
dateOrder: DatePickerDateOrder.dmy,
initialDateTime: _date ?? DateTime.now(),
mode: CupertinoDatePickerMode.date,
onDateTimeChanged: (DateTime newDate) {
_date = newDate;
},
),
),
],
),
),
),
);
}
}
...@@ -226,6 +226,11 @@ class MyApp extends StatelessWidget { ...@@ -226,6 +226,11 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => followUpUpdateProvider()), ChangeNotifierProvider(create: (_) => followUpUpdateProvider()),
ChangeNotifierProvider(create: (_) => Appointmentcalendarprovider()), ChangeNotifierProvider(create: (_) => Appointmentcalendarprovider()),
ChangeNotifierProvider(create: (_) => Addnewleadsandprospectsprovider()), ChangeNotifierProvider(create: (_) => Addnewleadsandprospectsprovider()),
ChangeNotifierProvider(create: (_) => Attendancelistprovider()),
ChangeNotifierProvider(create: (_) => AttendanceDetailsProvider()),
ChangeNotifierProvider(create: (_) => TourExpensesProvider()),
ChangeNotifierProvider(create: (_) => TourExpensesDetailsProvider()),
ChangeNotifierProvider(create: (_) => RewardListProvider()),
], ],
child: Builder( child: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment