0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Je(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Ct={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ct).forEach((function(e){var t=m(e,2),r=t[0],n=t[1];Ct[n]=r}));var Ft=Ct;var Ut=function e(t){var r=new Nt(t),n=x(Nt.prototype.request,r);return ce.extend(n,Nt.prototype,r,{allOwnKeys:!0}),ce.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(Ze(t,r))},n}(Ce);return Ut.Axios=Nt,Ut.CanceledError=Je,Ut.CancelToken=_t,Ut.isCancel=He,Ut.VERSION=Tt,Ut.toFormData=me,Ut.AxiosError=fe,Ut.Cancel=Ut.CanceledError,Ut.all=function(e){return Promise.all(e)},Ut.spread=function(e){return function(t){return e.apply(null,t)}},Ut.isAxiosError=function(e){return ce.isObject(e)&&!0===e.isAxiosError},Ut.mergeConfig=Ze,Ut.AxiosHeaders=ze,Ut.formToJSON=function(e){return Ne(ce.isHTMLForm(e)?new FormData(e):e)},Ut.getAdapter=St,Ut.HttpStatusCode=Ft,Ut.default=Ut,Ut}));
+//# sourceMappingURL=axios.min.js.map
diff --git a/src/assets/js/jquery.mask.min.js b/src/assets/js/jquery.mask.min.js
new file mode 100644
index 0000000..1f22376
--- /dev/null
+++ b/src/assets/js/jquery.mask.min.js
@@ -0,0 +1,19 @@
+// jQuery Mask Plugin v1.14.16
+// github.com/igorescobar/jQuery-Mask-Plugin
+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,n,f){a instanceof String&&(a=String(a));for(var p=a.length,k=0;kg?h=10*d:e>=h&&e!==g?c.maskDigitPosMapOld[h]||(e=h,h=h-(k-l)-a,c.maskDigitPosMap[h]&&(h=e)):h>e&&(h=h+(l-k)+f)}return h},behaviour:function(d){d=
+d||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,l.byPassKeys)){e=c.getMasked();var h=c.getCaret(),g=b.data("mask-previus-value")||"";setTimeout(function(){c.setCaret(c.calculateCaretPosition(g))},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(h);return c.callbacks(d)}},getMasked:function(a,b){var h=[],f=void 0===b?c.val():b+"",g=0,k=d.length,n=0,p=f.length,m=1,r="push",u=-1,w=0;b=[];if(e.reverse){r="unshift";m=-1;var x=0;g=k-1;n=p-1;var A=function(){return-1<
+g&&-1.ico-c {
+ display: none;
+}
+
+.ico-c.select-close-selection {
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ width: 16px;
+ height: 16px;
+ cursor: pointer;
+}
+
+input[type='text'],
+input[type='password'],
+input[type='date'],
+input[type='datetime-local'],
+input[type='tel'],
+input[type='number'],
+input[type='email'],
+input[type='file'],
+select,
+textarea,
+.input-a,
+.form-select-activator {
+ padding: var(--form-input-padding);
+ height: 44px;
+ font-size: var(--form-input-font-size);
+}
+
+.form-select-activator {
+ min-height: 44px;
+ height: auto;
+}
+
+input[type='file'] {
+ cursor: pointer;
+}
+
+textarea {
+ height: initial;
+}
+
+input::placeholder {
+ opacity: 0.5;
+ font-style: italic;
+}
+
+.invalid {
+ border: 2px solid rgb(var(--form-alert-color)) !important;
+ box-shadow: var(--form-alert-shadow);
+}
+
+.disabled,
+input:disabled,
+textarea:disabled {
+ border: 2px solid rgb(var(--form-disabled-color));
+ opacity: 0.4;
+ cursor: auto;
+}
+
+.changed {
+ border: 1px solid #efa471;
+}
+
+label {
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+ padding: 2px;
+}
+
+label>span {
+ padding-bottom: 4px;
+ padding-left: 8px;
+ width: 100%;
+ word-break: break-word;
+}
+
+label>input:not([type='radio']):not([type='checkbox']),
+label>textarea,
+label>select,
+.form-select-activator {
+ width: 100%;
+}
+
+label.label-row {
+ flex-direction: row;
+}
+
+label.label-row>span {
+ padding-right: 8px;
+ padding-bottom: 0;
+ padding-left: 0;
+}
+
+.label-radio {
+ align-items: center;
+ width: initial;
+ margin-right: 16px;
+ margin-bottom: 16px;
+ flex-wrap: nowrap;
+ align-items: flex-start;
+}
+
+.label-radio.disabled {
+ border: none;
+}
+
+.label-radio>span {
+ width: initial;
+ padding-bottom: 0;
+}
+
+.label-radio.disabled>span {
+ color: rgb(var(--c-disabled));
+}
+
+.label-radio>span a {
+ text-decoration: underline;
+}
+
+.labe-content {
+ display: flex;
+ width: 100%;
+}
+
+.form-accept-content .label-radio {
+ margin-bottom: 0;
+}
+
+.form-select-list-c {
+ width: 100%;
+ display: flex;
+ position: relative;
+}
+
+.form-select-input {
+ width: 100%;
+}
+
+.form-select-list {
+ box-shadow: var(--sh-bottom);
+ position: fixed;
+ z-index: 999;
+ background-color: rgb(255, 255, 255);
+ border: 2px solid rgb(150, 150, 150);
+ overflow: hidden;
+ overflow-y: auto;
+ border-radius: 8px;
+}
+
+.form-select-list-item {
+ padding: 12px 8px;
+ cursor: pointer;
+}
+
+.form-select-list-item:hover {
+ background-color: rgba(var(--c-primary), 0.2);
+}
+
+.form-select-list-item.selected {
+ background-color: rgba(var(--c-primary), 0.1);
+}
+
+.select-box-check {
+ width: 14px;
+ height: 14px;
+ margin-right: 8px;
+}
+
+/* buttons */
+button,
+.button-c {
+ padding: var(--button-padding);
+ background-color: rgb(var(--button-back-default));
+ color: rgb(var(--button-color));
+ border-radius: var(--button-border-radius);
+ font-size: var(--button-font-size);
+ cursor: pointer;
+ min-height: 44px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 8px;
+ border: none;
+ transition: var(--trn-std);
+}
+
+.button-c:hover {
+ color: rgb(255, 255, 255);
+ background-color: rgb(var(--button-back-hover-default));
+}
+
+.button-c:hover span {
+ color: rgb(255, 255, 255);
+}
+
+button svg,
+.button-c svg {
+ fill: rgb(var(--button-color));
+ max-width: 24px;
+ max-height: 24px;
+}
+
+.button-icon {
+ justify-content: flex-start;
+}
+
+.button-icon i {
+ margin-right: 16px;
+}
+
+.button-second {
+ background-color: rgb(var(--button-back-secondary));
+}
+
+.button-export,
+.button-documents {
+ background-color: rgb(235, 235, 235);
+ width: 100%;
+}
+
+.button-export:hover svg {
+ fill: #fff;
+}
+
+.button-save {
+ background-color: rgb(var(--button-back-save));
+}
+
+.button-cancel {
+ background-color: rgb(var(--button-back-cancel));
+}
+
+.button-alert {
+ background-color: rgb(var(--button-back-alert));
+}
+
+.button-cancel:hover {
+ background-color: rgb(100, 100, 100);
+}
+
+.button-belge {
+ background-color: rgb(235, 235, 235);
+}
+
+.button-c:disabled {
+ background-color: rgb(var(--c-disabled));
+}
+
+/* icons */
+svg {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+.ico-c {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 24px;
+ height: 24px;
+ transition: var(--trn-std);
+}
+
+.ico-btn {
+ cursor: pointer;
+}
+
+.ico-c svg {
+ fill: rgb(var(--c-primary));
+ max-width: 24px;
+ max-height: 24px;
+}
+
+/* colors */
+.back-grad {
+ padding: 6px 8px;
+ color: #fff;
+ border-radius: 4px;
+ display: inline-block;
+}
+
+.back-grad-title {
+ background-image: linear-gradient(24deg, #73a4dc, #2365af);
+}
+
+.back-grad-new {
+ background-image: linear-gradient(24deg, #b212ed, #770093);
+}
+
+.back-grad-waiting {
+ background-image: linear-gradient(24deg, #eda512, #cb7c02);
+}
+
+.back-grad-alert {
+ background-image: linear-gradient(24deg, #f57c7c, #9a0000);
+}
+
+.back-grad-next {
+ background-image: linear-gradient(24deg, #73a4dc, #2365af);
+}
+
+.back-grad-ok {
+ background-image: linear-gradient(24deg, #2fc939, #097401);
+}
+
+.back-grad-beforeok {
+ background-image: linear-gradient(24deg, #ff6400, #00604b);
+}
+
+.back-grad-change {
+ background-image: linear-gradient(24deg, #008a17, #770093);
+}
+
+.back-grad-finish {
+ background-image: linear-gradient(24deg, #008a17, #770093);
+}
+.back-grad-sevk {
+ color: #777777;
+ background-image: linear-gradient(24deg, #bfcbd8, #e1dcdc);
+}
+.back-grad-sevk-ok {
+ color: #242424;
+}
+.back-grad-grey {
+ background-image: linear-gradient(24deg, #e6e6e6, #e1dcdc);
+ color: #000;
+ padding: 12px;
+}
+
+.back-grey {
+ background-color: #f1f1f1;
+}
+
+/* login */
+.login-w {
+ min-width: 100%;
+ min-height: 100vh;
+ justify-content: center;
+ display: flex;
+ align-items: center;
+}
+
+.login-page main {
+ padding: 32px;
+ max-width: 480px;
+ justify-content: center;
+ flex-direction: row;
+ align-items: center;
+}
+
+.section-login {
+ padding: 16px;
+ transition: var(--trn-std);
+}
+
+.section-login .section-content {
+ flex-direction: column;
+}
+
+.login-header {
+ display: flex;
+ flex: 1;
+ justify-content: space-between;
+ align-items: center;
+ border-bottom: 1px solid rgb(var(--c-border-primary));
+ padding-bottom: 16px;
+ margin-bottom: 32px;
+}
+
+.login-header h1 {
+ font-size: 1em;
+}
+
+.login-header .logo-header {
+ margin-left: 0;
+ max-width: 144px;
+}
+
+.button-login {
+ width: 100%;
+}
+
+.section-login form {
+ margin-bottom: 32px;
+}
+
+.login-nav {
+ display: flex;
+ flex-direction: column;
+ text-align: right;
+}
+
+.login-nav-back {
+ text-align: left;
+}
+
+.login-nav a {
+ padding: 8px 0;
+ font-weight: 500;
+}
+
+/* header */
+header {
+ background-color: rgb(var(--c-header-back));
+ box-shadow: var(--sh-bottom);
+ max-height: var(--sz-header);
+ display: flex;
+ justify-content: space-between;
+ padding: 0 8px;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 30;
+}
+
+.header-c {
+ display: flex;
+ height: 64px;
+ align-items: center;
+}
+
+.header-c>.ico-c {
+ width: 32px;
+ height: 64px;
+}
+
+.ico-notification svg {
+ width: 18px;
+}
+
+.header-profile {
+ position: relative;
+}
+
+.b-menu-profile {
+ width: 64px;
+ height: 64px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ margin-left: 16px;
+}
+
+.profile-photo-c {
+ width: 56px;
+ height: 56px;
+ overflow: hidden;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+ border-radius: 100%;
+}
+
+.profile-photo-c img {
+ position: absolute;
+ max-width: 100%;
+ max-height: 100%;
+}
+
+/* badge */
+.badge-have {
+ position: relative;
+}
+
+.badge-have>.badge-c {
+ display: flex;
+}
+
+.badge-notification {
+ width: 8px;
+ height: 8px;
+ border-radius: 100%;
+ background-color: var(--c-badge-notidication-back);
+ margin-bottom: 16px;
+ right: 0;
+ position: absolute;
+}
+
+/* menu */
+.menu-side-w {
+ position: fixed;
+ z-index: 8;
+ top: var(--sz-header);
+ height: calc(100% - var(--sz-header));
+ left: -200px;
+ width: 200px;
+ box-shadow: var(--sh-bottom);
+ background-color: rgb(var(--c-menu-side-back));
+}
+
+.menu-side-shadow {
+ z-index: 10;
+ width: 100vw;
+ height: 100vh;
+ background-color: rgba(0, 0, 0, 0.5);
+ position: fixed;
+ left: 0;
+ top: 0;
+ opacity: 0;
+ transition: var(--trn-std);
+ visibility: hidden;
+ pointer-events: none;
+ z-index: 7;
+}
+
+.menu-side-shadow.showme {
+ visibility: visible;
+ opacity: 1;
+ pointer-events: all;
+ display: flex;
+}
+
+.ico-mobile-menu {
+ cursor: pointer;
+}
+
+.ico-mobile-menu svg {
+ width: 24px;
+ height: 24px;
+}
+
+nav>ul {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+}
+
+nav>ul>li {
+ display: flex;
+ width: 100%;
+ position: relative;
+ flex-direction: column;
+}
+
+nav>ul li .ico-c {
+ margin-right: 4px;
+}
+
+nav ul li>a,
+nav ul li>div {
+ display: flex;
+ width: 100%;
+ padding: 12px 16px;
+ align-items: center;
+}
+
+.menu-have-sub {
+ cursor: pointer;
+}
+
+.menu-sub {
+ position: absolute;
+ height: auto;
+ background-color: rgb(var(--c-menu-top-sub-back));
+ z-index: 1;
+ min-width: 200px;
+ box-shadow: var(--sh-bottom);
+}
+
+header .menu-sub {
+ border-top: 3px solid rgb(var(--c-menu-side-sub-border));
+}
+
+.menu-sub>ul>li,
+.menu-side-w nav>ul>li {
+ border-bottom: 1px solid rgba(var(--c-menu-sub-border), 0.15);
+}
+
+.menu-sub>ul>li:last-child {
+ border-bottom: none;
+}
+
+.menu-open {
+ position: relative;
+}
+
+.menu-open>.menu-sub {
+ display: flex;
+}
+
+.menu-sub.menu-sub-left {
+ left: 100%;
+}
+
+.menu-sub.menu-sub-right {
+ right: 0;
+}
+
+.menu-sub-open>.menu-sub {
+ display: flex;
+}
+
+.menu-side-w .menu-sub {
+ background-color: rgb(var(--c-menu-side-sub-back));
+ border-left: 3px solid rgb(var(--c-menu-side-sub-border));
+ position: relative;
+ left: 0;
+}
+
+.menu-side-w .menu-open {
+ flex-direction: column;
+}
+
+.menu-side-w>nav>ul>li .menu-have-sub:after {
+ content: '';
+ width: 8px;
+ height: 12px;
+ background-color: rgb(var(--c-primary));
+ -webkit-mask-image: url(../images/arrow.svg);
+ mask-image: url(../images/arrow.svg);
+ position: absolute;
+ right: 8px;
+}
+
+.menu-profile {
+ right: 0;
+ width: 360px;
+}
+
+/* layout */
+
+.main-page main {
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: space-between;
+}
+
+section {
+ background-color: rgb(var(--c-section-back));
+ border-radius: var(--section-border-radius);
+ box-shadow: var(--sh-section);
+ position: relative;
+ width: 100%;
+ display: flex;
+ transition: var(--trn-std);
+ flex-wrap: wrap;
+ align-items: flex-start;
+}
+
+.main-page main section {
+ width: 100%;
+ margin-bottom: 24px;
+}
+
+.section-header {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ padding: var(--section-m-padding);
+ border-bottom: 1px solid rgb(var(--c-section-header-border));
+ width: 100%;
+ flex-wrap: wrap;
+}
+
+.section-header h1 {
+ font-size: 1.1em;
+ font-weight: 500;
+ margin: 0;
+ display: flex;
+ flex-direction: column;
+ padding-right: 8px;
+}
+
+.section-header-count {
+ color: rgb(var(--c-primary));
+ font-size: 0.875em;
+ font-weight: 400;
+}
+
+.ico-section {
+ width: 44px;
+ height: 44px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 8px;
+ margin-right: 8px;
+ flex-shrink: 0;
+}
+
+.ico-section svg {
+ width: 24px;
+ max-height: 24px;
+}
+
+.ico-section svg {
+ fill: rgb(255, 255, 255);
+}
+
+.section-header-buttons-c {
+ margin-left: auto;
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+}
+.header-extra-buttons-C{
+ display: flex;
+ align-items: center;
+ margin-bottom: 16px;
+ margin-top: 16px;
+}
+.section-header-buttons {
+ padding: 8px;
+ border-radius: 8px;
+ border-top: 3px solid rgb(var(--c-border-primary));
+ min-width: inherit;
+ top: 100%;
+}
+
+.list-search-c {
+ position: relative;
+ display: flex;
+ align-items: center;
+}
+.header-buttons-C{
+ display: flex;
+ align-items: center;
+ position: relative;
+}
+
+.ico-section-header-btn {
+ background-color: rgb(var(--c-section-header-button-back));
+ cursor: pointer;
+}
+
+.ico-section-header-btn svg {
+ fill: rgb(var(--c-section-header-button-ico));
+ transition: var(--trn-std);
+}
+
+.ico-section-header-btn:hover {
+ background-color: rgb(var(--button-back-hover-default));
+}
+
+.ico-section-header-btn:hover svg {
+ fill: rgb(255, 255, 255);
+}
+
+.section-content {
+ display: flex;
+ width: 100%;
+}
+
+.section-list {
+ flex-direction: column;
+}
+
+.section-list .section-content {
+ width: 100%;
+ flex-direction: column;
+}
+
+.section-content.section-inner {
+ padding: 10px;
+}
+
+.list-wrapper {
+ width: 100%;
+ position: relative;
+ overflow: hidden;
+ overflow-x: auto;
+}
+
+.list-content {
+ display: flex;
+ flex-direction: column;
+}
+
+.list-content-item {
+ display: flex;
+}
+
+.list-second-line {
+ font-size: var(--f-list-second-line);
+ color: rgb(var(--c-list-second-line));
+}
+
+.list-col-day {
+ color: rgb(var(--c-list-col-date));
+}
+
+.list-filter-wrapper {
+ display: flex;
+ flex-direction: column;
+ padding: 12px;
+ border-radius: 8px;
+ margin-bottom: 8px;
+ background-color: rgb(var(--c-default-grey-back));
+ width: 100%;
+}
+
+.list-filter-content {
+ padding: 8px 0;
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+}
+
+.list-filter-item {
+ font-size: 0.875em;
+ flex-shrink: 0;
+ padding: 4px 32px 4px 6px;
+ margin-right: 8px;
+ background-color: rgb(255, 255, 255);
+ border-radius: 4px;
+ position: relative;
+ display: flex;
+ height: 26px;
+}
+
+.list-filter-close {
+ position: absolute;
+ width: 26px;
+ height: 26px;
+ background-color: rgb(163, 25, 20);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ right: 0;
+ top: 0;
+ border-radius: 0 4px 4px 0;
+ cursor: pointer;
+}
+
+.list-filter-close:before,
+.list-filter-close:after {
+ content: '';
+ width: 16px;
+ height: 2px;
+ background-color: rgb(255, 255, 255);
+ transform: rotate(45deg);
+ display: inline-block;
+ position: absolute;
+}
+
+.list-filter-close:after {
+ transform: rotate(-45deg);
+}
+
+/* panel */
+.panel-wrapper {
+ width: 100%;
+ position: fixed;
+ z-index: 10;
+ box-shadow: var(--sh-bottom);
+ top: var(--sz-header);
+ background-color: rgb(var(--c-panel-back));
+ border-top: 3px solid rgb(var(--c-panel-border));
+ height: calc(100% - var(--sz-header));
+ transition: var(--trn-std);
+}
+
+.panel-open,
+.panel-close {
+ cursor: pointer;
+}
+
+.panel-wrapper.panel-right {
+ left: 100%;
+}
+
+.panel-wrapper.panel-right.showme {
+ left: 0;
+}
+
+.panel-header,
+.panel-footer {
+ padding: var(--panel-padding);
+ border-bottom: 1px solid rgb(var(--c-panel-header-border));
+ height: 64px;
+ display: flex;
+ align-items: center;
+ position: relative;
+ width: 100%;
+}
+
+.panel-header {
+ justify-content: space-between;
+}
+
+.panel-footer .button-c {
+ flex: 1;
+}
+
+.panel-close-btn,
+.toast-close-btn {
+ width: 44px;
+ height: 44px;
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ right: 0;
+ cursor: pointer;
+}
+
+.toast-close-btn {
+ top: 0;
+}
+
+.panel-close-btn:before,
+.panel-close-btn:after,
+.toast-close-btn:before,
+.toast-close-btn:after {
+ content: '';
+ position: absolute;
+ width: 60%;
+ height: 2px;
+ background-color: rgb(var(--c-text-primary));
+ transform: rotate(45deg);
+}
+
+.panel-close-btn:after,
+.toast-close-btn:after {
+ transform: rotate(-45deg);
+}
+
+.panel-content {
+ overflow: hidden;
+ overflow-y: auto;
+ position: relative;
+ width: 100%;
+ height: calc(100vh - 64px - var(--sz-header));
+ padding-bottom: 16px;
+ display: flex;
+ flex-wrap: wrap;
+ align-content: flex-start;
+}
+
+.panel-have-footer .panel-content {
+ height: calc(100vh - 128px - var(--sz-header));
+}
+
+.panel-content-item {
+ display: flex;
+ width: 100%;
+}
+
+.panel-content-item.back-grey {
+ background-color: rgb(245, 245, 245);
+ border-radius: 10px;
+}
+
+.panel-notification-content {
+ padding: var(--panel-padding);
+}
+
+.panel-notification-content .panel-content-item {
+ background-color: rgb(245, 245, 245);
+ border-radius: 10px;
+ margin-bottom: 8px;
+}
+
+.panel-notification-content .panel-content-item p {
+ margin-top: 0;
+}
+
+.panel-notification-content .panel-content-item .panel-date {
+ color: rgb(120, 120, 120);
+ font-size: 0.75em;
+}
+
+.panel-export-content .panel-content-item {
+ padding: var(--panel-padding) var(--panel-padding) 0 var(--panel-padding);
+}
+
+.panel-filter-content .panel-content-item {
+ border-bottom: 1px solid rgb(var(--c-border-primary));
+}
+
+.panel-filter-content .panel-content-item {
+ display: flex;
+ align-items: flex-end;
+}
+
+.panel-filter-content .panel-content-item label {
+ margin-right: 8px;
+}
+
+.panel-documents-item .input-a {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.panel-documents-item .input-a i {
+ margin: 0;
+ width: 36px;
+ height: 36px;
+}
+
+.panel-documents-item input[type='file'] {
+ display: none;
+}
+
+.panel-page-menu-item {
+ width: 100%;
+ margin-bottom: 16px;
+}
+
+.preview-content {
+ padding: 16px;
+ width: 100%;
+}
+
+.preview-content .form-part-title-buttons,
+.preview-content .form-inner-comment {
+ display: none !important;
+}
+
+.preview-content .form-part-title {
+ margin: 0;
+ padding: 8px;
+ background-color: #f1f1f1;
+}
+
+.preview-shadow {
+ width: 800px;
+ position: fixed;
+ left: 110%;
+ top: 110%;
+}
+
+.preview-page-part {
+ width: 100%;
+}
+
+.preview-page-part .form-part {
+ border: none;
+ box-shadow: none;
+}
+
+.preview-part-title {
+ font-weight: 800;
+ padding: 16px;
+}
+
+.preview-part {
+ margin-bottom: 24px
+}
+
+.preview-content table,
+.print-c table {
+ border: 1px solid #e7e7e7;
+}
+
+.preview-content table tr td,
+.print-c table tr td {
+ padding: 6px;
+}
+
+.preview-content table tr td,
+.print-c table tr td {
+ border-bottom: 1px solid #e7e7e7;
+}
+
+.preview-content table tr td:not(:last-child),
+.print-c table tr td:not(:last-child) {
+ border-right: 1px solid #e7e7e7;
+}
+
+.table-no-line,
+.table-no-line tr td {
+ border: none !important;
+}
+
+/* page toast */
+.page-toast-w {
+ position: fixed;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ align-items: flex-end;
+ padding: 32px;
+ right: 0;
+ bottom: 0;
+ z-index: 9999;
+ width: 100%;
+}
+
+.page-toast-item {
+ display: flex;
+ position: relative;
+ border-radius: 16px;
+ padding: 16px 44px 16px 16px;
+ background-color: rgb(var(--toast-back));
+ width: 100%;
+ box-shadow: var(--toast-shadow);
+ transition: var(--trn-std);
+ margin-top: 16px;
+}
+
+.toast-item-alert {
+ background-color: rgb(var(--toast-back-alert));
+}
+
+.toast-item-success {
+ background-color: rgb(var(--toast-back-success));
+}
+
+.toast-item-ready {
+ background-color: rgb(var(--toast-back-ready));
+}
+
+.page-toast-item span {
+ color: rgb(var(--toast-color-invert));
+}
+
+.page-toast-item .toast-close-btn:before,
+.page-toast-item .toast-close-btn:after {
+ background-color: rgb(var(--toast-color-invert));
+}
+
+/* breadcrumb */
+.breadcrumb-wrapper {
+ display: flex;
+ width: 100%;
+ margin-bottom: 16px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid rgb(var(--c-border-primary));
+}
+
+.breadcrumb-wrapper .ico-c {
+ max-width: 12px;
+ max-height: 12px;
+}
+
+.breadcrumb-wrapper a,
+.breadcrumb-wrapper span,
+.breadcrumb-wrapper .breadcrumb-link {
+ display: flex;
+ align-items: center;
+ padding: 8px 12px;
+}
+
+.breadcrumbs-list {
+ display: flex;
+ align-items: center;
+}
+
+.breadcrumbs-list,
+.breadcrumbs-back {
+ border-radius: 8px;
+ background-color: rgb(var(--c-breadcrumb-button-back));
+ max-height: 32px;
+}
+
+.breadcrumbs-back {
+ margin-right: 8px;
+ padding: 0 !important;
+}
+
+.breadcrumbs-back .ico-clickable {
+ padding: 8px 12px;
+ cursor: pointer;
+}
+
+.breadcrumbs-back svg {
+ transform: rotate(180deg);
+ justify-content: center;
+ width: 8px;
+}
+
+.breadcrumbs-list a {
+ border-right: 1px solid rgb(var(--c-border-primary));
+}
+
+/* pagination */
+.list-paging-wrapper {
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ margin-top: 12px;
+ position: relative;
+}
+
+.pagination-content {
+ background-color: rgb(244, 244, 244);
+ border-radius: 8px;
+ padding: 8px;
+ display: flex;
+ align-items: center;
+ position: relative;
+}
+
+.pagination-nav {
+ display: flex;
+ width: 44px;
+ height: 44px;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ margin: 0 8px;
+}
+
+.pagination-nav svg {
+ height: 16px;
+}
+
+.pagination-nav-prev svg {
+ transform: rotate(180deg);
+}
+
+.pagination-current-page {
+ border: none;
+ max-width: 60px;
+ margin: 0 12px;
+ text-align: center;
+}
+
+.pagination-total-page {
+ margin-right: 12px;
+}
+
+/* forms */
+.section-header-search {
+ width: calc(100vw - 48px);
+ padding: 8px;
+ background-color: rgb(var(--c-section-header-button-back));
+ left: 24px;
+ max-width: 100vw;
+ position: fixed;
+}
+
+#list-search-form {
+ display: flex;
+ flex: 1;
+ align-items: center;
+}
+
+#list-search-form input {
+ flex: 1;
+}
+
+/* section forms */
+.form-part {
+ background-color: rgb(var(--c-section-back));
+ border-radius: var(--section-border-radius);
+ box-shadow: var(--sh-form);
+ position: relative;
+ display: flex;
+ transition: var(--trn-std);
+ flex-wrap: wrap;
+ align-items: flex-start;
+ margin-bottom: 16px;
+ padding: 12px;
+ width: 100%;
+}
+
+.form-title {
+ display: flex;
+ justify-content: space-between;
+}
+
+.form-title .form-item {
+ margin-bottom: 0;
+}
+
+.form-title input {
+ width: 100%;
+}
+
+.form-title-buttons {
+ display: flex;
+}
+
+.form-title input {
+ font-size: 1.25em;
+ font-weight: 500;
+}
+
+.title-second {
+ width: 100%;
+ display: flex;
+ padding-top: 16px;
+ padding-left: 8px;
+}
+
+.form-buttons {
+ display: flex;
+}
+
+.form-content {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: flex-start;
+ width: 100%;
+}
+
+.form-inner-content {
+ width: 100%;
+}
+
+.form-content .form-part {
+ flex-direction: column;
+}
+
+.form-part-title {
+ display: flex;
+ width: 100%;
+ padding: 8px 0;
+ margin-bottom: 16px;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.form-part-title-buttons {
+ display: flex;
+}
+
+.form-part-content {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ width: 100%;
+ overflow: hidden;
+ position: relative;
+ overflow-x: auto;
+}
+
+.form-item {
+ display: flex;
+ width: 100%;
+ margin-bottom: 20px;
+ flex-wrap: wrap;
+ align-items: flex-start;
+}
+
+.form-item-display {
+ border: 1px solid #dddddd;
+ padding: 8px;
+ margin-bottom: 0;
+}
+
+.panel-content .form-item.form-item-display {
+ padding: 8px;
+}
+
+.form-item-wb {
+ flex-wrap: nowrap;
+ align-items: flex-end;
+}
+
+.display-title {
+ width: 100%;
+ padding-bottom: 8px;
+ border-bottom: 1px solid #e7e7e7;
+ margin-bottom: 8px;
+}
+
+.form-item-display-nb {
+ border: none;
+ padding: 0;
+}
+
+.form-item-button {
+ display: flex;
+ flex-shrink: 0;
+}
+
+.form-display-extra {
+ border-top: 1px solid #e7e7e7;
+ margin-top: 8px;
+ padding: 8px 8px 0 8px;
+ width: 100%;
+}
+
+.panel-content .form-item {
+ padding: 16px;
+ margin-bottom: 0;
+ align-items: flex-start;
+}
+
+.preview-content .form-item {
+ align-items: flex-start;
+ padding: 0 !important;
+}
+
+.preview-content .display-title {
+ padding-top: 8px;
+}
+
+.form-select-input .form-item {
+ margin-bottom: 0;
+ padding: 0;
+}
+
+.preview-shadow .form-item-half {
+ width: 50%;
+ padding-right: 16px;
+}
+
+.form-item-title {
+ width: 100%;
+ margin-bottom: 8px;
+}
+
+.form-item-picture {
+ width: 120px;
+ height: 120px;
+ margin-right: 8px;
+ border-radius: 4px;
+ overflow: hidden;
+ position: relative;
+ border: 1px solid rgb(var(--c-border-primary));
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: rgb(var(--c-default-grey-back));
+}
+
+.form-item-picture.small-picture {
+ width: 64px;
+ height: 64px;
+ flex-shrink: 0;
+}
+
+.form-item-picture .image-c {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ display: flex;
+ top: 0;
+ left: 0;
+}
+
+.form-item-picture .image-c img {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.form-item-picture.form-item-picture-single {
+ width: 100%;
+ height: 300px;
+}
+
+.form-item-picture input[type='file'] {
+ width: 100%;
+ height: 100%;
+ display: none;
+}
+
+.form-item-description,
+.form-item-alert {
+ width: 100%;
+ padding: 2px 8px;
+ font-size: .9em;
+}
+
+.form-item-description {
+ color: rgb(var(--form-description-color));
+ font-style: italic;
+}
+
+.form-item-alert {
+ color: rgb(var(--form-alert-color));
+ font-weight: 600;
+}
+
+.form-inner-comment {
+ margin: 10px 0;
+ background-color: rgb(var(--c-default-grey-back));
+ padding: 8px;
+ border-radius: 4px;
+}
+
+.form-inner-comment.success {
+ background-color: rgba(var(--toast-back-success), .2);
+}
+
+.form-inner-comment.waiting {
+ background-color: rgba(var(--toast-back-ready), .2);
+}
+
+.form-inner-comment.alert {
+ background-color: rgba(var(--toast-back-alert), .2);
+}
+
+.form-inner-comment.success-d {
+ padding: 12px;
+ width: 100%;
+ color: #fff;
+ background-color: rgba(var(--toast-back-success));
+}
+
+.form-inner-comment.waiting-d {
+ padding: 12px;
+ width: 100%;
+ color: #fff;
+ background-color: rgba(var(--toast-back-ready));
+}
+
+.form-inner-comment.alert-d {
+ padding: 12px;
+ width: 100%;
+ color: #fff;
+ background-color: rgba(var(--toast-back-alert));
+}
+
+.form-inner-comment.new-d {
+ padding: 12px;
+ width: 100%;
+ color: #fff;
+ background-color: rgba(var(--toast-back-new));
+}
+
+.waiting-d strong,
+.alert-d strong,
+.success-d strong,
+.new-d strong {
+ color: #fff;
+ text-decoration: underline;
+}
+
+.button-documents {
+ width: 100%;
+ justify-content: space-between;
+}
+
+.file-item {
+ display: flex;
+ flex-wrap: wrap;
+ border: 1px solid rgb(var(--form-input-border-color));
+ margin-bottom: 8px;
+ border-radius: 8px;
+ width: 100%;
+}
+
+.file-item-title {
+ width: 100%;
+ border-bottom: 1px solid rgb(var(--c-table-border));
+ padding: 8px;
+}
+
+.file-item-file-c {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ position: relative;
+}
+
+.only-image .ico-replace {
+ position: absolute;
+ right: 0;
+ top: 0;
+ margin: 0;
+}
+
+.file-item-file {
+ display: flex;
+ align-items: center;
+ padding: 8px;
+ width: 100%;
+}
+
+.file-item-name {
+ word-wrap: break-word;
+ overflow: hidden;
+}
+
+.file-item-file-c .ico-replace {
+ position: absolute;
+ right: 0;
+}
+
+/* tabs */
+.tabs-buttons-c {
+ display: flex;
+ margin: 32px 0;
+ border-bottom: 1px solid rgb(var(--c-border-primary));
+ width: 100%;
+ position: relative;
+ overflow: hidden;
+}
+
+.tab-button {
+ min-height: 48px;
+ background-color: rgb(var(--c-tab-back));
+ color: rgb(var(--c-tab-text));
+ padding: 12px 24px;
+ border-radius: var(--tab-border-radius);
+ cursor: pointer;
+ margin: 0 50px;
+ width: calc(100% - 100px);
+ flex-shrink: 0;
+ text-align: center;
+ transition: var(--trn-std);
+}
+
+.tab-button.tab-selected,
+.tab-button:hover {
+ color: rgb(var(--c-tab-selected-text));
+ background-color: rgb(var(--c-tab-selected-back));
+}
+
+.tabs-contents-c {
+ display: flex;
+ width: 100%;
+ overflow: hidden;
+}
+
+.tab-content {
+ width: 100%;
+ display: inline-block;
+ flex-shrink: 0;
+}
+
+.tab-animate {
+ transition-timing-function: ease-in-out;
+ transition-property: all;
+}
+
+.tab-nav-button {
+ position: absolute;
+ display: flex;
+ width: 44px;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ height: 100%;
+}
+
+.tab-nav-button-prev {
+ left: 0;
+}
+
+.tab-nav-button-prev .ico-c {
+ transform: rotate(180deg);
+}
+
+.tab-nav-button-next {
+ right: 0;
+}
+
+.tab-nav-button .ico-c {
+ width: 32px;
+ height: 32px;
+}
+
+.tab-nav-button .ico-c svg {
+ max-width: 32px;
+ max-height: 32px;
+}
+
+/* Site Management */
+.menu-list-group {
+ display: flex;
+ width: 100%;
+ flex-direction: column;
+}
+
+.menu-list-item {
+ display: flex;
+ width: 100%;
+ justify-content: space-between;
+ align-items: center;
+ padding: 4px 8px 4px 16px;
+ border: 1px solid #dfdfdf;
+ margin-bottom: 8px;
+ border-radius: 8px;
+ cursor: grab;
+}
+
+.menu-list-item.menu-list-item-page {
+ cursor: default;
+}
+
+.menu-list-item-buttons {
+ display: flex;
+}
+
+/* Dashboard */
+.dashboard-list-C {
+ display: flex;
+ width: 100%;
+ flex-direction: column;
+}
+
+.dashboard-list-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: var(--table-padding);
+ border-bottom: 1px solid rgb(var(--c-table-seperator))
+}
+
+.dashboard-list-item:hover {
+ background-color: rgb(240, 240, 240);
+}
+
+@media screen and (min-width: 768px) {
+ .section-header{
+ flex-wrap: nowrap;
+ }
+ .section-header-buttons-c.collapsable .section-header-mobile-menu {
+ display: none;
+ }
+
+ .section-header-buttons {
+ display: flex;
+ box-shadow: none;
+ top: 0;
+ min-width: inherit;
+ background-color: transparent;
+ position: relative;
+ border: none;
+ padding: 0;
+ }
+
+ .page-toast-w {
+ width: inherit;
+ max-width: 460px;
+ flex-shrink: 0;
+ }
+
+ .page-toast-item {
+ width: auto;
+ }
+
+ .section-header-search {
+ left: initial;
+ right: 100%;
+ max-width: 480px;
+ top: 100%;
+ position: absolute;
+ }
+}
+
+@media screen and (min-width: 992px) {
+ .menu-side-w .menu-sub {
+ position: absolute;
+ left: 100%;
+ }
+
+ table.table-border th,
+ table.table-border td {
+ min-width: inherit;
+ }
+
+ .menu-side-w {
+ left: 0;
+ }
+
+ .menu-side-shadow {
+ display: none;
+ pointer-events: none;
+ }
+
+ main {
+ padding: calc(var(--sz-header) + var(--pd-main)) var(--pd-main) var(--pd-main) calc(var(--sz-side-menu) + var(--pd-main));
+ flex-wrap: wrap;
+ }
+
+ .section-header {
+ padding: var(--section-padding);
+ }
+
+ .main-page main section {
+ width: 49%;
+ }
+
+ .panel-wrapper {
+ max-width: 480px;
+ }
+
+ .panel-wrapper.panel-wide {
+ max-width: 800px;
+ }
+
+ .panel-wrapper.panel-full {
+ width: 100%;
+ max-width: calc(100% - 200px);
+ }
+
+ .panel-wrapper.panel-right.showme {
+ left: calc(100% - 480px);
+ }
+
+ .panel-wrapper.panel-right.panel-wide.showme {
+ left: calc(100% - 800px);
+ }
+
+ .panel-wrapper.panel-right.panel-full.showme {
+ left: 200px;
+ }
+
+ .form-item-half {
+ width: 50%;
+ padding-right: 16px;
+ }
+
+ .table-cell-flx-row .form-item {
+ margin-bottom: 0;
+ }
+}
+
+@media screen and (min-width: 1025px) {
+ .tabs-buttons-c {
+ overflow: visible;
+ }
+
+ .tab-button {
+ width: auto;
+ margin-right: 4px;
+ margin-left: 0;
+ }
+
+ .tab-nav-button {
+ display: none;
+ }
+}
+
+@media screen and (min-width: 1200px) {
+ .menu-sub-mobile-fix {
+ width: initial;
+ min-width: 480px;
+ right: 0;
+ }
+
+ .form-content {
+ column-gap: 1%;
+ column-count: 2;
+ }
+
+ .form-inner-content-left {
+ width: 60%;
+ }
+
+ .form-inner-content-right {
+ width: 39%;
+ margin-left: auto;
+ }
+}
+
+@media screen and (min-width: 1400px) {
+ .main-page main section {
+ width: 24%;
+ }
+}
+
+@media screen and (min-width: 1600px) {
+ .section-header h1 {
+ font-size: 1.25em;
+ }
+}
+
+@media print {
+
+ html,
+ body {
+ max-width: 100%;
+ }
+
+ header,
+ footer,
+ .breadcrumb-wrapper,
+ .tabs-buttons-c,
+ .menu-side-w,
+ .section-header-buttons-c,
+ .ico-section-header-btn,
+ .form-part-title-buttons,
+ .ico-sort,
+ .list-paging-wrapper,
+ .panel-wrapper {
+ display: none !important;
+ }
+
+ main {
+ padding: var(--pd-main) !important;
+ max-width: 100vw !important;
+ }
+
+ .form-item.form-item-half {
+ width: 50% !important;
+ }
+
+ .tab-content,
+ .table-list {
+ width: 100% !important;
+ }
+
+ .list-wrapper {
+ overflow: visible;
+ overflow-x: visible;
+ width: 100%;
+ }
+
+ .print .main-w {
+ display: none;
+ }
+
+ .print-c {
+ width: 100%;
+ z-index: -1;
+ font-size: 16px;
+ }
+
+ .print-c * {
+ font-size: 12pt;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/style/fonts.css b/src/assets/style/fonts.css
new file mode 100644
index 0000000..7b40f1a
--- /dev/null
+++ b/src/assets/style/fonts.css
@@ -0,0 +1,56 @@
+/* fonts */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/roboto-400.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 500;
+ src: url(../fonts/roboto-500.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/roboto-700.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 900;
+ src: url(../fonts/roboto-900.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 400;
+ src: url(../fonts/roboto-400-italic.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 500;
+ src: url(../fonts/roboto-500-italic.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 700;
+ src: url(../fonts/roboto-700-italic.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 900;
+ src: url(../fonts/roboto-900-italic.woff2) format('woff2');
+}
\ No newline at end of file
diff --git a/src/components/DashPiyangoListe.vue b/src/components/DashPiyangoListe.vue
new file mode 100644
index 0000000..e11a1ba
--- /dev/null
+++ b/src/components/DashPiyangoListe.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+ {{ row.baslik }}
+
+
+ {{
+ dateStore.dateFormat({
+ date: row[dateKey],
+ pattern: 'yy-mm-dd-t'
+ })
+ }}
+
+
+ {{ DateCalculate(row[dateKey]) }}
+
+
+
+
+
+ {{ row.baslik }}
+
+
+ {{
+ dateStore.dateFormat({
+ date: row[dateKey],
+ pattern: 'yy-mm-dd-t'
+ })
+ }}
+
+
+
{{ DateCalculate(row[dateKey]) }}
+
+
+
+
+
+
+
+
diff --git a/src/components/Loading.vue b/src/components/Loading.vue
new file mode 100644
index 0000000..e124736
--- /dev/null
+++ b/src/components/Loading.vue
@@ -0,0 +1,48 @@
+
+
+
Yükleniyor...Lütfen bekleyiniz
+
+
+
+
+
diff --git a/src/components/NavItem.vue b/src/components/NavItem.vue
new file mode 100644
index 0000000..a4d6322
--- /dev/null
+++ b/src/components/NavItem.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+ {{
+ title !== undefined
+ ? title
+ : itemData !== undefined && itemData.title !== undefined
+ ? itemData.title
+ : ''
+ }}
+
+
+
+
+
+
+ {{
+ title !== undefined
+ ? title
+ : itemData !== undefined && itemData.title !== undefined
+ ? itemData.title
+ : ''
+ }}
+
+
+
+
diff --git a/src/components/NavSide.vue b/src/components/NavSide.vue
new file mode 100644
index 0000000..51d33ac
--- /dev/null
+++ b/src/components/NavSide.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/src/components/PanelWrapper.vue b/src/components/PanelWrapper.vue
new file mode 100644
index 0000000..31b9194
--- /dev/null
+++ b/src/components/PanelWrapper.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
diff --git a/src/components/global/Breadcrumb.vue b/src/components/global/Breadcrumb.vue
new file mode 100644
index 0000000..167db52
--- /dev/null
+++ b/src/components/global/Breadcrumb.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+ {{ currentPageText }}
+
+
+
+
diff --git a/src/components/global/DataTable.vue b/src/components/global/DataTable.vue
new file mode 100644
index 0000000..fd7ef8f
--- /dev/null
+++ b/src/components/global/DataTable.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+ Sıra No
+
+
+
+
+ {{ headCell.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Veri bulunamadı
+
+
+
+
+ {{
+ showPagination && localPagination.pageNumber !== undefined
+ ? (Number(localPagination.pageNumber) - 1) *
+ Number(localPagination.pageSize) +
+ i +
+ 1
+ : i + 1
+ }}
+
+
+
+
+
+ {{
+ dataCell.compute !== undefined
+ ? dataCell.compute(dataRow)
+ : dataRow[dataCell.name]
+ }}
+
+
+
+
+
+
+
+
+
+ TOPLAM:
+
+
+
+ {{
+ val.price
+ ? globalStore.toTrLocale(localTotalValues[val.name])
+ : localTotalValues[val.name]
+ }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/DataTablePagination.vue b/src/components/global/DataTablePagination.vue
new file mode 100644
index 0000000..2228571
--- /dev/null
+++ b/src/components/global/DataTablePagination.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
diff --git a/src/components/global/DialogItem.vue b/src/components/global/DialogItem.vue
new file mode 100644
index 0000000..acc96a1
--- /dev/null
+++ b/src/components/global/DialogItem.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+ {{ localData.content }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/Dialogs.vue b/src/components/global/Dialogs.vue
new file mode 100644
index 0000000..27e6a36
--- /dev/null
+++ b/src/components/global/Dialogs.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/global/FileListItem.vue b/src/components/global/FileListItem.vue
new file mode 100644
index 0000000..b603176
--- /dev/null
+++ b/src/components/global/FileListItem.vue
@@ -0,0 +1,103 @@
+
+
+
+
+ {{ localData[title as string] }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/FormCheckbox.vue b/src/components/global/FormCheckbox.vue
new file mode 100644
index 0000000..c93c746
--- /dev/null
+++ b/src/components/global/FormCheckbox.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+ {{ title }}
+ *
+
+
+
+
+
+ {{ item[listText!] }}
+
+
+
+
+
+
+
+
+
+ {{ label }}
+
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
diff --git a/src/components/global/FormDate.vue b/src/components/global/FormDate.vue
new file mode 100644
index 0000000..5b16332
--- /dev/null
+++ b/src/components/global/FormDate.vue
@@ -0,0 +1,253 @@
+
+
+
+ {{ title }}
+
+
+
+
+ {{ label }}
+ *
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
+
+
diff --git a/src/components/global/FormInput.vue b/src/components/global/FormInput.vue
new file mode 100644
index 0000000..f941714
--- /dev/null
+++ b/src/components/global/FormInput.vue
@@ -0,0 +1,153 @@
+
+
+
+ {{ title }}
+
+
+
+
+ {{ label }}
+ *
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
+
+
diff --git a/src/components/global/FormQuill.vue b/src/components/global/FormQuill.vue
new file mode 100644
index 0000000..ed4bac2
--- /dev/null
+++ b/src/components/global/FormQuill.vue
@@ -0,0 +1,210 @@
+
+
+
+ {{ title }}
+
+
+
+
+ {{ label }}
+ *
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
diff --git a/src/components/global/FormRadio.vue b/src/components/global/FormRadio.vue
new file mode 100644
index 0000000..c20c5c2
--- /dev/null
+++ b/src/components/global/FormRadio.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+ {{ title }}
+ *
+
+
+
+
+
+ {{ item[listText!] }}
+
+
+
+
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
diff --git a/src/components/global/FormSelect.vue b/src/components/global/FormSelect.vue
new file mode 100644
index 0000000..0cdf299
--- /dev/null
+++ b/src/components/global/FormSelect.vue
@@ -0,0 +1,393 @@
+
+
+
+ {{ title }}
+
+
+
+
+ {{ label }}
+ *
+
+
+
+ {{ activatorText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
diff --git a/src/components/global/FormSummer.vue b/src/components/global/FormSummer.vue
new file mode 100644
index 0000000..513de5c
--- /dev/null
+++ b/src/components/global/FormSummer.vue
@@ -0,0 +1,185 @@
+
+
+
+ {{ title }}
+
+
+
+ {{ label }}
+ *
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
+
+
diff --git a/src/components/global/FormTextarea.vue b/src/components/global/FormTextarea.vue
new file mode 100644
index 0000000..ac08853
--- /dev/null
+++ b/src/components/global/FormTextarea.vue
@@ -0,0 +1,133 @@
+
+
+
+ {{ title }}
+
+
+
+
+ {{ label }}
+ *
+
+
+
+ {{ InvalidMessages }}
+
+
+ {{ description }}
+
+
+
+
+
+
diff --git a/src/components/global/IconButton.vue b/src/components/global/IconButton.vue
new file mode 100644
index 0000000..0ce8cc0
--- /dev/null
+++ b/src/components/global/IconButton.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/ListTableContent.vue b/src/components/global/ListTableContent.vue
new file mode 100644
index 0000000..c75b566
--- /dev/null
+++ b/src/components/global/ListTableContent.vue
@@ -0,0 +1,437 @@
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ formTitle }}
+
+
+
+
+
Filtreler ve Arama
+
+
+
+ Arama:
+
+ {{ localQuery }}
+
+
+
+
+
+
+ {{ filter.title }}:
+
+ {{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Filtrele
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/PanelExport.vue b/src/components/global/PanelExport.vue
new file mode 100644
index 0000000..4444925
--- /dev/null
+++ b/src/components/global/PanelExport.vue
@@ -0,0 +1,54 @@
+
+
+
+
diff --git a/src/components/global/PanelFilter.vue b/src/components/global/PanelFilter.vue
new file mode 100644
index 0000000..a9fac63
--- /dev/null
+++ b/src/components/global/PanelFilter.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/Tabs.vue b/src/components/global/Tabs.vue
new file mode 100644
index 0000000..46081da
--- /dev/null
+++ b/src/components/global/Tabs.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
diff --git a/src/components/global/ToastItem.vue b/src/components/global/ToastItem.vue
new file mode 100644
index 0000000..cf82869
--- /dev/null
+++ b/src/components/global/ToastItem.vue
@@ -0,0 +1,40 @@
+
+
+
+ {{ text }}
+
+
+
diff --git a/src/components/global/Toasts.vue b/src/components/global/Toasts.vue
new file mode 100644
index 0000000..0ff678c
--- /dev/null
+++ b/src/components/global/Toasts.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/dialogStore.ts b/src/components/global/dialogStore.ts
new file mode 100644
index 0000000..ab09cad
--- /dev/null
+++ b/src/components/global/dialogStore.ts
@@ -0,0 +1,22 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+
+export const useDialogStore = defineStore('dialogStore', () => {
+ const dialogs = reactive>({})
+
+ const CreateDialog = (data: Record) => {
+ const rnd: number = Number(Math.floor(Math.random() * 10000000000))
+
+ dialogs[rnd] = {} as Record
+ dialogs[rnd].id = rnd
+ dialogs[rnd].data = data
+ }
+ const CloseDialog = (id: number) => {
+ delete dialogs[id]
+ }
+ return {
+ dialogs,
+ CreateDialog,
+ CloseDialog
+ }
+})
diff --git a/src/components/global/index.ts b/src/components/global/index.ts
new file mode 100644
index 0000000..1552475
--- /dev/null
+++ b/src/components/global/index.ts
@@ -0,0 +1,40 @@
+import DataTable from './DataTable.vue'
+import DataTablePagination from './DataTablePagination.vue'
+import ListTableContent from './ListTableContent.vue'
+import FormInput from './FormInput.vue'
+import FormDate from './FormDate.vue'
+import FormFile from './FormFile.vue'
+import FormTextarea from './FormTextarea.vue'
+import FormQuill from './FormQuill.vue'
+import FormSummer from './FormSummer.vue'
+import FormSelect from './FormSelect.vue'
+import FormRadio from './FormRadio.vue'
+import FormCheckbox from './FormCheckbox.vue'
+import Tabs from './Tabs.vue'
+import IconButton from './IconButton.vue'
+import Breadcrumb from './Breadcrumb.vue'
+import FileListItem from './FileListItem.vue'
+import FormDisplay from './FormDisplay.vue'
+import Toasts from './Toasts.vue'
+import Dialogs from './Dialogs.vue'
+export {
+ DataTable,
+ DataTablePagination,
+ ListTableContent,
+ FormInput,
+ FormDate,
+ FormFile,
+ FormTextarea,
+ FormQuill,
+ FormSummer,
+ FormSelect,
+ FormRadio,
+ FormCheckbox,
+ Tabs,
+ IconButton,
+ Breadcrumb,
+ FileListItem,
+ FormDisplay,
+ Toasts,
+ Dialogs
+}
diff --git a/src/components/global/toastStore.ts b/src/components/global/toastStore.ts
new file mode 100644
index 0000000..aadd8db
--- /dev/null
+++ b/src/components/global/toastStore.ts
@@ -0,0 +1,23 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+
+export const useToastStore = defineStore('toastStore', () => {
+ const toastTimeout = ref(5000)
+ const toasts = reactive>({})
+
+ const AddToast = (toast: string, type: string, timeout?: number) => {
+ const iTimeout: number = timeout || 0
+ const rnd: number = Number(Math.floor(Math.random() * 10000000000))
+
+ toasts[rnd] = {} as Record
+ toasts[rnd].text = toast
+ toasts[rnd].timeout = iTimeout
+ toasts[rnd].id = rnd
+ toasts[rnd].type = type
+ }
+ return {
+ toastTimeout,
+ toasts,
+ AddToast
+ }
+})
diff --git a/src/layouts/AdminLayout.vue b/src/layouts/AdminLayout.vue
new file mode 100644
index 0000000..f5af408
--- /dev/null
+++ b/src/layouts/AdminLayout.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layouts/GuestLayout.vue b/src/layouts/GuestLayout.vue
new file mode 100644
index 0000000..0e46841
--- /dev/null
+++ b/src/layouts/GuestLayout.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/layouts/admin-inc/Footer.vue b/src/layouts/admin-inc/Footer.vue
new file mode 100644
index 0000000..33d22e6
--- /dev/null
+++ b/src/layouts/admin-inc/Footer.vue
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/src/layouts/admin-inc/Header.vue b/src/layouts/admin-inc/Header.vue
new file mode 100644
index 0000000..5f2e143
--- /dev/null
+++ b/src/layouts/admin-inc/Header.vue
@@ -0,0 +1,41 @@
+
+
+
+
diff --git a/src/layouts/admin-inc/ProfileMenu.vue b/src/layouts/admin-inc/ProfileMenu.vue
new file mode 100644
index 0000000..a488bb0
--- /dev/null
+++ b/src/layouts/admin-inc/ProfileMenu.vue
@@ -0,0 +1,103 @@
+
+
+
+
diff --git a/src/layouts/admin-inc/SideMenu.vue b/src/layouts/admin-inc/SideMenu.vue
new file mode 100644
index 0000000..aab5aa8
--- /dev/null
+++ b/src/layouts/admin-inc/SideMenu.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..4f2ce7a
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,40 @@
+import '@/assets/style/default.css'
+import '@/assets/style/fonts.css'
+
+import axios from '@/init/axios-init'
+
+import { createApp } from 'vue'
+import { createPinia } from 'pinia'
+import * as components from '@/components/global/'
+import { PDFPlugin } from 'vue3-pdfmake'
+
+import App from './App.vue'
+import router from './router'
+import $ from 'jquery'
+
+declare global {
+ interface JQuery {
+ summernote(options?: any): JQuery;
+ summernote(method: string, ...params: any[]): JQuery;
+ }
+}
+
+window.$ = $
+window.jQuery = $
+
+const app = createApp(App)
+
+
+const axiosInstance = axios.create({
+ withCredentials: true
+})
+app.config.globalProperties.$axios = { ...axiosInstance }
+
+for (const key in components) {
+ const component = components[key as keyof typeof components]
+ app.component(key, component)
+}
+app.use(createPinia())
+app.use(PDFPlugin)
+app.use(router)
+app.mount('#app')
diff --git a/src/module/Profil/routes/index.ts b/src/module/Profil/routes/index.ts
new file mode 100644
index 0000000..d1f92f6
--- /dev/null
+++ b/src/module/Profil/routes/index.ts
@@ -0,0 +1,3 @@
+import Profil from './profil'
+
+export default [Profil]
diff --git a/src/module/Profil/routes/profil.ts b/src/module/Profil/routes/profil.ts
new file mode 100644
index 0000000..5ecce36
--- /dev/null
+++ b/src/module/Profil/routes/profil.ts
@@ -0,0 +1,10 @@
+import UyeProfil from '@/module/uyeler/views/UyeProfil.vue'
+
+export default {
+ path: '/profil',
+ name: 'Profil',
+ component: UyeProfil,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/auth/routes/forgot-password.ts b/src/module/auth/routes/forgot-password.ts
new file mode 100644
index 0000000..3d455dd
--- /dev/null
+++ b/src/module/auth/routes/forgot-password.ts
@@ -0,0 +1,10 @@
+import ForgotPassword from '@/module/auth/views/ForgotPassword.vue'
+
+export default {
+ path: '/forgot-password',
+ name: 'ForgotPassword',
+ component: ForgotPassword,
+ meta: {
+ authpage: true
+ }
+}
diff --git a/src/module/auth/routes/index.ts b/src/module/auth/routes/index.ts
new file mode 100644
index 0000000..cd19939
--- /dev/null
+++ b/src/module/auth/routes/index.ts
@@ -0,0 +1,11 @@
+import Login from "@/module/auth/routes/login";
+import Register from "@/module/auth/routes/register";
+import ForgotPassword from "@/module/auth/routes/forgot-password";
+
+export default [
+ Login,
+ Register,
+ ForgotPassword
+]
+
+
diff --git a/src/module/auth/routes/login.ts b/src/module/auth/routes/login.ts
new file mode 100644
index 0000000..345cb38
--- /dev/null
+++ b/src/module/auth/routes/login.ts
@@ -0,0 +1,10 @@
+import Login from '@/module/auth/views/Login.vue'
+
+export default {
+ path: '/login',
+ name: 'Login',
+ component: Login,
+ meta: {
+ authpage: true
+ }
+}
diff --git a/src/module/auth/routes/register.ts b/src/module/auth/routes/register.ts
new file mode 100644
index 0000000..4521657
--- /dev/null
+++ b/src/module/auth/routes/register.ts
@@ -0,0 +1,10 @@
+import Register from '@/module/auth/views/Register.vue'
+
+export default {
+ path: '/register',
+ name: 'Register',
+ component: Register,
+ meta: {
+ authpage: true
+ }
+}
diff --git a/src/module/auth/services/authRoleService.ts b/src/module/auth/services/authRoleService.ts
new file mode 100644
index 0000000..e347e96
--- /dev/null
+++ b/src/module/auth/services/authRoleService.ts
@@ -0,0 +1,17 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useAuthStore } from '../stores/authStore'
+
+export const useAppUserService = defineStore('appUserService', () => {
+ const dataStore = useDataStore()
+ const authStore = useAuthStore()
+
+ const GetAAuthRoleList = async () => {
+ if (authStore.rolesList.length === 0) {
+ let data = await dataStore.dataGet('Auth/rolelistesi')
+ authStore.rolesList = data
+ }
+ }
+
+ return {GetAAuthRoleList}
+})
diff --git a/src/module/auth/services/authService.ts b/src/module/auth/services/authService.ts
new file mode 100644
index 0000000..0d8fe98
--- /dev/null
+++ b/src/module/auth/services/authService.ts
@@ -0,0 +1,17 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useAuthStore } from '../stores/authStore'
+
+export const useAppService = defineStore('appService', () => {
+ const dataStore = useDataStore()
+ const authStore = useAuthStore()
+
+ const GetAAuthRoleList = async () => {
+ if (authStore.rolesList.length === 0) {
+ let data = await dataStore.dataGet('Auth/rolelistesi')
+ authStore.rolesList = data
+ }
+ }
+
+ return {GetAAuthRoleList}
+})
diff --git a/src/module/auth/stores/authStore.ts b/src/module/auth/stores/authStore.ts
new file mode 100644
index 0000000..1dfaa24
--- /dev/null
+++ b/src/module/auth/stores/authStore.ts
@@ -0,0 +1,12 @@
+import { defineStore } from 'pinia'
+import { ref,reactive } from 'vue'
+
+export const useAuthStore = defineStore('authStore', () => {
+ const loginData = reactive>({ username: '', password: '' })
+ const safeLoginData = reactive>({})
+ const rolesList = ref[]>([])
+
+ Object.assign(safeLoginData, loginData)
+
+ return { loginData, safeLoginData, rolesList }
+})
diff --git a/src/module/auth/stores/authValidationStore.ts b/src/module/auth/stores/authValidationStore.ts
new file mode 100644
index 0000000..ba157c7
--- /dev/null
+++ b/src/module/auth/stores/authValidationStore.ts
@@ -0,0 +1,46 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useAuthStore } from './authStore'
+import { useValidationStore } from '@/stores/validationStore'
+
+export const useAuthValidationStore = defineStore('authValidationStore', () => {
+ const authStore = useAuthStore()
+ const validationStore = useValidationStore()
+
+ const isFormValid = ref(true)
+ const isLoginMessage = ref(false)
+ const loginMessageType = ref('success')
+ const loginMessage = ref('')
+ const registerMessage = ref('')
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ authStore.loginData,
+ invalidTexts,
+ 'username',
+ 'Kullanıcı adı alanını doldurmalısınız. Örn: isim@alanadi.td'
+ )
+ validationStore.IsFieldEmpty(
+ authStore.loginData,
+ invalidTexts,
+ 'password',
+ 'Lütfen şifrenizi giriniz.'
+ )
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ isFormValid,
+ invalidTexts,
+ isLoginMessage,
+ loginMessageType,
+ loginMessage,
+ registerMessage,
+ FormCheck
+ }
+})
diff --git a/src/module/auth/views/ForgotPassword.vue b/src/module/auth/views/ForgotPassword.vue
new file mode 100644
index 0000000..9a6cec7
--- /dev/null
+++ b/src/module/auth/views/ForgotPassword.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
diff --git a/src/module/auth/views/Login.vue b/src/module/auth/views/Login.vue
new file mode 100644
index 0000000..c6d35b0
--- /dev/null
+++ b/src/module/auth/views/Login.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+ Şifremi Unuttum
+ Kaydol
+
+
+
+
+
+
diff --git a/src/module/auth/views/Register.vue b/src/module/auth/views/Register.vue
new file mode 100644
index 0000000..3164495
--- /dev/null
+++ b/src/module/auth/views/Register.vue
@@ -0,0 +1,427 @@
+
+
+
+
+
+
diff --git a/src/module/ayarlar/routes/index.ts b/src/module/ayarlar/routes/index.ts
new file mode 100644
index 0000000..0639fcb
--- /dev/null
+++ b/src/module/ayarlar/routes/index.ts
@@ -0,0 +1,5 @@
+import settings from "@/module/ayarlar/routes/settings";
+
+export default [
+ settings
+]
\ No newline at end of file
diff --git a/src/module/ayarlar/routes/settings.ts b/src/module/ayarlar/routes/settings.ts
new file mode 100644
index 0000000..a805318
--- /dev/null
+++ b/src/module/ayarlar/routes/settings.ts
@@ -0,0 +1,10 @@
+import Settings from "@/module/ayarlar/views/Settings.vue"
+
+export default {
+ path: "/settings",
+ name: 'Settings',
+ component: Settings,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/ayarlar/service/index.ts b/src/module/ayarlar/service/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/module/ayarlar/stores/index.ts b/src/module/ayarlar/stores/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/module/ayarlar/views/Settings.vue b/src/module/ayarlar/views/Settings.vue
new file mode 100644
index 0000000..0127c22
--- /dev/null
+++ b/src/module/ayarlar/views/Settings.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/module/cekilisler/components/TabPiyangoBilgileri.vue b/src/module/cekilisler/components/TabPiyangoBilgileri.vue
new file mode 100644
index 0000000..a550505
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoBilgileri.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/TabPiyangoBilgileriDisplay.vue b/src/module/cekilisler/components/TabPiyangoBilgileriDisplay.vue
new file mode 100644
index 0000000..afd51e3
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoBilgileriDisplay.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/TabPiyangoItiraz.vue b/src/module/cekilisler/components/TabPiyangoItiraz.vue
new file mode 100644
index 0000000..40e144c
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoItiraz.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+ {{ piyangoItirazStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/cekilisler/components/TabPiyangoLoglari.vue b/src/module/cekilisler/components/TabPiyangoLoglari.vue
new file mode 100644
index 0000000..e0373a7
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoLoglari.vue
@@ -0,0 +1,40 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/TabPiyangoOnayDurumu.vue b/src/module/cekilisler/components/TabPiyangoOnayDurumu.vue
new file mode 100644
index 0000000..cb13c72
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoOnayDurumu.vue
@@ -0,0 +1,22 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/TabPiyangoOnayDurumuUser.vue b/src/module/cekilisler/components/TabPiyangoOnayDurumuUser.vue
new file mode 100644
index 0000000..86a94db
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoOnayDurumuUser.vue
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/TabPiyangoYetkilendirme.vue b/src/module/cekilisler/components/TabPiyangoYetkilendirme.vue
new file mode 100644
index 0000000..095f468
--- /dev/null
+++ b/src/module/cekilisler/components/TabPiyangoYetkilendirme.vue
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/content/LotteryStates.vue b/src/module/cekilisler/components/content/LotteryStates.vue
new file mode 100644
index 0000000..5e79286
--- /dev/null
+++ b/src/module/cekilisler/components/content/LotteryStates.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/content/PiyangoBilgileriDisplayContent.vue b/src/module/cekilisler/components/content/PiyangoBilgileriDisplayContent.vue
new file mode 100644
index 0000000..238ca25
--- /dev/null
+++ b/src/module/cekilisler/components/content/PiyangoBilgileriDisplayContent.vue
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Aracı Üyeyi Kontrol Et
+
+
+
+
+
+
+ Üyeyi Kontrol Et
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoAraciUyeBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoAraciUyeBilgileriDisplay.vue
new file mode 100644
index 0000000..5823bb6
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoAraciUyeBilgileriDisplay.vue
@@ -0,0 +1,31 @@
+
+
+
+
Aracı Firma Bilgileri
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoBilgileriDisplay.vue
new file mode 100644
index 0000000..a9fc3d1
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoBilgileriDisplay.vue
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+ PDF İndir
+ Yazdır
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoDocumentsDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoDocumentsDisplay.vue
new file mode 100644
index 0000000..9d5549e
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoDocumentsDisplay.vue
@@ -0,0 +1,40 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoDuzenleyenBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoDuzenleyenBilgileriDisplay.vue
new file mode 100644
index 0000000..1769abf
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoDuzenleyenBilgileriDisplay.vue
@@ -0,0 +1,94 @@
+
+
+
+
Piyangoyu Düzenleyen Bilgileri
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoIkramiyeListesiDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoIkramiyeListesiDisplay.vue
new file mode 100644
index 0000000..6dbb6f8
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoIkramiyeListesiDisplay.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoIrtibatBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoIrtibatBilgileriDisplay.vue
new file mode 100644
index 0000000..200f615
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoIrtibatBilgileriDisplay.vue
@@ -0,0 +1,54 @@
+
+
+
+
İrtibat Bilgileri
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoMecraDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoMecraDisplay.vue
new file mode 100644
index 0000000..b5d321b
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoMecraDisplay.vue
@@ -0,0 +1,29 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoPicturesDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoPicturesDisplay.vue
new file mode 100644
index 0000000..5efe4e7
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoPicturesDisplay.vue
@@ -0,0 +1,39 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoTeminatDurumuDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoTeminatDurumuDisplay.vue
new file mode 100644
index 0000000..cbfee32
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoTeminatDurumuDisplay.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/FormPiyangoYardimAmacliDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoYardimAmacliDisplay.vue
new file mode 100644
index 0000000..a0cc28a
--- /dev/null
+++ b/src/module/cekilisler/components/display/FormPiyangoYardimAmacliDisplay.vue
@@ -0,0 +1,127 @@
+
+
+
+
Yardım Amaçlı Piyango Bilet Bilgileri
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Başlangıç Numarası
+
+
+
+
+ Bitiş Numarası
+
+
+
+
+ Basılacak Adet
+
+
+
+
+
+
+
+ {{ rakam.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+ Toplam Basılacak Bilet:
+ {{ globalStore.toTrLocale(piyangoYardimAmacliStore.toplamBilet) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/PiyangoOnizlemeDisplay.vue b/src/module/cekilisler/components/display/PiyangoOnizlemeDisplay.vue
new file mode 100644
index 0000000..7752648
--- /dev/null
+++ b/src/module/cekilisler/components/display/PiyangoOnizlemeDisplay.vue
@@ -0,0 +1,705 @@
+
+
+ MİLLİ PİYANGO İDARESİ GENEL MÜDÜRLÜĞÜ
+
+ Bahisler ve Oyunlar Dairesi Başkanlığına
+
+
+
+ Şirketimizce/Kuruluşumuzca
+ {{ piyangoStore.lotteryData.amacpiyango }}
+ düzenlemek üzere, aşağıda belirtilen koşullarda piyango düzenlemek üzere gerekli iznin
+ verilmesi hususunda bilgilerinizi ve gereğini arz ederiz.
+
+
+
+
+ PİYANGO İLE İLGİLİ BİLGİLER
+
+
+
+
+
+
+ 1- Piyangoyu Düzenleyenin
+
+
+
+
+
+
+
+
+
+
+
+ Adı/Soyadı:
+ {{
+ piyangoStore.duzenleyenData.unvan ||
+ piyangoStore.duzenleyenData.gercekAdi +
+ ' ' +
+ piyangoStore.duzenleyenData.gercekSoyadi
+ }}
+
+
+
+
+ Ticari Ünvanı:
+ {{
+ piyangoStore.duzenleyenData.unvan ||
+ piyangoStore.duzenleyenData.gercekTicariUnvan
+ }}
+
+
+
+
+
+
+ Ünvanı:
+ {{
+ piyangoStore.duzenleyenData.unvan ||
+ piyangoStore.duzenleyenData.tuzelUnvan
+ }}
+
+
+
+
+
+
+
+ Ünvanı:
+ {{
+ piyangoStore.duzenleyenData.unvan ||
+ piyangoStore.duzenleyenData.dernekUnvan
+ }}
+
+
+
+
+
+
+
+ Ünvanı:
+ {{
+ piyangoStore.duzenleyenData.unvan || piyangoStore.duzenleyenData.kamuUnvan
+ }}
+
+
+
+
+
+
+ Adresi:
+ {{ piyangoStore.duzenleyenData.adres }}
+
+
+
+
+
+
+ Bağlı Bulunduğu Oda Kayıt No/ Ticaret Sicil No:
+ {{ piyangoStore.duzenleyenData.gercekOdaKayitNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.gercekVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.gercekVergiNo }}
+
+
+
+
+ TCKN:
+ {{ piyangoStore.duzenleyenData.gercekTCKN }}
+
+
+
+
+
+
+
+ Ticaret Sicil No:
+ {{ piyangoStore.duzenleyenData.tuzelSicilNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.tuzelVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.tuzelVergiNo }}
+
+
+
+
+
+
+
+ Sicil No:
+ {{ piyangoStore.duzenleyenData.dernekSicilNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.dernekVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.dernekVergiNo }}
+
+
+
+
+
+
+ Sicil No:
+ {{ piyangoStore.duzenleyenData.kamuSicilNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.kamuVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.kamuVergiNo }}
+
+
+
+
+
+
+ İrtibat Kurulacak Kişi Adı Soyadı:
+ {{ customerIrtibatStore.customerIrtibatForm.firstName }}
+ {{ customerIrtibatStore.customerIrtibatForm.lastName }}
+
+
+
+
+ İrtibat Telefon Numarası:
+ {{ customerIrtibatStore.customerIrtibatForm.phone }}
+
+
+
+
+
+
+
+
+
+
+
+ Piyangoyu Yürütenin:
+
+
+
+
+
+
+
+
+
+ Ünvanı:
+ {{ piyangoStore.araciUyeData.sirketUnvan }}
+
+
+
+
+ Adresi:
+ {{ piyangoStore.araciUyeData.adres }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.araciUyeData.sirketVergiDairesi }} /
+ {{ piyangoStore.araciUyeData.sirketVergiNo }}
+
+
+
+
+ Ticaret Sicil No:
+ {{ piyangoStore.araciUyeData.sirketSicilNo }}
+
+
+
+
+
+
+
+
+
+
+
+ 2- Kampanyanın:
+
+
+
+
+
+
+
+
+
+ Kampanya Başlangıç Tarihi ve Saati:
+
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.baslangicTarihi,
+ pattern: 'dd-mm-yy-t'
+ })
+ }}
+
+
+ Kampanya Bitiş Tarihi ve Saati:
+
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.bitisTarihi,
+ pattern: 'dd-mm-yy-t'
+ })
+ }}
+
+
+
+
+ Kapsadığı Yerler:
+ {{
+ piyangoStore.lotteryData.kampsamIlStrList.length ===
+ globalDataStore.ilList.length
+ ? 'Türkiye Geneli'
+ : piyangoStore.lotterySelectedProvience
+ }}
+
+
+
+
+
+
+
+
+
+
+ 3-Çekilişe katılma şekil ve şartları:
+
+
+
+
+
+
+
+
+
+
+ {{ piyangoStore.lotteryData.cekilisSartveSekilleri }}
+
+
+
+
+ Katılımcı Listesinin İçeriği ve Hazırlanma Şekli:
+ {{ piyangoStore.lotteryData.katilimListesi }}
+
+
+
+
+
+
+
+
+
+
+ 4-Çekilişin;
+
+
+
+
+
+
+
+
+
+
+ Tarihi ve saati:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.cekilisTarihi,
+ pattern: 'dd-mm-yy-t'
+ })
+ }}
+
+
+
+
+ Açık adresi:
+ {{
+ piyangoStore.lotteryData.adres +
+ ' ' +
+ piyangoStore.lotteryData.il +
+ ' ' +
+ piyangoStore.lotteryData.ilce
+ }}
+
+
+
+
+ Ne şekilde yapılacağı:
+ {{ piyangoStore.lotteryData.cekilisYontemi }}
+
+
+ {{ txt }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5-Çekiliş sonuçlarının ilan edileceği gazetenin:
+
+
+
+
+
+
+
+
+
+
+ Adı:
+ {{ piyangoStore.lotteryData.ilanEdilecekGazete }}
+
+
+
+
+ Tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ilantarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+
+ Ayrıca, çekiliş sonuçları
+
+
+ {{ mecra.mecraAdi
+ }}{{ i !== piyangoMecraStore.piyangoAllMecraData.length - 1 ? ', ' : '' }}
+
+
+ {{
+ piyangoMecraStore.piyangoAllMecraData.length > 1
+ ? 'mecralarında'
+ : 'mecrasında'
+ }}
+ ilan edilecektir.
+
+
+
+
+ Çekilişten sonra asil ve yedek talihlilerin adreslerine aynı anda taahhütlü
+ posta kanalıyla tebligat yapılacaktır.
+
+
+
+
+
+
+
+
+
+ 6-Asil talihlilerin son başvuru tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+ Yedek talihlilerin son başvuru tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.yedekSonBasvuruTarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+ İkramiyelerin son teslim edilme/kullanma tarihleri:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+
+
+
+
+
+
+ 7-Diğer hususlar:
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ txt }}
+
+
+
+
+
+ {{ txt }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 8-Piyangoya konu ikramiyeler:
+
+
+
+
+
+
+
+
+
+ Sıra No
+ Cinsi, Markası, Modeli
+ Birim Değeri (KDV+ÖTV Dahil)
+
+ Asil Talihli Adedi
+
+ Toplam Değer
+ Yedek Talihli Adedi
+
+
+
+ {{ i + 1 }}
+ {{ `${item.cinsi}, ${item.marka}, ${item.model}` }}
+
+ {{
+ item.paraBirimi !== null
+ ? `${globalStore.toTrLocale(item.birimFiyat)} ${
+ item.paraBirimi.paraBirimiSembol
+ }`
+ : globalStore.toTrLocale(item.birimFiyat)
+ }}
+
+ {{ item.asilTalihliAdedi }}
+
+ {{
+ item.paraBirimi !== null
+ ? `${globalStore.toTrLocale(item.toplamDeger)} ${
+ item.paraBirimi.paraBirimiSembol
+ }`
+ : globalStore.toTrLocale(item.toplamDeger)
+ }}
+
+
+ {{ item.yedekTalihliAdedi }}
+
+
+
+
+ TOPLAM:
+ {{ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.asilTalihliAdedi }}
+
+ {{
+ `${globalStore.toTrLocale(
+ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.toplamDeger
+ )} ${piyangoIkramiyeStore.piyangoAllIkramiyeParaBirimi}`
+ }}
+
+ {{ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.yedekTalihliAdedi }}
+
+
+
+
+
+
+
+
+ İrtibat Tel. No:
+ {{ piyangoContactStore.contactData.telefonNumarasi }}
+
+
+
+ Tarih: / /
+
+
+
+
+ İrtibat Faks No:
+ {{ piyangoContactStore.contactData.faksNumarasi }}
+
+
+ İMZA/KAŞE
+
+
+
+ İrtibat Kurulacak İlgilinin Adı/Soyadı:
+ {{ piyangoContactStore.contactData.adSoyad }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/display/PiyangoYardimAmacliOnizlemeDisplay.vue b/src/module/cekilisler/components/display/PiyangoYardimAmacliOnizlemeDisplay.vue
new file mode 100644
index 0000000..87b22da
--- /dev/null
+++ b/src/module/cekilisler/components/display/PiyangoYardimAmacliOnizlemeDisplay.vue
@@ -0,0 +1,642 @@
+
+
+ MİLLİ PİYANGO İDARESİ GENEL MÜDÜRLÜĞÜ
+
+ Bahisler ve Oyunlar Dairesi Başkanlığına
+
+
+
+
+
+
+
+ 1- Piyangoyu Düzenleyenin:
+
+
+
+
+
+
+
+
+
+
+
+ Adı/Soyadı:
+ {{ piyangoStore.duzenleyenData.gercekAdi }}
+ {{ piyangoStore.duzenleyenData.gercekSoyadi }}
+
+
+
+
+ Ticari Ünvanı:
+ {{ piyangoStore.duzenleyenData.gercekTicariUnvan }}
+
+
+
+
+
+
+ Ünvanı:
+ {{ piyangoStore.duzenleyenData.tuzelUnvan }}
+
+
+
+
+
+
+
+ Ünvanı:
+ {{ piyangoStore.duzenleyenData.dernekUnvan }}
+
+
+
+
+
+
+
+ Ünvanı:
+ {{ piyangoStore.duzenleyenData.kamuUnvan }}
+
+
+
+
+
+
+ Adresi:
+ {{ piyangoStore.duzenleyenData.adres }}
+
+
+
+
+
+
+ Bağlı Bulunduğu Oda Kayıt No/ Ticaret Sicil No:
+ {{ piyangoStore.duzenleyenData.gercekOdaKayitNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.gercekVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.gercekVergiNo }}
+
+
+
+
+ TCKN:
+ {{ piyangoStore.duzenleyenData.gercekTCKN }}
+
+
+
+
+
+
+
+ Ticaret Sicil No:
+ {{ piyangoStore.duzenleyenData.tuzelSicilNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.tuzelVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.tuzelVergiNo }}
+
+
+
+
+
+
+
+ Sicil No:
+ {{ piyangoStore.duzenleyenData.dernekSicilNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.dernekVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.dernekVergiNo }}
+
+
+
+
+
+
+ Sicil No:
+ {{ piyangoStore.duzenleyenData.kamuSicilNo }}
+
+
+
+
+ Bağlı Bulunduğu Vergi Dairesi/Numarası:
+ {{ piyangoStore.duzenleyenData.kamuVergiDairesi }} /
+ {{ piyangoStore.duzenleyenData.kamuVergiNo }}
+
+
+
+
+
+
+
+
+
+
+
+ 2- Piyangonun Geçerli Olduğu Yerler:
+
+
+
+
+
+
+
+
+
+ {{
+ piyangoStore.lotteryData.kampsamIlStrList.length ===
+ globalDataStore.ilList.length
+ ? 'Türkiye Geneli'
+ : piyangoStore.lotterySelectedProvience
+ }}
+
+
+
+
+
+
+
+
+
+
+ 3- Basılacak Biletlerin:
+
+
+
+
+
+
+
+
+
+
+ Başlangıç Numarası
+ Bitiş Numarası
+ Basılacak Adet
+
+
+
+
+
+ {{ rakam.title }}
+
+ {{
+ globalStore.toTrLocale(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ rakam.prefix + 'RakamBaslangic'
+ ]
+ )
+ }}
+
+
+ {{
+ globalStore.toTrLocale(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ rakam.prefix + 'RakamBitis'
+ ]
+ )
+ }}
+
+
+ {{
+ globalStore.toTrLocale(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ rakam.prefix + 'RakamAdet'
+ ]
+ )
+ }}
+
+
+
+
+
+ Toplam Basılacak Bilet:
+
+ {{ globalStore.toTrLocale(piyangoYardimAmacliStore.toplamBilet) }}
+
+
+
+ Bilet Satış Fiyatı:
+ {{ piyangoYardimAmacliStore.piyangoYardimAmacliFormData.birimSatisFiyati }} ₺
+
+
+
+
+
+
+
+
+
+
+ 4- Biletlerin Basımı
+
+
+
+
+
+
+
+
+
+
+ Basımevinin Adı:
+ {{ piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimevi }}
+
+
+
+
+ Basımevinin Adresi:
+ {{ piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimeviAdresi }}
+
+
+
+
+
+
+
+
+
+
+ 5- Çekiliş Tarih, Saati ve Adresi:
+
+
+
+
+
+
+
+
+
+
+ Tarihi ve saati:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.cekilisTarihi,
+ pattern: 'dd-mm-yy-t'
+ })
+ }}
+
+
+
+
+ Açık adresi:
+ {{
+ piyangoStore.lotteryData.adres +
+ ' ' +
+ piyangoStore.lotteryData.il +
+ ' ' +
+ piyangoStore.lotteryData.ilce
+ }}
+
+
+
+
+ Ne şekilde yapılacağı:
+ {{ piyangoStore.lotteryData.cekilisYontemi }}
+
+
+ {{ txt }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6- İkramiye Kazananların İlanı:
+
+
+
+
+
+
+
+
+
+
+ Adı:
+ {{ piyangoStore.lotteryData.ilanEdilecekGazete }}
+
+
+
+
+ Tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ilantarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+ 2. İlan Tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ilantarihi2,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+ Ayrıca, çekiliş sonuçları
+
+
+ {{ mecra.mecraAdi
+ }}{{ i !== piyangoMecraStore.piyangoAllMecraData.length - 1 ? ', ' : '' }}
+
+
+ {{
+ piyangoMecraStore.piyangoAllMecraData.length > 1
+ ? 'mecralarında'
+ : 'mecrasında'
+ }}
+ ilan edilecektir.
+
+
+
+
+
+
+
+
+
+
+ 7- Talihlilerin Başvuru Tarihi:
+
+
+
+
+
+
+
+
+
+
+ Talihlilerin son başvuru tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+ İkramiyelerin son teslim tarihi:
+ {{
+ dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
+ pattern: 'dd-mm-yy'
+ })
+ }}
+
+
+
+
+
+
+
+
+
+
+ 8- Diğer Hususlar:
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ txt }}
+
+
+
+
+
+ {{ txt }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 9-Piyangoya Konu İkramiyeler:
+
+
+
+
+
+
+
+
+
+ Sıra No
+ Cinsi, Markası, Modeli
+ Birim Değeri (KDV+ÖTV Dahil)
+
+ Talihli Adedi
+
+ Toplam Değer
+
+
+
+
+
+ {{ i + 1 }}
+ {{ `${item.cinsi}, ${item.marka}, ${item.model}` }}
+
+ {{
+ item.paraBirimi !== null
+ ? `${globalStore.toTrLocale(item.birimFiyat)} ${
+ item.paraBirimi.paraBirimiSembol
+ }`
+ : globalStore.toTrLocale(item.birimFiyat)
+ }}
+
+ {{ item.asilTalihliAdedi }}
+
+ {{
+ item.paraBirimi !== null
+ ? `${globalStore.toTrLocale(item.toplamDeger)} ${
+ item.paraBirimi.paraBirimiSembol
+ }`
+ : globalStore.toTrLocale(item.toplamDeger)
+ }}
+
+
+
+
+ TOPLAM:
+ {{ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.asilTalihliAdedi }}
+
+ {{
+ `${globalStore.toTrLocale(
+ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.toplamDeger
+ )} ${piyangoIkramiyeStore.piyangoAllIkramiyeParaBirimi}`
+ }}
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoBilgileri.vue b/src/module/cekilisler/components/form/FormPiyangoBilgileri.vue
new file mode 100644
index 0000000..72b53bd
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoBilgileri.vue
@@ -0,0 +1,645 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ data.activatorData !== undefined &&
+ piyangoValidationStore.invalidTexts.baglisirketId !== null
+ ? data.activatorData.unvan + ' - ' + data.activatorData.basvuruTipi
+ : 'Lütfen Seçim Yapınız'
+ }}
+
+
+ {{ data.optionData.unvan + ' - ' + data.optionData.basvuruTipi }}
+
+
+
+ Üyeyi Kontrol Et
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Çekiliş Yöntemi
+
+
+
+
+
+
+
+
+
+
+ Kaydet
+ Vazgeç
+
+
+
+
+
+
+
+
+
+
+ PDF İndir
+ Yazdır
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoDocuments.vue b/src/module/cekilisler/components/form/FormPiyangoDocuments.vue
new file mode 100644
index 0000000..c8ab477
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoDocuments.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+ {{ piyangoDocumentStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoIrtibatBilgileri.vue b/src/module/cekilisler/components/form/FormPiyangoIrtibatBilgileri.vue
new file mode 100644
index 0000000..addaf89
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoIrtibatBilgileri.vue
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+ Kaydet
+ Vazgeç
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoMecra.vue b/src/module/cekilisler/components/form/FormPiyangoMecra.vue
new file mode 100644
index 0000000..1b336f1
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoMecra.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+ {{ piyangoMecraStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoOnay.vue b/src/module/cekilisler/components/form/FormPiyangoOnay.vue
new file mode 100644
index 0000000..3ebf7eb
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoOnay.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
Onay Durumu
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoOnayKisiler.vue b/src/module/cekilisler/components/form/FormPiyangoOnayKisiler.vue
new file mode 100644
index 0000000..c3db471
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoOnayKisiler.vue
@@ -0,0 +1,38 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoOnayLog.vue b/src/module/cekilisler/components/form/FormPiyangoOnayLog.vue
new file mode 100644
index 0000000..764c4aa
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoOnayLog.vue
@@ -0,0 +1,88 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoPictures.vue b/src/module/cekilisler/components/form/FormPiyangoPictures.vue
new file mode 100644
index 0000000..c07f792
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoPictures.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+ {{ isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoTeminatDurumu.vue b/src/module/cekilisler/components/form/FormPiyangoTeminatDurumu.vue
new file mode 100644
index 0000000..76eeeff
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoTeminatDurumu.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
Teminat Durumu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoUserOnayaGonder.vue b/src/module/cekilisler/components/form/FormPiyangoUserOnayaGonder.vue
new file mode 100644
index 0000000..6f50477
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoUserOnayaGonder.vue
@@ -0,0 +1,44 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoYardimAmacli.vue b/src/module/cekilisler/components/form/FormPiyangoYardimAmacli.vue
new file mode 100644
index 0000000..5d1873a
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoYardimAmacli.vue
@@ -0,0 +1,147 @@
+
+
+
+
Yardım Amaçlı Piyango Bilet Bilgileri
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Başlangıç Numarası
+
+
+
+
+ Bitiş Numarası
+
+
+
+
+ Basılacak Adet
+
+
+
+
+
+
+
+ {{ rakam.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+ Toplam Basılacak Bilet:
+ {{ globalStore.toTrLocale(piyangoYardimAmacliStore.toplamBilet) }}
+
+
+
+
+ En az bir satır bilet bilgisi başlangıç ve bitiş numaraları ile girmelisiniz.
+
+
+
+
+
+
+
+ Kaydet
+ Vazgeç
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoYetkilendirme.vue b/src/module/cekilisler/components/form/FormPiyangoYetkilendirme.vue
new file mode 100644
index 0000000..c09ad0e
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoYetkilendirme.vue
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+
+ Birim
+
+
+
+
+ Yetkili
+
+
+
+
+
+
+
+ {{ row.title }}
+
+
+
+ {{
+ data.activatorData !== undefined &&
+ Object.keys(data.activatorData).length > 0 &&
+ formData['onayverecekkisi' + row.id + 'birimId'] !== null &&
+ formData['onayverecekkisi' + row.id + 'birimId'] !== 0
+ ? data.activatorData.birimAdi
+ : YetkiliDisabled(row) &&
+ (formData['onayverecekkisi' + row.id + 'birimId'] === null ||
+ formData['onayverecekkisi' + row.id + 'birimId'] === 0)
+ ? 'Henüz yetkili ataması yapılmamış'
+ : 'Lütfen seçim yapınız'
+ }}
+
+
+
+
+ {{
+ data.activatorData !== undefined &&
+ Object.keys(data.activatorData).length > 0 &&
+ formData['onayverecekkisi' + row.id + 'Id'] !== null
+ ? data.activatorData.ad +
+ ' ' +
+ data.activatorData.soyad +
+ ' - ' +
+ data.activatorData.kullaniciGorevi
+ : IsDisabled(row) &&
+ (formData['onayverecekkisi' + row.id + 'Id'] === null ||
+ formData['onayverecekkisi' + row.id + 'Id'] === 0)
+ ? 'Henüz yetkili ataması yapılmamış'
+ : 'Lütfen seçim yapınız'
+ }}
+
+
+ {{
+ data.optionData.ad +
+ ' ' +
+ data.optionData.soyad +
+ ' - ' +
+ data.optionData.kullaniciGorevi
+ }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/form/FormPiyangoYetkilendirmeLog.vue b/src/module/cekilisler/components/form/FormPiyangoYetkilendirmeLog.vue
new file mode 100644
index 0000000..524b28b
--- /dev/null
+++ b/src/module/cekilisler/components/form/FormPiyangoYetkilendirmeLog.vue
@@ -0,0 +1,40 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoDocument.vue b/src/module/cekilisler/components/panel/PanelPiyangoDocument.vue
new file mode 100644
index 0000000..742454d
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoDocument.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoIkramiye.vue b/src/module/cekilisler/components/panel/PanelPiyangoIkramiye.vue
new file mode 100644
index 0000000..35fd2e0
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoIkramiye.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoItiraz.vue b/src/module/cekilisler/components/panel/PanelPiyangoItiraz.vue
new file mode 100644
index 0000000..6c41d37
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoItiraz.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue b/src/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue
new file mode 100644
index 0000000..96a9c96
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue
@@ -0,0 +1,419 @@
+
+
+
+
+
+
+
+
+
+
+ {{
+ data.activatorData !== undefined &&
+ Object.keys(data.activatorData).length > 0 &&
+ piyangoKatilimciStore.piyangoKatilimciUserFormData.ikramiyeId !== null
+ ? data.activatorData.cinsi +
+ ', ' +
+ data.activatorData.marka +
+ ', ' +
+ data.activatorData.model
+ : 'Lütfen Seçim Yapınız'
+ }}
+
+
+ {{
+ data.optionData.cinsi +
+ ', ' +
+ data.optionData.marka +
+ ', ' +
+ data.optionData.model
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoMecra.vue b/src/module/cekilisler/components/panel/PanelPiyangoMecra.vue
new file mode 100644
index 0000000..4b7e501
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoMecra.vue
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoOnizleme.vue b/src/module/cekilisler/components/panel/PanelPiyangoOnizleme.vue
new file mode 100644
index 0000000..0ba6a70
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoOnizleme.vue
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoPictures.vue b/src/module/cekilisler/components/panel/PanelPiyangoPictures.vue
new file mode 100644
index 0000000..a7058cc
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoPictures.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumu.vue b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumu.vue
new file mode 100644
index 0000000..d3c028e
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumu.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumuDisplay.vue b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumuDisplay.vue
new file mode 100644
index 0000000..fd32f60
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumuDisplay.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/cekilisler/components/panel/PanelPiyangoYardimAmacliOnizleme.vue b/src/module/cekilisler/components/panel/PanelPiyangoYardimAmacliOnizleme.vue
new file mode 100644
index 0000000..d990446
--- /dev/null
+++ b/src/module/cekilisler/components/panel/PanelPiyangoYardimAmacliOnizleme.vue
@@ -0,0 +1,23 @@
+
+
+
+
diff --git a/src/module/cekilisler/routes/index.ts b/src/module/cekilisler/routes/index.ts
new file mode 100644
index 0000000..f2f0fae
--- /dev/null
+++ b/src/module/cekilisler/routes/index.ts
@@ -0,0 +1,5 @@
+import piyangoListe from '@/module/cekilisler/routes/piyango-liste'
+import piyangoYeni from '@/module/cekilisler/routes/piyango-yeni'
+import piyangoDetay from '@/module/cekilisler/routes/piyango-detay'
+
+export default [piyangoListe, piyangoYeni, piyangoDetay]
diff --git a/src/module/cekilisler/routes/piyango-detay.ts b/src/module/cekilisler/routes/piyango-detay.ts
new file mode 100644
index 0000000..c5386c4
--- /dev/null
+++ b/src/module/cekilisler/routes/piyango-detay.ts
@@ -0,0 +1,10 @@
+import PiyangoDetay from '@/module/cekilisler/views/PiyangoDetay.vue'
+
+export default {
+ path: '/piyangolar/detay/:piyangoId',
+ name: 'PiyangoDetay',
+ component: PiyangoDetay,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/cekilisler/routes/piyango-liste.ts b/src/module/cekilisler/routes/piyango-liste.ts
new file mode 100644
index 0000000..834e752
--- /dev/null
+++ b/src/module/cekilisler/routes/piyango-liste.ts
@@ -0,0 +1,10 @@
+import CekilisListe from '@/module/cekilisler/views/PiyangoListe.vue'
+
+export default {
+ path: '/piyangolar/piyango-listesi',
+ name: 'PiyangoListe',
+ component: CekilisListe,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/cekilisler/routes/piyango-yeni.ts b/src/module/cekilisler/routes/piyango-yeni.ts
new file mode 100644
index 0000000..4398544
--- /dev/null
+++ b/src/module/cekilisler/routes/piyango-yeni.ts
@@ -0,0 +1,10 @@
+import PiyangoYeni from '@/module/cekilisler/views/PiyangoYeni.vue'
+
+export default {
+ path: '/piyangolar/yeni-piyango',
+ name: 'PiyangoYeni',
+ component: PiyangoYeni,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/cekilisler/service/piyangoDocumentService.ts b/src/module/cekilisler/service/piyangoDocumentService.ts
new file mode 100644
index 0000000..d5b082f
--- /dev/null
+++ b/src/module/cekilisler/service/piyangoDocumentService.ts
@@ -0,0 +1,69 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+import { usePiyangoDocumentStore } from '../stores/piyangoDocumentStore'
+import { usePiyangoDocumentValidationStore } from '../validation/piyangoDocumentValidationStore'
+
+export const usePiyangoDocumentService = defineStore('piyangoDocumentService', () => {
+ const dataStore = useDataStore()
+ const piyangoStore = usePiyangoStore()
+ const piyangoDocumentStore = usePiyangoDocumentStore()
+ const piyangoDocumentValidationStore = usePiyangoDocumentValidationStore()
+
+ const GetDocumentList = async () => {
+ piyangoDocumentStore.piyangoDocumentsList.splice(
+ 0,
+ piyangoDocumentStore.piyangoDocumentsList.length
+ )
+
+ let dt = await dataStore.dataGet('Dokuman/Cekilis/' + piyangoStore.selectedLottery,{
+ params: {
+ pageSize: 50
+ }
+ })
+
+ if (dt !== 'errorfalse') {
+ piyangoDocumentStore.piyangoDocumentsList.splice(
+ 0,
+ piyangoDocumentStore.piyangoDocumentsList.length,
+ ...dt.data
+ )
+ }
+ setTimeout(() => {
+ piyangoDocumentStore.loaded = true
+ }, 30)
+ }
+
+ const SaveDocument = async () => {
+ if (piyangoDocumentValidationStore.FormCheck()) {
+ const formData = new FormData()
+ formData.append('dosya', piyangoDocumentStore.piyangoDocumentForm.dosya)
+ formData.append('dokumanAdi', piyangoDocumentStore.piyangoDocumentForm.dokumanAdi)
+ formData.append('cekilisId', String(piyangoStore.selectedLottery))
+ let dt: any
+
+ if (!piyangoDocumentStore.isUpdate) {
+ dt = await dataStore.dataPost('Dokuman/', {
+ data: formData,
+ headers: { 'Content-Type': 'multipart/form-data' }
+ })
+ } else {
+ dt = await dataStore.dataPut(
+ 'Dokuman/' + piyangoDocumentStore.piyangoDocumentForm.id,
+ {
+ data: formData,
+ headers: { 'Content-Type': 'multipart/form-data' }
+ }
+ )
+ }
+ if (dt !== 'errorfalse') {
+ await GetDocumentList()
+ piyangoDocumentStore.documentPanel = false
+ piyangoDocumentStore.isUpdate = false
+ }
+ } else {
+ piyangoDocumentValidationStore.isFormValid = true
+ }
+ }
+ return { GetDocumentList, SaveDocument }
+})
diff --git a/src/module/cekilisler/service/piyangoItirazService.ts b/src/module/cekilisler/service/piyangoItirazService.ts
new file mode 100644
index 0000000..565acef
--- /dev/null
+++ b/src/module/cekilisler/service/piyangoItirazService.ts
@@ -0,0 +1,54 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'
+import { usePiyangoItirazValidationStore } from '../validation/piyangoItirazValidationStore'
+
+export const usePiyangoItirazService = defineStore('piyangoItirazService', () => {
+ const dataStore = useDataStore()
+ const piyangoStore = usePiyangoStore()
+ const piyangoItirazStore = usePiyangoItirazStore()
+ const piyangoItirazValidationStore = usePiyangoItirazValidationStore()
+
+ const SaveItiraz = async () => {
+ if (piyangoItirazValidationStore.FormCheck()) {
+ let data: any
+ const formData = new FormData()
+ formData.append('itirazTarihi', piyangoItirazStore.piyangoItirazForm.itirazTarihi)
+ formData.append('itirazEden', piyangoItirazStore.piyangoItirazForm.itirazEden)
+ formData.append('aciklama', piyangoItirazStore.piyangoItirazForm.aciklama)
+ formData.append('durum', piyangoItirazStore.piyangoItirazForm.durum)
+ formData.append('dosya', piyangoItirazStore.piyangoItirazForm.dosya)
+ formData.append('cekilisId', String(piyangoStore.selectedLottery))
+ formData.append('surecTipiId', piyangoItirazStore.piyangoItirazForm.surecTipiId)
+
+ if (!piyangoItirazStore.isUpdate) {
+ data = await dataStore.dataPost('Itiraz', {
+ data: formData,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+ } else {
+ data = await dataStore.dataPut(
+ 'Itiraz/' + piyangoItirazStore.piyangoItirazForm.id,
+ {
+ data: formData,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ }
+ )
+ }
+
+ if (data !== 'errorfalse') {
+ piyangoItirazStore.refreshList = true
+ piyangoItirazStore.itirazPanel = false
+ piyangoItirazValidationStore.formChanged = false
+ }
+ } else {
+ piyangoItirazValidationStore.isFormValid = true
+ }
+ }
+ return { SaveItiraz }
+})
diff --git a/src/module/cekilisler/service/piyangoMecraService.ts b/src/module/cekilisler/service/piyangoMecraService.ts
new file mode 100644
index 0000000..e819fea
--- /dev/null
+++ b/src/module/cekilisler/service/piyangoMecraService.ts
@@ -0,0 +1,50 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+import { usePiyangoMecraStore } from '../stores/piyangoMecraStore'
+import { usePiyangoMecraValidationStore } from '../validation/piyangoMecraValidationStore'
+
+export const usePiyangoMecraService = defineStore('piyangoMecraService', () => {
+ const dataStore = useDataStore()
+ const piyangoStore = usePiyangoStore()
+ const piyangoMecraStore = usePiyangoMecraStore()
+ const piyangoMecraValidationStore = usePiyangoMecraValidationStore()
+
+ const GetAllMecralar = async () => {
+ let data: Record | any = await dataStore.dataGet(
+ 'Mecra/Cekilis/' + piyangoStore.selectedLottery + '?pageNumber=0'
+ )
+
+ if (data !== 'errorfalse') {
+ piyangoMecraStore.piyangoAllMecraData = data.data
+ }
+ }
+
+ const SaveMecra = async () => {
+ if (piyangoMecraValidationStore.FormCheck()) {
+ let dt: any
+ dataStore.panelData.yayinlanacagiTarih = new Date(
+ dataStore.panelData.yayinlanacagiTarih
+ )
+ if (!piyangoMecraStore.isUpdate) {
+ piyangoMecraStore.piyangoMecraForm.cekilisId = piyangoStore.selectedLottery
+ dt = await dataStore.dataPost('Mecra', {
+ data: piyangoMecraStore.piyangoMecraForm
+ })
+ } else {
+ dt = await dataStore.dataPut('Mecra/' + piyangoMecraStore.piyangoMecraForm.id, {
+ data: piyangoMecraStore.piyangoMecraForm
+ })
+ }
+ if (dt !== 'errorfalse') {
+ piyangoMecraStore.refreshList = true
+ piyangoMecraStore.isUpdate = false
+ piyangoMecraStore.mecraPanel = false
+ }
+ } else {
+ piyangoMecraValidationStore.isFormValid = true
+ }
+ }
+
+ return { GetAllMecralar, SaveMecra }
+})
diff --git a/src/module/cekilisler/service/piyangoOnayService.ts b/src/module/cekilisler/service/piyangoOnayService.ts
new file mode 100644
index 0000000..f4dd8c2
--- /dev/null
+++ b/src/module/cekilisler/service/piyangoOnayService.ts
@@ -0,0 +1,50 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
+import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
+ const dataStore = useDataStore()
+ const piyangoStore = usePiyangoStore()
+ const piyangoOnayStore = usePiyangoOnayStore()
+ const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
+ const usersStore = useUsersStore()
+
+ const SaveOnayDurum = async () => {
+ if (piyangoOnayValidationStore.FormCheck()) {
+ piyangoOnayStore.loaded = false
+ let form: any
+ let dataForm = new FormData()
+ dataForm.append(
+ 'onayDurumuIslemTipiId',
+ piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
+ )
+ dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
+ dataForm.append('kisiId', String(usersStore.userId))
+ dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
+ dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama)
+
+ form = await dataStore.dataPost('OnayDurumu/', {
+ data: dataForm,
+ headers: { 'Content-Type': 'multipart/form-data' },
+ toast: { toast: 'Onay durumu başarıyla kaydedildi', type: 'success' }
+ })
+
+ if (form !== 'errorfalse') {
+ piyangoOnayValidationStore.formChanged = false
+ piyangoStore.lotteryApprove =
+ piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
+ piyangoOnayStore.refreshList = true
+ piyangoOnayStore.ResetForm()
+ setTimeout(() => {
+ piyangoOnayStore.loaded = true
+ }, 10)
+ }
+ } else {
+ piyangoOnayValidationStore.isFormValid = true
+ }
+ }
+ return { SaveOnayDurum }
+})
diff --git a/src/module/cekilisler/service/piyangoServices.ts b/src/module/cekilisler/service/piyangoServices.ts
new file mode 100644
index 0000000..6ef4a7b
--- /dev/null
+++ b/src/module/cekilisler/service/piyangoServices.ts
@@ -0,0 +1,81 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { usePiyangoDataStore } from '../stores/piyangoDataStore'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const usePiyangoServices = defineStore('piyangoServices', () => {
+ const dataStore = useDataStore()
+ const piyangoDataStore = usePiyangoDataStore()
+ const usersStore = useUsersStore()
+
+ const RemoveIncelemeBekleniyor = () => {
+ let ind = piyangoDataStore.piyangoOnayDurumlari.findIndex((p) => p.id === 8)
+ if (ind >= 0) piyangoDataStore.piyangoOnayDurumlari.splice(ind, 1)
+ }
+
+ const GetKatilimciTeslimYontemiList = async () => {
+ if (piyangoDataStore.katilimciTeslimYontemi.length === 0) {
+ piyangoDataStore.katilimciTeslimYontemi = await dataStore.dataGet(
+ 'KatilimciListesiTeslimYontemi'
+ )
+ }
+ }
+
+ const GetCekilisYontemiList = async () => {
+ if (piyangoDataStore.cekilisYontemi.length === 0) {
+ let data = await dataStore.dataGet('CekilisYontemi')
+ piyangoDataStore.cekilisYontemi = data.data
+ }
+ }
+
+ const GetParaBirimleri = async () => {
+ if (piyangoDataStore.paraBirimleri.length === 0) {
+ let data = await dataStore.dataGet('ParaBirimi')
+ piyangoDataStore.paraBirimleri = data
+ }
+ }
+
+ const GetPiyangoAmaclariList = async () => {
+ if (piyangoDataStore.piyangoAmaclari.length === 0) {
+ let data = await dataStore.dataGet('PiyangoAmac')
+ piyangoDataStore.piyangoAmaclari = data
+ }
+ }
+
+ const GetPiyangoOnayDurumList = async () => {
+ if (piyangoDataStore.piyangoOnayDurumlari.length === 0) {
+ let data = await dataStore.dataGet('OnayDurumuIslemTipi')
+ data.sort((a: Record, b: Record) => a.order - b.order)
+ piyangoDataStore.piyangoOnayDurumlari = data
+ if (usersStore.isPanelUser) RemoveIncelemeBekleniyor()
+ }
+ }
+ const GetPiyangoTeminatDurumList = async () => {
+ if (piyangoDataStore.piyangoTeminatDurumlari.length === 0) {
+ let data = await dataStore.dataGet('TeminantStates/Durumlar')
+ piyangoDataStore.piyangoTeminatDurumlari = data
+ }
+ }
+ const GetPiyangoTeminatTurleriList = async () => {
+ if (piyangoDataStore.piyangoTeminatTurleri.length === 0) {
+ let data = await dataStore.dataGet('TeminantStates/TeminantChildType')
+ piyangoDataStore.piyangoTeminatTurleri = data
+ }
+ }
+ const GetPiyangoTeminatParaBirimleriList = async () => {
+ if (piyangoDataStore.piyangoTeminatParaBirimleri.length === 0) {
+ let data = await dataStore.dataGet('TeminantStates/TeminatParentType')
+ piyangoDataStore.piyangoTeminatParaBirimleri = data
+ }
+ }
+ return {
+ GetKatilimciTeslimYontemiList,
+ GetCekilisYontemiList,
+ GetParaBirimleri,
+ GetPiyangoAmaclariList,
+ GetPiyangoOnayDurumList,
+ GetPiyangoTeminatDurumList,
+ GetPiyangoTeminatTurleriList,
+ GetPiyangoTeminatParaBirimleriList
+ }
+})
diff --git a/src/module/cekilisler/service/piyangoYardimAmacliService.ts b/src/module/cekilisler/service/piyangoYardimAmacliService.ts
new file mode 100644
index 0000000..3c49c5a
--- /dev/null
+++ b/src/module/cekilisler/service/piyangoYardimAmacliService.ts
@@ -0,0 +1,60 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+import { usePiyangoYardimAmacliStore } from '../stores/piyangoYardimAmacliStore'
+import { usePiyangoYardimAmacliValidationStore } from '../validation/piyangoYardimAmacliValidationStore'
+
+export const usePiyangoYardimAmacliService = defineStore(
+ 'piyangoYardimAmacliService',
+ () => {
+ const dataStore = useDataStore()
+ const piyangoStore = usePiyangoStore()
+ const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
+ const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore()
+
+ const GetYardimAmacliData = async () => {
+ piyangoYardimAmacliStore.loaded = false
+ piyangoYardimAmacliStore.EmptyFormData()
+
+ let data = await dataStore.dataGet(
+ 'yardimbilgi/cekilisIdyegoreobje/' + piyangoStore.selectedLottery
+ )
+ if (data !== 'errorfalse') {
+ piyangoYardimAmacliStore.CreateBiletTable()
+ Object.assign(piyangoYardimAmacliStore.piyangoYardimAmacliFormData, data)
+ Object.assign(
+ piyangoYardimAmacliStore.piyangoYardimAmacliServerFormData,
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData
+ )
+ if (data === '') piyangoYardimAmacliStore.isNew = true
+ else piyangoYardimAmacliStore.isNew = false
+ setTimeout(() => {
+ piyangoYardimAmacliStore.loaded = true
+ }, 30)
+ }
+ }
+
+ const SaveYardimAmacliForm = async () => {
+ if (piyangoYardimAmacliValidationStore.FormCheck()) {
+ let form: any
+ if (piyangoYardimAmacliStore.isNew) {
+ form = await dataStore.dataPost('yardimbilgi/', {
+ data: piyangoYardimAmacliStore.piyangoYardimAmacliFormData
+ })
+ } else {
+ form = await dataStore.dataPut('yardimbilgi/' + piyangoYardimAmacliStore.piyangoYardimAmacliFormData.id, {
+ data: piyangoYardimAmacliStore.piyangoYardimAmacliFormData
+ })
+ }
+ if (form !== 'errorfalse') {
+ piyangoYardimAmacliValidationStore.formChanged = false
+ piyangoYardimAmacliStore.loaded = false
+ GetYardimAmacliData()
+ }
+ } else {
+ piyangoYardimAmacliValidationStore.isFormValid = true
+ }
+ }
+ return { GetYardimAmacliData, SaveYardimAmacliForm }
+ }
+)
diff --git a/src/module/cekilisler/service/signalrService.ts b/src/module/cekilisler/service/signalrService.ts
new file mode 100644
index 0000000..446bea6
--- /dev/null
+++ b/src/module/cekilisler/service/signalrService.ts
@@ -0,0 +1,34 @@
+import * as signalR from "@microsoft/signalr";
+import { v4 as uuidv4 } from "uuid";
+
+let connection: signalR.HubConnection;
+let connectionId = "";
+
+export const connectToHub = async () => {
+ connection = new signalR.HubConnectionBuilder()
+ .withUrl("http://panel.cekilisevi.gov.tr:5001/uploadHub", {
+ withCredentials: false // Bu zorunlu, yoksa cookie vs gönderilmez
+ }) // backend adresine göre düzenle
+ .withAutomaticReconnect()
+ .build();
+
+ await connection.start();
+ connectionId = connection.connectionId || uuidv4(); // SignalR id'si ya da frontend'de de guid üretilebilir
+ return connectionId;
+};
+
+export const onProgress = (callback: (data: any) => void) => {
+ connection.on("ReceiveProgress", callback);
+};
+
+export const onInsertProgress = (callback: (data: any) => void) => {
+ connection.on("ReceiveInsertProgress", callback);
+};
+
+export const onCompleted = (callback: (data: any) => void) => {
+ connection.on("ReceiveCompleted", callback);
+};
+
+export const onError = (callback: (data: any) => void) => {
+ connection.on("ReceiveError", callback);
+};
\ No newline at end of file
diff --git a/src/module/cekilisler/stores/piyangoContactStore.ts b/src/module/cekilisler/stores/piyangoContactStore.ts
new file mode 100644
index 0000000..342eb62
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoContactStore.ts
@@ -0,0 +1,24 @@
+import { defineStore } from 'pinia'
+import { reactive } from 'vue'
+import { useGlobalStore } from '@/stores/globalStore'
+
+export const usePiyangoContactStore = defineStore('piyangoContactStore', () => {
+ const globalStore = useGlobalStore()
+
+ const baseContactData = reactive>({
+ adSoyad: '',
+ telefonNumarasi: '',
+ faksNumarasi: '',
+ eposta: '',
+ unvan: ''
+ })
+ const contactData = reactive>({})
+ const safeContactData = reactive>({})
+
+ const ResetFormData = () => {
+ globalStore.ResetObject(contactData, baseContactData)
+ Object.assign(contactData, baseContactData)
+ }
+
+ return { baseContactData, contactData, safeContactData, ResetFormData }
+})
diff --git a/src/module/cekilisler/stores/piyangoDocumentStore.ts b/src/module/cekilisler/stores/piyangoDocumentStore.ts
new file mode 100644
index 0000000..ebf6ca8
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoDocumentStore.ts
@@ -0,0 +1,36 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { usePiyangoStore } from './piyangoStore'
+
+export const usePiyangoDocumentStore = defineStore('piyangoDocumentStore', () => {
+ const piyangoStore = usePiyangoStore()
+
+ const piyangoDocumentsList = ref[]>([])
+ const piyangoDocumentBaseForm = reactive>({
+ dosya: null,
+ cekilisId: piyangoStore.selectedLottery,
+ dokumanAdi: ''
+ })
+ const piyangoDocumentForm = reactive>({})
+ const piyangoDocumentSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const documentPanel = ref(false)
+ const loaded = ref(false)
+
+ const ResetForm = () =>{
+ Object.assign(piyangoDocumentForm, piyangoDocumentBaseForm)
+ }
+
+ return {
+ piyangoDocumentsList,
+ piyangoDocumentBaseForm,
+ piyangoDocumentForm,
+ piyangoDocumentSafeForm,
+ isUpdate,
+ refreshList,
+ documentPanel,
+ loaded,
+ ResetForm
+ }
+})
diff --git a/src/module/cekilisler/stores/piyangoIkramiyeStore.ts b/src/module/cekilisler/stores/piyangoIkramiyeStore.ts
new file mode 100644
index 0000000..4e67720
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoIkramiyeStore.ts
@@ -0,0 +1,75 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoStore } from './piyangoStore'
+
+export const usePiyangoIkramiyeStore = defineStore('piyangoIkramiyeStore', () => {
+ const piyangoStore = usePiyangoStore()
+ const validationStore = useValidationStore()
+
+ const piyangoAllIkramiyeData = ref[]>([])
+ const piyangoAllIkramiyeTotals = reactive>({
+ asilTalihliAdedi: 0,
+ toplamDeger: 0,
+ yedekTalihliAdedi: 0
+ })
+ const piyangoAllIkramiyeParaBirimi = ref('')
+
+ const piyangoIkramiyeBaseForm = reactive>({
+ cinsi: '',
+ marka: '',
+ model: '',
+ birimFiyat: null,
+ paraBirimiId: null,
+ asilTalihliAdedi: null,
+ yedekTalihliAdedi: piyangoStore.isLotteryForCharity ? 0 : null,
+ toplamDeger: null
+ })
+ const piyangoIkramiyeForm = reactive>({})
+ const piyangoIkramiyeSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const ikramiyePanel = ref(false)
+ const loaded = ref(false)
+
+ const totalIkramiyeValues = reactive>({
+ yedekTalihliAdedi: 'toplamyedektalihli',
+ asilTalihliAdedi: 'toplamasiltalihli',
+ toplamDeger: 'toplamdeger'
+ })
+
+ const ResetForm = () => {
+ Object.assign(piyangoIkramiyeForm, piyangoIkramiyeBaseForm)
+ }
+
+ const CalculateToplamDeger = (e: Event) => {
+ if (
+ !validationStore.checkEmpty(piyangoIkramiyeForm.birimFiyat) &&
+ !validationStore.checkEmpty(piyangoIkramiyeForm.asilTalihliAdedi)
+ ) {
+ let total =
+ Number(String(piyangoIkramiyeForm.birimFiyat).replace(',', '.')) *
+ piyangoIkramiyeForm.asilTalihliAdedi
+
+ piyangoIkramiyeForm.toplamDeger = String(total.toFixed(2)).replace('.', ',')
+ } else {
+ piyangoIkramiyeForm.toplamDeger = 0
+ }
+ }
+
+ return {
+ piyangoAllIkramiyeData,
+ piyangoAllIkramiyeTotals,
+ piyangoAllIkramiyeParaBirimi,
+ piyangoIkramiyeBaseForm,
+ piyangoIkramiyeForm,
+ piyangoIkramiyeSafeForm,
+ isUpdate,
+ refreshList,
+ ikramiyePanel,
+ loaded,
+ totalIkramiyeValues,
+ ResetForm,
+ CalculateToplamDeger
+ }
+})
diff --git a/src/module/cekilisler/stores/piyangoItirazStore.ts b/src/module/cekilisler/stores/piyangoItirazStore.ts
new file mode 100644
index 0000000..0d5f101
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoItirazStore.ts
@@ -0,0 +1,36 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { usePiyangoStore } from './piyangoStore'
+
+export const usePiyangoItirazStore = defineStore('piyangoItirazStore', () => {
+ const piyangoStore = usePiyangoStore()
+
+ const piyangoItirazBaseForm = reactive>({
+ itirazTarihi: '',
+ itirazEden: '',
+ aciklama: '',
+ dosya: null,
+ durum: null,
+ cekilisId: piyangoStore.selectedLottery,
+ surecTipiId: null
+ })
+ const piyangoItirazForm = reactive>({})
+ const piyangoItirazSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const itirazPanel = ref(false)
+
+ const ResetForm = () =>{
+ Object.assign(piyangoItirazForm, piyangoItirazBaseForm)
+ }
+
+ return {
+ piyangoItirazBaseForm,
+ piyangoItirazForm,
+ piyangoItirazSafeForm,
+ isUpdate,
+ refreshList,
+ itirazPanel,
+ ResetForm
+ }
+})
diff --git a/src/module/cekilisler/stores/piyangoMecraStore.ts b/src/module/cekilisler/stores/piyangoMecraStore.ts
new file mode 100644
index 0000000..8a68335
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoMecraStore.ts
@@ -0,0 +1,38 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { usePiyangoStore } from './piyangoStore'
+
+export const usePiyangoMecraStore = defineStore('piyangoMecraStore', () => {
+ const piyangoStore = usePiyangoStore()
+
+ const piyangoAllMecraData = ref[]>([])
+
+ const piyangoMecraBaseForm = reactive>({
+ cekilisId: piyangoStore.selectedLottery,
+ mecraAdi: '',
+ yayinlanmaDurumu: 0,
+ yayinlanacagiTarih: piyangoStore.baseLotteryData.ilantarihi || new Date()
+ })
+ const piyangoMecraForm = reactive>({})
+ const piyangoMecraSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const mecraPanel = ref(false)
+ const loaded = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(piyangoMecraForm, piyangoMecraBaseForm)
+ }
+
+ return {
+ piyangoAllMecraData,
+ piyangoMecraBaseForm,
+ piyangoMecraForm,
+ piyangoMecraSafeForm,
+ isUpdate,
+ refreshList,
+ mecraPanel,
+ loaded,
+ ResetForm
+ }
+})
diff --git a/src/module/cekilisler/stores/piyangoOnayStore.ts b/src/module/cekilisler/stores/piyangoOnayStore.ts
new file mode 100644
index 0000000..bbdaac2
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoOnayStore.ts
@@ -0,0 +1,36 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { usePiyangoStore } from './piyangoStore'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
+ const piyangoStore = usePiyangoStore()
+ const usersStore = useUsersStore()
+
+ const piyangoOnayBaseForm = reactive>({
+ onayDurumuIslemTipiId: null,
+ onayCekilisId: piyangoStore.selectedLottery,
+ kisiId: usersStore.userId,
+ aciklama: '',
+ file: ''
+ })
+ const piyangoOnayForm = reactive>({})
+ const piyangoOnaySafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const loaded = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(piyangoOnayForm, piyangoOnayBaseForm)
+ }
+
+ return {
+ piyangoOnayBaseForm,
+ piyangoOnayForm,
+ piyangoOnaySafeForm,
+ isUpdate,
+ refreshList,
+ loaded,
+ ResetForm
+ }
+})
diff --git a/src/module/cekilisler/stores/piyangoStore.ts b/src/module/cekilisler/stores/piyangoStore.ts
new file mode 100644
index 0000000..55c7ea4
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoStore.ts
@@ -0,0 +1,185 @@
+import { defineStore } from 'pinia'
+import { ref, reactive, computed } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+import { useGlobalStore } from '@/stores/globalStore'
+
+export const usePiyangoStore = defineStore('piyangoStore', () => {
+ const usersStore = useUsersStore()
+ const globalStore = useGlobalStore()
+
+ const isNew = ref(true)
+ const lotteryId = ref(null)
+ const selectedLottery = ref(null)
+ const lotteryApprove = ref(null)
+ const lotteryDrawState = ref(false)
+ const lotteryDrawDate = ref('')
+ const lotteryIlanTarihi = ref('')
+ const lotteryFirstApproveDate = ref('')
+ const lotteryCreationDate = ref('')
+ const lotteryStateDate = ref('')
+ const lotteryPurposeId = ref(null)
+ const lotteryBasvuruBedeliStatus = ref(null)
+ const lotteryIzinBedeliStatus = ref(null)
+ const subCustomerType = ref(null)
+ const customerApproved = ref(false)
+ const lotteryYetkiRefresh = ref(false)
+
+ const lotteryStatusTypes = ref[]>([
+ { name: 'Bekliyor', class: 'waiting' },
+ { name: 'Kapsam Dışı', class: 'waiting' },
+ { name: 'Onaylandı', class: 'ok' },
+ { name: 'İzin Verildi', class: 'ok' },
+ { name: 'Kampanya Olumlu Bitti', class: 'ok' },
+ { name: 'Katılımcı Listesi Yüklendi', class: 'next' },
+ { name: 'Bilgi/Belge Eksik/Yanlış', class: 'waiting' },
+ { name: 'Başvuru İşleme Alındı', class: 'waiting' },
+ { name: 'Düzenleme Bekliyor', class: 'waiting' },
+ { name: 'Üzerinde Çalışılıyor', class: 'waiting' },
+ { name: 'Ön Kayıt Kabul Edildi', class: 'waiting' },
+ { name: 'Yardım Amaçlı Piyango Son Onay', class: 'waiting' },
+ { name: 'İnceleme Bekleniyor', class: 'beforeok' },
+ { name: 'Yeni Piyango', class: 'new' },
+ { name: 'Başvuru Reddedildi', class: 'alert' },
+ { name: 'Başvuru Uygun Görülmedi', class: 'alert' },
+ { name: 'İzin Öncesi İptal', class: 'alert' },
+ { name: 'İzin Sonrası İptal', class: 'alert' },
+ { name: 'Ceza Verildi', class: 'alert' },
+ { name: 'Değişiklik Talep Ediliyor', class: 'change' }
+ ])
+
+ const baseLotteryData = reactive>({
+ amac:'',
+ amacpiyangoId: null,
+ duzenleyenId: null,
+ baslik: '',
+ baglisirketId: null,
+ cekilisSartveSekilleri: '',
+ kapsamIl: [] as string[],
+ kapsamIlce: [] as string[],
+ baslangicTarihi: '',
+ bitisTarihi: '',
+ asilSonBasvuruTarihi: '',
+ yedekSonBasvuruTarihi: '',
+ cekilisTarihi: '',
+ ilantarihi: '',
+ ilantarihi2: '',
+ ikramiyeTeslimTarihi: '',
+ ilanEdilecekGazete: '',
+ ilId: null,
+ ilceId: null,
+ adres: '',
+ katilimListesi: '',
+ katilimciListesiTeslimYontemiId: null,
+ cekilisYontemiId: null,
+ digerHususlar: ''
+ })
+
+ const lotteryData = reactive>({})
+ const safeLotteryData = reactive>({})
+ const duzenleyenData = reactive>({})
+ const araciUyeData = reactive>({})
+ const lotterySelectedProvience = ref('')
+
+ const UyeName = (data: Record): string => {
+ if (data.basvuruTipId === 18) return `${data.gercekAdi} ${data.gercekSoyadi}`
+ else if (data.basvuruTipId === 21) return `${data.tuzelUnvan}`
+ else if (data.basvuruTipId === 22) return `${data.dernekUnvan}`
+ else if (data.basvuruTipId === 23) return `${data.sirketUnvan}`
+ else if (data.basvuruTipId === 26) return `${data.kamuUnvan}`
+ return ''
+ }
+
+ const duzenleyenLink = computed(() => {
+ if (lotteryData.baglisirketId === null && lotteryData.duzenleyenId !== null)
+ return '/uyeler/detay/' + lotteryData.duzenleyenId
+ else if (lotteryData.duzenleyenId !== null && lotteryData.baglisirketId !== null)
+ return (
+ '/uyeler/detay/' +
+ araciUyeData.baglisirketId +
+ '/yetkili-uye/detay/' +
+ lotteryData.duzenleyenId
+ )
+ else return null
+ })
+
+ const araciLink = computed(() => {
+ return '/uyeler/detay/' + lotteryData.baglisirketId
+ })
+
+ const CheckForYardimAmacli = (): boolean => {
+ return (
+ usersStore.isVakifDernek ||
+ (usersStore.isAraciFirma && subCustomerType.value === 22)
+ )
+ }
+
+ const isLotteryForCharity = computed((): boolean => {
+ return lotteryPurposeId.value === 2
+ })
+
+ const ResetLotteryData = () => {
+ globalStore.ResetObject(lotteryData, baseLotteryData)
+ Object.assign(lotteryData, baseLotteryData)
+ lotteryApprove.value = null
+ selectedLottery.value = null
+ lotteryData.kapsamIl.splice(0,lotteryData.kapsamIl.length)
+ lotteryData.kapsamIlce.splice(0,lotteryData.kapsamIlce.length)
+ }
+
+ const ResetLotteryContent = () => {
+ Object.assign(lotteryData, baseLotteryData)
+ }
+
+ const LoterryStatusClass = (d: any): string => {
+ let cls = lotteryStatusTypes.value.filter((v) => {
+ return v.name === d
+ })
+ if (cls !== undefined && cls !== null && cls.length !== 0)
+ return 'back-grad-' + cls[0].class
+ else return 'back-grad-waiting'
+ }
+
+ const SetLotteryControlData = (data: Record) => {
+ lotteryApprove.value = data.onayDurum
+ lotteryDrawDate.value = data.cekilisTarihi
+ lotteryDrawState.value = data.cekilisDuzenlemeDurum
+ lotteryStateDate.value = data.sonIslemTarihi
+ lotteryPurposeId.value = data.piyangoAmacId
+ lotteryFirstApproveDate.value = data.ilkIzinTarihi
+ lotteryBasvuruBedeliStatus.value = data.basvuruBedeliDurum
+ lotteryIzinBedeliStatus.value = data.izinBedeliDurum
+ }
+ return {
+ isNew,
+ lotteryId,
+ baseLotteryData,
+ selectedLottery,
+ lotteryApprove,
+ lotteryDrawState,
+ lotteryDrawDate,
+ lotteryIlanTarihi,
+ lotteryFirstApproveDate,
+ lotteryCreationDate,
+ lotteryStateDate,
+ lotteryBasvuruBedeliStatus,
+ lotteryIzinBedeliStatus,
+ subCustomerType,
+ lotteryPurposeId,
+ isLotteryForCharity,
+ lotteryYetkiRefresh,
+ lotteryData,
+ safeLotteryData,
+ duzenleyenData,
+ araciUyeData,
+ lotterySelectedProvience,
+ customerApproved,
+ duzenleyenLink,
+ araciLink,
+ UyeName,
+ CheckForYardimAmacli,
+ ResetLotteryData,
+ ResetLotteryContent,
+ LoterryStatusClass,
+ SetLotteryControlData
+ }
+})
diff --git a/src/module/cekilisler/stores/piyangoYardimAmacliStore.ts b/src/module/cekilisler/stores/piyangoYardimAmacliStore.ts
new file mode 100644
index 0000000..379d44f
--- /dev/null
+++ b/src/module/cekilisler/stores/piyangoYardimAmacliStore.ts
@@ -0,0 +1,156 @@
+import { defineStore } from 'pinia'
+import { ref, reactive, computed } from 'vue'
+import { usePiyangoStore } from './piyangoStore'
+import { useUsersStore } from '@/stores/usersStore'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoYardimAmacliValidationStore } from '../validation/piyangoYardimAmacliValidationStore'
+
+export const usePiyangoYardimAmacliStore = defineStore('piyangoYardimAmacliStore', () => {
+ const usersStore = useUsersStore()
+ const piyangoStore = usePiyangoStore()
+ const validationStore = useValidationStore()
+ const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore()
+
+ const yardimAmacliRakamlar = ref[]>([
+ { title: 'Üç Rakam (000-999)', prefix: 'uc', min: 1, max: 999, maxl: 3 },
+ { title: 'Dort Rakam (0000-9999)', prefix: 'dort', min: 1000, max: 9999, maxl: 4 },
+ { title: 'Beş Rakam (00000-99999)', prefix: 'bes', min: 10000, max: 99999, maxl: 5 },
+ {
+ title: 'Altı Rakam (000000-999999)',
+ prefix: 'alti',
+ min: 100000,
+ max: 999999,
+ maxl: 6
+ }
+ ])
+
+ const piyangoYardimAmacliSafeFormData = reactive>({
+ duzenleyenId: usersStore.userId,
+ cekilsiId: piyangoStore.selectedLottery,
+ basimevi: '',
+ basimeviAdresi: '',
+ birimSatisFiyati: null,
+ altiRakamAdet: null,
+ altiRakamBaslangic: null,
+ altiRakamBitis: null,
+ besRakamAdet: null,
+ besRakamBaslangic: null,
+ besRakamBitis: null,
+ dortRakamAdet: null,
+ dortRakamBaslangic: null,
+ dortRakamBitis: null,
+ ucRakamAdet: null,
+ ucRakamBaslangic: null,
+ ucRakamBitis: null
+ })
+
+ const piyangoYardimAmacliFormData = reactive>({})
+ const piyangoYardimAmacliServerFormData = reactive>({})
+ const loaded = ref(false)
+ const isNew = ref(false)
+
+ const ResetFormData = () => {
+ loaded.value = false
+ if (isNew.value)
+ Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliSafeFormData)
+ else Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliServerFormData)
+ piyangoYardimAmacliValidationStore.formChanged = false
+ setTimeout(() => {
+ loaded.value = true
+ }, 30)
+ }
+
+ const EmptyFormData = () => {
+ Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliSafeFormData)
+ }
+
+ const CreateBiletTable = () => {
+ for (let i = 0; i < yardimAmacliRakamlar.value.length; i++) {
+ piyangoYardimAmacliFormData[
+ yardimAmacliRakamlar.value[i].prefix + 'RakamBaslangic'
+ ] = null
+ piyangoYardimAmacliFormData[yardimAmacliRakamlar.value[i].prefix + 'RakamBitis'] =
+ null
+ piyangoYardimAmacliFormData[yardimAmacliRakamlar.value[i].prefix + 'RakamAdet'] =
+ null
+ }
+ }
+
+ const CalculateToplamBilet = (data: Record) => {
+ if (
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']
+ ) &&
+ validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
+ ) {
+ piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] =
+ 'Bitiş numarasını girmelisiniz.'
+ } else {
+ delete piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis']
+ }
+
+ if (
+ validationStore.checkEmpty(
+ piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']
+ ) &&
+ !validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
+ ) {
+ piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBaslangic'] =
+ 'Başlangıç numarasını girmelisiniz.'
+ } else {
+ delete piyangoYardimAmacliValidationStore.invalidTexts[
+ data.prefix + 'RakamBaslangic'
+ ]
+ }
+
+ if (
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']
+ ) &&
+ !validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
+ ) {
+ if (
+ parseInt(piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']) <
+ parseInt(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
+ ) {
+ delete piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis']
+ piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] =
+ piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'] -
+ piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic'] +
+ 1
+ } else {
+ piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = ''
+ piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] =
+ 'Bitiş numarasını başlangıç numarasından büyük olmalıdır.'
+ }
+ } else {
+ piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = ''
+ }
+
+ piyangoYardimAmacliValidationStore.formChanged = true
+ }
+
+ const toplamBilet = computed(() => {
+ var toplam:number = 0
+ yardimAmacliRakamlar.value.forEach((rakam) => {
+ if(piyangoYardimAmacliFormData[rakam.prefix + 'RakamAdet'] !== null){
+ toplam += Number(piyangoYardimAmacliFormData[rakam.prefix + 'RakamAdet'])
+ }
+ })
+ return toplam
+ })
+
+ return {
+ yardimAmacliRakamlar,
+ piyangoYardimAmacliSafeFormData,
+ piyangoYardimAmacliFormData,
+ piyangoYardimAmacliServerFormData,
+ loaded,
+ isNew,
+ toplamBilet,
+ ResetFormData,
+ EmptyFormData,
+ CreateBiletTable,
+ CalculateToplamBilet
+ }
+})
diff --git a/src/module/cekilisler/validation/piyangoContactValidationStore.ts b/src/module/cekilisler/validation/piyangoContactValidationStore.ts
new file mode 100644
index 0000000..56cbf9e
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoContactValidationStore.ts
@@ -0,0 +1,59 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoContactStore } from '../stores/piyangoContactStore'
+
+export const usePiyangoContactValidationStore = defineStore(
+ 'piyangoContactValidationStore',
+ () => {
+ const validationStore = useValidationStore()
+ const piyangoContactStore = usePiyangoContactStore()
+
+ const invalidTexts = reactive>({})
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'adSoyad', 'Ad ve Soyad alanı boş bırakılamaz.')
+ validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'telefonNumarasi', 'Bir telefon numarası girmelisiniz.')
+ if (!validationStore.checkEmpty(piyangoContactStore.contactData.telefonNumarasi)) {
+ if(piyangoContactStore.contactData.telefonNumarasi.length !== 10){
+ invalidTexts.telefonNumarasi =
+ 'Telefon numaranızı başında 0 olmadan 10 hane olarak giriniz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.telefonNumarasi
+ }
+ }
+
+ if (!validationStore.checkEmpty(piyangoContactStore.contactData.faksNumarasi)) {
+ if(piyangoContactStore.contactData.faksNumarasi.length !== 10){
+ invalidTexts.faksNumarasi =
+ 'Faks numaranızı başında 0 olmadan 10 hane olarak giriniz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.faksNumarasi
+ }
+ }
+
+ validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'eposta', 'Mail adresini girmelisiniz.')
+ validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'unvan', 'Başlık alanı boş bırakılamaz.')
+
+ if (!validationStore.checkEmpty(piyangoContactStore.contactData.eposta)) {
+ if (!validationStore.checkEmail(piyangoContactStore.contactData.eposta)) {
+ invalidTexts.eposta =
+ 'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.eposta
+ }
+ }
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return { invalidTexts, formChanged, FormCheck }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoDocumentValidationStore.ts b/src/module/cekilisler/validation/piyangoDocumentValidationStore.ts
new file mode 100644
index 0000000..c132376
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoDocumentValidationStore.ts
@@ -0,0 +1,44 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoDocumentStore } from '../stores/piyangoDocumentStore'
+
+export const usePiyangoDocumentValidationStore = defineStore(
+ 'piyangoDocumentValidationStore',
+ () => {
+ const piyangoDocumentStore = usePiyangoDocumentStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ piyangoDocumentStore.piyangoDocumentForm,
+ invalidTexts,
+ 'dokumanAdi',
+ 'Döküman için bir başlık belirtmelisiniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoDocumentStore.piyangoDocumentForm,
+ invalidTexts,
+ 'dosya',
+ 'Bir döküman eklemelisiniz.'
+ )
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoIkramiyeValidationStore.ts b/src/module/cekilisler/validation/piyangoIkramiyeValidationStore.ts
new file mode 100644
index 0000000..f307ca3
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoIkramiyeValidationStore.ts
@@ -0,0 +1,83 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+import { usePiyangoIkramiyeStore } from '../stores/piyangoIkramiyeStore'
+
+export const usePiyangoIkramiyeValidationStore = defineStore(
+ 'piyangoIkramiyeValidationStore',
+ () => {
+ const validationStore = useValidationStore()
+ const piyangoStore = usePiyangoStore()
+ const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'cinsi',
+ 'Bu alan boş bırakılamaz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'marka',
+ 'Bu alan boş bırakılamaz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'model',
+ 'Bu alan boş bırakılamaz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'birimFiyat',
+ 'İkramiyenin birim fiyatını giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'paraBirimiId',
+ 'Para birimini seçmelisiniz'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'asilTalihliAdedi',
+ piyangoStore.isLotteryForCharity
+ ? 'Talihli adedini giriniz.'
+ : 'Asıl talihli adedini giriniz.'
+ )
+ if (!piyangoStore.isLotteryForCharity)
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'yedekTalihliAdedi',
+ 'Yedek talihli adedini giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoIkramiyeStore.piyangoIkramiyeForm,
+ invalidTexts,
+ 'toplamDeger',
+ 'Toplam değer alanı boş bırakılamaz.'
+ )
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoItirazValidationStore.ts b/src/module/cekilisler/validation/piyangoItirazValidationStore.ts
new file mode 100644
index 0000000..e4eb4b4
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoItirazValidationStore.ts
@@ -0,0 +1,71 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'
+
+export const usePiyangoItirazValidationStore = defineStore(
+ 'piyangoItirazValidationStore',
+ () => {
+ const piyangoItirazStore = usePiyangoItirazStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ piyangoItirazStore.piyangoItirazForm,
+ invalidTexts,
+ 'surecTipiId',
+ 'Süreç tipini seçmelisiniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoItirazStore.piyangoItirazForm,
+ invalidTexts,
+ 'durum',
+ 'Süreç durumunu seçmelisiniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoItirazStore.piyangoItirazForm,
+ invalidTexts,
+ 'itirazTarihi',
+ 'İtiraz tarihini seçmelisiniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoItirazStore.piyangoItirazForm,
+ invalidTexts,
+ 'itirazEden',
+ 'İtiraz eden kişi/kurumun adını yazmalısınız.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoItirazStore.piyangoItirazForm,
+ invalidTexts,
+ 'aciklama',
+ 'Açıklama alanı boş bırakılamaz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoItirazStore.piyangoItirazForm,
+ invalidTexts,
+ 'dosya',
+ 'Dosya yüklemelisiniz.'
+ )
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoMecraValidationStore.ts b/src/module/cekilisler/validation/piyangoMecraValidationStore.ts
new file mode 100644
index 0000000..6ec2114
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoMecraValidationStore.ts
@@ -0,0 +1,37 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoMecraStore } from '../stores/piyangoMecraStore'
+
+export const usePiyangoMecraValidationStore = defineStore(
+ 'piyangoMecraValidationStore',
+ () => {
+ const piyangoMecraStore = usePiyangoMecraStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ piyangoMecraStore.piyangoMecraForm,
+ invalidTexts,
+ 'mecraAdi',
+ 'Yayınlanacak mecranın adını yazınız.'
+ )
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoOnayValidationStore.ts b/src/module/cekilisler/validation/piyangoOnayValidationStore.ts
new file mode 100644
index 0000000..9b17c3c
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoOnayValidationStore.ts
@@ -0,0 +1,36 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
+
+export const usePiyangoOnayValidationStore = defineStore(
+ 'piyangoOnayValidationStore',
+ () => {
+ const validationStore = useValidationStore()
+ const piyangoOnayStore = usePiyangoOnayStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ piyangoOnayStore.piyangoOnayForm,
+ invalidTexts,
+ 'onayDurumuIslemTipiId',
+ 'Bir işlem tipi seçmelisinz.'
+ )
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoTeminatValidationStore.ts b/src/module/cekilisler/validation/piyangoTeminatValidationStore.ts
new file mode 100644
index 0000000..d9bf973
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoTeminatValidationStore.ts
@@ -0,0 +1,83 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoTeminatStore } from '../stores/piyangoTeminatStore'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const usePiyangoTeminatValidationStore = defineStore(
+ 'piyangoTeminatValidationStore',
+ () => {
+ const piyangoTeminatStore = usePiyangoTeminatStore()
+ const validationStore = useValidationStore()
+ const usersStore = useUsersStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+ if (usersStore.isPanelUser) {
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'state',
+ 'Lütfen işlem tipini seçiniz.'
+ )
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'amount',
+ 'Lütfen tutarı giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'bankName',
+ 'Lütfen banka adını giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'bankBranch',
+ 'Lütfen banka şubesini giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'teminatParentType',
+ 'Lütfen ödeme türünü seçiniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'teminantChildType',
+ 'Lütfen teminat türünü seçiniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'teminantDate',
+ 'Tarih alanı boş bırakılamaz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoTeminatStore.piyangoTeminatFormData,
+ invalidTexts,
+ 'teminantNo',
+ 'No alanı boş bırakılamaz.'
+ )
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/validation/piyangoValidationStore.ts b/src/module/cekilisler/validation/piyangoValidationStore.ts
new file mode 100644
index 0000000..79c26c5
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoValidationStore.ts
@@ -0,0 +1,675 @@
+import { defineStore } from 'pinia'
+import { ref, reactive, computed } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+import { useValidationStore } from '@/stores/validationStore'
+import { useDateStore } from '@/stores/dateStore'
+import { usePiyangoStore } from '../stores/piyangoStore'
+
+export const usePiyangoValidationStore = defineStore('piyangoValidationStore', () => {
+ const usersStore = useUsersStore()
+ const piyangoStore = usePiyangoStore()
+ const validationStore = useValidationStore()
+ const dateStore = useDateStore()
+
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+ const dateChanged = ref(false)
+ const baslangicTarihiMin = ref(new Date())
+
+ //Kampanya Bitis Tarihi
+ const kampanyaBitisDisabled = computed((): boolean => {
+ return piyangoStore.lotteryData.baslangicTarihi === ''
+ })
+
+ const kampanyaBitisMin = computed((): Date => {
+ let date = new Date(piyangoStore.lotteryData.baslangicTarihi)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let time = date.getTime()
+ let addHour = 1 * 60 * 60 * 1000
+ let newDate = new Date(year, month, day)
+ newDate.setTime(time + addHour)
+ return newDate
+ })
+ const kampanyaBitisMax = computed((): Date => {
+ let date = new Date(piyangoStore.lotteryData.baslangicTarihi)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let newDate = new Date(year, month + 6, day)
+ return newDate
+ })
+ //Cekilis Tarihi
+ const cekilisTarihiDisabled = computed((): boolean => {
+ return (
+ piyangoStore.lotteryData.amacpiyangoId !== 2 &&
+ (piyangoStore.lotteryData.bitisTarihi === '' ||
+ piyangoStore.lotteryData.baslangicTarihi === '')
+ )
+ })
+ const cekilisTarihiMin = computed((): Date => {
+ if (piyangoStore.lotteryData.amacpiyangoId === 2) return new Date()
+ else return piyangoStore.lotteryData.bitisTarihi
+ })
+ //Ilan Tarihi
+ const ilanTarihiDisabled = computed((): boolean => {
+ if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
+ return (
+ piyangoStore.lotteryData.bitisTarihi === '' ||
+ piyangoStore.lotteryData.baslangicTarihi === '' ||
+ piyangoStore.lotteryData.cekilisTarihi === ''
+ )
+ } else {
+ return piyangoStore.lotteryData.cekilisTarihi === ''
+ }
+ })
+ const ilanTarihiMin = computed((): Date => {
+ return piyangoStore.lotteryData.cekilisTarihi
+ })
+ const ilanTarihiMax = computed((): Date => {
+ let date = new Date(piyangoStore.lotteryData.cekilisTarihi)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let newDate = new Date(year, month, day + 7)
+ return newDate
+ })
+ //Ilan Tarihi 2
+ const ilanTarihi2Disabled = computed((): boolean => {
+ return (
+ piyangoStore.lotteryData.cekilisTarihi === '' ||
+ piyangoStore.lotteryData.ilantarihi === ''
+ )
+ })
+ const ilanTarihi2Min = computed((): Date => {
+ let date = new Date(piyangoStore.lotteryData.ilantarihi)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let newDate = new Date(year, month, day + 1)
+ return newDate
+ })
+ const ilanTarihi2Max = computed((): Date => {
+ let date = new Date(piyangoStore.lotteryData.cekilisTarihi)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let newDate = new Date(year, month, day + 7)
+ return newDate
+ })
+
+ //Asıl Son Basvuru
+ const asilSonBasvuruDisabled = computed((): boolean => {
+ if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
+ return (
+ piyangoStore.lotteryData.baslangicTarihi === '' ||
+ piyangoStore.lotteryData.bitisTarihi === '' ||
+ piyangoStore.lotteryData.cekilisTarihi === '' ||
+ piyangoStore.lotteryData.ilantarihi === ''
+ )
+ } else {
+ return (
+ piyangoStore.lotteryData.cekilisTarihi === '' ||
+ piyangoStore.lotteryData.ilantarihi === '' ||
+ piyangoStore.lotteryData.ilantarihi2 === ''
+ )
+ }
+ })
+ const asilSonBasvuruMin = computed((): Date => {
+ if (piyangoStore.lotteryData.amacpiyangoId !== 2)
+ return piyangoStore.lotteryData.ilantarihi
+ else return piyangoStore.lotteryData.ilantarihi2
+ })
+
+ const asilSonBasvuruMax = computed((): Date => {
+ let selectDate =
+ piyangoStore.lotteryData.amacpiyangoId !== 2
+ ? piyangoStore.lotteryData.ilantarihi
+ : piyangoStore.lotteryData.ilantarihi2
+ let date = new Date(selectDate)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let newDate = new Date(year, month, day + 15)
+ return newDate
+ })
+ //Yedek Son Basvuru
+ const yedekSonBasvuruDisabled = computed((): boolean => {
+ return (
+ piyangoStore.lotteryData.baslangicTarihi === '' ||
+ piyangoStore.lotteryData.bitisTarihi === '' ||
+ piyangoStore.lotteryData.cekilisTarihi === '' ||
+ piyangoStore.lotteryData.ilantarihi === '' ||
+ piyangoStore.lotteryData.asilSonBasvuruTarihi === ''
+ )
+ })
+ const yedekSonBasvuruMin = computed((): Date => {
+ return piyangoStore.lotteryData.asilSonBasvuruTarihi
+ })
+ const yedekSonBasvuruMax = computed((): Date => {
+ let date = new Date(piyangoStore.lotteryData.asilSonBasvuruTarihi)
+ let year = date.getFullYear()
+ let month = date.getMonth()
+ let day = date.getDate()
+ let newDate = new Date(year, month, day + 15)
+ return newDate
+ })
+ //Ikramiye Son Teslim
+ const ikramiyeTeslimDisabled = computed((): boolean => {
+ if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
+ return (
+ piyangoStore.lotteryData.baslangicTarihi === '' ||
+ piyangoStore.lotteryData.cekilisTarihi === ''
+ )
+ } else {
+ return piyangoStore.lotteryData.cekilisTarihi === ''
+ }
+ })
+ const ikramiyeTeslimMin = computed((): Date => {
+ return piyangoStore.lotteryData.asilSonBasvuruTarihi
+ })
+ const ikramiyeTeslimMax = computed((): Date => {
+ var date: Date = new Date()
+
+ if (!piyangoStore.isLotteryForCharity) {
+ date = new Date(piyangoStore.lotteryData.baslangicTarihi)
+ } else {
+ if (
+ piyangoStore.lotteryFirstApproveDate === '' ||
+ piyangoStore.lotteryFirstApproveDate === null
+ ) {
+ date = new Date(piyangoStore.lotteryCreationDate)
+ } else {
+ date = new Date(piyangoStore.lotteryFirstApproveDate)
+ }
+ }
+
+ var year = date.getFullYear()
+ var month = date.getMonth()
+ var day = date.getDate()
+
+ let newDate = new Date(year + 1, month, day)
+ return newDate
+ })
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'baslik',
+ 'Başlık alanı boş bırakılamaz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'amacpiyangoId',
+ 'Piyangoyu hangi amaçla düzenlediğinizi seçmelisiniz.'
+ )
+ if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) {
+ if (
+ ((!usersStore.isVakifDernek &&
+ !usersStore.isAraciFirma &&
+ !usersStore.isPanelUser) ||
+ (usersStore.isPanelUser && piyangoStore.duzenleyenData.basvuruTipId !== 22)) &&
+ piyangoStore.lotteryData.amacpiyangoId === 2
+ ) {
+ if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
+ isFormValid.value = false
+ invalidTexts.amacpiyangoId =
+ 'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.'
+ }
+ }
+
+ if (
+ (usersStore.isAraciFirma && !usersStore.isPanelUser) ||
+ (usersStore.isPanelUser && piyangoStore.lotteryData.baglisirketId !== null)
+ ) {
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'baglisirketId',
+ 'Hangi kişi/kurum adına çekilişi düzenlediğiniz seçmelisiniz.'
+ )
+
+ if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) {
+ if (!validationStore.checkEmpty(piyangoStore.lotteryData.baglisirketId)) {
+ if (
+ piyangoStore.duzenleyenData.basvuruTipId !== 22 &&
+ piyangoStore.lotteryData.amacpiyangoId === 2
+ ) {
+ if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
+ isFormValid.value = false
+ invalidTexts.amacpiyangoId =
+ 'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.'
+ }
+ }
+ }
+ }
+ if (piyangoStore.lotteryData.amacpiyangoId !== 3) {
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'kapsamIl',
+ 'Çekilişin hangi illeri kapsadığını seçmelisiniz.'
+ )
+
+ if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'cekilisSartveSekilleri',
+ 'Lütfen katılma şartlarını belirtiniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'baslangicTarihi',
+ 'Kampanya başlangıç tarihi seçmelisiniz.'
+ )
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let baslangicTarihi = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.baslangicTarihi,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+ let baslangicmin = dateStore.dateFormat({
+ date: baslangicTarihiMin.value,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+ let baslangicmind = dateStore.dateFormat({
+ date: baslangicTarihiMin.value,
+ pattern: 'dd-mm-yy-t'
+ })
+ if (baslangicTarihi < baslangicmin) {
+ isFormValid.value = false
+ invalidTexts.baslangicTarihi = `Kampanya Başlangıç Tarihi ${baslangicmind} tarihinden büyük olmalıdır.`
+ } else {
+ delete invalidTexts.baslangicTarihi
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'bitisTarihi',
+ 'Kampanya bitiş tarihi seçmelisiniz.'
+ )
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let bitisTarihi = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.bitisTarihi,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+
+ let bitismin = dateStore.dateFormat({
+ date: kampanyaBitisMin.value,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+ let bitismax = dateStore.dateFormat({
+ date: kampanyaBitisMax.value,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+ let bitismind = dateStore.dateFormat({
+ date: kampanyaBitisMin.value,
+ pattern: 'dd-mm-yy-t'
+ })
+ let bitismaxd = dateStore.dateFormat({
+ date: kampanyaBitisMax.value,
+ pattern: 'dd-mm-yy-t'
+ })
+ if (bitisTarihi < bitismin || bitisTarihi > bitismax) {
+ isFormValid.value = false
+ invalidTexts.bitisTarihi = `Kampanya Bitiş Tarihi ${bitismind} - ${bitismaxd} tarihleri arasında olmalıdır.`
+ } else {
+ delete invalidTexts.bitisTarihi
+ }
+ }
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) &&
+ !validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi)
+ ) {
+ if (
+ piyangoStore.lotteryData.bitisTarihi <
+ piyangoStore.lotteryData.baslangicTarihi
+ ) {
+ invalidTexts.baslangicTarihi = `Başlangıç tarihi bitiş tarihinden küçük olamaz.`
+ } else {
+ delete invalidTexts.baslangicTarihi
+ }
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'cekilisTarihi',
+ 'Çekilişin yapılacağı tarihi seçmelisiniz.'
+ )
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.cekilisTarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) &&
+ !usersStore.isPanelUser
+ ) {
+ let cekilisTarihi = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.cekilisTarihi,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+ let cekilismin = dateStore.dateFormat({
+ date: cekilisTarihiMin.value,
+ pattern: 'yy-mm-dd-t',
+ splitTime: 'T',
+ splitDate: '-'
+ })
+ let cekilismind = dateStore.dateFormat({
+ date: cekilisTarihiMin.value,
+ pattern: 'dd-mm-yy-t'
+ })
+ if (cekilisTarihi < cekilismin) {
+ isFormValid.value = false
+ invalidTexts.cekilisTarihi = `Çekiliş Tarihi ${cekilismind} tarihinden büyük olmalıdır.`
+ } else {
+ delete invalidTexts.cekilisTarihi
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'ilantarihi',
+ 'İlan tarihi seçmelisiniz.'
+ )
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let ilanTarihi = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ilantarihi,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ilanmin = dateStore.dateFormat({
+ date: ilanTarihiMin.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ilanmax = dateStore.dateFormat({
+ date: ilanTarihiMax.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ilanmind = dateStore.dateFormat({
+ date: ilanTarihiMin.value,
+ pattern: 'dd-mm-yy'
+ })
+ let ilanmaxd = dateStore.dateFormat({
+ date: ilanTarihiMax.value,
+ pattern: 'dd-mm-yy'
+ })
+ if (ilanTarihi < ilanmin || ilanTarihi > ilanmax) {
+ isFormValid.value = false
+ invalidTexts.ilantarihi = `İlan Tarihi ${ilanmind} - ${ilanmaxd} tarihleri arasında olmalıdır.`
+ } else {
+ delete invalidTexts.ilantarihi
+ }
+ }
+
+ if (piyangoStore.lotteryData.amacpiyangoId === 2) {
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'ilantarihi2',
+ '2. İlan tarihi seçmelisiniz.'
+ )
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi2) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let ilanTarihi2 = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ilantarihi2,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ilan2min = dateStore.dateFormat({
+ date: ilanTarihi2Min.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ilan2max = dateStore.dateFormat({
+ date: ilanTarihi2Max.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ilan2mind = dateStore.dateFormat({
+ date: ilanTarihi2Min.value,
+ pattern: 'dd-mm-yy'
+ })
+ let ilan2maxd = dateStore.dateFormat({
+ date: ilanTarihi2Max.value,
+ pattern: 'dd-mm-yy'
+ })
+
+ if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) {
+ isFormValid.value = false
+ invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.`
+ } else {
+ delete invalidTexts.ilantarihi2
+ }
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'asilSonBasvuruTarihi',
+ 'Asıl Talihliler için son başvuru tarihi seçmelisiniz.'
+ )
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.asilSonBasvuruTarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let asilTarih = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let asilmin = dateStore.dateFormat({
+ date: asilSonBasvuruMin.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let asilmax = dateStore.dateFormat({
+ date: asilSonBasvuruMax.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ if (asilTarih < asilmin || asilTarih > asilmax) {
+ isFormValid.value = false
+ invalidTexts.asilSonBasvuruTarihi = `Asıl Talihli son başvuru tarihi çekiliş sonucunun ilan ve tebliğ edildiği tarihten itibaren on beş gün içerisinde olmalıdır.`
+ } else {
+ delete invalidTexts.asilSonBasvuruTarihi
+ }
+ }
+
+ if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'yedekSonBasvuruTarihi',
+ 'Yedek talihliler için son başvuru tarihi seçmelisiniz.'
+ )
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.yedekSonBasvuruTarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let yedekTarih = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.yedekSonBasvuruTarihi,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let yedekmin = dateStore.dateFormat({
+ date: yedekSonBasvuruMin.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let yedekmax = dateStore.dateFormat({
+ date: yedekSonBasvuruMax.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ if (yedekTarih < yedekmin || yedekTarih > yedekmax) {
+ isFormValid.value = false
+ invalidTexts.yedekSonBasvuruTarihi = `Yedek Talihli Son Başvuru Tarihi, asıl talihliyi takip eden on beş gün içerisinde olmalıdır.`
+ } else {
+ delete invalidTexts.yedekSonBasvuruTarihi
+ }
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'ikramiyeTeslimTarihi',
+ 'İkramiyelerin teslim edileceği tarihi seçmelisiniz.'
+ )
+
+ if (
+ !validationStore.checkEmpty(piyangoStore.lotteryData.ikramiyeTeslimTarihi) &&
+ (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
+ ) {
+ let ikramiyeTeslimTarih = dateStore.dateFormat({
+ date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ikramiyemin = dateStore.dateFormat({
+ date: ikramiyeTeslimMin.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ikramiyemax = dateStore.dateFormat({
+ date: ikramiyeTeslimMax.value,
+ pattern: 'yy-mm-dd',
+ splitDate: '-'
+ })
+ let ikramiyemind = dateStore.dateFormat({
+ date: ikramiyeTeslimMin.value,
+ pattern: 'dd-mm-yy'
+ })
+ let ikramiyemaxd = dateStore.dateFormat({
+ date: ikramiyeTeslimMax.value,
+ pattern: 'dd-mm-yy'
+ })
+ if (ikramiyeTeslimTarih < ikramiyemin || ikramiyeTeslimTarih > ikramiyemax) {
+ isFormValid.value = false
+ invalidTexts.ikramiyeTeslimTarihi = `İkramiye Son Teslim Tarihi ${ikramiyemind} - ${ikramiyemaxd} tarihleri arasında olmalıdır.`
+ } else {
+ delete invalidTexts.ikramiyeTeslimTarihi
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'ilanEdilecekGazete',
+ 'İlan edilecek gazete belirtmelisiniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'ilId',
+ 'Lütfen il seçiniz'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'ilceId',
+ 'Lütfen ilçe seçiniz'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'adres',
+ 'Adres alanı boş bırakılamaz'
+ )
+
+ if (!piyangoStore.CheckForYardimAmacli()) {
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'katilimListesi',
+ 'Katılım Listesi için açıklamaları giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'katilimciListesiTeslimYontemiId',
+ 'Katılım listesini nasıl yükleyeceğiniz belirtiniz.'
+ )
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoStore.lotteryData,
+ invalidTexts,
+ 'cekilisYontemiId',
+ 'Çekiliş yönteminizi belirtiniz.'
+ )
+ }
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ isFormValid,
+ invalidTexts,
+ dateChanged,
+ baslangicTarihiMin,
+ kampanyaBitisDisabled,
+ kampanyaBitisMin,
+ kampanyaBitisMax,
+ cekilisTarihiDisabled,
+ cekilisTarihiMin,
+ ilanTarihiDisabled,
+ ilanTarihiMin,
+ ilanTarihiMax,
+ ilanTarihi2Disabled,
+ ilanTarihi2Min,
+ ilanTarihi2Max,
+ asilSonBasvuruDisabled,
+ asilSonBasvuruMin,
+ asilSonBasvuruMax,
+ yedekSonBasvuruDisabled,
+ yedekSonBasvuruMin,
+ yedekSonBasvuruMax,
+ ikramiyeTeslimDisabled,
+ ikramiyeTeslimMin,
+ ikramiyeTeslimMax,
+ FormCheck
+ }
+})
diff --git a/src/module/cekilisler/validation/piyangoYardimAmacliValidationStore.ts b/src/module/cekilisler/validation/piyangoYardimAmacliValidationStore.ts
new file mode 100644
index 0000000..64863c4
--- /dev/null
+++ b/src/module/cekilisler/validation/piyangoYardimAmacliValidationStore.ts
@@ -0,0 +1,248 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { usePiyangoYardimAmacliStore } from '../stores/piyangoYardimAmacliStore'
+
+export const usePiyangoYardimAmacliValidationStore = defineStore(
+ 'piyangoYardimAmacliValidationStore',
+ () => {
+ const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+ const emptyBilet = reactive>({})
+ const allBiletInvalid = ref(false)
+ const biletInvalidMessages = ref([])
+
+ const IsAllBiletsEmpty = () => {
+ for (let i = 0; i < piyangoYardimAmacliStore.yardimAmacliRakamlar.length; i++) {
+ emptyBilet[piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix] =
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamBaslangic'
+ ]
+ ) &&
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamBitis'
+ ]
+ ) &&
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamAdet'
+ ]
+ )
+ }
+ }
+
+ const CheckBiletEmpty = () => {
+ IsAllBiletsEmpty()
+ var isvalid = true
+ var count = 0
+ Object.keys(emptyBilet).forEach((key) => {
+ if (!emptyBilet[key]) {
+ count++
+ }
+ })
+
+ if (count === piyangoYardimAmacliStore.yardimAmacliRakamlar.length) isvalid = false
+
+ if (isvalid) {
+ isFormValid.value = true
+ allBiletInvalid.value = false
+ } else {
+ biletInvalidMessages.value.push('Bilet alanları doldurulmamıştır.')
+ isFormValid.value = false
+ allBiletInvalid.value = true
+ }
+ }
+
+ const CheckBiletSatir = () => {
+ biletInvalidMessages.value = []
+ var eksikHane: boolean = false
+ var baslangicRakam: boolean = false
+ var bitisRakam: boolean = false
+ var bitisKucuk: boolean = false
+
+ piyangoYardimAmacliStore.yardimAmacliRakamlar.forEach((data, i) => {
+ //Baslangic Rakam sayisi
+ if (
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBaslangic'
+ ]
+ ) &&
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBaslangic'
+ ].length < data.maxl
+ ) {
+ isFormValid.value = false
+ if (!eksikHane) {
+ eksikHane = true
+ biletInvalidMessages.value.push(
+ 'Bilet numarası girilirken eksik hane girilmiş'
+ )
+ }
+ invalidTexts[
+ data.prefix + 'RakamBaslangic'
+ ] = `Bilet numarası en az ${data.maxl} haneli olmalıdır`
+ } else delete invalidTexts[data.prefix + 'RakamBaslangic']
+
+ //Bitis Rakam sayisi
+ if (
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBitis'
+ ]
+ ) &&
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[data.prefix + 'RakamBitis']
+ .length < data.maxl
+ ) {
+ isFormValid.value = false
+ if (!eksikHane) {
+ eksikHane = true
+ biletInvalidMessages.value.push(
+ 'Bilet numarası girilirken eksik hane girilmiş'
+ )
+ }
+ invalidTexts[
+ data.prefix + 'RakamBitis'
+ ] = `Bilet numarası en az ${data.maxl} haneli olmalıdır`
+ } else delete invalidTexts[data.prefix + 'RakamBitis']
+
+ //Bitis numarasi girilmemis
+ if (
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBaslangic'
+ ]
+ ) &&
+ validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBitis'
+ ]
+ )
+ ) {
+ isFormValid.value = false
+ if (!bitisRakam) {
+ bitisRakam = true
+ biletInvalidMessages.value.push(
+ 'Bilet numarası girilirken başlangıç numarası girilmiş, bitiş numarası girilmemiş.'
+ )
+ }
+ invalidTexts[data.prefix + 'RakamBitis'] = 'Bitiş numarasını girmelisiniz.'
+ } else {
+ delete invalidTexts[data.prefix + 'RakamBitis']
+ }
+
+ //Baslangic numarasi girilmemis
+ if (
+ validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBaslangic'
+ ]
+ ) &&
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBitis'
+ ]
+ )
+ ) {
+ isFormValid.value = false
+ if (!baslangicRakam) {
+ baslangicRakam = true
+ biletInvalidMessages.value.push(
+ 'Bilet numarası girilirken bitiş numarası girilmiş, başlangıç numarası girilmemiş.'
+ )
+ }
+ invalidTexts[data.prefix + 'RakamBaslangic'] =
+ 'Başlangıç numarasını girmelisiniz.'
+ } else {
+ delete invalidTexts[data.prefix + 'RakamBaslangic']
+ }
+
+ //Baslangic numarasi Bitis numarasindan buyuk
+ if (
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBaslangic'
+ ]
+ ) &&
+ !validationStore.checkEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBitis'
+ ]
+ )
+ ) {
+ if (
+ parseInt(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBaslangic'
+ ]
+ ) >=
+ parseInt(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
+ data.prefix + 'RakamBitis'
+ ]
+ )
+ ) {
+ isFormValid.value = false
+ if (!bitisKucuk) {
+ bitisKucuk = true
+ biletInvalidMessages.value.push(
+ 'Bilet numarası girilirken bitiş numarası başlangıç numarasından küçük girilmiş.'
+ )
+ }
+ invalidTexts[data.prefix + 'RakamBitis'] =
+ 'Bitiş numarasını başlangıç numarasından büyük olmalıdır.'
+ } else {
+ delete invalidTexts[data.prefix + 'RakamBitis']
+ }
+ }
+ })
+ }
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+ CheckBiletEmpty()
+
+ if (!allBiletInvalid.value) {
+ CheckBiletSatir()
+ }
+
+ validationStore.IsFieldEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData,
+ invalidTexts,
+ 'basimevi',
+ 'Lütfen Basımevi adını giriniz'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData,
+ invalidTexts,
+ 'basimeviAdresi',
+ 'Lütfen Basımevi adresini giriniz'
+ )
+ validationStore.IsFieldEmpty(
+ piyangoYardimAmacliStore.piyangoYardimAmacliFormData,
+ invalidTexts,
+ 'birimSatisFiyati',
+ 'Lütfen Bilet birim satış fiyatını giriniz'
+ )
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ allBiletInvalid,
+ biletInvalidMessages,
+ CheckBiletEmpty,
+ CheckBiletSatir,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/cekilisler/views/PiyangoYeni.vue b/src/module/cekilisler/views/PiyangoYeni.vue
new file mode 100644
index 0000000..e7ee743
--- /dev/null
+++ b/src/module/cekilisler/views/PiyangoYeni.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/module/kullanicilar/components/TabKullaniciBilgileri.vue b/src/module/kullanicilar/components/TabKullaniciBilgileri.vue
new file mode 100644
index 0000000..a52dadc
--- /dev/null
+++ b/src/module/kullanicilar/components/TabKullaniciBilgileri.vue
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/src/module/kullanicilar/components/TabKullaniciBirimleri.vue b/src/module/kullanicilar/components/TabKullaniciBirimleri.vue
new file mode 100644
index 0000000..6f45670
--- /dev/null
+++ b/src/module/kullanicilar/components/TabKullaniciBirimleri.vue
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/src/module/kullanicilar/components/TabKullaniciGorevleri.vue b/src/module/kullanicilar/components/TabKullaniciGorevleri.vue
new file mode 100644
index 0000000..793a341
--- /dev/null
+++ b/src/module/kullanicilar/components/TabKullaniciGorevleri.vue
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/src/module/kullanicilar/components/TabKullaniciLoglari.vue b/src/module/kullanicilar/components/TabKullaniciLoglari.vue
new file mode 100644
index 0000000..7997ff6
--- /dev/null
+++ b/src/module/kullanicilar/components/TabKullaniciLoglari.vue
@@ -0,0 +1,38 @@
+
+
+
+
diff --git a/src/module/kullanicilar/components/form/FormKullaniciBilgileri.vue b/src/module/kullanicilar/components/form/FormKullaniciBilgileri.vue
new file mode 100644
index 0000000..a7a4832
--- /dev/null
+++ b/src/module/kullanicilar/components/form/FormKullaniciBilgileri.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Kaydet
+ Vazgeç
+
+
+
+
+
+
diff --git a/src/module/kullanicilar/components/form/FormKullaniciBirimleri.vue b/src/module/kullanicilar/components/form/FormKullaniciBirimleri.vue
new file mode 100644
index 0000000..2cfb3f9
--- /dev/null
+++ b/src/module/kullanicilar/components/form/FormKullaniciBirimleri.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+ {{ appUserUnitStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/kullanicilar/components/form/FormKullaniciGorevleri.vue b/src/module/kullanicilar/components/form/FormKullaniciGorevleri.vue
new file mode 100644
index 0000000..fffb030
--- /dev/null
+++ b/src/module/kullanicilar/components/form/FormKullaniciGorevleri.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+ {{ appUserRoleStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/kullanicilar/components/form/FormKullaniciRolleri.vue b/src/module/kullanicilar/components/form/FormKullaniciRolleri.vue
new file mode 100644
index 0000000..6261cb7
--- /dev/null
+++ b/src/module/kullanicilar/components/form/FormKullaniciRolleri.vue
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/src/module/kullanicilar/components/form/FormSifreDegistir.vue b/src/module/kullanicilar/components/form/FormSifreDegistir.vue
new file mode 100644
index 0000000..10bc1e5
--- /dev/null
+++ b/src/module/kullanicilar/components/form/FormSifreDegistir.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+ Kaydet
+ Vazgeç
+
+
+
+
+
diff --git a/src/module/kullanicilar/components/panel/PanelKullaniciBirim.vue b/src/module/kullanicilar/components/panel/PanelKullaniciBirim.vue
new file mode 100644
index 0000000..2f46296
--- /dev/null
+++ b/src/module/kullanicilar/components/panel/PanelKullaniciBirim.vue
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/src/module/kullanicilar/components/panel/PanelKullaniciGorev.vue b/src/module/kullanicilar/components/panel/PanelKullaniciGorev.vue
new file mode 100644
index 0000000..1c84f92
--- /dev/null
+++ b/src/module/kullanicilar/components/panel/PanelKullaniciGorev.vue
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/src/module/kullanicilar/routes/index.ts b/src/module/kullanicilar/routes/index.ts
new file mode 100644
index 0000000..f5e2998
--- /dev/null
+++ b/src/module/kullanicilar/routes/index.ts
@@ -0,0 +1,13 @@
+import kullanciYeni from './kullanici-yeni'
+import kullaniciDetay from './kullanici-detay'
+import kullaniciListesi from '@/module/kullanicilar/routes/kullanici-listesi'
+import kullaniciRolleri from '@/module/kullanicilar/routes/kullanici-rolleri'
+import kullaniciAyarlari from './kullanici-ayarlari'
+
+export default [
+ kullanciYeni,
+ kullaniciDetay,
+ kullaniciListesi,
+ kullaniciRolleri,
+ kullaniciAyarlari
+]
diff --git a/src/module/kullanicilar/routes/kullanici-ayarlari.ts b/src/module/kullanicilar/routes/kullanici-ayarlari.ts
new file mode 100644
index 0000000..47c0bb6
--- /dev/null
+++ b/src/module/kullanicilar/routes/kullanici-ayarlari.ts
@@ -0,0 +1,10 @@
+import KullaniciAyarlari from '../views/KullaniciAyarlari.vue'
+
+export default {
+ path: '/kullanicilar/kullanici-ayarlari',
+ name: 'KullaniciAyarlari',
+ component: KullaniciAyarlari,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/kullanicilar/routes/kullanici-detay.ts b/src/module/kullanicilar/routes/kullanici-detay.ts
new file mode 100644
index 0000000..dad3e2b
--- /dev/null
+++ b/src/module/kullanicilar/routes/kullanici-detay.ts
@@ -0,0 +1,10 @@
+import KullaniciDetay from '@/module/kullanicilar/views/KullaniciDetay.vue'
+
+export default {
+ path: '/kullanicilar/detay/:kullaniciId',
+ name: 'KullaniciDetay',
+ component: KullaniciDetay,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/kullanicilar/routes/kullanici-listesi.ts b/src/module/kullanicilar/routes/kullanici-listesi.ts
new file mode 100644
index 0000000..2fc4e25
--- /dev/null
+++ b/src/module/kullanicilar/routes/kullanici-listesi.ts
@@ -0,0 +1,10 @@
+import KullaniciListesi from "@/module/kullanicilar/views/KullaniciListesi.vue";
+
+export default {
+ path:'/kullanicilar/kullanici-liste',
+ name:'KullaniciListesi',
+ component:KullaniciListesi,
+ meta:{
+ authRequired:true
+ }
+}
\ No newline at end of file
diff --git a/src/module/kullanicilar/routes/kullanici-rolleri.ts b/src/module/kullanicilar/routes/kullanici-rolleri.ts
new file mode 100644
index 0000000..98aa762
--- /dev/null
+++ b/src/module/kullanicilar/routes/kullanici-rolleri.ts
@@ -0,0 +1,11 @@
+import KullaniciRolleri from "@/module/kullanicilar/views/KullaniciRolleri.vue";
+
+export default {
+ path: '/kullanicilar/kullanici-roller',
+ name: 'KullaniciRoller',
+ component: KullaniciRolleri,
+ meta: {
+ authRequired: true
+ }
+
+}
\ No newline at end of file
diff --git a/src/module/kullanicilar/routes/kullanici-yeni.ts b/src/module/kullanicilar/routes/kullanici-yeni.ts
new file mode 100644
index 0000000..2f4142c
--- /dev/null
+++ b/src/module/kullanicilar/routes/kullanici-yeni.ts
@@ -0,0 +1,10 @@
+import KullaniciYeni from '@/module/kullanicilar/views/KullaniciYeni.vue'
+
+export default {
+ path: '/kullanicilar/yeni-kullanici',
+ name: 'YeniKullanici',
+ component: KullaniciYeni,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/kullanicilar/service/appUserRoleService.ts b/src/module/kullanicilar/service/appUserRoleService.ts
new file mode 100644
index 0000000..d0f1486
--- /dev/null
+++ b/src/module/kullanicilar/service/appUserRoleService.ts
@@ -0,0 +1,44 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useAppUserRoleStore } from '../stores/appUserRoleStore'
+import { useAppUserRoleValidationStore } from '../validation/appUserRoleValidationStore'
+
+export const useAppUserRoleService = defineStore('appUserRoleService', () => {
+ const dataStore = useDataStore()
+ const appUserRoleStore = useAppUserRoleStore()
+ const appUserRoleValidationStore = useAppUserRoleValidationStore()
+
+ const GetAppUserRoleList = async () => {
+ if (appUserRoleStore.appUserRoles.length === 0) {
+ let data = await dataStore.dataGet('KullaniciGorevi')
+ appUserRoleStore.appUserRoles = data
+ }
+ }
+
+ const SaveRole = async () => {
+ if (appUserRoleValidationStore.FormCheck()) {
+ if (appUserRoleStore.appUserRoleForm.appUsers === null)
+ appUserRoleStore.appUserRoleForm.appUsers = []
+ let dt: any
+ if (!appUserRoleStore.isUpdate) {
+ dt = await dataStore.dataPost('KullaniciGorevi', {
+ data: appUserRoleStore.appUserRoleForm
+ })
+ } else {
+ dt = await dataStore.dataPut('KullaniciGorevi/' + appUserRoleStore.appUserRoleForm.id, {
+ data: appUserRoleStore.appUserRoleForm
+ })
+ }
+ if (dt !== 'errorfalse') {
+ appUserRoleStore.refreshList = true
+ appUserRoleStore.isUpdate = false
+ appUserRoleStore.rolePanel = false
+ }
+ }
+ }
+
+ return {
+ GetAppUserRoleList,
+ SaveRole
+ }
+})
\ No newline at end of file
diff --git a/src/module/kullanicilar/service/appUserService.ts b/src/module/kullanicilar/service/appUserService.ts
new file mode 100644
index 0000000..ca2a575
--- /dev/null
+++ b/src/module/kullanicilar/service/appUserService.ts
@@ -0,0 +1,11 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useAppUserStore } from '../stores/appUserStore'
+
+export const useAppUserService = defineStore('appUserService', () => {
+ const dataStore = useDataStore()
+ const appUserStore = useAppUserStore()
+
+ return {
+ }
+})
\ No newline at end of file
diff --git a/src/module/kullanicilar/service/appUserUnitService.ts b/src/module/kullanicilar/service/appUserUnitService.ts
new file mode 100644
index 0000000..361a8dd
--- /dev/null
+++ b/src/module/kullanicilar/service/appUserUnitService.ts
@@ -0,0 +1,44 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useAppUserUnitStore } from '../stores/appUserUnitStore'
+import { useAppUserUnitValidationStore } from '../validation/appUserUnitValidationStore'
+
+export const useAppUserUnitService = defineStore('appUserUnitService', () => {
+ const dataStore = useDataStore()
+ const appUserUnitStore = useAppUserUnitStore()
+ const appUserUnitValidationStore = useAppUserUnitValidationStore()
+
+ const GetAppUserUnitList = async () => {
+ if (appUserUnitStore.appUserUnits.length === 0) {
+ let data = await dataStore.dataGet('Birim')
+ appUserUnitStore.appUserUnits = data
+ }
+ }
+
+ const SaveUnit = async () => {
+ if (appUserUnitValidationStore.FormCheck()) {
+ if (appUserUnitStore.appUserUnitForm.appUsers === null)
+ appUserUnitStore.appUserUnitForm.appUsers = []
+ let dt: any
+ if (!appUserUnitStore.isUpdate) {
+ dt = await dataStore.dataPost('Birim', {
+ data: appUserUnitStore.appUserUnitForm
+ })
+ } else {
+ dt = await dataStore.dataPut('Birim/' + appUserUnitStore.appUserUnitForm.id, {
+ data: appUserUnitStore.appUserUnitForm
+ })
+ }
+ if (dt !== 'errorfalse') {
+ appUserUnitStore.refreshList = true
+ appUserUnitStore.isUpdate = false
+ appUserUnitStore.unitPanel = false
+ }
+ }
+ }
+
+ return {
+ GetAppUserUnitList,
+ SaveUnit
+ }
+})
diff --git a/src/module/kullanicilar/stores/appUserRoleStore.ts b/src/module/kullanicilar/stores/appUserRoleStore.ts
new file mode 100644
index 0000000..bb167e0
--- /dev/null
+++ b/src/module/kullanicilar/stores/appUserRoleStore.ts
@@ -0,0 +1,30 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+
+export const useAppUserRoleStore = defineStore('appUserRoleStore', () => {
+ const appUserRoles = ref[]>([])
+ const appUserRoleBaseForm = reactive>({
+ gorevAdi: '',
+ appUsers: []
+ })
+ const appUserRoleForm = reactive>({})
+ const appUserRoleSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const rolePanel = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(appUserRoleForm, appUserRoleBaseForm)
+ }
+
+ return {
+ appUserRoles,
+ appUserRoleBaseForm,
+ appUserRoleForm,
+ appUserRoleSafeForm,
+ isUpdate,
+ refreshList,
+ rolePanel,
+ ResetForm
+ }
+})
diff --git a/src/module/kullanicilar/stores/appUserStore.ts b/src/module/kullanicilar/stores/appUserStore.ts
new file mode 100644
index 0000000..0364aba
--- /dev/null
+++ b/src/module/kullanicilar/stores/appUserStore.ts
@@ -0,0 +1,10 @@
+import { defineStore } from 'pinia'
+import { ref } from 'vue'
+
+export const useAppUserStore = defineStore('appUserStore', () => {
+ const selectedAppUser = ref(0)
+
+ return {
+ selectedAppUser
+ }
+})
diff --git a/src/module/kullanicilar/stores/appUserUnitStore.ts b/src/module/kullanicilar/stores/appUserUnitStore.ts
new file mode 100644
index 0000000..11c0aa2
--- /dev/null
+++ b/src/module/kullanicilar/stores/appUserUnitStore.ts
@@ -0,0 +1,30 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+
+export const useAppUserUnitStore = defineStore('appUserUnitStore', () => {
+ const appUserUnits = ref[]>([])
+ const appUserUnitBaseForm = reactive>({
+ birimAdi: '',
+ appUsers: []
+ })
+ const appUserUnitForm = reactive>({})
+ const appUserUnitSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const unitPanel = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(appUserUnitForm, appUserUnitBaseForm)
+ }
+
+ return {
+ appUserUnits,
+ appUserUnitBaseForm,
+ appUserUnitForm,
+ appUserUnitSafeForm,
+ isUpdate,
+ refreshList,
+ unitPanel,
+ ResetForm
+ }
+})
diff --git a/src/module/kullanicilar/validation/appUserRoleValidationStore.ts b/src/module/kullanicilar/validation/appUserRoleValidationStore.ts
new file mode 100644
index 0000000..f4bb6f6
--- /dev/null
+++ b/src/module/kullanicilar/validation/appUserRoleValidationStore.ts
@@ -0,0 +1,35 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useAppUserRoleStore } from '../stores/appUserRoleStore'
+
+export const useAppUserRoleValidationStore = defineStore(
+ 'appUserRoleValidationStore',
+ () => {
+ const appUserRoleStore = useAppUserRoleStore()
+ const validationStore = useValidationStore()
+
+ const userFormChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+ validationStore.IsFieldEmpty(
+ appUserRoleStore.appUserRoleForm,
+ invalidTexts,
+ 'gorevAdi',
+ 'Lütfen görev adını giriniz'
+ )
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ userFormChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/kullanicilar/validation/appUserUnitValidationStore.ts b/src/module/kullanicilar/validation/appUserUnitValidationStore.ts
new file mode 100644
index 0000000..95483c1
--- /dev/null
+++ b/src/module/kullanicilar/validation/appUserUnitValidationStore.ts
@@ -0,0 +1,35 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useAppUserUnitStore } from '../stores/appUserUnitStore'
+
+export const useAppUserUnitValidationStore = defineStore(
+ 'appUserUnitValidationStore',
+ () => {
+ const appUserUnitStore = useAppUserUnitStore()
+ const validationStore = useValidationStore()
+
+ const userFormChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+ validationStore.IsFieldEmpty(
+ appUserUnitStore.appUserUnitForm,
+ invalidTexts,
+ 'birimAdi',
+ 'Lütfen birim adını giriniz.'
+ )
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ userFormChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/kullanicilar/views/KullaniciAyarlari.vue b/src/module/kullanicilar/views/KullaniciAyarlari.vue
new file mode 100644
index 0000000..ce04881
--- /dev/null
+++ b/src/module/kullanicilar/views/KullaniciAyarlari.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/kullanicilar/views/KullaniciDetay.vue b/src/module/kullanicilar/views/KullaniciDetay.vue
new file mode 100644
index 0000000..1e6f84c
--- /dev/null
+++ b/src/module/kullanicilar/views/KullaniciDetay.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/kullanicilar/views/KullaniciListesi.vue b/src/module/kullanicilar/views/KullaniciListesi.vue
new file mode 100644
index 0000000..db2fa38
--- /dev/null
+++ b/src/module/kullanicilar/views/KullaniciListesi.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
diff --git a/src/module/kullanicilar/views/KullaniciRolleri.vue b/src/module/kullanicilar/views/KullaniciRolleri.vue
new file mode 100644
index 0000000..1a9bb83
--- /dev/null
+++ b/src/module/kullanicilar/views/KullaniciRolleri.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/src/module/kullanicilar/views/KullaniciYeni.vue b/src/module/kullanicilar/views/KullaniciYeni.vue
new file mode 100644
index 0000000..462fbd1
--- /dev/null
+++ b/src/module/kullanicilar/views/KullaniciYeni.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/module/muhasebe/components/TabMuhasebeAyarlari.vue b/src/module/muhasebe/components/TabMuhasebeAyarlari.vue
new file mode 100644
index 0000000..fb44bd0
--- /dev/null
+++ b/src/module/muhasebe/components/TabMuhasebeAyarlari.vue
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/src/module/muhasebe/components/TabMuhasebePiyangoBilgileriDisplay.vue b/src/module/muhasebe/components/TabMuhasebePiyangoBilgileriDisplay.vue
new file mode 100644
index 0000000..8d824f6
--- /dev/null
+++ b/src/module/muhasebe/components/TabMuhasebePiyangoBilgileriDisplay.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue b/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue
new file mode 100644
index 0000000..9cd4bf0
--- /dev/null
+++ b/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue
@@ -0,0 +1,133 @@
+
+
+
+
diff --git a/src/module/muhasebe/components/form/FormMuhasebeAyarlari.vue b/src/module/muhasebe/components/form/FormMuhasebeAyarlari.vue
new file mode 100644
index 0000000..1c46d55
--- /dev/null
+++ b/src/module/muhasebe/components/form/FormMuhasebeAyarlari.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ Kaydet
+
+
+ Vazgeç
+
+
+
+
+
+
diff --git a/src/module/muhasebe/routes/index.ts b/src/module/muhasebe/routes/index.ts
new file mode 100644
index 0000000..5cd5a55
--- /dev/null
+++ b/src/module/muhasebe/routes/index.ts
@@ -0,0 +1,9 @@
+import muhasebePiyangoListesi from './muhasebe-piyango-listesi'
+import muhasebePiyangoDetay from './muhasebe-piyango-detay'
+import muhasebeAyarlar from './muhasebe-ayarlar'
+
+export default [
+ muhasebePiyangoListesi,
+ muhasebePiyangoDetay,
+ muhasebeAyarlar,
+]
diff --git a/src/module/muhasebe/routes/muhasebe-ayarlar.ts b/src/module/muhasebe/routes/muhasebe-ayarlar.ts
new file mode 100644
index 0000000..a344f80
--- /dev/null
+++ b/src/module/muhasebe/routes/muhasebe-ayarlar.ts
@@ -0,0 +1,10 @@
+import MuhasebeAyarlar from '../views/MuhasebeAyarlar.vue'
+
+export default {
+ path: '/muhasebe/ayarlar',
+ name: 'MuhasebeAyarlar',
+ component: MuhasebeAyarlar,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/muhasebe/routes/muhasebe-piyango-detay.ts b/src/module/muhasebe/routes/muhasebe-piyango-detay.ts
new file mode 100644
index 0000000..6ceb3a7
--- /dev/null
+++ b/src/module/muhasebe/routes/muhasebe-piyango-detay.ts
@@ -0,0 +1,10 @@
+import MuhasebePiyangoDetay from '../views/MuhasebePiyangoDetay.vue'
+
+export default {
+ path: '/muhasebe/piyango-detay/:piyangoId',
+ name: 'MuhasebePiyangoDetay',
+ component: MuhasebePiyangoDetay,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/muhasebe/routes/muhasebe-piyango-listesi.ts b/src/module/muhasebe/routes/muhasebe-piyango-listesi.ts
new file mode 100644
index 0000000..2aa9fcd
--- /dev/null
+++ b/src/module/muhasebe/routes/muhasebe-piyango-listesi.ts
@@ -0,0 +1,10 @@
+import MuhasebePiyangoListesi from '../views/MuhasebePiyangoListesi.vue'
+
+export default {
+ path: '/muhasebe/piyango-listesi',
+ name: 'MuhasebePiyangoListesi',
+ component: MuhasebePiyangoListesi,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/muhasebe/service/muhasebeSettingsService.ts b/src/module/muhasebe/service/muhasebeSettingsService.ts
new file mode 100644
index 0000000..3dc0a44
--- /dev/null
+++ b/src/module/muhasebe/service/muhasebeSettingsService.ts
@@ -0,0 +1,64 @@
+import { defineStore } from 'pinia'
+import { ref } from 'vue'
+import { useDataStore } from '@/stores/dataStore'
+import { useMuhasebeSettingsStore } from '../store/muhasebeSettingsStore'
+import { useMuhasebeSettingsValidationStore } from '../validation/muhasebeSettingsValidationStore'
+
+export const useMuhasebeSettingsService = defineStore('muhasebeSettingsService', () => {
+ const dataStore = useDataStore()
+ const muhasebeSettingsStore = useMuhasebeSettingsStore()
+ const muhasebeSettingsValidationStore = useMuhasebeSettingsValidationStore()
+
+ const loaded = ref(false)
+
+ const SaveMuhasebeSettings = async () => {
+ if (muhasebeSettingsValidationStore.FormCheck()) {
+ var res: any
+
+ if (muhasebeSettingsStore.isNew) {
+ res = await dataStore.dataPost('MuhasebeSettings', {
+ data: muhasebeSettingsStore.muhasebeSettingsForm
+ })
+ } else {
+ delete muhasebeSettingsStore.muhasebeSettingsForm.appUser
+ res = await dataStore.dataPut(
+ 'MuhasebeSettings/' + muhasebeSettingsStore.muhasebeSettingsForm.id,
+ {
+ data: muhasebeSettingsStore.muhasebeSettingsForm
+ }
+ )
+ }
+
+ if (res !== 'errorfalse') {
+ muhasebeSettingsStore.isNew = false
+ muhasebeSettingsValidationStore.formChanged = false
+ muhasebeSettingsStore.muhasebeSettingsLoaded = false
+ await GetMuhasebeSettings()
+ }
+ } else {
+ muhasebeSettingsValidationStore.isFormValid = true
+ }
+ }
+
+ const GetMuhasebeSettings = async () => {
+ if (!muhasebeSettingsStore.muhasebeSettingsLoaded) {
+ let data = await dataStore.dataGet('MuhasebeSettings')
+ if (data !== 'errorfalse') {
+ if (data.length === 0) {
+ muhasebeSettingsStore.ResetForm()
+ muhasebeSettingsStore.isNew = true
+ } else {
+ muhasebeSettingsStore.isNew = false
+ muhasebeSettingsStore.muhasebeSettingsForm = data[0]
+ muhasebeSettingsStore.SafeServerData()
+ }
+ }
+ }
+ }
+
+ return {
+ loaded,
+ SaveMuhasebeSettings,
+ GetMuhasebeSettings
+ }
+})
diff --git a/src/module/muhasebe/store/muhasebeSettingsStore.ts b/src/module/muhasebe/store/muhasebeSettingsStore.ts
new file mode 100644
index 0000000..8cad141
--- /dev/null
+++ b/src/module/muhasebe/store/muhasebeSettingsStore.ts
@@ -0,0 +1,42 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const useMuhasebeSettingsStore = defineStore('muhasebeSettingsStore', () => {
+ const usersStore = useUsersStore()
+
+ const muhasebeSettingsBaseForm = reactive>({
+ appUserId: usersStore.userId,
+ izinBedeliOrani: 30,
+ basvuruBedeli: '10.167,00',
+ kurumBanka: 'Türkiye Vakıflar Bankası T.A.O.',
+ kurumBankaSube: 'Ankara Kurumsal',
+ kurumIBAN: 'TR26 0001 5001 5800 7295 4624 00'
+ })
+ const muhasebeSettingsForm = reactive>({})
+ const muhasebeSettingsSafeForm = reactive>({})
+ const isNew = ref(false)
+ const muhasebeSettingsLoaded = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(muhasebeSettingsForm, muhasebeSettingsBaseForm)
+ }
+ const SafeServerData = () => {
+ Object.assign(muhasebeSettingsSafeForm, muhasebeSettingsForm)
+ }
+
+ const RestoreData = () => {
+ Object.assign(muhasebeSettingsForm, muhasebeSettingsSafeForm)
+ }
+
+ return {
+ muhasebeSettingsBaseForm,
+ muhasebeSettingsForm,
+ muhasebeSettingsSafeForm,
+ isNew,
+ muhasebeSettingsLoaded,
+ ResetForm,
+ SafeServerData,
+ RestoreData
+ }
+})
diff --git a/src/module/muhasebe/validation/muhasebeSettingsValidationStore.ts b/src/module/muhasebe/validation/muhasebeSettingsValidationStore.ts
new file mode 100644
index 0000000..a05cb2a
--- /dev/null
+++ b/src/module/muhasebe/validation/muhasebeSettingsValidationStore.ts
@@ -0,0 +1,77 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useMuhasebeSettingsStore } from '../store/muhasebeSettingsStore'
+
+export const useMuhasebeSettingsValidationStore = defineStore(
+ 'muhasebeSettingsValidationStore',
+ () => {
+ const muhasebeSettingsStore = useMuhasebeSettingsStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ muhasebeSettingsStore.muhasebeSettingsForm,
+ invalidTexts,
+ 'izinBedeliOrani',
+ 'Lütfen izin bedeli oranını giriniz.'
+ )
+ if (
+ !validationStore.checkEmpty(
+ muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani
+ )
+ ) {
+ if (
+ Number(muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani) === 0 ||
+ Number(muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani) > 100
+ ) {
+ isFormValid.value = false
+ invalidTexts['izinBedeliOrani'] = 'Lütfen 0-100 arasında bir değer giriniz.'
+ } else {
+ delete invalidTexts['izinBedeliOrani']
+ }
+ }
+ validationStore.IsFieldEmpty(
+ muhasebeSettingsStore.muhasebeSettingsForm,
+ invalidTexts,
+ 'basvuruBedeli',
+ 'Lütfen başvuru bedeli tutarını giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ muhasebeSettingsStore.muhasebeSettingsForm,
+ invalidTexts,
+ 'kurumBanka',
+ 'Lütfen banka adını giriniz'
+ )
+ validationStore.IsFieldEmpty(
+ muhasebeSettingsStore.muhasebeSettingsForm,
+ invalidTexts,
+ 'kurumBankaSube',
+ 'Lütfen banka şubesini giriniz.'
+ )
+ validationStore.IsFieldEmpty(
+ muhasebeSettingsStore.muhasebeSettingsForm,
+ invalidTexts,
+ 'kurumIBAN',
+ 'Lütfen IBAN bilgisini giriniz.'
+ )
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/muhasebe/views/MuhasebeAyarlar.vue b/src/module/muhasebe/views/MuhasebeAyarlar.vue
new file mode 100644
index 0000000..d78026f
--- /dev/null
+++ b/src/module/muhasebe/views/MuhasebeAyarlar.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/muhasebe/views/MuhasebePiyangoDetay.vue b/src/module/muhasebe/views/MuhasebePiyangoDetay.vue
new file mode 100644
index 0000000..103b062
--- /dev/null
+++ b/src/module/muhasebe/views/MuhasebePiyangoDetay.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/sistem-gunlugu/routes/index.ts b/src/module/sistem-gunlugu/routes/index.ts
new file mode 100644
index 0000000..5dbeceb
--- /dev/null
+++ b/src/module/sistem-gunlugu/routes/index.ts
@@ -0,0 +1,5 @@
+import logs from "@/module/sistem-gunlugu/routes/logs";
+
+export default [
+ logs
+]
\ No newline at end of file
diff --git a/src/module/sistem-gunlugu/routes/logs.ts b/src/module/sistem-gunlugu/routes/logs.ts
new file mode 100644
index 0000000..5fcf151
--- /dev/null
+++ b/src/module/sistem-gunlugu/routes/logs.ts
@@ -0,0 +1,7 @@
+import Logs from "@/module/sistem-gunlugu/views/Logs.vue"
+
+export default {
+ path: '/logs',
+ name: 'Logs',
+ component: Logs
+}
\ No newline at end of file
diff --git a/src/module/sistem-gunlugu/service/index.ts b/src/module/sistem-gunlugu/service/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/module/sistem-gunlugu/stores/index.ts b/src/module/sistem-gunlugu/stores/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/module/sistem-gunlugu/views/Logs.vue b/src/module/sistem-gunlugu/views/Logs.vue
new file mode 100644
index 0000000..1eb43ec
--- /dev/null
+++ b/src/module/sistem-gunlugu/views/Logs.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/components/form/FormSayfaAyar.vue b/src/module/site-yonetimi/components/form/FormSayfaAyar.vue
new file mode 100644
index 0000000..ed2c93d
--- /dev/null
+++ b/src/module/site-yonetimi/components/form/FormSayfaAyar.vue
@@ -0,0 +1,47 @@
+
+
+
+
diff --git a/src/module/site-yonetimi/components/form/FormSayfaBilgileri.vue b/src/module/site-yonetimi/components/form/FormSayfaBilgileri.vue
new file mode 100644
index 0000000..e6fbce9
--- /dev/null
+++ b/src/module/site-yonetimi/components/form/FormSayfaBilgileri.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
diff --git a/src/module/site-yonetimi/components/form/FormSayfaPicture.vue b/src/module/site-yonetimi/components/form/FormSayfaPicture.vue
new file mode 100644
index 0000000..ffc6836
--- /dev/null
+++ b/src/module/site-yonetimi/components/form/FormSayfaPicture.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+ Ekle
+
+
+
+
diff --git a/src/module/site-yonetimi/components/panel/PanelMenuItem.vue b/src/module/site-yonetimi/components/panel/PanelMenuItem.vue
new file mode 100644
index 0000000..f011cfd
--- /dev/null
+++ b/src/module/site-yonetimi/components/panel/PanelMenuItem.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/components/panel/PanelSayfaPicture.vue b/src/module/site-yonetimi/components/panel/PanelSayfaPicture.vue
new file mode 100644
index 0000000..0c77bbb
--- /dev/null
+++ b/src/module/site-yonetimi/components/panel/PanelSayfaPicture.vue
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/src/module/site-yonetimi/routes/ayarlar.ts b/src/module/site-yonetimi/routes/ayarlar.ts
new file mode 100644
index 0000000..c2ade77
--- /dev/null
+++ b/src/module/site-yonetimi/routes/ayarlar.ts
@@ -0,0 +1,10 @@
+import Ayarlar from "@/module/site-yonetimi/views/Ayarlar.vue";
+
+export default {
+ path: '/site-yonetimi/ayarlar',
+ name: 'SiteAyarlari',
+ component: Ayarlar,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/site-yonetimi/routes/index.ts b/src/module/site-yonetimi/routes/index.ts
new file mode 100644
index 0000000..142a925
--- /dev/null
+++ b/src/module/site-yonetimi/routes/index.ts
@@ -0,0 +1,8 @@
+import sayfaYeni from '@/module/site-yonetimi/routes/sayfa-yeni'
+import sayfDetay from '@/module/site-yonetimi/routes/sayfa-detay'
+import sayfaListe from '@/module/site-yonetimi/routes/sayfa-liste'
+import menuYonetimi from '@/module/site-yonetimi/routes/menu-yonetimi'
+import menuListe from '@/module/site-yonetimi/routes/menu-liste'
+import ayarlar from '@/module/site-yonetimi/routes/ayarlar'
+
+export default [sayfaYeni, sayfDetay, sayfaListe, menuYonetimi, menuListe, ayarlar]
diff --git a/src/module/site-yonetimi/routes/menu-liste.ts b/src/module/site-yonetimi/routes/menu-liste.ts
new file mode 100644
index 0000000..9e61119
--- /dev/null
+++ b/src/module/site-yonetimi/routes/menu-liste.ts
@@ -0,0 +1,10 @@
+import MenuListe from "../views/MenuListe.vue";
+
+export default {
+ path: '/site-yonetimi/menu-listesi',
+ name: 'MenuListe',
+ component: MenuListe,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/site-yonetimi/routes/menu-yonetimi.ts b/src/module/site-yonetimi/routes/menu-yonetimi.ts
new file mode 100644
index 0000000..5d017fe
--- /dev/null
+++ b/src/module/site-yonetimi/routes/menu-yonetimi.ts
@@ -0,0 +1,10 @@
+import MenuYonetimi from "../views/MenuYonetimi.vue";
+
+export default {
+ path: '/site-yonetimi/menu-yonetimi/:menuId',
+ name: 'MenuYonetimi',
+ component: MenuYonetimi,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/site-yonetimi/routes/sayfa-detay.ts b/src/module/site-yonetimi/routes/sayfa-detay.ts
new file mode 100644
index 0000000..07f2942
--- /dev/null
+++ b/src/module/site-yonetimi/routes/sayfa-detay.ts
@@ -0,0 +1,10 @@
+import SayfaDetay from '@/module/site-yonetimi/views/SayfaDetay.vue'
+
+export default {
+ path: '/sayfalar/detay/:pageId',
+ name: 'SayfaDetay',
+ component: SayfaDetay,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/site-yonetimi/routes/sayfa-liste.ts b/src/module/site-yonetimi/routes/sayfa-liste.ts
new file mode 100644
index 0000000..25d31b3
--- /dev/null
+++ b/src/module/site-yonetimi/routes/sayfa-liste.ts
@@ -0,0 +1,10 @@
+import SayfaListesi from '@/module/site-yonetimi/views/SayfaListesi.vue'
+
+export default {
+ path: '/site-yonetimi/sayfa-listesi',
+ name: 'SayfaListe',
+ component: SayfaListesi,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/site-yonetimi/routes/sayfa-yeni.ts b/src/module/site-yonetimi/routes/sayfa-yeni.ts
new file mode 100644
index 0000000..0120e2e
--- /dev/null
+++ b/src/module/site-yonetimi/routes/sayfa-yeni.ts
@@ -0,0 +1,10 @@
+import SayfaYeni from "@/module/site-yonetimi/views/SayfaYeni.vue";
+
+export default {
+ path: '/site-yonetimi/yeni-sayfa',
+ name: 'SayfaYeni',
+ component: SayfaYeni,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/site-yonetimi/service/siteManagementMenuService.ts b/src/module/site-yonetimi/service/siteManagementMenuService.ts
new file mode 100644
index 0000000..43ea070
--- /dev/null
+++ b/src/module/site-yonetimi/service/siteManagementMenuService.ts
@@ -0,0 +1,22 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useSiteManagementMenuStore } from '../stores/siteManagementMenuStore'
+import { useRoute } from 'vue-router'
+
+export const useSiteManagementMenuService = defineStore('siteManagementMenuService', () => {
+ const dataStore = useDataStore()
+ const siteManagementMenuStore = useSiteManagementMenuStore()
+ const route = useRoute()
+
+ const GetMenuContentList = async () => {
+ let data: Record | any = await dataStore.dataGet(
+ 'Menu/Konum/' + route.params.menuId
+ )
+
+ if (data !== 'errorfalse') {
+ siteManagementMenuStore.menuContentList = data
+ }
+ }
+
+ return { GetMenuContentList }
+})
diff --git a/src/module/site-yonetimi/service/siteManagementPageService.ts b/src/module/site-yonetimi/service/siteManagementPageService.ts
new file mode 100644
index 0000000..340a02d
--- /dev/null
+++ b/src/module/site-yonetimi/service/siteManagementPageService.ts
@@ -0,0 +1,83 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useSiteManagementPageStore } from '../stores/siteManagementPageStore'
+import { useSiteManagementPageValidationStore } from '../validation/siteManagementPageValidationStore'
+import { useToastStore } from '@/components/global/toastStore'
+import { useUsersStore } from '@/stores/usersStore'
+import router from '@/router'
+
+export const useSiteManagementPageService = defineStore(
+ 'siteManagementPageService',
+ () => {
+ const dataStore = useDataStore()
+ const siteManagementPageStore = useSiteManagementPageStore()
+ const siteManagementPageValidationStore = useSiteManagementPageValidationStore()
+ const toastStore = useToastStore()
+ const usersStore = useUsersStore()
+
+ const GetAllPages = async () => {
+ if (siteManagementPageStore.allPagesList.length === 0) {
+ let data: Record | any = await dataStore.dataGet(
+ 'Page/?pageNumber=0'
+ )
+
+ if (data !== 'errorfalse') {
+ siteManagementPageStore.allPagesList = data
+ }
+ }
+ }
+
+ const GetData = async () => {
+ siteManagementPageStore.loaded = false
+
+ let data = await dataStore.dataGet('Page/' + siteManagementPageStore.selectedPage)
+
+ if (data !== 'errorfalse') {
+ Object.assign(siteManagementPageStore.pageForm, data)
+ Object.assign(siteManagementPageStore.pageSafeForm, data)
+
+ setTimeout(() => {
+ siteManagementPageStore.loaded = true
+ }, 30)
+ setTimeout(() => {
+ siteManagementPageStore.formChanged = false
+ }, 50)
+ }
+ }
+
+ const SaveData = async () => {
+ if (siteManagementPageValidationStore.FormCheck()) {
+ let res: any
+
+ if (siteManagementPageStore.isNew) {
+ res = await dataStore.dataPost('Page', {
+ data: siteManagementPageStore.pageForm
+ })
+ } else {
+ siteManagementPageStore.pageForm.appUserId = usersStore.userId
+ res = await dataStore.dataPut('Page/' + siteManagementPageStore.pageForm.id, {
+ data: siteManagementPageStore.pageForm
+ })
+ }
+
+ if (res !== 'errorfalse') {
+ if (siteManagementPageStore.isNew)
+ toastStore.AddToast('Sayfa başarıyla kaydedildi', 'success', 5000)
+ else toastStore.AddToast('Başarıyla kaydedildi', 'success', 5000)
+
+ siteManagementPageStore.formChanged = false
+ siteManagementPageStore.loaded = false
+ dataStore.pageDataUpdate = true
+ if (!siteManagementPageStore.isNew) GetData()
+ else router.push('/site-yonetimi/sayfa-listesi')
+
+ siteManagementPageStore.isNew = false
+ }
+ } else {
+ siteManagementPageValidationStore.isFormValid = true
+ }
+ }
+
+ return { GetAllPages, GetData, SaveData }
+ }
+)
diff --git a/src/module/site-yonetimi/stores/siteManagementMenuStore.ts b/src/module/site-yonetimi/stores/siteManagementMenuStore.ts
new file mode 100644
index 0000000..2c1739c
--- /dev/null
+++ b/src/module/site-yonetimi/stores/siteManagementMenuStore.ts
@@ -0,0 +1,30 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+
+export const useSiteManagementMenuStore = defineStore('siteManagementMenuStore', () => {
+ const menuContentList = ref[]>([])
+
+ const deleteMenuList = ref[]>([])
+ const menuControlId = ref(0)
+
+ const safeMenuItemData = reactive>({
+ title: '',
+ konumId: null,
+ sira: null,
+ slug: '',
+ parentMenuId: null,
+ pageId: null,
+ isActive: true,
+ targetKey: false
+ })
+
+ const menuItemData = reactive>({})
+
+ return {
+ deleteMenuList,
+ menuContentList,
+ menuControlId,
+ menuItemData,
+ safeMenuItemData
+ }
+})
diff --git a/src/module/site-yonetimi/stores/siteManagementPageStore.ts b/src/module/site-yonetimi/stores/siteManagementPageStore.ts
new file mode 100644
index 0000000..7f2d50e
--- /dev/null
+++ b/src/module/site-yonetimi/stores/siteManagementPageStore.ts
@@ -0,0 +1,54 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+import { useGlobalStore } from '@/stores/globalStore'
+
+export const useSiteManagementPageStore = defineStore('siteManagementPageStore', () => {
+ const usersStore = useUsersStore()
+ const globalStore = useGlobalStore()
+
+ const selectedPage = ref(null)
+ const allPagesList = ref[]>([])
+ const pageBaseForm = reactive>({
+ slug: '',
+ title: '',
+ content: '',
+ etiket: '',
+ parentPageId: null,
+ status: 1,
+ appUserId: usersStore.userId
+ })
+
+ const pageForm = reactive>({})
+ const pageSafeForm = reactive>({})
+ const formChanged = ref(false)
+ const loaded = ref(false)
+ const isNew = ref(false)
+
+ const ResetForm = () => {
+ globalStore.ResetObject(pageForm, pageBaseForm)
+ Object.assign(pageForm, pageBaseForm)
+ }
+ const RestoreForm = () => {
+ Object.assign(pageForm, pageSafeForm)
+ formChanged.value = false
+ }
+ const CreateSlug = () => {
+ pageForm.slug = globalStore.CreateSlug(pageForm.title)
+ formChanged.value = true
+ }
+
+ return {
+ selectedPage,
+ allPagesList,
+ pageBaseForm,
+ pageForm,
+ pageSafeForm,
+ formChanged,
+ loaded,
+ isNew,
+ ResetForm,
+ RestoreForm,
+ CreateSlug
+ }
+})
diff --git a/src/module/site-yonetimi/validation/siteManagementMenuValidationStore.ts b/src/module/site-yonetimi/validation/siteManagementMenuValidationStore.ts
new file mode 100644
index 0000000..471c6ee
--- /dev/null
+++ b/src/module/site-yonetimi/validation/siteManagementMenuValidationStore.ts
@@ -0,0 +1,30 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useSiteManagementMenuStore } from '../stores/siteManagementMenuStore'
+
+export const useSiteManagementMenuValidationStore = defineStore('siteManagementMenuValidationStore', () => {
+ const siteManagementMenuStore = useSiteManagementMenuStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+ validationStore.IsFieldEmpty(siteManagementMenuStore.menuItemData,invalidTexts,'title', 'Menü için başlık belirlemelisiniz.')
+ validationStore.IsFieldEmpty(siteManagementMenuStore.menuItemData,invalidTexts,'slug', 'Tıklandığı zaman açılacak linki yazınız.')
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+})
\ No newline at end of file
diff --git a/src/module/site-yonetimi/validation/siteManagementPageValidationStore.ts b/src/module/site-yonetimi/validation/siteManagementPageValidationStore.ts
new file mode 100644
index 0000000..7a5137c
--- /dev/null
+++ b/src/module/site-yonetimi/validation/siteManagementPageValidationStore.ts
@@ -0,0 +1,30 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useSiteManagementPageStore } from '../stores/siteManagementPageStore'
+
+export const useSiteManagementPageValidationStore = defineStore('siteManagementPageValidationStore', () => {
+ const siteManagementPageStore = useSiteManagementPageStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+ validationStore.IsFieldEmpty(siteManagementPageStore.pageForm,invalidTexts,'title', 'Menü için başlık belirlemelisiniz.')
+ validationStore.IsFieldEmpty(siteManagementPageStore.pageForm,invalidTexts,'slug', 'Tıklandığı zaman açılacak linki yazınız.')
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+})
\ No newline at end of file
diff --git a/src/module/site-yonetimi/views/Ayarlar.vue b/src/module/site-yonetimi/views/Ayarlar.vue
new file mode 100644
index 0000000..b77c244
--- /dev/null
+++ b/src/module/site-yonetimi/views/Ayarlar.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/module/site-yonetimi/views/MenuListe.vue b/src/module/site-yonetimi/views/MenuListe.vue
new file mode 100644
index 0000000..865fbe3
--- /dev/null
+++ b/src/module/site-yonetimi/views/MenuListe.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/views/MenuYonetimi.vue b/src/module/site-yonetimi/views/MenuYonetimi.vue
new file mode 100644
index 0000000..9314384
--- /dev/null
+++ b/src/module/site-yonetimi/views/MenuYonetimi.vue
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+ {{ isEdit ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/views/SayfaDetay.vue b/src/module/site-yonetimi/views/SayfaDetay.vue
new file mode 100644
index 0000000..ca845e4
--- /dev/null
+++ b/src/module/site-yonetimi/views/SayfaDetay.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/views/SayfaListesi.vue b/src/module/site-yonetimi/views/SayfaListesi.vue
new file mode 100644
index 0000000..47d4748
--- /dev/null
+++ b/src/module/site-yonetimi/views/SayfaListesi.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/views/SayfaYeni.vue b/src/module/site-yonetimi/views/SayfaYeni.vue
new file mode 100644
index 0000000..4b0674b
--- /dev/null
+++ b/src/module/site-yonetimi/views/SayfaYeni.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
diff --git a/src/module/site-yonetimi/views/Slider.vue b/src/module/site-yonetimi/views/Slider.vue
new file mode 100644
index 0000000..9930c2d
--- /dev/null
+++ b/src/module/site-yonetimi/views/Slider.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/module/uyeler/components/TabUyeBilgileri.vue b/src/module/uyeler/components/TabUyeBilgileri.vue
new file mode 100644
index 0000000..4be2834
--- /dev/null
+++ b/src/module/uyeler/components/TabUyeBilgileri.vue
@@ -0,0 +1,76 @@
+
+
+
+
diff --git a/src/module/uyeler/components/TabUyeLoglari.vue b/src/module/uyeler/components/TabUyeLoglari.vue
new file mode 100644
index 0000000..401bedb
--- /dev/null
+++ b/src/module/uyeler/components/TabUyeLoglari.vue
@@ -0,0 +1,42 @@
+
+
+
+
diff --git a/src/module/uyeler/components/TabUyeOnayDurumu.vue b/src/module/uyeler/components/TabUyeOnayDurumu.vue
new file mode 100644
index 0000000..92c942a
--- /dev/null
+++ b/src/module/uyeler/components/TabUyeOnayDurumu.vue
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/src/module/uyeler/components/TabUyeOnayDurumuUser.vue b/src/module/uyeler/components/TabUyeOnayDurumuUser.vue
new file mode 100644
index 0000000..d57fa02
--- /dev/null
+++ b/src/module/uyeler/components/TabUyeOnayDurumuUser.vue
@@ -0,0 +1,21 @@
+
+
+
+
diff --git a/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue b/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue
new file mode 100644
index 0000000..a8df0bd
--- /dev/null
+++ b/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue
@@ -0,0 +1,138 @@
+
+
+
+
diff --git a/src/module/uyeler/components/TabYetkiliUyeBilgileri.vue b/src/module/uyeler/components/TabYetkiliUyeBilgileri.vue
new file mode 100644
index 0000000..cf6fffc
--- /dev/null
+++ b/src/module/uyeler/components/TabYetkiliUyeBilgileri.vue
@@ -0,0 +1,50 @@
+
+
+
+
diff --git a/src/module/uyeler/components/content/UserApproveStates.vue b/src/module/uyeler/components/content/UserApproveStates.vue
new file mode 100644
index 0000000..91234e4
--- /dev/null
+++ b/src/module/uyeler/components/content/UserApproveStates.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/components/display/FormUyeBilgileriDisplay.vue b/src/module/uyeler/components/display/FormUyeBilgileriDisplay.vue
new file mode 100644
index 0000000..639555a
--- /dev/null
+++ b/src/module/uyeler/components/display/FormUyeBilgileriDisplay.vue
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
{{ formData.basvuruTipi }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PDF İndir
+ Yazdır
+
+
+
+
diff --git a/src/module/uyeler/components/display/FormUyeIrtibatKisiDisplay.vue b/src/module/uyeler/components/display/FormUyeIrtibatKisiDisplay.vue
new file mode 100644
index 0000000..bfad440
--- /dev/null
+++ b/src/module/uyeler/components/display/FormUyeIrtibatKisiDisplay.vue
@@ -0,0 +1,38 @@
+
+
+
+
diff --git a/src/module/uyeler/components/display/FormUyeIrtibatKisileriDisplay.vue b/src/module/uyeler/components/display/FormUyeIrtibatKisileriDisplay.vue
new file mode 100644
index 0000000..2d2a33e
--- /dev/null
+++ b/src/module/uyeler/components/display/FormUyeIrtibatKisileriDisplay.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
diff --git a/src/module/uyeler/components/display/UyeOnizlemeDisplay.vue b/src/module/uyeler/components/display/UyeOnizlemeDisplay.vue
new file mode 100644
index 0000000..95e6545
--- /dev/null
+++ b/src/module/uyeler/components/display/UyeOnizlemeDisplay.vue
@@ -0,0 +1,282 @@
+
+
+ ÜYE FORMU
+
+
+
+
+
+
+
+ Üye Bilgileri
+
+
+
+
+
+
+
+
+ Üye Tipi:
+ {{ customerStore.customerForm.basvuruTipi }}
+
+
+
+
+ E-posta adresi:
+ {{ customerStore.customerForm.email }}
+
+
+ Telefon Numarası:
+ {{ customerStore.customerForm.telefonNumarasi }}
+
+
+
+
+
+ Adı:
+ {{ customerStore.customerForm.gercekAdi }}
+
+
+ Soyadı:
+ {{ customerStore.customerForm.gercekSoyadi }}
+
+
+
+
+ TCKN:
+ {{ customerStore.customerForm.gercekTCKN }}
+
+
+ Vergi Dairesi:
+ {{ customerStore.customerForm.gercekVergiDairesi }}
+
+
+
+
+ Vergi No:
+ {{ customerStore.customerForm.gercekVergiNo }}
+
+
+ Oda Kayıt No/ Ticaret Sicil No:
+ {{ customerStore.customerForm.gercekOdaKayitNo }}
+
+
+
+
+ Ticari Ünvan:
+ {{ customerStore.customerForm.gercekTicariUnvan }}
+
+
+
+
+
+
+ Ünvan:
+ {{ customerStore.customerForm.tuzelUnvan }}
+
+
+
+
+ Vergi Dairesi:
+ {{ customerStore.customerForm.tuzelVergiDairesi }}
+
+
+ Vergi No:
+ {{ customerStore.customerForm.tuzelVergiNo }}
+
+
+
+
+ Sicil No:
+ {{ customerStore.customerForm.tuzelSicilNo }}
+
+
+
+
+
+
+ Ünvan:
+ {{ customerStore.customerForm.dernekUnvan }}
+
+
+
+
+ Vergi Dairesi:
+ {{ customerStore.customerForm.dernekVergiDairesi }}
+
+
+ Vergi No:
+ {{ customerStore.customerForm.dernekVergiNo }}
+
+
+
+
+ Sicil No:
+ {{ customerStore.customerForm.dernekSicilNo }}
+
+
+
+
+
+
+ Ünvan:
+ {{ customerStore.customerForm.sirketUnvan }}
+
+
+
+
+ Vergi Dairesi:
+ {{ customerStore.customerForm.sirketVergiDairesi }}
+
+
+ Vergi No:
+ {{ customerStore.customerForm.sirketVergiNo }}
+
+
+
+
+ Sicil No:
+ {{ customerStore.customerForm.sirketSicilNo }}
+
+
+ Mersis No:
+ {{ customerStore.customerForm.sirketMersis }}
+
+
+
+
+
+
+ Ünvan:
+ {{ customerStore.customerForm.kamuUnvan }}
+
+
+
+
+ Vergi Dairesi:
+ {{ customerStore.customerForm.kamuVergiDairesi }}
+
+
+ Vergi No:
+ {{ customerStore.customerForm.kamuVergiNo }}
+
+
+
+
+ Sicil No:
+ {{ customerStore.customerForm.kamuSicilNo }}
+
+
+
+
+
+ İl:
+ {{ customerStore.customerForm.il }}
+
+
+ İlçe:
+ {{ customerStore.customerForm.ilce }}
+
+
+
+
+ Mahalle:
+ {{ customerStore.customerForm.mahalle }}
+
+
+ Posta Kodu:
+ {{ customerStore.customerForm.postaKodu }}
+
+
+
+
+ İnternet Sitesi:
+ {{ customerStore.customerForm.internetSitesi }}
+
+
+
+
+ Adres:
+ {{ customerStore.customerForm.adres }}
+
+
+
+
+
+
+
+
+
+ Üye İrtibat Bilgileri
+
+
+
+
+
+
+
+
+
+ Adı:
+ {{ customerIrtibatStore.customerIrtibatForm.firstName }}
+
+
+ Soyadı:
+ {{ customerIrtibatStore.customerIrtibatForm.lastName }}
+
+
+
+
+ E-Posta:
+ {{ customerIrtibatStore.customerIrtibatForm.email }}
+
+
+ Telefon:
+ {{ customerIrtibatStore.customerIrtibatForm.phone }}
+
+
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeBilgileri.vue b/src/module/uyeler/components/form/FormUyeBilgileri.vue
new file mode 100644
index 0000000..53c213a
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeBilgileri.vue
@@ -0,0 +1,561 @@
+
+
+
+
+
+
+
+
+
+
+ {{ uyeBilgileriStore.formData.basvuruTipi }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kaydet
+ Vazgeç
+
+
+
+
+
+
+
+
+
+
+ PDF İndir
+ Yazdır
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeDocuments.vue b/src/module/uyeler/components/form/FormUyeDocuments.vue
new file mode 100644
index 0000000..800ae02
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeDocuments.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+ {{ customerDocumentStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeIrtibatKisi.vue b/src/module/uyeler/components/form/FormUyeIrtibatKisi.vue
new file mode 100644
index 0000000..16c4f1d
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeIrtibatKisi.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kaydet
+
+
+ Vazgeç
+
+
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeIrtibatKisileri.vue b/src/module/uyeler/components/form/FormUyeIrtibatKisileri.vue
new file mode 100644
index 0000000..ff1a6e9
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeIrtibatKisileri.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+ {{ customerIrtibatStore.isUpdate ? 'Kaydet' : 'Ekle' }}
+
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeOnay.vue b/src/module/uyeler/components/form/FormUyeOnay.vue
new file mode 100644
index 0000000..3a08717
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeOnay.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
Onay Durumu
+
+
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeOnayLog.vue b/src/module/uyeler/components/form/FormUyeOnayLog.vue
new file mode 100644
index 0000000..d41045d
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeOnayLog.vue
@@ -0,0 +1,98 @@
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeOnayaGonder.vue b/src/module/uyeler/components/form/FormUyeOnayaGonder.vue
new file mode 100644
index 0000000..457c111
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeOnayaGonder.vue
@@ -0,0 +1,47 @@
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyePicture.vue b/src/module/uyeler/components/form/FormUyePicture.vue
new file mode 100644
index 0000000..b86c634
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyePicture.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+ Ekle
+
+
+
+
diff --git a/src/module/uyeler/components/form/FormUyeTipleri.vue b/src/module/uyeler/components/form/FormUyeTipleri.vue
new file mode 100644
index 0000000..9507354
--- /dev/null
+++ b/src/module/uyeler/components/form/FormUyeTipleri.vue
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/src/module/uyeler/components/panel/PanelUserContact.vue b/src/module/uyeler/components/panel/PanelUserContact.vue
new file mode 100644
index 0000000..7b26efd
--- /dev/null
+++ b/src/module/uyeler/components/panel/PanelUserContact.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/components/panel/PanelUserDocument.vue b/src/module/uyeler/components/panel/PanelUserDocument.vue
new file mode 100644
index 0000000..9c2f95b
--- /dev/null
+++ b/src/module/uyeler/components/panel/PanelUserDocument.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/src/module/uyeler/components/panel/PanelUserPicture.vue b/src/module/uyeler/components/panel/PanelUserPicture.vue
new file mode 100644
index 0000000..0c77bbb
--- /dev/null
+++ b/src/module/uyeler/components/panel/PanelUserPicture.vue
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/src/module/uyeler/components/panel/PanelUyeOnizleme.vue b/src/module/uyeler/components/panel/PanelUyeOnizleme.vue
new file mode 100644
index 0000000..2b63e4f
--- /dev/null
+++ b/src/module/uyeler/components/panel/PanelUyeOnizleme.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
diff --git a/src/module/uyeler/routes/index.ts b/src/module/uyeler/routes/index.ts
new file mode 100644
index 0000000..162f7bc
--- /dev/null
+++ b/src/module/uyeler/routes/index.ts
@@ -0,0 +1,7 @@
+import UyeDetay from '@/module/uyeler/routes/uye-detay'
+import UyeYetkili from '@/module/uyeler/routes/uye-yetkili'
+import UyeYetkiliYeni from '@/module/uyeler/routes/uye-yetkili-yeni'
+import UyeListe from '@/module/uyeler/routes/uye-liste'
+import UyeTipleri from '@/module/uyeler/routes/uye-tipleri'
+
+export default [UyeDetay,UyeYetkili,UyeYetkiliYeni, UyeListe, UyeTipleri]
diff --git a/src/module/uyeler/routes/uye-detay.ts b/src/module/uyeler/routes/uye-detay.ts
new file mode 100644
index 0000000..50664fe
--- /dev/null
+++ b/src/module/uyeler/routes/uye-detay.ts
@@ -0,0 +1,10 @@
+import UyeDetay from '../views/UyeDetay.vue'
+
+export default {
+ path: '/uyeler/detay/:uyeId',
+ name: 'UyeDetay',
+ component: UyeDetay,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/uyeler/routes/uye-liste.ts b/src/module/uyeler/routes/uye-liste.ts
new file mode 100644
index 0000000..1687d09
--- /dev/null
+++ b/src/module/uyeler/routes/uye-liste.ts
@@ -0,0 +1,11 @@
+
+import Uyeler from "@/module/uyeler/views/UyelerListe.vue";
+
+export default {
+ path: '/uyeler/uye-liste',
+ name: 'UyeListe',
+ component: Uyeler,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/uyeler/routes/uye-tipleri.ts b/src/module/uyeler/routes/uye-tipleri.ts
new file mode 100644
index 0000000..d870902
--- /dev/null
+++ b/src/module/uyeler/routes/uye-tipleri.ts
@@ -0,0 +1,10 @@
+import UyeTipleri from "@/module/uyeler/views/UyeTipleri.vue";
+
+export default {
+ path:'/uyeler/uye-tipleri',
+ name:'UyeTipleri',
+ component: UyeTipleri,
+ meta: {
+ authRequired: true
+ }
+}
\ No newline at end of file
diff --git a/src/module/uyeler/routes/uye-yetkili-yeni.ts b/src/module/uyeler/routes/uye-yetkili-yeni.ts
new file mode 100644
index 0000000..8b1dec6
--- /dev/null
+++ b/src/module/uyeler/routes/uye-yetkili-yeni.ts
@@ -0,0 +1,10 @@
+import UyeYetkili from '../views/UyeYetkili.vue'
+
+export default {
+ path: '/uyeler/detay/:uyeId/yetkili-uye/yeni',
+ name: 'UyeYetkiliYeni',
+ component: UyeYetkili,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/uyeler/routes/uye-yetkili.ts b/src/module/uyeler/routes/uye-yetkili.ts
new file mode 100644
index 0000000..3af8654
--- /dev/null
+++ b/src/module/uyeler/routes/uye-yetkili.ts
@@ -0,0 +1,10 @@
+import UyeYetkili from '../views/UyeYetkili.vue'
+
+export default {
+ path: '/uyeler/detay/:uyeId/yetkili-uye/detay/:altUyeId',
+ name: 'UyeYetkiliDetay',
+ component: UyeYetkili,
+ meta: {
+ authRequired: true
+ }
+}
diff --git a/src/module/uyeler/service/customerDocumentService.ts b/src/module/uyeler/service/customerDocumentService.ts
new file mode 100644
index 0000000..f9d8aae
--- /dev/null
+++ b/src/module/uyeler/service/customerDocumentService.ts
@@ -0,0 +1,72 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useCustomerDocumentStore } from '../stores/customerDocumentStore'
+import { useCustomerDocumentValidationStore } from '../validation/customerDocumentValidationStore'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const useCustomerDocumentService = defineStore('customerDocumentService', () => {
+ const dataStore = useDataStore()
+ const customerDocumentStore = useCustomerDocumentStore()
+ const customerDocumentValidationStore = useCustomerDocumentValidationStore()
+ const usersStore = useUsersStore()
+
+ const GetDocumentList = async () => {
+ customerDocumentStore.customerDocumentsList.splice(
+ 0,
+ customerDocumentStore.customerDocumentsList.length
+ )
+
+ let dt = await dataStore.dataGet(
+ 'AppUserDocument/AppUserId/' + usersStore.selectedUserId(),
+ {
+ params: {
+ pageSize: 50
+ }
+ }
+ )
+ if (dt !== 'errorfalse') {
+ customerDocumentStore.customerDocumentsList.splice(
+ 0,
+ customerDocumentStore.customerDocumentsList.length,
+ ...dt
+ )
+ }
+ setTimeout(() => {
+ customerDocumentStore.loaded = true
+ }, 30)
+ }
+
+ const SaveDocument = async () => {
+ if (customerDocumentValidationStore.FormCheck()) {
+ const formData = new FormData()
+ formData.append('file', customerDocumentStore.customerDocumentForm.file)
+ formData.append('title', customerDocumentStore.customerDocumentForm.title)
+ formData.append('appUserId', String(usersStore.selectedUserId()))
+ let dt: any
+
+ if (!customerDocumentStore.isUpdate) {
+ dt = await dataStore.dataPost('AppUserDocument/upload', {
+ data: formData,
+ headers: { 'Content-Type': 'multipart/form-data' }
+ })
+ } else {
+ dt = await dataStore.dataPut(
+ 'AppUserDocument/' + customerDocumentStore.customerDocumentForm.id,
+ {
+ data: formData,
+ headers: { 'Content-Type': 'multipart/form-data' }
+ }
+ )
+ }
+ if (dt !== 'errorfalse') {
+ await GetDocumentList()
+ customerDocumentStore.documentPanel = false
+ customerDocumentStore.isUpdate = false
+ }
+ } else {
+ customerDocumentValidationStore.isFormValid = true
+ }
+ }
+
+ return { GetDocumentList, SaveDocument }
+})
diff --git a/src/module/uyeler/service/customerIrtibatService.ts b/src/module/uyeler/service/customerIrtibatService.ts
new file mode 100644
index 0000000..856d0d6
--- /dev/null
+++ b/src/module/uyeler/service/customerIrtibatService.ts
@@ -0,0 +1,78 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useCustomerIrtibatStore } from '../stores/customerIrtibatStore'
+import { useCustomerIrtibatValidationStore } from '../validation/customerIrtibatValidationStore'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const useCustomerIrtibatService = defineStore('customerIrtibatService', () => {
+ const dataStore = useDataStore()
+ const customerIrtibatStore = useCustomerIrtibatStore()
+ const customerIrtibatValidationStore = useCustomerIrtibatValidationStore()
+ const usersStore = useUsersStore()
+
+ const GetAllIrtibatList = async (id?: number | string) => {
+ let userId = id || usersStore.selectedUserId()
+ let data: Record | any = await dataStore.dataGet(
+ 'AppUserContactPerson/GetContactPersonAppUserId/' + userId + '?pageNumber=0'
+ )
+
+ if (data !== 'errorfalse') {
+ customerIrtibatStore.customerAllIrtibatList = data.data
+ }
+ setTimeout(() => {
+ customerIrtibatStore.loaded = true
+ }, 30)
+ }
+
+ const GetIrtibat = async (id?: number | string) => {
+ customerIrtibatStore.loaded = false
+ let userId = id || usersStore.selectedUserId()
+ let dt = await dataStore.dataGet(
+ 'AppUserContactPerson/GetContactPersonAppUserId/' + userId
+ )
+ if (dt !== 'errorfalse') {
+ if (dt.data.length === 0) customerIrtibatStore.isNew = true
+
+ if (customerIrtibatStore.isNew) {
+ customerIrtibatStore.ResetForm()
+ } else {
+ Object.assign(customerIrtibatStore.customerIrtibatForm, dt.data[0])
+ customerIrtibatStore.SetSafeIrtibatData()
+ }
+ }
+
+ setTimeout(() => {
+ customerIrtibatStore.loaded = true
+ }, 30)
+ }
+
+ const SaveIrtibat = async () => {
+ if (customerIrtibatValidationStore.FormCheck()) {
+ var res: any
+
+ if (customerIrtibatStore.isNew) {
+ res = await dataStore.dataPost('AppUserContactPerson', {
+ data: customerIrtibatStore.customerIrtibatForm
+ })
+ } else {
+ res = await dataStore.dataPut(
+ 'AppUserContactPerson/' + customerIrtibatStore.customerIrtibatForm.id,
+ {
+ data: customerIrtibatStore.customerIrtibatForm
+ }
+ )
+ }
+
+ if (res !== 'errorfalse') {
+ customerIrtibatStore.isNew = false
+ customerIrtibatValidationStore.formChanged = false
+ customerIrtibatStore.refreshList = true
+ customerIrtibatStore.irtibatPanel = false
+ }
+ } else {
+ customerIrtibatValidationStore.isFormValid = true
+ }
+ }
+
+ return { GetAllIrtibatList, GetIrtibat, SaveIrtibat }
+})
diff --git a/src/module/uyeler/service/customerService.ts b/src/module/uyeler/service/customerService.ts
new file mode 100644
index 0000000..40c15c7
--- /dev/null
+++ b/src/module/uyeler/service/customerService.ts
@@ -0,0 +1,32 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useCustomerStore } from '../stores/customerStore'
+import { useUsersStore } from '@/stores/usersStore'
+import { useGlobalStore } from '@/stores/globalStore'
+
+export const useCustomerService = defineStore('customerService', () => {
+ const dataStore = useDataStore()
+ const customerStore = useCustomerStore()
+ const usersStore = useUsersStore()
+ const globalStore = useGlobalStore()
+
+ const GetCustomerOnayIslemTipleri = async () => {
+ if (customerStore.onayIslemTipleri.length === 0) {
+ let data = await dataStore.dataGet('AppUserOnayDurumuIslemTipi')
+ customerStore.onayIslemTipleri = data
+ }
+ }
+ const GetCustomerData = async () => {
+ let data: Record | any = await dataStore.dataGet(
+ 'Auth/userbyuserid/' + usersStore.selectedUserId()
+ )
+ if (data !== 'errorfalse') {
+ Object.assign(customerStore.customerForm, data)
+ usersStore.userMail = data.email
+ globalStore.selCustomerType = data.basvuruTipId
+ customerStore.loaded = true
+ }
+ }
+
+ return { GetCustomerOnayIslemTipleri, GetCustomerData }
+})
diff --git a/src/module/uyeler/service/uyeIrtibatKisiService.ts b/src/module/uyeler/service/uyeIrtibatKisiService.ts
new file mode 100644
index 0000000..1d25aad
--- /dev/null
+++ b/src/module/uyeler/service/uyeIrtibatKisiService.ts
@@ -0,0 +1,22 @@
+import { defineStore } from 'pinia'
+import { useDataStore } from '@/stores/dataStore'
+import { useUsersStore } from '@/stores/usersStore'
+import { useUyeIrtibatKisiStore } from '../stores/uyeIrtibatKisiStore'
+
+export const useUyeIrtibatKisiService = defineStore('uyeIrtibatKisiService', () => {
+ const dataStore = useDataStore()
+ const usersStore = useUsersStore()
+ const uyeIrtibatKisiStore = useUyeIrtibatKisiStore()
+
+ const GetAllIrtibatKisiler = async (id?: number | string) => {
+ let userId = id || usersStore.selectedUserId()
+ let data: Record | any = await dataStore.dataGet(
+ 'AppUserContactPerson/GetContactPersonAppUserId/' + userId + '?pageNumber=0'
+ )
+
+ if (data !== 'errorfalse') {
+ uyeIrtibatKisiStore.uyeAllIrtibatKisiList = data.data
+ }
+ }
+ return { GetAllIrtibatKisiler }
+})
diff --git a/src/module/uyeler/stores/UyeBilgileriStore.ts b/src/module/uyeler/stores/UyeBilgileriStore.ts
new file mode 100644
index 0000000..7262096
--- /dev/null
+++ b/src/module/uyeler/stores/UyeBilgileriStore.ts
@@ -0,0 +1,471 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useGlobalDataStore } from '@/stores/globalDataStore'
+import { useRoute } from 'vue-router'
+
+export const useUyeBilgileriStore = defineStore('uyeBilgileriStore', () => {
+ const validationStore = useValidationStore()
+ const globalDataStore = useGlobalDataStore()
+ const route = useRoute()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const ilceList = ref[]>([])
+ const mahalleList = ref[]>([])
+
+ const baseCustomerData = reactive>({
+ basvuruTipId: null,
+ gercekAdi: '',
+ gercekSoyadi: '',
+ gercekTCKN: '',
+ gercekVergiDairesi: '',
+ gercekVergiNo: '',
+ gercekOdaKayitNo: '',
+ gercekTicariUnvan: '',
+ tuzelUnvan: '',
+ tuzelVergiDairesi: '',
+ tuzelVergiNo: '',
+ tuzelSicilNo: '',
+ dernekUnvan: '',
+ dernekVergiDairesi: '',
+ dernekVergiNo: '',
+ dernekSicilNo: '',
+ sirketUnvan: '',
+ sirketVergiDairesi: '',
+ sirketVergiNo: '',
+ sirketSicilNo: '',
+ sirketMersis: '',
+ kamuUnvan: '',
+ kamuVergiDairesi: '',
+ kamuVergiNo: '',
+ kamuSicilNo: '',
+ email: '',
+ telefonNumarasi: '',
+ kvkk: false,
+ uyelikSozlesmesi: false,
+ ilId: null,
+ ilceId: null,
+ mahalleId: null,
+ postaKodu: '',
+ adres: '',
+ internetSitesi: '',
+ islemTipi: null,
+ aciklama: '',
+ parentUserId: null,
+ password: '',
+ confirmPassword: ''
+ })
+
+ const formData = reactive>({})
+ const safeData = reactive>({})
+
+ const ResetStore = () => {
+ if (route.meta.authpage as boolean) {
+ baseCustomerData.kvkk = false
+ baseCustomerData.uyelikSozlesmesi = false
+ baseCustomerData.password = ''
+ baseCustomerData.confirmPassword = ''
+ }
+ Object.assign(formData, baseCustomerData)
+ Object.assign(invalidTexts, {})
+ ilceList.value = []
+ mahalleList.value = []
+ formChanged.value = false
+ isFormValid.value = true
+ }
+
+ const ChangeKullaniciTipi = (e: Event, d: string | number) => {
+ /*var gercekData = {
+ gercekAdi: '',
+ gercekSoyadi: '',
+ gercekTCKN: '',
+ gercekVergiDairesi:'',
+ gercekVergiNo:'',
+ gercekTicariUnvan: ''
+ }
+ var tuzelData = {
+ tuzelUnvan: '',
+ tuzelVergiDairesi: '',
+ tuzelVergiNo: '',
+ tuzelSicilNo: ''
+ }
+ var dernekData = {
+ dernekUnvan: '',
+ dernekVergiDairesi: '',
+ dernekVergiNo: '',
+ dernekSicilNo: ''
+ }
+ if (d === 1) {
+ Object.assign(formData, gercekData)
+ } else {
+ Object.keys(gercekData).forEach((key) => {
+ delete formData[key]
+ })
+ }
+ if (d === 2) {
+ Object.assign(formData, tuzelData)
+ } else {
+ Object.keys(tuzelData).forEach((key) => {
+ delete formData[key]
+ })
+ }
+ if (d === 3) {
+ Object.assign(formData, dernekData)
+ } else {
+ Object.keys(dernekData).forEach((key) => {
+ delete formData[key]
+ })
+ }*/
+ formChanged.value = true
+ }
+
+ const ResetFormItems = () => {
+ if (formData.basvuruTipId === 18) {
+ ;(formData.tuzelUnvan = ''),
+ (formData.tuzelVergiDairesi = ''),
+ (formData.tuzelVergiNo = ''),
+ (formData.tuzelSicilNo = ''),
+ (formData.dernekUnvan = ''),
+ (formData.dernekVergiDairesi = ''),
+ (formData.dernekVergiNo = ''),
+ (formData.dernekSicilNo = ''),
+ (formData.sirketUnvan = ''),
+ (formData.sirketVergiDairesi = ''),
+ (formData.sirketVergiNo = ''),
+ (formData.sirketSicilNo = ''),
+ (formData.sirketMersis = ''),
+ (formData.kamuUnvan = ''),
+ (formData.kamuVergiDairesi = ''),
+ (formData.kamuVergiNo = ''),
+ (formData.kamuSicilNo = '')
+ } else if (formData.basvuruTipId === 21) {
+ ;(formData.gercekAdi = ''),
+ (formData.gercekSoyadi = ''),
+ (formData.gercekTCKN = ''),
+ (formData.gercekVergiDairesi = ''),
+ (formData.gercekVergiNo = ''),
+ (formData.gercekOdaKayitNo = ''),
+ (formData.gercekTicariUnvan = ''),
+ (formData.dernekUnvan = ''),
+ (formData.dernekVergiDairesi = ''),
+ (formData.dernekVergiNo = ''),
+ (formData.dernekSicilNo = ''),
+ (formData.sirketUnvan = ''),
+ (formData.sirketVergiDairesi = ''),
+ (formData.sirketVergiNo = ''),
+ (formData.sirketSicilNo = ''),
+ (formData.sirketMersis = ''),
+ (formData.kamuUnvan = ''),
+ (formData.kamuVergiDairesi = ''),
+ (formData.kamuVergiNo = ''),
+ (formData.kamuSicilNo = '')
+ } else if (formData.basvuruTipId === 22) {
+ ;(formData.gercekAdi = ''),
+ (formData.gercekSoyadi = ''),
+ (formData.gercekTCKN = ''),
+ (formData.gercekVergiDairesi = ''),
+ (formData.gercekVergiNo = ''),
+ (formData.gercekOdaKayitNo = ''),
+ (formData.gercekTicariUnvan = ''),
+ (formData.tuzelUnvan = ''),
+ (formData.tuzelVergiDairesi = ''),
+ (formData.tuzelVergiNo = ''),
+ (formData.tuzelSicilNo = ''),
+ (formData.sirketUnvan = ''),
+ (formData.sirketVergiDairesi = ''),
+ (formData.sirketVergiNo = ''),
+ (formData.sirketSicilNo = ''),
+ (formData.sirketMersis = ''),
+ (formData.kamuUnvan = ''),
+ (formData.kamuVergiDairesi = ''),
+ (formData.kamuVergiNo = ''),
+ (formData.kamuSicilNo = '')
+ } else if (formData.basvuruTipId === 23) {
+ ;(formData.gercekAdi = ''),
+ (formData.gercekSoyadi = ''),
+ (formData.gercekTCKN = ''),
+ (formData.gercekVergiDairesi = ''),
+ (formData.gercekVergiNo = ''),
+ (formData.gercekOdaKayitNo = ''),
+ (formData.gercekTicariUnvan = ''),
+ (formData.tuzelUnvan = ''),
+ (formData.tuzelVergiDairesi = ''),
+ (formData.tuzelVergiNo = ''),
+ (formData.tuzelSicilNo = ''),
+ (formData.dernekUnvan = ''),
+ (formData.dernekVergiDairesi = ''),
+ (formData.dernekVergiNo = ''),
+ (formData.dernekSicilNo = ''),
+ (formData.kamuUnvan = ''),
+ (formData.kamuVergiDairesi = ''),
+ (formData.kamuVergiNo = ''),
+ (formData.kamuSicilNo = '')
+ } else if (formData.basvuruTipId === 26) {
+ ;(formData.gercekAdi = ''),
+ (formData.gercekSoyadi = ''),
+ (formData.gercekTCKN = ''),
+ (formData.gercekVergiDairesi = ''),
+ (formData.gercekVergiNo = ''),
+ (formData.gercekOdaKayitNo = ''),
+ (formData.gercekTicariUnvan = ''),
+ (formData.tuzelUnvan = ''),
+ (formData.tuzelVergiDairesi = ''),
+ (formData.tuzelVergiNo = ''),
+ (formData.tuzelSicilNo = ''),
+ (formData.dernekUnvan = ''),
+ (formData.dernekVergiDairesi = ''),
+ (formData.dernekVergiNo = ''),
+ (formData.dernekSicilNo = ''),
+ (formData.sirketUnvan = ''),
+ (formData.sirketVergiDairesi = ''),
+ (formData.sirketVergiNo = ''),
+ (formData.sirketSicilNo = ''),
+ (formData.sirketMersis = '')
+ }
+ }
+ const SetIlIlce = () => {
+ if (
+ formData.ilceId !== undefined &&
+ formData.ilceId !== null &&
+ formData.ilceId !== ''
+ ) {
+ let ilO = globalDataStore.ilList.filter((v: Record) => {
+ return v.id === formData.ilId
+ })
+ ilceList.value.splice(0, ilceList.value.length, ...(ilO[0]['ilceler'] as Record[]))
+ } else {
+ formData.ilceId = ''
+ }
+
+ if (
+ formData.mahalleId !== undefined &&
+ formData.mahalleId !== null &&
+ formData.mahalleId !== ''
+ ) {
+ let mahalleO = ilceList.value.filter((v: Record) => {
+ return v.id === formData.ilceId
+ })
+ mahalleList.value.splice(0, mahalleList.value.length, ...mahalleO[0]['mahalleler'])
+ } else {
+ formData.mahalleId = ''
+ }
+ }
+ const SetbasvuruTip = () => {
+ if (
+ formData.basvuruTipId === undefined &&
+ formData.basvuruTipId === null &&
+ formData.basvuruTipId === ''
+ )
+ formData.basvuruTipId = 0
+ }
+
+ const IsFieldEmpty = (field: string, text: string) => {
+ if (validationStore.checkEmpty(formData[field])) {
+ invalidTexts[field] = text
+ isFormValid.value = false
+ } else {
+ delete invalidTexts[field]
+ }
+ }
+
+ const RestoreForm = () => {
+ Object.assign(formData, safeData)
+ formChanged.value = false
+ }
+
+ const FormCheck = (): boolean => {
+ IsFieldEmpty('basvuruTipId', 'Lütfen başvuru tipini seçiniz')
+
+ if (validationStore.checkEmpty(formData.email)) {
+ invalidTexts.email = 'Eposta alanı boş bırakılamaz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.email
+ if (!validationStore.checkEmail(formData.email)) {
+ invalidTexts.email =
+ 'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.email
+ }
+ }
+
+ IsFieldEmpty('telefonNumarasi', 'Telefon alanı boş bırakılamaz')
+ if (!validationStore.checkEmpty(formData.telefonNumarasi)) {
+ if (formData.telefonNumarasi.length !== 10) {
+ invalidTexts.telefonNumarasi =
+ 'Telefon numaranızı başında 0 olmadan 10 hane olarak giriniz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.telefonNumarasi
+ }
+ }
+ IsFieldEmpty('ilId', 'Lütfen il seçiniz')
+ IsFieldEmpty('ilceId', 'Lütfen ilçe seçiniz')
+ IsFieldEmpty('mahalleId', 'Lütfen mahalle seçiniz')
+ IsFieldEmpty('adres', 'Adres alanı boş bırakılamaz')
+
+ if (formData.basvuruTipId === 18) {
+ IsFieldEmpty('gercekAdi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('gercekSoyadi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('gercekTCKN', 'Bu alan boş bırakılamaz')
+ if (!validationStore.checkEmpty(formData.gercekTCKN)) {
+ if (formData.gercekTCKN.length !== 11) {
+ invalidTexts.gercekTCKN =
+ 'Lütfen 11 hane olacak şekilde TC Kimlik Numaranızı yazınız'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.gercekTCKN
+ }
+ }
+ IsFieldEmpty('gercekVergiDairesi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('gercekVergiNo', 'Bu alan boş bırakılamaz')
+ if (!validationStore.checkEmpty(formData.gercekVergiNo)) {
+ if (formData.gercekVergiNo.length !== 11) {
+ invalidTexts.gercekVergiNo = 'Vergi numaranızı 11 hane olarak giriniz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.gercekVergiNo
+ }
+ }
+ IsFieldEmpty('gercekOdaKayitNo', 'Bu alan boş bırakılamaz')
+ }
+ if (formData.basvuruTipId === 21) {
+ IsFieldEmpty('tuzelUnvan', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('tuzelVergiDairesi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('tuzelVergiNo', 'Bu alan boş bırakılamaz')
+ if (!validationStore.checkEmpty(formData.tuzelVergiNo)) {
+ if (formData.tuzelVergiNo.length < 10 || formData.tuzelVergiNo.length > 11) {
+ invalidTexts.tuzelVergiNo = 'Vergi numaranızı kontrol ediniz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.tuzelVergiNo
+ }
+ }
+ IsFieldEmpty('tuzelSicilNo', 'Bu alan boş bırakılamaz')
+ }
+
+ if (formData.basvuruTipId === 22) {
+ IsFieldEmpty('dernekUnvan', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('dernekVergiDairesi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('dernekVergiNo', 'Bu alan boş bırakılamaz')
+ if (!validationStore.checkEmpty(formData.dernekVergiNo)) {
+ if (formData.dernekVergiNo.length < 10 || formData.dernekVergiNo.length > 11) {
+ invalidTexts.dernekVergiNo = 'Vergi numaranızı kontrol ediniz'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.dernekVergiNo
+ }
+ }
+ IsFieldEmpty('dernekSicilNo', 'Bu alan boş bırakılamaz')
+ }
+
+ if (formData.basvuruTipId === 23) {
+ IsFieldEmpty('sirketUnvan', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('sirketVergiDairesi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('sirketVergiNo', 'Bu alan boş bırakılamaz')
+
+ if (!validationStore.checkEmpty(formData.sirketVergiNo)) {
+ if (formData.sirketVergiNo.length < 10 || formData.sirketVergiNo.length > 11) {
+ invalidTexts.sirketVergiNo = 'Vergi numaranızı kontrol ediniz'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.sirketVergiNo
+ }
+ }
+ IsFieldEmpty('sirketSicilNo', 'Bu alan boş bırakılamaz')
+ }
+
+ if (formData.basvuruTipId === 26) {
+ IsFieldEmpty('kamuUnvan', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('kamuVergiDairesi', 'Bu alan boş bırakılamaz')
+ IsFieldEmpty('kamuVergiNo', 'Bu alan boş bırakılamaz')
+ if (!validationStore.checkEmpty(formData.kamuVergiNo)) {
+ if (formData.kamuVergiNo.length < 10 || formData.kamuVergiNo.length > 11) {
+ invalidTexts.kamuVergiNo = 'Vergi numaranızı kontrol ediniz.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.kamuVergiNo
+ }
+ }
+ }
+
+ if (!validationStore.checkEmpty(formData.postaKodu)) {
+ if (formData.postaKodu.length !== 5) {
+ invalidTexts.postaKodu = 'Posta kodu 5 hane olmalıdır.'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.postaKodu
+ }
+ }
+
+ if (route.meta.authpage as boolean) {
+ IsFieldEmpty('password', 'Bir parola belirlemelisiniz')
+ IsFieldEmpty(
+ 'confirmPassword',
+ 'Lütfen bu alana girdiğiniz parolayı tekrar giriniz.'
+ )
+
+ if (!validationStore.checkEmpty(formData.password)) {
+ if (formData.password.length < 6) {
+ invalidTexts.password = 'Girdiğiniz parola en az 6 haneli olmalıdır.'
+ } else {
+ delete invalidTexts.password
+ }
+ }
+
+ if (!validationStore.checkEmpty(formData.confirmPassword)) {
+ if (formData.confirmPassword.length < 6) {
+ invalidTexts.confirmPassword =
+ 'Girdiğiniz parola doğrulama değeri en az 6 haneli olmalıdır.'
+ } else {
+ delete invalidTexts.password
+ }
+
+ if (formData.confirmPassword !== formData.password) {
+ invalidTexts.confirmPassword =
+ 'Girdiğiniz değer Parola alanı ile aynı olmalıdır'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.confirmPassword
+ }
+ }
+
+ if (!formData.kvkk) {
+ invalidTexts.kvkk = 'KVKK aydınlatma metnini kabul etmelisiniz'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.kvkk
+ }
+
+ if (!formData.uyelikSozlesmesi) {
+ invalidTexts.uyelikSozlesmesi = 'Üyelik sözleşmesini kabul etmelisiniz'
+ isFormValid.value = false
+ } else {
+ delete invalidTexts.uyelikSozlesmesi
+ }
+ }
+
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ ilceList,
+ mahalleList,
+ formData,
+ safeData,
+ ResetStore,
+ ChangeKullaniciTipi,
+ SetIlIlce,
+ SetbasvuruTip,
+ ResetFormItems,
+ RestoreForm,
+ FormCheck
+ }
+})
diff --git a/src/module/uyeler/stores/customerDocumentStore.ts b/src/module/uyeler/stores/customerDocumentStore.ts
new file mode 100644
index 0000000..74e06c9
--- /dev/null
+++ b/src/module/uyeler/stores/customerDocumentStore.ts
@@ -0,0 +1,34 @@
+import { defineStore } from 'pinia'
+import { ref,reactive } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const useCustomerDocumentStore = defineStore('customerDocumentStore', () => {
+ const usersStore = useUsersStore()
+
+ const customerDocumentsList = ref[]>([])
+ const customerDocumentBaseForm = reactive>({
+ file: null,
+ cekilisId: usersStore.selectedUserId(),
+ title: ''
+ })
+ const customerDocumentForm = reactive>({})
+ const customerDocumentSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const documentPanel = ref(false)
+ const loaded = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(customerDocumentForm, customerDocumentBaseForm)
+ }
+
+ return {
+ customerDocumentsList,
+ customerDocumentBaseForm,
+ customerDocumentForm,
+ customerDocumentSafeForm,
+ isUpdate,
+ documentPanel,
+ loaded,
+ ResetForm
+ }
+})
diff --git a/src/module/uyeler/stores/customerIrtibatStore.ts b/src/module/uyeler/stores/customerIrtibatStore.ts
new file mode 100644
index 0000000..401fb64
--- /dev/null
+++ b/src/module/uyeler/stores/customerIrtibatStore.ts
@@ -0,0 +1,67 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+import { useCustomerIrtibatValidationStore } from '../validation/customerIrtibatValidationStore'
+
+export const useCustomerIrtibatStore = defineStore('customerIrtibatStore', () => {
+ const usersStore = useUsersStore()
+ const customerIrtibatValidationStore = useCustomerIrtibatValidationStore()
+
+ const customerAllIrtibatList = ref[]>([])
+
+ const customerIrtibatBaseForm = reactive>({
+ appUserId: usersStore.selectedUserId(),
+ firstName: '',
+ lastName: '',
+ email: '',
+ phone: ''
+ })
+
+ const customerIrtibatForm = reactive>({})
+ const customerIrtibatSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const refreshList = ref(false)
+ const irtibatPanel = ref(false)
+ const loaded = ref(false)
+ const totalIrtibat = ref(0)
+ const isNew = ref(false)
+
+ const ResetForm = () => {
+ Object.assign(customerIrtibatForm, customerIrtibatBaseForm)
+ customerIrtibatForm.appUserId = usersStore.selectedUserId()
+ delete customerIrtibatForm.id
+ }
+ const SetSafeIrtibatData = () => {
+ Object.assign(customerIrtibatSafeForm, customerIrtibatForm)
+ }
+ const RestoreData = () => {
+ Object.assign(customerIrtibatForm, customerIrtibatSafeForm)
+ }
+ const CancelSave = () => {
+ RestoreData()
+ customerIrtibatValidationStore.formChanged = false
+ }
+ const ResetData = () => {
+ isNew.value = false
+ isUpdate.value = false
+ loaded.value = false
+ Object.assign(customerIrtibatForm, {})
+ }
+ return {
+ customerAllIrtibatList,
+ customerIrtibatBaseForm,
+ customerIrtibatForm,
+ customerIrtibatSafeForm,
+ isUpdate,
+ refreshList,
+ irtibatPanel,
+ loaded,
+ totalIrtibat,
+ isNew,
+ ResetForm,
+ SetSafeIrtibatData,
+ RestoreData,
+ CancelSave,
+ ResetData
+ }
+})
diff --git a/src/module/uyeler/stores/customerStore.ts b/src/module/uyeler/stores/customerStore.ts
new file mode 100644
index 0000000..dd8c5fe
--- /dev/null
+++ b/src/module/uyeler/stores/customerStore.ts
@@ -0,0 +1,136 @@
+import { defineStore } from 'pinia'
+import { ref, reactive, computed } from 'vue'
+import { useUsersStore } from '@/stores/usersStore'
+
+export const useCustomerStore = defineStore('customerStore', () => {
+ const usersStore = useUsersStore()
+
+ const customerMail = ref('')
+ const selectedCustomer = ref(0)
+ const selectedSubCustomer = ref(0)
+ const customerApproveId = ref(null)
+ const subCustomerApproveId = ref(null)
+ const onayIslemTipleri = ref[]>([])
+ const uyeOnayRefresh = ref(false)
+
+ const customerBaseForm = reactive>({
+ appUserId: usersStore.selectedUserId,
+ firstName: '',
+ lastName: '',
+ email: '',
+ phone: ''
+ })
+ const customerForm = reactive>({})
+ const customerSafeForm = reactive>({})
+ const isUpdate = ref(false)
+ const loaded = ref(false)
+ const isNew = ref(false)
+
+ const GetUnvan = (v: Record): string => {
+ switch (v.basvuruTipId) {
+ case 18: {
+ return `${v.gercekAdi} ${v.gercekSoyadi} (${v.gercekTicariUnvan})`
+ }
+ case 21: {
+ return v.tuzelUnvan
+ }
+ case 22: {
+ return v.dernekUnvan
+ }
+ case 23: {
+ return v.sirketUnvan
+ }
+ case 26: {
+ return v.kamuUnvan
+ }
+ default: {
+ return ''
+ }
+ }
+ }
+
+ const CellStatusClass = (d: number): string => {
+ switch (d) {
+ case 1: {
+ return 'back-grad-waiting'
+ }
+ case 2: {
+ return 'back-grad-waiting'
+ }
+ case 3: {
+ return 'back-grad-next'
+ }
+ case 4: {
+ return 'back-grad-ok'
+ }
+ case 5: {
+ return 'back-grad-alert'
+ }
+ case 6: {
+ return 'back-grad-beforeok'
+ }
+ case 7: {
+ return 'back-grad-change'
+ }
+ default: {
+ return 'back-grad-new'
+ }
+ }
+ }
+
+ const CellStatusName = (d: number): string => {
+ const tip: Record = onayIslemTipleri.value.filter(
+ (v: Record) => v.id === d
+ )
+
+ if (tip[0] !== undefined) return tip[0].tipAdi
+ else return 'Yeni Üye'
+ }
+
+ const customerApproved = computed(() => {
+ return customerApproveId.value === 4
+ })
+
+ const subCustomerApproved = computed(() => {
+ return subCustomerApproveId.value === 4
+ })
+
+ const ResetForm = () => {
+ Object.assign(customerForm, customerBaseForm)
+ }
+ const SetSafeIrtibatData = () => {
+ Object.assign(customerSafeForm, customerForm)
+ }
+ const RestoreData = () => {
+ Object.assign(customerForm, customerSafeForm)
+ }
+ const CancelSave = () => {
+ RestoreData()
+ //customerIrtibatValidationStore.formChanged = false
+ }
+
+ return {
+ customerMail,
+ selectedCustomer,
+ selectedSubCustomer,
+ customerApproveId,
+ customerApproved,
+ subCustomerApproveId,
+ subCustomerApproved,
+ onayIslemTipleri,
+ uyeOnayRefresh,
+ customerBaseForm,
+ customerForm,
+ customerSafeForm,
+ isUpdate,
+ loaded,
+ isNew,
+ GetUnvan,
+ CellStatusClass,
+ CellStatusName,
+ ResetForm,
+ SetSafeIrtibatData,
+ RestoreData,
+ CancelSave
+ }
+})
diff --git a/src/module/uyeler/stores/uyeIrtibatKisiStore.ts b/src/module/uyeler/stores/uyeIrtibatKisiStore.ts
new file mode 100644
index 0000000..9f722b5
--- /dev/null
+++ b/src/module/uyeler/stores/uyeIrtibatKisiStore.ts
@@ -0,0 +1,8 @@
+import { defineStore } from 'pinia'
+import { ref } from 'vue'
+
+export const useUyeIrtibatKisiStore = defineStore('uyeIrtibatKisiStore', () => {
+ const uyeAllIrtibatKisiList = ref[]>([])
+
+ return { uyeAllIrtibatKisiList }
+})
diff --git a/src/module/uyeler/validation/customerDocumentValidationStore.ts b/src/module/uyeler/validation/customerDocumentValidationStore.ts
new file mode 100644
index 0000000..e64266e
--- /dev/null
+++ b/src/module/uyeler/validation/customerDocumentValidationStore.ts
@@ -0,0 +1,44 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useCustomerDocumentStore } from '../stores/customerDocumentStore'
+
+export const useCustomerDocumentValidationStore = defineStore(
+ 'customerDocumentValidationStore',
+ () => {
+ const customerDocumentStore = useCustomerDocumentStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ customerDocumentStore.customerDocumentForm,
+ invalidTexts,
+ 'title',
+ 'Döküman için bir başlık belirtmelisiniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ customerDocumentStore.customerDocumentForm,
+ invalidTexts,
+ 'file',
+ 'Bir döküman eklemelisiniz.'
+ )
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/uyeler/validation/customerIrtibatValidationStore.ts b/src/module/uyeler/validation/customerIrtibatValidationStore.ts
new file mode 100644
index 0000000..7c7c0fd
--- /dev/null
+++ b/src/module/uyeler/validation/customerIrtibatValidationStore.ts
@@ -0,0 +1,78 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useValidationStore } from '@/stores/validationStore'
+import { useCustomerIrtibatStore } from '../stores/customerIrtibatStore'
+
+export const useCustomerIrtibatValidationStore = defineStore(
+ 'customerIrtibatValidationStore',
+ () => {
+ const customerIrtibatStore = useCustomerIrtibatStore()
+ const validationStore = useValidationStore()
+
+ const formChanged = ref(false)
+ const isFormValid = ref(true)
+ const invalidTexts = reactive>({})
+
+ const FormCheck = (): boolean => {
+ Object.assign(invalidTexts, {})
+
+ validationStore.IsFieldEmpty(
+ customerIrtibatStore.customerIrtibatForm,
+ invalidTexts,
+ 'firstName',
+ 'Lütfen adını giriniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ customerIrtibatStore.customerIrtibatForm,
+ invalidTexts,
+ 'lastName',
+ 'Lütfen soyadını giriniz.'
+ )
+
+ validationStore.IsFieldEmpty(
+ customerIrtibatStore.customerIrtibatForm,
+ invalidTexts,
+ 'phone',
+ 'Lütfen telefon numarasını giriniz'
+ )
+
+ if (!validationStore.checkEmpty(customerIrtibatStore.customerIrtibatForm.email)) {
+ if (customerIrtibatStore.customerIrtibatForm.phone.length !== 10) {
+ isFormValid.value = false
+ invalidTexts.phone =
+ 'Lütfen telefon numarasını başında 0 olmadan 10 haneli olarak giriniz.'
+ } else {
+ delete invalidTexts.phone
+ }
+ }
+
+ validationStore.IsFieldEmpty(
+ customerIrtibatStore.customerIrtibatForm,
+ invalidTexts,
+ 'email',
+ 'Lütfen e-posta adresini giriniz'
+ )
+
+ if (!validationStore.checkEmpty(customerIrtibatStore.customerIrtibatForm.email)) {
+ if (!validationStore.checkEmail(customerIrtibatStore.customerIrtibatForm.email)) {
+ isFormValid.value = false
+ invalidTexts.email =
+ 'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td'
+ } else {
+ delete invalidTexts.email
+ }
+ }
+
+ isFormValid.value = Object.keys(invalidTexts).length === 0
+ return isFormValid.value
+ }
+
+ return {
+ formChanged,
+ isFormValid,
+ invalidTexts,
+ FormCheck
+ }
+ }
+)
diff --git a/src/module/uyeler/views/UyeDetay.vue b/src/module/uyeler/views/UyeDetay.vue
new file mode 100644
index 0000000..040bcd2
--- /dev/null
+++ b/src/module/uyeler/views/UyeDetay.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/views/UyeProfil.vue b/src/module/uyeler/views/UyeProfil.vue
new file mode 100644
index 0000000..14ca240
--- /dev/null
+++ b/src/module/uyeler/views/UyeProfil.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/views/UyeTipleri.vue b/src/module/uyeler/views/UyeTipleri.vue
new file mode 100644
index 0000000..b6357b1
--- /dev/null
+++ b/src/module/uyeler/views/UyeTipleri.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/views/UyeYetkili.vue b/src/module/uyeler/views/UyeYetkili.vue
new file mode 100644
index 0000000..c23978d
--- /dev/null
+++ b/src/module/uyeler/views/UyeYetkili.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/module/uyeler/views/UyelerListe.vue b/src/module/uyeler/views/UyelerListe.vue
new file mode 100644
index 0000000..eafc8c6
--- /dev/null
+++ b/src/module/uyeler/views/UyelerListe.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
diff --git a/src/router/index.ts b/src/router/index.ts
new file mode 100644
index 0000000..b5afbd7
--- /dev/null
+++ b/src/router/index.ts
@@ -0,0 +1,46 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import { useUsersStore } from '@/stores/usersStore'
+import Dashboard from '@/views/Dashboard.vue'
+import Auth from '@/module/auth/routes'
+import Uyeler from '@/module/uyeler/routes'
+import Cekilisler from '@/module/cekilisler/routes'
+import Kullanicilar from '@/module/kullanicilar/routes'
+import SiteYonetimi from '@/module/site-yonetimi/routes'
+import Settings from '@/module/ayarlar/routes'
+import Logs from '@/module/sistem-gunlugu/routes'
+import Profil from '@/module/Profil/routes'
+import Muhasebe from '@/module/muhasebe/routes'
+
+const router = createRouter({
+ sensitive: undefined,
+ strict: undefined,
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes: [
+ ...Auth,
+ ...Uyeler,
+ ...Cekilisler,
+ ...Kullanicilar,
+ ...SiteYonetimi,
+ ...Settings,
+ ...Logs,
+ ...Profil,
+ ...Muhasebe,
+ {
+ path: '/',
+ name: 'Dashboard',
+ component: Dashboard,
+ meta: {
+ authRequired: true
+ }
+ }
+ ]
+})
+router.beforeEach((to, from) => {
+ const usersStore = useUsersStore()
+
+ if (to.meta.authRequired && !usersStore.userIsAuth && from.name !== 'Login') {
+ router.push('/login')
+ }
+})
+
+export default router
diff --git a/src/stores/dataStore.ts b/src/stores/dataStore.ts
new file mode 100644
index 0000000..4b7ac02
--- /dev/null
+++ b/src/stores/dataStore.ts
@@ -0,0 +1,210 @@
+import { defineStore } from 'pinia'
+import { ref, reactive } from 'vue'
+import { useGlobalDataStore } from '@/stores/globalDataStore'
+import { useToastStore } from '@/components/global/toastStore'
+import axios from 'axios'
+
+export const useDataStore = defineStore('dataStore', () => {
+ const globalDataStore = useGlobalDataStore()
+ const toastStore = useToastStore()
+
+ const siteBase = ref('https://mpiapi.beyaz.net/')
+ const apiBase = ref('api/')
+ const panelData = reactive>({})
+ const pageData = reactive>({})
+ const panelDataChanged = ref(false)
+ const pageDataChanged = ref(false)
+ const pageDataUpdate = ref(false)
+ const isLoading = ref(false)
+
+ const dataGet = async (
+ api: string,
+ data: {
+ data?: any
+ params?: Record
+ headers?: Record
+
+ Başvuru bedeli, + + {{ muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli }} ₺ +KDV + + 'dir. +
+ İdaremizin {{ muhasebeSettingsStore.muhasebeSettingsForm.kurumBanka }} - + {{ muhasebeSettingsStore.muhasebeSettingsForm.kurumBankaSube }} + Şubesi nezdindeki + {{ muhasebeSettingsStore.muhasebeSettingsForm.kurumIBAN }} IBAN numaralı hesabına + "Başvuru Bedeli" + açıklamasıyla yatırılacaktır. + + + +
+
+ "Yardım Amaçlı Piyango Bilet Bilgileri" + bölümündeki bilgileri doldurmayı unutmayınız. + +