switched from auto pay to scheduled payment
This commit is contained in:
627
resources/public/css/bulma.min.css
vendored
627
resources/public/css/bulma.min.css
vendored
@@ -9412,6 +9412,633 @@ a.has-text-primary-two-dark:hover, a.has-text-primary-two-dark:focus {
|
|||||||
padding: 3rem 1.5rem 6rem;
|
padding: 3rem 1.5rem 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.switch[type=checkbox] {
|
||||||
|
outline: 0;
|
||||||
|
user-select: none;
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox]:focus + label::before, .switch[type=checkbox]:focus + label:before, .switch[type=checkbox]:focus + label::after, .switch[type=checkbox]:focus + label:after {
|
||||||
|
outline: 1px dotted #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox][disabled] {
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox][disabled] + label {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox][disabled] + label::before, .switch[type=checkbox][disabled] + label:before {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox][disabled] + label::after, .switch[type=checkbox][disabled] + label:after {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox][disabled] + label:hover {
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox] + label {
|
||||||
|
position: relative;
|
||||||
|
display: iniline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
font-size: 1rem;
|
||||||
|
height: 2.5em;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding-left: 3.5rem;
|
||||||
|
padding-top: 0.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox] + label::before, .switch[type=checkbox] + label:before {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 3rem;
|
||||||
|
height: 1.5rem;
|
||||||
|
border: 0.1rem solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #b5b5b5;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox] + label::after, .switch[type=checkbox] + label:after {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.25rem;
|
||||||
|
left: 0.25rem;
|
||||||
|
width: 1rem;
|
||||||
|
height: 1rem;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
border-radius: 4px;
|
||||||
|
background: white;
|
||||||
|
transition: all 0.25s ease-out;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-rtl + label {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 3.5rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-rtl + label::before, .switch[type=checkbox].is-rtl + label:before {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-rtl + label::after, .switch[type=checkbox].is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 1.625rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox]:checked + label::before, .switch[type=checkbox]:checked + label:before {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox]:checked + label::after {
|
||||||
|
left: 1.625rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox]:checked.is-rtl + label::after, .switch[type=checkbox]:checked.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 0.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-outlined + label::before, .switch[type=checkbox].is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-outlined + label::after, .switch[type=checkbox].is-outlined + label:after {
|
||||||
|
background: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-outlined:checked + label::before, .switch[type=checkbox].is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-outlined:checked + label::after, .switch[type=checkbox].is-outlined:checked + label:after {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-thin + label::before, .switch[type=checkbox].is-thin + label:before {
|
||||||
|
top: 0.5454545455rem;
|
||||||
|
height: 0.375rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-thin + label::after, .switch[type=checkbox].is-thin + label:after {
|
||||||
|
box-shadow: 0px 0px 3px #adafb1;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-rounded + label::before, .switch[type=checkbox].is-rounded + label:before {
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-rounded + label::after, .switch[type=checkbox].is-rounded + label:after {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small + label {
|
||||||
|
position: relative;
|
||||||
|
display: iniline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
height: 2.5em;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding-left: 2.75rem;
|
||||||
|
padding-top: 0.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small + label::before, .switch[type=checkbox].is-small + label:before {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 2.25rem;
|
||||||
|
height: 1.125rem;
|
||||||
|
border: 0.1rem solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #b5b5b5;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small + label::after, .switch[type=checkbox].is-small + label:after {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.25rem;
|
||||||
|
left: 0.25rem;
|
||||||
|
width: 0.625rem;
|
||||||
|
height: 0.625rem;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
border-radius: 4px;
|
||||||
|
background: white;
|
||||||
|
transition: all 0.25s ease-out;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-rtl + label {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 2.75rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-rtl + label::before, .switch[type=checkbox].is-small.is-rtl + label:before {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-rtl + label::after, .switch[type=checkbox].is-small.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 1.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small:checked + label::before, .switch[type=checkbox].is-small:checked + label:before {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small:checked + label::after {
|
||||||
|
left: 1.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small:checked.is-rtl + label::after, .switch[type=checkbox].is-small:checked.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 0.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-outlined + label::before, .switch[type=checkbox].is-small.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-outlined + label::after, .switch[type=checkbox].is-small.is-outlined + label:after {
|
||||||
|
background: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-outlined:checked + label::before, .switch[type=checkbox].is-small.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-outlined:checked + label::after, .switch[type=checkbox].is-small.is-outlined:checked + label:after {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-thin + label::before, .switch[type=checkbox].is-small.is-thin + label:before {
|
||||||
|
top: 0.4090909091rem;
|
||||||
|
height: 0.28125rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-thin + label::after, .switch[type=checkbox].is-small.is-thin + label:after {
|
||||||
|
box-shadow: 0px 0px 3px #adafb1;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-rounded + label::before, .switch[type=checkbox].is-small.is-rounded + label:before {
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-small.is-rounded + label::after, .switch[type=checkbox].is-small.is-rounded + label:after {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium + label {
|
||||||
|
position: relative;
|
||||||
|
display: iniline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
height: 2.5em;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding-left: 4.25rem;
|
||||||
|
padding-top: 0.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium + label::before, .switch[type=checkbox].is-medium + label:before {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 3.75rem;
|
||||||
|
height: 1.875rem;
|
||||||
|
border: 0.1rem solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #b5b5b5;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium + label::after, .switch[type=checkbox].is-medium + label:after {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.25rem;
|
||||||
|
left: 0.25rem;
|
||||||
|
width: 1.375rem;
|
||||||
|
height: 1.375rem;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
border-radius: 4px;
|
||||||
|
background: white;
|
||||||
|
transition: all 0.25s ease-out;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-rtl + label {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 4.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-rtl + label::before, .switch[type=checkbox].is-medium.is-rtl + label:before {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-rtl + label::after, .switch[type=checkbox].is-medium.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 2rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium:checked + label::before, .switch[type=checkbox].is-medium:checked + label:before {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium:checked + label::after {
|
||||||
|
left: 2rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium:checked.is-rtl + label::after, .switch[type=checkbox].is-medium:checked.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 0.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-outlined + label::before, .switch[type=checkbox].is-medium.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-outlined + label::after, .switch[type=checkbox].is-medium.is-outlined + label:after {
|
||||||
|
background: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-outlined:checked + label::before, .switch[type=checkbox].is-medium.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-outlined:checked + label::after, .switch[type=checkbox].is-medium.is-outlined:checked + label:after {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-thin + label::before, .switch[type=checkbox].is-medium.is-thin + label:before {
|
||||||
|
top: 0.6818181818rem;
|
||||||
|
height: 0.46875rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-thin + label::after, .switch[type=checkbox].is-medium.is-thin + label:after {
|
||||||
|
box-shadow: 0px 0px 3px #adafb1;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-rounded + label::before, .switch[type=checkbox].is-medium.is-rounded + label:before {
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-medium.is-rounded + label::after, .switch[type=checkbox].is-medium.is-rounded + label:after {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large + label {
|
||||||
|
position: relative;
|
||||||
|
display: iniline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
height: 2.5em;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding-left: 5rem;
|
||||||
|
padding-top: 0.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large + label::before, .switch[type=checkbox].is-large + label:before {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 4.5rem;
|
||||||
|
height: 2.25rem;
|
||||||
|
border: 0.1rem solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #b5b5b5;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large + label::after, .switch[type=checkbox].is-large + label:after {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.25rem;
|
||||||
|
left: 0.25rem;
|
||||||
|
width: 1.75rem;
|
||||||
|
height: 1.75rem;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
border-radius: 4px;
|
||||||
|
background: white;
|
||||||
|
transition: all 0.25s ease-out;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-rtl + label {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 5rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-rtl + label::before, .switch[type=checkbox].is-large.is-rtl + label:before {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-rtl + label::after, .switch[type=checkbox].is-large.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 2.375rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large:checked + label::before, .switch[type=checkbox].is-large:checked + label:before {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large:checked + label::after {
|
||||||
|
left: 2.375rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large:checked.is-rtl + label::after, .switch[type=checkbox].is-large:checked.is-rtl + label:after {
|
||||||
|
left: auto;
|
||||||
|
right: 0.25rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-outlined + label::before, .switch[type=checkbox].is-large.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-outlined + label::after, .switch[type=checkbox].is-large.is-outlined + label:after {
|
||||||
|
background: #b5b5b5;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-outlined:checked + label::before, .switch[type=checkbox].is-large.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-outlined:checked + label::after, .switch[type=checkbox].is-large.is-outlined:checked + label:after {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-thin + label::before, .switch[type=checkbox].is-large.is-thin + label:before {
|
||||||
|
top: 0.8181818182rem;
|
||||||
|
height: 0.5625rem;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-thin + label::after, .switch[type=checkbox].is-large.is-thin + label:after {
|
||||||
|
box-shadow: 0px 0px 3px #adafb1;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-rounded + label::before, .switch[type=checkbox].is-large.is-rounded + label:before {
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-large.is-rounded + label::after, .switch[type=checkbox].is-large.is-rounded + label:after {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-white:checked + label::before, .switch[type=checkbox].is-white:checked + label:before {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-white.is-outlined:checked + label::before, .switch[type=checkbox].is-white.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: white !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-white.is-outlined:checked + label::after, .switch[type=checkbox].is-white.is-outlined:checked + label:after {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-white.is-thin.is-outlined + label::after, .switch[type=checkbox].is-white.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-white + label::before, .switch[type=checkbox].is-unchecked-white + label:before {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-white.is-outlined + label::before, .switch[type=checkbox].is-unchecked-white.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: white !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-white.is-outlined + label::after, .switch[type=checkbox].is-unchecked-white.is-outlined + label:after {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-black:checked + label::before, .switch[type=checkbox].is-black:checked + label:before {
|
||||||
|
background: #0a0a0a;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-black.is-outlined:checked + label::before, .switch[type=checkbox].is-black.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-black.is-outlined:checked + label::after, .switch[type=checkbox].is-black.is-outlined:checked + label:after {
|
||||||
|
background: #0a0a0a;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-black.is-thin.is-outlined + label::after, .switch[type=checkbox].is-black.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-black + label::before, .switch[type=checkbox].is-unchecked-black + label:before {
|
||||||
|
background: #0a0a0a;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-black.is-outlined + label::before, .switch[type=checkbox].is-unchecked-black.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-black.is-outlined + label::after, .switch[type=checkbox].is-unchecked-black.is-outlined + label:after {
|
||||||
|
background: #0a0a0a;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-light:checked + label::before, .switch[type=checkbox].is-light:checked + label:before {
|
||||||
|
background: whitesmoke;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-light.is-outlined:checked + label::before, .switch[type=checkbox].is-light.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: whitesmoke !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-light.is-outlined:checked + label::after, .switch[type=checkbox].is-light.is-outlined:checked + label:after {
|
||||||
|
background: whitesmoke;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-light.is-thin.is-outlined + label::after, .switch[type=checkbox].is-light.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-light + label::before, .switch[type=checkbox].is-unchecked-light + label:before {
|
||||||
|
background: whitesmoke;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-light.is-outlined + label::before, .switch[type=checkbox].is-unchecked-light.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: whitesmoke !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-light.is-outlined + label::after, .switch[type=checkbox].is-unchecked-light.is-outlined + label:after {
|
||||||
|
background: whitesmoke;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-dark:checked + label::before, .switch[type=checkbox].is-dark:checked + label:before {
|
||||||
|
background: #363636;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-dark.is-outlined:checked + label::before, .switch[type=checkbox].is-dark.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #363636 !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-dark.is-outlined:checked + label::after, .switch[type=checkbox].is-dark.is-outlined:checked + label:after {
|
||||||
|
background: #363636;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-dark.is-thin.is-outlined + label::after, .switch[type=checkbox].is-dark.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-dark + label::before, .switch[type=checkbox].is-unchecked-dark + label:before {
|
||||||
|
background: #363636;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-dark.is-outlined + label::before, .switch[type=checkbox].is-unchecked-dark.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #363636 !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-dark.is-outlined + label::after, .switch[type=checkbox].is-unchecked-dark.is-outlined + label:after {
|
||||||
|
background: #363636;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary:checked + label::before, .switch[type=checkbox].is-primary:checked + label:before {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary.is-outlined:checked + label::before, .switch[type=checkbox].is-primary.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #79b52e !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary.is-outlined:checked + label::after, .switch[type=checkbox].is-primary.is-outlined:checked + label:after {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary.is-thin.is-outlined + label::after, .switch[type=checkbox].is-primary.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-primary + label::before, .switch[type=checkbox].is-unchecked-primary + label:before {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-primary.is-outlined + label::before, .switch[type=checkbox].is-unchecked-primary.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #79b52e !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-primary.is-outlined + label::after, .switch[type=checkbox].is-unchecked-primary.is-outlined + label:after {
|
||||||
|
background: #79b52e;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-link:checked + label::before, .switch[type=checkbox].is-link:checked + label:before {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-link.is-outlined:checked + label::before, .switch[type=checkbox].is-link.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #009cea !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-link.is-outlined:checked + label::after, .switch[type=checkbox].is-link.is-outlined:checked + label:after {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-link.is-thin.is-outlined + label::after, .switch[type=checkbox].is-link.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-link + label::before, .switch[type=checkbox].is-unchecked-link + label:before {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-link.is-outlined + label::before, .switch[type=checkbox].is-unchecked-link.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #009cea !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-link.is-outlined + label::after, .switch[type=checkbox].is-unchecked-link.is-outlined + label:after {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-info:checked + label::before, .switch[type=checkbox].is-info:checked + label:before {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-info.is-outlined:checked + label::before, .switch[type=checkbox].is-info.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #009cea !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-info.is-outlined:checked + label::after, .switch[type=checkbox].is-info.is-outlined:checked + label:after {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-info.is-thin.is-outlined + label::after, .switch[type=checkbox].is-info.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-info + label::before, .switch[type=checkbox].is-unchecked-info + label:before {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-info.is-outlined + label::before, .switch[type=checkbox].is-unchecked-info.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #009cea !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-info.is-outlined + label::after, .switch[type=checkbox].is-unchecked-info.is-outlined + label:after {
|
||||||
|
background: #009cea;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-success:checked + label::before, .switch[type=checkbox].is-success:checked + label:before {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-success.is-outlined:checked + label::before, .switch[type=checkbox].is-success.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #209b1c !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-success.is-outlined:checked + label::after, .switch[type=checkbox].is-success.is-outlined:checked + label:after {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-success.is-thin.is-outlined + label::after, .switch[type=checkbox].is-success.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-success + label::before, .switch[type=checkbox].is-unchecked-success + label:before {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-success.is-outlined + label::before, .switch[type=checkbox].is-unchecked-success.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #209b1c !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-success.is-outlined + label::after, .switch[type=checkbox].is-unchecked-success.is-outlined + label:after {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-warning:checked + label::before, .switch[type=checkbox].is-warning:checked + label:before {
|
||||||
|
background: #f48017;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-warning.is-outlined:checked + label::before, .switch[type=checkbox].is-warning.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #f48017 !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-warning.is-outlined:checked + label::after, .switch[type=checkbox].is-warning.is-outlined:checked + label:after {
|
||||||
|
background: #f48017;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-warning.is-thin.is-outlined + label::after, .switch[type=checkbox].is-warning.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-warning + label::before, .switch[type=checkbox].is-unchecked-warning + label:before {
|
||||||
|
background: #f48017;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-warning.is-outlined + label::before, .switch[type=checkbox].is-unchecked-warning.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #f48017 !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-warning.is-outlined + label::after, .switch[type=checkbox].is-unchecked-warning.is-outlined + label:after {
|
||||||
|
background: #f48017;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-danger:checked + label::before, .switch[type=checkbox].is-danger:checked + label:before {
|
||||||
|
background: #ff0303;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-danger.is-outlined:checked + label::before, .switch[type=checkbox].is-danger.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #ff0303 !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-danger.is-outlined:checked + label::after, .switch[type=checkbox].is-danger.is-outlined:checked + label:after {
|
||||||
|
background: #ff0303;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-danger.is-thin.is-outlined + label::after, .switch[type=checkbox].is-danger.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-danger + label::before, .switch[type=checkbox].is-unchecked-danger + label:before {
|
||||||
|
background: #ff0303;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-danger.is-outlined + label::before, .switch[type=checkbox].is-unchecked-danger.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #ff0303 !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-danger.is-outlined + label::after, .switch[type=checkbox].is-unchecked-danger.is-outlined + label:after {
|
||||||
|
background: #ff0303;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary-two:checked + label::before, .switch[type=checkbox].is-primary-two:checked + label:before {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary-two.is-outlined:checked + label::before, .switch[type=checkbox].is-primary-two.is-outlined:checked + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #209b1c !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary-two.is-outlined:checked + label::after, .switch[type=checkbox].is-primary-two.is-outlined:checked + label:after {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-primary-two.is-thin.is-outlined + label::after, .switch[type=checkbox].is-primary-two.is-thin.is-outlined + label:after {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-primary-two + label::before, .switch[type=checkbox].is-unchecked-primary-two + label:before {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-primary-two.is-outlined + label::before, .switch[type=checkbox].is-unchecked-primary-two.is-outlined + label:before {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #209b1c !important;
|
||||||
|
}
|
||||||
|
.switch[type=checkbox].is-unchecked-primary-two.is-outlined + label::after, .switch[type=checkbox].is-unchecked-primary-two.is-outlined + label:after {
|
||||||
|
background: #209b1c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-body .switch[type=checkbox] + label {
|
||||||
|
margin-top: 0.375em;
|
||||||
|
}
|
||||||
|
|
||||||
.loader.big {
|
.loader.big {
|
||||||
height: 150px !important;
|
height: 150px !important;
|
||||||
width: 150px !important;
|
width: 150px !important;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
202
resources/sass/bulma-switch.sass
Normal file
202
resources/sass/bulma-switch.sass
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
$switch-background: $grey-light !default
|
||||||
|
$switch-border: .1rem solid transparent !default
|
||||||
|
$switch-background-active: $primary !default
|
||||||
|
$switch-radius: $radius !default
|
||||||
|
$switch-paddle-background: $white !default
|
||||||
|
$switch-paddle-background-active: $primary !default
|
||||||
|
$switch-paddle-offset: 0.25rem !default
|
||||||
|
$switch-paddle-transition: all 0.25s ease-out !default
|
||||||
|
$switch-focus: 1px dotted $grey-light !default
|
||||||
|
|
||||||
|
=switch-size($size)
|
||||||
|
$switch-height: $size * 1.5
|
||||||
|
$switch-width: $switch-height * 2
|
||||||
|
$paddle-height: $switch-height - ($switch-paddle-offset * 2)
|
||||||
|
$paddle-width: $switch-height - ($switch-paddle-offset * 2)
|
||||||
|
$paddle-active-offest: $switch-width - $paddle-width - ($switch-paddle-offset * 1.5)
|
||||||
|
|
||||||
|
+ label
|
||||||
|
position: relative
|
||||||
|
display: iniline-flex
|
||||||
|
align-items: center
|
||||||
|
justify-content: flex-start
|
||||||
|
font-size: $size
|
||||||
|
height: $control-height
|
||||||
|
line-height: $control-line-height
|
||||||
|
padding-left: $switch-width + .5
|
||||||
|
padding-top: .2rem
|
||||||
|
cursor: pointer
|
||||||
|
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
position: absolute
|
||||||
|
display: block
|
||||||
|
top: 0
|
||||||
|
left: 0
|
||||||
|
width: $switch-width
|
||||||
|
height: $switch-height
|
||||||
|
border: $switch-border
|
||||||
|
border-radius: $switch-radius
|
||||||
|
background: $switch-background
|
||||||
|
content: ''
|
||||||
|
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
display: block
|
||||||
|
position: absolute
|
||||||
|
top: ($switch-height / 2) - ($paddle-height / 2)
|
||||||
|
left: $switch-paddle-offset
|
||||||
|
width: $paddle-width
|
||||||
|
height: $paddle-height
|
||||||
|
transform: translate3d(0, 0, 0)
|
||||||
|
border-radius: $switch-radius
|
||||||
|
background: $switch-paddle-background
|
||||||
|
transition: $switch-paddle-transition
|
||||||
|
content: ''
|
||||||
|
|
||||||
|
&.is-rtl
|
||||||
|
+ label
|
||||||
|
padding-left: 0
|
||||||
|
padding-right: $switch-width + .5
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
left: auto
|
||||||
|
right: 0
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
left: auto
|
||||||
|
right: $paddle-active-offest
|
||||||
|
|
||||||
|
&:checked
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background: $switch-background-active
|
||||||
|
&::after
|
||||||
|
left: $paddle-active-offest
|
||||||
|
&.is-rtl
|
||||||
|
+ label
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
left: auto
|
||||||
|
right: $switch-paddle-offset
|
||||||
|
|
||||||
|
&.is-outlined
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background-color: transparent
|
||||||
|
border-color: $switch-background
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
background: $switch-background
|
||||||
|
&:checked
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background-color: transparent
|
||||||
|
border-color: $switch-background-active
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
background: $switch-paddle-background-active
|
||||||
|
|
||||||
|
&.is-thin
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
top: $switch-height / 2.75
|
||||||
|
height: $switch-height / 4
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
box-shadow: 0px 0px 3px $grey
|
||||||
|
|
||||||
|
&.is-rounded
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
border-radius: $radius-large * 4
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
border-radius: 50%
|
||||||
|
|
||||||
|
|
||||||
|
.switch[type="checkbox"]
|
||||||
|
outline: 0
|
||||||
|
user-select: none
|
||||||
|
display: inline-block
|
||||||
|
position: absolute
|
||||||
|
opacity: 0
|
||||||
|
|
||||||
|
&:focus
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before,
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
outline: $switch-focus
|
||||||
|
|
||||||
|
&[disabled]
|
||||||
|
cursor: not-allowed
|
||||||
|
+ label
|
||||||
|
opacity: 0.5
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
opacity: 0.5
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
opacity: 0.5
|
||||||
|
&:hover
|
||||||
|
cursor: not-allowed
|
||||||
|
|
||||||
|
+switch-size($size-normal)
|
||||||
|
&.is-small
|
||||||
|
+switch-size($size-small)
|
||||||
|
&.is-medium
|
||||||
|
+switch-size($size-medium)
|
||||||
|
&.is-large
|
||||||
|
+switch-size($size-large)
|
||||||
|
|
||||||
|
@each $name, $pair in $colors
|
||||||
|
$color: nth($pair, 1)
|
||||||
|
$color-invert: nth($pair, 2)
|
||||||
|
&.is-#{$name}
|
||||||
|
&:checked
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background: $color
|
||||||
|
&.is-outlined
|
||||||
|
&:checked
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background-color: transparent
|
||||||
|
border-color: $color !important
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
background: $color
|
||||||
|
&.is-thin
|
||||||
|
&.is-outlined
|
||||||
|
+ label
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
box-shadow: none
|
||||||
|
&.is-unchecked-#{$name}
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background: $color
|
||||||
|
&.is-outlined
|
||||||
|
+ label
|
||||||
|
&::before,
|
||||||
|
&:before
|
||||||
|
background-color: transparent
|
||||||
|
border-color: $color !important
|
||||||
|
&::after,
|
||||||
|
&:after
|
||||||
|
background: $color
|
||||||
|
|
||||||
|
.field-body
|
||||||
|
.switch[type="checkbox"]
|
||||||
|
+ label
|
||||||
|
margin-top: .375em
|
||||||
1
resources/sass/bulma.scss
vendored
1
resources/sass/bulma.scss
vendored
@@ -54,6 +54,7 @@ $widescreen-enabled: false;
|
|||||||
$fullhd-enabled: false;
|
$fullhd-enabled: false;
|
||||||
|
|
||||||
@import "../bulma-0.9.0/bulma.sass";
|
@import "../bulma-0.9.0/bulma.sass";
|
||||||
|
@import "./bulma-switch.sass";
|
||||||
|
|
||||||
|
|
||||||
.loader.big {
|
.loader.big {
|
||||||
|
|||||||
@@ -15,12 +15,11 @@
|
|||||||
|
|
||||||
(let [invoices-to-close (d/query {:query {:find ['?e]
|
(let [invoices-to-close (d/query {:query {:find ['?e]
|
||||||
:in ['$ '?today]
|
:in ['$ '?today]
|
||||||
:where ['[?e :invoice/automatically-paid-when-due true]
|
:where ['[?e :invoice/scheduled-payment ?d]
|
||||||
'[?e :invoice/status :invoice-status/unpaid]
|
'[?e :invoice/status :invoice-status/unpaid]
|
||||||
'[?e :invoice/due ?d]
|
|
||||||
'[(<= ?d ?today)]]}
|
'[(<= ?d ?today)]]}
|
||||||
:args [(d/db conn) (coerce/to-date (time/local-now))]})]
|
:args [(d/db conn) (coerce/to-date (time/local-now))]})]
|
||||||
(log/info "Closing " (count invoices-to-close) "automatic invoices")
|
(log/info "Closing " (count invoices-to-close) "scheduled invoices")
|
||||||
(some->> invoices-to-close
|
(some->> invoices-to-close
|
||||||
seq
|
seq
|
||||||
|
|
||||||
@@ -29,7 +28,7 @@
|
|||||||
:invoice/status :invoice-status/paid}))
|
:invoice/status :invoice-status/paid}))
|
||||||
(d/transact conn)
|
(d/transact conn)
|
||||||
deref)
|
deref)
|
||||||
(log/info "Closed " (count invoices-to-close) "automatic invoices"))
|
(log/info "Closed " (count invoices-to-close) "scheduled invoices"))
|
||||||
(catch Exception e
|
(catch Exception e
|
||||||
(log/error e)))))
|
(log/error e)))))
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
(-> x
|
(-> x
|
||||||
(update :invoice/date c/from-date)
|
(update :invoice/date c/from-date)
|
||||||
(update :invoice/due c/from-date)
|
(update :invoice/due c/from-date)
|
||||||
|
(update :invoice/scheduled-payment c/from-date)
|
||||||
(update :invoice/status :db/ident)
|
(update :invoice/status :db/ident)
|
||||||
(rename-keys {:invoice-payment/_invoice :invoice/payments})))
|
(rename-keys {:invoice-payment/_invoice :invoice/payments})))
|
||||||
|
|
||||||
|
|||||||
@@ -311,7 +311,12 @@
|
|||||||
:db/doc "Whether this invoice should be marked as paid when it's due"
|
:db/doc "Whether this invoice should be marked as paid when it's due"
|
||||||
:db/valueType :db.type/boolean
|
:db/valueType :db.type/boolean
|
||||||
:db/cardinality :db.cardinality/one}]]}
|
:db/cardinality :db.cardinality/one}]]}
|
||||||
:auto-ap/fix-reset-rels {:txes-fn `reset-function}}
|
|
||||||
|
:auto-ap/fix-reset-rels {:txes-fn `reset-function}
|
||||||
|
:auto-ap/add-scheduled-payment {:txes [[{:db/ident :invoice/scheduled-payment
|
||||||
|
:db/doc "When an invoice gets marked as paid"
|
||||||
|
:db/valueType :db.type/instant
|
||||||
|
:db/cardinality :db.cardinality/one}]]}}
|
||||||
sales/norms-map
|
sales/norms-map
|
||||||
clients/norms-map
|
clients/norms-map
|
||||||
ledger/norms-map
|
ledger/norms-map
|
||||||
|
|||||||
@@ -349,7 +349,7 @@
|
|||||||
:payments {:type '(list :invoice_payment)}
|
:payments {:type '(list :invoice_payment)}
|
||||||
:vendor {:type :vendor}
|
:vendor {:type :vendor}
|
||||||
:client {:type :client}
|
:client {:type :client}
|
||||||
:automatically_paid_when_due {:type 'Boolean}}}
|
:scheduled_payment {:type :iso_date}}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@
|
|||||||
:invoice_number {:type 'String}
|
:invoice_number {:type 'String}
|
||||||
:expense_accounts {:type '(list :edit_expense_account)}
|
:expense_accounts {:type '(list :edit_expense_account)}
|
||||||
:location {:type :iso_date}
|
:location {:type :iso_date}
|
||||||
:automatically_paid_when_due {:type 'Boolean}
|
:scheduled_payment {:type :iso_date}
|
||||||
:date {:type :iso_date}
|
:date {:type :iso_date}
|
||||||
:due {:type :iso_date}
|
:due {:type :iso_date}
|
||||||
:client_id {:type :id}
|
:client_id {:type :id}
|
||||||
@@ -731,7 +731,7 @@
|
|||||||
:invoice_number {:type 'String}
|
:invoice_number {:type 'String}
|
||||||
:expense_accounts {:type '(list :edit_expense_account)}
|
:expense_accounts {:type '(list :edit_expense_account)}
|
||||||
:date {:type :iso_date}
|
:date {:type :iso_date}
|
||||||
:automatically_paid_when_due {:type 'Boolean}
|
:scheduled_payment {:type :iso_date}
|
||||||
:due {:type :iso_date}
|
:due {:type :iso_date}
|
||||||
:total {:type 'Float}}}
|
:total {:type 'Float}}}
|
||||||
:edit_transaction
|
:edit_transaction
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
:account account_id
|
:account account_id
|
||||||
:location location}))
|
:location location}))
|
||||||
|
|
||||||
(defn add-invoice-transaction [{:keys [total invoice_number location automatically_paid_when_due client_id vendor_id vendor_name date due expense_accounts] :as in}]
|
(defn add-invoice-transaction [{:keys [total invoice_number location scheduled_payment client_id vendor_id vendor_name date due expense_accounts] :as in}]
|
||||||
(let [vendor (d-vendors/get-by-id vendor_id)
|
(let [vendor (d-vendors/get-by-id vendor_id)
|
||||||
account (:vendor/default-account vendor)
|
account (:vendor/default-account vendor)
|
||||||
_ (when-not (:db/id account)
|
_ (when-not (:db/id account)
|
||||||
@@ -76,7 +76,8 @@
|
|||||||
(:vendor/terms vendor) (assoc :invoice/due (coerce/to-date
|
(:vendor/terms vendor) (assoc :invoice/due (coerce/to-date
|
||||||
(time/plus date (time/days (d-vendors/terms-for-client-id vendor client_id)))))
|
(time/plus date (time/days (d-vendors/terms-for-client-id vendor client_id)))))
|
||||||
due (assoc :invoice/due (coerce/to-date due))
|
due (assoc :invoice/due (coerce/to-date due))
|
||||||
(boolean? automatically_paid_when_due) (assoc :invoice/automatically-paid-when-due automatically_paid_when_due))))
|
|
||||||
|
scheduled_payment (assoc :invoice/scheduled-payment (coerce/to-date scheduled_payment)))))
|
||||||
|
|
||||||
|
|
||||||
(defn deleted-expense-accounts [invoice expense-accounts]
|
(defn deleted-expense-accounts [invoice expense-accounts]
|
||||||
@@ -121,7 +122,7 @@
|
|||||||
->graphql)))
|
->graphql)))
|
||||||
|
|
||||||
|
|
||||||
(defn edit-invoice [context {{:keys [id due invoice_number total vendor_id date client_id expense_accounts automatically_paid_when_due] :as in} :invoice} value]
|
(defn edit-invoice [context {{:keys [id due invoice_number total vendor_id date client_id expense_accounts scheduled_payment] :as in} :invoice} value]
|
||||||
(let [invoice (d-invoices/get-by-id id)
|
(let [invoice (d-invoices/get-by-id id)
|
||||||
_ (when (seq (d-invoices/find-conflicting {:db/id id
|
_ (when (seq (d-invoices/find-conflicting {:db/id id
|
||||||
:invoice/invoice-number invoice_number
|
:invoice/invoice-number invoice_number
|
||||||
@@ -146,7 +147,7 @@
|
|||||||
:invoice/expense-accounts (map expense-account->entity
|
:invoice/expense-accounts (map expense-account->entity
|
||||||
expense_accounts)}
|
expense_accounts)}
|
||||||
due (assoc :invoice/due (coerce/to-date due))
|
due (assoc :invoice/due (coerce/to-date due))
|
||||||
(boolean? automatically_paid_when_due) (assoc :invoice/automatically-paid-when-due automatically_paid_when_due))]
|
scheduled_payment (assoc :invoice/scheduled-payment (coerce/to-date scheduled_payment)))]
|
||||||
(audit-transact (concat [updated-invoice]
|
(audit-transact (concat [updated-invoice]
|
||||||
(map (fn [d] [:db/retract id :invoice/expense-accounts d]) deleted))
|
(map (fn [d] [:db/retract id :invoice/expense-accounts d]) deleted))
|
||||||
(:id context))
|
(:id context))
|
||||||
|
|||||||
@@ -161,7 +161,9 @@
|
|||||||
:location default-location
|
:location default-location
|
||||||
:amount total}]}
|
:amount total}]}
|
||||||
(:vendor/terms vendor) (assoc :invoice/due (coerce/to-date
|
(:vendor/terms vendor) (assoc :invoice/due (coerce/to-date
|
||||||
(time/plus date (time/days (d-vendors/terms-for-client-id vendor client-id))))))
|
(time/plus date (time/days (d-vendors/terms-for-client-id vendor client-id)))))
|
||||||
|
automatically-paid-when-due (assoc :invoice/scheduled-payment (coerce/to-date
|
||||||
|
(time/plus date (time/days (d-vendors/terms-for-client-id vendor client-id))))))
|
||||||
payment (if (= :invoice-status/paid (:invoice/status invoice))
|
payment (if (= :invoice-status/paid (:invoice/status invoice))
|
||||||
#:invoice-payment {:invoice (:db/id invoice)
|
#:invoice-payment {:invoice (:db/id invoice)
|
||||||
:amount (:invoice/total invoice)
|
:amount (:invoice/total invoice)
|
||||||
@@ -272,7 +274,6 @@
|
|||||||
:invoice/client-identifier customer-identifier
|
:invoice/client-identifier customer-identifier
|
||||||
:invoice/vendor (:db/id matching-vendor)
|
:invoice/vendor (:db/id matching-vendor)
|
||||||
:invoice/invoice-number invoice-number
|
:invoice/invoice-number invoice-number
|
||||||
:invoice/automatically-paid-when-due (boolean (automatically-paid-for (:db/id matching-client)))
|
|
||||||
:invoice/total (Double/parseDouble total)
|
:invoice/total (Double/parseDouble total)
|
||||||
:invoice/date (to-date date)
|
:invoice/date (to-date date)
|
||||||
:invoice/import-status :import-status/pending
|
:invoice/import-status :import-status/pending
|
||||||
@@ -284,7 +285,9 @@
|
|||||||
:db/id existing-id
|
:db/id existing-id
|
||||||
})
|
})
|
||||||
(:vendor/terms matching-vendor) (assoc :invoice/due (coerce/to-date
|
(:vendor/terms matching-vendor) (assoc :invoice/due (coerce/to-date
|
||||||
(time/plus date (time/days (d-vendors/terms-for-client-id matching-vendor (:db/id matching-client)))))))))
|
(time/plus date (time/days (d-vendors/terms-for-client-id matching-vendor (:db/id matching-client))))))
|
||||||
|
(boolean (automatically-paid-for (:db/id matching-client))) (assoc :invoice/scheduled-payment (coerce/to-date
|
||||||
|
(time/plus date (time/days (d-vendors/terms-for-client-id matching-vendor (:db/id matching-client)))))))))
|
||||||
))
|
))
|
||||||
[]
|
[]
|
||||||
imports)]
|
imports)]
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
(s/def ::invoice-number ::shared/required-identifier)
|
(s/def ::invoice-number ::shared/required-identifier)
|
||||||
(s/def ::date ::shared/date)
|
(s/def ::date ::shared/date)
|
||||||
(s/def ::due (s/nilable ::shared/date))
|
(s/def ::due (s/nilable ::shared/date))
|
||||||
|
(s/def ::scheduled-payment (s/nilable ::shared/date))
|
||||||
(s/def ::total ::shared/money)
|
(s/def ::total ::shared/money)
|
||||||
(s/def ::vendor-id ::shared/identifier)
|
(s/def ::vendor-id ::shared/identifier)
|
||||||
(s/def ::automatically-paid-when-due (s/nilable boolean?))
|
|
||||||
|
|
||||||
(s/def ::invoice (s/keys :req-un [::client
|
(s/def ::invoice (s/keys :req-un [::client
|
||||||
::invoice-number
|
::invoice-number
|
||||||
@@ -19,5 +19,5 @@
|
|||||||
::total]
|
::total]
|
||||||
:opt-un [::vendor-name
|
:opt-un [::vendor-name
|
||||||
::due
|
::due
|
||||||
::automatically-paid-when-due
|
::scheduled-payment
|
||||||
]))
|
]))
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
:unpaid-invoices :unpaid
|
:unpaid-invoices :unpaid
|
||||||
:paid-invoices :paid
|
:paid-invoices :paid
|
||||||
:voided-invoices :voided)}
|
:voided-invoices :voided)}
|
||||||
[[:invoices [:id :total :outstanding-balance :invoice-number :date :due :status :client-identifier :automatically-paid-when-due
|
[[:invoices [:id :total :outstanding-balance :invoice-number :date :due :status :client-identifier :scheduled-payment
|
||||||
[:vendor [:name :id]]
|
[:vendor [:name :id]]
|
||||||
[:expense_accounts [:amount :id :location
|
[:expense_accounts [:amount :id :location
|
||||||
[:account [:id ]]]]
|
[:account [:id ]]]]
|
||||||
|
|||||||
6
src/cljs/auto_ap/views/components/switch-field.cljs
Normal file
6
src/cljs/auto_ap/views/components/switch-field.cljs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
(ns auto-ap.views.components.switch-field)
|
||||||
|
|
||||||
|
(defn switch-field [{:keys [id label on-change checked]}]
|
||||||
|
[:<>
|
||||||
|
[:input.switch {:type "checkbox" :id id :on-change on-change :checked checked}]
|
||||||
|
[:label {:for id} label]])
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
(>= amount 0)))))
|
(>= amount 0)))))
|
||||||
|
|
||||||
(def invoice-read [:id :total :outstanding-balance :date :due :invoice-number :status
|
(def invoice-read [:id :total :outstanding-balance :date :due :invoice-number :status
|
||||||
:automatically-paid-when-due
|
:scheduled-payment
|
||||||
[:client [:id :name :locations]]
|
[:client [:id :name :locations]]
|
||||||
[:payments [:amount [:payment [:amount :s3_url :check_number ]]]]
|
[:payments [:amount [:payment [:amount :s3_url :check_number ]]]]
|
||||||
[:vendor [:id :name]]
|
[:vendor [:id :name]]
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
[auto-ap.views.components.expense-accounts-field :as expense-accounts-field :refer [expense-accounts-field recalculate-amounts]]
|
[auto-ap.views.components.expense-accounts-field :as expense-accounts-field :refer [expense-accounts-field recalculate-amounts]]
|
||||||
[auto-ap.views.components.layouts :as layouts]
|
[auto-ap.views.components.layouts :as layouts]
|
||||||
[auto-ap.views.components.money-field :refer [money-field]]
|
[auto-ap.views.components.money-field :refer [money-field]]
|
||||||
|
[auto-ap.views.components.switch-field :refer [switch-field]]
|
||||||
[auto-ap.views.components.typeahead :refer [typeahead-entity]]
|
[auto-ap.views.components.typeahead :refer [typeahead-entity]]
|
||||||
[auto-ap.views.pages.invoices.common :refer [invoice-read]]
|
[auto-ap.views.pages.invoices.common :refer [invoice-read]]
|
||||||
[auto-ap.status :as status]
|
[auto-ap.status :as status]
|
||||||
@@ -35,7 +36,7 @@
|
|||||||
(re-frame/reg-sub
|
(re-frame/reg-sub
|
||||||
::create-query
|
::create-query
|
||||||
:<- [::forms/form ::form]
|
:<- [::forms/form ::form]
|
||||||
(fn [{:keys [data] {:keys [id invoice-number date due location total expense-accounts automatically-paid-when-due vendor client]} :data}]
|
(fn [{:keys [data] {:keys [id invoice-number date due scheduled-payment location total expense-accounts vendor client]} :data}]
|
||||||
{:venia/operation {:operation/type :mutation
|
{:venia/operation {:operation/type :mutation
|
||||||
:operation/name "AddInvoice"}
|
:operation/name "AddInvoice"}
|
||||||
:venia/queries [{:query/data [:add-invoice
|
:venia/queries [{:query/data [:add-invoice
|
||||||
@@ -43,7 +44,7 @@
|
|||||||
:due due
|
:due due
|
||||||
:vendor-id (:id vendor)
|
:vendor-id (:id vendor)
|
||||||
:client-id (:id client)
|
:client-id (:id client)
|
||||||
:automatically-paid-when-due automatically-paid-when-due
|
:scheduled-payment scheduled-payment
|
||||||
:invoice-number invoice-number
|
:invoice-number invoice-number
|
||||||
:location location
|
:location location
|
||||||
:total total
|
:total total
|
||||||
@@ -59,14 +60,14 @@
|
|||||||
(re-frame/reg-sub
|
(re-frame/reg-sub
|
||||||
::edit-query
|
::edit-query
|
||||||
:<- [::forms/form ::form]
|
:<- [::forms/form ::form]
|
||||||
(fn [{:keys [data] {:keys [id invoice-number date due location total expense-accounts vendor automatically-paid-when-due client]} :data}]
|
(fn [{:keys [data] {:keys [id invoice-number date due scheduled-payment location total expense-accounts vendor client]} :data}]
|
||||||
{:venia/operation {:operation/type :mutation
|
{:venia/operation {:operation/type :mutation
|
||||||
:operation/name "EditInvoice"}
|
:operation/name "EditInvoice"}
|
||||||
:venia/queries [{:query/data [:edit-invoice
|
:venia/queries [{:query/data [:edit-invoice
|
||||||
{:invoice {:id id
|
{:invoice {:id id
|
||||||
:invoice-number invoice-number
|
:invoice-number invoice-number
|
||||||
:date date
|
:date date
|
||||||
:automatically-paid-when-due automatically-paid-when-due
|
:scheduled-payment scheduled-payment
|
||||||
:due due
|
:due due
|
||||||
:total total
|
:total total
|
||||||
:expense-accounts (map (fn [ea]
|
:expense-accounts (map (fn [ea]
|
||||||
@@ -81,14 +82,14 @@
|
|||||||
(re-frame/reg-sub
|
(re-frame/reg-sub
|
||||||
::add-and-print-query
|
::add-and-print-query
|
||||||
(fn [db [_ bank-account-id type]]
|
(fn [db [_ bank-account-id type]]
|
||||||
(let [{:keys [data] {:keys [id invoice-number date location total expense-accounts automatically-paid-when-due vendor client]} :data} @(re-frame/subscribe [::forms/form ::form])]
|
(let [{:keys [data] {:keys [id invoice-number date location total expense-accounts scheduled-payment vendor client]} :data} @(re-frame/subscribe [::forms/form ::form])]
|
||||||
{:venia/operation {:operation/type :mutation
|
{:venia/operation {:operation/type :mutation
|
||||||
:operation/name "AddAndPrintInvoice"}
|
:operation/name "AddAndPrintInvoice"}
|
||||||
:venia/queries [{:query/data [:add-and-print-invoice
|
:venia/queries [{:query/data [:add-and-print-invoice
|
||||||
{:invoice {:date date
|
{:invoice {:date date
|
||||||
:vendor-id (:id vendor)
|
:vendor-id (:id vendor)
|
||||||
:client-id (:id client)
|
:client-id (:id client)
|
||||||
:automatically-paid-when-due automatically-paid-when-due
|
:scheduled-payment scheduled-payment
|
||||||
:invoice-number invoice-number
|
:invoice-number invoice-number
|
||||||
:location location
|
:location location
|
||||||
:total total
|
:total total
|
||||||
@@ -134,14 +135,16 @@
|
|||||||
(let [accounts-by-id @(re-frame/subscribe [::subs/accounts-by-id (:client which)])
|
(let [accounts-by-id @(re-frame/subscribe [::subs/accounts-by-id (:client which)])
|
||||||
edit-invoice (update which :date #(date->str % standard))
|
edit-invoice (update which :date #(date->str % standard))
|
||||||
edit-invoice (update edit-invoice :due #(date->str % standard))
|
edit-invoice (update edit-invoice :due #(date->str % standard))
|
||||||
|
edit-invoice (update edit-invoice :scheduled-payment #(date->str % standard))
|
||||||
edit-invoice (assoc edit-invoice :original edit-invoice)
|
edit-invoice (assoc edit-invoice :original edit-invoice)
|
||||||
locations @(re-frame/subscribe [::subs/locations-for-client (:id (:client which))])]
|
locations @(re-frame/subscribe [::subs/locations-for-client (:id (:client which))])
|
||||||
|
]
|
||||||
(-> db
|
(-> db
|
||||||
(forms/start-form ::form {:id (:id edit-invoice)
|
(forms/start-form ::form {:id (:id edit-invoice)
|
||||||
:status (:status edit-invoice)
|
:status (:status edit-invoice)
|
||||||
:date (:date edit-invoice)
|
:date (:date edit-invoice)
|
||||||
:due (:due edit-invoice)
|
:due (:due edit-invoice)
|
||||||
:automatically-paid-when-due (:automatically-paid-when-due edit-invoice)
|
:scheduled-payment (:scheduled-payment edit-invoice)
|
||||||
:invoice-number (:invoice-number edit-invoice)
|
:invoice-number (:invoice-number edit-invoice)
|
||||||
:total (:total edit-invoice)
|
:total (:total edit-invoice)
|
||||||
:original edit-invoice
|
:original edit-invoice
|
||||||
@@ -168,14 +171,28 @@
|
|||||||
locations)])
|
locations)])
|
||||||
|
|
||||||
|
|
||||||
true
|
(boolean ((set (map :id (:automatically-paid-when-due value))) (:id (:client data))))
|
||||||
(into [[:automatically-paid-when-due] (boolean ((set (map :id (:automatically-paid-when-due value))) (:id (:client data))))]))
|
(into [[:scheduled-payment] (:due data)
|
||||||
|
[:schedule-when-due] true]))
|
||||||
|
|
||||||
(= [:total] field)
|
(= [:total] field)
|
||||||
[[:expense-accounts] (recalculate-amounts (:expense-accounts data) value)]
|
[[:expense-accounts] (recalculate-amounts (:expense-accounts data) value)]
|
||||||
|
|
||||||
|
(and (= [:schedule-when-due] field) value)
|
||||||
|
[[:scheduled-payment] (:due data)]
|
||||||
|
|
||||||
|
(and (= [:due] field) (:schedule-when-due data))
|
||||||
|
[[:scheduled-payment] value]
|
||||||
|
|
||||||
:else
|
:else
|
||||||
[])))))
|
[])))))
|
||||||
|
(re-frame/reg-event-db
|
||||||
|
::maybe-change-client
|
||||||
|
[ (forms/in-form ::form)]
|
||||||
|
(fn [{:keys [data] :as f} [_ c]]
|
||||||
|
(if (:id data)
|
||||||
|
f
|
||||||
|
(assoc-in f [:data :client] c))))
|
||||||
|
|
||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
::add-and-print
|
::add-and-print
|
||||||
@@ -236,7 +253,8 @@
|
|||||||
{::track/register [{:id ::client
|
{::track/register [{:id ::client
|
||||||
:subscription [::subs/client]
|
:subscription [::subs/client]
|
||||||
:event-fn (fn [c]
|
:event-fn (fn [c]
|
||||||
[::changed [:client] c])}]}))
|
|
||||||
|
[::maybe-change-client c])}]}))
|
||||||
|
|
||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
::unmounted
|
::unmounted
|
||||||
@@ -302,13 +320,29 @@
|
|||||||
:field [:due]
|
:field [:due]
|
||||||
:spec ::invoice/due}])
|
:spec ::invoice/due}])
|
||||||
|
|
||||||
[:div.field
|
[:p.help "Scheduled payment (optional)"]
|
||||||
[:label.checkbox
|
[:div.level
|
||||||
(raw-field
|
[:div.level-left
|
||||||
[:input {:type "checkbox"
|
[:div.level-item
|
||||||
:field [:automatically-paid-when-due]
|
[:div.control
|
||||||
:spec ::invoice/automatically-paid-when-due}])
|
(raw-field
|
||||||
" Mark as paid on due date"]]
|
[date-picker {:class-name "input"
|
||||||
|
:class "input"
|
||||||
|
:disabled (boolean (:schedule-when-due data))
|
||||||
|
:format-week-number (fn [] "")
|
||||||
|
:previous-month-button-label ""
|
||||||
|
:placeholder "mm/dd/yyyy"
|
||||||
|
:next-month-button-label ""
|
||||||
|
:next-month-label ""
|
||||||
|
:type "date"
|
||||||
|
:field [:scheduled-payment]
|
||||||
|
:spec ::invoice/scheduled-payment}])]]
|
||||||
|
[:div.level-item [:div.control
|
||||||
|
(raw-field
|
||||||
|
[switch-field {:id "schedule-when-due"
|
||||||
|
:field [:schedule-when-due]
|
||||||
|
:label "Same as due date"
|
||||||
|
:type "checkbox"}])]]]]
|
||||||
|
|
||||||
(field [:span "Invoice #"
|
(field [:span "Invoice #"
|
||||||
[:span.has-text-danger " *"]]
|
[:span.has-text-danger " *"]]
|
||||||
|
|||||||
@@ -193,7 +193,7 @@
|
|||||||
[table/invoice-table {:id (:id page)
|
[table/invoice-table {:id (:id page)
|
||||||
:data-page :invoices
|
:data-page :invoices
|
||||||
:check-boxes (= status :unpaid)
|
:check-boxes (= status :unpaid)
|
||||||
:checkable-fn (fn [i] (not (:automatically-paid-when-due i)))
|
:checkable-fn (fn [i] (not (:scheduled-payment i)))
|
||||||
:actions #{:edit :void :expense-accounts}}]]))
|
:actions #{:edit :void :expense-accounts}}]]))
|
||||||
|
|
||||||
(defn unpaid-invoices-page [params]
|
(defn unpaid-invoices-page [params]
|
||||||
|
|||||||
Reference in New Issue
Block a user