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