Merge branch 'development_new_design_2.0' into zik_new_design_2.0

* development_new_design_2.0: (105 commits)
  app bar back icon issue
  improvements
  emergency nearest ui changes
  Zoom Avatar implementation
  no message
  Child Vaccine 3
  register
  register page
  Working on Health data
  Child Vaccine 2
  registration
  Ereferral fixed, HHC moved to new APIs, Notification new design implemented
  registration done
  Child Vaccine 1.0
  In App Review
  In App Review
  oder log merge fix
  design fixes 3
  Chart fix & In-App update implemented
  design fixes 1.1
  ...

# Conflicts:
#	lib/config/config.dart
#	lib/pages/landing/fragments/home_page_fragment2.dart
merge-requests/454/head
Zohaib Iqbal Kambrani 4 years ago
commit 8b1ac05012

@ -271,6 +271,184 @@
"search": [
"roboticon"
]
},
{
"uid": "8ce732688587909ad0a9d8323eaca8ad",
"css": "marquee",
"code": 59590,
"src": "fontelico"
},
{
"uid": "ec8496ef645f3be7b28147ec60cd9ab1",
"css": "crown-minus",
"code": 59589,
"src": "fontelico"
},
{
"uid": "36ef9feb0754335302784521267a9ad4",
"css": "crown-plus",
"code": 59588,
"src": "fontelico"
},
{
"uid": "186dec7a13156bbe2550790c158fb85d",
"css": "crown",
"code": 59587,
"src": "fontelico"
},
{
"uid": "2a46f1d1c9bd036e17a74e46613c1636",
"css": "ie",
"code": 59586,
"src": "fontelico"
},
{
"uid": "9c2b737b16ae2c8d66b7bfd29ba5ecd8",
"css": "chrome",
"code": 59584,
"src": "fontelico"
},
{
"uid": "45861dd1e5ce4fde338bcccf01eeb808",
"css": "opera",
"code": 59585,
"src": "fontelico"
},
{
"uid": "2bd5f98482d86649958312ea2ab5bb40",
"css": "emo-laugh",
"code": 59576,
"src": "fontelico"
},
{
"uid": "fc92480dedc439d274d4e3e4b425edf4",
"css": "emo-squint",
"code": 59575,
"src": "fontelico"
},
{
"uid": "4843d0d6050dd508d4c101a334f46db2",
"css": "emo-shoot",
"code": 59574,
"src": "fontelico"
},
{
"uid": "04688d76a33ce7a7950e40fae79c08ac",
"css": "emo-cry",
"code": 59573,
"src": "fontelico"
},
{
"uid": "e4b163acaaa08255819f2f78afe8f075",
"css": "cart_menu_icon",
"code": 59412,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M367.1 624.3H972.6A33.2 33.2 0 0 0 1004.7 601.7L1138.2 164.7A29.6 29.6 0 0 0 1132.9 137.3 34.3 34.3 0 0 0 1106.3 124.9H289.9L266.3 24.5A33 33 0 0 0 233.7 0H33.4A32.4 32.4 0 0 0 0 31.2 32.4 32.4 0 0 0 33.4 62.4H206.9L327.4 569.6A93.8 93.8 0 0 0 267.1 655.5 97.1 97.1 0 0 0 367.2 749.1H972.6A31.3 31.3 0 1 0 972.6 686.7H367.2A31.3 31.3 0 1 1 367.2 624.3ZM1061.9 187.3L947.4 561.9H394L305 187.3ZM1061.9 187.3M315.3 894.6A105.4 105.4 0 1 0 420.7 789.2 105.4 105.4 0 0 0 315.3 894.6ZM420.7 859.4A35.2 35.2 0 1 1 385.6 894.6 35.2 35.2 0 0 1 420.7 859.4ZM420.7 859.4M735.4 894.6A105.4 105.4 0 1 0 840.9 789.2 105.4 105.4 0 0 0 735.4 894.6ZM840.9 859.4A35.2 35.2 0 1 1 805.7 894.6 35.2 35.2 0 0 1 840.9 859.4ZM840.9 859.4",
"width": 1140
},
"search": [
"cart_menu_icon"
]
},
{
"uid": "45f50872f02e050e19f0910ca3e0e8e6",
"css": "categories_menu_icon",
"code": 59413,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M332.7 458.9H126.3A126.3 126.3 0 0 1 0 332.7V126.3A126.3 126.3 0 0 1 126.3 0H332.7A126.3 126.3 0 0 1 459 126.3V332.7A126.3 126.3 0 0 1 332.7 458.9ZM126.3 61.2A65.1 65.1 0 0 0 61.2 126.3V332.7A65.1 65.1 0 0 0 126.3 397.8H332.7A65.1 65.1 0 0 0 397.8 332.7V126.3A65.1 65.1 0 0 0 332.7 61.2ZM873.8 458.9H667.3A126.3 126.3 0 0 1 541 332.6V126.3A126.3 126.3 0 0 1 667.3 0H873.9A126.3 126.3 0 0 1 1000.2 126.3V332.7A126.3 126.3 0 0 1 873.8 458.9ZM667.3 61.2A65.1 65.1 0 0 0 602.2 126.3V332.7A65.1 65.1 0 0 0 667.3 397.8H873.9A65.1 65.1 0 0 0 938.9 332.7V126.3A65.1 65.1 0 0 0 873.9 61.3ZM332.7 999.9H126.3A126.3 126.3 0 0 1 0 873.7V667.3A126.3 126.3 0 0 1 126.3 541H332.7A126.3 126.3 0 0 1 459 667.3V873.9A126.3 126.3 0 0 1 332.7 999.9ZM126.3 602.2A65.1 65.1 0 0 0 61.2 667.3V873.9A65.1 65.1 0 0 0 126.3 938.8H332.7A65.1 65.1 0 0 0 397.8 873.8V667.3A65.1 65.1 0 0 0 332.7 602.3ZM873.8 999.9H667.3A126.3 126.3 0 0 1 541 873.7V667.3A126.3 126.3 0 0 1 667.3 541H873.8A126.3 126.3 0 0 1 1000.1 667.3V873.9A126.3 126.3 0 0 1 873.8 999.9ZM667.3 602.2A65.1 65.1 0 0 0 602.2 667.3V873.9A65.1 65.1 0 0 0 667.3 938.8H873.8A65.1 65.1 0 0 0 938.8 873.8V667.3A65.1 65.1 0 0 0 873.8 602.3Z",
"width": 1000
},
"search": [
"categories_menu_icon"
]
},
{
"uid": "de65d94899c08a719eb8f9b723f73fc4",
"css": "hmg_logo_icon",
"code": 59414,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M146 835.7S180.9 835.5 205.5 835.5L392.2 836.4C414.4 836.4 433 812.7 434 778.5L434 622.5C434 589.3 448.9 563.3 472 561.7L529.2 561.2C552.3 562.7 568.1 588.9 568.1 622L568.1 778.9C569.2 813.1 584.7 835.5 607.1 835.5L858.4 836.1 858.8 643.3C858.8 610.2 842.9 584.4 819.8 583L718.8 582.5C696.5 582.5 678.9 558.9 677.9 524.7L677.5 472.6C678.6 438.4 696.4 414.8 718.7 414.8L820.2 415.1C843.3 413.6 858.3 386.4 858.3 353.3L858.5 112.8A102.4 102.4 0 0 1 780.8 161.4L610.2 161.4C587.9 161.4 569.4 185.7 568.3 219.9V374.6C567.2 408.8 549.8 432.9 527.5 432.9L475.8 432C453.4 432 435.6 408.6 434.5 374.7L434.5 218.4C433.4 184.3 415.6 161.2 393.4 161.2L145.6 161.2 145.6 353.4C145.6 386.6 161.2 413.1 184.3 414.7L285.8 414.3C308.8 415.8 325.1 443.2 325.1 476.2L324.8 520.7C324.8 553.8 309.1 580.4 286 581.9L184.3 581.7C161.2 583.3 145.6 609.5 145.6 642.6ZM999.3 99.1V902.8A102.2 102.2 0 0 1 896 1000H102.8A101.9 101.9 0 0 1 0 902.8L0 97.6A102.3 102.3 0 0 1 103 0L895.4 0.3A104 104 0 0 1 999.3 99.1Z",
"width": 999
},
"search": [
"hmg_logo_icon"
]
},
{
"uid": "baf8798b7336aad03b1d61cacc015142",
"css": "user_menu_icon",
"code": 59415,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M853.6 146.4A500 500 0 0 0 146.4 853.6 500 500 0 0 0 853.6 146.4ZM217 838.5A286.1 286.1 0 0 1 500 586.7 285 285 0 0 1 783 838.5 440.5 440.5 0 0 1 217 838.5ZM500 526.3A151.8 151.8 0 1 1 651.8 374.5 152.1 152.1 0 0 1 500 526.3ZM833.4 788.8A344.4 344.4 0 0 0 617.6 548.7 210.5 210.5 0 1 0 382.1 548.7 344.2 344.2 0 0 0 166.3 788.7 441.4 441.4 0 1 1 833.2 788.7ZM833.4 788.8",
"width": 1000
},
"search": [
"user_menu_icon"
]
},
{
"uid": "d3f621623139837ff2fb5fe09cf16994",
"css": "cart_menu_icon-1",
"code": 59416,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M367.1 624.3H972.6A33.2 33.2 0 0 0 1004.7 601.7L1138.2 164.7A29.6 29.6 0 0 0 1132.9 137.3 34.3 34.3 0 0 0 1106.3 124.9H289.9L266.3 24.5A33 33 0 0 0 233.7 0H33.4A32.4 32.4 0 0 0 0 31.2 32.4 32.4 0 0 0 33.4 62.4H206.9L327.4 569.6A93.8 93.8 0 0 0 267.1 655.5 97.1 97.1 0 0 0 367.2 749.1H972.6A31.3 31.3 0 1 0 972.6 686.7H367.2A31.3 31.3 0 1 1 367.2 624.3ZM1061.9 187.3L947.4 561.9H394L305 187.3ZM1061.9 187.3M315.3 894.6A105.4 105.4 0 1 0 420.7 789.2 105.4 105.4 0 0 0 315.3 894.6ZM420.7 859.4A35.2 35.2 0 1 1 385.6 894.6 35.2 35.2 0 0 1 420.7 859.4ZM420.7 859.4M735.4 894.6A105.4 105.4 0 1 0 840.9 789.2 105.4 105.4 0 0 0 735.4 894.6ZM840.9 859.4A35.2 35.2 0 1 1 805.7 894.6 35.2 35.2 0 0 1 840.9 859.4ZM840.9 859.4",
"width": 1140
},
"search": [
"cart_menu_icon"
]
},
{
"uid": "6aac6f399374da0b9c4811b6a7110627",
"css": "categories_menu_icon-1",
"code": 59417,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M332.7 458.9H126.3A126.3 126.3 0 0 1 0 332.7V126.3A126.3 126.3 0 0 1 126.3 0H332.7A126.3 126.3 0 0 1 459 126.3V332.7A126.3 126.3 0 0 1 332.7 458.9ZM126.3 61.2A65.1 65.1 0 0 0 61.2 126.3V332.7A65.1 65.1 0 0 0 126.3 397.8H332.7A65.1 65.1 0 0 0 397.8 332.7V126.3A65.1 65.1 0 0 0 332.7 61.2ZM873.8 458.9H667.3A126.3 126.3 0 0 1 541 332.6V126.3A126.3 126.3 0 0 1 667.3 0H873.9A126.3 126.3 0 0 1 1000.2 126.3V332.7A126.3 126.3 0 0 1 873.8 458.9ZM667.3 61.2A65.1 65.1 0 0 0 602.2 126.3V332.7A65.1 65.1 0 0 0 667.3 397.8H873.9A65.1 65.1 0 0 0 938.9 332.7V126.3A65.1 65.1 0 0 0 873.9 61.3ZM332.7 999.9H126.3A126.3 126.3 0 0 1 0 873.7V667.3A126.3 126.3 0 0 1 126.3 541H332.7A126.3 126.3 0 0 1 459 667.3V873.9A126.3 126.3 0 0 1 332.7 999.9ZM126.3 602.2A65.1 65.1 0 0 0 61.2 667.3V873.9A65.1 65.1 0 0 0 126.3 938.8H332.7A65.1 65.1 0 0 0 397.8 873.8V667.3A65.1 65.1 0 0 0 332.7 602.3ZM873.8 999.9H667.3A126.3 126.3 0 0 1 541 873.7V667.3A126.3 126.3 0 0 1 667.3 541H873.8A126.3 126.3 0 0 1 1000.1 667.3V873.9A126.3 126.3 0 0 1 873.8 999.9ZM667.3 602.2A65.1 65.1 0 0 0 602.2 667.3V873.9A65.1 65.1 0 0 0 667.3 938.8H873.8A65.1 65.1 0 0 0 938.8 873.8V667.3A65.1 65.1 0 0 0 873.8 602.3Z",
"width": 1000
},
"search": [
"categories_menu_icon"
]
},
{
"uid": "0a4cf1ff2671b9ea852d635e27df1e69",
"css": "hmg_logo_icon-1",
"code": 59418,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M146 835.7S180.9 835.5 205.5 835.5L392.2 836.4C414.4 836.4 433 812.7 434 778.5L434 622.5C434 589.3 448.9 563.3 472 561.7L529.2 561.2C552.3 562.7 568.1 588.9 568.1 622L568.1 778.9C569.2 813.1 584.7 835.5 607.1 835.5L858.4 836.1 858.8 643.3C858.8 610.2 842.9 584.4 819.8 583L718.8 582.5C696.5 582.5 678.9 558.9 677.9 524.7L677.5 472.6C678.6 438.4 696.4 414.8 718.7 414.8L820.2 415.1C843.3 413.6 858.3 386.4 858.3 353.3L858.5 112.8A102.4 102.4 0 0 1 780.8 161.4L610.2 161.4C587.9 161.4 569.4 185.7 568.3 219.9V374.6C567.2 408.8 549.8 432.9 527.5 432.9L475.8 432C453.4 432 435.6 408.6 434.5 374.7L434.5 218.4C433.4 184.3 415.6 161.2 393.4 161.2L145.6 161.2 145.6 353.4C145.6 386.6 161.2 413.1 184.3 414.7L285.8 414.3C308.8 415.8 325.1 443.2 325.1 476.2L324.8 520.7C324.8 553.8 309.1 580.4 286 581.9L184.3 581.7C161.2 583.3 145.6 609.5 145.6 642.6ZM999.3 99.1V902.8A102.2 102.2 0 0 1 896 1000H102.8A101.9 101.9 0 0 1 0 902.8L0 97.6A102.3 102.3 0 0 1 103 0L895.4 0.3A104 104 0 0 1 999.3 99.1Z",
"width": 999
},
"search": [
"hmg_logo_icon"
]
},
{
"uid": "d19eb878f1dee49848276b6d0faa6602",
"css": "wishlist_menu_icon",
"code": 59411,
"src": "custom_icons",
"selected": false,
"svg": {
"path": "M877.6 0A394.8 394.8 0 0 0 600.7 112.2 394.8 394.8 0 0 0 323.8 0 332.4 332.4 0 0 0 0 349 515.4 515.4 0 0 0 138.3 679.5 1351.1 1351.1 0 0 0 580.3 995.3 46.9 46.9 0 0 0 621.1 995.3 1351.1 1351.1 0 0 0 1063.1 679.5 515.4 515.4 0 0 0 1201.4 349 332.5 332.5 0 0 0 877.6 0ZM991.8 618.5A1233.8 1233.8 0 0 1 600.7 900.8 1233.7 1233.7 0 0 1 209.5 618.5 418.4 418.4 0 0 1 93.8 349 239.1 239.1 0 0 1 323.8 93.8 297.2 297.2 0 0 1 500.6 150.7 283.5 283.5 0 0 1 562 209.5 46.5 46.5 0 0 0 600.5 230H600.5A46.9 46.9 0 0 0 639.1 209.3 301.2 301.2 0 0 1 877.2 93.8 239.2 239.2 0 0 1 1107.1 349 418.4 418.4 0 0 1 991.8 618.5Z",
"width": 1201
},
"search": [
"wishlist_menu_icon"
]
}
]
}

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27.682" height="40.133" viewBox="0 0 27.682 40.133">
<g id="Group_8185" data-name="Group 8185" transform="translate(0 0)">
<path id="Path_4944" data-name="Path 4944" d="M68.423,22.945a52.3,52.3,0,0,0,.657,5.827,9,9,0,0,1,.32,2.393,8.691,8.691,0,0,0-.121,2.516,8.175,8.175,0,0,1-.02,2.757,20.1,20.1,0,0,0-.379,2.047c-.639,1.613-.278,1.534-.278,1.534.2.243.537.019.537.019A.332.332,0,0,0,69.575,40a.4.4,0,0,0,.48-.023.491.491,0,0,0,.536-.122c.16.081.2-.021.2-.021.48-.031-.268-1.566-.268-1.566a4.192,4.192,0,0,1,.178-2.146c1.168-3.463,1.227-4.382.76-5.688-.131-.377-.165-.526-.1-.69.14-.378.038-1.9.209-2.5a54.113,54.113,0,0,0,.823-5.489,10.623,10.623,0,0,0-.805-4.339,27.788,27.788,0,0,1,.105-4.615,4.369,4.369,0,0,1,.445,1.993,8.269,8.269,0,0,0,1.078,3.373,5.43,5.43,0,0,1,.763,1.7c0,.243-.053.83-.053.83l.021.512a7.3,7.3,0,0,1,.071.8c-.086,1.335.126,1.084.126,1.084.179,0,.376-1.074.376-1.074a4.6,4.6,0,0,0,.082,1.419c.179.373.31-.064.313-.152.047-1.7.149-1.254.149-1.254.1,1.379.222,1.69.441,1.582.166-.079.014-1.655.014-1.655.284.936.5,1.085.5,1.085.469.329.179-.58.114-.76a5.17,5.17,0,0,1-.358-1.289c.434.86.76.828.76.828.423-.135-.37-1.353-.834-1.936a4.745,4.745,0,0,1-.631-.932,11.259,11.259,0,0,1-.254-1.687,5.071,5.071,0,0,0-.419-2.178,7.868,7.868,0,0,1-.763-2.944L73.6,8.909c-.225-2.207-1.851-2.223-1.851-2.223-1.644-.245-1.873-.776-1.873-.776a2.318,2.318,0,0,1-.149-1.462,1.747,1.747,0,0,0,.4-.859c.48-.368.456-.906.235-.9-.178,0-.138-.143-.138-.143A2.049,2.049,0,0,0,68.373,0h-.328a2.049,2.049,0,0,0-1.852,2.546s.04.147-.139.143c-.221-.006-.242.532.236.9a1.746,1.746,0,0,0,.4.859,2.318,2.318,0,0,1-.149,1.462s-.228.531-1.873.776c0,0-1.629.016-1.851,2.223l-.031,3.236a7.817,7.817,0,0,1-.763,2.944,5.089,5.089,0,0,0-.417,2.178,11.33,11.33,0,0,1-.253,1.687,4.693,4.693,0,0,1-.632.932c-.468.582-1.256,1.8-.834,1.936,0,0,.329.032.76-.828a5.119,5.119,0,0,1-.355,1.289c-.068.178-.358,1.087.111.76,0,0,.217-.149.5-1.085,0,0-.152,1.575.017,1.655.22.108.341-.2.44-1.582,0,0,.1-.445.149,1.254,0,.088.131.525.31.152a4.538,4.538,0,0,0,.083-1.419s.194,1.074.376,1.074c0,0,.214.251.126-1.084a6.719,6.719,0,0,1,.072-.8L62.5,20.7s-.053-.586-.053-.83a5.424,5.424,0,0,1,.763-1.7,8.272,8.272,0,0,0,1.076-3.373,4.38,4.38,0,0,1,.447-1.993,28.166,28.166,0,0,1,.106,4.615,10.6,10.6,0,0,0-.806,4.339,53.433,53.433,0,0,0,.822,5.489c.172.6.07,2.12.209,2.5.062.165.03.316-.1.69-.464,1.305-.405,2.224.763,5.688a4.154,4.154,0,0,1,.178,2.146s-.746,1.535-.268,1.566c0,0,.037.1.2.021a.492.492,0,0,0,.537.122.4.4,0,0,0,.479.023.329.329,0,0,0,.435.039s.339.229.54-.019c0,0,.358.079-.279-1.534a20.009,20.009,0,0,0-.378-2.047,8.216,8.216,0,0,1-.021-2.757,8.844,8.844,0,0,0-.12-2.516,8.81,8.81,0,0,1,.319-2.393A52.612,52.612,0,0,0,68,22.944l.2.069A.4.4,0,0,0,68.423,22.945Z" transform="translate(-59.768)" fill="#2e303a"/>
<path id="Path_4945" data-name="Path 4945" d="M59.165,10.877a1.411,1.411,0,1,0-1.9,1.323,2.8,2.8,0,1,1-5.6,0,1.413,1.413,0,0,0,.921-1.323v-.82c2.144-1.069,3.761-4.513,3.761-6.7,0-1.206-.109-1.8-1.127-2.327C54.918.722,54.147,0,53.523,0a1.411,1.411,0,1,0,0,2.821,2.7,2.7,0,0,0,1.493-.831c.332.214.387.463.387,1.364,0,2.2-2.015,6.112-4.232,6.112S46.94,5.56,46.94,3.354c0-.9.055-1.15.387-1.364a2.7,2.7,0,0,0,1.493.831,1.411,1.411,0,0,0,0-2.821c-.624,0-1.4.722-1.694,1.027C46.109,1.55,46,2.148,46,3.354c0,2.138,1.579,5.614,3.761,6.7v.82a1.413,1.413,0,0,0,.957,1.335,3.746,3.746,0,1,0,7.49,0A1.413,1.413,0,0,0,59.165,10.877Z" transform="translate(-31.483 0)" fill="#da4a54"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="36.033" height="32.32" viewBox="0 0 36.033 32.32">
<g id="Group_6982" data-name="Group 6982" transform="translate(0 0)">
<g id="Group_6964" data-name="Group 6964">
<path id="Subtraction_64" data-name="Subtraction 64" d="M807.5,957.28h-3.132a3.925,3.925,0,0,1-1.545-.314,4.019,4.019,0,0,1-2.121-2.119,3.9,3.9,0,0,1-.314-1.54V941.469a3.908,3.908,0,0,1,.314-1.543,4.014,4.014,0,0,1,2.118-2.116,3.916,3.916,0,0,1,1.54-.312h14.682a3.915,3.915,0,0,1,1.543.314,4.01,4.01,0,0,1,2.116,2.118,3.92,3.92,0,0,1,.313,1.54v2.919a3.274,3.274,0,0,0,0,6.127V953.3a3.93,3.93,0,0,1-.309,1.545,4,4,0,0,1-2.113,2.12,3.91,3.91,0,0,1-1.542.314h-3.432a10.325,10.325,0,0,0,1.118-1.11,1.034,1.034,0,0,0,.228-.817,15.093,15.093,0,0,0,2.129-4.006,14.583,14.583,0,0,0,.579-2.111,10.557,10.557,0,0,0,.2-1.981,7,7,0,0,0-.313-2.292,2.991,2.991,0,0,0-.9-1.348,4.283,4.283,0,0,0-1.436-.751c-.565-.19-1.219-.34-1.91-.5h0l0-.007a1.068,1.068,0,0,0-.956-.607,1.084,1.084,0,1,0,0,2.169,1.043,1.043,0,0,0,.638-.239l.025.009h.007l.017,0c.691.159,1.236.284,1.689.431a2.958,2.958,0,0,1,1.076.549,1.844,1.844,0,0,1,.558.947,6.338,6.338,0,0,1,.16,1.631,9.146,9.146,0,0,1-.186,1.755,13.223,13.223,0,0,1-.529,1.887,14.692,14.692,0,0,1-.825,1.874,12.98,12.98,0,0,1-1.077,1.715,1.035,1.035,0,0,0-.714.346,7.34,7.34,0,0,1-1.544,1.378,3.552,3.552,0,0,1-4.162.006,7.291,7.291,0,0,1-1.543-1.371,1.035,1.035,0,0,0-.713-.346,13.038,13.038,0,0,1-1.079-1.719,14.8,14.8,0,0,1-.827-1.878,13.155,13.155,0,0,1-.53-1.89,9.167,9.167,0,0,1-.187-1.758,6.412,6.412,0,0,1,.158-1.632,1.835,1.835,0,0,1,.556-.947,2.928,2.928,0,0,1,1.077-.549c.458-.148,1.034-.28,1.7-.432l.015,0h0l.01-.009a1.072,1.072,0,0,0,.652.24,1.084,1.084,0,1,0,0-2.168,1.052,1.052,0,0,0-.575.171,1.176,1.176,0,0,0-.393.434h0l-.014,0c-2.842.656-4.557,1.051-4.557,4.893a10.584,10.584,0,0,0,.2,1.983,14.543,14.543,0,0,0,.583,2.115,14.983,14.983,0,0,0,2.146,4.013,1.028,1.028,0,0,0,.229.816,10.456,10.456,0,0,0,1.105,1.1h0Zm1.9-11.264a.588.588,0,0,0-.592.561v4.632a.585.585,0,0,0,.591.559h4.563a.588.588,0,0,0,.594-.559v-4.623a.565.565,0,0,0-.18-.4.621.621,0,0,0-.417-.169Zm26.359,9.2h-1.607a1.387,1.387,0,0,1-.718-.208l-6.684-4.219a.66.66,0,0,1-.309-.556v-.419a3.27,3.27,0,0,0,0-4.712v-.742a.661.661,0,0,1,.309-.557l6.684-4.219a1.322,1.322,0,0,1,.718-.209h1.607a.661.661,0,0,1,.665.657v14.528a.65.65,0,0,1-.193.464.665.665,0,0,1-.471.191Z" transform="translate(-800.388 -937.498)" fill="#2e303a"/>
<path id="Path_656" data-name="Path 656" d="M894.195,1023.524l-.051,13.538c0,3.014-2.447,6.151-5.461,6.151a5.464,5.464,0,0,1-5.461-5.461l-.091-4.43c1.43-.191-2.655-.191-1.227,0l.079,4.43a6.707,6.707,0,0,0,6.7,6.693c3.69,0,6.687-3.692,6.687-7.383l.051-13.538C897.162,1023.233,892.453,1023.234,894.195,1023.524Z" transform="translate(-871.015 -1012.125)" fill="#de5c5d"/>
<path id="Path_663" data-name="Path 663" d="M970.188,998.3a1.9,1.9,0,1,1-1.9,1.9h0A1.9,1.9,0,0,1,970.188,998.3Z" transform="translate(-946.411 -990.378)" fill="#de5c5d"/>
<path id="Subtraction_64-2" data-name="Subtraction 64" d="M807.5,957.28h-3.132a3.925,3.925,0,0,1-1.545-.314,4.019,4.019,0,0,1-2.121-2.119,3.9,3.9,0,0,1-.314-1.54V941.469a3.908,3.908,0,0,1,.314-1.543,4.014,4.014,0,0,1,2.118-2.116,3.916,3.916,0,0,1,1.54-.312h14.682a3.915,3.915,0,0,1,1.543.314,4.01,4.01,0,0,1,2.116,2.118,3.92,3.92,0,0,1,.313,1.54v2.919a3.274,3.274,0,0,0,0,6.127V953.3a3.93,3.93,0,0,1-.309,1.545,4,4,0,0,1-2.113,2.12,3.91,3.91,0,0,1-1.542.314h-3.432a10.325,10.325,0,0,0,1.118-1.11,1.034,1.034,0,0,0,.228-.817,15.093,15.093,0,0,0,2.129-4.006,14.583,14.583,0,0,0,.579-2.111,10.557,10.557,0,0,0,.2-1.981,7,7,0,0,0-.313-2.292,2.991,2.991,0,0,0-.9-1.348,4.283,4.283,0,0,0-1.436-.751c-.565-.19-1.219-.34-1.91-.5h0l0-.007a1.068,1.068,0,0,0-.956-.607,1.084,1.084,0,1,0,0,2.169,1.043,1.043,0,0,0,.638-.239l.025.009h.007l.017,0c.691.159,1.236.284,1.689.431a2.958,2.958,0,0,1,1.076.549,1.844,1.844,0,0,1,.558.947,6.338,6.338,0,0,1,.16,1.631,9.146,9.146,0,0,1-.186,1.755,13.223,13.223,0,0,1-.529,1.887,14.692,14.692,0,0,1-.825,1.874,12.98,12.98,0,0,1-1.077,1.715,1.035,1.035,0,0,0-.714.346,7.34,7.34,0,0,1-1.544,1.378,3.552,3.552,0,0,1-4.162.006,7.291,7.291,0,0,1-1.543-1.371,1.035,1.035,0,0,0-.713-.346,13.038,13.038,0,0,1-1.079-1.719,14.8,14.8,0,0,1-.827-1.878,13.155,13.155,0,0,1-.53-1.89,9.167,9.167,0,0,1-.187-1.758,6.412,6.412,0,0,1,.158-1.632,1.835,1.835,0,0,1,.556-.947,2.928,2.928,0,0,1,1.077-.549c.458-.148,1.034-.28,1.7-.432l.015,0h0l.01-.009a1.072,1.072,0,0,0,.652.24,1.084,1.084,0,1,0,0-2.168,1.052,1.052,0,0,0-.575.171,1.176,1.176,0,0,0-.393.434h0l-.014,0c-2.842.656-4.557,1.051-4.557,4.893a10.584,10.584,0,0,0,.2,1.983,14.543,14.543,0,0,0,.583,2.115,14.983,14.983,0,0,0,2.146,4.013,1.028,1.028,0,0,0,.229.816,10.456,10.456,0,0,0,1.105,1.1h0Zm28.256-2.069h-1.607a1.387,1.387,0,0,1-.718-.208l-6.684-4.219a.66.66,0,0,1-.309-.556v-.419a3.27,3.27,0,0,0,0-4.712v-.742a.661.661,0,0,1,.309-.557l6.684-4.219a1.322,1.322,0,0,1,.718-.209h1.607a.661.661,0,0,1,.665.657v14.528a.65.65,0,0,1-.193.464.665.665,0,0,1-.471.191Z" transform="translate(-800.388 -937.498)" fill="#2e303a"/>
<path id="Path_4645" data-name="Path 4645" d="M232.363,4.484h.32l1,0c.119,0,.219-.127.225-.311V3.34c0-.178.08-.318.2-.326l.307,0c.124.008.209.149.209.326V4.18c.005.183.089.3.209.3l1.348,0,0-1.034c0-.178-.085-.316-.21-.324l-.542,0c-.12,0-.214-.126-.219-.31l0-.28c.006-.183.1-.31.221-.31l.544,0c.124-.008.2-.154.2-.332V.6a.55.55,0,0,1-.417.261h-.916c-.119,0-.219.13-.225.314v.829c-.006.183-.1.313-.219.313l-.277,0c-.12,0-.216-.125-.222-.308V1.172c-.005-.184-.1-.307-.22-.307h-1.329V1.9c0,.178.083.321.207.329l.545,0c.123.008.21.155.21.332l0,.239c0,.178-.084.32-.208.328h-.545c-.124.008-.207.149-.207.327ZM236.941.532V4.844a.548.548,0,0,1-.554.521h-4.256a.546.546,0,0,1-.552-.522V.523A.548.548,0,0,1,232.131,0l4.252,0a.558.558,0,0,1,.557.53" transform="translate(-223.139 8.931)" fill="#fff"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

@ -0,0 +1,5 @@
<svg id="Group_8429" data-name="Group 8429" xmlns="http://www.w3.org/2000/svg" width="31.346" height="31.94" viewBox="0 0 31.346 31.94">
<path id="Path_5095" data-name="Path 5095" d="M132.741,147.943a8.267,8.267,0,0,1-7.14,3.659,8.465,8.465,0,0,1-7.027-12.764l6.243-10.641a1.154,1.154,0,0,1,1.4-.5,1.138,1.138,0,0,1,.6.5l6.243,10.641A8.474,8.474,0,0,1,132.741,147.943Zm0,0" transform="translate(-110.073 -119.664)" fill="#de5c5d"/>
<path id="Path_5096" data-name="Path 5096" d="M366.039,9.648a4.471,4.471,0,0,1-4.3,2.722A4.551,4.551,0,0,1,358,5.506L360.9.57a1.154,1.154,0,0,1,1.4-.5,1.131,1.131,0,0,1,.6.5l2.9,4.936A4.541,4.541,0,0,1,366.039,9.648Zm0,0" transform="translate(-335.077 0.001)" fill="#de5c5d"/>
<path id="Path_5097" data-name="Path 5097" d="M7.76,107.5a3.965,3.965,0,0,1-3.752,2.62A4.029,4.029,0,0,1,.56,104.039l2.564-4.372a1.024,1.024,0,0,1,1.34-.4,1.009,1.009,0,0,1,.426.4l2.564,4.372A4.017,4.017,0,0,1,7.76,107.5Zm0,0" transform="translate(0 -92.976)" fill="#de5c5d"/>
</svg>

After

Width:  |  Height:  |  Size: 999 B

@ -0,0 +1,5 @@
<svg id="Group_7066" data-name="Group 7066" xmlns="http://www.w3.org/2000/svg" width="28.357" height="28.357" viewBox="0 0 28.357 28.357">
<path id="Path_4367" data-name="Path 4367" d="M24.7,2.215H22.154V.886a.886.886,0,1,0-1.772,0V2.215H7.976V.886A.886.886,0,1,0,6.2.886V2.215H3.655A3.66,3.66,0,0,0,0,5.871V24.7a3.66,3.66,0,0,0,3.655,3.655H24.7A3.66,3.66,0,0,0,28.357,24.7V5.871A3.66,3.66,0,0,0,24.7,2.215ZM26.585,24.7A1.883,1.883,0,0,1,24.7,26.585H3.655A1.883,1.883,0,0,1,1.772,24.7V10.025a.277.277,0,0,1,.277-.277H26.308a.277.277,0,0,1,.277.277Z" fill="#2e303a"/>
<line id="Line_12" data-name="Line 12" y2="10.743" transform="translate(13.755 12.168)" fill="none" stroke="#da4a54" stroke-width="2.5"/>
<line id="Line_13" data-name="Line 13" y2="10.743" transform="translate(19.127 17.539) rotate(90)" fill="none" stroke="#da4a54" stroke-width="2.5"/>
</svg>

After

Width:  |  Height:  |  Size: 867 B

@ -0,0 +1,89 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.723" height="30.591" viewBox="0 0 29.723 30.591">
<g id="injection" transform="translate(-2.188 -1.267)">
<g id="Group_8391" data-name="Group 8391" transform="translate(2.188 26.82)">
<g id="Group_8390" data-name="Group 8390">
<path id="Path_5064" data-name="Path 5064" d="M2.89,60.126a.7.7,0,0,1-.5-.206.7.7,0,0,1,0-.991L5.16,56.164a.7.7,0,1,1,.991.991L3.385,59.921A.685.685,0,0,1,2.89,60.126Z" transform="translate(-2.188 -55.957)" fill="#2e303a"/>
</g>
</g>
<g id="Group_8409" data-name="Group 8409" transform="translate(4.631 3.194)">
<g id="Group_8392" data-name="Group 8392" transform="translate(0.502 2.995)">
<path id="Path_5065" data-name="Path 5065" d="M30.348,18.486,15.6,33.232a1.444,1.444,0,0,1-2.037,0L8.917,28.583a1.435,1.435,0,0,1,0-2.037L23.662,11.8Z" transform="translate(-8.492 -11.8)" fill="#2e303a"/>
</g>
<g id="Group_8393" data-name="Group 8393" transform="translate(0.506 11.755)">
<path id="Path_5066" data-name="Path 5066" d="M14.906,30.55,8.921,36.535a1.444,1.444,0,0,0,0,2.037l4.649,4.649a1.444,1.444,0,0,0,2.037,0l8.134-8.134Z" transform="translate(-8.5 -30.55)" fill="#de5c5d"/>
</g>
<g id="Group_8394" data-name="Group 8394" transform="translate(0 20.628)">
<path id="Path_5067" data-name="Path 5067" d="M10.984,53.652l1.159-1.159L9.189,49.54,8.031,50.7a2.088,2.088,0,0,0,2.953,2.953Z" transform="translate(-7.418 -49.54)" fill="#2e303a"/>
</g>
<g id="Group_8395" data-name="Group 8395" transform="translate(0.005 22.726)" opacity="0.1">
<path id="Path_5068" data-name="Path 5068" d="M12.148,54.885l-1.159,1.159A2.085,2.085,0,0,1,7.5,54.03a1.994,1.994,0,0,0,.537.939,2.087,2.087,0,0,0,2.953,0l.621-.621Z" transform="translate(-7.428 -54.03)" fill="#070707"/>
</g>
<g id="Group_8396" data-name="Group 8396" transform="translate(17.798 0)">
<path id="Path_5069" data-name="Path 5069" d="M53.065,7.824l-4.457,4.462-.663.659L45.51,10.511l.663-.659L50.631,5.39Z" transform="translate(-45.51 -5.39)" fill="#2e303a"/>
</g>
<g id="Group_8398" data-name="Group 8398" transform="translate(16.834 9.007)">
<g id="Group_8397" data-name="Group 8397">
<path id="Path_5070" data-name="Path 5070" d="M46.878,27.435l-.659.659h0l-2.63-2.63a.465.465,0,0,1,0-.659.471.471,0,0,1,.663,0Z" transform="translate(-43.447 -24.667)" fill="#fff"/>
</g>
</g>
<g id="Group_8400" data-name="Group 8400" transform="translate(15.675 12.212)">
<g id="Group_8399" data-name="Group 8399" transform="translate(0)">
<path id="Path_5071" data-name="Path 5071" d="M43.375,33.271l-.663.663L41.1,32.323a.466.466,0,1,1,.659-.659Z" transform="translate(-40.967 -31.527)" fill="#fff"/>
</g>
</g>
<g id="Group_8402" data-name="Group 8402" transform="translate(12.466 13.371)">
<g id="Group_8401" data-name="Group 8401">
<path id="Path_5072" data-name="Path 5072" d="M37.528,36.779l-.659.659-2.635-2.63a.469.469,0,0,1,.663-.663Z" transform="translate(-34.097 -34.007)" fill="#fff"/>
</g>
</g>
<g id="Group_8404" data-name="Group 8404" transform="translate(11.307 16.576)">
<g id="Group_8403" data-name="Group 8403">
<path id="Path_5073" data-name="Path 5073" d="M34.025,42.616l-.659.659h0l-1.607-1.607a.471.471,0,0,1,0-.663.465.465,0,0,1,.659,0Z" transform="translate(-31.617 -40.868)" fill="#fff"/>
</g>
</g>
<g id="Group_8406" data-name="Group 8406" transform="translate(8.102 17.739)">
<g id="Group_8405" data-name="Group 8405">
<path id="Path_5074" data-name="Path 5074" d="M28.183,46.125v0l-.659.659-2.63-2.635a.466.466,0,0,1,.659-.659Z" transform="translate(-24.757 -43.357)" fill="#fff"/>
</g>
</g>
<g id="Group_8408" data-name="Group 8408" transform="translate(6.938 20.945)">
<g id="Group_8407" data-name="Group 8407">
<path id="Path_5075" data-name="Path 5075" d="M24.675,51.966l-.659.659L22.4,51.018a.469.469,0,0,1,.663-.663Z" transform="translate(-22.267 -50.218)" fill="#fff"/>
</g>
</g>
</g>
<g id="Group_8410" data-name="Group 8410" transform="translate(23.326 20.986)">
<path id="Path_5076" data-name="Path 5076" d="M55.116,46.89v6.2a1.254,1.254,0,0,1-1.257,1.257H48.692a1.258,1.258,0,0,1-1.262-1.257V46.895A1.266,1.266,0,0,1,48.7,45.633a1.262,1.262,0,0,0,1.257-1.205V43.47H52.6v.958a1.26,1.26,0,0,0,1.257,1.205h0A1.254,1.254,0,0,1,55.116,46.89Z" transform="translate(-47.43 -43.47)" fill="#6f6f6f"/>
</g>
<g id="Group_8411" data-name="Group 8411" transform="translate(23.321 26.822)">
<path id="Path_5077" data-name="Path 5077" d="M47.42,56.148v3.593A1.258,1.258,0,0,0,48.682,61h5.168a1.254,1.254,0,0,0,1.257-1.257V56.148C52.438,55.41,50.653,57.181,47.42,56.148Z" transform="translate(-47.42 -55.962)" fill="#de5c5d"/>
</g>
<g id="Group_8413" data-name="Group 8413" transform="translate(25.844 20.986)" opacity="0.1">
<path id="Path_5079" data-name="Path 5079" d="M52.82,43.47h2.645v.565H52.82Z" transform="translate(-52.82 -43.47)" fill="#070707"/>
</g>
<g id="Group_8414" data-name="Group 8414" transform="translate(24.714 19.121)">
<path id="Path_5080" data-name="Path 5080" d="M55.306,39.947V40.9a.469.469,0,0,1-.467.467H50.867A.469.469,0,0,1,50.4,40.9v-.953a.469.469,0,0,1,.467-.467h3.971A.466.466,0,0,1,55.306,39.947Z" transform="translate(-50.4 -39.48)" fill="#2e303a"/>
</g>
<g id="Group_8415" data-name="Group 8415" transform="translate(24.709 19.121)" opacity="0.1">
<path id="Path_5081" data-name="Path 5081" d="M55.3,39.947V40.9a.469.469,0,0,1-.467.467H50.857a.469.469,0,0,1-.467-.467V40.84h3.915a.469.469,0,0,0,.467-.467V39.48h.061A.469.469,0,0,1,55.3,39.947Z" transform="translate(-50.39 -39.48)" fill="#070707"/>
</g>
<g id="Group_8416" data-name="Group 8416" transform="translate(23.326 24.906)">
<path id="Path_5082" data-name="Path 5082" d="M50.659,52.4v3.63a.544.544,0,0,1-.547.547H47.43V51.86h2.682a.538.538,0,0,1,.547.542Z" transform="translate(-47.43 -51.86)" fill="#259bd6"/>
</g>
<g id="Group_8420" data-name="Group 8420" transform="translate(25.624 1.267)">
<g id="Group_8419" data-name="Group 8419" transform="translate(0 0)">
<g id="Group_8418" data-name="Group 8418">
<path id="Path_5084" data-name="Path 5084" d="M58.17,7.558a.479.479,0,0,1-.332-.135L52.484,2.063a.466.466,0,1,1,.659-.659L58.5,6.759a.465.465,0,0,1,0,.659A.446.446,0,0,1,58.17,7.558Z" transform="translate(-52.347 -1.267)" fill="#2e303a"/>
</g>
</g>
</g>
<g id="Group_8422" data-name="Group 8422" transform="translate(22.429 7.656)" opacity="0.1">
<path id="Path_5086" data-name="Path 5086" d="M48.608,17.374l-.663.659L45.51,15.6l.663-.659Z" transform="translate(-45.51 -14.94)" fill="#070707"/>
</g>
<g id="Group_8424" data-name="Group 8424" transform="translate(19.545 5.426)">
<g id="Group_8423" data-name="Group 8423">
<path id="Path_5087" data-name="Path 5087" d="M47.076,18.378a.479.479,0,0,1-.332-.135l-7.27-7.279a.466.466,0,0,1,.659-.659l7.275,7.275a.465.465,0,0,1,0,.659A.456.456,0,0,1,47.076,18.378Z" transform="translate(-39.337 -10.167)" fill="#2e303a"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

@ -0,0 +1,20 @@
<svg id="car_2_" data-name="car (2)" xmlns="http://www.w3.org/2000/svg" width="36.25" height="26.585" viewBox="0 0 36.25 26.585">
<g id="Group_8169" data-name="Group 8169" transform="translate(0 6.37)">
<path id="Path_4845" data-name="Path 4845" d="M325.672,265.192l2.665-.016a.92.92,0,0,1,.925.914l.032,5.291a.92.92,0,0,1-.914.925l-2.665.016a.92.92,0,0,1-.925-.914l-.032-5.291A.92.92,0,0,1,325.672,265.192Z" transform="translate(-295.231 -252.268)" fill="#2f4859"/>
<path id="Path_4846" data-name="Path 4846" d="M27.439,266.967l2.665-.016a.92.92,0,0,1,.925.914l.031,5.291a.92.92,0,0,1-.914.925l-2.665.016a.92.92,0,0,1-.925-.914l-.032-5.291A.92.92,0,0,1,27.439,266.967Z" transform="translate(-24.113 -253.882)" fill="#2f4859"/>
<path id="Path_4847" data-name="Path 4847" d="M351.094,123.245a.43.43,0,0,0-.389.433.87.87,0,0,1-.651.952l-.663,0,.34.993s4.268-.026,4.14-1.427C353.772,123.111,351.919,123.166,351.094,123.245Z" transform="translate(-317.624 -123.208)" fill="#2f4859"/>
<path id="Path_4848" data-name="Path 4848" d="M2.78,123.245a.43.43,0,0,1,.39.433.869.869,0,0,0,.651.952l.663,0-.34.993S-.125,125.6,0,124.2c.1-1.088,1.951-1.034,2.777-.954Z" transform="translate(0 -123.208)" fill="#2f4859"/>
</g>
<path id="Path_4849" data-name="Path 4849" d="M44.372,67.882a7.343,7.343,0,0,0-.884-2.973l-1.8-3.3s-3.194-7.2-4.525-7.773c-1.287-.554-9.5-.679-10.044-.686h-.03c-.544.014-8.755.237-10.035.806-1.324.589-4.434,7.825-4.434,7.825L10.863,65.1a7.35,7.35,0,0,0-.849,2.983,21.5,21.5,0,0,0,.735,6.839,2.4,2.4,0,0,0,2.335,1.763l14.145-.082h.03L41.4,76.523a2.4,2.4,0,0,0,2.313-1.791,21.477,21.477,0,0,0,.654-6.849Z" transform="translate(-9.076 -53.151)" fill="#de5c5d"/>
<path id="Path_4850" data-name="Path 4850" d="M119.245,261.412l13.784-.082a.447.447,0,0,1,.449.444l.014,2.347a.447.447,0,0,1-.444.449l-13.784.082a.447.447,0,0,1-.449-.444l-.014-2.347A.447.447,0,0,1,119.245,261.412Z" transform="translate(-108 -242.402)" fill="#3a556a"/>
<path id="Path_4851" data-name="Path 4851" d="M80.067,65.472a.9.9,0,0,0-.8-.524l-9.425-.193h-.03l-9.423.306a.9.9,0,0,0-.792.533l-2.7,6.082L69.853,71.6h.03l12.961-.077Z" transform="translate(-51.721 -63.7)" fill="#2f4859"/>
<path id="Path_4852" data-name="Path 4852" d="M329.158,256.968a1.645,1.645,0,1,0,1.655,1.636h0A1.645,1.645,0,0,0,329.158,256.968Z" transform="translate(-297.744 -238.437)" fill="#ebf0f3"/>
<path id="Path_4853" data-name="Path 4853" d="M38.622,258.7a1.645,1.645,0,1,0,1.655,1.635A1.645,1.645,0,0,0,38.622,258.7Z" transform="translate(-33.624 -240.015)" fill="#ebf0f3"/>
<path id="Path_4854" data-name="Path 4854" d="M131.61,216.343h12v1.5h-12Z" transform="translate(-119.644 -201.506)" fill="#3a556a"/>
<path id="Path_4855" data-name="Path 4855" d="M292.439,184.776a.638.638,0,0,0-.787-.548l-5.487,1.342a.639.639,0,0,0-.394.29l-1.087,1.8a.638.638,0,0,0,.546.967h5.361a.642.642,0,0,0,.353-.1A3.664,3.664,0,0,0,292.439,184.776Z" transform="translate(-258.716 -172.294)" fill="#e1e6e9"/>
<path id="Path_4856" data-name="Path 4856" d="M330.774,196.033a1.2,1.2,0,1,0,1.25,1.152A1.2,1.2,0,0,0,330.774,196.033Z" transform="translate(-299.652 -183.041)" fill="#bdbec1"/>
<path id="Path_4857" data-name="Path 4857" d="M305.515,208.653a.914.914,0,1,0,.95.877h0A.914.914,0,0,0,305.515,208.653Z" transform="translate(-276.94 -194.515)" fill="#bdbec1"/>
<path id="Path_4858" data-name="Path 4858" d="M27.445,184.776a.638.638,0,0,1,.787-.548l5.487,1.342a.639.639,0,0,1,.394.29l1.087,1.8a.638.638,0,0,1-.546.967H29.294a.642.642,0,0,1-.353-.1A3.664,3.664,0,0,1,27.445,184.776Z" transform="translate(-24.918 -172.294)" fill="#e1e6e9"/>
<path id="Path_4859" data-name="Path 4859" d="M43.888,196.033a1.2,1.2,0,1,1-1.25,1.152A1.2,1.2,0,0,1,43.888,196.033Z" transform="translate(-38.76 -183.041)" fill="#bdbec1"/>
<path id="Path_4860" data-name="Path 4860" d="M74.9,208.653a.914.914,0,1,1-.95.877h0A.914.914,0,0,1,74.9,208.653Z" transform="translate(-67.228 -194.515)" fill="#bdbec1"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

@ -0,0 +1,15 @@
<svg id="calculator_1_" data-name="calculator (1)" xmlns="http://www.w3.org/2000/svg" width="33.121" height="33.121" viewBox="0 0 33.121 33.121">
<path id="Path_5098" data-name="Path 5098" d="M28.528,0H2.911A2.914,2.914,0,0,0,0,2.911V28.528a2.914,2.914,0,0,0,2.911,2.911H22.059a.97.97,0,0,0,.686-.284l8.41-8.41a.97.97,0,0,0,.284-.686V2.911A2.914,2.914,0,0,0,28.528,0Z" fill="#696969"/>
<path id="Path_5099" data-name="Path 5099" d="M15.72,0H2.911A2.914,2.914,0,0,0,0,2.911V15.72H15.72Z" fill="#4d4e55"/>
<path id="Path_5100" data-name="Path 5100" d="M258.72,15.72V2.911A2.914,2.914,0,0,0,255.809,0H243V15.72Z" transform="translate(-227.28)" fill="#2e303a"/>
<path id="Path_5101" data-name="Path 5101" d="M243,243v15.72h6.34a.97.97,0,0,0,.686-.284l8.41-8.41a.97.97,0,0,0,.284-.686V243Zm14.749,6.34h0Z" transform="translate(-227.28 -227.28)" fill="#414141"/>
<path id="Path_5102" data-name="Path 5102" d="M0,243v12.809a2.914,2.914,0,0,0,2.911,2.911H15.72V243Z" transform="translate(0 -227.28)" fill="#2e303a"/>
<path id="Path_5103" data-name="Path 5103" d="M77,73.764H75.7V72.47a.97.97,0,0,0-1.941,0v1.294H72.47a.97.97,0,0,0,0,1.941h1.294V77A.97.97,0,0,0,75.7,77V75.7H77a.97.97,0,0,0,0-1.941Z" transform="translate(-66.875 -66.875)" fill="#fff"/>
<path id="Path_5104" data-name="Path 5104" d="M320,108.441H315.47a.97.97,0,1,1,0-1.941H320a.97.97,0,0,1,0,1.941Z" transform="translate(-294.155 -99.611)" fill="#fff"/>
<path id="Path_5105" data-name="Path 5105" d="M85.459,327.087l.931-.931a.97.97,0,1,0-1.372-1.372l-.931.931-.931-.931a.97.97,0,1,0-1.372,1.372l.931.931-.931.931a.97.97,0,1,0,1.372,1.372l.931-.931.931.931a.97.97,0,0,0,1.372-1.372Z" transform="translate(-76.227 -303.508)" fill="#fff"/>
<path id="Path_5106" data-name="Path 5106" d="M212.027,222.054a10.027,10.027,0,1,1,10.027-10.027A10.038,10.038,0,0,1,212.027,222.054Z" transform="translate(-188.933 -188.933)" fill="#de5c5d"/>
<g id="Group_8431" data-name="Group 8431" transform="translate(19.86 20.183)">
<path id="Path_5107" data-name="Path 5107" d="M312.5,373.941H307.97a.97.97,0,0,1,0-1.941H312.5a.97.97,0,1,1,0,1.941Z" transform="translate(-307 -368.119)" fill="#fff"/>
<path id="Path_5108" data-name="Path 5108" d="M312.5,313.941H307.97a.97.97,0,0,1,0-1.941H312.5a.97.97,0,1,1,0,1.941Z" transform="translate(-307 -312)" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="30.758" height="32.546" viewBox="0 0 30.758 32.546">
<g id="swap" transform="translate(-14.063 0.001)">
<g id="Group_8434" data-name="Group 8434" transform="translate(14.063 -0.001)">
<g id="Group_8433" data-name="Group 8433" transform="translate(0 0)">
<path id="Path_5141" data-name="Path 5141" d="M41.166,5.582H20.456l3.337-3.337A1.316,1.316,0,0,0,21.932.384L14.448,7.868a1.316,1.316,0,0,0,0,1.861l7.483,7.483a1.316,1.316,0,0,0,1.861-1.861l-3.337-3.337H41.166a3.216,3.216,0,0,0,0-6.432Z" transform="translate(-14.063 0.001)" fill="#2e303a"/>
</g>
</g>
<g id="Group_8436" data-name="Group 8436" transform="translate(14.502 14.947)">
<g id="Group_8435" data-name="Group 8435">
<path id="Path_5142" data-name="Path 5142" d="M50.9,243.024l-7.483-7.483a1.316,1.316,0,0,0-1.861,1.861l3.337,3.337H24.18a3.216,3.216,0,0,0,0,6.432H44.891l-3.337,3.337a1.316,1.316,0,1,0,1.861,1.861l7.483-7.483A1.316,1.316,0,0,0,50.9,243.024Z" transform="translate(-20.964 -235.155)" fill="#de5c5d"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="17.983" height="35.071" viewBox="0 0 17.983 35.071">
<g id="journalism" transform="translate(-0.5 -0.001)">
<path id="Path_5128" data-name="Path 5128" d="M78.014,335.73v9.408a2.666,2.666,0,0,1-2.666,2.666h-3.2a2.666,2.666,0,0,1-2.666-2.666V335.73Zm0,0" transform="translate(-64.255 -312.732)" fill="#2e303a"/>
<path id="Path_5130" data-name="Path 5130" d="M30.909,16.548a26.612,26.612,0,0,1-9.3,0,3.333,3.333,0,0,1-2.706-2.784,34.666,34.666,0,0,1,0-10.569A3.333,3.333,0,0,1,21.614.41a26.625,26.625,0,0,1,9.3,0,3.333,3.333,0,0,1,2.706,2.784,34.683,34.683,0,0,1,0,10.569A3.333,3.333,0,0,1,30.909,16.548Zm0,0" transform="translate(-16.77)" fill="#2e303a"/>
<path id="Path_5131" data-name="Path 5131" d="M25,17.347a26.784,26.784,0,0,1-3.38-.378,3.333,3.333,0,0,1-2.707-2.784,34.684,34.684,0,0,1,0-10.569A3.334,3.334,0,0,1,21.617.831,26.782,26.782,0,0,1,25,.453,3.519,3.519,0,0,0,22.42,3.328a36.564,36.564,0,0,0,0,11.144A3.519,3.519,0,0,0,25,17.347Zm0,0" transform="translate(-16.772 -0.421)" fill="#20303f"/>
<path id="Path_5132" data-name="Path 5132" d="M18.483,230.207V234.1a2.636,2.636,0,0,1-2.636,2.637H3.136A2.637,2.637,0,0,1,.5,234.1v-3.889a2.637,2.637,0,0,1,2.636-2.637H15.847A2.636,2.636,0,0,1,18.483,230.207Zm0,0" transform="translate(0 -211.981)" fill="#da4a54"/>
<g id="Group_8432" data-name="Group 8432" transform="translate(2.426 17.774)">
<path id="Path_5134" data-name="Path 5134" d="M31.248,259.727c-.26,0-.435.127-.435.317v2.4l-1.175-2.292c-.145-.278-.282-.429-.59-.429-.264,0-.435.127-.435.323v4.1c0,.212.219.323.435.323.256,0,.435-.133.435-.323v-2.413l1.28,2.437h0a.539.539,0,0,0,.484.3c.256,0,.435-.133.435-.323v-4.1C31.683,259.851,31.512,259.727,31.248,259.727Zm0,0" transform="translate(-28.613 -259.708)" fill="#e6e6e6"/>
<path id="Path_5135" data-name="Path 5135" d="M89.381,260.522c.187,0,.323-.17.323-.4a.352.352,0,0,0-.323-.391H87.175a.361.361,0,0,0-.4.323v4.1a.361.361,0,0,0,.4.323h2.206a.352.352,0,0,0,.323-.391c0-.234-.136-.4-.323-.4H87.647v-1.212h.848a.37.37,0,0,0,0-.733h-.848v-1.206Zm0,0" transform="translate(-82.793 -259.708)" fill="#e6e6e6"/>
<path id="Path_5136" data-name="Path 5136" d="M139.343,259.8a.318.318,0,0,0-.333.215l-.271,2.925-.405-1.612a.477.477,0,0,0-.863,0l-.406,1.615-.268-2.907,0-.018a.318.318,0,0,0-.333-.215c-.243,0-.515.153-.515.373a.3.3,0,0,0,.008.082l.413,3.906a.407.407,0,0,0,.24.33,1.1,1.1,0,0,0,.409.083.5.5,0,0,0,.519-.3l.367-1.461.367,1.461a.5.5,0,0,0,.519.3,1.09,1.09,0,0,0,.408-.083.408.408,0,0,0,.241-.33l.413-3.905a.3.3,0,0,0,.008-.082C139.858,259.958,139.586,259.8,139.343,259.8Zm0,0" transform="translate(-128.593 -259.781)" fill="#e6e6e6"/>
<path id="Path_5137" data-name="Path 5137" d="M198.574,261.3c-.448-.181-.722-.307-.722-.612,0-.378.363-.458.668-.458a1.181,1.181,0,0,1,.611.154.538.538,0,0,0,.245.081c.247,0,.379-.267.379-.459,0-.436-.776-.553-1.234-.553-.743,0-1.538.34-1.538,1.3,0,.871.63,1.137,1.186,1.371.444.187.828.349.828.785,0,.5-.472.55-.674.55a1,1,0,0,1-.745-.315.488.488,0,0,0-.314-.174.461.461,0,0,0-.391.459c0,.4.631.838,1.476.838a1.368,1.368,0,0,0,1.519-1.426C199.866,261.825,199.15,261.536,198.574,261.3Zm0,0" transform="translate(-185.346 -259.457)" fill="#e6e6e6"/>
</g>
<path id="Path_5138" data-name="Path 5138" d="M189.03,29.156a.532.532,0,1,1,.522-.428A.536.536,0,0,1,189.03,29.156Zm0,0" transform="translate(-175.121 -26.17)" fill="#20303f"/>
<path id="Path_5139" data-name="Path 5139" d="M205.285,50.391a.532.532,0,1,1,.523-.434A.537.537,0,0,1,205.285,50.391Zm0,0" transform="translate(-190.267 -45.948)" fill="#20303f"/>
<path id="Path_5140" data-name="Path 5140" d="M178.957,54.437a.532.532,0,1,1,.521-.428A.536.536,0,0,1,178.957,54.437Zm0,0" transform="translate(-165.742 -49.717)" fill="#20303f"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.98" height="26.475" viewBox="0 0 29.98 26.475">
<g id="Group_8437" data-name="Group 8437" transform="translate(-1 -1)">
<path id="Path_5143" data-name="Path 5143" d="M30.98,2.2V14.562a3.007,3.007,0,0,0-1.363-.325H14.955l-1.976-3.49a2.785,2.785,0,0,0-2.439-1.324H9.176V2.2A1.291,1.291,0,0,1,10.539,1H29.618A1.291,1.291,0,0,1,30.98,2.2Zm-6.814,3.61H21.441V3.407H18.716V5.814H15.99V8.22h2.725v2.407h2.725V8.22h2.725Z" fill="#de5c5d"/>
<path id="Path_5144" data-name="Path 5144" d="M30.98,16.644v7.22a3.872,3.872,0,0,1-4.088,3.61H5.088A3.872,3.872,0,0,1,1,23.864V11.831a1.291,1.291,0,0,1,1.363-1.2V8.22A3.872,3.872,0,0,1,6.451,4.61H7.814V7.017H6.451a1.291,1.291,0,0,0-1.363,1.2v2.407h5.451a1.393,1.393,0,0,1,1.226.662l.136.241,2.208,3.911H29.618A1.291,1.291,0,0,1,30.98,16.644Z" fill="#2e303a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 866 B

@ -0,0 +1,47 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32.001" viewBox="0 0 32 32.001">
<g id="family" transform="translate(-0.004 0)">
<path id="Path_5017" data-name="Path 5017" d="M270.514,15.439h-2.821a.779.779,0,0,1-.776-.776l-.388-6.579s-.628-5.45,2.63-6.166c0,0,1.325-2.578,5.568-1.752a1.646,1.646,0,0,1,.17.05,6.451,6.451,0,0,1,2.642,1.591,6.823,6.823,0,0,1,1.9,5.354c0,1.887.03-.21-.388,7.5a.779.779,0,0,1-.776.776h-3" transform="translate(-249.821 -0.002)" fill="#2e303a"/>
<path id="Path_5018" data-name="Path 5018" d="M271,15.523V14.6a4.883,4.883,0,0,1-2.923-4.228c0-.012,0-.05,0-.057,0-.064,0-.128,0-.193,0-2.9,0-2.729,0-2.776-.029-1.55.211-4.8,2.677-5.345a4.1,4.1,0,0,1,3.2-1.87c-1.819-.2-3.953.341-4.795,1.87-2.2.483-2.728,3.161-2.676,5.4q0,.047,0,.091c.013.415.043.676.043.676l.388,6.579a.779.779,0,0,0,.776.776Z" transform="translate(-249.818 -0.086)" fill="#2e303a"/>
<path id="Path_5019" data-name="Path 5019" d="M14.271,244.618l.835-7.458c.293-2.252.173-3.117.9-4a3.34,3.34,0,0,0-.756-.656l-.023-.006a11.465,11.465,0,0,0-2.908-.892h0l-1.493-.715h0v-1.784a4.9,4.9,0,0,1-3.894.01h0L6.924,230.9h0l-1.487.707h0a11.469,11.469,0,0,0-2.908.892l-.023.006a2.084,2.084,0,0,0-.205.144,3.212,3.212,0,0,0-1.24,2.632l-.447,3.993h0c-.629,5.715-.61,5.255-.61,5.7a1.727,1.727,0,0,0,1.787,1.82h0c.125,0,14.106,0,14.213,0A1.777,1.777,0,0,1,14.271,244.618Z" transform="translate(-0.001 -214.788)" fill="#dd9a5e"/>
<path id="Path_5022" data-name="Path 5022" d="M245.8,247.531c-1.137-10.068-1.073-9.784-1.175-10.276a2.793,2.793,0,0,0-1.315-1.837l-.023-.006a3.971,3.971,0,0,0-.942-.4l-3.278-.816a.422.422,0,0,1-.18-.388v-1.581a4.893,4.893,0,0,1-3.894-.008V233.8a.422.422,0,0,1-.18.388c-2.773.739-3.39.722-4.22,1.219l-.023.006a2.859,2.859,0,0,0-1.394,2.322l-1.1,9.792a1.776,1.776,0,0,0,1.775,2.171h14.172a1.727,1.727,0,0,0,1.787-1.82v0A3.432,3.432,0,0,0,245.8,247.531Z" transform="translate(-213.813 -217.701)" fill="#eab883"/>
<path id="Path_5023" data-name="Path 5023" d="M229.68,287.478v0a3.4,3.4,0,0,1,.012-.349l1.1-10.371a2.872,2.872,0,0,1,1.367-2.3,5.249,5.249,0,0,0-1.559.556l-.023.006a2.859,2.859,0,0,0-1.394,2.322l-1.1,9.792a1.776,1.776,0,0,0,1.775,2.171h1.61A1.727,1.727,0,0,1,229.68,287.478Z" transform="translate(-213.813 -257.297)" fill="#d8a373"/>
<path id="Path_5024" data-name="Path 5024" d="M254.353,242.184c-.517-4.587-.494-4.534-.576-4.931a2.8,2.8,0,0,0-1.315-1.837l-.023-.006a3.97,3.97,0,0,0-.942-.4l-3.278-.816a.422.422,0,0,1-.18-.388v-1.581h0v-.008a4.852,4.852,0,0,1-3.894,0v.008h0V233.8a.422.422,0,0,1-.18.388c-2.773.739-3.39.721-4.22,1.219l-.023.006a2.873,2.873,0,0,0-1.394,2.322l-.5,4.446,3.136.329a.316.316,0,0,1,.282.33L240.9,249.7h10.4l-.361-6.831a.343.343,0,0,1,.307-.359Z" transform="translate(-222.96 -217.7)" fill="#de5c5d"/>
<path id="Path_5025" data-name="Path 5025" d="M237.827,281.78l1.559.164.548-5.189a2.871,2.871,0,0,1,1.367-2.3,5.32,5.32,0,0,0-1.559.557l-.023.006a2.793,2.793,0,0,0-1.315,1.837C238.3,277.338,238.322,277.444,237.827,281.78Z" transform="translate(-222.959 -257.296)" fill="#a82626"/>
<path id="Path_5026" data-name="Path 5026" d="M24.39,259.258l-.023-.006a11.414,11.414,0,0,0-2.9-.89v0l-1.493-.715-.011.016v-.006l-1.947,1.833-1.942-1.837-1.487.707h0a11.47,11.47,0,0,0-2.908.892l-.023.006a2.86,2.86,0,0,0-1.394,2.322l-.5,4.447,3.076.323a.367.367,0,0,1,.328.384l-.342,6.809h10.4l-.361-6.831a.344.344,0,0,1,.307-.36l.822-.086c.6-5,.427-5.451,1.157-6.344A4.427,4.427,0,0,0,24.39,259.258Z" transform="translate(-9.154 -241.541)" fill="#2e303a"/>
<path id="Path_5028" data-name="Path 5028" d="M321.57,231.621l-1.313-.327a.422.422,0,0,1-.18-.388v-1.774h0v-.008a4.854,4.854,0,0,1-3.894,0v.008h0v1.774a.422.422,0,0,1-.18.388l-1.333.332A3.954,3.954,0,0,0,321.57,231.621Z" transform="translate(-294.999 -214.803)" fill="#eab883"/>
<path id="SVGCleanerId_0" d="M44.139,7.782V6.1A6.114,6.114,0,0,1,53.731,1.1c3.143,2.194,2.544,5.422,2.614,6.686" transform="translate(-41.377 0)" fill="#4c4846"/>
<g id="Group_8382" data-name="Group 8382" transform="translate(2.762 0)">
<path id="SVGCleanerId_0_1_" d="M44.139,7.782V6.1A6.114,6.114,0,0,1,53.731,1.1c3.143,2.194,2.544,5.422,2.614,6.686" transform="translate(-44.139 0)" fill="#2e303a"/>
</g>
<path id="Path_5029" data-name="Path 5029" d="M50.85.035a6.108,6.108,0,0,0-6.711,6.072V7.786h1.217V6.108A6.1,6.1,0,0,1,50.85.035Z" transform="translate(-41.377 -0.004)" fill="#3f3b39"/>
<g id="Group_8383" data-name="Group 8383" transform="translate(2.458 7.054)">
<path id="Path_5030" data-name="Path 5030" d="M221.477,114.131a1.414,1.414,0,0,1-1.521,1.273v-2.547A1.414,1.414,0,0,1,221.477,114.131Z" transform="translate(-208.663 -112.858)" fill="#dd9a5e"/>
<path id="Path_5031" data-name="Path 5031" d="M39.279,114.131A1.414,1.414,0,0,0,40.8,115.4v-2.547A1.414,1.414,0,0,0,39.279,114.131Z" transform="translate(-39.279 -112.858)" fill="#dd9a5e"/>
</g>
<g id="Group_8384" data-name="Group 8384" transform="translate(2.457 7.755)">
<path id="Path_5032" data-name="Path 5032" d="M219.956,124.776v1.145a1.414,1.414,0,0,0,1.521-1.273,1.1,1.1,0,0,0-.162-.572A1.573,1.573,0,0,1,219.956,124.776Z" transform="translate(-208.662 -124.075)" fill="#d38d54"/>
<path id="Path_5033" data-name="Path 5033" d="M39.426,124.075c-.5.838.219,1.846,1.358,1.846v-1.145A1.573,1.573,0,0,1,39.426,124.075Z" transform="translate(-39.263 -124.075)" fill="#d38d54"/>
</g>
<path id="Path_5034" data-name="Path 5034" d="M72.2,74a.7.7,0,0,0-.807-.7l-.255.038a18.857,18.857,0,0,1-5.651-.038.7.7,0,0,0-.807.7,1.989,1.989,0,0,1-.787,1.6,1.47,1.47,0,0,1-.339.191c0,3.163-.038,3.374.132,4.091a4.888,4.888,0,0,0,9.3.668c.467-1.18.341-2.076.341-4.758A1.908,1.908,0,0,1,72.2,74Z" transform="translate(-59.577 -68.714)" fill="#edae6b"/>
<path id="Path_5036" data-name="Path 5036" d="M135.023,283.8V279.84l-.483.455-.483-.457V283.8a.483.483,0,1,0,.966,0Z" transform="translate(-125.675 -262.347)" fill="#575a69"/>
<path id="Path_5037" data-name="Path 5037" d="M143.742,257.645l-1.958,1.844,1.057,1.065a.476.476,0,0,0,.713-.042l1.681-2.152Z" transform="translate(-132.919 -241.541)" fill="#dadada"/>
<g id="Group_8385" data-name="Group 8385" transform="translate(8.865 16.104)">
<path id="Path_5039" data-name="Path 5039" d="M161,305.775a.477.477,0,0,0,.279.034Z" transform="translate(-159.799 -302.767)" fill="#ceccca"/>
</g>
<path id="Path_5040" data-name="Path 5040" d="M88.07,257.763l1.942,1.837-1.057,1.065a.476.476,0,0,1-.713-.042L86.56,258.47Z" transform="translate(-81.147 -241.652)" fill="#dadada"/>
<path id="Path_5043" data-name="Path 5043" d="M301.281,89.531a.515.515,0,0,1,.492.514v.369h0a6.576,6.576,0,0,1-.207,2.128,4.887,4.887,0,0,1-9.558-1.164c0-.018,0,.005,0-.057s0-.128,0-.193V88.651h0V88.4a.607.607,0,0,1,.484-.593,3.911,3.911,0,0,0,2.037-1.171.445.445,0,0,1,.668.022A8.249,8.249,0,0,0,301.281,89.531Z" transform="translate(-273.747 -81.092)" fill="#f7cf9c"/>
<path id="Path_5049" data-name="Path 5049" d="M195.393,253.09a4.263,4.263,0,0,0-6.963.407,5.5,5.5,0,0,0-.635,3.183h8.519A5.031,5.031,0,0,0,195.393,253.09Z" transform="translate(-176.051 -235.759)" fill="#2e303a"/>
<path id="Path_5050" data-name="Path 5050" d="M188.95,254.745c.019-.081.064-.24.066-.247a4.261,4.261,0,0,1,3.558-2.994,4.259,4.259,0,0,0-4.145,1.988,5.5,5.5,0,0,0-.635,3.183h1.041A7.649,7.649,0,0,1,188.95,254.745Z" transform="translate(-176.051 -235.754)" fill="#2e303a"/>
<path id="Path_5051" data-name="Path 5051" d="M313.3,357.808a5.812,5.812,0,0,0-1.229-2.264,1.553,1.553,0,0,1-.846.414,3.289,3.289,0,0,1,.452,2.309.367.367,0,0,0,.44.382l.789-.164A.527.527,0,0,0,313.3,357.808Z" transform="translate(-291.767 -333.322)" fill="#2e303a"/>
<path id="Path_5052" data-name="Path 5052" d="M309.291,325.275a1.37,1.37,0,0,1-1.474,1.235v-2.469A1.37,1.37,0,0,1,309.291,325.275Z" transform="translate(-288.575 -303.788)" fill="#efd0a3"/>
<path id="Path_5053" data-name="Path 5053" d="M167.178,357.808a5.812,5.812,0,0,1,1.229-2.264,1.553,1.553,0,0,0,.846.414,3.289,3.289,0,0,0-.452,2.309.367.367,0,0,1-.44.382l-.789-.164A.528.528,0,0,1,167.178,357.808Z" transform="translate(-156.702 -333.322)" fill="#2e303a"/>
<path id="Path_5054" data-name="Path 5054" d="M180.589,325.275a1.37,1.37,0,0,0,1.474,1.235v-2.469A1.37,1.37,0,0,0,180.589,325.275Z" transform="translate(-169.299 -303.788)" fill="#efd0a3"/>
<path id="Path_5057" data-name="Path 5057" d="M179.139,409.154l-.336-3a1.907,1.907,0,0,0-.924-1.539l-.015,0a12.4,12.4,0,0,0-2.8-.808c-.2-.093-.086-.49-.119-1.5a3.241,3.241,0,0,1-2.581-.006c-.033.985.086,1.411-.12,1.5a12.4,12.4,0,0,0-2.8.808l-.015,0a1.851,1.851,0,0,0-.872,1.218c-.066.317-.048.342-.388,3.323Z" transform="translate(-157.659 -377.152)" fill="#efd0a3"/>
<path id="Path_5058" data-name="Path 5058" d="M168.171,432.966h10.966l-.336-3a1.909,1.909,0,0,0-.924-1.539l-.015,0a10.422,10.422,0,0,0-2.45-.721v.388a1.748,1.748,0,0,1-.181.777c-.019.039-.05.1-.08.144l-.022.035c-.031.047-.064.092-.1.133-.015.019-.036.044-.052.062l-.008.009-.031.035,0,0h0l0,.005-.038.038-.012.013-.05.047-.015.013-.033.028-.005,0-.02.016-.035.027-.022.017-.034.025-.017.012-.006,0-.036.024-.006,0-.017.011-.031.019-.01.006,0,0-.014.008-.061.033-.008,0h0l-.01.005-.041.02-.023.01-.042.018-.026.01-.04.016-.027.01-.042.014-.021.007-.005,0-.012,0-.034.01-.017,0-.006,0-.07.017-.01,0-.031.007-.084.014a1.712,1.712,0,0,1-.172.016h-.166c-.058,0-.115-.008-.172-.016l-.084-.014-.031-.007-.01,0-.07-.017-.006,0-.017,0-.034-.01-.012,0-.005,0-.021-.007-.042-.014-.027-.01-.04-.016-.026-.01-.042-.018-.023-.01-.041-.02-.01-.005h0l-.008,0-.061-.033-.014-.008,0,0-.01-.006-.031-.019-.017-.011-.006,0a1.754,1.754,0,0,1-.728-.965,2.951,2.951,0,0,1-.074-.9l-.372.093a8.433,8.433,0,0,0-2.09.632l-.015,0a1.857,1.857,0,0,0-.872,1.218C168.494,429.959,168.507,430.021,168.171,432.966Z" transform="translate(-157.657 -400.965)" fill="#f9b938"/>
<g id="Group_8389" data-name="Group 8389" transform="translate(10.514 26.988)">
<path id="Path_5060" data-name="Path 5060" d="M198.743,483.558l.045-1.4a.483.483,0,0,0-.965-.031l-.046,1.429Z" transform="translate(-195.927 -478.545)" fill="#eaa224"/>
<path id="Path_5061" data-name="Path 5061" d="M299.044,483.559,299,482.13a.483.483,0,0,0-.965.031l.045,1.4Z" transform="translate(-289.916 -478.546)" fill="#eaa224"/>
</g>
<path id="Path_5063" data-name="Path 5063" d="M207.066,304.947a2.618,2.618,0,0,1-2.818.912.166.166,0,0,0-.2.163h0a10.954,10.954,0,0,0,.138,3.053,3.239,3.239,0,0,0,6.34-.937v-2.116h0a.166.166,0,0,0-.2-.163,2.618,2.618,0,0,1-2.818-.912A.26.26,0,0,0,207.066,304.947Z" transform="translate(-191.285 -285.768)" fill="#fce3bb"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@ -0,0 +1,8 @@
<svg id="user_21_" data-name="user (21)" xmlns="http://www.w3.org/2000/svg" width="110.999" height="110.999" viewBox="0 0 110.999 110.999">
<path id="Path_4696" data-name="Path 4696" d="M272.482,267.883a25.756,25.756,0,0,0,5.549-15.868,26.015,26.015,0,1,0-26.015,26.015,25.756,25.756,0,0,0,15.868-5.549l14.569,14.569a3.252,3.252,0,1,0,4.6-4.6ZM260.818,256.22a3.252,3.252,0,1,1-4.6,4.6l-4.2-4.2-4.2,4.2a3.252,3.252,0,0,1-4.6-4.6l4.2-4.2-4.2-4.2a3.252,3.252,0,0,1,4.6-4.6l4.2,4.2,4.2-4.2a3.252,3.252,0,1,1,4.6,4.6l-4.2,4.2Z" transform="translate(-177.004 -177.004)" fill="#ddd"/>
<circle id="Ellipse_165" data-name="Ellipse 165" cx="3.5" cy="3.5" r="3.5" transform="translate(35.5 19.499)" fill="#ddd"/>
<path id="Path_4697" data-name="Path 4697" d="M197.516,362h0Z" transform="translate(-154.695 -283.52)" fill="#ddd"/>
<path id="Path_4698" data-name="Path 4698" d="M197.516,332h0Z" transform="translate(-154.695 -260.021)" fill="#ddd"/>
<path id="Path_4699" data-name="Path 4699" d="M3.252,111H75.011a3.25,3.25,0,0,0,3.252-3.252v-.329a31.763,31.763,0,0,1-3.252.329,32.393,32.393,0,0,1-23.165-9.756H16.476a3.252,3.252,0,0,1,0-6.5H47.016v0a32.2,32.2,0,0,1-2.865-6.507H16.476a3.252,3.252,0,0,1,0-6.5H42.821c-.454-4.484-.454-2.022,0-6.5H16.476a3.252,3.252,0,1,1,0-6.5H44.152a32.468,32.468,0,0,1,7.694-13.009H26.232a3.25,3.25,0,0,1-3.252-3.252V45.96A13.021,13.021,0,0,1,35.988,32.953H39.24A9.756,9.756,0,1,1,49,23.2a9.767,9.767,0,0,1-9.756,9.756h3.252A13.021,13.021,0,0,1,55.5,45.96v3.252c0,.071-.036.13-.04.2a32.2,32.2,0,0,1,19.552-6.7,31.762,31.762,0,0,1,3.252.329V3.252A3.25,3.25,0,0,0,75.011,0H3.252A3.25,3.25,0,0,0,0,3.252v104.5A3.25,3.25,0,0,0,3.252,111Z" fill="#ddd"/>
<path id="Path_4700" data-name="Path 4700" d="M142.5,182a6.512,6.512,0,0,0-6.5,6.5h19.512a6.512,6.512,0,0,0-6.5-6.5Z" transform="translate(-106.516 -142.543)" fill="#ddd"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1,9 @@
<svg id="parking" xmlns="http://www.w3.org/2000/svg" width="34.324" height="36.274" viewBox="0 0 34.324 36.274">
<path id="Path_5117" data-name="Path 5117" d="M4.851,482H0v2.011H6.239A6.688,6.688,0,0,1,4.851,482Z" transform="translate(0 -449.687)" fill="#2e303a"/>
<path id="Path_5118" data-name="Path 5118" d="M9.924,198.773H0v5.72H13.761Z" transform="translate(0 -185.447)" fill="#2e303a"/>
<path id="Path_5119" data-name="Path 5119" d="M4.278,322.588a6.659,6.659,0,0,1,13.318,0H21.88v-3.9H18.57v-2.011h3.31a2.572,2.572,0,0,0-2.572-2.572H0v8.485Z" transform="translate(0 -293.046)" fill="#2e303a"/>
<circle id="Ellipse_185" data-name="Ellipse 185" cx="4.716" cy="4.716" r="4.716" transform="translate(4.264 29.607) rotate(-45)" fill="#2e303a"/>
<path id="Path_5120" data-name="Path 5120" d="M243.252,260.611v14.842h-8.647a6.689,6.689,0,0,1-1.387,2.011h18.689v-2.011h-6.644V260.611Z" transform="translate(-217.583 -243.14)" fill="#2e303a"/>
<path id="Path_5121" data-name="Path 5121" d="M295.916,15.527V0H280.389V15.527ZM284.805,3.363h4.622a2.962,2.962,0,0,1,0,5.925h-2.611v3.384h-2.011Z" transform="translate(-261.592)" fill="#359846"/>
<path id="Path_5122" data-name="Path 5122" d="M379.827,81.113a.952.952,0,0,0-.951-.951h-2.611v1.9h2.611A.952.952,0,0,0,379.827,81.113Z" transform="translate(-351.04 -74.788)" fill="#359846"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,6 @@
<svg id="location_6_" data-name="location (6)" xmlns="http://www.w3.org/2000/svg" width="32.622" height="32.621" viewBox="0 0 32.622 32.621">
<path id="Path_4938" data-name="Path 4938" d="M34.894,84.289H26.369a51.717,51.717,0,0,1-3.752,5.194,51.716,51.716,0,0,1-3.752-5.194H10.339L6.306,94.864H38.928Z" transform="translate(-6.306 -62.243)" fill="#544f57"/>
<path id="Path_4939" data-name="Path 4939" d="M41.972,6.31a8.682,8.682,0,0,0-8.682,8.682c-.051,8.284,8.682,18.558,8.682,18.558S50.7,23.276,50.654,14.992A8.682,8.682,0,0,0,41.972,6.31Zm0,12.366a3.684,3.684,0,1,1,3.684-3.684A3.684,3.684,0,0,1,41.972,18.676Z" transform="translate(-25.661 -6.31)" fill="#da4a54"/>
<path id="Path_4940" data-name="Path 4940" d="M53.343,86.741l-16.279,5.79L30.72,84.29h5.657a51.665,51.665,0,0,0,3.752,5.193A51.668,51.668,0,0,0,43.88,84.29h8.527Z" transform="translate(-23.818 -62.244)" fill="#544f57"/>
<path id="Path_4941" data-name="Path 4941" d="M29.96,107.152l16.114-5.732,4.411,5.732Z" transform="translate(-23.273 -74.531)" fill="#544f57"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32.381" height="37.391" viewBox="0 0 32.381 37.391">
<g id="affiliate-marketing_1_" data-name="affiliate-marketing (1)" transform="translate(-34.298 0)">
<path id="Path_4982" data-name="Path 4982" d="M63.419,23.145l.415,1.991-2.684-1.55a11.718,11.718,0,0,0,0-9.782l2.684-1.55-.415,1.991,2.145.447,1.115-5.345L61.492,7.641l-.685,2.081,1.932.636-2.687,1.551a11.736,11.736,0,0,0-8.469-4.893v-3.1L53.1,5.272l1.46-1.634L50.489,0,46.417,3.639l1.46,1.634,1.517-1.355v3.1a11.736,11.736,0,0,0-8.469,4.893l-2.687-1.551,1.932-.636-.685-2.081L34.3,9.348l1.115,5.346,2.145-.447-.415-1.991,2.684,1.55a11.718,11.718,0,0,0,0,9.782l-2.684,1.55.415-1.991L35.413,22.7,34.3,28.043l5.187,1.707.685-2.081-1.932-.636,2.687-1.551a11.736,11.736,0,0,0,8.469,4.893v3.1l-1.517-1.355-1.46,1.634,4.072,3.639,4.072-3.639L53.1,32.118l-1.517,1.355v-3.1a11.736,11.736,0,0,0,8.469-4.893l2.687,1.551-1.932.636.685,2.081,5.187-1.707L65.564,22.7Z" fill="#2e303a"/>
<g id="user_24_" data-name="user (24)" transform="translate(42.096 9.104)">
<path id="Path_4983" data-name="Path 4983" d="M10.267,8.536a3.028,3.028,0,0,0,1.792.581,3.125,3.125,0,0,0,3.059-3.059,3.059,3.059,0,1,0-4.85,2.478Z" transform="translate(-3.378 0)" fill="#fff"/>
<path id="Path_4984" data-name="Path 4984" d="M11.372,16.55a3.919,3.919,0,0,1-5.384,0,5.689,5.689,0,0,0-2.989,5,.438.438,0,0,0,.437.437H13.924a.438.438,0,0,0,.437-.437A5.689,5.689,0,0,0,11.372,16.55Z" transform="translate(0 -7.629)" fill="#fff"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.857" height="30.6" viewBox="0 0 21.857 30.6">
<g id="smart-watch" transform="translate(5.168)">
<path id="Path_5109" data-name="Path 5109" d="M43.411,111.639A1.639,1.639,0,0,0,41.772,110h-15.3a1.639,1.639,0,0,0-1.639,1.639v15.3a1.639,1.639,0,0,0,1.639,1.639h15.3a1.639,1.639,0,0,0,1.639-1.639Zm-3.493,8.091-5.41,5.41a.547.547,0,0,1-.773,0l-5.409-5.41a3.825,3.825,0,1,1,5.413-5.406l.383.382.383-.382a3.825,3.825,0,1,1,5.413,5.406Zm0,0" transform="translate(-28.361 -103.989)" fill="#2e303a"/>
<path id="Path_5110" data-name="Path 5110" d="M97.214,188.6a2.7,2.7,0,0,0-1.934.8l-.772.772a.546.546,0,0,1-.773,0l-.771-.77a2.732,2.732,0,0,0-3.865,3.863l5.022,5.022,5.023-5.023a2.732,2.732,0,0,0,0-3.861A2.7,2.7,0,0,0,97.214,188.6Zm0,0" transform="translate(-88.36 -178.291)" fill="#de5c5d"/>
<path id="Path_5111" data-name="Path 5111" d="M385.378,321.639v-1.093a.546.546,0,0,0-.546-.546v2.186A.546.546,0,0,0,385.378,321.639Zm0,0" transform="translate(-368.689 -302.514)" fill="#2e303a"/>
<path id="Path_5112" data-name="Path 5112" d="M385.378,200.546a.546.546,0,0,0-.546-.546v2.186a.546.546,0,0,0,.546-.546Zm0,0" transform="translate(-368.689 -189.071)" fill="#2e303a"/>
<path id="Path_5113" data-name="Path 5113" d="M84.832,470H96.854v4.918H84.832Zm0,0" transform="translate(-85.082 -444.318)" fill="#2e303a"/>
<path id="Path_5114" data-name="Path 5114" d="M-5.168,321.639a.547.547,0,0,0,.546.546V320a.547.547,0,0,0-.546.546Zm0,0" transform="translate(0 -302.514)" fill="#2e303a"/>
<path id="Path_5115" data-name="Path 5115" d="M-5.168,200.546v1.093a.547.547,0,0,0,.546.546V200A.547.547,0,0,0-5.168,200.546Zm0,0" transform="translate(0 -189.071)" fill="#2e303a"/>
<path id="Path_5116" data-name="Path 5116" d="M84.832,0H96.854V4.918H84.832Zm0,0" transform="translate(-85.082)" fill="#2e303a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.115" height="28.971" viewBox="0 0 28.115 28.971">
<g id="to-do-list" transform="translate(-3.965 -3.05)">
<g id="Group_8425" data-name="Group 8425" transform="translate(4.045 3.116)">
<path id="Path_5088" data-name="Path 5088" d="M10.435,3.192V8.153A1.182,1.182,0,0,1,9.251,9.333H4.135a3.716,3.716,0,0,1,1.044-1.9L8.525,4.179a3.689,3.689,0,0,1,1.91-.988Z" transform="translate(-4.135 -3.192)" fill="#2e303a"/>
</g>
<g id="Group_8426" data-name="Group 8426" transform="translate(3.965 3.05)">
<path id="Path_5089" data-name="Path 5089" d="M21.957,21.079l5-7.638V6.766A3.713,3.713,0,0,0,23.244,3.05H11.281V8.077a2.12,2.12,0,0,1-2.12,2.116h-5.2V28.305a3.713,3.713,0,0,0,3.716,3.716H23.244a3.713,3.713,0,0,0,3.716-3.716V24.954a4.105,4.105,0,0,1-1.278,1.02l-2.761,1.413A1.261,1.261,0,0,1,21.1,26.194l.192-3.1a4.155,4.155,0,0,1,.669-2.017Zm2.738-6.145a.469.469,0,0,1-.468.468H15.816a.468.468,0,1,1,0-.936h8.411A.466.466,0,0,1,24.695,14.933ZM12.788,27.1a.867.867,0,0,1-.866.866H8.056a.866.866,0,0,1-.861-.866V23.232a.865.865,0,0,1,.861-.861h3.866a.866.866,0,0,1,.866.861Zm0-9.028a.863.863,0,0,1-.866.861H8.056a.862.862,0,0,1-.861-.861V14.2a.862.862,0,0,1,.861-.861h3.866a.863.863,0,0,1,.866.861ZM13.944,8.54V6.71a.481.481,0,0,1,.482-.482h9.019a.481.481,0,0,1,.482.482V8.54a.481.481,0,0,1-.482.482H14.426a.481.481,0,0,1-.482-.482Zm4.61,18.3H15.816a.468.468,0,1,1,0-.936h2.738a.468.468,0,1,1,0,.936Zm.964-2.41h-3.7a.468.468,0,1,1,0-.936h3.7a.468.468,0,0,1,0,.936Zm-3.7-6.623a.468.468,0,0,1,0-.936h6.216a.468.468,0,1,1,0,.936Z" transform="translate(-3.965 -3.05)" fill="#2e303a"/>
</g>
<g id="Group_8427" data-name="Group 8427" transform="translate(8.575 15.194)">
<path id="Path_5090" data-name="Path 5090" d="M14.383,30.685l-.481-.671a.468.468,0,0,1,.761-.546l.2.286.9-.667a.468.468,0,0,1,.556.753l-1.286.948a.468.468,0,0,1-.658-.1Z" transform="translate(-13.814 -28.996)" fill="#de5c5d"/>
</g>
<g id="Group_8428" data-name="Group 8428" transform="translate(8.639 24.224)">
<path id="Path_5091" data-name="Path 5091" d="M14.52,49.979l-.481-.671a.468.468,0,0,1,.761-.546l.2.285.9-.667a.468.468,0,1,1,.556.753l-1.286.948A.468.468,0,0,1,14.52,49.979Z" transform="translate(-13.951 -48.29)" fill="#de5c5d"/>
</g>
<path id="Path_5092" data-name="Path 5092" d="M52.036,32.2l-3.721,5.682-3.74-2.448,3.73-5.7C48.435,29.815,51.927,32.087,52.036,32.2Z" transform="translate(-21.603 -14.193)" fill="#de5c5d"/>
<path id="Path_5093" data-name="Path 5093" d="M43.033,43.633a3.182,3.182,0,0,0-.277,1.108l-.19,3.1a.318.318,0,0,0,.463.3l2.762-1.412a3.184,3.184,0,0,0,.9-.7Z" transform="translate(-20.534 -21.588)" fill="#de5c5d"/>
<path id="Path_5094" data-name="Path 5094" d="M58.154,26.9,57.4,28.063l-.009-.009-3.73-2.443.749-1.161a2.236,2.236,0,0,1,3.094-.646h0a2.237,2.237,0,0,1,.641,3.094Z" transform="translate(-26.439 -10.85)" fill="#de5c5d"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="37.001" height="26" viewBox="0 0 37.001 26">
<g id="_002---Donor-Card" data-name="002---Donor-Card" transform="translate(0.001)">
<rect id="Rectangle-path" width="37" height="26" rx="5" fill="#2e303a"/>
<path id="Rectangle-path-2" data-name="Rectangle-path" d="M0,26H37v5.537H0Z" transform="translate(-0.001 -10.597)" fill="#ecf0f1"/>
<g id="Group_8371" data-name="Group 8371" transform="translate(2.524 18.296)">
<path id="Shape" d="M4.631,31.524A.631.631,0,0,1,4,30.893V29.631a.631.631,0,1,1,1.262,0v1.262A.631.631,0,0,1,4.631,31.524Z" transform="translate(-4 -30)" fill="#3f5c6c"/>
<path id="Shape-2" data-name="Shape" d="M8.631,31.524A.631.631,0,0,1,8,30.893V29.631a.631.631,0,1,1,1.262,0v1.262A.631.631,0,0,1,8.631,31.524Z" transform="translate(-5.476 -30)" fill="#3f5c6c"/>
<path id="Shape-3" data-name="Shape" d="M12.631,31.524A.631.631,0,0,1,12,30.893V29.631a.631.631,0,1,1,1.262,0v1.262A.631.631,0,0,1,12.631,31.524Z" transform="translate(-6.953 -30)" fill="#3f5c6c"/>
<path id="Shape-4" data-name="Shape" d="M16.631,31.524A.631.631,0,0,1,16,30.893V29.631a.631.631,0,0,1,1.262,0v1.262A.631.631,0,0,1,16.631,31.524Z" transform="translate(-8.429 -30)" fill="#3f5c6c"/>
<path id="Shape-5" data-name="Shape" d="M20.631,31.524A.631.631,0,0,1,20,30.893V29.631a.631.631,0,0,1,1.262,0v1.262A.631.631,0,0,1,20.631,31.524Z" transform="translate(-9.906 -30)" fill="#3f5c6c"/>
<circle id="Oval" cx="1" cy="1" r="1" transform="translate(22.477 -0.295)" fill="#3f5c6c"/>
<circle id="Oval-2" data-name="Oval" cx="1" cy="1" r="1" transform="translate(25.477 -0.295)" fill="#3f5c6c"/>
<circle id="Oval-3" data-name="Oval" cx="1" cy="1" r="1" transform="translate(28.477 -0.295)" fill="#3f5c6c"/>
</g>
<rect id="Rectangle-path-3" data-name="Rectangle-path" width="9" height="10" rx="2" transform="translate(3 3)" fill="#ecf0f1"/>
<circle id="Oval-4" data-name="Oval" cx="1.5" cy="1.5" r="1.5" transform="translate(6 6)" fill="#d9ba64"/>
<path id="Shape-6" data-name="Shape" d="M14.047,18.785H9V17.524a2.524,2.524,0,1,1,5.047,0Z" transform="translate(-4 -5.785)" fill="#de5c5d"/>
<line id="Line_50" data-name="Line 50" y2="9" transform="translate(28.5 3.5)" fill="none" stroke="#de5c5d" stroke-width="2"/>
<line id="Line_51" data-name="Line 51" y2="9" transform="translate(33 8) rotate(90)" fill="none" stroke="#de5c5d" stroke-width="2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.063" height="29.063" viewBox="0 0 29.063 29.063">
<g id="_360-degrees" data-name="360-degrees" transform="translate(0)">
<path id="Path_5123" data-name="Path 5123" d="M95.134,96.812a.854.854,0,0,1-.843-.732.866.866,0,0,1-.008-.12.851.851,0,0,0-1.7,0,2.554,2.554,0,0,0,5.109,0,2.544,2.544,0,0,0-.652-1.7,2.554,2.554,0,1,0-4.408-2.2.851.851,0,0,0,1.671.328.852.852,0,1,1,.835,1.017.851.851,0,0,0,0,1.7.851.851,0,0,1,0,1.7Z" transform="translate(-87.325 -84.891)" fill="#de5c5d"/>
<path id="Path_5124" data-name="Path 5124" d="M205.425,98.513a2.843,2.843,0,0,0,0-5.685c-.052,0-.1,0-.154,0a5.727,5.727,0,0,1,1.145-1.3.851.851,0,0,0-1.019-1.364,7.8,7.8,0,0,0-2.781,5.067,2.843,2.843,0,0,0,2.809,3.279Zm0-3.982a1.14,1.14,0,1,1-1.14,1.14,1.141,1.141,0,0,1,1.14-1.14Z" transform="translate(-191.083 -84.89)" fill="#de5c5d"/>
<path id="Path_5125" data-name="Path 5125" d="M325.484,98.514a2.747,2.747,0,0,0,2.744-2.744V92.744a2.744,2.744,0,1,0-5.488,0V95.77A2.747,2.747,0,0,0,325.484,98.514Zm-1.041-5.77a1.041,1.041,0,1,1,2.082,0V95.77a1.041,1.041,0,1,1-2.082,0Z" transform="translate(-304.42 -84.891)" fill="#de5c5d"/>
<path id="Path_5126" data-name="Path 5126" d="M393.554,5.109A2.554,2.554,0,1,0,391,2.554,2.557,2.557,0,0,0,393.554,5.109Zm0-3.406a.851.851,0,1,1-.851.851A.852.852,0,0,1,393.554,1.7Z" transform="translate(-368.806)" fill="#de5c5d"/>
<path id="Path_5127" data-name="Path 5127" d="M27.895,242.031c-7.369,2.95-19.358,2.95-26.727,0a.851.851,0,0,0-1.168.79v13.623a.851.851,0,0,0,1.168.79c7.369-2.95,19.358-2.95,26.727,0a.851.851,0,0,0,1.168-.79V242.822A.851.851,0,0,0,27.895,242.031Zm-21.332,8.7a.851.851,0,1,1-1.2,1.2l-1.7-1.7a.851.851,0,0,1,0-1.2l1.7-1.7a.851.851,0,1,1,1.2,1.2l-1.1,1.1Zm18.845-.5-1.7,1.7a.851.851,0,1,1-1.2-1.2l1.1-1.1-1.1-1.1a.851.851,0,0,1,1.2-1.2l1.7,1.7A.851.851,0,0,1,25.407,250.236Z" transform="translate(0 -228.235)" fill="#2e303a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -105,13 +105,15 @@ const Map localizedValues = {
'add': {'en': 'Add', 'ar': 'إضافة'},
'reminder': {'en': 'Reminder', 'ar': 'تذكير'},
'location': {'en': 'Locations', 'ar': 'مواقعنا'},
'online': {'en': 'Online', 'ar': 'الالكترونية'},
'online': {'en': 'Online', 'ar': 'الالكتروني'},
'payment': {'en': 'Payment', 'ar': 'الدفع'},
'onlinePayment': {'en': 'Online', 'ar': 'الدفع'},
'onlinePaymentSubtitle': {'en': 'Payment', 'ar': 'الالكتروني'},
'cancel-nocaps': {'en': 'Cancel', 'ar': 'الغاء'},
'set-reminder': {'en': 'Set Reminder', 'ar': 'إضافة تذكير'},
"national-id-number": {"en": "National ID Number", "ar": "رقم الهوية الوطنية / الاقامة"},
"medical-file-number": {"en": "Medical File Number", "ar": "رقم الملف الطبي"},
'login': {'en': 'Login', 'ar': 'تسجيل الدخول'},
'login': {'en': 'Login', 'ar': 'دخول'},
'loginregister': {'en': 'Login / Register', 'ar': 'دخول/ تسجيل'},
'poweredBy': {'en': 'Powered by', 'ar': 'مشغل بواسطة'},
"welcome": {"en": "Welcome", "ar": "مرحبا"},
@ -309,23 +311,24 @@ const Map localizedValues = {
"branch": {"en": "Branch:", "ar": "الفرع"},
"emergencyServices": {"en": "Emergency Services", "ar": "خدمات الطوارئ"},
"nearester": {"en": "Nearest ER", "ar": "أقرب طوارى"},
"locationa": {"en": "location", "ar": "الموقع"},
"locationa": {"en": "Location", "ar": "الموقع"},
"call_now": {"en": "Call now", "ar": "اتصل الان"},
"ambulancerequest": {"en": "Ambulance", "ar": "طلب نقل "},
"requestA": {"en": "Request", "ar": "اسعاف"},
"MyAppointments": {"en": "My", "ar": "مواعيدي"},
"NoBookedAppointments": {"en": "No Booked Appointments", "ar": "لا توجد مواعيد محجوزة"},
"NoConfirmedAppointments": {"en": "No Confirmed Appointments", "ar": "لا توجد مواعيد مؤكدة"},
"noArrivedAppointments": {"en": "No Arrived Appointments", "ar": "لم يتم حضورها"},
"MyAppointmentsList": {"en": "Appointments", "ar": "قائمة بمواعيدي"},
"MyAppointmentsList": {"en": "Appointments", "ar": "بمواعيدي"},
"MyAppointments": {"en": "My", "ar": "قائمة"},
"Radiology": {"en": "Radiology", "ar": "الأشعة"},
"RadiologySubtitle": {"en": "Result", "ar": "صور وتقارير"},
"Lab": {"en": "Lab", "ar": "تحليل المختبر"},
"LabSubtitle": {"en": "Result", "ar": "نتائج"},
"Lab": {"en": "Lab", "ar": "نتائج"},
"LabSubtitle": {"en": "Results", "ar": "تحليل المختبر"},
"Medicines": {"en": "Medicines", "ar": "الوصفات"},
"MedicinesSubtitle": {"en": "Prescriptions", "ar": "الوصفات الطبية"},
"VitalSigns": {"en": "Vital Signs", "ar": "المؤشرات الحيوية"},
"VitalSignsSubTitle": {"en": "Reports", "ar": "قراءات"},
"MyMedical": {"en": "Active", "ar": "قراءات"},
"MedicinesSubtitle": {"en": "Prescriptions", "ar": "الطبية"},
"VitalSigns": {"en": "Vital Signs", "ar": "المؤشرات"},
"VitalSignsSubTitle": {"en": "Reports", "ar": "الحيوية"},
"MyMedical": {"en": "Active", "ar": "الأدوية"},
"MyMedicalSubtitle": {"en": "Medications", "ar": "النشطة"},
"MyDoctor": {"en": "My Doctor", "ar": "اطبائي"},
"MyDoctorSubtitle": {"en": "List", "ar": "قمت بزيارتهم"},
@ -333,26 +336,26 @@ const Map localizedValues = {
"EyeSubtitle": {"en": "Measurement", "ar": "النظر"},
"Insurance": {"en": "Insurance", "ar": "بطاقات"},
"InsuranceSubtitle": {"en": "Card", "ar": "التأمين"},
"UpdateInsurance": {"en": "Update Insurance", "ar": "تحديث التأمين"},
"UpdateInsuranceSubtitle": {"en": "Card", "ar": "التأمين"},
"InsuranceApproval": {"en": "Insurance Approval", "ar": "موافقات"},
"InsuranceApprovalSubtitle": {"en": "Approvals", "ar": "موافقات التأمين"},
"Allergies": {"en": "Allergies", "ar": "الحساسية"},
"AllergiesSubtitle": {"en": "Diagnosed", "ar": "مسجلة"},
"MyVaccines": {"en": "My Vaccines", "ar": "تطعيماتي"},
"MyVaccinesSubtitle": {"en": "List", "ar": "قائمة"},
"UpdateInsurance": {"en": "Update", "ar": "تحديث"},
"UpdateInsuranceSubtitle": {"en": "Insurance", "ar": "التأمين"},
"InsuranceApproval": {"en": "Insurance", "ar": "موافقات"},
"InsuranceApprovalSubtitle": {"en": "Approvals", "ar": "التأمين"},
"Allergies": {"en": "Allergies", "ar": "قائمة"},
"AllergiesSubtitle": {"en": "List", "ar": "الحساسية"},
"MyVaccines": {"en": "My Vaccines", "ar": "قائمة"},
"MyVaccinesSubtitle": {"en": "List", "ar": "تطعيماتي"},
"Medical": {"en": "Medical", "ar": "التقارير"},
"MedicalSubtitle": {"en": "Report", "ar": "الطبية"},
"Monthly": {"en": "Monthly", "ar": "تقارير"},
"Monthly": {"en": "Monthly", "ar": "التقارير"},
"MonthlySubtitle": {"en": "Report", "ar": "الشهرية"},
"Sick": {"en": "Sick", "ar": "الإجازات"},
"SickSubtitle": {"en": "Leaves", "ar": "المرضية"},
"MyBalance": {"en": "My Balance", "ar": "رصيدي"},
"MyBalanceSubtitle": {"en": "Credit", "ar": "المبالغ"},
"MyBalance": {"en": "My Balance", "ar": "رصيد"},
"MyBalanceSubtitle": {"en": "Credit", "ar": "محفظتي"},
"PatientCall": {"en": "Patient Call", "ar": "النداء للموعد"},
"PatientCallSubtitle": {"en": "Service", "ar": "خدمة"},
"SmartWatches": {"en": "Smart Watches", "ar": "الساعات الذكية"},
"SmartWatchesSubtitle": {"en": "Pairing", "ar": "ربط البيانات"},
"SmartWatchesSubtitle": {"en": "Pairing", "ar": "ربط بيانات"},
"MyTrackers": {"en": "My Trackers", "ar": "تتبع قراءاتي"},
"MyTrackersSubtitle": {"en": "Service", "ar": "الطبية"},
"AskYour": {"en": "Ask Your", "ar": "إسال طبيبك"},
@ -395,17 +398,19 @@ const Map localizedValues = {
"MyBalances": {"en": "My Balances", "ar": "رصيدي"},
"BalanceAmount": {"en": "Wallet Amount", "ar": "مبلغ المحفظة"},
"TotalBalance": {"en": "Total Amount", "ar": "المبلغ الإجمالي"},
"CreateAdvancedPayment": {"en": "Recharge Wallet", "ar": "إعادة شحن المحفظة"},
"CreateAdvancedPayment": {"en": "Recharge Wallet", "ar": "شحن المحفظة"},
"AdvancePayment": {"en": "Advance Payment", "ar": "الدفع مقدما"},
"AdvancePaymentLabel": {"en": "You can create and add an Advanced Payment for your account or other accounts.", "ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"},
"FileNumber": {"en": "File Number", "ar": "رقم الملف"},
"Amount": {"en": "Amount *", "ar": "الكمية *"},
"Amount": {"en": "Amount *", "ar": "المبلغ *"},
"DepositorEmail": {"en": "Depositor Email *", "ar": "البريد الإلكتروني للمودع *"},
"Notes": {"en": "Notes", "ar": "ملاحظات"},
"SelectPatientName": {"en": "Select Patient Name", "ar": "اختر اسم المريض"},
"SelectFamilyPatientName": {"en": "Family Members", "ar": "أفراد الأسرة"},
"SelectHospital": {"en": "Select Hospital", "ar": "اختر المستشفى"},
"selectCity": {"en": "Select City", "ar": "اختر المدينة"},
"city": {"en": "City", "ar": "مدينة"},
"distance": {"en": "Distance", "ar": "مسافه"},
"MyAccount": {"en": "My Account", "ar": "حسابي"},
"OtherAccount": {"en": "Other Account", "ar": "حساب آخر"},
"SelectBeneficiary": {"en": "Select Beneficiary", "ar": "حدد المستفيد"},
@ -414,8 +419,9 @@ const Map localizedValues = {
"MobileNumber": {"en": "Mobile Number", "ar": "رقم الجوال"},
"phone-number": {"en": "Phone Number", "ar": "رقم الجوال"},
"country": {"en": "Country", "ar": "دولة"},
"Ok": {"en": "Ok", "ar": "حسنا"},
"Ok": {"en": "Ok", "ar": "موافق"},
"averageWaitingTime": {"en": "Average Waiting Time:", "ar": "متوسط ​​وقت الانتظار:"},
"waitingTime": {"en": "Waiting Time:", "ar": "وقت الانتظار:"},
"WaterConsumedInWeek": {"en": "Water consumed in a week", "ar": "معدل شرب الماء خلال الاسبوع"},
"WaterConsumedInMonth": {"en": "Water consumed in a month", "ar": "معدل شرب الماء خلال الشهر"},
"TheVerificationCodeExpiresIn": {"en": "The Verification Code Expires in", "ar": "تنتهي صلاحية رمز التحقق في"},
@ -508,13 +514,13 @@ const Map localizedValues = {
"review": {"en": " reviews", "ar": "تقييمات"},
"viewMedicalFile": {"en": "View Details", "ar": "عرض الملف الطبي"},
"viewAllServices": {"en": "View All Services", "ar": "عرض جميع الخدمات"},
"medicalFile": {"en": "Medical File", "ar": "ملف طبي"},
"medicalFile": {"en": "Medical File", "ar": "ملفي الطبي"},
"verified": {"en": "Verified", "ar": "تم التحقق"},
"checkup": {"en": "Checkup", "ar": "فحص"},
"hhcHome": {"en": "Home", "ar": "الرعاية"},
"refferal": {"en": "E-Refferal", "ar": "الإحالة الإلكترونية"},
"healthCare": {"en": "Health Care", "ar": "الصحية المزلية"},
"emergency": {"en": "Emergency", "ar": "طارئ"},
"emergency": {"en": "Emergency", "ar": "الطوارئ"},
"cantSeeProfile": {"en": "Cant see your medical File?", "ar": "لا تستطيع رؤية ملفك الطبي؟"},
"loginRegisterNow": {"en": "Login or Register Now", "ar": "تسجيل الدخول أو التسجيل الآن"},
"HMGPharmacy": {"en": "HMG Pharmacy", "ar": "صيدلية HMG"},
@ -627,7 +633,7 @@ const Map localizedValues = {
"توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية الاشعة التطعيمات العلاج الطبيعي) ..."
},
"email": {"en": "Email", "ar": "البريد الالكتروني"},
"Book": {"en": "Book", "ar": "احجز"},
"Book": {"en": "Book", "ar": "حجز"},
"AppointmentLabel": {"en": "Appointment", "ar": "موعد"},
"BloodType": {"en": "Blood Type", "ar": "فصيلة الدم"},
"marital-status": {"en": "Marital status", "ar": "الحالة الإجتماعية"},
@ -751,6 +757,8 @@ const Map localizedValues = {
"permissions": {"en": "Permission", "ar": "الصلاحيات"},
"camera-permission": {"en": "Camera", "ar": "الكاميرا"},
"location-permission": {"en": "Location", "ar": "تحديد المواقع"},
"needPrescription": {"en": "This product requires a prescription", "ar": " هذا المنتج يتطلب وصفة طبية"},
"outOfStockMsg": {"en": "You have added product which is out of stock now, Please remove that!", "ar": "لقد قمت بإضافة المنتج الذي نفذ من المخزون الآن. يرجى إزالة ذلك"},
"accessibility": {"en": "Accessibility Mode", "ar": "وضع امكانية الوصول"},
"orderStatus": {"en": "Order Status", "ar": "حالة الطلب"},
"CancelOrder": {"en": "Cancel Order", "ar": "الغاء الطلب"},
@ -766,7 +774,7 @@ const Map localizedValues = {
"ResendOrder": {"en": "Refill Order & Delivery", "ar": "إعادة طلب و توصيل"},
"Ports": {"en": "Ports", "ar": "المنافذ"},
"Way": {"en": "Way", "ar": "الطريقة"},
"Average": {"en": "Average", "ar": "المعدل"},
"Average": {"en": "Average", "ar": "متوسط"},
"DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"},
"Period": {"en": "Period", "ar": "الفترة"},
"duration": {"en": "Duration", "ar": "المدة"},
@ -839,8 +847,8 @@ const Map localizedValues = {
"report": {"en": "Radiology Report", "ar": "تقرير الاشعة"},
"open-rad": {"en": "Open Image", "ar": "فتح صور الاشعة"},
"send-copy": {"en": "Email the Report", "ar": "أرسل التقرير"},
"appoSurvey": {"en": "Survey", "ar": "إستبيان"},
"appoSurveySubtitle": {"en": "Survey", "ar": "إستبيان"},
"appoSurvey": {"en": "Survey", "ar": "الاستبيان"},
"appoSurveySubtitle": {"en": "Survey", "ar": "الاستبيان"},
"labResults": {"en": "Lab Results", "ar": "نتيجة المختبر"},
"doctorRating": {"en": "Doctor Rating", "ar": "تقييم الطبيب"},
"good": {"en": "Good", "ar": "جيد"},
@ -1034,6 +1042,7 @@ const Map localizedValues = {
"quantitySize": {"en": "Quantity", "ar": "كميه"},
"addToCart": {"en": "Add to Cart", "ar": "إضف للسلة"},
"addToWishlist": {"en": "Add to Wishlist", "ar": "اضف للمفضلة"},
"removeFromWishlist": {"en": "Remove From Wishlist", "ar": "احذف للمفضلة"},
"noData": {"en": "There is no data", "ar": "لايوجد بيانات"},
"no_data": {"en": "No data", "ar": "لايوجد بيانات"},
"buyNow": {"en": "buy now", "ar": "إشتري الان"},
@ -1086,11 +1095,11 @@ const Map localizedValues = {
"updated-email": {"en": "Updated email successfully", "ar": "تم تحديث البريد الالكتروني"},
"view-list-children": {"en": "View List of Children", "ar": "عرض قائمة الأطفال"},
"covidTest": {"en": "COVID-19 TEST", "ar": "فحص كورونا"},
"driveThru": {"en": "Drive-Thru", "ar": "من السيارة"},
"driveThru": {"en": "Drive-Thru", "ar": "من داخل السيارة"},
"trackDeliveryDriver": {"en": "Track Delivery Driver", "ar": "تتبع السائق"},
"NearestErDesc": {
"en": "\nThis service Displays nearest branch\n among all the branches of All Habib \n medical Group based on your current Location",
"ar": "\nتعرض هذه الخدمة أقرب فرع\n من بين جميع فروع مجموعة \nالحبيب الطبية بناءً على موقعك الحالي."
"en": "This service Displays nearest branch among all the branches of All Habib medical Group based on your current Location",
"ar": "تعرض هذه الخدمة أقرب فرع من بين جميع فروع مجموعة الحبيب الطبية بناءً على موقعك الحالي."
},
"NearestEr": {"en": "Nearest ER", "ar": "اقرب طوارئ"},
"infoCMC": {
@ -1111,7 +1120,7 @@ const Map localizedValues = {
"childName": {"en": "'CHILD NAME'", "ar": "إسم الطفل"},
"recordDeleted": {"en": "'Record Deleted'", "ar": "تم حذف السجل"},
"msg_email_address_up_to_date": {
"en": " Please ensure that the email address is up-to-date and proceed to view the schedule.",
"en": "Please ensure that the email address is up-to-date and proceed to view the schedule.",
"ar": " يرجى التأكد من تحديث عنوان البريد الإلكتروني والمتابعة لعرض الجدول"
},
"add-new-child": {"en": "ADD NEW CHILD", "ar": "إضافة طفل جديد"},
@ -1361,8 +1370,8 @@ const Map localizedValues = {
"en": "This service allows you to make an online virtual consultation via video call directly with the doctor from anywhere at any time.",
"ar": "تتيح لك هذه الخدمة إجراء استشارة عبر مكالمة فيديو مباشرة مع الطبيب من أي مكان وفي أي وقت"
},
"my-invoice": {"en": "My Invoice", "ar": "فواتيري"},
"invoice-list": {"en": "Invoices List", "ar": "فائمة الفواتير"},
"my-invoice": {"en": "List", "ar": "فواتيري"},
"invoice-list": {"en": "My Invoice", "ar": "قائمة"},
"thisItemIsNotAvailable": {"en": "This item is not available", "ar": "هذا العنصر غير متوفر"},
"beforeAfterImages": {"en": "Before & After Images", "ar": "الصور قبل وبعد"},
"clinic-accept-livecare": {
@ -1503,7 +1512,7 @@ const Map localizedValues = {
"selectSlot": {"en": "Please select Time Slot to continue", "ar": "الرجاء تحديد فترة زمنية للمتابعة"},
"years": {"en": "Years", "ar": "سنوات"},
"respirationBPM": {"en": "bpm", "ar": "نفس"},
"extremeObese": {"en": "Extreme Obese", "ar": "السمنة المفرطة"},
"extremeObese": {"en": "Extreme Obese", "ar": "سمنة مفرطة"},
"invoiceDetails": {"en": "Invoice Details", "ar": "تفاصيل الفاتورة"},
"appoDetails": {"en": "Appointment Details", "ar": "تفاصيل الموعد"},
"appoPaymentConfirm": {"en": "Are you sure you Want to make payment for this appointment?", "ar": "هل أنت متأكد من أنك تريد سداد هذا الموعد؟"},
@ -1516,14 +1525,67 @@ const Map localizedValues = {
"modesBelow": {"en": "Please select the modes below:", "ar": ":الرجاء تحديد الأوضاع أدناه"},
"prefferedMode": {"en": "Please select the preferred mode below:", "ar": ":الرجاء تحديد الوضع المفضل أدناه"},
"permissionsBellow": {"en": "Please allow the permissions below:", "ar": ":الرجاء السماح الأذونات أدناه"},
"appointmentReminder": { "en": "Would you like to set a reminder for this appointment in your calendar?", "ar": "هل ترغب في اضافة تذكير لهذا الموعد في التقويم؟" },
"cancelAppointment": { "en": "Cancel Appt.", "ar": "الغاء الموعد" },
"appointmentReminder": {"en": "Would you like to set a reminder for this appointment in your calendar?", "ar": "هل ترغب في اضافة تذكير لهذا الموعد في التقويم؟"},
"cancelAppointment": {"en": "Cancel Appt.", "ar": "الغاء الموعد"},
"updateInsurCards": {"en": "Update Insurance Cards", "ar": "تحديث بطاقات التأمين"},
"patientAge": {"en": "y", "ar": "سنة"},
"searchCriteria": { "en": "Select Search Criteria", "ar": "حدد معايير البحث" },
"searchCriteria": {"en": "Select Search Criteria", "ar": "حدد معايير البحث"},
"RequesterInfo": {"en": "Requester Info", "ar": "معلومات مقدم الطلب"},
"PatientInfo": {"en": "Patient Info", "ar": "معلومات المريض"},
"OtherInfo": {"en": "Other Info", "ar": "معلومات اخرى"},
"inPrgress": {"en": "In Progress", "ar": "في تقدم"},
"locked": {"en": "Locked", "ar": "مقفل"},
"personalInfo": {"en": "Personal Information", "ar": "معلومات شخصية"},
"cmcTitle": {"en": "Comprehensive", "ar": "خدمة"},
"cmcSubtitle": {"en": "Medical Checkup", "ar": "الفحص الشامل"},
"emergencyTitle": {"en": "Emergency", "ar": "خدمات"},
"emergencySubtitle": {"en": "Services", "ar": "الطوارئ"},
"ereferralTitle": {"en": "E-Referral", "ar": "خدمة"},
"ereferralSubtitle": {"en": "Service", "ar": "الإحالة الإلكترونية"},
"medicalFileTitle": {"en": "Medical File", 'ar': 'الملف الطبي'},
"My_File_Details": {"en": "My File Details", "ar": "تفاصيل ملفي"},
"Ecommerce": {"en": "Ecommerce", "ar": "التجارة الإلكترونية"},
"Family_Files": {"en": "Family Files", "ar": "ملفات العائلة"},
"My_Child": {"en": "My Child", "ar": "تطعيمات"},
"Vaccines": {"en": "Vaccines", "ar": "الأطفال"},
"Todo": {"en": "Todo", "ar": "قائمة"},
"List": {"en": "List", "ar": "المهام"},
"Blood": {"en": "Blood", "ar": "التبرع"},
"Donation": {"en": "Donation", "ar": "بالدم"},
"Health": {"en": "Health", "ar": "الصحة"},
"Calculator": {"en": "Calculator", "ar": "آلة حاسبة"},
"Converter": {"en": "Converter", "ar": "محول"},
"Smart": {"en": "Smart", "ar": "ذكي"},
"Watches": {"en": "Watches", "ar": "ساعات"},
"parkingTitle2": {"en": "Car parking", "ar": "خدمة"},
"ParkingSubtitle": {"en": "service", "ar": "مواقف السيارات"},
"Details": {"en": "Details", "ar": "تفاصيل"},
"News": {"en": "News", "ar": "أحدث"},
"Latest": {"en": "Latest", "ar": "ألاخبار"},
"Virtual": {"en": "Virtual", "ar": "جولة"},
"Tour": {"en": "Tour", "ar": "افتراضية"},
"mostViewed": {"en": "Most Viewed", "ar": "الأكثر مشاهدة"},
"newProducts": {"en": "New Products", "ar": "منتجات جديدة"},
"paymentSelected": {"en": "Selected", "ar": "المحدد"},
"moreNotifications": {"en": "More notifications", "ar": "الإشعارات المزيد"},
"familyTitle": {"en": "My Family", "ar": "ملفات"},
"familySubtitle": {"en": "Files", "ar": "العائلة"},
"liveCareTitle": {"en": "LiveCare", "ar": "خدمة"},
"liveCareSubtitle": {"en": "Service", "ar": "لايف كير"},
"pharmacyTitle": {"en": "Al Habib", "ar": "الصيدليات"},
"pharmacySubtitle": {"en": "Pharmacy", "ar": "الحبيب"},
"healthCalculatorTitle": {"en": "Health", "ar": "الحاسبات"},
"healthCalculatorSubtitle": {"en": "Calculators", "ar": "الصحية"},
"waterTitle": {"en": "Water", "ar": "استهلاك"},
"waterSubtitle": {"en": "Consumption", "ar": "الماء"},
"medicalFileTitle2": {"en": "My Medical File", "ar": "تفاصيل"},
"medicalFileSubtitle": {"en": "Details", "ar": "ملفي الطبي"},
"healthConvertersTitle": {"en": "Health", "ar": "تحويل"},
"healthConvertersSubtitle": {"en": "Converters", "ar": "القياسات"},
"syncHealthData": { "en": "Sync Health Data", "ar": "مزامنة البيانات الصحية" },
"steps": { "en": "Steps", "ar": "الخطوات" },
"avgSteps": { "en": "Average Steps", "ar": "متوسط الخطوات" },
"avgDistance": { "en": "Average Distance", "ar": "متوسط المسافة" },
"enterDetails": {"en": "Enter Details", "ar": "أدخل التفاصيل"},
"avgHeartRate": { "en": "Average Heart Rate", "ar": "متوسط معدل ضربات القلب" },
};

@ -0,0 +1,345 @@
class GetCMCAllOrdersResponseModel {
int iD;
int patientId;
int patientOutSa;
bool isOutPatient;
int projectId;
int nearestProjectId;
dynamic longitude;
dynamic latitude;
dynamic appointmentNo;
dynamic dischargeId;
int statusId;
int serviceId;
int channel;
Orderpayment orderpayment;
dynamic orderselectedservice;
dynamic wforder;
dynamic orderapprovalobj;
String created;
dynamic createdBy;
dynamic modified;
dynamic modifiedBy;
bool isDeleted;
String statusText;
int paymentStatus;
dynamic clientRequestid;
dynamic paymentStatusText;
String projectName;
String nearestProjectName;
dynamic paymentAmount;
WFOrder wFOrder;
String serviceText;
bool isSentForApproval;
int exaCartOrderId;
bool isTimer;
int timeSeconds;
int totalPendingSeconds;
int timeMinute;
int timeHour;
int timeTotalSeconds;
int timeTotalMinute;
int timeTotalHour;
dynamic approvalStatus;
bool isActive;
int clickButton;
List<dynamic> procedures;
dynamic pickupLocation;
dynamic dropOffLocation;
dynamic clinicName;
dynamic doctorName;
dynamic branch;
dynamic time;
dynamic notes;
GetCMCAllOrdersResponseModel(
{this.iD,
this.patientId,
this.patientOutSa,
this.isOutPatient,
this.projectId,
this.nearestProjectId,
this.longitude,
this.latitude,
this.appointmentNo,
this.dischargeId,
this.statusId,
this.serviceId,
this.channel,
this.orderpayment,
this.orderselectedservice,
this.wforder,
this.orderapprovalobj,
this.created,
this.createdBy,
this.modified,
this.modifiedBy,
this.isDeleted,
this.statusText,
this.paymentStatus,
this.clientRequestid,
this.paymentStatusText,
this.projectName,
this.nearestProjectName,
this.paymentAmount,
this.wFOrder,
this.serviceText,
this.isSentForApproval,
this.exaCartOrderId,
this.isTimer,
this.timeSeconds,
this.totalPendingSeconds,
this.timeMinute,
this.timeHour,
this.timeTotalSeconds,
this.timeTotalMinute,
this.timeTotalHour,
this.approvalStatus,
this.isActive,
this.clickButton,
this.procedures,
this.pickupLocation,
this.dropOffLocation,
this.clinicName,
this.doctorName,
this.branch,
this.time,
this.notes});
GetCMCAllOrdersResponseModel.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
patientId = json['PatientId'];
patientOutSa = json['PatientOutSa'];
isOutPatient = json['IsOutPatient'];
projectId = json['ProjectId'];
nearestProjectId = json['NearestProjectId'];
longitude = json['Longitude'];
latitude = json['Latitude'];
appointmentNo = json['AppointmentNo'];
dischargeId = json['DischargeId'];
statusId = json['StatusId'];
serviceId = json['ServiceId'];
channel = json['Channel'];
orderpayment = json['orderpayment'] != null
? new Orderpayment.fromJson(json['orderpayment'])
: null;
orderselectedservice = json['orderselectedservice'];
wforder = json['wforder'];
orderapprovalobj = json['orderapprovalobj'];
created = json['Created'];
createdBy = json['CreatedBy'];
modified = json['Modified'];
modifiedBy = json['ModifiedBy'];
isDeleted = json['IsDeleted'];
statusText = json['StatusText'];
paymentStatus = json['PaymentStatus'];
clientRequestid = json['ClientRequestid'];
paymentStatusText = json['PaymentStatusText'];
projectName = json['ProjectName'];
nearestProjectName = json['NearestProjectName'];
paymentAmount = json['PaymentAmount'];
wFOrder = json['WF_order'] != null
? new WFOrder.fromJson(json['WF_order'])
: null;
serviceText = json['ServiceText'];
isSentForApproval = json['isSentForApproval'];
exaCartOrderId = json['ExaCart_OrderId'];
isTimer = json['isTimer'];
timeSeconds = json['TimeSeconds'];
totalPendingSeconds = json['TotalPendingSeconds'];
timeMinute = json['TimeMinute'];
timeHour = json['TimeHour'];
timeTotalSeconds = json['TimeTotalSeconds'];
timeTotalMinute = json['TimeTotalMinute'];
timeTotalHour = json['TimeTotalHour'];
approvalStatus = json['ApprovalStatus'];
isActive = json['isActive'];
clickButton = json['ClickButton'];
pickupLocation = json['PickupLocation'];
dropOffLocation = json['DropOffLocation'];
clinicName = json['clinicName'];
doctorName = json['DoctorName'];
branch = json['Branch'];
time = json['Time'];
notes = json['Notes'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['PatientId'] = this.patientId;
data['PatientOutSa'] = this.patientOutSa;
data['IsOutPatient'] = this.isOutPatient;
data['ProjectId'] = this.projectId;
data['NearestProjectId'] = this.nearestProjectId;
data['Longitude'] = this.longitude;
data['Latitude'] = this.latitude;
data['AppointmentNo'] = this.appointmentNo;
data['DischargeId'] = this.dischargeId;
data['StatusId'] = this.statusId;
data['ServiceId'] = this.serviceId;
data['Channel'] = this.channel;
if (this.orderpayment != null) {
data['orderpayment'] = this.orderpayment.toJson();
}
data['orderselectedservice'] = this.orderselectedservice;
data['wforder'] = this.wforder;
data['orderapprovalobj'] = this.orderapprovalobj;
data['Created'] = this.created;
data['CreatedBy'] = this.createdBy;
data['Modified'] = this.modified;
data['ModifiedBy'] = this.modifiedBy;
data['IsDeleted'] = this.isDeleted;
data['StatusText'] = this.statusText;
data['PaymentStatus'] = this.paymentStatus;
data['ClientRequestid'] = this.clientRequestid;
data['PaymentStatusText'] = this.paymentStatusText;
data['ProjectName'] = this.projectName;
data['NearestProjectName'] = this.nearestProjectName;
data['PaymentAmount'] = this.paymentAmount;
if (this.wFOrder != null) {
data['WF_order'] = this.wFOrder.toJson();
}
data['ServiceText'] = this.serviceText;
data['isSentForApproval'] = this.isSentForApproval;
data['ExaCart_OrderId'] = this.exaCartOrderId;
data['isTimer'] = this.isTimer;
data['TimeSeconds'] = this.timeSeconds;
data['TotalPendingSeconds'] = this.totalPendingSeconds;
data['TimeMinute'] = this.timeMinute;
data['TimeHour'] = this.timeHour;
data['TimeTotalSeconds'] = this.timeTotalSeconds;
data['TimeTotalMinute'] = this.timeTotalMinute;
data['TimeTotalHour'] = this.timeTotalHour;
data['ApprovalStatus'] = this.approvalStatus;
data['isActive'] = this.isActive;
data['ClickButton'] = this.clickButton;
data['PickupLocation'] = this.pickupLocation;
data['DropOffLocation'] = this.dropOffLocation;
data['clinicName'] = this.clinicName;
data['DoctorName'] = this.doctorName;
data['Branch'] = this.branch;
data['Time'] = this.time;
data['Notes'] = this.notes;
return data;
}
}
class Orderpayment {
int iD;
int orderId;
dynamic clientRequestId;
dynamic totalAmount;
int paymentStatus;
dynamic order;
String created;
dynamic createdBy;
dynamic modified;
dynamic modifiedBy;
bool isDeleted;
Orderpayment(
{this.iD,
this.orderId,
this.clientRequestId,
this.totalAmount,
this.paymentStatus,
this.order,
this.created,
this.createdBy,
this.modified,
this.modifiedBy,
this.isDeleted});
Orderpayment.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
orderId = json['OrderId'];
clientRequestId = json['ClientRequestId'];
totalAmount = json['TotalAmount'];
paymentStatus = json['PaymentStatus'];
order = json['Order'];
created = json['Created'];
createdBy = json['CreatedBy'];
modified = json['Modified'];
modifiedBy = json['ModifiedBy'];
isDeleted = json['IsDeleted'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['OrderId'] = this.orderId;
data['ClientRequestId'] = this.clientRequestId;
data['TotalAmount'] = this.totalAmount;
data['PaymentStatus'] = this.paymentStatus;
data['Order'] = this.order;
data['Created'] = this.created;
data['CreatedBy'] = this.createdBy;
data['Modified'] = this.modified;
data['ModifiedBy'] = this.modifiedBy;
data['IsDeleted'] = this.isDeleted;
return data;
}
}
class WFOrder {
dynamic wfButtonsDTO;
int iD;
int orderId;
int previousStep;
int nextStep;
int serviceId;
dynamic order;
String created;
dynamic createdBy;
dynamic modified;
dynamic modifiedBy;
bool isDeleted;
WFOrder(
{this.wfButtonsDTO,
this.iD,
this.orderId,
this.previousStep,
this.nextStep,
this.serviceId,
this.order,
this.created,
this.createdBy,
this.modified,
this.modifiedBy,
this.isDeleted});
WFOrder.fromJson(Map<String, dynamic> json) {
wfButtonsDTO = json['wf_ButtonsDTO'];
iD = json['ID'];
orderId = json['OrderId'];
previousStep = json['PreviousStep'];
nextStep = json['NextStep'];
serviceId = json['ServiceId'];
order = json['Order'];
created = json['Created'];
createdBy = json['CreatedBy'];
modified = json['Modified'];
modifiedBy = json['ModifiedBy'];
isDeleted = json['IsDeleted'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['wf_ButtonsDTO'] = this.wfButtonsDTO;
data['ID'] = this.iD;
data['OrderId'] = this.orderId;
data['PreviousStep'] = this.previousStep;
data['NextStep'] = this.nextStep;
data['ServiceId'] = this.serviceId;
data['Order'] = this.order;
data['Created'] = this.created;
data['CreatedBy'] = this.createdBy;
data['Modified'] = this.modified;
data['ModifiedBy'] = this.modifiedBy;
data['IsDeleted'] = this.isDeleted;
return data;
}
}

@ -73,12 +73,10 @@ class CMCInsertPresOrderRequestModel {
data['LanguageID'] = this.languageID;
data['IPAdress'] = this.iPAdress;
data['generalid'] = this.generalid;
data['patientOutSa'] = this.patientOutSA;
data['isOutPatient'] = this.patientOutSA == 0 ? false : true;
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['patientId'] = this.patientID.toString();
data['TokenID'] = this.tokenID;
data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType;

@ -1,5 +1,5 @@
class GetCMCServicesResponseModel {
int id;
int iD;
String serviceID;
int orderServiceID;
String text;
@ -12,7 +12,7 @@ class GetCMCServicesResponseModel {
int quantity;
GetCMCServicesResponseModel(
{this.id,
{this.iD,
this.serviceID,
this.orderServiceID,
this.text,
@ -25,32 +25,32 @@ class GetCMCServicesResponseModel {
this.quantity});
GetCMCServicesResponseModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
serviceID = json['serviceID'];
orderServiceID = json['orderServiceID'];
text = json['text'];
textN = json['textN'];
price = json['price'];
priceVAT = json['priceVAT'];
priceTotal = json['priceTotal'];
isEnabled = json['isEnabled'];
orderId = json['orderId'];
quantity = json['quantity'];
iD = json['ID'];
serviceID = json['ServiceID'];
orderServiceID = json['OrderServiceID'];
text = json['Text'];
textN = json['TextN'];
price = json['Price'];
priceVAT = json['PriceVAT'];
priceTotal = json['PriceTotal'];
isEnabled = json['IsEnabled'];
orderId = json['OrderId'];
quantity = json['Quantity'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['serviceID'] = this.serviceID;
data['orderServiceID'] = this.orderServiceID;
data['text'] = this.text;
data['textN'] = this.textN;
data['price'] = this.price;
data['priceVAT'] = this.priceVAT;
data['priceTotal'] = this.priceTotal;
data['isEnabled'] = this.isEnabled;
data['orderId'] = this.orderId;
data['quantity'] = this.quantity;
data['ID'] = this.iD;
data['ServiceID'] = this.serviceID;
data['OrderServiceID'] = this.orderServiceID;
data['Text'] = this.text;
data['TextN'] = this.textN;
data['Price'] = this.price;
data['PriceVAT'] = this.priceVAT;
data['PriceTotal'] = this.priceTotal;
data['IsEnabled'] = this.isEnabled;
data['OrderId'] = this.orderId;
data['Quantity'] = this.quantity;
return data;
}
}

@ -1,32 +1,56 @@
class HHCGetAllServicesResponseModel {
int iD;
int serviceID;
String description;
String descriptionN;
bool isActive;
String serviceID;
int orderServiceID;
String text;
String textN;
dynamic price;
dynamic priceVAT;
dynamic priceTotal;
bool isEnabled;
int orderId;
int quantity;
HHCGetAllServicesResponseModel(
{this.iD,
this.serviceID,
this.description,
this.descriptionN,
this.isActive});
this.orderServiceID,
this.text,
this.textN,
this.price,
this.priceVAT,
this.priceTotal,
this.isEnabled,
this.orderId,
this.quantity});
HHCGetAllServicesResponseModel.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
serviceID = json['ServiceID'];
description = json['Description'];
descriptionN = json['DescriptionN'];
isActive = json['IsActive'];
orderServiceID = json['OrderServiceID'];
text = json['Text'];
textN = json['TextN'];
price = json['Price'];
priceVAT = json['PriceVAT'];
priceTotal = json['PriceTotal'];
isEnabled = json['IsEnabled'];
orderId = json['OrderId'];
quantity = json['Quantity'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['ServiceID'] = this.serviceID;
data['Description'] = this.description;
data['DescriptionN'] = this.descriptionN;
data['IsActive'] = this.isActive;
data['OrderServiceID'] = this.orderServiceID;
data['Text'] = this.text;
data['TextN'] = this.textN;
data['Price'] = this.price;
data['PriceVAT'] = this.priceVAT;
data['PriceTotal'] = this.priceTotal;
data['IsEnabled'] = this.isEnabled;
data['OrderId'] = this.orderId;
data['Quantity'] = this.quantity;
return data;
}
}

@ -16,7 +16,7 @@ class PatientERHHCInsertServicesList {
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['RecordID'] = this.recordID;
data['ServiceID'] = this.serviceID;
data['ServiceID'] = this.serviceID.toString();
data['ServiceName'] = this.serviceName;
return data;
}

@ -76,7 +76,8 @@ class PatientERInsertPresOrderRequestModel {
data['LanguageID'] = this.languageID;
data['IPAdress'] = this.iPAdress;
data['generalid'] = this.generalid;
data['PatientOutSA'] = this.patientOutSA;
data['isOutPatient'] = this.patientOutSA == 0 ? false : true;
// data['PatientOutSA'] = this.patientOutSA;
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
@ -84,12 +85,12 @@ class PatientERInsertPresOrderRequestModel {
data['TokenID'] = this.tokenID;
data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType;
data['Latitude'] = this.latitude;
data['Longitude'] = this.longitude;
data['CreatedBy'] = this.createdBy;
data['latitude'] = this.latitude;
data['longitude'] = this.longitude;
// data['CreatedBy'] = this.createdBy;
data['OrderServiceID'] = this.orderServiceID;
if (this.patientERHHCInsertServicesList != null) {
data['PatientER_HHC_InsertServicesList'] =
data['procedures'] =
this.patientERHHCInsertServicesList.map((v) => v.toJson()).toList();
}
return data;

@ -71,7 +71,8 @@ class UpdatePresOrderRequestModel {
data['TokenID'] = this.tokenID;
data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType;
data['PresOrderID'] = this.presOrderID;
data['Id'] = this.presOrderID;
data['ClickButton'] = 14;
data['PresOrderStatus'] = this.presOrderStatus;
data['EditedBy'] = this.editedBy;
data['RejectionReason'] = this.rejectionReason;

@ -108,10 +108,10 @@ class PharmacyProduct {
List<int> manufacturerIds;
List<Reviews> reviews;
List<PharmacyImageObject> images;
List<String> attributes;
List<dynamic> attributes;
List<Specifications> specifications;
List<String> associatedProductIds;
List<String> tags;
List<dynamic> associatedProductIds;
List<dynamic> tags;
int vendorId;
String seName;
@ -367,7 +367,7 @@ class PharmacyProduct {
});
}
if (json['attributes'] != null) {
attributes = new List<String>();
attributes = new List<dynamic>();
json['attributes'].forEach((v) {
attributes.add(v);
});

@ -1,7 +1,7 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/ShoppingCart.dart';
import 'package:flutter/material.dart';
class ShoppingCartResponse with ChangeNotifier {
class ShoppingCartResponse {
int itemCount;
int quantityCount;
double subtotal;
@ -11,17 +11,15 @@ class ShoppingCartResponse with ChangeNotifier {
List<ShoppingCart> shoppingCarts;
ShoppingCartResponse(
{this.itemCount,
this.quantityCount,
this.subtotal,
this.subtotalWithVat,
this.subtotalVatAmount,
this.subtotalVatRate,
{this.itemCount =0,
this.quantityCount =0,
this.subtotal=0.0,
this.subtotalWithVat = 0.0,
this.subtotalVatAmount = 0.0,
this.subtotalVatRate = 0.0 ,
this.shoppingCarts});
void updateShoppingCard() {
notifyListeners();
}
ShoppingCartResponse.fromJson(Map<String, dynamic> json) {
itemCount = json['item_count'];

@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'ShippingOption.dart';
class PaymentCheckoutData with ChangeNotifier{
class PaymentCheckoutData {
Addresses address;
PaymentOption paymentOption;
LacumAccountInformation lacumInformation;
@ -15,7 +15,5 @@ class PaymentCheckoutData with ChangeNotifier{
PaymentCheckoutData({this.address, this.paymentOption, this.lacumInformation, this.cartDataVisible = false, this.shippingOption, this.usedLakumPoints = 0});
void updateData() {
notifyListeners();
}
}

@ -1,12 +1,12 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hHC_all_pres_orders_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
@ -15,7 +15,7 @@ import '../base_service.dart';
class CMCService extends BaseService {
List<GetCMCServicesResponseModel> cmcAllServicesList = List();
List<GetHHCAllPresOrdersResponseModel> cmcAllPresOrdersList = List();
List<GetCMCAllOrdersResponseModel> cmcAllPresOrdersList = List();
List<GetOrderDetailByOrderIDResponseModel> cmcAllOrderDetail = List();
List<CMCGetItemsResponseModel> checkupItemsList = List();
@ -30,7 +30,7 @@ class CMCService extends BaseService {
// RC IMPLEMENTATION
await baseAppClient.post(GET_ALL_CMC_SERVICES_RC + "?patientID=" + user.patientID.toString(), isAllowAny: true, onSuccess: (dynamic response, int statusCode) {
cmcAllServicesList.clear();
response.forEach((data) {
response['response'].forEach((data) {
cmcAllServicesList.add(GetCMCServicesResponseModel.fromJson(data));
});
}, onFailure: (String error, int statusCode) {
@ -55,8 +55,8 @@ class CMCService extends BaseService {
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS, onSuccess: (dynamic response, int statusCode) {
cmcAllPresOrdersList.clear();
cmcAllOrderDetail.clear();
response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
if (data['ServiceID'] == OrderService.Comprehensive_Medical_Checkup.getIdOrderService()) cmcAllPresOrdersList.add(GetHHCAllPresOrdersResponseModel.fromJson(data));
response['response'].forEach((data) {
if (data['ServiceID'] == OrderService.Comprehensive_Medical_Checkup.getIdOrderService()) cmcAllPresOrdersList.add(GetCMCAllOrdersResponseModel.fromJson(data));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
@ -64,6 +64,26 @@ class CMCService extends BaseService {
}, body: getHHCAllPresOrdersRequestModel.toJson());
}
Future getCmcAllPresOrdersRC() async {
GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel = GetHHCAllPresOrdersRequestModel();
hasError = false;
await baseAppClient.post(GET_ALL_CMC_ORDERS_RC, onSuccess: (dynamic response, int statusCode) {
cmcAllPresOrdersList.clear();
cmcAllOrderDetail.clear();
response['response'].forEach((data) {
cmcAllPresOrdersList.add(GetCMCAllOrdersResponseModel.fromJson(data));
});
// response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
// if (data['ServiceID'] == OrderService.Comprehensive_Medical_Checkup.getIdOrderService()) cmcAllPresOrdersList.add(GetHHCAllPresOrdersResponseModel.fromJson(data));
// });
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: getHHCAllPresOrdersRequestModel.toJson());
}
Future getOrderDetailByOrderID(GetOrderDetailByOrderIDRequestModel getOrderDetailByOrderIDRequestModel) async {
hasError = false;
await baseAppClient.post(GET_CMC_ORDER_DETAIL_BY_ID, onSuccess: (dynamic response, int statusCode) {
@ -100,12 +120,22 @@ class CMCService extends BaseService {
}, body: updatePresOrderRequestModel.toJson());
}
Future updateCmcPresOrderRC(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
hasError = false;
await baseAppClient.post(UPDATE_CMC_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
isOrderUpdated = true;
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: updatePresOrderRequestModel.toJson());
}
Future<String> insertCMCOrderRC({CMCInsertPresOrderRequestModel order}) async {
hasError = false;
String reqId = "";
await baseAppClient.post(ADD_CMC_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
isOrderUpdated = true;
reqId = response['RequestNo'].toString();
reqId = response['response'].toString();
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;

@ -22,9 +22,12 @@ class EReferralService extends BaseService {
List<SearchEReferralResponseModel> get allReferral => _allReferral;
String _activationCode;
String _logInTokenID;
String _referralNumber;
String get activationCode => _activationCode;
String get referralNumber => _referralNumber;
bool _isActivationCodeValid = false;
bool get isActivationCodeValid => _isActivationCodeValid;
@ -106,6 +109,7 @@ class EReferralService extends BaseService {
CREATE_E_REFERRAL /*'Services/Patients.svc/REST/CreateEReferral'*/,
onSuccess: (dynamic response, int statusCode) {
// TODO Waiting for fix service
_referralNumber = response['ReferralNumber'].toString();
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hHC_all_pres_orders_request_model.dart';
@ -13,7 +14,7 @@ import '../base_service.dart';
class HomeHealthCareService extends BaseService {
List<HHCGetAllServicesResponseModel> hhcAllServicesList = List();
List<GetHHCAllPresOrdersResponseModel> hhcAllPresOrdersList = List();
List<GetCMCAllOrdersResponseModel> hhcAllPresOrdersList = List();
List<GetOrderDetailByOrderIDResponseModel> hhcAllOrderDetail = List();
List<AddressInfo> addressesList = List();
@ -21,6 +22,7 @@ class HomeHealthCareService extends BaseService {
bool isOrderUpdated;
CustomerInfo customerInfo;
int requestNo;
Future getHHCAllServices(HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel) async {
hasError = false;
await baseAppClient.post(HHC_GET_ALL_SERVICES, onSuccess: (dynamic response, int statusCode) {
@ -34,14 +36,42 @@ class HomeHealthCareService extends BaseService {
}, body: hHCGetAllServicesRequestModel.toJson());
}
Future getHHCAllServicesRC(HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel) async {
hasError = false;
await baseAppClient.post(HHC_GET_ALL_SERVICES_RC + "?PatientID=" + user.patientID.toString(), onSuccess: (dynamic response, int statusCode) {
hhcAllServicesList.clear();
response['response'].forEach((data) {
hhcAllServicesList.add(HHCGetAllServicesResponseModel.fromJson(data));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: hHCGetAllServicesRequestModel.toJson());
}
Future getHHCAllPresOrdersRC() async {
GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel = GetHHCAllPresOrdersRequestModel();
hasError = false;
await baseAppClient.post(GET_ALL_HHC_ORDERS_RC, onSuccess: (dynamic response, int statusCode) {
hhcAllPresOrdersList.clear();
hhcAllOrderDetail.clear();
response['response'].forEach((data) {
hhcAllPresOrdersList.add(GetCMCAllOrdersResponseModel.fromJson(data));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: getHHCAllPresOrdersRequestModel.toJson());
}
Future getHHCAllPresOrders() async {
GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel = GetHHCAllPresOrdersRequestModel();
hasError = false;
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORD, onSuccess: (dynamic response, int statusCode) {
hhcAllPresOrdersList.clear();
response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
if (data['ServiceID'] == OrderService.HOME_HEALTH_CARE.getIdOrderService()) hhcAllPresOrdersList.add(GetHHCAllPresOrdersResponseModel.fromJson(data));
});
// response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
// if (data['ServiceID'] == OrderService.HOME_HEALTH_CARE.getIdOrderService()) hhcAllPresOrdersList.add(GetHHCAllPresOrdersResponseModel.fromJson(data));
// });
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
@ -74,6 +104,16 @@ class HomeHealthCareService extends BaseService {
}, body: updatePresOrderRequestModel.toJson());
}
Future updateHHCPresOrderRC(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
hasError = false;
await baseAppClient.post(UPDATE_HHC_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
isOrderUpdated = true;
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: updatePresOrderRequestModel.toJson());
}
Future insertPresPresOrder({PatientERInsertPresOrderRequestModel order}) async {
hasError = false;
await baseAppClient.post(INSERT_ER_INERT_PRES_ORDER, onSuccess: (dynamic response, int statusCode) {
@ -84,4 +124,15 @@ class HomeHealthCareService extends BaseService {
super.error = error;
}, body: order.toJson());
}
Future insertHHCOrderRC({PatientERInsertPresOrderRequestModel order}) async {
hasError = false;
await baseAppClient.post(ADD_HHC_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
hhcResponse = response;
requestNo = response["response"];
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: order.toJson());
}
}

@ -31,7 +31,8 @@ AppSharedPreferences sharedPref = new AppSharedPreferences();
/// onFailure: (String error, int statusCode) {},
/// body: Map();
///
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
VitalSignService _vitalSignService = locator<VitalSignService>();
class BaseAppClient {
@ -115,18 +116,10 @@ class BaseAppClient {
}
}
// For RC Services
// if(body.containsKey("patientId"))
// body.remove("PatientID");
//
// if(body.containsKey("patientOutSa"))
// body.remove("PatientOutSA");
//
// body['PatientID'] = 1018977;
// body['TokenID'] = "@dm!n";
// body['IdentificationNo'] = "1009199553";
// body['MobileNo'] = "966545156035";
// body['PatientMobileNumber'] = "966545156035";
body.removeWhere((key, value) => key == null || value == null);
print("URL : $url");
final jsonBody = json.encode(body);
@ -164,12 +157,12 @@ class BaseAppClient {
} else if (parsed['Result'] == 'OK') {
onSuccess(parsed, statusCode);
} else {
if (parsed != null) {
onSuccess(parsed, statusCode);
} else {
// if (parsed != null) {
// onSuccess(parsed, statusCode);
// } else {
onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
logout();
}
// logout();
// }
}
} else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) {
onSuccess(parsed, statusCode);
@ -447,13 +440,14 @@ class BaseAppClient {
'Mobilenumber': user != null ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) : "",
'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
'Username': user != null ? user['PatientID'].toString() : "",
'Host': "mdlaboratories.com",
});
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) {
if (statusCode == 401) {
AppToast.showErrorToast(message: TranslationBase.of(AppGlobal.context).pharmacyRelogin);
onFailure(TranslationBase.of(AppGlobal.context).pharmacyRelogin, statusCode);
Navigator.of(AppGlobal.context).pushNamed(HOME);
} else {
onFailure('Error While Fetching data', statusCode);
@ -729,7 +723,8 @@ class BaseAppClient {
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode);
var parsed = json.decode(utf8.decode(response.bodyBytes));
onFailure(parsed['error']['ErrorEndUserMsg'] ??'Error While Fetching data', statusCode);
} else {
// var parsed = json.decode(response.body.toString());
var parsed = json.decode(utf8.decode(response.bodyBytes));

@ -83,9 +83,24 @@ class FeedbackService extends BaseService {
Future searchFeedback(String countryCode, String phoneNumber, int type, String idNumber) async {
hasError = false;
Map<String, dynamic> body = new Map<String, dynamic>();
body['IdentificationNo'] = idNumber;
if (type == 1) {
body['IdentificationNo'] = 0;
body['PatientID'] = num.tryParse(idNumber);
body['ItemID'] = 0;
} else if (type == 2) {
body['IdentificationNo'] = idNumber;
body['PatientID'] = 0;
body['ItemID'] = 0;
} else {
body['IdentificationNo'] = 0;
body['PatientID'] = 0;
body['ItemID'] = idNumber;
}
body['PatientOutSA'] = countryCode.contains("966") ? 0 : 1;
body['MobileNo'] = countryCode + Utils.getPhoneNumberWithoutZero(phoneNumber);
body['Searching_type'] = "$type";
body['Searching_type'] = type;
if (BASE_URL.contains('uat')) {
body['ForDemo'] = true;
}

@ -62,6 +62,8 @@ class OrderPreviewService extends BaseService {
Future<Map> getShoppingCart() async {
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
if (customerId == null) return null;
Map<String, String> queryParams = {'shopping_cart_type': '1'};
dynamic localRes;
hasError = false;
@ -94,8 +96,8 @@ class OrderPreviewService extends BaseService {
Map<String, dynamic> body = Map();
body["shopping_cart_item"] = choppingCartObject;
await baseAppClient.pharmacyPost("$GET_SHOPPING_CART$productId", isExternal: false,
onSuccess: (response, statusCode) async {
await baseAppClient.pharmacyPost("$GET_SHOPPING_CART$productId",
isExternal: false, onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
hasError = true;
@ -112,8 +114,8 @@ class OrderPreviewService extends BaseService {
Map<String, dynamic> body = Map();
await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId", isExternal: false,
onSuccess: (response, statusCode) async {
await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId",
isExternal: false, onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
hasError = true;
@ -225,8 +227,9 @@ class OrderPreviewService extends BaseService {
body['order'] = orderBody;
try {
await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART, isExternal: false, isAllowAny: true,
onSuccess: (response, statusCode) async {
await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART,
isExternal: false,
isAllowAny: true, onSuccess: (response, statusCode) async {
orderList.clear();
response['orders'].forEach((item) {
orderList.add(OrderDetailModel.fromJson(item));
@ -263,24 +266,22 @@ class OrderPreviewService extends BaseService {
}
}
Future<LatLng> getDriverLocation(dynamic driverId) async{
Future<LatLng> getDriverLocation(dynamic driverId) async {
Map<String, dynamic> jsonBody = Map();
jsonBody['DriverID'] = driverId;
LatLng coordinates;
await baseAppClient.post(DRIVER_LOCATION,
onSuccess: (response, statusCode) async {
if(statusCode == 200){
dynamic locationObject = response['PatientER_GetDriverLocationList'][0];
double lat = locationObject['Latitude'];
double lon = locationObject['Longitude'];
if(lat != null && lon != null){
coordinates = LatLng(lat,lon);
}
}
}, onFailure: (String error, int statusCode) {
}, body: jsonBody);
if (statusCode == 200) {
dynamic locationObject = response['PatientER_GetDriverLocationList'][0];
double lat = locationObject['Latitude'];
double lon = locationObject['Longitude'];
if (lat != null && lon != null) {
coordinates = LatLng(lat, lon);
}
}
}, onFailure: (String error, int statusCode) {}, body: jsonBody);
return coordinates;
}

@ -108,17 +108,18 @@ class PharmacyModuleService extends BaseService {
}
Future getTopManufacturerList() async {
hasError = false;
if (manufacturerList.isNotEmpty) return;
Map<String, String> queryParams = {'page': '1', 'limit': '8'};
try {
await baseAppClient.getPharmacy(GET_PHARMACY_TOP_MANUFACTURER, onSuccess: (dynamic response, int statusCode) {
manufacturerList.clear();
response['manufacturer'].forEach((item) {
Manufacturer manufacturer = Manufacturer.fromJson(item);
if (manufacturer.image != null) {
manufacturerList.add(Manufacturer.fromJson(item));
}
// if (manufacturer.image != null) {
manufacturerList.add(Manufacturer.fromJson(item));
// }
});
hasError = false;
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
@ -129,6 +130,8 @@ class PharmacyModuleService extends BaseService {
}
Future getBestSellerProducts() async {
if (bestSellerProducts.isNotEmpty) return;
Map<String, String> queryParams = {
'fields':
'id,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage,reviews',
@ -139,6 +142,7 @@ class PharmacyModuleService extends BaseService {
response['products'].forEach((item) {
bestSellerProducts.add(PharmacyProduct.fromJson(item));
});
hasError = false;
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
@ -150,16 +154,21 @@ class PharmacyModuleService extends BaseService {
Future getLastVisitedProducts() async {
String lastVisited = "";
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) != null) {
lastVisited = await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) !=
null) {
lastVisited =
await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
// lastVisited = "2458,4561";
try {
await baseAppClient.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited", onSuccess: (dynamic response, int statusCode) {
lastVisitedProducts.clear();
response['products'].forEach((item) {
lastVisitedProducts.add(PharmacyProduct.fromJson(item));
});
hasError = false;
}, onFailure: (String error, int statusCode) {
hasError = true;
hasError =
true; // sharedPref.setString(PHARMACY_LAST_VISITED_PRODUCTS, "");
super.error = error;
});
} catch (error) {

@ -1,42 +1,23 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
class PrescriptionService extends BaseService {
final AppSharedPreferences sharedPref = AppSharedPreferences();
bool isFinished = true;
bool hasError = false;
String errorMsg = '';
String url = "";
List<Prescriptions> _prescriptionsList = List();
List<Prescriptions> get prescriptionsList => _prescriptionsList;
// Future getPrescription() async {
// hasError = false;
// url = PRESCRIPTION;
// print("Print PRESCRIPTION url" + url);
// await baseAppClient.get(url,
// onSuccess: (dynamic response, int statusCode) {
// _prescriptionsList.clear();
// response['PatientPrescriptionList'].forEach((item) {
// _prescriptionsList.add(Prescriptions.fromJson(item));
// });
// print(_prescriptionsList.length);
// print(response);
// }, onFailure: (String error, int statusCode) {
// hasError = true;
// super.error = error;
// });
// }
Future getPrescription() async {
url = PRESCRIPTION;
print("Print PRESCRIPTION url" + url);
hasError = false;
Map<String, dynamic> body = Map();
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(url,
await baseAppClient.post(PRESCRIPTION,
onSuccess: (dynamic response, int statusCode) {
_prescriptionsList.clear();
response['PatientPrescriptionList'].forEach((prescriptions) {

@ -90,8 +90,9 @@ class PharmacyCategoriseService extends BaseService {
Future searchProducts({String productName}) async {
hasError = false;
_searchList.clear();
String endPoint =
productName != null ? GET_SEARCH_PRODUCTS + "$productName" + '&language_id=1' : GET_SEARCH_PRODUCTS + "";
String endPoint = productName != null
? GET_SEARCH_PRODUCTS + "$productName" + '&language_id=1'
: GET_SEARCH_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -126,7 +127,8 @@ class PharmacyCategoriseService extends BaseService {
Future getCategoriseParent({String id}) async {
hasError = false;
_parentCategoriseList.clear();
String endPoint = id != null ? GET_CATEGORISE_PARENT + "$id" : GET_CATEGORISE_PARENT + "";
String endPoint =
id != null ? GET_CATEGORISE_PARENT + "$id" : GET_CATEGORISE_PARENT + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -144,7 +146,9 @@ class PharmacyCategoriseService extends BaseService {
Future getParentProducts({String id}) async {
hasError = false;
_parentProductsList.clear();
String endPoint = id != null ? GET_PARENT_PRODUCTS + "$id" + '&page=1&limit=50' : GET_PARENT_PRODUCTS + "";
String endPoint = id != null
? GET_PARENT_PRODUCTS + "$id" + '&page=1&limit=50'
: GET_PARENT_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -163,7 +167,8 @@ class PharmacyCategoriseService extends BaseService {
hasError = false;
_subCategoriseList.clear();
String endPoint = id != null ? GET_SUB_CATEGORISE + "$id" : GET_SUB_CATEGORISE + "";
String endPoint =
id != null ? GET_SUB_CATEGORISE + "$id" : GET_SUB_CATEGORISE + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -181,7 +186,9 @@ class PharmacyCategoriseService extends BaseService {
Future getSubProducts({String id}) async {
hasError = false;
_subProductsList.clear();
String endPoint = id != null ? GET_SUB_PRODUCTS + "$id" + '&page=1&limit=50' : GET_SUB_PRODUCTS + "";
String endPoint = id != null
? GET_SUB_PRODUCTS + "$id" + '&page=1&limit=50'
: GET_SUB_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -199,7 +206,8 @@ class PharmacyCategoriseService extends BaseService {
Future getFinalProducts({String id}) async {
hasError = false;
_finalProducts.clear();
String endPoint = id != null ? GET_FINAL_PRODUCTS + "$id" : GET_FINAL_PRODUCTS + "";
String endPoint =
id != null ? GET_FINAL_PRODUCTS + "$id" : GET_FINAL_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -236,11 +244,15 @@ class PharmacyCategoriseService extends BaseService {
Future getLastVisitedProducts() async {
String lastVisited = "";
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) != null) {
lastVisited = await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
_finalProducts.clear();
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) !=
null) {
lastVisited =
await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
try {
await baseAppClient.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited",
onSuccess: (dynamic response, int statusCode) {
await baseAppClient
.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited",
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
@ -261,7 +273,8 @@ class PharmacyCategoriseService extends BaseService {
'id,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage,reviews',
};
try {
await baseAppClient.getPharmacy(GET_PHARMACY_BEST_SELLER_PRODUCT, onSuccess: (dynamic response, int statusCode) {
await baseAppClient.getPharmacy(GET_PHARMACY_BEST_SELLER_PRODUCT,
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
@ -275,7 +288,8 @@ class PharmacyCategoriseService extends BaseService {
}
}
Future getFilteredProducts({String categoryId, String brandId, String min, String max}) async {
Future getFilteredProducts(
{String categoryId, String brandId, String min, String max}) async {
hasError = false;
String endPoint;
@ -299,7 +313,8 @@ class PharmacyCategoriseService extends BaseService {
);
}
Future getFilteredSubProducts({String categoryId, String brandId, String min, String max}) async {
Future getFilteredSubProducts(
{String categoryId, String brandId, String min, String max}) async {
hasError = false;
String endPoint;
@ -324,12 +339,14 @@ class PharmacyCategoriseService extends BaseService {
}
Future getMostViewedProducts() async {
hasError = false;
Map<String, String> queryParams = {
'fields':
'id,discount_ids,name,reviews,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage',
'mostview?fields=id,discount_ids,name,reviews,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage',
};
try {
await baseAppClient.getPharmacy(GET_MOST_VIEWED_PRODUCTS, onSuccess: (dynamic response, int statusCode) {
await baseAppClient.getPharmacy(GET_MOST_VIEWED_PRODUCTS,
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
@ -341,16 +358,20 @@ class PharmacyCategoriseService extends BaseService {
super.error = error;
}, queryParams: queryParams);
} catch (error) {
throw error;
hasError = true;
super.error = error.toString();
// throw error;
}
}
Future getNewProducts() async {
Map<String, String> queryParams = {
'fields': 'Id,name,namen,localized_names,price,images,sku,stock_availability,published',
'fields':
'Id,name,namen,localized_names,price,images,sku,stock_availability,published',
};
try {
await baseAppClient.getPharmacy(GET_NEW_PRODUCTS, onSuccess: (dynamic response, int statusCode) {
await baseAppClient.getPharmacy(GET_NEW_PRODUCTS,
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
@ -24,7 +25,7 @@ class CMCViewModel extends BaseViewModel {
List<GetCMCServicesResponseModel> get cmcAllServicesList => _cMCService.cmcAllServicesList;
List<GetHHCAllPresOrdersResponseModel> get cmcAllPresOrders => _cMCService.cmcAllPresOrdersList;
List<GetCMCAllOrdersResponseModel> get cmcAllPresOrders => _cMCService.cmcAllPresOrdersList;
List<GetOrderDetailByOrderIDResponseModel> get cmcAllOrderDetail => _cMCService.cmcAllOrderDetail;
@ -32,7 +33,7 @@ class CMCViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyModuleService = locator<PharmacyModuleService>();
GetHHCAllPresOrdersResponseModel pendingOrder;
GetCMCAllOrdersResponseModel pendingOrder;
bool get isOrderUpdated => _cMCService.isOrderUpdated;
@ -58,14 +59,15 @@ class CMCViewModel extends BaseViewModel {
Future getCmcAllPresOrders() async {
setState(ViewState.Busy);
await _cMCService.getCmcAllPresOrders();
// await _cMCService.getCmcAllPresOrders();
await _cMCService.getCmcAllPresOrdersRC();
if (_cMCService.hasError) {
error = _cMCService.error;
setState(ViewState.Error);
} else {
pendingOrder = _cMCService.cmcAllPresOrdersList.firstWhere((element) => element.status == 1 || element.status == 2, orElse: () => null);
pendingOrder = _cMCService.cmcAllPresOrdersList.firstWhere((element) => element.statusId == 1 || element.statusId == 2, orElse: () => null);
if (pendingOrder != null) {
await getOrderDetailByOrderID(pendingOrder);
// await getOrderDetailByOrderID(pendingOrder);
setState(ViewState.Idle);
} else {
getCMCAllServices();
@ -75,7 +77,8 @@ class CMCViewModel extends BaseViewModel {
Future updateCmcPresOrder(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
setState(ViewState.BusyLocal);
await _cMCService.updateCmcPresOrder(updatePresOrderRequestModel);
// await _cMCService.updateCmcPresOrder(updatePresOrderRequestModel);
await _cMCService.updateCmcPresOrderRC(updatePresOrderRequestModel);
if (_cMCService.hasError) {
error = _cMCService.error;
setState(ViewState.ErrorLocal);
@ -84,7 +87,7 @@ class CMCViewModel extends BaseViewModel {
}
}
Future getOrderDetailByOrderID(GetHHCAllPresOrdersResponseModel order) async {
Future getOrderDetailByOrderID(GetCMCAllOrdersResponseModel order) async {
GetOrderDetailByOrderIDRequestModel getOrderDetailByOrderIDRequestModel = GetOrderDetailByOrderIDRequestModel(presOrderID: order.iD);
await _cMCService.getOrderDetailByOrderID(getOrderDetailByOrderIDRequestModel);
}

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart';
@ -24,7 +25,7 @@ class HomeHealthCareViewModel extends BaseViewModel {
List<AddressInfo> get addressesList => _customerAddressesService.addressesList;
List<GetHHCAllPresOrdersResponseModel> get hhcAllPresOrders => _homeHealthCareService.hhcAllPresOrdersList;
List<GetCMCAllOrdersResponseModel> get hhcAllPresOrders => _homeHealthCareService.hhcAllPresOrdersList;
List<GetOrderDetailByOrderIDResponseModel> get hhcAllOrderDetail => _homeHealthCareService.hhcAllOrderDetail;
@ -33,14 +34,15 @@ class HomeHealthCareViewModel extends BaseViewModel {
bool get isOrderUpdated => _homeHealthCareService.isOrderUpdated;
int get orderId => _homeHealthCareService.requestNo;
GetHHCAllPresOrdersResponseModel pendingOrder;
GetCMCAllOrdersResponseModel pendingOrder;
List<PatientERHHCInsertServicesList> patientERHHCInsertServicesList = List();
dynamic get hhcResponse => _homeHealthCareService.hhcResponse;
Future getHHCAllServices() async {
HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel = new HHCGetAllServicesRequestModel();
//setState(ViewState.Busy);
await _homeHealthCareService.getHHCAllServices(hHCGetAllServicesRequestModel);
// await _homeHealthCareService.getHHCAllServices(hHCGetAllServicesRequestModel);
await _homeHealthCareService.getHHCAllServicesRC(hHCGetAllServicesRequestModel);
if (_homeHealthCareService.hasError) {
error = _homeHealthCareService.error;
setState(ViewState.Error);
@ -52,14 +54,14 @@ class HomeHealthCareViewModel extends BaseViewModel {
Future getHHCAllPresOrders() async {
pendingOrder = null;
setState(ViewState.Busy);
await _homeHealthCareService.getHHCAllPresOrders();
await _homeHealthCareService.getHHCAllPresOrdersRC();
if (_homeHealthCareService.hasError) {
error = _homeHealthCareService.error;
setState(ViewState.Error);
} else {
pendingOrder = _homeHealthCareService.hhcAllPresOrdersList.firstWhere((element) => element.status == 1 || element.status == 2, orElse: () => null);
pendingOrder = _homeHealthCareService.hhcAllPresOrdersList.firstWhere((element) => element.statusId == 1 || element.statusId == 2, orElse: () => null);
if (pendingOrder != null) {
await _homeHealthCareService.getOrderDetailByOrderID(pendingOrder.iD);
// await _homeHealthCareService.getOrderDetailByOrderID(pendingOrder.iD);
setState(ViewState.Idle);
} else {
getHHCAllServices();
@ -69,7 +71,8 @@ class HomeHealthCareViewModel extends BaseViewModel {
Future updateHHCPresOrder(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
setState(ViewState.Busy);
await _homeHealthCareService.updateHHCPresOrder(updatePresOrderRequestModel);
// await _homeHealthCareService.updateHHCPresOrder(updatePresOrderRequestModel);
await _homeHealthCareService.updateHHCPresOrderRC(updatePresOrderRequestModel);
if (_homeHealthCareService.hasError) {
error = _homeHealthCareService.error;
setState(ViewState.ErrorLocal);
@ -82,7 +85,8 @@ class HomeHealthCareViewModel extends BaseViewModel {
setState(ViewState.Busy);
order.createdBy = user.patientID;
order.orderServiceID = OrderService.HOME_HEALTH_CARE.getIdOrderService();
await _homeHealthCareService.insertPresPresOrder(order: order);
// await _homeHealthCareService.insertPresPresOrder(order: order);
await _homeHealthCareService.insertHHCOrderRC(order: order);
if (_homeHealthCareService.hasError) {
error = _homeHealthCareService.error;
setState(ViewState.ErrorLocal);

@ -21,7 +21,7 @@ class EReferralViewModel extends BaseViewModel {
List<GetAllCitiesResponseModel> get allCities => _eReferralService.allCities;
List<SearchEReferralResponseModel> get allReferral => _eReferralService.allReferral;
String get referralNumber => _eReferralService.referralNumber;
void getRelationTypes() async {
setState(ViewState.Busy);

@ -15,6 +15,7 @@ class BaseViewModel extends ChangeNotifier {
ViewState get state => _state;
String error = "";
String languageID = "en";
AuthenticatedUser user;
AppSharedPreferences sharedPref = AppSharedPreferences();
@ -51,6 +52,10 @@ class BaseViewModel extends ChangeNotifier {
notifyListeners();
}
Future getSavedLanguage() async {
languageID = await sharedPref.getString(APP_LANGUAGE);
}
@override
void dispose() {
removeListener(() {});

@ -43,9 +43,7 @@ class RRTViewModel extends BaseViewModel {
body['NationalityID'] = user.nationalityID;
body['CreatedBy'] = user.patientIdentificationType;
body['OrderServiceID'] = 5;
var localRes;
int requestNo;
await _service.baseAppClient.post(PATIENT_ER_INSERT_PRES_ORDER, body: body, onSuccess: (response, statusCode) {
requestNo = response['RequestNo'];
@ -55,6 +53,21 @@ class RRTViewModel extends BaseViewModel {
return requestNo;
}
Future<int> createOrderRC(Map<String, dynamic> body) async {
// body['IdentificationNo'] = user.patientIdentificationNo;
// body['NationalityID'] = user.nationalityID;
// body['CreatedBy'] = user.patientIdentificationType;
// body['OrderServiceID'] = 5;
var localRes;
int requestNo;
await _service.baseAppClient.post(ADD_RRT_ORDER_RC, body: body, onSuccess: (response, statusCode) {
requestNo = response['response'];
}, onFailure: (error, statusCode) {
AppToast.showErrorToast(message: error);
});
return requestNo;
}
// Service ID: 4 == RRT
Future<_RRTServiceData> getAllOrders() async {
await _service.baseAppClient.post(GET_PRESCRIPTIONS_ALL_ORDERS, body: {}, onSuccess: (response, statusCode) {

@ -39,9 +39,10 @@ class BloodPressureViewMode extends BaseViewModel {
});
for (int index = 0; index < bloodPressureService.monthDiabtectResultAverageList.length; index++) {
weighMonthTimeSeriesDataTop.add(TimeSeriesSales3(index, bloodPressureService.monthDiabtectResultAverageList[index].weekDiastolicPressureAverageResult.toDouble()));
weighMonthTimeSeriesDataLow.add(TimeSeriesSales3(index, bloodPressureService.monthDiabtectResultAverageList[index].weekSystolicePressureAverageResult.toDouble()));
// weighMonthTimeSeriesDataTop.add(TimeSeriesSales3("Week " + (index + 1).toString(), bloodPressureService.monthDiabtectResultAverageList[index].weekDiastolicPressureAverageResult.toDouble()));
// weighMonthTimeSeriesDataLow.add(TimeSeriesSales3("Week " + (index + 1).toString(), bloodPressureService.monthDiabtectResultAverageList[index].weekSystolicePressureAverageResult.toDouble()));
weighMonthTimeSeriesDataTop.add(TimeSeriesSales3(bloodPressureService.monthDiabtectResultAverageList[index].weekDesc, bloodPressureService.monthDiabtectResultAverageList[index].weekDiastolicPressureAverageResult.toDouble()));
weighMonthTimeSeriesDataLow.add(TimeSeriesSales3(bloodPressureService.monthDiabtectResultAverageList[index].weekDesc, bloodPressureService.monthDiabtectResultAverageList[index].weekSystolicePressureAverageResult.toDouble()));
}
bloodPressureService.yearDiabtecResultAverageList.forEach((element) {

@ -0,0 +1,26 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../../locator.dart';
class BestSellerViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyService = locator<PharmacyModuleService>();
List<PharmacyProduct> get bestSellerProduct =>
_pharmacyService.bestSellerProducts;
getBestSellerProducts() async {
setState(ViewState.BusyLocal);
await _pharmacyService.getBestSellerProducts();
// if (_pharmacyService.hasError) {
// error = _pharmacyService.error;
// setState(ViewState.Error);
// } else {
setState(ViewState.Idle);
// }
}
}

@ -0,0 +1,29 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Manufacturer.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../../locator.dart';
class BrandViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyService = locator<PharmacyModuleService>();
List<Manufacturer> get manufacturerList => _pharmacyService.manufacturerList;
Future getTopManufacturerList() async {
setState(ViewState.BusyLocal);
await _pharmacyService.getTopManufacturerList();
// if (_pharmacyService.hasError) {
// error = _pharmacyService.error;
// setState(ViewState.Error);
// } else {
setState(ViewState.Idle);
// }
}
@override
void dispose() {
super.dispose();
}
}

@ -0,0 +1,25 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../../locator.dart';
class LastVisitedViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyService = locator<PharmacyModuleService>();
List<PharmacyProduct> get lastVisitedProducts =>
_pharmacyService.lastVisitedProducts;
getLastVisitedProducts() async {
setState(ViewState.BusyLocal);
await _pharmacyService.getLastVisitedProducts();
// if (_pharmacyService.hasError) {
// error = _pharmacyService.error;
// setState(ViewState.Error);
// } else {
setState(ViewState.Idle);
// }
}
}

@ -8,6 +8,8 @@ import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/payment-checkout-data.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/order-preview-service.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import '../../../locator.dart';
import '../base_view_model.dart';
@ -16,12 +18,14 @@ class OrderPreviewViewModel extends BaseViewModel {
OrderPreviewService _orderService = locator<OrderPreviewService>();
List<Addresses> get addresses => _orderService.addresses;
LacumAccountInformation get lacumInformation =>
_orderService.lacumInformation;
List<OrderDetailModel> get orderListModel => _orderService.orderList;
PharmacyModuleViewModel pharmacyModuleViewModel =
locator<PharmacyModuleViewModel>();
locator<PharmacyModuleViewModel>();
ShoppingCartResponse cartResponse = ShoppingCartResponse();
PaymentCheckoutData paymentCheckoutData = PaymentCheckoutData();
@ -38,23 +42,32 @@ class OrderPreviewViewModel extends BaseViewModel {
}
}
void update() {
notifyListeners();
}
Future getShoppingCart() async {
setState(ViewState.Busy);
// setState(ViewState.Busy);
// GifLoaderDialogUtils.showMyDialog(
// locator<NavigationService>().navigatorKey.currentContext);
await _orderService.getShoppingCart().then((res) {
_handleGetShoppingCartResponse(res);
if (res != null) _handleGetShoppingCartResponse(res);
});
if (_orderService.hasError) {
error = _orderService.error;
setState(ViewState.Error);
// setState(ViewState.Error);
} else {
if (paymentCheckoutData != null) {
paymentCheckoutData.cartDataVisible = true;
}
// GifLoaderDialogUtils.hideDialog(
// locator<NavigationService>().navigatorKey.currentContext);
setState(ViewState.Idle);
}
}
Future <ShoppingCartResponse> changeProductQuantity(ShoppingCart product) async {
Future<ShoppingCartResponse> changeProductQuantity(
ShoppingCart product) async {
setState(ViewState.Busy);
var resp = await _orderService.changeProductQuantity(product.id, product);
var object = _handleGetShoppingCartResponse(resp);
@ -110,9 +123,9 @@ class OrderPreviewViewModel extends BaseViewModel {
res["shopping_carts"].forEach((item) {
ShoppingCart shoppingCart = ShoppingCart.fromJson(item);
cartResponse.shoppingCarts.add(shoppingCart);
totalAdditionalShippingCharge += shoppingCart.product.additionalShippingCharge;
totalAdditionalShippingCharge +=
shoppingCart.product.additionalShippingCharge;
});
cartResponse.updateShoppingCard();
return cartResponse;
}
@ -163,7 +176,8 @@ class OrderPreviewViewModel extends BaseViewModel {
setState(ViewState.Busy);
await _orderService.getLacumGroupInformation();
paymentCheckoutData.lacumInformation = _orderService.lacumGroupInformation;
paymentCheckoutData.usedLakumPoints = paymentCheckoutData.lacumInformation.lakumInquiryInformationObjVersion.pointsBalanceAmount;
paymentCheckoutData.usedLakumPoints = paymentCheckoutData
.lacumInformation.lakumInquiryInformationObjVersion.pointsBalanceAmount;
if (_orderService.hasError) {
error = _orderService.error;
setState(ViewState.Error);
@ -174,9 +188,11 @@ class OrderPreviewViewModel extends BaseViewModel {
getShippingOption() async {
setState(ViewState.Busy);
await _orderService.getShippingOption(paymentCheckoutData.address).then((res) {
paymentCheckoutData.shippingOption = ShippingOption.fromJson(res);
paymentCheckoutData.updateData();
await _orderService
.getShippingOption(paymentCheckoutData.address)
.then((res) {
paymentCheckoutData.shippingOption = ShippingOption.fromJson(res);
setState(ViewState.Idle);
});
if (_orderService.hasError) {
error = _orderService.error;
@ -190,7 +206,8 @@ class OrderPreviewViewModel extends BaseViewModel {
setState(ViewState.Busy);
await pharmacyModuleViewModel.generatePharmacyToken();
await _orderService.makeOrder(paymentCheckoutData, cartResponse.shoppingCarts);
await _orderService.makeOrder(
paymentCheckoutData, cartResponse.shoppingCarts);
if (_orderService.hasError) {
error = _orderService.error;
setState(ViewState.ErrorLocal);
@ -198,6 +215,17 @@ class OrderPreviewViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
}
bool isCartItemsOutOfStock() {
bool outOfStock = false;
for (int i = 0; i < cartResponse.shoppingCarts.length; i++) {
if (cartResponse.shoppingCarts[i].product.stockQuantity == 0) {
outOfStock = true;
break;
}
}
return outOfStock;
}
}
enum PaymentOption { meda, sadad, visa, mastercard, installments }

@ -0,0 +1,28 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/prescription_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../../locator.dart';
class PrescriptionViewModel extends BaseViewModel {
PrescriptionService _prescriptionService = locator<PrescriptionService>();
List<Prescriptions> get prescriptionsList =>
_prescriptionService.prescriptionsList;
getPrescription() async {
await getSavedLanguage();
if(prescriptionsList.isNotEmpty){
setState(ViewState.Busy);
await _prescriptionService.getPrescription();
if (_prescriptionService.hasError) {
error = _prescriptionService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
}
}

@ -5,47 +5,42 @@ import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyImageObject.d
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/recommendedProduct_model.dart';
import 'package:diplomaticquarterapp/core/service/medical/prescriptions_service.dart';
//import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/prescription_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/recommendedProduct_service.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import '../../../locator.dart';
class PharmacyModuleViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyService = locator<PharmacyModuleService>();
PrescriptionService _prescriptionService = locator<PrescriptionService>();
RecommendedProductService _recommendedProductService = locator<RecommendedProductService>();
RecommendedProductService _recommendedProductService =
locator<RecommendedProductService>();
List<PharmacyImageObject> get bannerList => _pharmacyService.bannerItems;
List<Manufacturer> get manufacturerList => _pharmacyService.manufacturerList;
List<PharmacyProduct> get bestSellerProduct =>
_pharmacyService.bestSellerProducts;
List<PharmacyProduct> get lastVisitedProducts =>
_pharmacyService.lastVisitedProducts;
List <RecommendedProductModel> get recommendedProductList =>
List<RecommendedProductModel> get recommendedProductList =>
_recommendedProductService.recommendedList;
// List<Map<String, dynamic>> get recommendedProductList =>
// _recommendedProductService.recommendedList;
List<Prescriptions> get prescriptionsList =>
_prescriptionService.prescriptionsList;
bool hasError = false;
// List<PharmacyProduct> get pharmacyPrescriptionsList => PharmacyProduct.pharmacyPrescriptionsList ;
Future generatePharmacyToken() async {
setState(ViewState.Busy);
await _pharmacyService.generatePharmacyToken();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.ErrorLocal);
} else {
setState(ViewState.Idle);
}
}
Future getPharmacyHomeData() async {
if(authenticatedUserObject.isLogin)
await generatePharmacyToken();
Future verifyCustomer() async {
// if (authenticatedUserObject.isLogin) await generatePharmacyToken();
var data = await sharedPref.getObject(USER_PROFILE);
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
@ -53,20 +48,7 @@ class PharmacyModuleViewModel extends BaseViewModel {
setState(ViewState.Busy);
if (authenticatedUserObject.isLogin && data != null && customerId == null) {
await _pharmacyService.makeVerifyCustomer(data);
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
await getBannerList();
}
} else {
await getBannerList();
}
}
Future createUser() async {
setState(ViewState.Busy);
await _pharmacyService.createUser();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.ErrorLocal);
@ -75,9 +57,9 @@ class PharmacyModuleViewModel extends BaseViewModel {
}
}
Future generatePharmacyToken() async {
Future createUser() async {
setState(ViewState.Busy);
await _pharmacyService.generatePharmacyToken();
await _pharmacyService.createUser();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.ErrorLocal);
@ -87,13 +69,17 @@ class PharmacyModuleViewModel extends BaseViewModel {
}
Future getBannerList() async {
setState(ViewState.Busy);
await _pharmacyService.getBannerListList();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
_getTopManufacturerList();
if (bannerList.isEmpty) {
GifLoaderDialogUtils.showMyDialog(
locator<NavigationService>().navigatorKey.currentContext);
await _pharmacyService.getBannerListList();
GifLoaderDialogUtils.hideDialog(
locator<NavigationService>().navigatorKey.currentContext);
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
}
@ -107,41 +93,8 @@ class PharmacyModuleViewModel extends BaseViewModel {
return images;
}
_getTopManufacturerList() async {
await _pharmacyService.getTopManufacturerList();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
_getBestSellerProducts();
}
}
_getBestSellerProducts() async {
await _pharmacyService.getBestSellerProducts();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
_getLastVisitedProducts();
}
}
_getLastVisitedProducts() async {
await _pharmacyService.getLastVisitedProducts();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
//////////////////////////////////////////RecommendedProducts
getRecommendedProducts(productId) async {
hasError = false;
setState(ViewState.Busy);
getRecommendedProducts(productId) async {
setState(ViewState.Busy);
await _recommendedProductService.getRecommendedProducts(productId);
if (_recommendedProductService.hasError) {
error = _recommendedProductService.error;
@ -164,31 +117,4 @@ class PharmacyModuleViewModel extends BaseViewModel {
return false;
}
}
getPrescription() async {
setState(ViewState.Busy);
await _prescriptionService.getPrescription();
if (_prescriptionService.hasError) {
error = _prescriptionService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
///////////////////////or
// getPrescriptions() async {
// setState(ViewState.Busy);
// await _prescriptionsService.getPrescriptions();
// if (_prescriptionsService.hasError) {
// error = _prescriptionsService.error;
// setState(ViewState.Error);
// } else {
// _filterList();
// await _getPrescriptionsOrders();
// setState(ViewState.Idle);
// }
// }
}

@ -4,6 +4,9 @@ import 'package:diplomaticquarterapp/models/pharmacy/Wishlist.dart';
import 'package:diplomaticquarterapp/models/pharmacy/locationModel.dart';
import 'package:diplomaticquarterapp/models/pharmacy/productDetailModel.dart';
import 'package:diplomaticquarterapp/models/pharmacy/specification.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/product_detail_service.dart';
import '../../../locator.dart';
@ -35,7 +38,7 @@ class ProductDetailViewModel extends BaseViewModel{
Future getProductLocationData() async {
hasError = false;
setState(ViewState.Busy);
setState(ViewState.BusyLocal);
await _productDetailService.getProductAvailabiltyDetail();
if (_productDetailService.hasError) {
error = _productDetailService.error;
@ -46,7 +49,7 @@ class ProductDetailViewModel extends BaseViewModel{
Future notifyMe(customerId, itemID) async {
hasError = false;
setState(ViewState.Busy);
setState(ViewState.BusyLocal);
await _productDetailService.notifyMe(customerId, itemID);
if (_productDetailService.hasError) {
error = _productDetailService.error;
@ -57,7 +60,7 @@ class ProductDetailViewModel extends BaseViewModel{
Future addToCartData(quantity, itemID) async {
hasError = false;
setState(ViewState.Busy);
setState(ViewState.BusyLocal);
await _productDetailService.addToCart(quantity, itemID);
if (_productDetailService.hasError) {
error = _productDetailService.error;
@ -68,8 +71,13 @@ class ProductDetailViewModel extends BaseViewModel{
Future addToWishlistData(itemID) async {
hasError = false;
setState(ViewState.Busy);
setState(ViewState.BusyLocal);
GifLoaderDialogUtils.showMyDialog(
locator<NavigationService>().navigatorKey.currentContext);
await _productDetailService.addToWishlist(itemID);
GifLoaderDialogUtils.hideDialog(
locator<NavigationService>().navigatorKey.currentContext);
if (_productDetailService.hasError) {
error = _productDetailService.error;
setState(ViewState.ErrorLocal);
@ -89,10 +97,15 @@ class ProductDetailViewModel extends BaseViewModel{
}
Future deletWishlistData(itemID) async {
Future deleteWishlistData(itemID) async {
hasError = false;
setState(ViewState.Busy);
await _productDetailService.delteItemFromWishlist(itemID);
setState(ViewState.BusyLocal);
GifLoaderDialogUtils.showMyDialog(
locator<NavigationService>().navigatorKey.currentContext);
await _productDetailService.deleteItemFromWishlist(itemID);
GifLoaderDialogUtils.hideDialog(
locator<NavigationService>().navigatorKey.currentContext);
if (_productDetailService.hasError) {
error = _productDetailService.error;
setState(ViewState.ErrorLocal);
@ -112,4 +125,10 @@ class ProductDetailViewModel extends BaseViewModel{
setState(ViewState.Idle);
}
clearReview(){
productDetailService.clear();
}
}

@ -12,20 +12,9 @@ class WishListViewModel extends BaseViewModel{
bool hasError = false;
// Future getWishlistData() async {
// setState(ViewState.Busy);
// await _wishlistService.getWishlist();
// if (_wishlistService.hasError) {
// error = _wishlistService.error;
// setState(ViewState.Error);
// } else {
// setState(ViewState.Idle);
// }
// }
Future getWishlistData() async {
Future getWishlistData({isLocalLoader = false}) async {
hasError = false;
setState(ViewState.Busy);
setState(isLocalLoader ? ViewState.BusyLocal:ViewState.Busy);
await _wishlistService.getWishlist();
if (_wishlistService.hasError) {
error = _wishlistService.error;

@ -0,0 +1,27 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacy/pharmacy_categorise.dart';
import 'package:diplomaticquarterapp/core/service/pharmacy_categorise_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
class ProductCategoriesViewModel extends BaseViewModel {
bool hasError = false;
PharmacyCategoriseService _pharmacyCategoriseService =
locator<PharmacyCategoriseService>();
List<PharmacyCategorise> get categorise =>
_pharmacyCategoriseService.categoriseList;
Future getCategorise() async {
hasError = false;
// _insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _pharmacyCategoriseService.getCategorise();
if (_pharmacyCategoriseService.hasError) {
error = _pharmacyCategoriseService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
}

@ -11,7 +11,7 @@
/// fonts:
/// - asset: fonts/DQIcons.ttf
///
///
///
///
import 'package:flutter/widgets.dart';
@ -19,25 +19,80 @@ class DQIcons {
DQIcons._();
static const _kFontFam = 'DQIcons';
static const _kFontPkg = null;
static const String _kFontPkg = null;
static const IconData blood_pressure = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData bmi = IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData heart = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData outline = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData thermometer = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_scale = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData parking_icon = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_type_icon = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height_icon = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData online_payment_icon = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_medicine_icon = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_sign_icon = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_icon = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData my_medical_file = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData family = IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData calendar__2_ = IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData roboticon = IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_pressure =
IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood =
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData bmi =
IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData heart =
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height =
IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData outline =
IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData thermometer =
IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_scale =
IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData parking_icon =
IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_type_icon =
IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height_icon =
IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData online_payment_icon =
IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_medicine_icon =
IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_sign_icon =
IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_icon =
IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData my_medical_file =
IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData family =
IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData calendar__2_ =
IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData roboticon =
IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData cart_menu_icon =
IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData categories_menu_icon =
IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData hmg_logo_icon =
IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData user_menu_icon =
IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData cart_menu_icon_1 =
IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData categories_menu_icon_1 =
IconData(0xe819, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData hmg_logo_icon_1 =
IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData emo_cry =
IconData(0xe8b5, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData emo_shoot =
IconData(0xe8b6, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData emo_squint =
IconData(0xe8b7, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData emo_laugh =
IconData(0xe8b8, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData chrome =
IconData(0xe8c0, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData opera =
IconData(0xe8c1, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ie =
IconData(0xe8c2, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData crown =
IconData(0xe8c3, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData crown_plus =
IconData(0xe8c4, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData crown_minus =
IconData(0xe8c5, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData marquee =
IconData(0xe8c6, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/core/viewModels/ancillary_orders_view_model
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/user_information_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PharmacyAddressesViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/product_categories_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/order_model_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/weather/weather_view_model.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/cancelOrder_service.dart';
@ -121,6 +122,10 @@ import 'core/viewModels/offers_Categorise_view_model.dart';
import 'core/viewModels/packages_offers/PackagesOffersViewModel.dart';
import 'core/viewModels/pharmacies_view_model.dart';
import 'core/viewModels/pharmacyModule/OrderPreviewViewModel.dart';
import 'core/viewModels/pharmacyModule/BestSellerViewModel.dart';
import 'core/viewModels/pharmacyModule/BrandViewModel.dart';
import 'core/viewModels/pharmacyModule/LastVisitedViewModel.dart';
import 'core/viewModels/pharmacyModule/PrescriptionViewModel.dart';
import 'core/viewModels/pharmacyModule/brand_view_model.dart';
import 'core/viewModels/pharmacyModule/lacum-registration-viewModel.dart';
import 'core/viewModels/pharmacyModule/lacum-trasnfer-viewModel.dart';
@ -284,24 +289,29 @@ void setupLocator() {
locator.registerFactory(() => ProductDetailViewModel());
locator.registerFactory(() => WeatherViewModel());
locator.registerFactory(() => OrderPreviewViewModel());
// locator.registerFactory(() => OrderPreviewViewModel());
locator.registerFactory(() => LacumViewModel());
locator.registerFactory(() => LacumTranferViewModel());
locator.registerFactory(() => LacumRegistrationViewModel());
locator.registerFactory(() => EdOnlineViewModel());
locator.registerFactory(() => ProductCategoriesViewModel());
//pharmacy
locator.registerFactory(() => PharmacyCategoriseViewModel());
locator.registerFactory(() => OffersCategoriseViewModel());
locator.registerFactory(() => BariatricsViewModel());
locator.registerFactory(() => PrescriptionViewModel());
locator.registerFactory(() => BrandViewModel());
locator.registerFactory(() => BestSellerViewModel());
locator.registerFactory(() => LastVisitedViewModel());
// Offer And Packages
//----------------------
locator.registerLazySingleton(() => OffersAndPackagesServices()); // offerPackagesServices Service
locator.registerFactory(() => OfferCategoriesViewModel()); // Categories View Model
locator.registerFactory(() => PackagesViewModel()); // Products View Model
//pharmacy
// locator.registerFactory(() => PharmacyCategoriseViewModel());
// locator.registerFactory(() => OffersCategoriseViewModel());

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/analytics/google-analytics.dart';
import 'dart:io';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/routes.dart';
@ -8,14 +9,17 @@ import 'package:diplomaticquarterapp/theme/theme_notifier.dart';
import 'package:diplomaticquarterapp/theme/theme_value.dart';
import 'package:diplomaticquarterapp/uitl/LocalNotification.dart';
import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:in_app_update/in_app_update.dart';
import 'package:provider/provider.dart';
import 'config/size_config.dart';
import 'core/viewModels/pharmacyModule/OrderPreviewViewModel.dart';
import 'core/viewModels/project_view_model.dart';
import 'locator.dart';
import 'pages/pharmacies/compare-list.dart';
@ -34,12 +38,27 @@ class MyApp extends StatefulWidget {
}
class _MyApp extends State<MyApp> {
AppUpdateInfo _updateInfo;
Future<void> checkForUpdate() async {
InAppUpdate.checkForUpdate().then((info) {
if (info.updateAvailable) {
InAppUpdate.performImmediateUpdate().then((value) {}).catchError((e) => print(e.toString()));
}
}).catchError((e) {
print(e.toString());
});
}
@override
void initState() {
// ProjectViewModel projectProvider;
// projectProvider = Provider.of(context);
// var font = projectProvider.isArabic ? 'Cairo' : 'WorkSans';
// Re-enable once going live
// if (Platform.isAndroid) checkForUpdate();
ThemeNotifier(defaultTheme());
super.initState();
}
@ -82,10 +101,14 @@ class _MyApp extends State<MyApp> {
initialData: RobotProvider().setValue({}),
),
ChangeNotifierProvider<CompareList>(create: (context) => CompareList()),
ChangeNotifierProvider<OrderPreviewViewModel>(create: (context) => OrderPreviewViewModel()),
],
child: Consumer<ProjectViewModel>(
builder: (context, projectProvider, child) => MaterialApp(
navigatorObservers: [GAnalytics.shared.navObserver()],
// navigatorObservers: [
// GAnalytics.shared.navObserver()
// ],
navigatorKey: locator<NavigationService>().navigatorKey,
showSemanticsDebugger: false,
title: 'Diplomatic Quarter App',
locale: projectProvider.appLocal,

@ -23,31 +23,33 @@ class CheckActivationCodeReq {
bool isDentalAllowedBackend;
int deviceTypeID;
bool forRegisteration;
CheckActivationCodeReq(
{this.patientMobileNumber,
this.mobileNo,
this.deviceToken,
this.projectOutSA,
this.loginType,
this.zipCode,
this.isRegister,
this.logInTokenID,
this.searchType,
this.patientID,
this.nationalID,
this.patientIdentificationID,
this.activationCode,
this.isSilentLogin,
this.versionID,
this.channel,
this.languageID,
this.iPAdress,
this.generalid,
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID,
this.forRegisteration});
CheckActivationCodeReq({
this.patientMobileNumber,
this.mobileNo,
this.deviceToken,
this.projectOutSA,
this.loginType,
this.zipCode,
this.isRegister,
this.logInTokenID,
this.searchType,
this.patientID,
this.nationalID,
this.patientIdentificationID,
this.activationCode,
this.isSilentLogin,
this.versionID,
this.channel,
this.languageID,
this.iPAdress,
this.generalid,
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID,
this.forRegisteration,
});
CheckActivationCodeReq.fromJson(Map<String, dynamic> json) {
patientMobileNumber = json['PatientMobileNumber'];
@ -102,6 +104,7 @@ class CheckActivationCodeReq {
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['ForRegisteration'] = this.forRegisteration;
return data;
}
}

@ -0,0 +1,120 @@
class CheckActivationCodeRegisterReq {
int patientMobileNumber;
String mobileNo;
String deviceToken;
bool projectOutSA;
int loginType;
String zipCode;
bool isRegister;
String logInTokenID;
int searchType;
int patientID;
String nationalID;
String patientIdentificationID;
String activationCode;
bool isSilentLogin;
double versionID;
int channel;
int languageID;
String iPAdress;
String generalid;
int patientOutSA;
Null sessionID;
bool isDentalAllowedBackend;
int deviceTypeID;
bool forRegisteration;
String dob;
int isHijri;
String healthId;
CheckActivationCodeRegisterReq({
this.patientMobileNumber,
this.mobileNo,
this.deviceToken,
this.projectOutSA,
this.loginType,
this.zipCode,
this.isRegister,
this.logInTokenID,
this.searchType,
this.patientID,
this.nationalID,
this.patientIdentificationID,
this.activationCode,
this.isSilentLogin,
this.versionID,
this.channel,
this.languageID,
this.iPAdress,
this.generalid,
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID,
this.forRegisteration,
this.dob,
this.isHijri,
this.healthId,
});
CheckActivationCodeRegisterReq.fromJson(Map<String, dynamic> json) {
patientMobileNumber = json['PatientMobileNumber'];
mobileNo = json['MobileNo'];
deviceToken = json['DeviceToken'];
projectOutSA = json['ProjectOutSA'];
loginType = json['LoginType'];
zipCode = json['ZipCode'];
isRegister = json['isRegister'];
logInTokenID = json['LogInTokenID'];
searchType = json['SearchType'];
patientID = json['PatientID'];
nationalID = json['NationalID'];
patientIdentificationID = json['PatientIdentificationID'];
activationCode = json['activationCode'];
isSilentLogin = json['IsSilentLogin'];
versionID = json['VersionID'];
channel = json['Channel'];
languageID = json['LanguageID'];
iPAdress = json['IPAdress'];
generalid = json['generalid'];
patientOutSA = json['PatientOutSA'];
sessionID = json['SessionID'];
isDentalAllowedBackend = json['isDentalAllowedBackend'];
deviceTypeID = json['DeviceTypeID'];
forRegisteration = json['ForRegisteration'];
dob = json['DOB'];
isHijri = json['IsHijri'];
healthId = json['HealthId'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['PatientMobileNumber'] = this.patientMobileNumber;
data['MobileNo'] = this.mobileNo;
data['DeviceToken'] = this.deviceToken;
data['ProjectOutSA'] = this.projectOutSA;
data['LoginType'] = this.loginType;
data['ZipCode'] = this.zipCode;
data['isRegister'] = this.isRegister;
data['LogInTokenID'] = this.logInTokenID;
data['SearchType'] = this.searchType;
data['PatientID'] = this.patientID;
data['NationalID'] = this.nationalID;
data['PatientIdentificationID'] = this.patientIdentificationID;
data['activationCode'] = this.activationCode;
data['IsSilentLogin'] = this.isSilentLogin;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['LanguageID'] = this.languageID;
data['IPAdress'] = this.iPAdress;
data['generalid'] = this.generalid;
data['PatientOutSA'] = this.patientOutSA;
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['ForRegisteration'] = this.forRegisteration;
data['DOB'] = dob;
data['IsHijri'] = isHijri;
data['HealthId'] = healthId;
return data;
}
}

@ -1,7 +1,7 @@
class RegisterUserRequest {
Patientobject patientobject;
String patientIdentificationID;
int patientMobileNumber;
dynamic patientMobileNumber;
String logInTokenID;
double versionID;
int channel;
@ -12,7 +12,10 @@ class RegisterUserRequest {
Null sessionID;
bool isDentalAllowedBackend;
int deviceTypeID;
String dob;
int isHijri;
String healthId;
String zipCode;
RegisterUserRequest(
{this.patientobject,
this.patientIdentificationID,
@ -26,12 +29,14 @@ class RegisterUserRequest {
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID});
this.deviceTypeID,
this.dob,
this.isHijri,
this.healthId,
this.zipCode});
RegisterUserRequest.fromJson(Map<String, dynamic> json) {
patientobject = json['Patientobject'] != null
? new Patientobject.fromJson(json['Patientobject'])
: null;
patientobject = json['Patientobject'] != null ? new Patientobject.fromJson(json['Patientobject']) : null;
patientIdentificationID = json['PatientIdentificationID'];
patientMobileNumber = json['PatientMobileNumber'];
logInTokenID = json['LogInTokenID'];
@ -44,6 +49,10 @@ class RegisterUserRequest {
sessionID = json['SessionID'];
isDentalAllowedBackend = json['isDentalAllowedBackend'];
deviceTypeID = json['DeviceTypeID'];
dob = json['DOB'];
isHijri = json['IsHijri'];
healthId = json['HealthId'];
zipCode = json['ZipCode'];
}
Map<String, dynamic> toJson() {
@ -63,6 +72,10 @@ class RegisterUserRequest {
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['DOB'] = this.dob;
data['IsHijri'] = this.isHijri;
data['HealthId'] = this.healthId;
data['ZipCode'] = this.zipCode;
return data;
}
}
@ -71,7 +84,7 @@ class Patientobject {
bool tempValue;
int patientIdentificationType;
String patientIdentificationNo;
int mobileNumber;
dynamic mobileNumber;
int patientOutSA;
String firstName;
String middleName;

@ -22,6 +22,9 @@ class SendActivationRequest {
bool isDentalAllowedBackend;
int deviceTypeID;
String sMSSignature;
String dob;
int isHijri;
String healthId;
SendActivationRequest(
{this.patientMobileNumber,
this.mobileNo,
@ -45,7 +48,10 @@ class SendActivationRequest {
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID,
this.sMSSignature});
this.sMSSignature,
this.dob,
this.isHijri,
this.healthId});
SendActivationRequest.fromJson(Map<String, dynamic> json) {
patientMobileNumber = json['PatientMobileNumber'];
@ -71,6 +77,9 @@ class SendActivationRequest {
isDentalAllowedBackend = json['isDentalAllowedBackend'];
deviceTypeID = json['DeviceTypeID'];
sMSSignature = json['SMSSignature'];
dob = json['DOB'];
isHijri = json['IsHijri'];
healthId = json['HealthId'];
}
Map<String, dynamic> toJson() {
@ -98,6 +107,9 @@ class SendActivationRequest {
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['SMSSignature'] = sMSSignature;
data['DOB'] = dob;
data['IsHijri'] = isHijri;
data['HealthId'] = healthId;
return data;
}
}

@ -0,0 +1,26 @@
class WeeklyHeartRateResModel {
num valueAvg;
String machineDate;
int medCategoryID;
int patientID;
WeeklyHeartRateResModel(
{this.valueAvg, this.machineDate, this.medCategoryID, this.patientID});
WeeklyHeartRateResModel.fromJson(Map<String, dynamic> json) {
num value = json['ValueAvg'];
valueAvg = json['ValueAvg'] != null ? value.toInt() : 0;
machineDate = json['MachineDate'];
medCategoryID = json['MedCategoryID'];
patientID = json['PatientID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ValueAvg'] = this.valueAvg;
data['MachineDate'] = this.machineDate;
data['MedCategoryID'] = this.medCategoryID;
data['PatientID'] = this.patientID;
return data;
}
}

@ -0,0 +1,42 @@
class WeeklyStepsResModel {
int iD;
int patientID;
int medCategoryID;
int medSubCategoryID;
num value;
String machineDate;
bool patientOutSA;
dynamic notes;
bool isActive;
String createdOn;
WeeklyStepsResModel({this.iD, this.patientID, this.medCategoryID, this.medSubCategoryID, this.value, this.machineDate, this.patientOutSA, this.notes, this.isActive, this.createdOn});
WeeklyStepsResModel.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
patientID = json['PatientID'];
medCategoryID = json['MedCategoryID'];
medSubCategoryID = json['MedSubCategoryID'];
value = json['Value'] != null ? num.tryParse(json['Value']).toInt() : 0;
machineDate = json['MachineDate'];
patientOutSA = json['PatientOutSA'];
notes = json['Notes'];
isActive = json['IsActive'];
createdOn = json['CreatedOn'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['PatientID'] = this.patientID;
data['MedCategoryID'] = this.medCategoryID;
data['MedSubCategoryID'] = this.medSubCategoryID;
data['Value'] = this.value;
data['MachineDate'] = this.machineDate;
data['PatientOutSA'] = this.patientOutSA;
data['Notes'] = this.notes;
data['IsActive'] = this.isActive;
data['CreatedOn'] = this.createdOn;
return data;
}
}

@ -0,0 +1,37 @@
class YearlyHeartRateResModel {
num valueAvg;
int medCategoryID;
int month;
String monthName;
int patientID;
int year;
YearlyHeartRateResModel(
{this.valueAvg,
this.medCategoryID,
this.month,
this.monthName,
this.patientID,
this.year});
YearlyHeartRateResModel.fromJson(Map<String, dynamic> json) {
num value = json['ValueAvg'];
valueAvg = json['ValueAvg'] != null ? value.toInt() : 0;
medCategoryID = json['MedCategoryID'];
month = json['Month'];
monthName = json['MonthName'];
patientID = json['PatientID'];
year = json['Year'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ValueAvg'] = this.valueAvg;
data['MedCategoryID'] = this.medCategoryID;
data['Month'] = this.month;
data['MonthName'] = this.monthName;
data['PatientID'] = this.patientID;
data['Year'] = this.year;
return data;
}
}

@ -1,5 +1,5 @@
class YearlyStepsResModel {
double valueSum;
num valueSum;
int medCategoryID;
int month;
String monthName;
@ -21,6 +21,7 @@ class YearlyStepsResModel {
monthName = json['MonthName'];
patientID = json['PatientID'];
year = json['Year'];
valueSum = valueSum != null ? valueSum.toInt() : valueSum;
}
Map<String, dynamic> toJson() {

@ -13,7 +13,10 @@ Future<void> showCMCConfirmDialog(BuildContext context, String requestId, {Funct
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
ConfirmDialog(requestId,onClick: onClick,),
ConfirmDialog(
requestId,
onClick: onClick,
),
],
),
);
@ -36,7 +39,16 @@ class ConfirmDialog extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
width: 40,
height: 40,
margin: EdgeInsets.only(top: 20),
decoration: containerRadius(CustomColors.green, 200,),
child: Icon(Icons.done,color: Colors.white,),
),
mFlex(1),
IconButton(
icon: Icon(
@ -49,6 +61,7 @@ class ConfirmDialog extends StatelessWidget {
),
],
),
mHeight(12),
Text(
TranslationBase.of(context).RRTRequestSuccess,
textAlign: TextAlign.start,

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
@ -11,7 +12,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:provider/provider.dart';
@ -85,13 +86,13 @@ class _NewCMCPageState extends State<NewCMCPage> with TickerProviderStateMixin {
_context = context;
ProjectViewModel projectViewModel = Provider.of(context);
void showConfirmMessage(CMCViewModel model, GetOrderDetailByOrderIDResponseModel order) {
void showConfirmMessage(CMCViewModel model, GetCMCAllOrdersResponseModel order) {
showDialog(
context: context,
child: ConfirmCancelOrderDialog(
model: model,
child: ConfirmWithMessageDialog(
message: TranslationBase.of(context).cancelOrderMsg,
onTap: () async {
UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.presOrderID, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
Future.delayed(new Duration(milliseconds: 300)).then((value) async {
GifLoaderDialogUtils.showMyDialog(_context);
await model.updateCmcPresOrder(updatePresOrderRequestModel);
@ -108,38 +109,53 @@ class _NewCMCPageState extends State<NewCMCPage> with TickerProviderStateMixin {
));
}
int status = widget.model.pendingOrder != null ? widget.model.pendingOrder.statusId : 0;
String _statusDisp = widget.model.pendingOrder != null ? widget.model.pendingOrder.statusText : "";
Color _color;
if (status == 1) {
//pending
_color = Color(0xffCC9B14);
} else if (status == 2) {
//processing
_color = Color(0xff2E303A);
} else if (status == 3) {
//completed
_color = Color(0xff359846);
} else if (status == 4 || status == 6 || status == 7) {
//cancel // Rejected
_color = Color(0xffD02127);
}
return Scaffold(
body: SafeArea(
child: Container(
child: widget.model.cmcAllOrderDetail.length != 0 && widget.model.pendingOrder != null
child: widget.model.pendingOrder != null
? Column(
children: [
Container(
width: double.infinity,
padding: EdgeInsets.only(left: 12, right: 12, top: 12),
child: Card(
shape: cardRadius(12),
elevation: 2,
child: Container(
decoration: cardRadius(12),
margin: EdgeInsets.zero,
color: Color(0xffcd9e1b),
clipBehavior: Clip.antiAlias,
child: Container(
// decoration: containerColorRadiusLeft(Colors.white, 12),
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 8, right: projectViewModel.isArabic ? 8 : 0),
padding: EdgeInsets.all(12),
// color: Colors.white,
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
padding: EdgeInsets.symmetric(vertical: 14, horizontal: 12),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic ? Radius.zero : Radius.circular(12.0),
topRight: projectViewModel.isArabic ? Radius.circular(12.0) : Radius.zero,
bottomLeft: projectViewModel.isArabic ? Radius.zero : Radius.circular(12.0),
bottomRight: projectViewModel.isArabic ? Radius.circular(12.0) : Radius.zero,
bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
),
),
// clipBehavior: Clip.antiAlias,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Column(
@ -147,70 +163,82 @@ class _NewCMCPageState extends State<NewCMCPage> with TickerProviderStateMixin {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
// TranslationBase.of(context).OrderStatus +
// ' ' +
(projectViewModel.isArabic ? widget.model.pendingOrder.descriptionN : widget.model.pendingOrder.description),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
color: Color(0xffcd9e1b),
fontWeight: FontWeight.w700,
),
_statusDisp,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
),
mHeight(12),
SizedBox(height: 6),
Text(
TranslationBase.of(context).requestID + ' ' + widget.model.pendingOrder.iD.toString(),
style: TextStyle(
fontSize: 16,
letterSpacing: -0.48,
fontWeight: FontWeight.w700,
),
'${TranslationBase.of(context).requestID}: ${widget.model.pendingOrder.iD}',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
Text(
TranslationBase.of(context).serviceName,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w500,
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).hospital + ": ",
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
),
Expanded(
child: Text(
// !projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
widget.model.pendingOrder.projectName.trim().toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
],
),
Text(
!projectViewModel.isArabic ? widget.model.cmcAllOrderDetail[0].description.toString() : widget.model.cmcAllOrderDetail[0].descriptionN.toString(),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w700,
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).serviceName + ": ",
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
),
Expanded(
child: Text(
widget.model.pendingOrder.serviceText.trim().toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
],
),
],
),
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.model.cmcAllOrderDetail[0].createdOn)),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w700,
),
DateUtil.getDayMonthYearDateFormatted(DateTime.tryParse(widget.model.pendingOrder.created)),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
mHeight(8),
SecondaryButton(
onTap: () {
showConfirmMessage(widget.model, widget.model.cmcAllOrderDetail[0]);
},
label: TranslationBase.of(context).cancel,
color: Colors.red[900],
small: true,
)
SizedBox(height: 12),
if (widget.model.pendingOrder.statusId == 1 || widget.model.pendingOrder.statusId == 2)
InkWell(
onTap: () {
showConfirmMessage(widget.model, widget.model.pendingOrder);
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14),
decoration: BoxDecoration(
color: Color(0xffD02127),
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.circular(10),
),
child: Text(
TranslationBase.of(context).cancel_nocaps,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.4),
),
),
),
],
),
],
),
),
),
),
)
],
)
: Container(

@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_v
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_dialog.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
@ -92,9 +93,8 @@ class _NewCMCStepThreePageState extends State<NewCMCStepThreePage> {
SizedBox(
height: 12,
),
Card(
shape: cardRadius(12),
elevation: 4,
Container(
decoration: cardRadius(12),
child: Container(
padding: EdgeInsets.all(8),
child: Column(
@ -118,10 +118,9 @@ class _NewCMCStepThreePageState extends State<NewCMCStepThreePage> {
height: 200,
decoration: containerColorRadiusBorder(Colors.white, 12, Colors.grey),
clipBehavior: Clip.antiAlias,
child: Card(
shape: cardRadius(12),
child: Container(
decoration: cardRadius(12),
clipBehavior: Clip.antiAlias,
elevation: 0,
margin: const EdgeInsets.all(0),
// child: GoogleMap(
// mapType: MapType.normal,
@ -214,7 +213,9 @@ class _NewCMCStepThreePageState extends State<NewCMCStepThreePage> {
Navigator.pop(context);
},
);
} else {}
} else {
AppToast.showErrorToast(message: widget.model.error);
}
},
textColor: Theme.of(context).backgroundColor),
),

@ -161,10 +161,9 @@ class _NewCMCStepTowPageState extends State<NewCMCStepTowPage> {
body: Column(
children: [
if (widget.model.addressesList.isNotEmpty)
Card(
Container(
margin: EdgeInsets.only(left: 12, right: 12, bottom: 12, top: 12),
shape: cardRadius(12),
elevation: 3,
decoration: cardRadius(12),
child: Container(
child: InkWell(
onTap: () => confirmSelectLocationDialog(widget.model.addressesList),

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
@ -28,7 +29,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
void showConfirmMessage(CMCViewModel model, GetHHCAllPresOrdersResponseModel order) {
void showConfirmMessage(CMCViewModel model, GetCMCAllOrdersResponseModel order) {
showDialog(
context: context,
child: ConfirmWithMessageDialog(
@ -89,10 +90,10 @@ class OrdersLogDetailsPage extends StatelessWidget {
padding: EdgeInsets.all(21),
physics: BouncingScrollPhysics(),
itemBuilder: (context, index) {
GetHHCAllPresOrdersResponseModel order = model.cmcAllPresOrders[index];
GetCMCAllOrdersResponseModel order = model.cmcAllPresOrders[index];
int status = order.status;
String _statusDisp = projectViewModel.isArabic ? order.descriptionN : order.description;
int status = order.statusId;
String _statusDisp = order.statusText;
Color _color;
if (status == 1) {
//pending
@ -103,7 +104,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
} else if (status == 3) {
//completed
_color = Color(0xff359846);
} else if (status == 4) {
} else if (status == 4 || status == 6 || status == 7) {
//cancel // Rejected
_color = Color(0xffD02127);
}
@ -162,7 +163,8 @@ class OrdersLogDetailsPage extends StatelessWidget {
),
Expanded(
child: Text(
!projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
// !projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
order.projectName.trim().toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
@ -176,11 +178,11 @@ class OrdersLogDetailsPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(order.createdOn)),
DateUtil.getDayMonthYearDateFormatted(DateTime.tryParse(order.created)),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
SizedBox(height: 12),
if (order.status == 1 || order.status == 2)
if (order.statusId == 1 || order.statusId == 2)
InkWell(
onTap: () {
showConfirmMessage(model, order);

@ -36,6 +36,7 @@ class NewEReferralStepOnePage extends StatefulWidget {
class _NewEReferralStepOnePageState extends State<NewEReferralStepOnePage> {
TextEditingController _nameTextController = TextEditingController();
TextEditingController _requesterRelationTextController = TextEditingController();
GetAllRelationshipTypeResponseModel _selectedRelation;
String email;
@ -166,22 +167,26 @@ class _NewEReferralStepOnePageState extends State<NewEReferralStepOnePage> {
),
),
),
SizedBox(
height: 12,
),
if (_selectedRelation != null && _selectedRelation.iD == 5)
inputWidget(TranslationBase.of(context).requesterRelationship, "", _requesterRelationTextController, isInputTypeNum: false),
],
),
),
),
),
Card(
Container(
margin: EdgeInsets.zero,
shape: cardRadius(0),
elevation: 20,
decoration: cardRadius(0),
child: Container(
// color: Theme.of(context).scaffoldBackgroundColor,
padding: EdgeInsets.all(12),
width: double.infinity,
child: DefaultButton(
TranslationBase.of(context).next,
(_nameTextController.text.isEmpty || _selectedRelation == null || mobileNo.isEmpty)
(_nameTextController.text.isEmpty || _selectedRelation == null || mobileNo.isEmpty || (_selectedRelation.iD == 5 && _requesterRelationTextController.text.isEmpty))
? null
: () async {
Future.delayed(new Duration(milliseconds: 300)).then((value) async {
@ -223,7 +228,8 @@ class _NewEReferralStepOnePageState extends State<NewEReferralStepOnePage> {
Navigator.of(context).pop();
widget.changePageViewIndex(1);
widget.createEReferralRequestModel.requesterName = _nameTextController.text;
widget.createEReferralRequestModel.requesterContactNo = _selectedCountry['code'].toString().substring(1) + mobileNo;
widget.createEReferralRequestModel.requesterContactNo = _selectedCountry['code'].toString() + mobileNo;
widget.createEReferralRequestModel.otherRelationship = _requesterRelationTextController.text;
widget.createEReferralRequestModel.requesterRelationship = _selectedRelation.iD;
}
});

@ -7,11 +7,11 @@ import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_dialog.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -22,7 +22,6 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../dialogs/select_city_dialog.dart';
@ -111,11 +110,10 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
fontWeight: FontWeight.w600,
),
),
...List.generate(
medicalReportImages.length,
(index) => Container(
padding: EdgeInsets.only(top: 6,bottom: 6),
padding: EdgeInsets.only(top: 6, bottom: 6),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
@ -154,7 +152,7 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
);
},
child: Padding(
padding: EdgeInsets.only(top: 12,bottom: 12),
padding: EdgeInsets.only(top: 12, bottom: 12),
child: Text(
TranslationBase.of(context).selectAttachment,
style: TextStyle(
@ -257,10 +255,8 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
Padding(
padding: const EdgeInsets.all(5.0),
child: Text(
TranslationBase.of(context).insuredPatientReferral, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600
),
TranslationBase.of(context).insuredPatientReferral,
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600),
),
),
],
@ -297,11 +293,10 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
fontWeight: FontWeight.w600,
),
),
...List.generate(
insuredPatientImages.length,
(index) => Container(
padding: EdgeInsets.only(top: 6,bottom: 6),
padding: EdgeInsets.only(top: 6, bottom: 6),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
@ -339,7 +334,7 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
});
},
child: Padding(
padding: const EdgeInsets.only(top: 12,bottom: 12),
padding: const EdgeInsets.only(top: 12, bottom: 12),
child: Text(
TranslationBase.of(context).selectAttachment,
style: TextStyle(
@ -378,16 +373,23 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
this.widget.createEReferralRequestModel.insuranceCardAttachment = insuredPatientImages.length != 0 ? insuredPatientImages[0] : null;
this.widget.createEReferralRequestModel.isInsuredPatient = isPatientInsured;
// ToDo make the preferred Branch info dynamic
this.widget.createEReferralRequestModel.preferredBranchCode = num.tryParse(projectDropdownValue.split(",")[0]);
this.widget.createEReferralRequestModel.preferredBranchName = projectDropdownValue.split(",")[1];
this.widget.createEReferralRequestModel.otherRelationship = "";
this.widget.createEReferralRequestModel.preferredBranchCode = projectDropdownValue != null && projectDropdownValue.isNotEmpty ? num.tryParse(projectDropdownValue.split(",")[0]) : 0;
this.widget.createEReferralRequestModel.preferredBranchName = projectDropdownValue != null && projectDropdownValue.isNotEmpty ? projectDropdownValue.split(",")[1] : "";
// this.widget.createEReferralRequestModel.otherRelationship = "";
await model.createEReferral(this.widget.createEReferralRequestModel);
if (model.state == ViewState.ErrorLocal) {
GifLoaderDialogUtils.hideDialog(context);
Utils.showErrorToast(model.error);
} else {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showSuccessToast(message: TranslationBase.of(context).ereferralSaveSuccess);
// AppToast.showSuccessToast(message: TranslationBase.of(context).ereferralSaveSuccess);
showCMCConfirmDialog(
context,
model.referralNumber,
onClick: () {
Navigator.pop(context);
},
);
}
});
},
@ -469,7 +471,6 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
);
}
String getRelationName() {
if (_selectedCity != null)
return _selectedCity.description;

@ -166,10 +166,9 @@ class _NewEReferralStepTowPageState extends State<NewEReferralStepTowPage> {
),
),
),
Card(
Container(
margin: EdgeInsets.zero,
shape: cardRadius(0),
elevation: 20,
decoration: cardRadius(0),
child: Container(
width: double.infinity,
padding: EdgeInsets.all(12),
@ -181,7 +180,7 @@ class _NewEReferralStepTowPageState extends State<NewEReferralStepTowPage> {
this.widget.changePageViewIndex(2);
this.widget.createEReferralRequestModel.identificationNo = int.parse(_patientIdentificationTextController.text);
this.widget.createEReferralRequestModel.fullName = _patientNameTextController.text;
this.widget.createEReferralRequestModel.patientMobileNumber = _selectedCountry['code'].toString().substring(1) + mobileNo;
this.widget.createEReferralRequestModel.patientMobileNumber = _selectedCountry['code'].toString() + mobileNo;
this.widget.createEReferralRequestModel.cityCode = _selectedCity.iD.toString();
this.widget.createEReferralRequestModel.cityName = _selectedCity.description;
},

@ -29,11 +29,9 @@ class _ReferralDetailsState extends State<ReferralDetails> {
children: [
Container(
width: double.infinity,
child: Card(
elevation: 0.0,
shape: cardRadius(12),
margin:
EdgeInsets.only(left: 16, top: 8, right: 16, bottom: 16),
child: Container(
decoration: cardRadius(12),
margin: EdgeInsets.only(left: 16, top: 8, right: 16, bottom: 16),
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Column(
@ -41,13 +39,7 @@ class _ReferralDetailsState extends State<ReferralDetails> {
children: [
Container(
margin: EdgeInsets.only(bottom: 10.0),
child: Text(
TranslationBase.of(context).ereferral,
style: TextStyle(
letterSpacing: -0.64,
color: Colors.black,
fontSize: 18.0,
fontWeight: FontWeight.bold)),
child: Text(TranslationBase.of(context).ereferral, style: TextStyle(letterSpacing: -0.64, color: Colors.black, fontSize: 18.0, fontWeight: FontWeight.bold)),
),
Container(
width: double.infinity,
@ -55,15 +47,10 @@ class _ReferralDetailsState extends State<ReferralDetails> {
child: Row(
children: [
Expanded(
child: _getNormalText(
TranslationBase.of(context).referralStatus),
child: _getNormalText(TranslationBase.of(context).referralStatus),
),
Expanded(
child: _getNormalText(
projectViewModel.isArabic
? widget.referral.statusAr
: widget.referral.status,
isBold: true),
child: _getNormalText(projectViewModel.isArabic ? widget.referral.statusAr : widget.referral.status, isBold: true),
)
],
),
@ -75,13 +62,10 @@ class _ReferralDetailsState extends State<ReferralDetails> {
child: Row(
children: [
Expanded(
child: _getNormalText(
TranslationBase.of(context).patientName),
child: _getNormalText(TranslationBase.of(context).patientName),
),
Expanded(
child: _getNormalText(
widget.referral.patientName,
isBold: true),
child: _getNormalText(widget.referral.patientName, isBold: true),
)
],
),
@ -93,13 +77,10 @@ class _ReferralDetailsState extends State<ReferralDetails> {
child: Row(
children: [
Expanded(
child: _getNormalText(
TranslationBase.of(context).referralNumber),
child: _getNormalText(TranslationBase.of(context).referralNumber),
),
Expanded(
child: _getNormalText(
widget.referral.referralNumber.toString(),
isBold: true),
child: _getNormalText(widget.referral.referralNumber.toString(), isBold: true),
)
],
),
@ -111,15 +92,10 @@ class _ReferralDetailsState extends State<ReferralDetails> {
child: Row(
children: [
Expanded(
child: _getNormalText(
TranslationBase.of(context).referralDate),
child: _getNormalText(TranslationBase.of(context).referralDate),
),
Expanded(
child: _getNormalText(
DateUtil.getDayMonthYearDateFormatted(
DateUtil.convertStringToDateNoTimeZone(
widget.referral.referralDate)),
isBold: true),
child: _getNormalText(DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDateNoTimeZone(widget.referral.referralDate)), isBold: true),
)
],
),
@ -131,13 +107,10 @@ class _ReferralDetailsState extends State<ReferralDetails> {
child: Row(
children: [
Expanded(
child: _getNormalText(
TranslationBase.of(context).hospital),
child: _getNormalText(TranslationBase.of(context).hospital),
),
Expanded(
child: _getNormalText(
widget.referral.preferredBranchName,
isBold: true),
child: _getNormalText(widget.referral.preferredBranchName ?? "", isBold: true),
)
],
),

@ -12,6 +12,8 @@ import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
import 'package:diplomaticquarterapp/widgets/my_rich_text.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
@ -202,9 +204,8 @@ class _SearchForReferralsPageState extends State<SearchForReferralsPage> {
),
);
},
child: Card(
elevation: 0.0,
shape: cardRadius(12),
child: Container(
decoration: cardRadius(12),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Row(
@ -217,9 +218,9 @@ class _SearchForReferralsPageState extends State<SearchForReferralsPage> {
style: TextStyle(fontSize: 14.0, letterSpacing: -0.56, fontWeight: FontWeight.bold)),
Container(
margin: EdgeInsets.only(top: 5.0),
child: myRichText(TranslationBase.of(context).patientName + ": ", model.allReferral[index].patientName, projectViewModel.isArabic)),
myRichText(TranslationBase.of(context).hospital + ": ", model.allReferral[index].preferredBranchName, projectViewModel.isArabic),
myRichText(TranslationBase.of(context).referralDate + ": ",
child: MyRichText(TranslationBase.of(context).patientName + ": ", model.allReferral[index].patientName, projectViewModel.isArabic)),
MyRichText(TranslationBase.of(context).hospital + ": ", model.allReferral[index].preferredBranchName, projectViewModel.isArabic),
MyRichText(TranslationBase.of(context).referralDate + ": ",
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDateNoTimeZone(model.allReferral[index].referralDate)), projectViewModel.isArabic),
],
),

@ -7,9 +7,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
@ -49,6 +47,7 @@ class _NewHomeHealthCareStepOnePageState extends State<NewHomeHealthCareStepOneP
Expanded(
child: ListView.separated(
physics: BouncingScrollPhysics(),
shrinkWrap: true,
padding: EdgeInsets.only(left: 21, right: 21, top: 12, bottom: 12),
itemBuilder: (context, index) {
HHCGetAllServicesResponseModel service = widget.model.hhcAllServicesList[index];
@ -58,19 +57,19 @@ class _NewHomeHealthCareStepOnePageState extends State<NewHomeHealthCareStepOneP
child: Row(
children: [
Checkbox(
value: isServiceSelected(service.serviceID),
value: isServiceSelected(num.tryParse(service.serviceID)),
activeColor: Color(0xffD02127),
tristate: false,
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
onChanged: (bool newValue) {
setState(() {
if (!isServiceSelected(service.serviceID))
if (!isServiceSelected(num.tryParse(service.serviceID)))
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.add(PatientERHHCInsertServicesList(
recordID: widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length,
serviceID: service.serviceID,
serviceName: projectViewModel.isArabic ? service.descriptionN : service.description));
serviceID: num.tryParse(service.serviceID),
serviceName: projectViewModel.isArabic ? service.textN : service.text));
else
removeSelected(service.serviceID);
removeSelected(num.tryParse(service.serviceID));
// widget.patientERInsertPresOrderRequestModel
// isPatientInsured = newValue;
});
@ -78,7 +77,7 @@ class _NewHomeHealthCareStepOnePageState extends State<NewHomeHealthCareStepOneP
SizedBox(width: 6),
Expanded(
child: Text(
projectViewModel.isArabic ? service.descriptionN : service.description.toLowerCase()?.capitalize(),
projectViewModel.isArabic ? service.textN : service.text.toLowerCase()?.capitalize(),
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64),
@ -96,7 +95,7 @@ class _NewHomeHealthCareStepOnePageState extends State<NewHomeHealthCareStepOneP
),
Container(
color: Colors.white,
padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21),
padding: EdgeInsets.all(16),
child: DefaultButton(
TranslationBase.of(context).next,
(this.widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length == 0 || widget.model.state == ViewState.BusyLocal)
@ -104,9 +103,6 @@ class _NewHomeHealthCareStepOnePageState extends State<NewHomeHealthCareStepOneP
: () async {
widget.model.setState(ViewState.Busy);
await widget.model.getCustomerInfo();
// if (widget.model.state == ViewState.ErrorLocal) {
// Utils.showErrorToast();
// } else {
Navigator.push(
context,
FadePage(

@ -4,9 +4,13 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_dialog.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -15,8 +19,6 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_dialog.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
class NewHomeHealthCareStepThreePage extends StatefulWidget {
final PatientERInsertPresOrderRequestModel patientERInsertPresOrderRequestModel;
@ -84,45 +86,60 @@ class _NewHomeHealthCareStepThreePageState extends State<NewHomeHealthCareStepTh
)),
Container(
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(12)),
padding: EdgeInsets.all(8),
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(TranslationBase.of(context).selectedLocation, fontWeight: FontWeight.bold),
Text(
TranslationBase.of(context).selectedLocation,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: CustomColors.textColor,
letterSpacing: -0.56,
),
),
SizedBox(
height: 12,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 200,
// child: GoogleMap(
// mapType: MapType.normal,
// markers: markers,
// initialCameraPosition: _kGooglePlex,
// onMapCreated: (GoogleMapController controller) {
// _controller.complete(controller);
// },
// ),
child: Image.network(
"https://maps.googleapis.com/maps/api/staticmap?center=" +
widget.patientERInsertPresOrderRequestModel.latitude.toString() +
"," +
widget.patientERInsertPresOrderRequestModel.longitude.toString() +
"&zoom=16&size=600x300&maptype=roadmap&markers=color:red%7C" +
widget.patientERInsertPresOrderRequestModel.latitude.toString() +
"," +
widget.patientERInsertPresOrderRequestModel.longitude.toString() +
"&key=AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8",
width: double.infinity,
height: double.infinity,
fit: BoxFit.cover,
)),
),
Container(
height: 200,
// child: GoogleMap(
// mapType: MapType.normal,
// markers: markers,
// initialCameraPosition: _kGooglePlex,
// onMapCreated: (GoogleMapController controller) {
// _controller.complete(controller);
// },
// ),
decoration: containerColorRadiusBorderWidth(Colors.transparent, 12,Colors.transparent,0.5),
clipBehavior: Clip.antiAlias,
child: Image.network(
"https://maps.googleapis.com/maps/api/staticmap?center=" +
widget.patientERInsertPresOrderRequestModel.latitude.toString() +
"," +
widget.patientERInsertPresOrderRequestModel.longitude.toString() +
"&zoom=16&size=600x300&maptype=roadmap&markers=color:red%7C" +
widget.patientERInsertPresOrderRequestModel.latitude.toString() +
"," +
widget.patientERInsertPresOrderRequestModel.longitude.toString() +
"&key=AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8",
width: double.infinity,
height: double.infinity,
fit: BoxFit.cover,
)),
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).selectedService),
Text(
TranslationBase.of(context).selectedService,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: CustomColors.textColor,
letterSpacing: -0.56,
),
),
...List.generate(
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length,
(index) => Container(
@ -138,13 +155,23 @@ class _NewHomeHealthCareStepThreePageState extends State<NewHomeHealthCareStepTh
),
Row(
children: [
Texts(
Text(
(index + 1).toString() + '. ',
fontSize: 15,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: CustomColors.black,
letterSpacing: -0.48,
),
),
Texts(
Text(
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList[index].serviceName,
fontSize: 15,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: CustomColors.black,
letterSpacing: -0.48,
),
),
],
)
@ -173,15 +200,19 @@ class _NewHomeHealthCareStepThreePageState extends State<NewHomeHealthCareStepTh
widget.model.setState(ViewState.Busy);
widget.model.insertPresPresOrder(order: widget.patientERInsertPresOrderRequestModel).then((value) {
widget.model.setState(ViewState.Idle);
if (widget.model.orderId != null) {
showCMCConfirmDialog(
context,
widget.model.orderId.toString(),
onClick: () {
Navigator.popUntil(context, (route) => Utils.route(route, equalsTo: HomeHealthCarePage));
Navigator.push(context, FadePage(page: HomeHealthCarePage()));
},
);
if (widget.model.state != ViewState.ErrorLocal) {
if (widget.model.orderId != null) {
showCMCConfirmDialog(
context,
widget.model.orderId.toString(),
onClick: () {
Navigator.popUntil(context, (route) => Utils.route(route, equalsTo: HomeHealthCarePage));
Navigator.push(context, FadePage(page: HomeHealthCarePage()));
},
);
}
} else {
AppToast.showErrorToast(message: widget.model.error);
}
});
},

@ -141,10 +141,9 @@ class _NewHomeHealthCareStepTowPageState extends State<NewHomeHealthCareStepTowP
body: Column(
children: [
if (widget.model.addressesList.isNotEmpty)
Card(
Container(
margin: EdgeInsets.only(left: 12, right: 12, bottom: 12, top: 12),
shape: cardRadius(12),
elevation: 3,
decoration: cardRadius(12),
child: Container(
child: InkWell(
onTap: () => confirmSelectLocationDialog(widget.model.addressesList),

@ -1,17 +1,15 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/Dialog/confirm_cancel_order_dialog.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:provider/provider.dart';
@ -66,14 +64,14 @@ class _NewHomeHealthCarePageState extends State<NewHomeHealthCarePage> with Tick
@override
Widget build(BuildContext context) {
void showConfirmMessage(HomeHealthCareViewModel model, GetOrderDetailByOrderIDResponseModel order) {
void showConfirmMessage(HomeHealthCareViewModel model, GetCMCAllOrdersResponseModel order) {
showDialog(
context: context,
child: ConfirmCancelOrderDialog(
model: model,
child: ConfirmWithMessageDialog(
message: TranslationBase.of(context).cancelOrderMsg,
onTap: () async {
model.setState(ViewState.Busy);
UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.presOrderID, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
await model.updateHHCPresOrder(updatePresOrderRequestModel);
if (model.state == ViewState.ErrorLocal) {
@ -147,7 +145,7 @@ class _NewHomeHealthCarePageState extends State<NewHomeHealthCarePage> with Tick
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
(projectViewModel.isArabic ? widget.model.pendingOrder.descriptionN : widget.model.pendingOrder.description),
widget.model.pendingOrder.statusText,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xffCC9B14), letterSpacing: -0.4, height: 16 / 10),
),
SizedBox(height: 6),
@ -188,14 +186,14 @@ class _NewHomeHealthCarePageState extends State<NewHomeHealthCarePage> with Tick
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.model.pendingOrder.createdOn)),
DateUtil.getDayMonthYearDateFormatted(DateTime.tryParse(widget.model.pendingOrder.created)),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
SizedBox(height: 12),
if (widget.model.pendingOrder.status == 1 || widget.model.pendingOrder.status == 2)
if (widget.model.pendingOrder.statusId == 1 || widget.model.pendingOrder.statusId == 2)
InkWell(
onTap: () {
showConfirmMessage(widget.model, widget.model.hhcAllOrderDetail[0]);
showConfirmMessage(widget.model, widget.model.pendingOrder);
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14),

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
@ -24,7 +25,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
void showConfirmMessage(HomeHealthCareViewModel model, GetHHCAllPresOrdersResponseModel order) {
void showConfirmMessage(HomeHealthCareViewModel model, GetCMCAllOrdersResponseModel order) {
showDialog(
context: context,
child: ConfirmWithMessageDialog(
@ -75,10 +76,10 @@ class OrdersLogDetailsPage extends StatelessWidget {
padding: EdgeInsets.all(21),
physics: BouncingScrollPhysics(),
itemBuilder: (context, index) {
GetHHCAllPresOrdersResponseModel order = model.hhcAllPresOrders[index];
GetCMCAllOrdersResponseModel order = model.hhcAllPresOrders[index];
int status = order.status;
String _statusDisp = projectViewModel.isArabic ? order.descriptionN : order.description;
int status = order.statusId;
String _statusDisp = order.statusText;
Color _color;
if (status == 1) {
//pending
@ -89,7 +90,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
} else if (status == 3) {
//completed
_color = Color(0xff359846);
} else if (status == 4) {
} else if (status == 4 || status == 6 || status == 7) {
//cancel // Rejected
_color = Color(0xffD02127);
}
@ -148,7 +149,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
),
Expanded(
child: Text(
!projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
order.nearestProjectName.toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
@ -162,11 +163,11 @@ class OrdersLogDetailsPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(order.createdOn)),
DateUtil.getDayMonthYearDateFormatted(DateTime.tryParse(order.created)),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
SizedBox(height: 12),
if (order.status == 1 || order.status == 2)
if (order.statusId == 1 || order.statusId == 2)
InkWell(
onTap: () {
showConfirmMessage(model, order);

@ -15,6 +15,8 @@ import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/parking_page.da
import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/child_vaccines_page.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/new/child_initial_page.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/new/child_vaccine_page.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/findus/findus_page.dart';
import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-drivethru-location.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart';
@ -277,7 +279,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(page: ChildVaccinesPage()),
FadePage(page: ChildInitialPage()),
),
imageLocation: 'assets/images/new-design/children_vaccines_icon.png',
title: TranslationBase.of(context).childVaccine,

@ -0,0 +1,238 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/weather_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/hmg_services.dart';
import 'package:diplomaticquarterapp/pages/landing/widgets/services_view.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/location_util.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:provider/provider.dart';
import 'health-weather/health-weather-indicator.dart';
class AllHabibMedicalSevicePage2 extends StatefulWidget {
@override
_AllHabibMedicalSevicePage2State createState() => _AllHabibMedicalSevicePage2State();
}
class _AllHabibMedicalSevicePage2State extends State<AllHabibMedicalSevicePage2> {
List<HmgServices> hmgServices = [];
LocationUtils locationUtils;
var weather = '--';
AppSharedPreferences sharedPref = AppSharedPreferences();
AuthenticatedUser authUser = new AuthenticatedUser();
AuthProvider authProvider = new AuthProvider();
WeatherService _weatherService = WeatherService();
double weatherNum = 30;
@override
void initState() {
// TODO: implement initState
super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance.addPostFrameCallback((_) => {Geolocator.getLastKnownPosition().then((value) => setLocation(value))});
});
// getPatientAppointmentHistory1();
// getFamilyFiles();
}
initialiseHmgServices(bool isLogin) {
hmgServices.clear();
hmgServices.add(new HmgServices(0, TranslationBase.of(context).liveCareTitle, TranslationBase.of(context).liveCareSubtitle, "assets/images/new/Live_Care.svg", isLogin));
hmgServices.add(new HmgServices(1, TranslationBase.of(context).covidTest, TranslationBase.of(context).driveThru, "assets/images/new/covid_test_drive_thru.svg", isLogin));
hmgServices.add(new HmgServices(2, TranslationBase.of(context).onlinePayment, TranslationBase.of(context).onlinePaymentSubtitle, "assets/images/new/paymentMethods.png", isLogin));
hmgServices.add(new HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin));
hmgServices.add(new HmgServices(4, TranslationBase.of(context).cmcTitle, TranslationBase.of(context).cmcSubtitle, "assets/images/new/comprehensive_checkup.svg", isLogin));
hmgServices.add(new HmgServices(5, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin));
hmgServices.add(new HmgServices(6, TranslationBase.of(context).ereferralTitle, TranslationBase.of(context).ereferralSubtitle, "assets/images/new/E_Referral.svg", isLogin));
hmgServices.add(new HmgServices(7, TranslationBase.of(context).waterTitle, TranslationBase.of(context).waterSubtitle, "assets/images/new/h2o.svg", isLogin));
hmgServices.add(new HmgServices(8, TranslationBase.of(context).findUs, TranslationBase.of(context).reachUs, "assets/images/new/reach_us.svg", isLogin));
hmgServices.add(new HmgServices(9, TranslationBase.of(context).medicalFileTitle2, TranslationBase.of(context).medicalFileSubtitle, "assets/images/new/medical file.svg", isLogin));
hmgServices.add(new HmgServices(10, TranslationBase.of(context).book, TranslationBase.of(context).appointmentLabel, "assets/images/new/book appointment.svg", isLogin));
hmgServices.add(new HmgServices(11, TranslationBase.of(context).pharmacyTitle, TranslationBase.of(context).pharmacySubtitle, "assets/images/new/Pharmacy.svg", isLogin));
hmgServices.add(new HmgServices(12, TranslationBase.of(context).updateInsurance, TranslationBase.of(context).updateInsuranceSubtitle, "assets/images/new/update insurance card.svg", isLogin));
hmgServices.add(new HmgServices(13, TranslationBase.of(context).familyTitle, TranslationBase.of(context).familySubtitle, "assets/images/new/my family.svg", isLogin));
hmgServices.add(new HmgServices(14, TranslationBase.of(context).My_Child, TranslationBase.of(context).Vaccines, "assets/images/new/child vaccines.svg", isLogin));
hmgServices.add(new HmgServices(15, TranslationBase.of(context).Todo, TranslationBase.of(context).list, "assets/images/new/todo.svg", isLogin));
hmgServices.add(new HmgServices(16, TranslationBase.of(context).Blood, TranslationBase.of(context).Donation, "assets/images/new/blood donation.svg", isLogin));
hmgServices.add(new HmgServices(17, TranslationBase.of(context).healthCalculatorTitle, TranslationBase.of(context).healthCalculatorSubtitle, "assets/images/new/health calculator.svg", isLogin));
hmgServices.add(new HmgServices(18, TranslationBase.of(context).healthConvertersTitle, TranslationBase.of(context).healthConvertersSubtitle, "assets/images/new/health converter.svg", isLogin));
hmgServices.add(new HmgServices(19, TranslationBase.of(context).smartWatches.split(" ")[0], TranslationBase.of(context).smartWatches.split(" ")[1], "assets/images/new/smart watch.svg", isLogin));
hmgServices.add(new HmgServices(20, TranslationBase.of(context).parkingTitle2, TranslationBase.of(context).parkingSubtitle, "assets/images/new/parking details.svg", isLogin));
hmgServices.add(new HmgServices(21, TranslationBase.of(context).Virtual, TranslationBase.of(context).Tour, "assets/images/new/virtual tour.svg", isLogin));
hmgServices.add(new HmgServices(22, TranslationBase.of(context).latestNews.split(" ")[0], TranslationBase.of(context).latestNews.split(" ")[1], "assets/images/new/latest news.svg", isLogin));
}
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
initialiseHmgServices(false);
return AppScaffold(
isShowAppBar: true,
isShowDecPage: false,
showNewAppBar: true,
showNewAppBarTitle: true,
appBarTitle: TranslationBase.of(context).alhabiServices,
body: Container(
width: double.infinity,
height: double.infinity,
child: SingleChildScrollView(
child: Column(
children: [
AspectRatio(
aspectRatio: 1.9,
child: Container(
width: double.infinity,
height: double.infinity,
decoration: containerRadiusWithGradient(0,
color1: timeCalculator(6, 0, 10, 59)
? Color(0xFFB3E3FE)
: timeCalculator(11, 0, 15, 59)
? Color(0xFFFF9E7E)
: Color(0xFF2E6686),
color2: timeCalculator(6, 0, 10, 59)
? Color(0xFF9AC7FF)
: timeCalculator(11, 0, 15, 59)
? Color(0xFFFECB50)
: Color(0xFF122F48)),
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Stack(
alignment: projectViewModel.isArabic ? Alignment.centerLeft : Alignment.centerRight,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Directionality(
textDirection: TextDirection.ltr,
child: Text(
weather,
style: TextStyle(
fontSize: 24,
letterSpacing: -0.83,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
),
Text(
DateUtil.getMonthDayYearDateFormatted(new DateTime.now()),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.60,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
mFlex(0),
Text(
TranslationBase.of(context).healthWeatherIndicators,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.96,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
Text(
TranslationBase.of(context).healthTipsBasedOnCurrentWeather,
style: TextStyle(
fontSize: 10,
letterSpacing: -0.72,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: HealthWeatherIndicator(),
),
);
},
child: Padding(
padding: const EdgeInsets.only(top: 0, bottom: 0),
child: Text(
TranslationBase.of(context).moreDetails,
style: TextStyle(fontSize: 12, letterSpacing: -0.72, fontWeight: FontWeight.w600, color: Colors.white, decoration: TextDecoration.underline),
),
),
)
],
),
Image.asset(
"assets/images/Weather_ico.png",
color: Colors.white.withOpacity(0.5),
),
],
),
),
),
),
mHeight(16),
Padding(
padding: const EdgeInsets.only(
left: 16,
right: 16,
top: 0,
),
child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, childAspectRatio: 2 / 2, crossAxisSpacing: 12, mainAxisSpacing: 12),
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: hmgServices.length,
padding: EdgeInsets.zero,
itemBuilder: (BuildContext context, int index) {
return ServicesView(hmgServices[index], index);
},
),
),
mHeight(16),
],
),
),
),
);
}
void setLocation(Position position) {
this.sharedPref.setDouble(USER_LAT, position.latitude ?? 0.0);
this.sharedPref.setDouble(USER_LONG, position.longitude ?? 0.0);
getAuthUser();
}
getAuthUser() async {
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE));
setState(() {
authUser = data;
});
}
var data = await this.sharedPref.getObject(WEATHER);
if (data == null) {
var d = await _weatherService.getWeatherData();
print(d);
weatherNum = d.temperature;
setState(() {
weather = d != null ? d.temperature.toString() + '\u2103' : '--';
});
} else {
setState(() {
weather = data != null ? data['Temperature'].toString() + '\u2103' : '--';
});
}
}
}

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -266,18 +267,19 @@ class _H2oSettingState extends State<H2oSetting> {
SizedBox(height: 12),
_containerWidget(
_commonDropDownView(TranslationBase.of(context).activityLevel, _activityLevelListEng[_selectedActiveLevel - 1], () {
List<RadioSelectionDialogModel> list = [
for (int i = 0; i < _activityLevelListEng.length; i++) RadioSelectionDialogModel(_activityLevelListEng[i], i + 1),
];
showDialog(
context: context,
child: CommonRadioButtonDialog(
list: _activityLevelListEng,
title: TranslationBase.of(context).activityLevel,
onSelect: (index) {
Navigator.pop(context);
setState(() {
_selectedActiveLevel = index + 1;
});
child: RadioSelectionDialog(
listData: list,
selectedIndex: _selectedActiveLevel,
onValueSelected: (index) {
_selectedActiveLevel = index;
setState(() {});
},
selectedIndex: _selectedActiveLevel - 1,
),
);
}),
@ -296,17 +298,19 @@ class _H2oSettingState extends State<H2oSetting> {
SizedBox(height: 12),
_containerWidget(
_commonDropDownView(TranslationBase.of(context).reminderTimesLabel, _remindedTimeListEng[_selectedRemindedTime], () {
List<RadioSelectionDialogModel> list = [
for (int i = 0; i < _remindedTimeListEng.length; i++) RadioSelectionDialogModel(_remindedTimeListEng[i], i),
];
showDialog(
context: context,
child: CommonRadioButtonDialog(
list: _remindedTimeListEng,
onSelect: (index) {
Navigator.pop(context);
setState(() {
_selectedRemindedTime = index;
});
},
child: RadioSelectionDialog(
listData: list,
selectedIndex: _selectedRemindedTime,
onValueSelected: (index) {
_selectedRemindedTime = index;
setState(() {});
},
),
);
}),
@ -493,36 +497,6 @@ class _H2oSettingState extends State<H2oSetting> {
),
],
);
return Row(children: [
Expanded(
child: SizedBox(
height: 40,
child: RaisedButton(
color: checkParam ? Theme.of(context).appBarTheme.color : Colors.white,
child: Text(
rightText,
style: TextStyle(color: checkParam ? Colors.white : Theme.of(context).appBarTheme.color, fontWeight: FontWeight.w600),
),
onPressed: () => callBack(true),
),
),
),
SizedBox(width: 12),
Expanded(
child: SizedBox(
height: 40,
child: RaisedButton(
color: !checkParam ? Theme.of(context).appBarTheme.color : Colors.white,
child: Text(
leftText,
style: TextStyle(color: !checkParam ? Colors.white : Theme.of(context).appBarTheme.color, fontWeight: FontWeight.w600),
),
onPressed: () => callBack(false),
),
),
),
]);
}
Widget _commonInputAndUnitRow(_title, _controller, double _minValue, double _maxValue, double _valueOrg, Function(String) onTextValueChange, Function(double) onValueChange, String unitTitle,
@ -624,7 +598,7 @@ class _H2oSettingState extends State<H2oSetting> {
if (tag) {
AppToast.showSuccessToast(message: TranslationBase.of(context).success);
await prefs.setString(H2O_UNIT, _isUnitML ? "ml" : "l");
int _tempRemindTime = prefs.getInt(H2O_REMINDER) ?? _selectedRemindedTime;
int _tempRemindTime = prefs.getInt(H2O_REMINDER) ?? 0;
if (_tempRemindTime != _selectedRemindedTime) {
await prefs.setInt(H2O_REMINDER, _selectedRemindedTime);
_addReminderToCalender(_selectedRemindedTime);

@ -224,7 +224,7 @@ class _TodayPageState extends State<TodayPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).amount,
TranslationBase.of(context).amount_,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,

@ -3,8 +3,10 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/weather/weather_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/location_util.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
@ -23,12 +25,11 @@ class _HospitalsPageState extends State<HealthWeatherIndicator> {
AppSharedPreferences sharedPref = AppSharedPreferences();
LocationUtils locationUtils;
var weather = '--';
@override
void initState() {
locationUtils =
new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance
.addPostFrameCallback((_) => locationUtils.getCurrentLocation());
locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance.addPostFrameCallback((_) => locationUtils.getCurrentLocation());
getWeather();
super.initState();
}
@ -41,82 +42,92 @@ class _HospitalsPageState extends State<HealthWeatherIndicator> {
allowAny: true,
builder: (_, mode, widget) => AppScaffold(
isShowDecPage: false,
showNewAppBar: true,
showNewAppBarTitle: true,
appBarTitle: TranslationBase.of(context).healthWeatherIndicators,
isShowAppBar: true,
body: mode.weatherIndicatorData.length > 0
? SingleChildScrollView(
child: Column(children: [
Container(
margin: EdgeInsets.all(8),
width: double.infinity,
height: 150,
decoration: BoxDecoration(
image: DecorationImage(
image:
ExactAssetImage('assets/images/Weather_img.png'),
fit: BoxFit.cover,
),
borderRadius: BorderRadius.circular(8.0)),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Row(
children: [
Expanded(
flex: 3,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context)
.healthWeatherIndicators,
color: Colors.white,
AspectRatio(
aspectRatio: 2.3,
child: Container(
width: double.infinity,
height: double.infinity,
decoration: containerRadiusWithGradient(0,
color1: timeCalculator(6, 0, 10, 59)
? Color(0xFFB3E3FE)
: timeCalculator(11, 0, 15, 59)
? Color(0xFFFF9E7E)
: Color(0xFF2E6686),
color2: timeCalculator(6, 0, 10, 59)
? Color(0xFF9AC7FF)
: timeCalculator(11, 0, 15, 59)
? Color(0xFFFECB50)
: Color(0xFF122F48)),
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Stack(
alignment: projectViewModel.isArabic ? Alignment.centerLeft : Alignment.centerRight,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Directionality(
textDirection: TextDirection.ltr,
child: Text(
weather,
style: TextStyle(
fontSize: 24,
letterSpacing: -0.83,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
),
Text(
DateUtil.getMonthDayYearDateFormatted(new DateTime.now()),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.60,
fontWeight: FontWeight.w600,
color: Colors.white,
),
AppText(
TranslationBase.of(context)
.healthTipsBasedOnCurrentWeather,
),
mFlex(0),
Text(
TranslationBase.of(context).healthWeatherIndicators,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.96,
fontWeight: FontWeight.bold,
color: Colors.white,
fontSize: 14,
),
],
)),
Expanded(
flex: 2,
child: InkWell(
onTap: () {},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/Weather_ico.png',
width: 60,
height: 60,
),
Directionality(
textDirection: TextDirection.ltr,
child: AppText(weather,
fontSize: 22,
color: Colors.white))
],
),
],
)),
)
],
),
Text(
TranslationBase.of(context).healthTipsBasedOnCurrentWeather,
style: TextStyle(
fontSize: 10,
letterSpacing: -0.72,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
],
),
Image.asset(
"assets/images/Weather_ico.png",
color: Colors.white.withOpacity(0.5),
),
],
),
),
),
),
Padding(
padding: EdgeInsets.all(15),
child: AppText(
projectViewModel.isArabic
? mode.weatherIndicatorData[0].cityNameN
: mode.weatherIndicatorData[0].cityName,
projectViewModel.isArabic ? mode.weatherIndicatorData[0].cityNameN : mode.weatherIndicatorData[0].cityName,
fontSize: 24,
fontWeight: FontWeight.bold,
)),

@ -22,6 +22,8 @@ class MyWebView extends StatelessWidget {
isShowAppBar: true,
appBarTitle: title,
isShowDecPage: false,
showNewAppBar: true,
showNewAppBarTitle: true,
body: WebView(
initialUrl: selectedUrl,
javascriptMode: JavascriptMode.unrestricted,

@ -104,10 +104,9 @@ class _BookConfirmState extends State<BookConfirm> {
),
),
mHeight(20),
Card(
shape: cardRadius(12),
Container(
decoration: cardRadius(12),
margin: EdgeInsets.zero,
elevation: 0,
child: Padding(
padding: const EdgeInsets.fromLTRB(16, 20, 16, 20),
child: Column(
@ -138,9 +137,8 @@ class _BookConfirmState extends State<BookConfirm> {
),
),
mHeight(12),
Card(
shape: cardRadius(12),
elevation: 0,
Container(
decoration: cardRadius(12),
margin: EdgeInsets.zero,
child: Padding(
padding: const EdgeInsets.fromLTRB(16, 20, 16, 20),
@ -194,6 +192,7 @@ class _BookConfirmState extends State<BookConfirm> {
child: RaisedButton(
color: CustomColors.green,
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: () {

@ -143,6 +143,7 @@ class _BookSuccessState extends State<BookSuccess> {
child: RaisedButton(
color: new Color(0xFF60686b),
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: () {
@ -177,6 +178,7 @@ class _BookSuccessState extends State<BookSuccess> {
child: RaisedButton(
color: CustomColors.green,
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: () {
@ -197,6 +199,7 @@ class _BookSuccessState extends State<BookSuccess> {
child: RaisedButton(
color: new Color(0xffc5272d),
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: () {
@ -232,6 +235,7 @@ class _BookSuccessState extends State<BookSuccess> {
child: RaisedButton(
color: new Color(0xffc5272d),
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: () {
@ -252,6 +256,7 @@ class _BookSuccessState extends State<BookSuccess> {
child: RaisedButton(
color: CustomColors.green,
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: () {

@ -70,7 +70,7 @@ class _DentalComplaintsState extends State<DentalComplaints> {
separatorBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(left: 14, right: 14),
child: mDivider(Colors.grey),
child: mDivider(CustomColors.devider),
);
},
)

@ -85,6 +85,7 @@ class _DoctorProfileState extends State<DoctorProfile> with TickerProviderStateM
child: RaisedButton(
color: CustomColors.accentColor,
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
onPressed: goToBookConfirm,

@ -14,7 +14,7 @@ class Search extends StatefulWidget {
final List clnicIds;
Function onBackClick;
Search({this.type = 0, this.clnicIds,this.onBackClick});
Search({this.type = 0, this.clnicIds, this.onBackClick});
@override
_SearchState createState() => _SearchState();
@ -68,7 +68,10 @@ class _SearchState extends State<Search> with TickerProviderStateMixin {
Expanded(
child: TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [SearchByClinic(clnicIds: widget.clnicIds), SearchByDoctor()],
children: [
SearchByClinic(clnicIds: widget.clnicIds),
SearchByDoctor(),
],
controller: _tabController,
),
)

@ -47,7 +47,7 @@ class _SearchResultsState extends State<SearchResults> {
bodyWidget: ListView.separated(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
padding: EdgeInsets.only(bottom: 14, top: 14, left: 21, right: 21),
padding: EdgeInsets.only(bottom: 10, top: 10, left: 21, right: 21),
itemBuilder: (context, _index) {
//widget.patientDoctorAppointmentListHospital[index].patientDoctorAppointmentList[_index].speciality = null;
return DoctorView(

@ -62,7 +62,7 @@ class _BookReminderPageState extends State<BookReminderPage> {
isShowAppBar: true,
showNewAppBarTitle: true,
showNewAppBar: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
backgroundColor: CustomColors.appBackgroudGrey2Color,
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
@ -111,8 +111,8 @@ class _BookReminderPageState extends State<BookReminderPage> {
if (isSuccessShow)
Container(
width: double.infinity,
child: Card(
shape: cardRadius(12),
child: Container(
decoration: cardRadius(12),
margin: EdgeInsets.all(10),
child: Padding(
padding: const EdgeInsets.all(16.0),
@ -153,7 +153,7 @@ class _BookReminderPageState extends State<BookReminderPage> {
bottomSheet: Container(
color: CustomColors.appBackgroudGreyColor,
child: Container(
color: CustomColors.appBackgroudGreyColor,
color: CustomColors.white,
margin: EdgeInsets.all(14),
height: 45.0,
child: Row(
@ -167,8 +167,9 @@ class _BookReminderPageState extends State<BookReminderPage> {
),
height: 45.0,
child: RaisedButton(
color: new Color(0xFF60686b),
color: CustomColors.accentColor,
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFEAEAEA),
onPressed: () {
@ -187,8 +188,9 @@ class _BookReminderPageState extends State<BookReminderPage> {
),
height: 45.0,
child: RaisedButton(
color: new Color(0xffc5272d),
color: CustomColors.green,
textColor: Colors.white,
elevation: 0,
disabledTextColor: Colors.white,
disabledColor: CustomColors.green,
onPressed: () async {

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

Loading…
Cancel
Save