внесено
This commit is contained in:
parent
571ad5731c
commit
6e4ba40bc4
@ -111,10 +111,7 @@ const rowz:Array<PromocodeProps> = [
|
|||||||
const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
||||||
let price = 0;
|
let price = 0;
|
||||||
let prices = 0;
|
let prices = 0;
|
||||||
|
let percents = 0;
|
||||||
const [ refreshX, setRefreshX ] = React.useState(1);
|
|
||||||
const refresh = () => { setRefreshX( refreshX + 1 ); }
|
|
||||||
console.log("RENDER")
|
|
||||||
|
|
||||||
const { discountsArray, discountsArraySet } = useStore<StoreState>((state) => state);
|
const { discountsArray, discountsArraySet } = useStore<StoreState>((state) => state);
|
||||||
const { discountsActiveArray, discountsActiveArraySet } = useStore<StoreState>((state) => state);
|
const { discountsActiveArray, discountsActiveArraySet } = useStore<StoreState>((state) => state);
|
||||||
@ -195,6 +192,15 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const fieldAdded = React.useRef<HTMLInputElement | null>(null);
|
const fieldAdded = React.useRef<HTMLInputElement | null>(null);
|
||||||
|
const [ fieldAddedValue, setFieldAddedValue ] = React.useState("");
|
||||||
|
|
||||||
|
const changeAdded = () => {
|
||||||
|
if( fieldAdded.current != null ) {
|
||||||
|
if( fieldAdded.current.value != null ) {
|
||||||
|
setFieldAddedValue( fieldAdded.current.value );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box style={{ width: "100%" }}>
|
<Box style={{ width: "100%" }}>
|
||||||
@ -262,7 +268,7 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
height: "42px",
|
height: "42px",
|
||||||
fontWeight: "normal",
|
fontWeight: "normal",
|
||||||
fontSize: "17px",
|
fontSize: "17px",
|
||||||
marginBottom: "45px",
|
marginBottom: "95px",
|
||||||
"&:hover": {
|
"&:hover": {
|
||||||
backgroundColor: theme.palette.grayMedium.main
|
backgroundColor: theme.palette.grayMedium.main
|
||||||
}
|
}
|
||||||
@ -412,7 +418,7 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
color: theme.palette.secondary.main
|
color: theme.palette.secondary.main
|
||||||
} }}
|
} }}
|
||||||
inputRef={ fieldAdded }
|
inputRef={ fieldAdded }
|
||||||
onChange={ () => refresh() }
|
onChange={ () => changeAdded() }
|
||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
@ -452,12 +458,13 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
if( item.tariffs ) {
|
if( item.tariffs ) {
|
||||||
item.tariffs.forEach( (tariff) => {
|
item.tariffs.forEach( (tariff) => {
|
||||||
let tariffPrice = tariff.price;
|
let tariffPrice = tariff.price;
|
||||||
|
percents = 0;
|
||||||
|
|
||||||
// применяем скидки по промокоду
|
// применяем скидки по промокоду
|
||||||
if( selectedPromocode >= 0 && checkboxStates == 1 ) {
|
if( selectedPromocode >= 0 && checkboxStates == 1 ) {
|
||||||
promocodeArray[ selectedPromocode ].privileges.forEach( (privilege) => {
|
promocodeArray[ selectedPromocode ].privileges.forEach( (privilege) => {
|
||||||
if( tariff.service == privilege.good ) {
|
if( tariff.service == privilege.good ) {
|
||||||
tariffPrice = tariffPrice - (tariffPrice * privilege.discount);
|
percents = percents + privilege.discount;
|
||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
}
|
}
|
||||||
@ -470,7 +477,34 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
discount.privileges.forEach( (privilege) => {
|
discount.privileges.forEach( (privilege) => {
|
||||||
if( tariff.service == privilege.good ) {
|
if( tariff.service == privilege.good ) {
|
||||||
if( privilege.discount != 0 ) {
|
if( privilege.discount != 0 ) {
|
||||||
tariffPrice = tariffPrice - (tariffPrice * privilege.discount);
|
|
||||||
|
if( fieldAddedValue ) { // внесено
|
||||||
|
const f = Number(fieldAddedValue);
|
||||||
|
let minDiscount = 100;
|
||||||
|
let minI = -1;
|
||||||
|
|
||||||
|
discountsArray.forEach( (x, ii) => {
|
||||||
|
x.privileges.forEach( (y) => {
|
||||||
|
//if( item.service == y.good ) {
|
||||||
|
if( x.active && f - y.discount * 100 < minDiscount
|
||||||
|
&& f - y.discount * 100 > 0 ) {
|
||||||
|
minDiscount = f - y.discount * 100;
|
||||||
|
minI = ii;
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if( minI >= 0 ) {
|
||||||
|
discountsArray[ minI ].privileges.forEach( (y) => {
|
||||||
|
percents = percents + y.discount / 2; // костыль
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
} else { // не внесено
|
||||||
|
percents = percents + privilege.discount;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -479,13 +513,14 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tariffPrice = tariffPrice - (tariffPrice * percents);
|
||||||
price += tariffPrice;
|
price += tariffPrice;
|
||||||
|
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// считаем цену в тарифах
|
// считаем цену в тарифах
|
||||||
price = item.price;
|
price = item.price;
|
||||||
|
percents = 0;
|
||||||
|
|
||||||
// применяем скидки по промокоду
|
// применяем скидки по промокоду
|
||||||
if( selectedPromocode >= 0 && checkboxStates == 1 ) {
|
if( selectedPromocode >= 0 && checkboxStates == 1 ) {
|
||||||
@ -500,40 +535,39 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
if( discountsActiveArray.length >= 0 && checkboxStates == 1 && selectedPromocode < 0 ) {
|
if( discountsActiveArray.length >= 0 && checkboxStates == 1 && selectedPromocode < 0 ) {
|
||||||
discountsActiveArray.forEach( (activeDiscount) => {
|
discountsActiveArray.forEach( (activeDiscount) => {
|
||||||
discountsArray.forEach( (discount, i) => {
|
discountsArray.forEach( (discount, i) => {
|
||||||
|
|
||||||
if( i == activeDiscount ) {
|
if( i == activeDiscount ) {
|
||||||
discount.privileges.forEach( (privilege) => {
|
discount.privileges.forEach( (privilege) => {
|
||||||
if( item.service == privilege.good ) {
|
if( item.service == privilege.good ) {
|
||||||
if( privilege.discount != 0 ) {
|
if( privilege.discount != 0 ) {
|
||||||
|
|
||||||
if( fieldAdded.current != null ) { // внесено
|
if( fieldAddedValue ) { // внесено
|
||||||
if( fieldAdded.current.value ) {
|
const f = Number(fieldAddedValue);
|
||||||
const f = Number(fieldAdded.current.value);
|
let minDiscount = 100;
|
||||||
let minDiscount = 0;
|
|
||||||
let minI = -1;
|
let minI = -1;
|
||||||
|
|
||||||
discountsArray.forEach( (x, ii) => {
|
discountsArray.forEach( (x, ii) => {
|
||||||
discount.privileges.forEach( (y) => {
|
x.privileges.forEach( (y) => {
|
||||||
if( item.service == y.good ) {
|
//if( item.service == y.good ) {
|
||||||
if( x.active && f - y.discount * 100 >= minDiscount ) {
|
if( x.active && f - y.discount * 100 < minDiscount
|
||||||
minDiscount = y.discount;
|
&& f - y.discount * 100 > 0 ) {
|
||||||
minI = ii;
|
minDiscount = f - y.discount * 100;
|
||||||
|
minI = ii;
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
discountsArray[ minI ].privileges.forEach( (y) => {
|
if( minI >= 0 ) {
|
||||||
price = price - (price * y.discount);
|
discountsArray[ minI ].privileges.forEach( (y) => {
|
||||||
});
|
percents = percents + y.discount / 2; // костыль
|
||||||
|
});
|
||||||
} else {
|
}
|
||||||
price = price - (price * privilege.discount);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else { // не внесено
|
} else { // не внесено
|
||||||
price = price - (price * privilege.discount);
|
percents = percents + privilege.discount;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -541,7 +575,8 @@ const DataGridElement: React.FC<MWProps> = ({ openModal }) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
price = price - (price * percents);
|
||||||
}
|
}
|
||||||
|
|
||||||
prices += price;
|
prices += price;
|
||||||
|
Loading…
Reference in New Issue
Block a user