Custom Price / Land / User Order Homeparty

This commit is contained in:
Kevin Adametz 2021-08-20 18:22:21 +02:00
parent d46824a4ac
commit 51d81d8ec6
55 changed files with 1951 additions and 681 deletions

View file

@ -55,81 +55,75 @@ diQ860kC4h++erAa8dvB1DUG5oldYYPiEKOyyyn+tNU298QcEkLrG1JcLuUXpfTg
8dPIr+VpGomsvpwGTfJFjlE= 8dPIr+VpGomsvpwGTfJFjlE=
-----END PRIVATE KEY-----"; -----END PRIVATE KEY-----";
private static $ssl_certificate_sni_crt = "-----BEGIN CERTIFICATE----- private static $ssl_certificate_sni_crt = "-----BEGIN CERTIFICATE-----
MIIHTTCCBjWgAwIBAgIQH4gEWhBDcY8AMLZ32r5QTzANBgkqhkiG9w0BAQsFADCB MIIGLzCCBRegAwIBAgIRAJ6HzyfKXWCtRn3q9gGkgYEwDQYJKoZIhvcNAQELBQAw
lTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
EzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
dmVyIENBMB4XDTE5MDgwODAwMDAwMFoXDTIxMDgwODIzNTk1OVowgcsxCzAJBgNV QTAeFw0yMTA3MjIwMDAwMDBaFw0yMjA3MjIyMzU5NTlaMBgxFjAUBgNVBAMMDSou
BAYTAkRFMQ4wDAYDVQQREwU4Nzc1NTEPMA0GA1UECBMGQmF5ZXJuMRUwEwYDVQQH bWl2aXRhLmNhcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVOhtO
EwxLaXJjaGhhc2xhY2gxEzARBgNVBAkTCkxlaW5mZWxkIDIxFjAUBgNVBAoTDXJp TJBn5V9SmHmo/EawNiO0VwHOVnnrfnaPD2A1DeKqHmAfMTaybHaCfi+mufV8veem
d2EtdGVjIGUuSy4xITAfBgNVBAsTGEF1dGhvcml6ZWQgYnkgVW5pdGVkIFNTTDEc fY1j6rXq7RFU46SMBbFlfZqKS/3zb2d3yRT7OBU83PV5P8JXHrqEArlmKiOZcPoj
MBoGA1UECxMTUHJlbWl1bVNTTCBXaWxkY2FyZDEWMBQGA1UEAwwNKi5taXZpdGEu 86TTAbq5wwxjFXkePzJSdOdUN/Z1E1tI8ieUQC40tpMsRvf5XOzQZousXBT1P6F9
Y2FyZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJU6G05MkGflX1KY Q2FbUKEfiEBJ0wjnz74a73U7DebuYGEFPSjVjrkVB11+55y1MBkwg/6JIro+BlXo
eaj8RrA2I7RXAc5Weet+do8PYDUN4qoeYB8xNrJsdoJ+L6a59Xy956Z9jWPqtert rW6Xaifb1PKFbTFQnlC4BAKyPHxNKWZCSHgw/C3A7fBQKHM1wVhZo2BZrumdE+X1
EVTjpIwFsWV9mopL/fNvZ3fJFPs4FTzc9Xk/wlceuoQCuWYqI5lw+iPzpNMBurnD FOScWlN+M/+TyUybAgMBAAGjggL6MIIC9jAfBgNVHSMEGDAWgBSNjF7EVK2K4Xfp
DGMVeR4/MlJ051Q39nUTW0jyJ5RALjS2kyxG9/lc7NBmi6xcFPU/oX1DYVtQoR+I m/mbBeG4AY1h4TAdBgNVHQ4EFgQUCS0Y1v7p19isO7cTuP3YrKVr2OcwDgYDVR0P
QEnTCOfPvhrvdTsN5u5gYQU9KNWOuRUHXX7nnLUwGTCD/okiuj4GVeitbpdqJ9vU AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
8oVtMVCeULgEArI8fE0pZkJIeDD8LcDt8FAoczXBWFmjYFmu6Z0T5fUU5JxaU34z AQUFBwMCMEkGA1UdIARCMEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEFBQcCARYX
/5PJTJsCAwEAAaOCA18wggNbMB8GA1UdIwQYMBaAFBfZ1iUnZ/kxwklD2TA2RIxs aHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEFBQcBAQR4
qU/rMB0GA1UdDgQWBBQJLRjW/unX2Kw7txO4/dispWvY5zAOBgNVHQ8BAf8EBAMC MHYwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JT
BaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw QURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGG
SgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwQwJTAjBggrBgEFBQcCARYXaHR0cHM6 F2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMCUGA1UdEQQeMByCDSoubWl2aXRhLmNh
Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0 cmWCC21pdml0YS5jYXJlMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdQBGpVXr
dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXphdGlvblZhbGlk dfqRIDC1oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAXrNeYDBAAAEAwBGMEQCIFzd
YXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEF +zLvEGolSmSaa7vaQxv63DuX5vHQggER6/Dh+jZGAiAcUn8AZjF7GQOd4LTzGMhU
BQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBT3JnYW5pemF0 KsGNyn6d3n4cJ9fy9BzRxAB1AEHIyrHfIkZKEMahOglCh15OMYsbA+vrS8do8JBi
aW9uVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYXaHR0 lgb2AAABes15gIYAAAQDAEYwRAIgE0NFzvN7qEre8Bc1C8EsMHD+5PDyQHZRBJkN
cDovL29jc3Auc2VjdGlnby5jb20wJQYDVR0RBB4wHIINKi5taXZpdGEuY2FyZYIL OdxsH9MCIDBSFFZTheD2+nzbHm5WLvAI75xyUvyBx/LEy3XBtjulAHYAKXm+8J45
bWl2aXRhLmNhcmUwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB1APZclC/RdzAi OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAF6zXmAWwAABAMARzBFAiAbRPVk
FFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTjAAABbHE1WwgAAAQDAEYwRAIgJnc8PV0c w3AIzVF7gE0R3ZJgou7P4o9KL2yRgAaeGbbClgIhAPL86sD0GwPZ9ZsL31q07Y/S
fDxAikfdvJzFVOG26cUzmZDqaS79ZYEAXT8CIDzUJervlzJK3huunhkNWYe0ZdH6 1kq5ohBt907fOisMwI0HMA0GCSqGSIb3DQEBCwUAA4IBAQAaYeV2NtUM2HkxWbfd
SOXrgCfNMErZgB2UAHYARJRlLrDuzq/EQAfYqP4owNrmgr7YyzG1P9MzlrW2gagA 3jVAs1PdBIYtktBpx7UwNphylqF4qlsZwV5XZxeD/K7mTW5tgNaHHrEjaOME/y1s
AAFscTVbKAAABAMARzBFAiEAmbmiqUZRcSU0G+cO2F3Vu9933x48ase0RTnzx6nv rWTIt1D+UUmDdiSgKfVF5gfajPFVepOcb5OC+ielevvnVJn/6Tqa/RNz0GstwMnB
0UsCIF6PtjDj80Zp/fE/Da218Jl/Php06TJk488Y69yxyUE2AHcAVYHUwhaQNgFK 3lBaoP7oGuBy2Ow3LG0+yO4Q0j82gIkOM15CsjY9ZK540HAXllxKGN29Yf+RDkqE
6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAFscTVbVgAABAMASDBGAiEAmTjfVRbR zRk4TE12MEW+Ugw6RxDSUCfKmev4iUAT9vq790OESAfOKY1zg/6hIF3noH1IFt1d
K5UgRC1QHH5nGILAUIl9hWAn6/C0UE1QuQUCIQCxa6ezO4p4BpRM6SlLo4or/JXC e0wVWz58KTXBqHsmxX3F1PUuT6NY+wRsVfnc8hR8mfJibJ0VL8wxjzScDXyHpZr/
lgdQ/TQEe/eD+rqjpTANBgkqhkiG9w0BAQsFAAOCAQEAiEJ+HAVU53CtOZw74kzV o3I7
/elsY8a7eke2fUP1+dGuwx24iEefUDQJGkSSEMOub8DsBd9ZwFY6hAE1KCNAlZnT
mhtwxTBjMPE3H1eE+1Ye00Wv323YcZgnqWYy7A36r5/RdupQRw3hs/w58BoJACDj
sSmGvH9GkeohXgUwLL91mlNJ56vUX2nDCxylxqLyWTMjzsPFMc8Of8ek2QIobMNX
KopeChQU9ACe/ZsdO2UClGVtuupjrhfkbKAeJCcEW+DonV1geTwuXuJjIwitTyXD
K5RDtw2QPwFRVggqe7TrnGzKdNzxbKN6tRWKuCKdyKqczf6zn1gG+Z1emrwN+lBn
xA==
-----END CERTIFICATE-----"; -----END CERTIFICATE-----";
private static $ssl_certificate_sni_bundle = "-----BEGIN CERTIFICATE----- private static $ssl_certificate_sni_bundle = "-----BEGIN CERTIFICATE-----
MIIGGTCCBAGgAwIBAgIQE31TnKp8MamkM3AZaIR6jTANBgkqhkiG9w0BAQwFADCB MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx
MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBlTELMAkGA1UEBhMCR0IxGzAZBgNV MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV
BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE
ChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQDEzRTZWN0aWdvIFJTQSBPcmdhbml6 ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g
YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0B VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQEFAAOCAQ8AMIIBCgKCAQEAnJMCRkVKUkiS/FeN+S3qU76zLNXYqKXsW2kDwB0Q AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N
9lkz3v4HSKjojHpnSvH1jcM3ZtAykffEnQRgxLVK4oOLp64m1F06XvjRFnG7ir1x TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj
on3IzqJgJLBSoDpFUd54k2xiYPHkVpy3O/c8Vdjf1XoxfDV/ElFw4Sy+BKzL+k/h eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E
fGVqwECn2XylY4QZ4ffK76q06Fha2ZnjJt+OErK43DOyNtoUHZZYQkBuCyKFHFEi oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk
rsTIBkVtkuZntxkj5Ng2a4XQf8dS48+wdQHgibSov4o2TqPgbOuEQc6lL0giE5dQ Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY
YkUeCaXMn2xXcEAG2yDoG9bzk4unMp63RBUJ16/9fAEc2wIDAQABo4IBbjCCAWow uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j
HwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBfZ1iUn BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb
Z/kxwklD2TA2RIxsqU/rMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/ +ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G
AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYG A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw
BFUdIAAwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0
cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr
bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv
dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov
aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAThNA L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H
lsnD5m5bwOO69Bfhrgkfyb/LDCUW8nNTs3Yat6tIBtbNAHwgRUNFbBZaGxNh10m6 ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH
pAKkrOjOzi3JKnSj3N6uq9BoNviRrzwB93fVC8+Xq+uH5xWo+jBaYXEgscBDxLmP 7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi
bYox6xU2JPti1Qucj+lmveZhUZeTth2HvbC1bP6mESkGYTQxMD0gJ3NR0N6Fg9N3 H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx
OSBGltqnxloWJ4Wyz04PToxcvr44APhL+XJ71PJ616IphdAEutNCLFGIUi7RPSRn RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv
R+xVzBv0yjTqJsHe3cQhifa6ezIejpZehEU4z4CqN2mLYBd0FUiRnG3wTqN3yhsc xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38
SPr5z0noX0+FCuKPkBurcEya67emP7SsXaRfz+bYipaQ908mgWB2XQ8kd5GzKjGf sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL
FlqyXYwcKapInI5v03hAcNt37N3j0VcFcC3mSZiIBYRiBXBWdoY5TtMibx3+bfEO l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq
s2LEPMvAhblhHrrhFYBZlAyuBbuMf1a+HNJav5fyakywxnB2sJCNwQs2uRHY1ihc 6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY
6k/+JLcYCpsM0MF8XPtpvcyiTcaQvKZN8rG61ppnW5YCUtCC+cQKXA0o4D/I+pWV LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5
idWkvklsQLI+qGu41SWyxP7x09fn1txDAXYw+zuLXfdKiXyaNb78yvBXAfCNP6CH yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K
MntHWpdLgtJmwsQt6j8k9Kf5qLnjatkYYaA7jBU= 00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7 MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
@ -228,117 +222,111 @@ UrRHcP8347EOn9uLFjyZrPEQ773tUVaERAZDeO0nAoGAZXMhlmKmqTrM2jSb64ja\n
pEddcEW2LuTvwQueOKUuSSwmCydKXkcgrYZ4EHyOgvVN9JZ5ZfW6ZathFipVEKdy\n pEddcEW2LuTvwQueOKUuSSwmCydKXkcgrYZ4EHyOgvVN9JZ5ZfW6ZathFipVEKdy\n
diQ860kC4h++erAa8dvB1DUG5oldYYPiEKOyyyn+tNU298QcEkLrG1JcLuUXpfTg\n diQ860kC4h++erAa8dvB1DUG5oldYYPiEKOyyyn+tNU298QcEkLrG1JcLuUXpfTg\n
8dPIr+VpGomsvpwGTfJFjlE=\n 8dPIr+VpGomsvpwGTfJFjlE=\n
-----END PRIVATE KEY----- -----END PRIVATE KEY-----\n
", ",
"ssl_certificate_sni_crt" => "-----BEGIN CERTIFICATE-----\n "ssl_certificate_sni_crt" => "-----BEGIN CERTIFICATE-----\n
MIIHTTCCBjWgAwIBAgIQH4gEWhBDcY8AMLZ32r5QTzANBgkqhkiG9w0BAQsFADCB\n MIIGLzCCBRegAwIBAgIRAJ6HzyfKXWCtRn3q9gGkgYEwDQYJKoZIhvcNAQELBQAw\n
lTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\n gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\n
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD\n BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE\n
EzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy\n AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD\n
dmVyIENBMB4XDTE5MDgwODAwMDAwMFoXDTIxMDgwODIzNTk1OVowgcsxCzAJBgNV\n QTAeFw0yMTA3MjIwMDAwMDBaFw0yMjA3MjIyMzU5NTlaMBgxFjAUBgNVBAMMDSou\n
BAYTAkRFMQ4wDAYDVQQREwU4Nzc1NTEPMA0GA1UECBMGQmF5ZXJuMRUwEwYDVQQH\n bWl2aXRhLmNhcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVOhtO\n
EwxLaXJjaGhhc2xhY2gxEzARBgNVBAkTCkxlaW5mZWxkIDIxFjAUBgNVBAoTDXJp\n TJBn5V9SmHmo/EawNiO0VwHOVnnrfnaPD2A1DeKqHmAfMTaybHaCfi+mufV8veem\n
d2EtdGVjIGUuSy4xITAfBgNVBAsTGEF1dGhvcml6ZWQgYnkgVW5pdGVkIFNTTDEc\n fY1j6rXq7RFU46SMBbFlfZqKS/3zb2d3yRT7OBU83PV5P8JXHrqEArlmKiOZcPoj\n
MBoGA1UECxMTUHJlbWl1bVNTTCBXaWxkY2FyZDEWMBQGA1UEAwwNKi5taXZpdGEu\n 86TTAbq5wwxjFXkePzJSdOdUN/Z1E1tI8ieUQC40tpMsRvf5XOzQZousXBT1P6F9\n
Y2FyZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJU6G05MkGflX1KY\n Q2FbUKEfiEBJ0wjnz74a73U7DebuYGEFPSjVjrkVB11+55y1MBkwg/6JIro+BlXo\n
eaj8RrA2I7RXAc5Weet+do8PYDUN4qoeYB8xNrJsdoJ+L6a59Xy956Z9jWPqtert\n rW6Xaifb1PKFbTFQnlC4BAKyPHxNKWZCSHgw/C3A7fBQKHM1wVhZo2BZrumdE+X1\n
EVTjpIwFsWV9mopL/fNvZ3fJFPs4FTzc9Xk/wlceuoQCuWYqI5lw+iPzpNMBurnD\n FOScWlN+M/+TyUybAgMBAAGjggL6MIIC9jAfBgNVHSMEGDAWgBSNjF7EVK2K4Xfp\n
DGMVeR4/MlJ051Q39nUTW0jyJ5RALjS2kyxG9/lc7NBmi6xcFPU/oX1DYVtQoR+I\n m/mbBeG4AY1h4TAdBgNVHQ4EFgQUCS0Y1v7p19isO7cTuP3YrKVr2OcwDgYDVR0P\n
QEnTCOfPvhrvdTsN5u5gYQU9KNWOuRUHXX7nnLUwGTCD/okiuj4GVeitbpdqJ9vU\n AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\n
8oVtMVCeULgEArI8fE0pZkJIeDD8LcDt8FAoczXBWFmjYFmu6Z0T5fUU5JxaU34z\n AQUFBwMCMEkGA1UdIARCMEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEFBQcCARYX\n
/5PJTJsCAwEAAaOCA18wggNbMB8GA1UdIwQYMBaAFBfZ1iUnZ/kxwklD2TA2RIxs\n aHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEFBQcBAQR4\n
qU/rMB0GA1UdDgQWBBQJLRjW/unX2Kw7txO4/dispWvY5zAOBgNVHQ8BAf8EBAMC\n MHYwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JT\n
BaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\n QURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGG\n
SgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwQwJTAjBggrBgEFBQcCARYXaHR0cHM6\n F2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMCUGA1UdEQQeMByCDSoubWl2aXRhLmNh\n
Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0\n cmWCC21pdml0YS5jYXJlMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdQBGpVXr\n
dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXphdGlvblZhbGlk\n dfqRIDC1oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAXrNeYDBAAAEAwBGMEQCIFzd\n
YXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEF\n +zLvEGolSmSaa7vaQxv63DuX5vHQggER6/Dh+jZGAiAcUn8AZjF7GQOd4LTzGMhU\n
BQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBT3JnYW5pemF0\n KsGNyn6d3n4cJ9fy9BzRxAB1AEHIyrHfIkZKEMahOglCh15OMYsbA+vrS8do8JBi\n
aW9uVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYXaHR0\n lgb2AAABes15gIYAAAQDAEYwRAIgE0NFzvN7qEre8Bc1C8EsMHD+5PDyQHZRBJkN\n
cDovL29jc3Auc2VjdGlnby5jb20wJQYDVR0RBB4wHIINKi5taXZpdGEuY2FyZYIL\n OdxsH9MCIDBSFFZTheD2+nzbHm5WLvAI75xyUvyBx/LEy3XBtjulAHYAKXm+8J45\n
bWl2aXRhLmNhcmUwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB1APZclC/RdzAi\n OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAF6zXmAWwAABAMARzBFAiAbRPVk\n
FFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTjAAABbHE1WwgAAAQDAEYwRAIgJnc8PV0c\n w3AIzVF7gE0R3ZJgou7P4o9KL2yRgAaeGbbClgIhAPL86sD0GwPZ9ZsL31q07Y/S\n
fDxAikfdvJzFVOG26cUzmZDqaS79ZYEAXT8CIDzUJervlzJK3huunhkNWYe0ZdH6\n 1kq5ohBt907fOisMwI0HMA0GCSqGSIb3DQEBCwUAA4IBAQAaYeV2NtUM2HkxWbfd\n
SOXrgCfNMErZgB2UAHYARJRlLrDuzq/EQAfYqP4owNrmgr7YyzG1P9MzlrW2gagA\n 3jVAs1PdBIYtktBpx7UwNphylqF4qlsZwV5XZxeD/K7mTW5tgNaHHrEjaOME/y1s\n
AAFscTVbKAAABAMARzBFAiEAmbmiqUZRcSU0G+cO2F3Vu9933x48ase0RTnzx6nv\n rWTIt1D+UUmDdiSgKfVF5gfajPFVepOcb5OC+ielevvnVJn/6Tqa/RNz0GstwMnB\n
0UsCIF6PtjDj80Zp/fE/Da218Jl/Php06TJk488Y69yxyUE2AHcAVYHUwhaQNgFK\n 3lBaoP7oGuBy2Ow3LG0+yO4Q0j82gIkOM15CsjY9ZK540HAXllxKGN29Yf+RDkqE\n
6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAFscTVbVgAABAMASDBGAiEAmTjfVRbR\n zRk4TE12MEW+Ugw6RxDSUCfKmev4iUAT9vq790OESAfOKY1zg/6hIF3noH1IFt1d\n
K5UgRC1QHH5nGILAUIl9hWAn6/C0UE1QuQUCIQCxa6ezO4p4BpRM6SlLo4or/JXC\n e0wVWz58KTXBqHsmxX3F1PUuT6NY+wRsVfnc8hR8mfJibJ0VL8wxjzScDXyHpZr/\n
lgdQ/TQEe/eD+rqjpTANBgkqhkiG9w0BAQsFAAOCAQEAiEJ+HAVU53CtOZw74kzV\n o3I7\n
/elsY8a7eke2fUP1+dGuwx24iEefUDQJGkSSEMOub8DsBd9ZwFY6hAE1KCNAlZnT\n
mhtwxTBjMPE3H1eE+1Ye00Wv323YcZgnqWYy7A36r5/RdupQRw3hs/w58BoJACDj\n
sSmGvH9GkeohXgUwLL91mlNJ56vUX2nDCxylxqLyWTMjzsPFMc8Of8ek2QIobMNX\n
KopeChQU9ACe/ZsdO2UClGVtuupjrhfkbKAeJCcEW+DonV1geTwuXuJjIwitTyXD\n
K5RDtw2QPwFRVggqe7TrnGzKdNzxbKN6tRWKuCKdyKqczf6zn1gG+Z1emrwN+lBn\n
xA==\n
-----END CERTIFICATE----- -----END CERTIFICATE-----
", ",
"ssl_certificate_sni_bundle" => "-----BEGIN CERTIFICATE-----\n "ssl_certificate_sni_bundle" => "-----BEGIN CERTIFICATE-----\n
MIIGGTCCBAGgAwIBAgIQE31TnKp8MamkM3AZaIR6jTANBgkqhkiG9w0BAQwFADCB\n MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB\n
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\n iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\n
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV\n cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV\n
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx\n BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx\n
MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBlTELMAkGA1UEBhMCR0IxGzAZBgNV\n MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV\n
BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE\n BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE\n
ChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQDEzRTZWN0aWdvIFJTQSBPcmdhbml6\n ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g\n
YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0B\n VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC\n
AQEFAAOCAQ8AMIIBCgKCAQEAnJMCRkVKUkiS/FeN+S3qU76zLNXYqKXsW2kDwB0Q\n AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N\n
9lkz3v4HSKjojHpnSvH1jcM3ZtAykffEnQRgxLVK4oOLp64m1F06XvjRFnG7ir1x\n TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj\n
on3IzqJgJLBSoDpFUd54k2xiYPHkVpy3O/c8Vdjf1XoxfDV/ElFw4Sy+BKzL+k/h\n eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E\n
fGVqwECn2XylY4QZ4ffK76q06Fha2ZnjJt+OErK43DOyNtoUHZZYQkBuCyKFHFEi\n oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk\n
rsTIBkVtkuZntxkj5Ng2a4XQf8dS48+wdQHgibSov4o2TqPgbOuEQc6lL0giE5dQ\n Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY\n
YkUeCaXMn2xXcEAG2yDoG9bzk4unMp63RBUJ16/9fAEc2wIDAQABo4IBbjCCAWow\n uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j\n
HwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBfZ1iUn\n BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb\n
Z/kxwklD2TA2RIxsqU/rMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/\n +ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G\n
AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYG\n A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw\n
BFUdIAAwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl\n CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0\n
cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy\n LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr\n
bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy\n BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv\n
dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ\n bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov\n
aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAThNA\n L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H\n
lsnD5m5bwOO69Bfhrgkfyb/LDCUW8nNTs3Yat6tIBtbNAHwgRUNFbBZaGxNh10m6\n ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH\n
pAKkrOjOzi3JKnSj3N6uq9BoNviRrzwB93fVC8+Xq+uH5xWo+jBaYXEgscBDxLmP\n 7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi\n
bYox6xU2JPti1Qucj+lmveZhUZeTth2HvbC1bP6mESkGYTQxMD0gJ3NR0N6Fg9N3\n H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx\n
OSBGltqnxloWJ4Wyz04PToxcvr44APhL+XJ71PJ616IphdAEutNCLFGIUi7RPSRn\n RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv\n
R+xVzBv0yjTqJsHe3cQhifa6ezIejpZehEU4z4CqN2mLYBd0FUiRnG3wTqN3yhsc\n xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38\n
SPr5z0noX0+FCuKPkBurcEya67emP7SsXaRfz+bYipaQ908mgWB2XQ8kd5GzKjGf\n sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL\n
FlqyXYwcKapInI5v03hAcNt37N3j0VcFcC3mSZiIBYRiBXBWdoY5TtMibx3+bfEO\n l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq\n
s2LEPMvAhblhHrrhFYBZlAyuBbuMf1a+HNJav5fyakywxnB2sJCNwQs2uRHY1ihc\n 6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY\n
6k/+JLcYCpsM0MF8XPtpvcyiTcaQvKZN8rG61ppnW5YCUtCC+cQKXA0o4D/I+pWV\n LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5\n
idWkvklsQLI+qGu41SWyxP7x09fn1txDAXYw+zuLXfdKiXyaNb78yvBXAfCNP6CH\n yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K\n
MntHWpdLgtJmwsQt6j8k9Kf5qLnjatkYYaA7jBU=\n 00u/I5sUKUErmgQfky3xxzlIPK1aEn8=\n
-----END CERTIFICATE-----\n -----END CERTIFICATE-----\n
-----BEGIN CERTIFICATE-----\n -----BEGIN CERTIFICATE-----\n
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv\n MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7\n
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk\n MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD\n
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF\n VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE\n
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow\n AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4\n
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK\n MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5\n
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD\n MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO\n
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN\n ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0\n
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt\n aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI\n
UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC\n s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG\n
tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf\n vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ\n
jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM\n Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb\n
8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm\n IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0\n
AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV\n tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E\n
Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9\n xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV\n
N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF\n icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5\n
qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9\n D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ\n
HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ\n WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ\n
+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX\n 5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG\n
HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv\n KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg\n
A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/\n EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID\n
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud\n ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG\n
HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4\n BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t\n
dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0\n L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr\n
dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD\n BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA\n
lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn\n A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+\n
RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ\n rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+\n
YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8\n /czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA\n
Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf\n CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F\n
Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p\n zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA\n
0fKtirOMxyHNwu8=\n vGp4z7h/jnZymQyd/teRCBaho1+V\n
-----END CERTIFICATE----- -----END CERTIFICATE-----
", ",
"ssl_certificate_sni_chainfile" => null, "ssl_certificate_sni_chainfile" => null,

View file

@ -43,11 +43,10 @@ class MembershipController extends Controller
$userHistoryUpgradeOrder = UserHistory::whereUserId($user->id)->whereAction('upgrade_order')->get()->last(); $userHistoryUpgradeOrder = UserHistory::whereUserId($user->id)->whereAction('upgrade_order')->get()->last();
$userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last(); $userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last();
$data = [ $data = [
'user' => $user, 'user' => $user,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'upgrade' => Product::where('active', true)->where('show_at', '=', 4)->where('identifier', 'upgrade')->get(), 'upgrade' => Product::where('active', true)->whereJsonContains('show_on', '5')->where('identifier', 'upgrade')->get(),
'diff_months' => $diff_months, 'diff_months' => $diff_months,
'userHistoryPaymentOrder' => $userHistoryPaymentOrder, 'userHistoryPaymentOrder' => $userHistoryPaymentOrder,
'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder, 'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder,
@ -91,7 +90,7 @@ class MembershipController extends Controller
$user->abo_options = true; $user->abo_options = true;
$user->save(); $user->save();
} }
if($product && $product->active && $product->show_at >= 3){ if($product && $product->active){
$image = ""; $image = "";
if($product->images->count()){ if($product->images->count()){
$image = $product->images->first()->slug; $image = $product->images->first()->slug;
@ -136,7 +135,7 @@ class MembershipController extends Controller
\Session()->flash('alert-success', "keine Änderung vorgenommen."); \Session()->flash('alert-success', "keine Änderung vorgenommen.");
return back(); return back();
} }
if($product && $product->active && $product->show_at >= 3){ if($product && $product->active){
$user->payment_order_id = $product->id; $user->payment_order_id = $product->id;
$user->save(); $user->save();
UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>10, 'product_id'=>$product->id]); UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>10, 'product_id'=>$product->id]);

View file

@ -35,7 +35,7 @@ class PaymentMethodController extends Controller
'name' => $data['name'], 'name' => $data['name'],
'short' => $data['short'], 'short' => $data['short'],
'pos' => $data['pos'], 'pos' => $data['pos'],
'show_at' => $data['show_at'], 'show_on' => isset($data['show_on']) ? $data['show_on'] : null,
'default' => isset($data['default']) ? true : false, 'default' => isset($data['default']) ? true : false,
'active' => isset($data['active']) ? true : false, 'active' => isset($data['active']) ? true : false,
]); ]);
@ -44,7 +44,7 @@ class PaymentMethodController extends Controller
$model->name = $data['name']; $model->name = $data['name'];
$model->short = $data['short']; $model->short = $data['short'];
$model->pos = $data['pos']; $model->pos = $data['pos'];
$model->show_at = $data['show_at']; $model->show_on = isset($data['show_on']) ? $data['show_on'] : null;
$model->default = isset($data['default']) ? true : false; $model->default = isset($data['default']) ? true : false;
$model->active = isset($data['active']) ? true : false; $model->active = isset($data['active']) ? true : false;
$model->save(); $model->save();

View file

@ -115,14 +115,21 @@ class AdminToolsController extends Controller
$user_shops = UserShop::all(); $user_shops = UserShop::all();
$text = ""; $text = "";
$kas = new KasController(); /* $kas = new KasController();
$domain = 'mivita.care'; $domain = 'mivita.care';
$ssl = KasSLLController::getApiSSLParameter(); $ssl = KasSLLController::getApiSSLParameter();
$subdomains = $kas->action('get_subdomains'); $subdomains = $kas->action('get_subdomains');
foreach ($subdomains as $subdomain){ foreach ($subdomains as $subdomain){
$text .= $subdomain['subdomain_name']." - ".$subdomain['ssl_certificate_sni']."\n"; /*if($subdomain['subdomain_name'] === 'bio-aloe.mivita.care'){
dump($subdomain);
}
if($subdomain['subdomain_name'] === 'rockmyworld-by-conny.mivita.care'){
dd($subdomain);
}*/
/*
$text .= $subdomain['subdomain_name']." - ".$subdomain['ssl_certificate_sni']." - ";
if($subdomain['ssl_certificate_sni'] !== "Y"){ if($subdomain['ssl_certificate_sni'] !== "Y"){
$pra = array( $pra = array(
@ -130,9 +137,18 @@ class AdminToolsController extends Controller
); );
$pra = array_merge($pra, $ssl); $pra = array_merge($pra, $ssl);
$value = $kas->action('update_ssl', $pra); $value = $kas->action('update_ssl', $pra);
$text .= $value."\n"; $text .= $value;
}else{
if(isset($subdomain['ssl_certificate_sni_is_active'])){
$text .= $subdomain['ssl_certificate_sni_is_active'].'-is_active';
}else{
$text .= '-CHECK!';
} }
} }
$text .= "\n";
}*/
$data = [ $data = [
'values' => $user_shops, 'values' => $user_shops,
'text' => $text, 'text' => $text,

View file

@ -2,25 +2,22 @@
namespace App\Http\Controllers\User; namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Models\Homeparty;
use App\Models\HomepartyUser;
use App\Models\HomepartyUserOrderItem;
use App\Models\Product;
use App\Models\ShippingCountry;
use App\Models\ShoppingInstance;
use App\Models\ShoppingOrder;
use App\Models\ShoppingUser;
use App\Models\UserHistory;
use App\Models\UserShop;
use App\Services\HomepartyCart;
use App\Services\Payment;
use App\Services\Util;
use App\User;
use Auth; use Auth;
use Request;
use Validator;
use Yard; use Yard;
use Request;
use App\User;
use Validator;
use App\Services\Util;
use App\Models\Product;
use App\Models\Homeparty;
use App\Models\UserHistory;
use App\Models\HomepartyUser;
use App\Services\UserService;
use App\Models\ShippingCountry;
use App\Services\HomepartyCart;
use App\Models\ShoppingInstance;
use App\Http\Controllers\Controller;
use App\Models\HomepartyUserOrderItem;
class HomepartyController extends Controller class HomepartyController extends Controller
@ -34,18 +31,28 @@ class HomepartyController extends Controller
public function index() public function index()
{ {
$data = [ $data = [
'homepartys' => Homeparty::where('auth_user_id', '=', \Auth::user()->id)->get(), 'homepartys' => Homeparty::where('auth_user_id', '=', \Auth::user()->id)->orderByDesc('id')->get(),
]; ];
return view('user.homeparty.index', $data); return view('user.homeparty.index', $data);
} }
public function detail($id) public function detail($id, $step = false)
{ {
if($id === 'new'){ if($id === 'new'){
$homeparty = new Homeparty(); $homeparty = new Homeparty();
$homeparty->id = 0;
$step = 1;
$homeparty->description = "Willkommen zu unserer Auszeitparty rund um das Thema Bio Aloe Vera und Naturkosmetik. Wir informieren Dich darüber, was Premiumqualität bei Naturkosmetik wirklich ausmacht, zeigen Dir viele Anwendungsbeispiele bei Haut- und Darmproblemen und natürlich kannst Du unsere Produkte ausgiebig testen. Wir freuen uns auf Dich!"; $homeparty->description = "Willkommen zu unserer Auszeitparty rund um das Thema Bio Aloe Vera und Naturkosmetik. Wir informieren Dich darüber, was Premiumqualität bei Naturkosmetik wirklich ausmacht, zeigen Dir viele Anwendungsbeispiele bei Haut- und Darmproblemen und natürlich kannst Du unsere Produkte ausgiebig testen. Wir freuen uns auf Dich!";
}else{ }else{
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
if($homeparty->step < 10){
$step = $homeparty->step;
}else{
if(!$step){
$step = 10;
}
}
} }
if($homeparty->homeparty_host){ if($homeparty->homeparty_host){
$homeparty_user = $homeparty->homeparty_host; $homeparty_user = $homeparty->homeparty_host;
@ -61,22 +68,43 @@ class HomepartyController extends Controller
$data = [ $data = [
'homeparty' => $homeparty, 'homeparty' => $homeparty,
'homeparty_user' => $homeparty_user, 'homeparty_user' => $homeparty_user,
'step' => $step,
]; ];
return view('user.homeparty.detail', $data); return view('user.homeparty.detail', $data);
} }
public function store($id = null) public function store($id = null, $step = false)
{ {
$data = Request::all(); $data = Request::all();
if($data['action'] === 'homeparty-party-store'){ if($data['action'] === 'homeparty-party-store-detail'){
$rules = array( $rules = array(
'date' => 'required', 'date' => 'required',
'name' => 'required', 'name' => 'required',
'place' => 'required' 'place' => 'required',
);
if(!$id){
$rules = array(
'date' => 'required',
'name' => 'required',
'place' => 'required',
'country_id' => 'required'
); );
} }
if($data['action'] === 'homeparty-user-store'){ }
if($data['action'] === 'homeparty-party-store-address'){
$rules = array(
'shipping_firstname' => 'required',
'shipping_lastname' => 'required',
'shipping_address' => 'required',
'shipping_zipcode' => 'required',
'shipping_city' => 'required',
'shipping_salutation' => 'required',
'shipping_country_id' => 'required'
);
}
if($data['action'] === 'homeparty-party-store-host'){
$rules = array( $rules = array(
'billing_salutation' => 'required', 'billing_salutation' => 'required',
'billing_firstname' => 'required', 'billing_firstname' => 'required',
@ -86,25 +114,13 @@ class HomepartyController extends Controller
'billing_city' => 'required', 'billing_city' => 'required',
'billing_country_id' => 'required', 'billing_country_id' => 'required',
); );
if (!Request::get('same_as_billing')) {
$rules = array_merge($rules, [
'shipping_firstname' => 'required',
'shipping_lastname' => 'required',
'shipping_address' => 'required',
'shipping_zipcode' => 'required',
'shipping_city' => 'required',
'shipping_salutation' => 'required',
'shipping_country_id' => 'required'
]);
} }
}
$validator = Validator::make(Request::all(), $rules); $validator = Validator::make(Request::all(), $rules);
if ($validator->fails()) { if ($validator->fails()) {
return back()->withErrors($validator)->withInput(Request::all()); return back()->withErrors($validator)->withInput(Request::all());
} }
if($data['action'] === 'homeparty-party-store'){ if($data['action'] === 'homeparty-party-store-detail'){
if(!$id){ if(!$id){
//first save create and empty user/host //first save create and empty user/host
do { do {
@ -112,29 +128,51 @@ class HomepartyController extends Controller
} while( Homeparty::where('token', $token)->count() ); } while( Homeparty::where('token', $token)->count() );
$data['token'] = $token; $data['token'] = $token;
$data['auth_user_id'] = \Auth::user()->id; $data['auth_user_id'] = \Auth::user()->id;
$data['step'] = 2;
$step = 2;
$homeparty = Homeparty::create($data); $homeparty = Homeparty::create($data);
$homeparty_user = HomepartyUser::create([ $homeparty_user = HomepartyUser::create([
'homeparty_id' => $homeparty->id, 'homeparty_id' => $homeparty->id,
'auth_user_id' => \Auth::user()->id, 'auth_user_id' => \Auth::user()->id,
'shipping_country_id' => $homeparty->country_id,
'billing_country_id' => $homeparty->country_id,
'same_as_billing' => false,
'is_host' => true, 'is_host' => true,
]); ]);
}else { }else {
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
$homeparty->fill($data)->save(); $homeparty->fill($data)->save();
$step = 10;
}
}
if($data['action'] === 'homeparty-party-store-address'){
$homeparty = $this->getHomparty($id);
$homeparty_user = $homeparty->homeparty_host;
$homeparty_user->fill($data)->save();
if($homeparty->step === 2){
$homeparty->step = 3;
$homeparty->save();
$step = 3;
}else{
$step = 12;
} }
} }
if($data['action'] === 'homeparty-user-store'){ if($data['action'] === 'homeparty-party-store-host'){
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
$data['same_as_billing'] = isset($data['same_as_billing']) ? true : false;
$data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id'];
$homeparty_user = $homeparty->homeparty_host; $homeparty_user = $homeparty->homeparty_host;
$homeparty_user->fill($data)->save(); $homeparty_user->fill($data)->save();
if($homeparty->step === 3){
$homeparty->step = 10;
$homeparty->save();
$step = 10;
}else{
$step = 13;
}
} }
\Session()->flash('alert-save', '1'); \Session()->flash('alert-save', '1');
return redirect(route('user_homeparty_detail', $homeparty->id)); return redirect(route('user_homeparty_detail', [$homeparty->id, $step]));
} }
@ -154,6 +192,8 @@ class HomepartyController extends Controller
if($gid === 'new'){ if($gid === 'new'){
$homeparty_user = new HomepartyUser(); $homeparty_user = new HomepartyUser();
$homeparty_user->same_as_billing = true; $homeparty_user->same_as_billing = true;
$homeparty_user->billing_country_id = $homeparty->country_id;
$homeparty_user->shipping_country_id = $homeparty->country_id;
}else{ }else{
$homeparty_user = HomepartyUser::findOrFail($gid); $homeparty_user = HomepartyUser::findOrFail($gid);
if($homeparty->id !== $homeparty_user->homeparty_id){ if($homeparty->id !== $homeparty_user->homeparty_id){
@ -222,9 +262,20 @@ class HomepartyController extends Controller
public function order($id = null) public function order($id = null)
{ {
$user = User::find(Auth::user()->id); $user = User::find(Auth::user()->id);
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
$shipping_country_id = $this->checkShoppingCountry($homeparty->country_id);
if(!$shipping_country_id){
\Session()->flash('custom-error', __('validation.custom.shipping_not_found'));
return redirect(route('user_homepartys'));
}
UserService::checkUserTaxShippingCountry($user, $shipping_country_id);
if($this->userChangeCountry($homeparty)){
\Session()->flash('custom-error', 'Das Rechnungsland wurde geändert und der Warenkrob zurückgesetzt.');
return redirect(route('user_homeparty_order', [$homeparty->id]));
}
HomepartyCart::calculateHomeparty($homeparty); HomepartyCart::calculateHomeparty($homeparty);
$homeparty->card_info = UserService::getYardInfo();
$homeparty->save();
$userHistoryPaymentOrder = UserHistory::whereUserId($user->id)->whereAction('payment_homeparty')->where('referenz', $homeparty->id)->get()->last(); $userHistoryPaymentOrder = UserHistory::whereUserId($user->id)->whereAction('payment_homeparty')->where('referenz', $homeparty->id)->get()->last();
$data = [ $data = [
'homeparty' => $homeparty, 'homeparty' => $homeparty,
@ -232,10 +283,34 @@ class HomepartyController extends Controller
]; ];
return view('user.homeparty.order', $data); return view('user.homeparty.order', $data);
} }
private function userChangeCountry($homeparty){
if(isset($homeparty->card_info['user_country_id'])){
if($homeparty->card_info['user_country_id'] !== UserService::$user_country->id){
// es wurde schon eine order angelegt, aber das Rechungsland geändert
if($homeparty->homeparty_order_items->count()){
foreach($homeparty->homeparty_order_items as $homeparty_order_item){
$homeparty_order_item->delete();
}
return true;
}
}
}
return false;
}
private function checkShoppingCountry($country_id){
if($country_id){
if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){
return $shipping_country->id;
}
}
return false;
}
//perform Request //perform Request
public function orderStore($id = null) public function orderStore($id = null)
{ {
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
if(Request::ajax()) { if(Request::ajax()) {
@ -257,20 +332,37 @@ class HomepartyController extends Controller
$HomepartyUserOrderItem->qty = $HomepartyUserOrderItem->qty+1; $HomepartyUserOrderItem->qty = $HomepartyUserOrderItem->qty+1;
$HomepartyUserOrderItem->save(); $HomepartyUserOrderItem->save();
}else{ }else{
if($homeparty->getCardInfo('user_tax_free')){
$HomepartyUserOrderItem = HomepartyUserOrderItem::create([ $HomepartyUserOrderItem = HomepartyUserOrderItem::create([
'homeparty_id' => $homeparty->id, 'homeparty_id' => $homeparty->id,
'homeparty_user_id' => $homeparty_user->id, 'homeparty_user_id' => $homeparty_user->id,
'product_id' => $product->id, 'product_id' => $product->id,
'qty' => 1, 'qty' => 1,
'price' => $product->price, 'price' => $product->getPriceWith(true, false, $homeparty->getUserCountry()),
'price_net' => $product->getPriceWith(true, false), 'price_net' => $product->getPriceWith(true, false, $homeparty->getUserCountry()),
'tax_rate' => $product->tax, 'tax_rate' => 0,
'points' => $product->points, 'points' => $product->points,
'margin' => $margin, 'margin' => $margin,
'ek-price' => $product->getPriceWith(false, true), 'ek-price' => $product->getPriceWith(true, true, $homeparty->getUserCountry()),
'ek-price_net' => $product->getPriceWith(true, true), 'ek-price_net' => $product->getPriceWith(true, true, $homeparty->getUserCountry()),
'slug' => $product->slug 'slug' => $product->slug
]); ]);
}else{
$HomepartyUserOrderItem = HomepartyUserOrderItem::create([
'homeparty_id' => $homeparty->id,
'homeparty_user_id' => $homeparty_user->id,
'product_id' => $product->id,
'qty' => 1,
'price' => $product->getPriceWith(false, false, $homeparty->getUserCountry()),
'price_net' => $product->getPriceWith(true, false, $homeparty->getUserCountry()),
'tax_rate' => $product->getTaxWith($homeparty->getUserCountry()),
'points' => $product->points,
'margin' => $margin,
'ek-price' => $product->getPriceWith(false, true, $homeparty->getUserCountry()),
'ek-price_net' => $product->getPriceWith(true, true, $homeparty->getUserCountry()),
'slug' => $product->slug
]);
}
} }
} }
@ -280,7 +372,7 @@ class HomepartyController extends Controller
HomepartyCart::calculateHomeparty($homeparty); HomepartyCart::calculateHomeparty($homeparty);
$html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render(); $html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render();
$html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render(); $html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render();
$html_host_bonus = view("user.homeparty.show_calc_bonus_host")->render(); $html_host_bonus = view("user.homeparty.show_calc_bonus_host", ['homeparty' => $homeparty])->render();
$html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render(); $html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render();
return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]); return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]);
} }
@ -458,18 +550,24 @@ class HomepartyController extends Controller
return $homeparty; return $homeparty;
} }
public function datatable(){ public function datatable($homeparty_id){
$query = Product::select('products.*')->where('active', true)->where(function ($q) {
$q->where('show_at', '=', 0) $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '3');
->orWhere('show_at', '=', 1); $homeparty = Homeparty::findOrFail($homeparty_id);
});
return \DataTables::eloquent($query) return \DataTables::eloquent($query)
->addColumn('add_card', function (Product $product) { ->addColumn('add_card', function (Product $product) use ($homeparty) {
if($homeparty->getCardInfo('user_tax_free')){
return '<button type="button" class="btn btn-sm btn-md-extra btn-secondary add-product-basket" data-product-id="'.$product->id.'"> return '<button type="button" class="btn btn-sm btn-md-extra btn-secondary add-product-basket" data-product-id="'.$product->id.'">
<strong>&euro; '.$product->getFormattedPriceWith(false, false).'</strong>&nbsp; +<span class="ion ion-md-cart"></span> <strong>&euro; '.$product->getFormattedPriceWith(true, false, $homeparty->getUserCountry()).'</strong>&nbsp; +<span class="ion ion-md-cart"></span>
</button>'; </button>';
}else{
return '<button type="button" class="btn btn-sm btn-md-extra btn-secondary add-product-basket" data-product-id="'.$product->id.'">
<strong>&euro; '.$product->getFormattedPriceWith(false, false, $homeparty->getUserCountry()).'</strong>&nbsp; +<span class="ion ion-md-cart"></span>
</button>';
}
}) })
->addColumn('picture', function (Product $product) { ->addColumn('picture', function (Product $product) {
if(count($product->images)){ if(count($product->images)){
@ -477,14 +575,28 @@ class HomepartyController extends Controller
} }
return ""; return "";
}) })
->addColumn('price_net', function (Product $product) { /*->addColumn('price_net', function (Product $product) use ($homeparty) {
return $product->getFormattedPriceWith(true, true). ""; return '<span class="no-line-break">'.$product->getFormattedPriceWith(true, true, $homeparty->getUserCountry()). " €</span>".
'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(true, true, $homeparty->getUserCountry()).'</span>';
}) })
->addColumn('price_gross', function (Product $product) { */
return $product->getFormattedPriceWith(false, true). ""; ->addColumn('price_gross', function (Product $product) use ($homeparty) {
if($homeparty->getCardInfo('user_tax_free')){
return '<span class="no-line-break">'.$product->getFormattedPriceWith(true, true, $homeparty->getUserCountry()). " €</span>".
'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(true, true, $homeparty->getUserCountry()).'</span>';
}else{
return '<span class="no-line-break">'.$product->getFormattedPriceWith(false, true, $homeparty->getUserCountry()). " €</span>".
'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(false, true, $homeparty->getUserCountry()).'</span>';
}
}) })
->addColumn('price_vk_gross', function (Product $product) { ->addColumn('price_vk_gross', function (Product $product) use ($homeparty) {
return $product->getFormattedPriceWith(false, false). ""; if($homeparty->getCardInfo('user_tax_free')){
return '<span class="no-line-break">'.$product->getFormattedPriceWith(true, false, $homeparty->getUserCountry()). " €</span>".
'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(true, false, $homeparty->getUserCountry()).'</span>';
}else{
return '<span class="no-line-break">'.$product->getFormattedPriceWith(false, false, $homeparty->getUserCountry()). " €</span>".
'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(false, false, $homeparty->getUserCountry()).'</span>';
}
}) })
->addColumn('action', function (Product $product) { ->addColumn('action', function (Product $product) {
return '<button class="btn btn-default btn-sm icon-btn md-btn-flat product-tooltip" title="details" data-modal="modal-lg" return '<button class="btn btn-default btn-sm icon-btn md-btn-flat product-tooltip" title="details" data-modal="modal-lg"
@ -506,7 +618,7 @@ class HomepartyController extends Controller
->orderColumn('contents_total', 'contents_total $1') ->orderColumn('contents_total', 'contents_total $1')
->orderColumn('weight', 'weight $1') ->orderColumn('weight', 'weight $1')
->rawColumns(['add_card', 'product', 'quantity', 'picture', 'action']) ->rawColumns(['add_card', 'product', 'quantity', 'picture', 'price_net', 'price_gross', 'price_vk_gross', 'action'])
->make(true); ->make(true);
} }

View file

@ -11,6 +11,7 @@ use App\Models\ShoppingUser;
use App\Models\UserHistory; use App\Models\UserHistory;
use App\Models\UserShop; use App\Models\UserShop;
use App\Services\Payment; use App\Services\Payment;
use App\Services\UserService;
use App\Services\Util; use App\Services\Util;
use App\User; use App\User;
use Auth; use Auth;
@ -102,7 +103,6 @@ class OrderController extends Controller
public function delivery($for, $id=null) public function delivery($for, $id=null)
{ {
$user = User::find(\Auth::user()->id); $user = User::find(\Auth::user()->id);
$shopping_user = null; $shopping_user = null;
$delivery_id = null; $delivery_id = null;
if($for === 'ot'){ if($for === 'ot'){
@ -134,10 +134,10 @@ class OrderController extends Controller
public function list($for, $id=null) public function list($for, $id=null)
{ {
$user = User::find(\Auth::user()->id); $user = User::find(\Auth::user()->id);
$shopping_user = null; $shopping_user = null;
$delivery_id = null; $delivery_id = null;
if($for === 'ot'){ if($for === 'ot'){
$shopping_user = $this->checkShoppingUser($id, $user); $shopping_user = $this->checkShoppingUser($id, $user);
$delivery_id = $shopping_user->id; $delivery_id = $shopping_user->id;
@ -147,8 +147,10 @@ class OrderController extends Controller
\Session()->flash('custom-error', __('validation.custom.shipping_not_found')); \Session()->flash('custom-error', __('validation.custom.shipping_not_found'));
return redirect(route('user_order_my_delivery', [$for, $delivery_id])); return redirect(route('user_order_my_delivery', [$for, $delivery_id]));
} }
UserService::checkUserTaxShippingCountry($user, $shipping_country_id);
Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id, $for); Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id, $for);
Yard::instance('shopping')->setUserPriceInfos(UserService::getYardInfo());
$data = [ $data = [
'shopping_user' => $shopping_user, 'shopping_user' => $shopping_user,
@ -202,6 +204,7 @@ class OrderController extends Controller
$data['is_from'] = 'user_order'; $data['is_from'] = 'user_order';
$data['is_for'] = $for; $data['is_for'] = $for;
$data['shopping_user_id'] = $id; $data['shopping_user_id'] = $id;
$data['user_price_infos'] = Yard::instance('shopping')->getUserPriceInfos();
unset($data['quantity']); unset($data['quantity']);
unset($data['_token']); unset($data['_token']);
@ -232,7 +235,7 @@ class OrderController extends Controller
$country_id = null; $country_id = null;
if($for === 'me'){ if($for === 'me'){
$user = User::find(\Auth::user()->id); $user = User::find(\Auth::user()->id);
if($user->same_as_billing){ if($user->account->same_as_billing){
$country_id = $user->account->country_id; $country_id = $user->account->country_id;
}else{ }else{
$country_id = $user->account->shipping_country_id; $country_id = $user->account->shipping_country_id;
@ -246,7 +249,6 @@ class OrderController extends Controller
$country_id = $shopping_user->shipping_country_id; $country_id = $shopping_user->shipping_country_id;
} }
} }
if($country_id){ if($country_id){
if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){ if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){
return $shipping_country->id; return $shipping_country->id;
@ -272,41 +274,19 @@ class OrderController extends Controller
public function datatable(){ public function datatable(){
$show_at = 1;
// $user = User::find(\Auth::user()->id);
;
if(Request::get('shipping_is_for') === 'me'){ if(Request::get('shipping_is_for') === 'me'){
$query = Product::select('products.*')->where('active', true)->where(function ($q) { $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '2');
$q->where('show_at', '=', 1)
->orWhere('show_at', '=', 2)
->orWhere('show_at', '=', 6);
});
}else{ }else{
$query = Product::select('products.*')->where('active', true)->where(function ($q) { $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '1');
$q->where('show_at', '=', 0)
->orWhere('show_at', '=', 1);
});
} }
//Kunden und Berater
//->orWhere('show_at', '=', 2); // Nur Berater
//->orderBy('pos', 'DESC')
//->orderBy('id', 'DESC');
return \DataTables::eloquent($query) return \DataTables::eloquent($query)
->addColumn('product', function (Product $product) { ->addColumn('product', function (Product $product) {
$cartItem = Yard::instance('shopping')->getCartItemByProduct($product->id); $cartItem = Yard::instance('shopping')->getCartItemByProduct($product->id);
$qty = isset($cartItem->qty) ? $cartItem->qty : 0; $qty = isset($cartItem->qty) ? $cartItem->qty : 0;
$rowId = isset($cartItem->rowId) ? $cartItem->rowId : ''; $rowId = isset($cartItem->rowId) ? $cartItem->rowId : '';
return '<strong>'.$product->name.'</strong><br><div class="no-line-break input-group-min-w"> return '<strong>'.$product->name.'</strong><br>
<div class="no-line-break input-group-min-w">
<div class="input-group d-inline-flex w-auto"> <div class="input-group d-inline-flex w-auto">
<span class="input-group-prepend"> <span class="input-group-prepend">
<button type="button" class="btn btn-secondary icon-btn md-btn-extra remove-product-basket" data-row-id="'.$rowId.'" data-product-id="'.$product->id.'">-</button> <button type="button" class="btn btn-secondary icon-btn md-btn-extra remove-product-basket" data-row-id="'.$rowId.'" data-product-id="'.$product->id.'">-</button>
@ -349,13 +329,13 @@ class OrderController extends Controller
return ""; return "";
}) })
->addColumn('price_net', function (Product $product) { ->addColumn('price_net', function (Product $product) {
return $product->getFormattedPriceWith(true, true). ""; return '<span class="no-line-break">'.$product->getFormattedPriceWith(true, true, Yard::instance('shopping')->getUserCountry()). " €</span>".'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(true, true, Yard::instance('shopping')->getUserCountry()).'</span>';
}) })
->addColumn('price_gross', function (Product $product) { ->addColumn('price_gross', function (Product $product) {
return $product->getFormattedPriceWith(false, true). ""; return '<span class="no-line-break">'.$product->getFormattedPriceWith(false, true, Yard::instance('shopping')->getUserCountry()). " €</span>".'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(false, true, Yard::instance('shopping')->getUserCountry()).'</span>';
}) })
->addColumn('price_vk_gross', function (Product $product) { ->addColumn('price_vk_gross', function (Product $product) {
return $product->getFormattedPriceWith(false, false). ""; return '<span class="no-line-break">'.$product->getFormattedPriceWith(false, false, Yard::instance('shopping')->getUserCountry()). " €</span>".'<span class="no-line-break">'.$product->getFormattedPriceCurrencyWith(false, false, Yard::instance('shopping')->getUserCountry()).'</span>';
}) })
->addColumn('action', function (Product $product) { ->addColumn('action', function (Product $product) {
return '<button class="btn btn-default btn-sm icon-btn md-btn-flat product-tooltip" title="details" data-modal="modal-lg" return '<button class="btn btn-default btn-sm icon-btn md-btn-flat product-tooltip" title="details" data-modal="modal-lg"
@ -377,7 +357,7 @@ class OrderController extends Controller
->orderColumn('contents_total', 'contents_total $1') ->orderColumn('contents_total', 'contents_total $1')
->orderColumn('weight', 'weight $1') ->orderColumn('weight', 'weight $1')
->rawColumns(['add_card', 'product', 'quantity', 'picture', 'action']) ->rawColumns(['add_card', 'price_net', 'price_gross', 'price_vk_gross', 'product', 'quantity', 'picture', 'action'])
->make(true); ->make(true);
} }
@ -398,8 +378,8 @@ class OrderController extends Controller
} }
//get the card item //get the card item
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->getPriceWith(false, true), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]); $cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->getPriceWith(false, true, Yard::instance('shopping')->getUserCountry()), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]);
Yard::setTax($cartItem->rowId, $product->tax); Yard::setTax($cartItem->rowId, $product->getTaxWith(Yard::instance('shopping')->getUserCountry()));
if(isset($data['qty']) && $data['qty'] > 0){ if(isset($data['qty']) && $data['qty'] > 0){
Yard::instance('shopping')->update($cartItem->rowId, $data['qty']); Yard::instance('shopping')->update($cartItem->rowId, $data['qty']);
@ -485,7 +465,7 @@ class OrderController extends Controller
private function getCompProducts($for){ private function getCompProducts($for){
if($for === 'me'){ if($for === 'me'){
return Product::whereActive(true)->where('show_at', '=', 1)->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); return Product::whereActive(true)->whereJsonContains('show_on', ['1', '2', '3'])->where('shipping_addon', true)->orderBy('pos', 'DESC')->get();
} }
return null; return null;
} }

View file

@ -76,6 +76,7 @@ class UserDataController extends Controller
if(isset($data['reverse_charge_delete'])){ if(isset($data['reverse_charge_delete'])){
$user->account->tax_identification_number = ''; $user->account->tax_identification_number = '';
$user->account->reverse_charge = 0; $user->account->reverse_charge = 0;
$user->account->reverse_charge_code = null;
$user->account->reverse_charge_valid = null; $user->account->reverse_charge_valid = null;
$user->account->save(); $user->account->save();
\Session()->flash('alert-success', 'Reverse Charge Verfahren und UST-ID gelöscht.'); \Session()->flash('alert-success', 'Reverse Charge Verfahren und UST-ID gelöscht.');
@ -83,7 +84,6 @@ class UserDataController extends Controller
} }
$rules = array( $rules = array(
'salutation' => 'required', 'salutation' => 'required',
'first_name'=>'required', 'first_name'=>'required',

View file

@ -41,6 +41,8 @@ class HomepartyController extends Controller
if($gid === 'new'){ if($gid === 'new'){
$homeparty_user = new HomepartyUser(); $homeparty_user = new HomepartyUser();
$homeparty_user->same_as_billing = true; $homeparty_user->same_as_billing = true;
$homeparty_user->billing_country_id = $homeparty->country_id;
$homeparty_user->shipping_country_id = $homeparty->country_id;
}else{ }else{
//no edit //no edit

View file

@ -29,8 +29,8 @@ class SiteController extends Controller
$set_products = ['aloe-vera-koerper-set', 'baby-set', 'aloe-vera-gel-set']; $set_products = ['aloe-vera-koerper-set', 'baby-set', 'aloe-vera-gel-set'];
$data = [ $data = [
'products' => Product::whereIn('slug', $products)->where('active', true)->where('show_at', '<=', 1)->get(), 'products' => Product::whereIn('slug', $products)->where('active', true)->whereJsonContains('show_on', '1')->get(),
'set_products' => Product::whereIn('slug', $set_products)->where('active', true)->where('show_at', '<=', 1)->get(), 'set_products' => Product::whereIn('slug', $set_products)->where('active', true)->whereJsonContains('show_on', '1')->get(),
'user_shop' => Util::getUserShop(), 'user_shop' => Util::getUserShop(),
'site' => IqSite::find(1), 'site' => IqSite::find(1),
]; ];
@ -47,7 +47,7 @@ class SiteController extends Controller
if($product_slug){ if($product_slug){
$category = Category::where('slug', $subsite)->where('active', true)->first(); $category = Category::where('slug', $subsite)->where('active', true)->first();
$product = Product::where('slug', $product_slug)->where('active', true)->where('show_at', '<=', 1)->first(); $product = Product::where('slug', $product_slug)->where('active', true)->whereJsonContains('show_on', '1')->first();
if ($category && $product) { if ($category && $product) {
$data = [ $data = [
@ -55,7 +55,7 @@ class SiteController extends Controller
'subsite' => $subsite, 'subsite' => $subsite,
'categories' => Category::where('active', true)->orderBy('pos', 'ASC')->get(), 'categories' => Category::where('active', true)->orderBy('pos', 'ASC')->get(),
'product' => $product, 'product' => $product,
'p_count' => Product::where('active', true)->where('show_at', '<=', 1)->count(), 'p_count' => Product::where('active', true)->whereJsonContains('show_on', '1')->count(),
]; ];
return view('web.templates.produkte-show', $data); return view('web.templates.produkte-show', $data);
@ -74,7 +74,7 @@ class SiteController extends Controller
$product_categories = ProductCategory::where('category_id', $category->id)->whereHas('product', function ($query) use ($category) { $product_categories = ProductCategory::where('category_id', $category->id)->whereHas('product', function ($query) use ($category) {
$query->where('active', true)->where('show_at', '<=', 1); $query->where('active', true)->whereJsonContains('show_on', '1');
})->orderBy('pos', 'DESC')->get(); })->orderBy('pos', 'DESC')->get();
$data = [ $data = [
@ -83,7 +83,7 @@ class SiteController extends Controller
'categories' => Category::where('active', true)->orderBy('pos', 'DESC')->get(), 'categories' => Category::where('active', true)->orderBy('pos', 'DESC')->get(),
'products' => false, 'products' => false,
'product_categories' => $product_categories, 'product_categories' => $product_categories,
'p_count' => Product::where('active', true)->where('show_at', '<=', 1)->count(), 'p_count' => Product::where('active', true)->whereJsonContains('show_on', '1')->count(),
'headline' => $category->getLang('headline'), 'headline' => $category->getLang('headline'),
'headline_image' => $headline_image, 'headline_image' => $headline_image,
]; ];
@ -95,9 +95,9 @@ class SiteController extends Controller
'user_shop' => Util::getUserShop(), 'user_shop' => Util::getUserShop(),
'subsite' => 'alle-produkte', 'subsite' => 'alle-produkte',
'categories' => Category::where('active', true)->orderBy('pos', 'DESC')->get(), 'categories' => Category::where('active', true)->orderBy('pos', 'DESC')->get(),
'products' => Product::where('active', true)->where('show_at', '<=', 1)->orderBy('pos', 'DESC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', '1')->orderBy('pos', 'DESC')->get(),
'product_categories' => false, 'product_categories' => false,
'p_count' => Product::where('active', true)->where('show_at', '<=', 1)->count(), 'p_count' => Product::where('active', true)->whereJsonContains('show_on', '1')->count(),
'headline' => 'Produktwelt', 'headline' => 'Produktwelt',
'headline_image' => false, 'headline_image' => false,
]; ];

View file

@ -59,8 +59,8 @@ class WizardController extends Controller
$data = [ $data = [
'user' => Auth::user(), 'user' => Auth::user(),
'step' => $step, 'step' => $step,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
'userHistoryWizardPayment' => $userHistoryWizardPayment, 'userHistoryWizardPayment' => $userHistoryWizardPayment,
]; ];
@ -94,8 +94,8 @@ class WizardController extends Controller
$data = [ $data = [
'user' => Auth::user(), 'user' => Auth::user(),
'step' => $step, 'step' => $step,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
]; ];
if($step == 5){ if($step == 5){
return view('user.wizard.register_release', $data); return view('user.wizard.register_release', $data);
@ -123,8 +123,8 @@ class WizardController extends Controller
$data = [ $data = [
'user' => Auth::user(), 'user' => Auth::user(),
'step' => 0, 'step' => 0,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
'userHistoryWizardPayment' => $userHistoryWizardPayment, 'userHistoryWizardPayment' => $userHistoryWizardPayment,
]; ];
@ -158,8 +158,8 @@ class WizardController extends Controller
$data = [ $data = [
'user' => Auth::user(), 'user' => Auth::user(),
'step' => $step, 'step' => $step,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
]; ];
$user->wizard = 0; $user->wizard = 0;
$user->save(); $user->save();
@ -320,8 +320,8 @@ class WizardController extends Controller
$data = [ $data = [
'user' => Auth::user(), 'user' => Auth::user(),
'step' => $step, 'step' => $step,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
]; ];
$user->wizard = 10; $user->wizard = 10;
$user->save(); $user->save();
@ -359,8 +359,8 @@ class WizardController extends Controller
$data = [ $data = [
'user' => Auth::user(), 'user' => Auth::user(),
'step' => $step, 'step' => $step,
'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
]; ];
return view('user.wizard.create', $data)->withErrors($validator); return view('user.wizard.create', $data)->withErrors($validator);
} }
@ -433,7 +433,7 @@ class WizardController extends Controller
$user->save(); $user->save();
} }
if($product && $product->active && $product->show_at == 3){ if($product && $product->active){
//set membership product //set membership product
$image = ""; $image = "";
if($product->images->count()){ if($product->images->count()){

View file

@ -49,7 +49,7 @@ class Checkout
Yard::instance('shopping')->putYardExtra('shopping_data', $shopping_instance->shopping_data); Yard::instance('shopping')->putYardExtra('shopping_data', $shopping_instance->shopping_data);
$is_for = isset($shopping_instance->shopping_data['is_for']) ? $shopping_instance->shopping_data['is_for'] : 'ot'; $is_for = isset($shopping_instance->shopping_data['is_for']) ? $shopping_instance->shopping_data['is_for'] : 'ot';
Yard::instance('shopping')->setShippingCountryWithPrice($shopping_instance->country_id, $is_for); Yard::instance('shopping')->setShippingCountryWithPrice($shopping_instance->country_id, $is_for);
Yard::instance('shopping')->setUserPriceInfos($shopping_instance->shopping_data['user_price_infos']);
ShoppingInstance::where('identifier', $request->route('identifier'))->delete(); ShoppingInstance::where('identifier', $request->route('identifier'))->delete();
$request->route()->forgetParameter('identifier'); $request->route()->forgetParameter('identifier');

View file

@ -7,8 +7,10 @@
namespace App\Models; namespace App\Models;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection; use App\Models\Country;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use PHPUnit\Framework\Constraint\Count;
use Illuminate\Database\Eloquent\Collection;
/** /**
* Class Homeparty * Class Homeparty
@ -66,12 +68,15 @@ class Homeparty extends Model
'pos' => 'int', 'pos' => 'int',
'completed' => 'int', 'completed' => 'int',
'status' => 'int', 'status' => 'int',
'step' => 'int',
'country_id' => 'int',
'order_to' => 'bool', 'order_to' => 'bool',
'active' => 'bool', 'active' => 'bool',
'default' => 'bool', 'default' => 'bool',
'token_active' => 'bool', 'token_active' => 'bool',
'settings' => 'array', 'settings' => 'array',
'order' => 'array' 'order' => 'array',
'card_info' => 'array',
]; ];
protected $dates = [ protected $dates = [
@ -87,24 +92,33 @@ class Homeparty extends Model
'date', 'date',
'name', 'name',
'place', 'place',
'country_id',
'description', 'description',
'pos', 'pos',
'completed', 'completed',
'status', 'status',
'step',
'order_to', 'order_to',
'active', 'active',
'default', 'default',
'token', 'token',
'token_active', 'token_active',
'settings', 'settings',
'order' 'order',
'card_info'
]; ];
private $user_country;
public function auth_user() public function auth_user()
{ {
return $this->belongsTo('App\User', 'auth_user_id'); return $this->belongsTo('App\User', 'auth_user_id');
} }
public function country()
{
return $this->belongsTo('App\Models\Country', 'country_id');
}
public function homeparty_users() public function homeparty_users()
{ {
return $this->hasMany('App\Models\HomepartyUser', 'homeparty_id'); return $this->hasMany('App\Models\HomepartyUser', 'homeparty_id');
@ -141,5 +155,32 @@ class Homeparty extends Model
public function getTokenLink(){ public function getTokenLink(){
return url('homeparty/'.$this->token); return url('homeparty/'.$this->token);
} }
public function getCardInfo($key)
{
return isset($this->card_info[$key]) ? $this->card_info[$key] : null;
}
public function getUserCountry(){
if(!$this->user_country){
if($user_country_id = $this->getCardInfo('user_country_id')){
$this->user_country = Country::findOrFail($user_country_id);
}
}
return $this->user_country;
}
public function isPriceCurrency()
{
$user_country = $this->getUserCountry();
return ($user_country && $user_country->currency) ? true : false;
}
public function getPriceCurrencyUnit()
{
$user_country = $this->getUserCountry();
return ($user_country && $user_country->currency) ? $user_country->currency_unit : false;
}
} }

View file

@ -188,5 +188,29 @@ class HomepartyUserOrderItem extends Model
{ {
return (float) (($this->attributes['price'] - $this->attributes['ek-price']) * $this->attributes['qty']); return (float) (($this->attributes['price'] - $this->attributes['ek-price']) * $this->attributes['qty']);
} }
public function getCurrencyByKey($key)
{
$rNumber = 0;
if($this->homeparty && $this->homeparty->isPriceCurrency()){
$user_country = $this->homeparty->getUserCountry();
$faktor = isset($user_country->currency_faktor) ? $user_country->currency_faktor : 1;
switch ($key) {
case 'TotalIncomePrice':
$rNumber = $this->geTotalIncomePrice() * $faktor;
break;
case 'TotalPrice':
$rNumber = $this->getTotalPrice() * $faktor;
break;
case 'TotalEKPrice':
$rNumber = $this->geTotalEKPrice() * $faktor;
break;
}
}
return formatNumber($rNumber);
}
} }

View file

@ -46,12 +46,14 @@ class PaymentMethod extends Model
'pos' => 'int', 'pos' => 'int',
'active' => 'bool', 'active' => 'bool',
'default' => 'bool', 'default' => 'bool',
'show_on' => 'array',
]; ];
protected $fillable = [ protected $fillable = [
'name', 'name',
'short', 'short',
'show_at', 'show_at',
'show_on',
'pos', 'pos',
'default', 'default',
'active' 'active'
@ -67,10 +69,30 @@ class PaymentMethod extends Model
9 => 'überall', 9 => 'überall',
]; ];
public static $showONs = [
1 => 'KundenShop',
2 => 'BeraterShop',
3 => 'Auszeitparty',
4 => 'Registrierung Berater',
5 => 'Mitgliedschaft Berater',
//6 => 'Onboarding Berater',
10 => 'überall',
];
public function getShowAtType(){ public function getShowAtType(){
return isset(self::$showATs[$this->show_at]) ? self::$showATs[$this->show_at] : '-'; return isset(self::$showATs[$this->show_at]) ? self::$showATs[$this->show_at] : '-';
} }
public function getShowOnTypes(){
$ret = [];
if($this->show_on){
foreach($this->show_on as $show){
$ret[] = isset(self::$showONs[$show]) ? self::$showONs[$show] : '-';
}
}
return $ret;
}
public static function getDefaultAsArray($short=false){ public static function getDefaultAsArray($short=false){
return PaymentMethod::where('active', true)->where('default', true)->pluck('id'); return PaymentMethod::where('active', true)->where('default', true)->pluck('id');
} }

View file

@ -128,10 +128,12 @@ class Product extends Model
'trans_description' => 'array', 'trans_description' => 'array',
'trans_usage' => 'array', 'trans_usage' => 'array',
'trans_ingredients' => 'array', 'trans_ingredients' => 'array',
'show_on' => 'array',
'action' => 'array', 'action' => 'array',
'wp_number' => 'int', 'wp_number' => 'int',
'shipping_addon' => 'bool', 'shipping_addon' => 'bool',
'active' => 'bool' 'active' => 'bool',
'no_commission' => 'bool',
]; ];
use Sluggable; use Sluggable;
@ -149,6 +151,7 @@ class Product extends Model
'price_old', 'price_old',
'points', 'points',
'weight', 'weight',
'no_commission',
'contents', 'contents',
'contents_total', 'contents_total',
'unit', 'unit',
@ -162,6 +165,7 @@ class Product extends Model
'amount', 'amount',
'active', 'active',
'show_at', 'show_at',
'show_on',
'shipping_addon', 'shipping_addon',
'identifier', 'identifier',
'action', 'action',
@ -175,8 +179,6 @@ class Product extends Model
'upgrade' => 'Produktupgrade zur Produkt ID', 'upgrade' => 'Produktupgrade zur Produkt ID',
'upgrade_member' => 'Beraterupgrade zur Karriere ID', 'upgrade_member' => 'Beraterupgrade zur Karriere ID',
'proportional_voucher' => 'Anteiliger Gutschein Berater', 'proportional_voucher' => 'Anteiliger Gutschein Berater',
]; ];
public $unitTypes = [ public $unitTypes = [
0 => '', 0 => '',
@ -195,7 +197,16 @@ class Product extends Model
5 => 'Onboarding Berater', 5 => 'Onboarding Berater',
6 => 'Onboarding Berater + Berater Shop', 6 => 'Onboarding Berater + Berater Shop',
7 => 'zur internen Berechnung', 7 => 'zur internen Berechnung',
];
public $showONs = [
1 => 'KundenShop',
2 => 'BeraterShop',
3 => 'Auszeitparty',
4 => 'Registrierung Berater',
5 => 'Mitgliedschaft Berater',
6 => 'Onboarding Berater',
10 => 'zur internen Berechnung',
]; ];
public $actions = [ public $actions = [
@ -262,19 +273,19 @@ class Product extends Model
public function setPriceAttribute( $value ) { public function setPriceAttribute( $value ) {
$this->attributes['price'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['price'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setPriceEkAttribute( $value ) { public function setPriceEkAttribute( $value ) {
$this->attributes['price_ek'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['price_ek'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setTaxAttribute( $value ) { public function setTaxAttribute( $value ) {
$this->attributes['tax'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['tax'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setPriceOldAttribute( $value ) { public function setPriceOldAttribute( $value ) {
$this->attributes['price_old'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['price_old'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function getFormattedPrice() public function getFormattedPrice()
@ -287,10 +298,6 @@ class Product extends Model
return isset($this->attributes['price_ek']) ? Util::formatNumber($this->attributes['price_ek']) : ""; return isset($this->attributes['price_ek']) ? Util::formatNumber($this->attributes['price_ek']) : "";
} }
public function getFormattedTax()
{
return isset($this->attributes['tax']) ? Util::formatNumber($this->attributes['tax'], 0) : "";
}
public function getFormattedPriceOld() public function getFormattedPriceOld()
{ {
@ -299,6 +306,9 @@ class Product extends Model
/*price by user Factor*/ /*price by user Factor*/
private function calcPriceUserFactor($price){ private function calcPriceUserFactor($price){
if($this->no_commission){
return $price;
}
if(\Auth::user() && \Auth::user()->user_level){ if(\Auth::user() && \Auth::user()->user_level){
$margin = ((\Auth::user()->user_level->margin -100)*-1) / 100; $margin = ((\Auth::user()->user_level->margin -100)*-1) / 100;
$price = $price * $margin; $price = $price * $margin;
@ -306,24 +316,36 @@ class Product extends Model
return $price; return $price;
} }
/*price net*/ /*price net*/
private function calcPriceNet($price){ private function calcPriceNet($price, $country=null){
$tax_rate = ($this->attributes['tax'] + 100) / 100; $tax = $this->getTaxWith($country);
$tax_rate = ($tax + 100) / 100;
return $price / $tax_rate; return $price / $tax_rate;
} }
//price calu with //price calu with
public function getPriceWith(Bool $net = true, Bool $ufactor = true){ public function getPriceWith(Bool $net = true, Bool $ufactor = true, $country = null){
$price = $this->attributes['price']; $price = isset($this->attributes['price']) ? $this->attributes['price'] : null;
$price = $net ? $this->calcPriceNet($price) : $price; $cprice = $country ? $this->getCPrice($country) : null;
$price = $cprice ? $cprice : $price;
$price = $net ? $this->calcPriceNet($price, $country) : $price;
$price = $ufactor ? $this->calcPriceUserFactor($price) : $price; $price = $ufactor ? $this->calcPriceUserFactor($price) : $price;
return round($price, 2); return round($price, 2);
} }
/*out*/ /*out*/
public function getFormattedPriceWith(Bool $net = true, Bool $ufactor = true) public function getFormattedPriceWith(Bool $net = true, Bool $ufactor = true, $country = null)
{ {
return isset($this->attributes['price']) ? Util::formatNumber($this->getPriceWith($net, $ufactor)) : ""; return isset($this->attributes['price']) ? Util::formatNumber($this->getPriceWith($net, $ufactor, $country)) : "";
} }
public function getTaxWith($country = null){
$tax = isset($this->attributes['tax']) ? $this->attributes['tax'] : null;
$ctax = $country ? $this->getCTax($country) : null;
return $ctax !== null ? $ctax : $tax;
}
public function getFormattedTax($country = null)
{
return isset($this->attributes['tax']) ? Util::formatNumber($this->getTaxWith($country), 0) : "";
}
public function getBasePriceFormattedFull(){ public function getBasePriceFormattedFull(){
if($price = $this->getBasePrice()){ if($price = $this->getBasePrice()){
@ -368,6 +390,14 @@ class Product extends Model
return isset($this->showATs[$this->show_at]) ? $this->showATs[$this->show_at] : '-'; return isset($this->showATs[$this->show_at]) ? $this->showATs[$this->show_at] : '-';
} }
public function getShowOnTypes(){
$ret = [];
foreach($this->show_on as $show){
$ret[] = isset($this->showONs[$show]) ? $this->showONs[$show] : '-';
}
return $ret;
}
public function setPosAttribute($value){ public function setPosAttribute($value){
$this->attributes['pos'] = is_numeric($value) ? $value : null; $this->attributes['pos'] = is_numeric($value) ? $value : null;
@ -403,29 +433,40 @@ class Product extends Model
return rtrim($ret, ', '); return rtrim($ret, ', ');
} }
public function getCountryPrice($country_id){ public function getCountryPrice(Country $country){
return $this->country_prices->where('country_id', '=', $country_id)->first() ?: new CountryPrice(); if($country->own_eur){
return $this->country_prices->where('country_id', '=', $country->id)->first() ?: new CountryPrice();
}
return new CountryPrice();
} }
public function getCPrice($country_id){ public function getCPrice(Country $country){
return $this->getCountryPrice($country_id)->c_price; return $this->getCountryPrice($country)->c_price;
} }
public function getCTax($country_id){ public function getCTax(Country $country){
return $this->getCountryPrice($country_id)->c_tax; return $this->getCountryPrice($country)->c_tax;
} }
public function getCPriceOld($country_id){ public function getCPriceOld(Country $country){
return $this->getCountryPrice($country_id)->c_price_old; return $this->getCountryPrice($country)->c_price_old;
} }
public function getCCurrency($country_id){ public function getCCurrency(Country $country){
return $this->getCountryPrice($country_id)->c_currency; return $this->getCountryPrice($country)->c_currency;
} }
public function getRealPrice(Country $country){ public function getRealPrice(Country $country){
if($country->own_eur && $this->getCPrice($country->id)){ if($country->own_eur && $this->getCPrice($country)){
return $this->getCPrice($country->id); return $this->getCPrice($country);
} }
return $this->price; return $this->price;
} }
public function getFormattedPriceCurrencyWith(Bool $net = true, Bool $ufactor = true, Country $country = null){
$ret = "";
if($country->currency){
$price = $this->getPriceWith($net, $ufactor, $country);
$ret = formatNumber($price * $country->currency_faktor)." ".$country->currency_unit;
return '<br><span class="small">~'.$ret.'<span>';
}
return "" ;
}
} }

View file

@ -2,6 +2,7 @@
namespace App\Models; namespace App\Models;
use App\Models\ShippingCountry as ModelsShippingCountry;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
/** /**
@ -50,4 +51,17 @@ class ShippingCountry extends Model
return $this->hasMany('App\Models\ShoppingOrder', 'country_id'); return $this->hasMany('App\Models\ShoppingOrder', 'country_id');
} }
public static function getActiveShippingCountries(){
$ret = [];
$ShippingCountries = ShippingCountry::all();
foreach($ShippingCountries as $ShippingCountry){
if($ShippingCountry->shipping->active){
$ret[$ShippingCountry->country_id] = $ShippingCountry->country->getLocated();
}
}
return $ret;
}
} }

View file

@ -58,32 +58,32 @@ class ShippingPrice extends Model
public function setPriceAttribute($value) public function setPriceAttribute($value)
{ {
$this->attributes['price'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['price'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setPriceCompAttribute($value) public function setPriceCompAttribute($value)
{ {
$this->attributes['price_comp'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['price_comp'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setFactorAttribute($value) public function setFactorAttribute($value)
{ {
$this->attributes['factor'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['factor'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setTaxRateAttribute($value) public function setTaxRateAttribute($value)
{ {
$this->attributes['tax_rate'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['tax_rate'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setTotalFromAttribute($value) public function setTotalFromAttribute($value)
{ {
$this->attributes['total_from'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['total_from'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function setTotalToAttribute($value) public function setTotalToAttribute($value)
{ {
$this->attributes['total_to'] = $value ? Util::reFormatNumber($value) : null; $this->attributes['total_to'] = $value !== null ? Util::reFormatNumber($value) : null;
} }
public function getFormattedPrice() public function getFormattedPrice()

View file

@ -101,5 +101,4 @@ class ShoppingOrderItem extends Model
{ {
return formatNumber($this->attributes['price_net'] * $this->attributes['qty']); return formatNumber($this->attributes['price_net'] * $this->attributes['qty']);
} }
} }

View file

@ -28,6 +28,8 @@ class ProductRepository extends BaseRepository {
$data['active'] = isset($data['active']) ? 1 : 0; $data['active'] = isset($data['active']) ? 1 : 0;
$data['shipping_addon'] = isset($data['shipping_addon']) ? 1 : 0; $data['shipping_addon'] = isset($data['shipping_addon']) ? 1 : 0;
$data['no_commission'] = isset($data['no_commission']) ? 1 : 0;
$data['show_on'] = isset($data['show_on']) ? $data['show_on'] : null;
if($data['id'] === "new"){ if($data['id'] === "new"){

View file

@ -23,15 +23,12 @@ class UserRepository extends BaseRepository {
{ {
if($data['user_id'] === "new" || $data['user_id'] == 0){ if($data['user_id'] === "new" || $data['user_id'] == 0){
$this->model = User::create([ $this->model = User::create([
'email' => $data['email'], 'email' => $data['email'],
'password' => env('APP_KEY'), 'password' => env('APP_KEY'),
]); ]);
$this->model->payment_methods = PaymentMethod::getDefaultAsArray(); $this->model->payment_methods = PaymentMethod::getDefaultAsArray();
$this->model->save(); $this->model->save();
} }
else{ else{
$this->model = $this->getById($data['user_id']); $this->model = $this->getById($data['user_id']);
@ -44,8 +41,6 @@ class UserRepository extends BaseRepository {
} }
$data['same_as_billing'] = !isset($data['same_as_billing']) ? 0 : 1; $data['same_as_billing'] = !isset($data['same_as_billing']) ? 0 : 1;
$account->fill($data)->save(); $account->fill($data)->save();
if(!$this->model->account_id){ if(!$this->model->account_id){
@ -139,6 +134,7 @@ class UserRepository extends BaseRepository {
if($result->valid == true) { if($result->valid == true) {
$user->account->tax_identification_number = $data['tax_identification_number']; $user->account->tax_identification_number = $data['tax_identification_number'];
$user->account->reverse_charge = 1; $user->account->reverse_charge = 1;
$user->account->reverse_charge_code = $countryCode;
$user->account->reverse_charge_valid = now(); $user->account->reverse_charge_valid = now();
$user->account->save(); $user->account->save();
return 'valid'; return 'valid';

View file

@ -217,6 +217,8 @@ class HTMLHelper
return $ret; return $ret;
} }
public static function getContriesCodes($id, $all=true){# public static function getContriesCodes($id, $all=true){#
$values = Country::all(); $values = Country::all();
$counter = 1; $counter = 1;

View file

@ -29,11 +29,11 @@ class HomepartyCart
public static $ek_price_net = 0; public static $ek_price_net = 0;
public static $income_price = 0; public static $income_price = 0;
public static $homeparty;
private static $shipping_total = 0; private static $shipping_total = 0;
private static $shipping_net_total = 0; private static $shipping_net_total = 0;
private static $homeparty;
private static $userCarts = []; private static $userCarts = [];
public static $user_host_id; public static $user_host_id;
@ -311,6 +311,11 @@ class HomepartyCart
return formatNumber(self::$points, 0); return formatNumber(self::$points, 0);
} }
public static function getFormattedPointsTotal()
{
return formatNumber(self::$points - self::$bonus_points_diff, 0);
}
public static function getFormattedPrice() public static function getFormattedPrice()
{ {
return formatNumber(self::$price); return formatNumber(self::$price);
@ -398,4 +403,46 @@ class HomepartyCart
return number_format($value, $decimals, $decimalPoint, $thousandSeperator); return number_format($value, $decimals, $decimalPoint, $thousandSeperator);
} }
public static function getCurrencyByKey($key)
{
$rNumber = 0;
if(self::$homeparty && self::$homeparty->isPriceCurrency()){
$user_country = self::$homeparty->getUserCountry();
$faktor = isset($user_country->currency_faktor) ? $user_country->currency_faktor : 1;
switch ($key) {
case 'BonusValue':
$rNumber = self::$bonus_value * $faktor;
break;
case 'BonusCoupon':
$rNumber = self::$bonus_coupon * $faktor;
break;
case 'IncomePrice':
$rNumber = self::$income_price * $faktor;
break;
case 'Price':
$rNumber = self::$price * $faktor;
break;
case 'EkPrice':
$rNumber = self::$ek_price * $faktor;
break;
case 'PriceNet':
$rNumber = self::$price_net * $faktor;
break;
case 'EkPriceNet':
$rNumber = self::$ek_price_net * $faktor;
break;
case 'PriceTax':
$rNumber = (self::$price - self::$price_net) * $faktor;
break;
case 'EkPriceTax':
$rNumber = (self::$ek_price - self::$ek_price_net)* $faktor;
break;
}
}
return formatNumber($rNumber);
}
} }

View file

@ -125,4 +125,31 @@ class HomepartyUserCart
return number_format($value, $decimals, $decimalPoint, $thousandSeperator); return number_format($value, $decimals, $decimalPoint, $thousandSeperator);
} }
public function getCurrencyByKey($key)
{
$rNumber = 0;
if($this->homepartyUser->homeparty && $this->homepartyUser->homeparty->isPriceCurrency()){
$user_country = $this->homepartyUser->homeparty->getUserCountry();
$faktor = isset($user_country->currency_faktor) ? $user_country->currency_faktor : 1;
switch ($key) {
case 'ShippingPrice':
$rNumber = $this->shipping_price * $faktor;
break;
case 'IncomePrice':
$rNumber = $this->income_price * $faktor;
break;
case 'Price':
$rNumber = $this->price * $faktor;
break;
case 'EkPrice':
$rNumber = $this->ek_price * $faktor;
break;
}
}
return formatNumber($rNumber);
}
} }

View file

@ -0,0 +1,29 @@
<?php
namespace App\Services;
use App\User;
class PriceService
{
public static $country;
public static function createConfirmationCode() {
$unique = false;
do{
$confirmation_code = str_random(30);
if(User::where('confirmation_code', '=', $confirmation_code)->count() == 0){
$unique = true;
}
}
while(!$unique);
return $confirmation_code;
}
}

View file

@ -0,0 +1,13 @@
<?php
namespace App\Services;
class TaxPriceHelper
{
public static function userOrders() {
}
}

View file

@ -3,9 +3,89 @@ namespace App\Services;
use App\User; use App\User;
use App\Models\ShippingCountry;
class UserService class UserService
{ {
public static $user_country;
public static $shipping_country;
public static $user_tax_free;
public static $user_reverse_charge = false;
public static function checkUserTaxShippingCountry(User $user, $shipping_country_id) {
if(!$user->account && !$user->account->country_id){
abort(403, 'Error: User hat kein Land!');
}
$ShippingCountry = ShippingCountry::findOrFail($shipping_country_id);
self::$user_tax_free = self::performUserTaxShippingCountry($user, $ShippingCountry);
/*
dump( self::$user_price_code );
dump( self::$user_tax_free );
dump( self::$user_reverse_charge );
*/
}
public static function performUserTaxShippingCountry($user, $ShippingCountry){
//preise für das Land
self::$user_country = $user->account->country;
self::$shipping_country = $ShippingCountry->country;
//ausgehend vom Land des Rechnungsempfänger $user->account->country
//ist der Rechnungsempfänger im Drittland?
if($user->account->country->supply_country){
if($ShippingCountry->country->supply_country){
//Lieferadresse im Drittland?
return true;
}
}
//Rechnungsempfänger in der EU
//Lieferland mit RSV
if($ShippingCountry->country->eu_country){
//Rechnungsempfänger mit valid aktiv RSV
if($user->account->reverse_charge && $user->account->reverse_charge_valid){
//Rechnungsland ist auch Lieferland, dann RSV
if(strtolower($user->account->reverse_charge_code) == strtolower($ShippingCountry->country->code)){
self::$user_reverse_charge = true;
return true;
}
}
}
//Lieferland ohne RSV
return false;
}
public static function getYardInfo(){
return [
'user_tax_free' => self::$user_tax_free,
'user_reverse_charge' => self::$user_reverse_charge,
'user_country_id' => self::$user_country->id,
'shipping_country_id' => self::$shipping_country->id,
];
}
public static function getOrderInfo($key = false){
switch ($key) {
case 'billing_state':
return self::$user_country->getLocated();
break;
case 'shipping_state':
return self::$shipping_country->getLocated();
break;
case 'tax_free':
return self::$user_tax_free ? 'Nein' : 'Ja';
break;
case 'user_reverse_charge':
return self::$user_reverse_charge ? 'Ja' : 'Nein';
break;
}
}
public static function createConfirmationCode() { public static function createConfirmationCode() {
$unique = false; $unique = false;
do{ do{
@ -18,4 +98,6 @@ class UserService
return $confirmation_code; return $confirmation_code;
} }
} }

View file

@ -1,14 +1,15 @@
<?php <?php
namespace App\Services; namespace App\Services;
use App\Models\Country;
use App\Models\Product; use App\Models\Product;
use App\Models\ShippingCountry; use App\Models\ShippingCountry;
use \Gloudemans\Shoppingcart\Cart; use \Gloudemans\Shoppingcart\Cart;
use Illuminate\Support\Collection;
use Gloudemans\Shoppingcart\CartItem; use Gloudemans\Shoppingcart\CartItem;
use Gloudemans\Shoppingcart\Contracts\Buyable;
use Illuminate\Session\SessionManager; use Illuminate\Session\SessionManager;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Collection; use Gloudemans\Shoppingcart\Contracts\Buyable;
class Yard extends Cart class Yard extends Cart
@ -21,7 +22,10 @@ class Yard extends Cart
private $shipping_is_for; private $shipping_is_for;
private $num_comp; private $num_comp;
private $ysession; private $ysession;
private $yinstance; private $user_tax_free;
private $user_reverse_charge;
private $user_country_id;
private $user_country;
private $shopping_data = []; private $shopping_data = [];
public function __construct(SessionManager $session, Dispatcher $events) public function __construct(SessionManager $session, Dispatcher $events)
@ -51,10 +55,21 @@ class Yard extends Cart
if($this->getYardExtra('shipping_is_for')){ if($this->getYardExtra('shipping_is_for')){
$this->shipping_is_for = $this->getYardExtra('shipping_is_for'); $this->shipping_is_for = $this->getYardExtra('shipping_is_for');
} }
if($this->getYardExtra('num_comp')){ if($this->getYardExtra('num_comp')){
$this->num_comp = $this->getYardExtra('num_comp'); $this->num_comp = $this->getYardExtra('num_comp');
} }
if($this->getYardExtra('user_tax_free')){
$this->user_tax_free = $this->getYardExtra('user_tax_free');
}
if($this->getYardExtra('user_reverse_charge')){
$this->user_reverse_charge = $this->getYardExtra('user_reverse_charge');
}
if($this->getYardExtra('user_country_id')){
$this->user_country_id = $this->getYardExtra('user_country_id');
}
if($this->getYardExtra('user_country')){
$this->user_country = $this->getYardExtra('user_country');
}
parent::__construct($session, $events); parent::__construct($session, $events);
@ -139,6 +154,44 @@ class Yard extends Cart
} }
public function setUserPriceInfos($setUserPriceInfos = [])
{
$this->user_tax_free = $setUserPriceInfos['user_tax_free'];
$this->putYardExtra('user_tax_free', $setUserPriceInfos['user_tax_free']);
$this->user_reverse_charge = $setUserPriceInfos['user_reverse_charge'];
$this->putYardExtra('user_reverse_charge', $setUserPriceInfos['user_reverse_charge']);
$this->user_country_id = $setUserPriceInfos['user_country_id'];
$this->putYardExtra('user_country_id', $setUserPriceInfos['user_country_id']);
$this->user_country = Country::findOrFail($setUserPriceInfos['user_country_id']);
$this->putYardExtra('user_country', $this->user_country);
}
public function getUserPriceInfos(){
return [
'user_tax_free' =>$this->user_tax_free,
'user_reverse_charge' =>$this->user_reverse_charge,
'user_country_id' =>$this->user_country_id,
];
}
public function getUserCountryId()
{
return $this->user_country_id;
}
public function getUserCountry()
{
return $this->user_country;
}
public function getUserTaxFree()
{
return $this->user_tax_free;
}
private function calculateShippingPrice(){ private function calculateShippingPrice(){
$shippingCountry = ShippingCountry::find($this->shipping_country_id); $shippingCountry = ShippingCountry::find($this->shipping_country_id);
@ -146,9 +199,11 @@ class Yard extends Cart
return; return;
} }
$shipping = $shippingCountry->shipping; $shipping = $shippingCountry->shipping;
if($this->weight() == 0){ if($this->weight() == 0){
$shipping_price = $shipping->shipping_prices->first(); $shipping_price = $shipping->shipping_prices->first();
if(!$shipping_price){
return;
}
$shipping_price->price = 0; $shipping_price->price = 0;
$shipping_price->price_comp = 0; $shipping_price->price_comp = 0;
}else{ }else{
@ -241,6 +296,9 @@ class Yard extends Cart
public function taxWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) public function taxWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null)
{ {
if($this->user_tax_free){
return $this->numberFormat(0, $decimals, $decimalPoint, $thousandSeperator);
}
$total = $this->totalWithShipping(2, '.', ''); $total = $this->totalWithShipping(2, '.', '');
// $totalTax = (float) $this->tax(2, '.', '') + $this->shipping_tax; // $totalTax = (float) $this->tax(2, '.', '') + $this->shipping_tax;
$totalTax = $this->subtotalWithShipping(2, '.', ''); $totalTax = $this->subtotalWithShipping(2, '.', '');
@ -250,7 +308,12 @@ class Yard extends Cart
public function totalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) public function totalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null)
{ {
if($this->user_tax_free){
$total = (float) ($this->subtotal(2, '.', '')) + $this->shipping_price_net;
}else{
$total = (float) ($this->total(2, '.', '')) + $this->shipping_price; $total = (float) ($this->total(2, '.', '')) + $this->shipping_price;
}
return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator); return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator);
} }
@ -359,7 +422,7 @@ class Yard extends Cart
} }
$price = $product->price; $price = $product->price;
if($set_price === 'with'){ if($set_price === 'with'){
$price = $product->getPriceWith(false, true); $price = $product->getPriceWith(false, true, $this->getUserCountry());
} }
$cartItem = $this->getCartItem($product->id, $product->getLang('name'), 1, $price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]); $cartItem = $this->getCartItem($product->id, $product->getLang('name'), 1, $price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]);
$content = $this->getContent(); $content = $this->getContent();
@ -402,6 +465,71 @@ class Yard extends Cart
return $this->numberFormat(($price * $row->qty), $decimals, $decimalPoint, $thousandSeperator); return $this->numberFormat(($price * $row->qty), $decimals, $decimalPoint, $thousandSeperator);
} }
public function isPriceCurrency()
{
return ($this->user_country && $this->user_country->currency) ? true : false;
}
public function getPriceCurrencyUnit()
{
return ($this->user_country && $this->user_country->currency) ? $this->user_country->currency_unit : false;
}
public function convertCurrency($value = 0, $decimals = null, $decimalPoint = null, $thousandSeperator = null){
if($this->isPriceCurrency()){
$faktor = isset($this->user_country->currency_faktor) ? $this->user_country->currency_faktor : 1;
$value = Util::reFormatNumber($value);
return $this->numberFormat($value, $decimals, $decimalPoint, $thousandSeperator);
}
return '';
}
public function getCurrencyByKey($key = false, CartItem $row = null, $decimals = null, $decimalPoint = null, $thousandSeperator = null){
if($this->isPriceCurrency()){
$rNumber = 0;
$faktor = isset($this->user_country->currency_faktor) ? $this->user_country->currency_faktor : 1;
switch ($key) {
case 'rowPriceNetCurrency':
if($row){
$price = round($row->price / ((100 + $row->taxRate) /100), 4);
$rNumber = $price * $faktor;
}
break;
case 'rowSubtotalCurrency':
if($row){
$price = round($row->price / ((100 + $row->taxRate) /100), 4);
$rNumber = $price * $faktor * $row->qty;
}
break;
case 'subtotal':
$rNumber = (float) ($this->subtotal(2, '.', '')) * $faktor;
break;
case 'shippingNet':
$rNumber = (float) ($this->shippingNet(2, '.', '')) * $faktor;
break;
case 'subtotalWithShipping':
$rNumber = (float) ($this->subtotalWithShipping(2, '.', '')) * $faktor;
break;
case 'taxWithShipping':
$rNumber = (float) ($this->taxWithShipping(2, '.', '')) * $faktor;
break;
case 'totalWithShipping':
$rNumber = (float) ($this->totalWithShipping(2, '.', '')) * $faktor;
break;
case 'total':
$rNumber = (float) ($this->total(2, '.', '')) * $faktor;
break;
case 'shipping':
$rNumber = (float) ($this->shipping(2, '.', '')) * $faktor;
break;
}
return $this->numberFormat($rNumber, $decimals, $decimalPoint, $thousandSeperator);
}
return '';
}
public function getNumComp(){ public function getNumComp(){
return $this->num_comp; return $this->num_comp;
} }

View file

@ -34,6 +34,7 @@ class CreateProductsTable extends Migration
$table->unsignedInteger('points')->nullable()->default(0); $table->unsignedInteger('points')->nullable()->default(0);
$table->unsignedInteger('weight')->nullable()->default(0); $table->unsignedInteger('weight')->nullable()->default(0);
$table->boolean('no_commission')->default(false);
$table->string('contents')->nullable(); $table->string('contents')->nullable();
$table->unsignedInteger('contents_total')->nullable(); $table->unsignedInteger('contents_total')->nullable();
@ -59,6 +60,8 @@ class CreateProductsTable extends Migration
$table->unsignedInteger('amount')->nullable(); //for shop $table->unsignedInteger('amount')->nullable(); //for shop
$table->tinyInteger('show_at')->unsigned()->nullable()->default(0); $table->tinyInteger('show_at')->unsigned()->nullable()->default(0);
$table->string('show_on')->nullable();
$table->boolean('shipping_addon')->default(false); $table->boolean('shipping_addon')->default(false);
$table->string('identifier', 20)->nullable(); $table->string('identifier', 20)->nullable();

View file

@ -43,6 +43,10 @@ class CreateUserAccountsTable extends Migration
$table->string('tax_identification_number', 20)->nullable(); $table->string('tax_identification_number', 20)->nullable();
$table->unsignedTinyInteger('taxable_sales')->nullable(); $table->unsignedTinyInteger('taxable_sales')->nullable();
$table->boolean('reverse_charge')->default(true);
$table->char('reverse_charge_code', 2)->nullable();
$table->timestamp('reverse_charge_valid')->nullable();
$table->boolean('same_as_billing')->default(true); $table->boolean('same_as_billing')->default(true);
$table->char('shipping_salutation', 2)->nullable(); $table->char('shipping_salutation', 2)->nullable();

View file

@ -18,6 +18,7 @@ class CreatePaymentMethodsTable extends Migration
$table->string('name')->index(); $table->string('name')->index();
$table->string('short', 10); $table->string('short', 10);
$table->unsignedTinyInteger('show_at')->nullable()->default(0); $table->unsignedTinyInteger('show_at')->nullable()->default(0);
$table->string('show_on')->nullable();
$table->unsignedTinyInteger('pos')->nullable()->default(0); $table->unsignedTinyInteger('pos')->nullable()->default(0);
$table->boolean('active')->default(false); $table->boolean('active')->default(false);
$table->boolean('default')->default(false); $table->boolean('default')->default(false);

View file

@ -23,16 +23,18 @@ class CreateHomepartiesTable extends Migration
$table->unsignedTinyInteger('pos')->default(0); $table->unsignedTinyInteger('pos')->default(0);
$table->unsignedTinyInteger('completed')->default(0); $table->unsignedTinyInteger('completed')->default(0);
$table->unsignedTinyInteger('status')->default(0); $table->unsignedTinyInteger('status')->default(0);
$table->unsignedTinyInteger('step')->default(0);
$table->boolean('order_to')->default(true); $table->boolean('order_to')->default(true);
$table->boolean('active')->default(false); $table->boolean('active')->default(false);
$table->boolean('default')->default(false); $table->boolean('default')->default(false);
$table->string('token')->nullable();
$table->boolean('token_active')->default(true); $table->boolean('token_active')->default(true);
$table->text('settings')->nullable(); $table->text('settings')->nullable();
$table->text('order')->nullable(); $table->text('order')->nullable();
$table->string('card_info')->nullable();
$table->timestamps(); $table->timestamps();
}); });

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 9 KiB

Before After
Before After

View file

@ -58,21 +58,25 @@
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
<label class="custom-control custom-checkbox"> <label class="custom-control custom-checkbox">
{!! Form::checkbox('eu_country', 1, $country->eu_country, ['class'=>'custom-control-input']) !!} {!! Form::checkbox('eu_country', 1, $country->eu_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Reverse Charge Verfahren (Berater aus diesen Ländern können mit ihrer UST-ID steuerfrei kaufen) </span> <span class="custom-control-label">Reverse Charge Verfahren (Berater aus diesen Ländern (EU-Ausland) können mit ihrer UST-ID steuerfrei kaufen) </span>
</label> </label>
<p class="small">Hinweis: Die UST-ID muss erst im Kundenkonto des Beraters (https://my.mivita.care/user/edit) verifiziert werden, im Land des Beraters muss das Reverse Charge Verfahren aktiviert sein. </p>
</div> </div>
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
<label class="form-label">Basis- / Lieferland</label> <label class="form-label">EU-Land - / Drittland (UST)</label>
<div class="custom-controls-stacked"> <div class="custom-controls-stacked">
<label class="custom-control custom-radio"> <label class="custom-control custom-radio">
{!! Form::radio('supply_country', 0, !$country->supply_country, ['class'=>'custom-control-input']) !!} {!! Form::radio('supply_country', 0, !$country->supply_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Basisland (in diese Länder kann aus den deutschem Raum bestellt werden)</span> <span class="custom-control-label">EU-Land (innerhalb dieser Länder wird die UST berechnet, Ausnahme Reverse Charge Verfahren )</span>
</label> </label>
<label class="custom-control custom-radio"> <label class="custom-control custom-radio">
{!! Form::radio('supply_country', 1, $country->supply_country, ['class'=>'custom-control-input']) !!} {!! Form::radio('supply_country', 1, $country->supply_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Lieferland (in diese Länder kann nur direkt bestellt werden, bsp. Schweiz)</span> <span class="custom-control-label">Drittland (innerhalb dieser Länder wird <strong>keine</strong> UST berechnert, bsp. Schweiz,)</span>
</label> </label>
</div> </div>
<p class="small">Hinweis: Drittland, die Bestellung ist UST-frei solange die Bestellung in ein Drittland geliefert wird. Wird aus einem Drittland in ein EU-Land geliefert, wird die UST berechnet.
Reverse Charge Verfahren kann nur in einem EU-Land angewendet werden, wenn es auch in das selbe Land gesendet wird. Ausnahme DE -> DE.
</p>
</div> </div>
</div> </div>
</div> </div>
@ -88,27 +92,27 @@
{!! Form::checkbox('switch', 1, $country->switch, ['class'=>'custom-control-input']) !!} {!! Form::checkbox('switch', 1, $country->switch, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Land als Auswahl auf der Webseite anzeigen (Länderwechsel)</span> <span class="custom-control-label">Land als Auswahl auf der Webseite anzeigen (Länderwechsel)</span>
</label> </label>
<p class="small">Hinweis: Die hier aktivierten Länder werden in auf der Shopseite zum Länderwächsel angezeigt, allerdings müssen auch die Versandkosten angelegt sein.</p>
</div> </div>
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
<label class="custom-control custom-checkbox"> <label class="custom-control custom-checkbox">
{!! Form::checkbox('own_eur', 1, $country->own_eur, ['class'=>'custom-control-input']) !!} {!! Form::checkbox('own_eur', 1, $country->own_eur, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Land hat eigenen EURO Preis</span> <span class="custom-control-label">Land hat eigenen EURO Preis</span>
</label> </label>
<p class="small">Hinweis: Hier kann bei den Produkten der EURO-Preis überschrieben werden, in diesem Land gelten dann höhere oder niedrigere Preise</p>
</div> </div>
<div class="col-12"> <div class="col-12">
<hr class="mt-0"> <hr class="mt-0">
</div> </div>
<div class="form-group col-sm-6"> <div class="form-group col-sm-12">
<label class="form-label">Eigene Währung</label> <label class="form-label">Eigene Währung</label>
<label class="custom-control custom-checkbox"> <label class="custom-control custom-checkbox">
{!! Form::checkbox('currency', 1, $country->currency, ['class'=>'custom-control-input', 'id'=>'currency']) !!} {!! Form::checkbox('currency', 1, $country->currency, ['class'=>'custom-control-input', 'id'=>'currency']) !!}
<span class="custom-control-label">Land hat eigene Währung<br>(Währung wird nur zuzsätzlich zum EUR angezeigt, bezahlt wird in EUR)</span> <span class="custom-control-label">Land hat eigene Währung</span>
</label> </label>
<p class="small">Hinweis: Währung wird nur zuzsätzlich zum EUR angezeigt, wenn für das jeweilige Land bestellt wird, bezahlt wird in EUR</p>
</div> </div>
<div class="form-group col-sm-6">
<label class="form-label" for="currency_unit">Abkürzung der Währung</label>
{{ Form::text('currency_unit', $country->currency_unit, array('placeholder'=>__('CHF'), 'class'=>'form-control', 'id'=>'currency_unit')) }}
</div>
</div> </div>
<div id="show_currency_calc" style="display: @if($country->currency) block @else none @endif"> <div id="show_currency_calc" style="display: @if($country->currency) block @else none @endif">
<div class="form-row"> <div class="form-row">
@ -116,6 +120,10 @@
<hr class="mt-0" > <hr class="mt-0" >
</div> </div>
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
<label class="form-label" for="currency_unit">Abkürzung der Währung</label>
{{ Form::text('currency_unit', $country->currency_unit, array('placeholder'=>__('CHF'), 'class'=>'form-control', 'id'=>'currency_unit')) }}
</div>
{{-- <div class="form-group col-sm-6">
<label class="form-label">Umrechnungsfaktor zum EUR {{$country->currency_calc}}</label> <label class="form-label">Umrechnungsfaktor zum EUR {{$country->currency_calc}}</label>
<div class="custom-controls-stacked"> <div class="custom-controls-stacked">
<label class="custom-control custom-radio"> <label class="custom-control custom-radio">
@ -127,16 +135,18 @@
<span class="custom-control-label">berechnet den Preis automatisch</span> <span class="custom-control-label">berechnet den Preis automatisch</span>
</label> </label>
</div> </div>
</div> <p class="small">Hinweis: Ist für die Einstellungen bei den Produktenpreisen.</p>
</div>--}}
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
<label class="form-label" for="currency_faktor">Faktor Währungen zum Euro (z.B. 1 Euro zu 1,07 CHF)</label> <label class="form-label" for="currency_faktor">Faktor Währungen zum Euro (z.B. 1 Euro zu 1,07 CHF)</label>
{{ Form::text('currency_faktor', formatNumber($country->currency_faktor, 4), array('placeholder'=>__('1,07'), 'class'=>'form-control', 'id'=>'currency_faktor')) }} {{ Form::text('currency_faktor', formatNumber($country->currency_faktor, 4), array('placeholder'=>__('1,07'), 'class'=>'form-control', 'id'=>'currency_faktor')) }}
</div> </div>
</div> <p class="small">Hinweis: Der Preis berechnet sich automatisch nach dem Faktor.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-2"> <div class="card mb-2">
<h5 class="card-header"> <h5 class="card-header">
@ -162,7 +172,9 @@
<span class="custom-control-label">{{__('Umsatzsteuerpflichtig')}}</span> <span class="custom-control-label">{{__('Umsatzsteuerpflichtig')}}</span>
</label> </label>
</div> </div>
</div> </div>
<p class="small">Hinweis: Bei der Registierung eines Beraters gelten für dieses Land diese Pflichtfelder</p>
</div> </div>
</div> </div>

View file

@ -17,7 +17,7 @@
<th>{{__('Status')}}</th> <th>{{__('Status')}}</th>
<th>{{__('Reverse Charge')}}</th> <th>{{__('Reverse Charge')}}</th>
<th>{{__('Länderwechsel')}}</th> <th>{{__('Länderwechsel')}}</th>
<th>{{__('Lieferland') }}</th> <th>{{__('Drittland') }}</th>
<th>{{__('e. Preis')}}</th> <th>{{__('e. Preis')}}</th>
<th>{{__('e. Währung')}}</th> <th>{{__('e. Währung')}}</th>
<th>{{__('Kalkulation')}}</th> <th>{{__('Kalkulation')}}</th>

View file

@ -26,7 +26,7 @@
data-pos="{{ $value->pos }}" data-pos="{{ $value->pos }}"
data-name="{{ $value->name }}" data-name="{{ $value->name }}"
data-short="{{ $value->short }}" data-short="{{ $value->short }}"
data-show_at="{{ $value->show_at }}" data-show_on="{{ json_encode($value->show_on) }}"
data-default="{{ $value->default }}" data-default="{{ $value->default }}"
data-active="{{ $value->active }}"> data-active="{{ $value->active }}">
<span class="far fa-edit"></span> <span class="far fa-edit"></span>
@ -34,7 +34,7 @@
</td> </td>
<td>{{ $value->pos }}</td> <td>{{ $value->pos }}</td>
<td>{{ $value->name }} ({{ $value->short }})</td> <td>{{ $value->name }} ({{ $value->short }})</td>
<td>{{ $value->getShowAtType() }}</td> <td>{!! implode($value->getShowOnTypes(), '<br>') !!}</td>
<td data-sort="{{ $value->default }}">{!! get_active_badge($value->default) !!}</td> <td data-sort="{{ $value->default }}">{!! get_active_badge($value->default) !!}</td>
<td data-sort="{{ $value->active }}">{!! get_active_badge($value->active) !!}</td> <td data-sort="{{ $value->active }}">{!! get_active_badge($value->active) !!}</td>
</tr> </tr>
@ -47,7 +47,7 @@
data-pos="" data-pos=""
data-name="" data-name=""
data-short="" data-short=""
data-show_at="9" data-show_on="[]"
data-default="1" data-default="1"
data-active="1" data-active="1"
>{{__('Neue Zahlungsart hinzufügen')}}</button> >{{__('Neue Zahlungsart hinzufügen')}}</button>
@ -83,11 +83,13 @@
<input type="text" class="form-control" name="short" placeholder="{{__('Abkürzung')}}"> <input type="text" class="form-control" name="short" placeholder="{{__('Abkürzung')}}">
</div> </div>
</div> </div>
<div class="form-row">
<div class="form-group col-sm-5"> <div class="form-group col-md-10">
<label class="form-label" for="show_at">{{ __('Produkt anzeigen') }}</label> <label class="form-label" for="show_on">{{ __('Produkt anzeigen (Mehrfachauswahl)') }}</label>
{{ Form::select('show_at', \App\Models\PaymentMethod::$showATs, 9, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} {{ Form::select('show_on[]', \App\Models\PaymentMethod::$showONs, 10, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_on', 'multiple') ) }}
</div> </div>
</div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-6"> <div class="form-group col-6">
@ -127,11 +129,9 @@
$(this).find(".modal-body input[name='name']").val(button.data('name')); $(this).find(".modal-body input[name='name']").val(button.data('name'));
$(this).find(".modal-body input[name='short']").val(button.data('short')); $(this).find(".modal-body input[name='short']").val(button.data('short'));
$(this).find(".modal-body input[name='pos']").val(button.data('pos')); $(this).find(".modal-body input[name='pos']").val(button.data('pos'));
$(this).find(".modal-body select[name='show_at']").val(button.data('show_at')); $(this).find(".modal-body select[name='show_on[]']").val(button.data('show_on'));
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active')); $(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
$(this).find(".modal-body input[name='default']").prop( "checked", button.data('default')); $(this).find(".modal-body input[name='default']").prop( "checked", button.data('default'));
$('.selectpicker').selectpicker('refresh'); $('.selectpicker').selectpicker('refresh');
}); });

View file

@ -32,7 +32,7 @@
</select> </select>
</div> </div>
<div class="form-group col-sm-5"> <div class="form-group col-sm-5">
<label class="form-label" for="show_at">{{ __('Produkt anzeigen') }}</label> <label class="form-label" for="show_at">{{ __('Produkt anzeigen') }} alt</label>
{{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} {{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }}
</div> </div>
@ -41,6 +41,12 @@
{{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }} {{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }}
</div> </div>
</div> </div>
<div class="form-row">
<div class="form-group col-md-10">
<label class="form-label" for="show_on">{{ __('Produkt anzeigen (Mehrfachauswahl)') }}</label>
{{ Form::select('show_on[]', $product->showONs, $product->show_on, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_on', 'multiple') ) }}
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="copy">{{ __('Produktbeschreibung') }}</label> <label class="form-label" for="copy">{{ __('Produktbeschreibung') }}</label>
{{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }} {{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }}
@ -80,7 +86,6 @@
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-sm-4"> <div class="form-group col-sm-4">
<label class="form-label" for="weight">{{ __('Gewicht in g') }}</label> <label class="form-label" for="weight">{{ __('Gewicht in g') }}</label>
{{ Form::text('weight', $product->weight, array('placeholder'=>__('Gewicht in g'), 'class'=>'form-control', 'id'=>'weight')) }} {{ Form::text('weight', $product->weight, array('placeholder'=>__('Gewicht in g'), 'class'=>'form-control', 'id'=>'weight')) }}
@ -92,7 +97,15 @@
<div class="form-group col-sm-4"> <div class="form-group col-sm-4">
<label class="form-label" for="amount">{{ __('Anzahl/Verfügbarkeit') }}</label> <label class="form-label" for="amount">{{ __('Anzahl/Verfügbarkeit') }}</label>
{{ Form::text('amount', $product->amount, array('placeholder'=>__('Anzahl/Verfügbarkeit'), 'class'=>'form-control', 'id'=>'amount')) }} {{ Form::text('amount', $product->amount, array('placeholder'=>__('Anzahl/Verfügbarkeit'), 'class'=>'form-control', 'id'=>'amount')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label">Keine Provision</label>
<label class="custom-control custom-checkbox">
{!! Form::checkbox('no_commission', 1, $product->no_commission, ['class'=>'custom-control-input', 'id'=>'no_commission']) !!}
<span class="custom-control-label">Dieses Produkt ist nicht provisionsfähig.</span>
</label>
</div> </div>
</div> </div>
</div> </div>
@ -119,17 +132,17 @@
</div> </div>
<div class="form-group col-sm-4 col-md-3"> <div class="form-group col-sm-4 col-md-3">
<label class="form-label" for="price">{{ __('Preis VK in EUR Brutto') }}</label> <label class="form-label" for="price">{{ __('Preis VK in EUR Brutto') }}</label>
{{ Form::text('c_price['.$country->id.']', formatNumber($product->getCPrice($country->id)), array('placeholder'=>__('Preis VK in EUR Brutto'), 'class'=>'form-control', 'id'=>'c_price_'.$country->id)) }} {{ Form::text('c_price['.$country->id.']', formatNumber($product->getCPrice($country)), array('placeholder'=>__('Preis VK in EUR Brutto'), 'class'=>'form-control', 'id'=>'c_price_'.$country->id)) }}
</div> </div>
<div class="form-group col-sm-4 col-md-3"> <div class="form-group col-sm-4 col-md-3">
<label class="form-label" for="tax">{{ __('MwSt in %') }}</label> <label class="form-label" for="tax">{{ __('MwSt in %') }}</label>
{{ Form::text('c_tax['.$country->id.']', formatNumber($product->getCTax($country->id)), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'c_tax'.$country->id)) }} {{ Form::text('c_tax['.$country->id.']', formatNumber($product->getCTax($country)), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'c_tax'.$country->id)) }}
</div> </div>
<div class="form-group col-sm-4 col-md-3"> <div class="form-group col-sm-4 col-md-3">
<label class="form-label" for="price_old">{{ __('Streichpreis (wenn > 0)') }}</label> <label class="form-label" for="price_old">{{ __('Streichpreis (wenn > 0)') }}</label>
{{ Form::text('c_price_old['.$country->id.']', formatNumber($product->getCPriceOld($country->id)), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'c_price_old'.$country->id)) }} {{ Form::text('c_price_old['.$country->id.']', formatNumber($product->getCPriceOld($country)), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'c_price_old'.$country->id)) }}
</div> </div>
</div> </div>
@ -142,9 +155,9 @@
angegeben @endif</p> angegeben @endif</p>
</div> </div>
@if($country->currency_calc)
{{--
NUR Anzeige vom automatisch berechneten Preis currency_faktor {{-- NUR Anzeige vom automatisch berechneten Preis currency_faktor
Auf Basis vom price Auf Basis vom price
Wenn own_eur auf basis vom own_eur price Wenn own_eur auf basis vom own_eur price
--}} --}}
@ -153,19 +166,19 @@
{{ Form::text('c_currency['.$country->id.']', formatNumber($product->getRealPrice($country) * $country->currency_faktor), array('class'=>'form-control', 'readonly')) }} {{ Form::text('c_currency['.$country->id.']', formatNumber($product->getRealPrice($country) * $country->currency_faktor), array('class'=>'form-control', 'readonly')) }}
</div> </div>
{{--@if($country->currency_calc)
@else @else
{{--
Eingabe Eingabe
Währungs Namen aus currency_name Währungs Namen aus currency_name
currency_faktor als Hinweis ausgeben currency_faktor als Hinweis ausgeben
Auf Basis vom price Auf Basis vom price
Wenn own_eur auf basis vom own_eur price Wenn own_eur auf basis vom own_eur price
--}}
<div class="form-group col-sm-4 col-md-3"> <div class="form-group col-sm-4 col-md-3">
<label class="form-label">{{__('Preis VK in ')}} {{ $country->currency_unit }} ({{formatNumber($product->getRealPrice($country) * $country->currency_faktor)}})</label> <label class="form-label">{{__('Preis VK in ')}} {{ $country->currency_unit }} ({{formatNumber($product->getRealPrice($country) * $country->currency_faktor)}})</label>
{{ Form::text('c_currency['.$country->id.']', formatNumber($product->getCCurrency($country->id)), array('placeholder'=>__('Preis VK in ').$country->currency_unit, 'class'=>'form-control')) }} {{ Form::text('c_currency['.$country->id.']', formatNumber($product->getCCurrency($country->id)), array('placeholder'=>__('Preis VK in ').$country->currency_unit, 'class'=>'form-control')) }}
</div> </div>
@endif @endif --}}
<div class="form-group col-sm-4 col-md-2"> <div class="form-group col-sm-4 col-md-2">
<label class="form-label">{{ __('Währungs Faktor' ) }}</label> <label class="form-label">{{ __('Währungs Faktor' ) }}</label>

View file

@ -28,6 +28,7 @@
<th>{{__('Gewicht')}}</th> <th>{{__('Gewicht')}}</th>
<th>{{__('sichbar')}}</th> <th>{{__('sichbar')}}</th>
<th>{{__('KP')}}</th> <th>{{__('KP')}}</th>
<th>{{__('NoP.')}}</th>
<th>{{__('Status')}}</th> <th>{{__('Status')}}</th>
<th></th> <th></th>
</tr> </tr>
@ -59,8 +60,9 @@
<td>{{ $value->getUnitType() }}</td> <td>{{ $value->getUnitType() }}</td>
<td>{{ $value->getBasePriceFormatted() }}</td> <td>{{ $value->getBasePriceFormatted() }}</td>
<td>{{ $value->weight }}</td> <td>{{ $value->weight }}</td>
<td>{{ $value->getShowAtType() }}</td> <td>{!! implode($value->getShowOnTypes(), '<br>') !!}</td>
<td data-sort="{{ $value->shipping_addon }}">{!! get_active_badge($value->shipping_addon) !!}</td> <td data-sort="{{ $value->shipping_addon }}">{!! get_active_badge($value->shipping_addon) !!}</td>
<td data-sort="{{ $value->no_commission }}">{!! get_active_badge($value->no_commission) !!}</td>
<td data-sort="{{ $value->active }}">{!! get_active_badge($value->active) !!}</td> <td data-sort="{{ $value->active }}">{!! get_active_badge($value->active) !!}</td>
<td><a class="text-info" href="{{ route('admin_product_copy', [$value->id]) }}" onclick="return confirm('{{__('Eintrag kopieren?')}}');"><i class="far fa-copy"></i></a> &nbsp; <td><a class="text-info" href="{{ route('admin_product_copy', [$value->id]) }}" onclick="return confirm('{{__('Eintrag kopieren?')}}');"><i class="far fa-copy"></i></a> &nbsp;
<a class="text-danger" href="{{ route('admin_product_delete', [$value->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');"><i class="far fa-trash-alt"></i></a></td> <a class="text-danger" href="{{ route('admin_product_delete', [$value->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');"><i class="far fa-trash-alt"></i></a></td>

View file

@ -38,10 +38,57 @@
@if(count($values)>0) @if(count($values)>0)
<div class="card-body"> <div class="card-body">
<!-- Controls -->
<div class="card-datatable table-responsive">
<table class="datatables-style table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">ID</th>
<th style="max-width: 60px;">User-ID</th>
<th>{{__('Name')}}</th>
<th>{{__('seit')}}</th>
<th>Datum</th>
<th>Erreichbar</th>
<th>{{__('Status')}}</th>
</tr>
</thead>
<tbody>
@foreach($values as $value) @foreach($values as $value)
<pre>{{$value}}</pre> <tr>
<td>{{ $value->id }}</td>
<td>{{ $value->user_id }}</td>
<td>{{ $value->name }}.mivita.care</td>
<td>{{ $value->getActiveDateFormatSmall() }}</td>
<td>
@if($value->user && $value->user->payment_shop)
@if($value->user->isActiveShop())
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> {{ $value->user->getPaymentShopDateFormat() }}</span>
@else
<span class="badge badge-pill badge-warning"><i class="fa fa-ban"></i>{{ $value->user->getPaymentShopDateFormat() }}</span></a>
@endif
@else
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
@endif
</td>
<td>
@if($value->getSubdomainAvailable())
<span class="badge badge-pill badge-success"><i class="fa fa-check"> {{ __('available') }} </i>
@if($value->getSubdomainSslSin()) HTTPS @else HTTP @endif
</span>
@else
<span class="badge badge-pill badge-danger"><i class="fa fa-times"> {{ __('not available') }} </i> HTTP </span>
@endif
</td>
<td>{!! get_active_badge($value->active) !!}</td>
</tr>
@endforeach @endforeach
</tbody>
</table>
</div>
</div> </div>
@endif @endif
</div> </div>

View file

@ -81,16 +81,10 @@
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_country_id') ? 'has-error' : '' }}"> <div class="form-group col-md-12">
<label class="form-label">{{ __('Country') }}*</label> {{ Form::hidden('billing_country_id', $homeparty_user->billing_country_id) }}
<select class="selectpicker" name="billing_country_id" id="billing_country_id" data-style="btn-light" data-live-search="true" required tabindex="9"> <label class="form-label">{{ __('Country') }}</label>
{!! HTMLHelper::getContriesWithMore($homeparty_user->billing_country_id) !!} <div class="">@if($homeparty_user->billing_country) {{ $homeparty_user->billing_country->getLocated() }} @endif <i>(Das Land kann nicht mehr geändert werden.)</i></div>
</select>
@if ($errors->has('billing_country_id'))
<span class="help-block">
<strong>{{ $errors->first('billing_country_id') }}</strong>
</span>
@endif
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
@ -196,16 +190,10 @@
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_country_id') ? 'has-error' : '' }}"> <div class="form-group col-md-12">
<label class="form-label">{{ __('Country') }}*</label> {{ Form::hidden('shipping_country_id', $homeparty_user->shipping_country_id) }}
<select class="selectpicker" name="shipping_country_id" id="shipping_country_id" data-style="btn-light" data-live-search="true" required tabindex="24"> <label class="form-label">{{ __('Country') }}</label>
{!! HTMLHelper::getContriesWithMore($homeparty_user->shipping_country_id) !!} <div class="">@if($homeparty_user->shipping_country) {{ $homeparty_user->shipping_country->getLocated() }} @endif <i>(Das Land kann nicht mehr geändert werden.)</i></div>
</select>
@if ($errors->has('shipping_country_id'))
<span class="help-block">
<strong>{{ $errors->first('shipping_country_id') }}</strong>
</span>
@endif
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">

View file

@ -12,19 +12,42 @@
</div> </div>
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a> <a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4> </h4>
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!}
<div class="card mb-4"> <div class="nav-tabs-top mb-4">
<ul class="nav nav-tabs nav-responsive-xl">
@if(!$step || $step >= 1)
<li class="nav-item">
<a class="nav-link @if(!$step || $step == 10) active @endif" data-toggle="tab" href="#navs-top-homeparty">Auszeitparty</a>
</li>
@endif
@if($homeparty->id)
@if($step && $step >= 2)
<li class="nav-item">
<a class="nav-link @if($step == 2 || $step == 12) active @endif" data-toggle="tab" href="#navs-top-address">Lieferadresse</a>
</li>
@endif
@if($step && $step >= 3)
<li class="nav-item">
<a class="nav-link @if($step == 3 || $step == 13) active @endif" data-toggle="tab" href="#navs-top-host">Gastgeber:in</a>
</li>
@endif
@endif
</ul>
<div class="tab-content">
<div class="tab-pane fade @if(!$step || $step == 10) active show @endif" id="navs-top-homeparty">
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id, 10]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!}
<h5 class="card-header"> <h5 class="card-header">
<div class="row"> <div class="row">
@if(!$homeparty->id) @if($homeparty->step < 10)
<div class="col-12"> <div class="col-12">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span> <span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
Neue Auszeitparty anlegen Auszeitparty verwalten
</div> </div>
@else @else
<div class="col-12"> <div class="col-12">
<div class="d-flex justify-content-between align-items-center w-100"> <div class="d-flex justify-content-between align-items-center w-100">
<div>Homeparty verwalten</div> <div>Auszeitparty verwalten</div>
<div class="float-right"> <div class="float-right">
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-person-add"></i> Gäste anlegen</a> <a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-person-add"></i> Gäste anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-basket"></i> Bestellung</a> <a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-basket"></i> Bestellung</a>
@ -34,10 +57,9 @@
@endif @endif
</div> </div>
</h5> </h5>
<div class="card-body"> <div class="card-body">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4 {{ $errors->has('name') ? 'has-error' : '' }}"> <div class="form-group col-md-3 {{ $errors->has('name') ? 'has-error' : '' }}">
<label for="name" class="form-label">{{ __('Gastgeber / Veranstalter') }}*</label> <label for="name" class="form-label">{{ __('Gastgeber / Veranstalter') }}*</label>
{{ Form::text('name', $homeparty->name, array('placeholder'=>__('Gastgeber / Veranstalter'), 'class'=>'form-control', 'required')) }} {{ Form::text('name', $homeparty->name, array('placeholder'=>__('Gastgeber / Veranstalter'), 'class'=>'form-control', 'required')) }}
@if ($errors->has('name')) @if ($errors->has('name'))
@ -46,7 +68,7 @@
</span> </span>
@endif @endif
</div> </div>
<div class="form-group col-md-4 {{ $errors->has('date') ? 'has-error' : '' }}"> <div class="form-group col-md-3 {{ $errors->has('date') ? 'has-error' : '' }}">
<label for="date" class="form-label">{{ __('Veranstaltungsdatum') }}*</label> <label for="date" class="form-label">{{ __('Veranstaltungsdatum') }}*</label>
{{ Form::text('date', $homeparty->date, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'class'=>'form-control datepicker-base', 'required')) }} {{ Form::text('date', $homeparty->date, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'class'=>'form-control datepicker-base', 'required')) }}
@if ($errors->has('date')) @if ($errors->has('date'))
@ -55,7 +77,7 @@
</span> </span>
@endif @endif
</div> </div>
<div class="form-group col-md-4 {{ $errors->has('place') ? 'has-error' : '' }}"> <div class="form-group col-md-3 {{ $errors->has('place') ? 'has-error' : '' }}">
<label for="place" class="form-label">{{ __('Veranstaltungsort') }}*</label> <label for="place" class="form-label">{{ __('Veranstaltungsort') }}*</label>
{{ Form::text('place', $homeparty->place, array('placeholder'=>__('Veranstaltungsort'), 'class'=>'form-control', 'required')) }} {{ Form::text('place', $homeparty->place, array('placeholder'=>__('Veranstaltungsort'), 'class'=>'form-control', 'required')) }}
@if ($errors->has('place')) @if ($errors->has('place'))
@ -65,48 +87,40 @@
@endif @endif
</div> </div>
@if($homeparty->id)
<div class="form-group col-md-3 {{ $errors->has('country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Lieferland') }}*</label>
<div class="mt-2">@if($homeparty->country) {{ $homeparty->country->getLocated() }} @endif</div>
</div>
@else
<div class="form-group col-md-3 {{ $errors->has('country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Lieferland') }}*</label>
{{ Form::select('country_id', \App\Models\ShippingCountry::getActiveShippingCountries(), $homeparty->country_id, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'country_id') ) }}
@if ($errors->has('country_id'))
<span class="help-block">
<strong>{{ $errors->first('country_id') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-12 text-right">
<i> Das Lieferland kann nach dem Anlegen nicht mehr geändert werden. Alle Lieferadressen müssen in diesem Land sein.</i>
</div>
@endif
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="description">{{ __('Beschreibung / Willkommenstext') }}</label> <label class="form-label" for="description">{{ __('Beschreibung / Willkommenstext') }}</label>
{{ Form::textarea('description', $homeparty->description , array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>5)) }} {{ Form::textarea('description', $homeparty->description , array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>5)) }}
</div> </div>
</div> <div class="form-group">
</div> <button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store-detail">
<div class="text-left mt-3 mb-3"> @if($homeparty->id) {{ __('Änderungen speichern') }} @else {{ __('Neue Auszeitparty anlegen') }} @endif</button>&nbsp;
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store">
@if($homeparty->id) {{ __('Änderungen speichern') }} @else {{ __('speichern') }} @endif</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a> <a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div> </div>
{!! Form::close() !!} @if($homeparty->id && $homeparty->step >= 10)
@if($homeparty->id)
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
<div class="card mb-4">
<h5 class="card-header">
<div class="row">
<div class="col-xs-12 col-sm-6">
Gastgeber-, Rechungsadresse
</div>
<div class="col-xs-12 col-sm-6">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
<span class="d-none d-lg-inline">Lieferadresse</span>
</div>
</div>
</h5>
@include('user.homeparty._edit')
</div>
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-user-store">{{ __('save') }}</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div>
{!! Form::close() !!}
<hr> <hr>
<div class="card mb-3 mt-2"> <div class="pt-2">
<div class="col-md-12 px-4 pt-4">
<label class="form-label">Einladungslink für Gäste <span class="text-muted"> (lass Deine Gäste ihre Daten selber ausfüllen)</span></label> <label class="form-label">Einladungslink für Gäste <span class="text-muted"> (lass Deine Gäste ihre Daten selber ausfüllen)</span></label>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<span class="input-group-prepend"> <span class="input-group-prepend">
@ -117,10 +131,291 @@
</div> </div>
<p>Teile diesen Link mit den Gästen (z.B. WhatsApp oder SMS), damit gelangt sie auf eine Zielseite wo sie ihre Daten selber ausfüllen können. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.</p> <p>Teile diesen Link mit den Gästen (z.B. WhatsApp oder SMS), damit gelangt sie auf eine Zielseite wo sie ihre Daten selber ausfüllen können. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.</p>
</div> </div>
@endif
</div>
{!! Form::close() !!}
</div> </div>
@if($homeparty->id)
<div class="tab-pane fade @if($step == 2 || $step == 12) active show @endif" id="navs-top-address">
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id, 12]), 'class' => 'form-horizontal', 'id'=>'']) !!}
<h5 class="card-header">
<div class="row">
@if($homeparty->step < 10)
<div class="col-12">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
Lieferadresse Auszeitparty {{ $homeparty->name }}
</div>
@else
<div class="col-12">
<div class="d-flex justify-content-between align-items-center w-100">
<div>Lieferadresse Auszeitparty {{ $homeparty->name }}</div>
<div class="float-right">
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-person-add"></i> Gäste anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-basket"></i> Bestellung</a>
</div>
</div>
</div>
@endif
</div>
</h5>
<div class="card-body">
<p>Trage hier bitte die zentrale Lieferadresse für die getätigten Bestellungen dieser Auszeitparty. Das kann Deine eigene Adresse aber auch die des Gastgebers sein. Je nachdem, wie Du die Verteilung der Produkte mit Deinen Gästen organisieren möchtest.</p>
<p>Wenn ein Gast seine Bestellung direkt an seine persönliche Adresse geschickt haben möchte, kannst Du das im Bestellprozess gesondert angeben.</p>
<hr>
<div class="form-row">
<div class="form-group col-md-12">
<label for="shipping_company" class="form-label">{{ __('Company name') }} (optional)</label>
{{ Form::text('shipping_company', $homeparty_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company',)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="shipping_salutation" id="shipping_salutation" required tabindex="17">
{!! HTMLHelper::getSalutation($homeparty_user->shipping_salutation) !!}
</select>
@if ($errors->has('shipping_salutation'))
<span class="help-block">
<strong>{{ $errors->first('shipping_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_firstname">{{ __('First name') }}*</label>
{{ Form::text('shipping_firstname', $homeparty_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname')) }}
@if ($errors->has('shipping_firstname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_lastname">{{ __('Last name') }}*</label>
{{ Form::text('shipping_lastname', $homeparty_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname')) }}
@if ($errors->has('shipping_lastname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_lastname') }}</strong>
</span>
@endif @endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('shipping_address', $homeparty_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address')) }}
@if ($errors->has('shipping_address'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address_2">{{ __('Wohnung / Gebäude (optional)') }}</label>
{{ Form::text('shipping_address_2', $homeparty_user->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'shipping_address_2')) }}
@if ($errors->has('shipping_address_2'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address_2') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('shipping_zipcode', $homeparty_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode')) }}
@if ($errors->has('shipping_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('shipping_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_city') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_city">{{ __('City') }}*</label>
{{ Form::text('shipping_city', $homeparty_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city')) }}
@if ($errors->has('shipping_city'))
<span class="help-block">
<strong>{{ $errors->first('shipping_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
{{ Form::hidden('shipping_country_id', $homeparty_user->shipping_country_id) }}
<label class="form-label">{{ __('Country') }}</label>
<div class="">@if($homeparty_user->shipping_country) {{ $homeparty_user->shipping_country->getLocated() }} @endif <i>(Das Land kann nicht mehr geändert werden.)</i></div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_phone">{{ __('Phone') }}</label>
{{ Form::text('shipping_phone', $homeparty_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_email">{{ __('E-Mail Address') }}</label>
{{ Form::text('shipping_email', $homeparty_user->shipping_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'shipping_email')) }}
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store-address">
Lieferadresse speichern
</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div>
</div>
{!! Form::close() !!}
</div>
<div class="tab-pane fade @if($step == 3 || $step == 13) active show @endif" id="navs-top-host">
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id, 13]), 'class' => 'form-horizontal', 'id'=>'']) !!}
<h5 class="card-header">
<div class="row">
@if($homeparty->step < 10)
<div class="col-12">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
Gastgeber:in Auszeitparty {{ $homeparty->name }}
</div>
@else
<div class="col-12">
<div class="d-flex justify-content-between align-items-center w-100">
<div>Gastgeber:in Auszeitparty {{ $homeparty->name }}</div>
<div class="float-right">
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-person-add"></i> Gäste anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-basket"></i> Bestellung</a>
</div>
</div>
</div>
@endif
</div>
</h5>
<div class="card-body">
<p>Trage hier bitte die Adresse des Gastgeber:in wo die Auszeitparty organisiert wird.</p>
<p>Die Rechnung von mivita wird an deine Adresse (Berater:in) gestellt. Die Abrechnung mit dem Gastgeber:in und den Gästern übernimmst du selbst.</p>
<hr>
<div class="form-row">
<div class="form-group col-md-12">
<label for="billing_company" class="form-label">{{ __('Company name') }} (optional)</label>
{{ Form::text('billing_company', $homeparty_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'billing_company', 'tabindex' => 1)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="billing_salutation" id="billing_salutation" required tabindex="2">
{!! HTMLHelper::getSalutation($homeparty_user->billing_salutation) !!}
</select>
@if ($errors->has('billing_salutation'))
<span class="help-block">
<strong>{{ $errors->first('billing_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_firstname">{{ __('First name') }}*</label>
{{ Form::text('billing_firstname', $homeparty_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'billing_firstname', 'required'=>true, 'tabindex' => 4)) }}
@if ($errors->has('billing_firstname'))
<span class="help-block">
<strong>{{ $errors->first('billing_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_lastname">{{ __('Last name') }}*</label>
{{ Form::text('billing_lastname', $homeparty_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'billing_lastname', 'required'=>true, 'tabindex' => 5)) }}
@if ($errors->has('billing_lastname'))
<span class="help-block">
<strong>{{ $errors->first('billing_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('billing_address', $homeparty_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_address', 'tabindex' => 6)) }}
@if ($errors->has('billing_address'))
<span class="help-block">
<strong>{{ $errors->first('billing_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address_2">{{ __('Wohnung / Gebäude (optional)') }}</label>
{{ Form::text('billing_address_2', $homeparty_user->billing_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'billing_address_2', 'tabindex' => 6)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="billing_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('billing_zipcode', $homeparty_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_zipcode', 'tabindex' => 7)) }}
@if ($errors->has('billing_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('billing_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_city') ? 'has-error' : '' }}">
<label class="form-label" for="billing_city">{{ __('City') }}*</label>
{{ Form::text('billing_city', $homeparty_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_city', 'tabindex' => 8)) }}
@if ($errors->has('billing_city'))
<span class="help-block">
<strong>{{ $errors->first('billing_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
{{ Form::hidden('billing_country_id', $homeparty_user->billing_country_id) }}
<label class="form-label">{{ __('Country') }}</label>
<div class="">@if($homeparty_user->billing_country) {{ $homeparty_user->billing_country->getLocated() }} @endif <i>(Das Land kann nicht mehr geändert werden.)</i></div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_phone') ? 'has-error' : '' }}">
<label class="form-label" for="billing_phone">{{ __('Phone') }}</label>
{{ Form::text('billing_phone', $homeparty_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'billing_phone', 'tabindex' => 11)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="billing_email">{{ __('E-Mail Address') }}</label>
{{ Form::text('billing_email', $homeparty_user->billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email', 'tabindex' => 12)) }}
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store-host">
Gastgeber:in Adresse speichern
</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
@endif
<script type="application/javascript"> <script type="application/javascript">

View file

@ -19,22 +19,28 @@
@if(!$homeparty->completed) @if(!$homeparty->completed)
<div> <div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold">
@if($homeparty_user->is_host) @if($homeparty_user->is_host)
<span class="text-muted">Gastgeber/in: </span> <a href="{{route('user_homeparty_detail', [$homeparty->id, 13])}}" class="text-body text-big font-weight-semibold">
<span class="text-muted">Gastgeber:in </span>
@else @else
<span class="text-muted">Gast {{$g_count++}}: </span> <a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold">
<span class="text-muted">Gast {{$g_count++}} </span>
@endif @endif
{{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}} {{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}}</a>
</a>
{{-- <span class="badge badge-success align-text-bottom ml-1">offen ...</span> --}} {{-- <span class="badge badge-success align-text-bottom ml-1">offen ...</span> --}}
</div> </div>
<div> <div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="btn btn-sm btn-secondary mr-2"><i class="fa fa-edit"></i> bearbeiten</a> @if($homeparty_user->is_host)
<a href="{{route('user_homeparty_detail', [$homeparty->id, 13])}}" class="btn btn-sm btn-secondary mr-2"><i class="fa fa-edit"></i> bearbeiten</a>
@else
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold">
@endif
<div class="btn-group project-actions"> <div class="btn-group project-actions">
@if($homeparty_user->is_host) @if($homeparty_user->is_host)
<span class="ion ion-md-trash text-muted" data-toggle="tooltip" title="Gastgeber kann nicht gelsöcht werden"></span> <span class="ion ion-md-trash text-muted" data-toggle="tooltip" title="Gastgeber:in kann nicht gelsöcht werden"></span>
@else @else
<a href="{{ route('user_homeparty_delete', ['hpu', $homeparty->id, $homeparty_user->id]) }}" <a href="{{ route('user_homeparty_delete', ['hpu', $homeparty->id, $homeparty_user->id]) }}"
class="" onclick="return confirm('Homeparty Gast wirklich löschen?');"> class="" onclick="return confirm('Homeparty Gast wirklich löschen?');">
@ -48,9 +54,9 @@
<div class="text-body text-big font-weight-semibold"> <div class="text-body text-big font-weight-semibold">
@if($homeparty_user->is_host) @if($homeparty_user->is_host)
<span class="text-muted">Gastgeber/in: </span> <span class="text-muted">Gastgeber:in </span>
@else @else
<span class="text-muted">Gast {{$g_count++}}: </span> <span class="text-muted">Gast {{$g_count++}} </span>
@endif @endif
{{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}} {{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}}
</div> </div>

View file

@ -41,7 +41,7 @@
</div> </div>
<div class="col"> <div class="col">
<div class="text-muted small">Veranstaltungsort</div> <div class="text-muted small">Veranstaltungsort</div>
<div class="font-weight-bold">{{$homeparty->place}}</div> <div class="font-weight-bold">{{$homeparty->place}} / @if($homeparty->country) {{ $homeparty->country->getLocated() }} @endif</div>
</div> </div>
<div class="col"> <div class="col">
<div class="text-muted small">Gäste</div> <div class="text-muted small">Gäste</div>
@ -57,7 +57,7 @@
</div> </div>
</div> </div>
</div> </div>
@if(!$homeparty->completed) @if(!$homeparty->completed && $homeparty->step >= 10)
<hr class="m-0"> <hr class="m-0">
<div class="card-body py-3"> <div class="card-body py-3">
<div class="form-group mb-0"> <div class="form-group mb-0">
@ -75,10 +75,15 @@
<div class="card-body py-3"> <div class="card-body py-3">
<div class="d-flex flex-wrap"> <div class="d-flex flex-wrap">
@if(!$homeparty->completed) @if(!$homeparty->completed)
<a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Verwalten</a> <a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Verwalten</a>
@if($homeparty->step < 10)
<div class="alert alert-danger py-1">Lieferadresse und Gastgeber:in sind noch nicht angelegt. <a href="{{route('user_homeparty_detail', [$homeparty->id])}}"><i class="ion ion-ios-cog"></i> Verwalten</a> Danach können Gäste angelegt und Bestellung aufgegeben werden.</div>
@else
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-contacts"></i> Gästeliste</a> <a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-contacts"></i> Gästeliste</a>
<a href="{{ route('user_homeparty_guest_detail', [$homeparty->id, 'new']) }}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-person-add"></i> Gast anlegen</a> <a href="{{ route('user_homeparty_guest_detail', [$homeparty->id, 'new']) }}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-person-add"></i> Gast anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung</a> <a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung</a>
@endif
@else @else
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-contacts"></i> Gästeliste</a> <a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-contacts"></i> Gästeliste</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung ansehen</a> <a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung ansehen</a>

View file

@ -11,7 +11,7 @@
</h5> </h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button> <button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div> </div>
<div class="modal-body"> <div class="modal-body px-0">
<div class="card-datatable pt-0 table-responsive"> <div class="card-datatable pt-0 table-responsive">
<table id="datatable-homeparty" class="table table-striped table-bordered" data-homeparty-id="{{$homeparty->id}}" data-homeparty-user-id="{{$homeparty_user->id}}"> <table id="datatable-homeparty" class="table table-striped table-bordered" data-homeparty-id="{{$homeparty->id}}" data-homeparty-user-id="{{$homeparty_user->id}}">
<thead> <thead>
@ -19,9 +19,14 @@
<th></th> <th></th>
<th>{{__('Bild')}}</th> <th>{{__('Bild')}}</th>
<th>{{__('Produkt')}}</th> <th>{{__('Produkt')}}</th>
<th>{{__('Artikelnummer')}}</th> <th>{{__('Artikelnr.')}}</th>
<th>{{__('EK-Preis brutto')}}</th> @if($homeparty->getCardInfo('user_tax_free'))
<th>{{__('VK-Preis brutto')}}</th> <th><span class="no-line-break">EK-Preis</span> netto</th>
<th><span class="no-line-break">VK-Preis</span> netto</th>
@else
<th><span class="no-line-break">EK-Preis</span> brutto</th>
<th><span class="no-line-break">VK-Preis</span> brutto</th>
@endif
<th>{{__('Points')}}</th> <th>{{__('Points')}}</th>
</tr> </tr>
</thead> </thead>
@ -37,7 +42,7 @@
var oTable = $('#datatable-homeparty').DataTable({ var oTable = $('#datatable-homeparty').DataTable({
"processing": true, "processing": true,
"serverSide": true, "serverSide": true,
"ajax": '{!! route('user_homeparty_datatable') !!}', "ajax": '{!! route('user_homeparty_datatable', [$homeparty->id]) !!}',
"order": [[3, "asc" ]], "order": [[3, "asc" ]],
"columns": [ "columns": [

View file

@ -84,12 +84,43 @@
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a> <a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4> </h4>
@if(Session::has('custom-error'))
<div class="alert alert-dark-warning alert-dismissible fade show">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ Session::get('custom-error') }}</strong>
</div>
@endif
@if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2) @if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2)
<h6 class="alert badge-{{$userHistoryPaymentOrder->getStatusColor()}}">Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}</h6> <h6 class="alert badge-{{$userHistoryPaymentOrder->getStatusColor()}}">Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}</h6>
@endif @endif
<div class="card mb-4">
<div class="card-body">
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">Bestellland</div>
{{ App\Services\UserService::getOrderInfo('billing_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">Lieferland</div>
{{ App\Services\UserService::getOrderInfo('shipping_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">MwSt</div>
{{ App\Services\UserService::getOrderInfo('tax_free') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">Reverse Charge Verfahren</div>
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
</div>
</div>
<i>Das Lieferland kann nicht mehr geändert werden.</i>
</div>
</div>
{!! Form::open(['url' => route('user_homeparty_order', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-order-form']) !!} {!! Form::open(['url' => route('user_homeparty_order', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-order-form']) !!}
<div class="card mb-4"> <div class="card mb-4">
<h5 class="card-header"> <h5 class="card-header">
<div class="row"> <div class="row">
@ -109,9 +140,9 @@
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<h6>Lieferadresse Gastgeber/in <h6>Lieferadresse
@if(!$homeparty->completed) @if(!$homeparty->completed)
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty->homeparty_host->id])}}"><i class="fa fa-edit"></i> </a> <a href="{{route('user_homeparty_detail', [$homeparty->id, 13])}}"><i class="fa fa-edit"></i> </a>
@endif @endif
</h6> </h6>
@include('user.homeparty._address', ['homeparty_user' => $homeparty->homeparty_host]) @include('user.homeparty._address', ['homeparty_user' => $homeparty->homeparty_host])
@ -120,7 +151,6 @@
{{-- TODO Berechnung Bonus --}} {{-- TODO Berechnung Bonus --}}
<div class="col-md-6"> <div class="col-md-6">
<h6>Aktuelle Bonusansicht</h6> <h6>Aktuelle Bonusansicht</h6>
<div id="insert_show_bonus"> <div id="insert_show_bonus">
@include('user.homeparty.show_bonus', ['homeparty' => $homeparty]) @include('user.homeparty.show_bonus', ['homeparty' => $homeparty])
</div> </div>
@ -135,7 +165,7 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="d-flex justify-content-between align-items-center w-100"> <div class="d-flex justify-content-between align-items-center w-100">
<div>Bestellung Gastgeber/in {{$homeparty->homeparty_host->billing_firstname}} {{$homeparty->homeparty_host->billing_lastname}}</div> <div>Bestellung Gastgeber:in {{$homeparty->homeparty_host->billing_firstname}} {{$homeparty->homeparty_host->billing_lastname}}</div>
</div> </div>
</div> </div>
@if(!$homeparty->completed) @if(!$homeparty->completed)

View file

@ -94,7 +94,7 @@
</div> </div>
<div class="col"> <div class="col">
<div class="text-muted small">Veranstaltungsort</div> <div class="text-muted small">Veranstaltungsort</div>
<div class="font-weight-bold">{{$homeparty->place}}</div> <div class="font-weight-bold">{{$homeparty->place}} / @if($homeparty->country) {{ $homeparty->country->getLocated() }} @endif</div>
</div> </div>
<div class="col"> <div class="col">
<div class="text-muted small">Straße / Hausnummer</div> <div class="text-muted small">Straße / Hausnummer</div>

View file

@ -1,19 +1,41 @@
@php($user_cart = \App\Services\HomepartyCart::getUserCartHost()) @php($user_cart = \App\Services\HomepartyCart::getUserCartHost())
@php($homeparty = \App\Services\HomepartyCart::$homeparty)
@if(\App\Services\HomepartyCart::$is_bonus) @if(\App\Services\HomepartyCart::$is_bonus)
<tr class="foot-small"> <tr class="foot-small">
<td colspan="5" class="text-left">Gutschrift Homeparty Gutschein</td> <td colspan="5" class="text-left">Gutschrift Homeparty Gutschein</td>
<td>&nbsp;</td> <td>&nbsp;</td>
<td class="text-right">- {{ \App\Services\HomepartyCart::getFormattedBonusValue() }} &euro;</td> <td class="text-right">
<td class="text-right">- {{ \App\Services\HomepartyCart::getFormattedBonusValue() }} &euro;</td> <div class="no-line-break">- {{ \App\Services\HomepartyCart::getFormattedBonusValue() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('BonusValue') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="text-right">
<div class="no-line-break">- {{ \App\Services\HomepartyCart::getFormattedBonusValue() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('BonusValue') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@endif @endif
@if(\App\Services\HomepartyCart::$is_bonus_coupon) @if(\App\Services\HomepartyCart::$is_bonus_coupon)
<tr class="foot-small"> <tr class="foot-small">
<td colspan="5" class="text-left">Gutschrift Bonus</td> <td colspan="5" class="text-left">Gutschrift Bonus</td>
<td>&nbsp;</td> <td>&nbsp;</td>
<td class="text-right">- {{ \App\Services\HomepartyCart::getFormattedBonusCoupon() }} &euro;</td> <td class="text-right">
<td class="text-right">- {{ \App\Services\HomepartyCart::getFormattedBonusCoupon() }} &euro;</td> <div class="no-line-break">- {{ \App\Services\HomepartyCart::getFormattedBonusCoupon() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('BonusCoupon') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="text-right">
<div class="no-line-break">- {{ \App\Services\HomepartyCart::getFormattedBonusCoupon() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('BonusCoupon') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@endif @endif
@if(\App\Services\HomepartyCart::$is_bonus) @if(\App\Services\HomepartyCart::$is_bonus)
@ -26,16 +48,37 @@
</tr> </tr>
@endif @endif
<tr class="foot-small"> <tr class="foot-small">
<td colspan="5" class="text-left">Versandkosten:</td> <td colspan="5" class="text-left bg-warning">Versandkosten:</td>
<td>&nbsp;</td> <td class="bg-warning">&nbsp;</td>
<td class="text-right">&nbsp;</td> <td class="text-right bg-warning">&nbsp;</td>
<td class="text-right">{{$user_cart->getFormattedShippingPrice()}} &euro;</td> <td class="text-right bg-warning">
<div class="no-line-break">{{$user_cart->getFormattedShippingPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('ShippingPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
<tr> <tr>
<td colspan="4" class="border-top"><strong>Gesamt:</strong></td> <td colspan="4" class="border-top"><strong>Gesamt:</strong></td>
<td class="border-top text-right"><strong>{{$user_cart->getFormattedPoints()}}</strong></td> <td class="border-top text-right">
<td class="border-top text-right"><strong>{{$user_cart->getFormattedIncomePrice()}} &euro;</strong></td> <div class="no-line-break"><strong>{{$user_cart->getFormattedPoints()}}</strong></div>
<td class="border-top text-right"><strong>{{$user_cart->getFormattedPrice()}} &euro;</strong></td> </td>
<td class="border-top text-right"><strong>{{$user_cart->getFormattedEkPrice()}} &euro;</strong></td> <td class="border-top text-right">
<div class="no-line-break"><strong>{{$user_cart->getFormattedIncomePrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('IncomePrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="border-top text-right">
<div class="no-line-break"><strong>{{$user_cart->getFormattedPrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('Price') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="border-top text-right">
<div class="no-line-break"><strong>{{$user_cart->getFormattedEkPrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('EkPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>

View file

@ -56,16 +56,25 @@
</td> </td>
<td class="text-right"> <td class="text-right">
{{ $value->getFormattedTotalPoints() }} <div class="no-line-break">{{ $value->getFormattedTotalPoints() }}</div>
</td> </td>
<td class="text-right"> <td class="text-right">
{{ $value->getFormattedTotalIncomePrice() }} &euro; <div class="no-line-break">{{ $value->getFormattedTotalIncomePrice() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $value->getCurrencyByKey('TotalIncomePrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
<td class="text-right"> <td class="text-right">
{{ $value->getFormattedTotalPrice() }} &euro; <div class="no-line-break">{{ $value->getFormattedTotalPrice() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $value->getCurrencyByKey('TotalPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
<td class="text-right"> <td class="text-right">
{{ $value->getFormattedTotalEKPrice() }} &euro; <div class="no-line-break">{{ $value->getFormattedTotalEKPrice() }} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $value->getCurrencyByKey('TotalEKPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
</tr> </tr>
@endforeach @endforeach
@ -98,20 +107,45 @@
</tr> </tr>
@if($homeparty_guest->getDelivery() === 'direct') @if($homeparty_guest->getDelivery() === 'direct')
<tr> <tr>
<td colspan="5" class="text-left">Versandkosten</td> <td colspan="5" class="text-left bg-warning">Versandkosten</td>
<td>&nbsp;</td> <td class="bg-warning">&nbsp;</td>
<td class="text-right">{{$user_cart->getFormattedShippingPrice()}} &euro;</td> <td class="text-right bg-warning">
<td class="text-right">{{$user_cart->getFormattedShippingPrice()}} &euro;</td> <div class="no-line-break">{{$user_cart->getFormattedShippingPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('ShippingPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="text-right bg-warning">
<div class="no-line-break">{{$user_cart->getFormattedShippingPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('ShippingPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@endif @endif
<tr> <tr>
<td colspan="4" class="border-top"><strong>Gesamt:</strong></td> <td colspan="4" class="border-top"><strong>Gesamt:</strong></td>
<td class="border-top text-right"><strong>{{$user_cart->getFormattedPoints()}}</strong></td> <td class="border-top text-right">
<td class="border-top text-right"><strong>{{$user_cart->getFormattedIncomePrice()}} &euro;</strong></td> <div class="no-line-break"><strong>{{$user_cart->getFormattedPoints()}}</strong></div>
<td class="border-top text-right"><strong>{{$user_cart->getFormattedPrice()}} &euro;</strong></td> </td>
<td class="border-top text-right"><strong>{{$user_cart->getFormattedEkPrice()}} &euro;</strong></td> <td class="border-top text-right">
<div class="no-line-break"><strong>{{$user_cart->getFormattedIncomePrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('IncomePrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="border-top text-right">
<div class="no-line-break"><strong>{{$user_cart->getFormattedPrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('Price') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="border-top text-right">
<div class="no-line-break"><strong>{{$user_cart->getFormattedEkPrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('EkPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@else @else

View file

@ -20,13 +20,31 @@
{{$user_cart->getFormattedPoints()}} {{$user_cart->getFormattedPoints()}}
</td> </td>
<td class="text-right"> <td class="text-right">
{{$user_cart->getFormattedIncomePrice()}} &euro; <div class="no-line-break">{{$user_cart->getFormattedIncomePrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('IncomePrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
<td class="text-right"> <td class="text-right">
{{$user_cart->getFormattedPrice()}} &euro; <div class="no-line-break">{{$user_cart->getFormattedPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('Price') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
<td class="text-right"> <td class="text-right">
{{$user_cart->getFormattedEkPrice()}} &euro; <div class="no-line-break">{{$user_cart->getFormattedEkPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('EkPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr>
<tr>
<td class="text-left bg-warning" colspan="4">Enthaltende Versandkosten:</td>
<td class="text-right bg-warning">
<div class="no-line-break">{{$user_cart->getFormattedShippingPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('ShippingPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
</tr> </tr>
@endif @endif
@ -35,7 +53,6 @@
@php($g_count = 1) @php($g_count = 1)
@foreach($homeparty->homeparty_guests as $homeparty_guest) @foreach($homeparty->homeparty_guests as $homeparty_guest)
@php($user_cart = \App\Services\HomepartyCart::getUserCart($homeparty_guest->id)) @php($user_cart = \App\Services\HomepartyCart::getUserCart($homeparty_guest->id))
<tr> <tr>
<td> <td>
<strong> {!! $g_count++ !!}. Gast {{$homeparty_guest->billing_firstname}} {{$homeparty_guest->billing_lastname}}</strong> <strong> {!! $g_count++ !!}. Gast {{$homeparty_guest->billing_firstname}} {{$homeparty_guest->billing_lastname}}</strong>
@ -44,13 +61,22 @@
{{$user_cart->getFormattedPoints()}} {{$user_cart->getFormattedPoints()}}
</td> </td>
<td class="text-right"> <td class="text-right">
{{$user_cart->getFormattedIncomePrice()}} &euro; <div class="no-line-break">{{$user_cart->getFormattedIncomePrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('IncomePrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
<td class="text-right"> <td class="text-right">
{{$user_cart->getFormattedPrice()}} &euro; <div class="no-line-break">{{$user_cart->getFormattedPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('Price') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
<td class="text-right"> <td class="text-right">
{{$user_cart->getFormattedEkPrice()}} &euro; <div class="no-line-break">{{$user_cart->getFormattedEkPrice()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ $user_cart->getCurrencyByKey('EkPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
</tr> </tr>
@endforeach @endforeach
@ -72,11 +98,40 @@
<td colspan="1" class="border-top"> <td colspan="1" class="border-top">
<strong>Gesamtsummen:</strong> <strong>Gesamtsummen:</strong>
</td> </td>
<td class="border-top text-right"><strong>{{\App\Services\HomepartyCart::getFormattedPoints()}}</strong></td> <td class="border-top text-right">
<td class="border-top text-right"><strong>{{\App\Services\HomepartyCart::getFormattedIncomePrice()}} &euro;</strong></td> <div class="no-line-break"><strong>{{\App\Services\HomepartyCart::getFormattedPointsTotal()}}</strong></div>
<td class="border-top text-right"><strong>{{\App\Services\HomepartyCart::getFormattedPrice()}} &euro;</strong></td> </td>
<td class="border-top text-right"><strong>{{\App\Services\HomepartyCart::getFormattedEkPrice()}} &euro;</strong></td> <td class="border-top text-right">
<div class="no-line-break"><strong>{{\App\Services\HomepartyCart::getFormattedIncomePrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('IncomePrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="border-top text-right">
<div class="no-line-break"><strong>{{\App\Services\HomepartyCart::getFormattedPrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('Price') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="border-top text-right">
<div class="no-line-break"><strong>{{\App\Services\HomepartyCart::getFormattedEkPrice()}} &euro;</strong></div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('EkPrice') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@if($homeparty->getCardInfo('user_tax_free'))
<tr class="foot-small">
<td colspan="1" class="text-muted">
Enthaltene MwSt:
</td>
<td class="">&nbsp;</td>
<td class="">&nbsp;</td>
<td class="text-muted text-right">0 &euro;</td>
<td class="text-muted text-right">0 &euro;</td>
</tr>
@else
<tr class="foot-small"> <tr class="foot-small">
<td colspan="1" class="text-muted"> <td colspan="1" class="text-muted">
Summe ohne MwSt: Summe ohne MwSt:
@ -84,8 +139,18 @@
<td class="">&nbsp;</td> <td class="">&nbsp;</td>
<td class="">&nbsp;</td> <td class="">&nbsp;</td>
<td class="text-muted text-right">{{\App\Services\HomepartyCart::getFormattedPriceNet()}} &euro;</td> <td class="text-muted text-right">
<td class="text-muted text-right">{{\App\Services\HomepartyCart::getFormattedEkPriceNet()}} &euro;</td> <div class="no-line-break">{{\App\Services\HomepartyCart::getFormattedPriceNet()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('PriceNet') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="text-muted text-right">
<div class="no-line-break">{{\App\Services\HomepartyCart::getFormattedEkPriceNet()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('EkPriceNet') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
<tr class="foot-small"> <tr class="foot-small">
<td colspan="1" class="text-muted"> <td colspan="1" class="text-muted">
@ -94,9 +159,20 @@
<td class="">&nbsp;</td> <td class="">&nbsp;</td>
<td class="">&nbsp;</td> <td class="">&nbsp;</td>
<td class="text-muted text-right">{{\App\Services\HomepartyCart::getFormattedPriceTax()}} &euro;</td> <td class="text-muted text-right">
<td class="text-muted text-right">{{\App\Services\HomepartyCart::getFormattedEkPriceTax()}} &euro;</td> <div class="no-line-break">{{\App\Services\HomepartyCart::getFormattedPriceTax()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('PriceTax') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
<td class="text-muted text-right">
<div class="no-line-break">{{\App\Services\HomepartyCart::getFormattedEkPriceTax()}} &euro;</div>
@if($homeparty->isPriceCurrency())
<span class="small">~{{ \App\Services\HomepartyCart::getCurrencyByKey('EkPriceTax') }} {{ $homeparty->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@endif
</tfoot> </tfoot>
</table> </table>
</div> </div>

View file

@ -33,7 +33,12 @@
</label> </label>
</div> </div>
<hr> <hr>
@if(Session::has('custom-error'))
<div class="alert alert-dark-warning alert-dismissible fade show">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ Session::get('custom-error') }}</strong>
</div>
@endif
<div id="show-is-for-customer" @if(!$shopping_user) style="display: none" @endif > <div id="show-is-for-customer" @if(!$shopping_user) style="display: none" @endif >
<div class="form-row"> <div class="form-row">
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
@ -49,13 +54,8 @@
</div> </div>
</div> </div>
<hr> <hr>
@if($shopping_user) @if($shopping_user)
@if(Session::has('custom-error'))
<div class="alert alert-dark-warning alert-dismissible fade show">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ Session::get('custom-error') }}</strong>
</div>
@endif
<div class="show-is-for-customer"> <div class="show-is-for-customer">
<h4>An diesen Kunde versenden</h4> <h4>An diesen Kunde versenden</h4>
<p>Sollten unten stehende Angaben nicht korrekt sein oder aktualisiert werden müssen, ändere diese bitte vorerst unter: <p>Sollten unten stehende Angaben nicht korrekt sein oder aktualisiert werden müssen, ändere diese bitte vorerst unter:

View file

@ -48,12 +48,6 @@
</style> </style>
@if($user->user_level)
<p>Die Produktpreise werden entsprechend Deinem Karriere-Level <strong>{{$user->user_level->name}}</strong> abzüglich <strong>{{$user->user_level->getFormattedMargin()}} %</strong> Marge angezeigt. Hinweis: Wenn Du den Warenkorb verlässt, gehen alle Einstellungen verloren.</p>
@else
<p>Hinweis: Dir wurde noch kein Karriere-Level zugewisen. Bitte wende dich an info@mivita.care</p>
@endif
@if($errors->has('switchers-comp-product')) @if($errors->has('switchers-comp-product'))
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
@ -68,6 +62,61 @@
</div> </div>
@endif @endif
<input type="hidden" name="shipping_is_for" value="{{$for}}">
<div class="card mt-2 mb-2">
<div class="card-body">
@if($for === 'ot')
<h4>Lieferung an den Kunden</h4>
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">Bestellland</div>
{{ App\Services\UserService::getOrderInfo('billing_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">Lieferland</div>
{{ App\Services\UserService::getOrderInfo('shipping_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">MwSt</div>
{{ App\Services\UserService::getOrderInfo('tax_free') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">Reverse Charge Verfahren</div>
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
</div>
</div>
<p>Das Lieferland kann nur beim Kunden unter <a href="{{ route('user_customers') }}">Meine Kunden</a> geändert werden.</i>
@endif
@if($for === 'me')
<h4>Lieferung an mich</h4>
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">Bestellland</div>
{{ App\Services\UserService::getOrderInfo('billing_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">Lieferland</div>
{{ App\Services\UserService::getOrderInfo('shipping_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">MwSt</div>
{{ App\Services\UserService::getOrderInfo('tax_free') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">Reverse Charge Verfahren</div>
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
</div>
</div>
<i>Das Lieferland kann nur unter <a href="{{ route('user_edit') }}">Meine Daten</a> geändert werden.</i>
@endif
@if($user->user_level)
<p>Die Produktpreise werden entsprechend Deinem Karriere-Level <strong>{{$user->user_level->name}}</strong> abzüglich <strong>{{$user->user_level->getFormattedMargin()}} %</strong> Marge angezeigt.<br>Hinweis: Wenn Du den die Seite verlässt, wird der Warenkorb zurückgesetzt.</p>
@else
<p>Hinweis: Dir wurde noch kein Karriere-Level zugewisen. Bitte wende dich an info@mivita.care</p>
@endif
</div>
</div>
<div class="card"> <div class="card">
<div class="card-datatable table-responsive"> <div class="card-datatable table-responsive">
@ -93,20 +142,12 @@
{!! Form::open(['url' => route('user_order_my_payment', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!} {!! Form::open(['url' => route('user_order_my_payment', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!}
<input type="hidden" name="shipping_is_for" value="{{$for}}"> <input type="hidden" name="shipping_is_for" value="{{$for}}">
<div class="card mt-4">
<div class="card-body">
@if($for === 'ot') @if($for === 'ot')
<h4>Lieferland des Kunden</h4>
@include('user.order.shipping_ot') @include('user.order.shipping_ot')
@endif @endif
@if($for === 'me') @if($for === 'me')
<h4>Mein Lieferland</h4>
@include('user.order.shipping_me') @include('user.order.shipping_me')
<i>Kann bei der Zahlung/Checkout nicht mehr geändert werden.</i>
@endif @endif
</div>
</div>
@if($for === 'me') @if($for === 'me')
<div id="holder_html_view_comp_product"> <div id="holder_html_view_comp_product">

View file

@ -12,11 +12,13 @@
{{ Form::hidden('shipping_zipcode', $user->account->zipcode) }} {{ Form::hidden('shipping_zipcode', $user->account->zipcode) }}
{{ Form::hidden('shipping_city', $user->account->city) }} {{ Form::hidden('shipping_city', $user->account->city) }}
{{ Form::hidden('shipping_phone', $user->account->phone) }} {{ Form::hidden('shipping_phone', $user->account->phone) }}
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
<div class="">
{{-- <div class="">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}"> <div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}">
<select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="me"> <select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="me" disabled="true">
{!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!} {!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!}
</select> </select>
@if ($errors->has('shipping_state')) @if ($errors->has('shipping_state'))
@ -26,7 +28,7 @@
@endif @endif
</div> </div>
</div> </div>
</div> </div>--}}
<!-- / Billing --> <!-- / Billing -->
@else @else
{{ Form::hidden('shipping_company', $user->account->shipping_company) }} {{ Form::hidden('shipping_company', $user->account->shipping_company) }}
@ -38,11 +40,13 @@
{{ Form::hidden('shipping_zipcode', $user->account->shipping_zipcode) }} {{ Form::hidden('shipping_zipcode', $user->account->shipping_zipcode) }}
{{ Form::hidden('shipping_city', $user->account->shipping_city) }} {{ Form::hidden('shipping_city', $user->account->shipping_city) }}
{{ Form::hidden('shipping_phone', $user->account->shipping_phone) }} {{ Form::hidden('shipping_phone', $user->account->shipping_phone) }}
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
<div class="">
{{-- <div class="">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}"> <div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}">
<select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="me"> <select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="me" disabled="true">
{!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!} {!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!}
</select> </select>
@if ($errors->has('shipping_state')) @if ($errors->has('shipping_state'))
@ -52,14 +56,7 @@
@endif @endif
</div> </div>
</div> </div>
</div>--}}
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_phone">{{ __('Phone') }}</label>
{{ Form::text('shipping_phone', $user->account->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control')) }}
</div>
</div>
</div>
@endif @endif
@else @else
<h4>Fehler: Keine Adressdaten gefunden!</h4> <h4>Fehler: Keine Adressdaten gefunden!</h4>

View file

@ -11,12 +11,14 @@
{{ Form::hidden('shipping_zipcode', $shopping_user->billing_zipcode) }} {{ Form::hidden('shipping_zipcode', $shopping_user->billing_zipcode) }}
{{ Form::hidden('shipping_city', $shopping_user->billing_city) }} {{ Form::hidden('shipping_city', $shopping_user->billing_city) }}
{{ Form::hidden('shipping_phone', $shopping_user->billing_phone) }} {{ Form::hidden('shipping_phone', $shopping_user->billing_phone) }}
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
<div class="">
{{-- <div class="">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}"> <div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}">
<select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="ot"> <select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="ot" disabled="true">
{!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!} {!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!}
</select> </select>
@if ($errors->has('shipping_state')) @if ($errors->has('shipping_state'))
@ -26,7 +28,7 @@
@endif @endif
</div> </div>
</div> </div>
</div> </div>--}}
<!-- / Billing --> <!-- / Billing -->
@else @else
@ -39,10 +41,11 @@
{{ Form::hidden('shipping_zipcode', $shopping_user->shipping_zipcode) }} {{ Form::hidden('shipping_zipcode', $shopping_user->shipping_zipcode) }}
{{ Form::hidden('shipping_city', $shopping_user->shipping_city) }} {{ Form::hidden('shipping_city', $shopping_user->shipping_city) }}
{{ Form::hidden('shipping_phone', $shopping_user->shipping_phone) }} {{ Form::hidden('shipping_phone', $shopping_user->shipping_phone) }}
<div class=""> {{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
{{-- <div class="">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}"> <div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}">
<select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="ot"> <select name="shipping_state" class="selectpicker" id="change_shipping_state" data-is-for="ot" disabled="true">
{!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!} {!! HTMLHelper::getCountriesForShipping(Yard::instance('shopping')->getShippingCountryId()) !!}
</select> </select>
@if ($errors->has('shipping_state')) @if ($errors->has('shipping_state'))
@ -52,5 +55,5 @@
@endif @endif
</div> </div>
</div> </div>
</div> </div>--}}
@endif @endif

View file

@ -82,6 +82,10 @@
min-width: 4em; min-width: 4em;
display: inline-block; display: inline-block;
} }
.xsmall {
font-size: 85%;
font-weight: 400;
}
</style> </style>
<div id="cartContent"> <div id="cartContent">
@ -143,6 +147,9 @@
<div class="col-6 col-sm-3 col-md-2 text-left font-semi-bold price-single"> <div class="col-6 col-sm-3 col-md-2 text-left font-semi-bold price-single">
<div class="no-line-break">{{ Yard::instance('shopping')->rowPriceNet($row, 3) }} &euro;</div> <div class="no-line-break">{{ Yard::instance('shopping')->rowPriceNet($row, 3) }} &euro;</div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="xsmall">~{{ Yard::instance('shopping')->getCurrencyByKey('rowPriceNetCurrency', $row, 3) }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</div> </div>
<div class="col-6 col-sm-3 col-md-3 quantity"> <div class="col-6 col-sm-3 col-md-3 quantity">
@ -155,6 +162,10 @@
</div> </div>
<div class="price-total text-right"> <div class="price-total text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->rowSubtotalNet($row) }} &euro;</div> <div class="no-line-break">{{ Yard::instance('shopping')->rowSubtotalNet($row) }} &euro;</div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('rowSubtotalCurrency', $row, 3) }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</div> </div>
</div> </div>
@ -179,7 +190,12 @@
<tbody> <tbody>
<tr> <tr>
<td class="text-left" style="border-top:none;">Zwischensumme:</td> <td class="text-left" style="border-top:none;">Zwischensumme:</td>
<td style="border-top:none;">{{ Yard::instance('shopping')->subtotal() }} </td> <td style="border-top:none;">
<div class="no-line-break">{{ Yard::instance('shopping')->subtotal() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('subtotal') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
<tr> <tr>
<td class="text-left">Lieferland:</td> <td class="text-left">Lieferland:</td>
@ -188,23 +204,52 @@
<tr> <tr>
<td class="text-left">Versandkosten:</td> <td class="text-left">Versandkosten:</td>
<td> <td>
{{ Yard::instance('shopping')->shippingNet() }} <div class="no-line-break">{{ Yard::instance('shopping')->shippingNet() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('shippingNet') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="text-left">Summe ohne MwSt:</td> <td class="text-left">Summe ohne MwSt:</td>
<td> <td>
{{ Yard::instance('shopping')->subtotalWithShipping() }} <div class="no-line-break"> {{ Yard::instance('shopping')->subtotalWithShipping() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('subtotalWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="text-left">zzgl. MwSt:</td> <td class="text-left">zzgl. MwSt:</td>
<td>{{ Yard::instance('shopping')->taxWithShipping() }} </td> <td>
<div class="no-line-break">{{ Yard::instance('shopping')->taxWithShipping() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('taxWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@if(Yard::instance('shopping')->getUserTaxFree())
<tr>
<td class="text-left"><strong>Gesamtsumme Netto:</strong></td>
<td>
<strong><div class="no-line-break">{{ Yard::instance('shopping')->totalWithShipping() }} </div></strong>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('totalWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr>
@else
<tr> <tr>
<td class="text-left"><strong>Gesamtsumme Brutto:</strong></td> <td class="text-left"><strong>Gesamtsumme Brutto:</strong></td>
<td><strong>{{ Yard::instance('shopping')->totalWithShipping() }} </strong></td> <td>
<strong><div class="no-line-break">{{ Yard::instance('shopping')->totalWithShipping() }} </div></strong>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('totalWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</td>
</tr> </tr>
@endif
</tbody> </tbody>
</table> </table>

View file

@ -12,6 +12,9 @@
<!-- /PAGE HEADER --> <!-- /PAGE HEADER -->
<style> <style>
.no-line-break {
white-space: nowrap;
}
.checkbox.error{ .checkbox.error{
color:#b92c28 !important; color:#b92c28 !important;
} }
@ -179,7 +182,6 @@
<!-- BILLING --> <!-- BILLING -->
<fieldset class="mb-0 box-border-shadow p-20"> <fieldset class="mb-0 box-border-shadow p-20">
<h4>Rechnungsadresse</h4> <h4>Rechnungsadresse</h4>
<hr /> <hr />
@if($is_from === 'shopping') @if($is_from === 'shopping')
<div class="is_from_shopping"> <div class="is_from_shopping">
@ -506,20 +508,28 @@
</div> </div>
@if($is_from === 'user_order')
{!! Form::hidden('shipping_state', $shopping_user->shipping_state) !!}
{!! Form::hidden('shipping_country_id', \App\Services\Shop::getShippingCountryCountryId($shopping_user->shipping_state)) !!}
<div class="row">
<div class="col-md-12 col-sm-12">
<label class="mt-0 fs-14 fw-400" for="shipping_state">Lieferland *</label>
<div class="text-normal">{{ $shopping_user->shipping_country->getLocated() }}</div>
<span class="info-small">Das Lieferland kann nur im Salescenter geändert werden.</span>
</div>
</div>
@else
<div class="row"> <div class="row">
<div class="col-md-12 col-sm-12"> <div class="col-md-12 col-sm-12">
<input type="hidden" name="shipping_country_id" value="{{ \App\Services\Shop::getShippingCountryCountryId($shopping_user->shipping_state) }}"> <input type="hidden" name="shipping_country_id" value="{{ \App\Services\Shop::getShippingCountryCountryId($shopping_user->shipping_state) }}">
<label class="mt-0 fs-14 fw-400" for="shipping_state">Lieferland *</label> <label class="mt-0 fs-14 fw-400" for="shipping_state">Lieferland *</label>
<select id="shipping_state" name="shipping_state" class="form-control" required @if($is_from === 'user_order' && $is_for === 'me') disabled style="background-color: #d4d4d4;" @endif> <select id="shipping_state" name="shipping_state" class="form-control" required>
{!! HTMLHelper::getCountriesForShipping($shopping_user->shipping_state) !!} {!! HTMLHelper::getCountriesForShipping($shopping_user->shipping_state) !!}
</select> </select>
@if($is_from === 'user_order' && $is_for === 'me')
<span class="info-small">Das Lieferland kann nur bei der Bestellübersicht geändert werden.</span>
@else
<span class="info-small">Bei der Änderung des Landes werden die Versandkosten neu berechnet.</span> <span class="info-small">Bei der Änderung des Landes werden die Versandkosten neu berechnet.</span>
</div>
</div>
@endif @endif
</div>
</div>
<div class="row"> <div class="row">
<div class="col-md-12 col-sm-12"> <div class="col-md-12 col-sm-12">
@ -565,7 +575,6 @@
@if(($shopping_user->abo_options === 1) && (Util::getUserPaymentFor() >= 3)) @if(($shopping_user->abo_options === 1) && (Util::getUserPaymentFor() >= 3))
@if(array_key_exists('SEPA', $payment_methods_active) && in_array($payment_methods_active['SEPA'], $payment_methods)) @if(array_key_exists('SEPA', $payment_methods_active) && in_array($payment_methods_active['SEPA'], $payment_methods))
<div class="col-lg-12 nomargin clearfix"> <div class="col-lg-12 nomargin clearfix">
<label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%"> <label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%">
@ -785,19 +794,34 @@
<div class="toggle-content"> <div class="toggle-content">
@if($is_from === 'user_order') @if($is_from === 'user_order')
<div class="clearfix mb-2"> <div class="clearfix mb-2">
<span class="pull-right">{{ Yard::instance('shopping')->subtotal() }} </span> <span class="pull-right text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->subtotal() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('subtotal') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<strong class="pull-left">Zwischensumme:</strong> <strong class="pull-left">Zwischensumme:</strong>
</div> </div>
<hr class="mt-4 mb-4"> <hr class="mt-4 mb-4">
<div class="clearfix mb-2"> <div class="clearfix mb-2">
<span class="pull-right small">{{ Yard::instance('shopping')->shippingNet() }} </span> <span class="pull-right small text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->shippingNet() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('shippingNet') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<span class="pull-left small">Versandkosten:</span> <span class="pull-left small">Versandkosten:</span>
</div> </div>
@else @else
<div class="clearfix mb-2"> <div class="clearfix mb-2">
<span class="pull-right">{{ Yard::instance('shopping')->total() }} </span> <span class="pull-right text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->total() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('total') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<strong class="pull-left">Zwischensumme:</strong> <strong class="pull-left">Zwischensumme:</strong>
</div> </div>
@ -806,7 +830,12 @@
<hr class="mt-4 mb-4"> <hr class="mt-4 mb-4">
<div class="clearfix mb-2"> <div class="clearfix mb-2">
<span class="pull-right small">{{ Yard::instance('shopping')->shipping() }} </span> <span class="pull-right small text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->shipping() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('shipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<span class="pull-left small">Versandkosten:</span> <span class="pull-left small">Versandkosten:</span>
</div> </div>
@endif @endif
@ -814,7 +843,7 @@
@if($shopping_user->is_from !== 'homeparty') @if($shopping_user->is_from !== 'homeparty')
<div class="clearfix mb-2"> <div class="clearfix mb-2">
<span class="pull-right small">{{ Yard::instance('shopping')->getShippingCountryName() }}</span> <span class="pull-right small text-right">{{ Yard::instance('shopping')->getShippingCountryName() }}</span>
<span class="pull-left small">Lieferland:</span> <span class="pull-left small">Lieferland:</span>
</div> </div>
@ -822,31 +851,56 @@
<hr class="mt-4 mb-4"> <hr class="mt-4 mb-4">
<div class="clearfix mb-2" style="font-size: 90%"> <div class="clearfix mb-2" style="font-size: 90%">
<span class="pull-right small">{{ Yard::instance('shopping')->subtotalWithShipping() }} </span> <span class="pull-right small text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->subtotalWithShipping() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('subtotalWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<span class="pull-left small">Summe ohne MwSt:</span> <span class="pull-left small">Summe ohne MwSt:</span>
</div> </div>
<div class="clearfix mb-2" style="font-size: 90%"> <div class="clearfix mb-2" style="font-size: 90%">
<span class="pull-right small">{{ Yard::instance('shopping')->taxWithShipping() }} </span> <span class="pull-right small text-right">
<div class="no-line-break">{{ Yard::instance('shopping')->taxWithShipping() }} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('taxWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<span class="pull-left small"> zzgl. {{-- Yard::getTaxRate() --}} MwSt:</span> <span class="pull-left small"> zzgl. {{-- Yard::getTaxRate() --}} MwSt:</span>
</div> </div>
@else @else
<hr class="mt-4 mb-4"> <hr class="mt-4 mb-4">
<div class="clearfix mb-2" style="font-size: 90%"> <div class="clearfix mb-2" style="font-size: 90%">
<span class="pull-right small">{!! $shopping_data['shop_price_net'] !!} </span> <span class="pull-right small text-right">
<div class="no-line-break">{!! $shopping_data['shop_price_net'] !!} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->convertCurrency($shopping_data['shop_price_net']) }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<span class="pull-left small">Summe ohne MwSt:</span> <span class="pull-left small">Summe ohne MwSt:</span>
</div> </div>
<div class="clearfix mb-2" style="font-size: 90%"> <div class="clearfix mb-2" style="font-size: 90%">
<span class="pull-right small">{!! $shopping_data['shop_price_tax'] !!} </span> <span class="pull-right small text-right">
<div class="no-line-break">{!! $shopping_data['shop_price_tax'] !!} </div>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->convertCurrency($shopping_data['shop_price_tax']) }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<span class="pull-left small"> zzgl. {{-- Yard::getTaxRate() --}} MwSt:</span> <span class="pull-left small"> zzgl. {{-- Yard::getTaxRate() --}} MwSt:</span>
</div> </div>
@endif @endif
<hr /> <hr />
<div class="clearfix"> <div class="clearfix">
<span class="pull-right size-20"><strong>{{ Yard::instance('shopping')->totalWithShipping() }} </strong></span> <span class="pull-right size-20 text-right">
<strong><div class="no-line-break">{{ Yard::instance('shopping')->totalWithShipping() }} </div></strong>
@if(Yard::instance('shopping')->isPriceCurrency())
<span class="small">~{{ Yard::instance('shopping')->getCurrencyByKey('totalWithShipping') }} {{ Yard::instance('shopping')->getPriceCurrencyUnit() }} </span>
@endif
</span>
<strong class="pull-left">Gesamtsumme:</strong> <strong class="pull-left">Gesamtsumme:</strong>
</div> </div>

View file

@ -267,15 +267,15 @@ Route::domain(config('app.pre_url_crm').config('app.domain').config('app.tld_car
//user homeparty //user homeparty
Route::get('/user/homepartys', 'User\HomepartyController@index')->name('user_homepartys'); Route::get('/user/homepartys', 'User\HomepartyController@index')->name('user_homepartys');
Route::get('/user/homeparty/detail/{id?}', 'User\HomepartyController@detail')->name('user_homeparty_detail'); Route::get('/user/homeparty/detail/{id?}/{step?}', 'User\HomepartyController@detail')->name('user_homeparty_detail');
Route::post('/user/homeparty/detail/{id?}', 'User\HomepartyController@store')->name('user_homeparty_detail'); Route::post('/user/homeparty/detail/{id?}/{step?}', 'User\HomepartyController@store')->name('user_homeparty_detail');
Route::get('/user/homeparty/guests/{id?}', 'User\HomepartyController@guests')->name('user_homeparty_guests'); Route::get('/user/homeparty/guests/{id?}', 'User\HomepartyController@guests')->name('user_homeparty_guests');
Route::get('/user/homeparty/guest/detail/{id?}/{gid?}', 'User\HomepartyController@guestDetail')->name('user_homeparty_guest_detail'); Route::get('/user/homeparty/guest/detail/{id?}/{gid?}', 'User\HomepartyController@guestDetail')->name('user_homeparty_guest_detail');
Route::post('/user/homeparty/guest/detail/{id?}/{gid?}', 'User\HomepartyController@guestStore')->name('user_homeparty_guest_detail'); Route::post('/user/homeparty/guest/detail/{id?}/{gid?}', 'User\HomepartyController@guestStore')->name('user_homeparty_guest_detail');
Route::get('/user/homeparty/order/{id?}', 'User\HomepartyController@order')->name('user_homeparty_order'); Route::get('/user/homeparty/order/{id?}', 'User\HomepartyController@order')->name('user_homeparty_order');
Route::post('/user/homeparty/order/{id?}', 'User\HomepartyController@orderStore')->name('user_homeparty_order'); Route::post('/user/homeparty/order/{id?}', 'User\HomepartyController@orderStore')->name('user_homeparty_order');
Route::get('/user/homeparty/delete/{do}/{id?}/{gid?}', 'User\HomepartyController@delete')->name('user_homeparty_delete'); Route::get('/user/homeparty/delete/{do}/{id?}/{gid?}', 'User\HomepartyController@delete')->name('user_homeparty_delete');
Route::get('/user/homeparty/datatable', 'User\HomepartyController@datatable')->name('user_homeparty_datatable'); Route::get('/user/homeparty/datatable/{id?}', 'User\HomepartyController@datatable')->name('user_homeparty_datatable');
//products images //products images
Route::post('/user/shop_on_site/upload/image', 'UserShopController@uploadOnSiteImage')->name('user_shop_on_site_upload_image'); Route::post('/user/shop_on_site/upload/image', 'UserShopController@uploadOnSiteImage')->name('user_shop_on_site_upload_image');