Commit 9e53ce25 authored by 陈俊俊's avatar 陈俊俊

no message

parent 9ae2d7d9
......@@ -300,6 +300,11 @@ typedef NS_ENUM(NSUInteger, ICRAttachmentType) {
success:(void (^)(id))succ
failure:(void (^)(id))fail;
- (void)getProductUnitWithPage_number:(NSUInteger)page_number
page_size:(NSUInteger)page_size
success:(void (^)(id))succ
failure:(void (^)(id))fail;
//1.添加采购单
- (void)savePurchaseWithData:(id)data
......
......@@ -174,7 +174,7 @@ static NSString * const ICRHTTPInterface[] = {
[XFFHttp_GetWarehouse] = @"data/warehouse/download",
//商品单位
[XFFHttp_GetProductunit] = @"data/productunit",
[XFFHttp_GetProductunit] = @"mdata/productunit/download",
//加工单
[XFFHttp_QueryProcess ] = @"process/query",
[XFFHttp_GetProcess ] = @"process/get",
......@@ -2380,4 +2380,52 @@ acceptTypeJson:YES
{
}
- (void)getProductUnitWithPage_number:(NSUInteger)page_number
page_size:(NSUInteger)page_size
success:(void (^)(id))succ
failure:(void (^)(id))fail{
void (^success)(AFHTTPRequestOperation *operation, id responseObject) = ^(AFHTTPRequestOperation *operation, id responseObject) {
CLog(@"%@", responseObject);
if (IsDictObject(responseObject)) {
void (^complete)(void) = ^(void){
if (succ) {
[IBTCommon runOnMainThreadWithoutDeadlocking:^{
succ( responseObject );
}];
}
};
ICRDataBaseController *dbCtrl = [ICRDataBaseController sharedController];
[dbCtrl storageEntities:responseObject[ @"data" ][ @"records" ]
objectClass:NSClassFromString( @"GXFProductUnit" )
deleteLocal:YES
handleData:NULL
complete:complete
fail:fail];
}
else {
if (fail) {
fail( nil );
}
}
};
void (^failure)(AFHTTPRequestOperation *operation, NSError *error) = ^(AFHTTPRequestOperation *operation, NSError *error) {
CLog(@"%@", error);
if (fail) {
fail( error );
}
};
NSString *dateStr = @"2015-05-01";
NSString *urlStr = [[[self class] UrlForPluginHTTPAction:XFFHttp_GetProductunit] stringByAppendingFormat:@"?start_date=%@&page_number=%@&page_size=%@", dateStr,@(page_number),@(page_size)];
NSString *encodeUrlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[self POST:encodeUrlStr
parameters:NULL
needToken:NO
acceptTypeJson:YES
success:success
failure:failure];
}
@end
......@@ -24,6 +24,7 @@ typedef void(^ChoseBaseInfo)(NSArray *baseInfos);
@property (nonatomic,strong)NSString *tableStr;
@property (nonatomic,assign) BOOL isRefresh;
@property (nonatomic,copy)ChoseBaseInfo choseBaseInfo;
@property (nonatomic,assign)BOOL isFirst;
- (void)endRefreshing;
- (void)getBaseDataFromServer;
......
......@@ -25,6 +25,7 @@
- (void)initData{
self.dataArr = [NSMutableArray array];
self.indexArr = [NSMutableArray array];
self.isFirst = YES;
}
#pragma mark - 布局
......@@ -157,7 +158,8 @@
__weak typeof(self)weakSelf = self;
ICRDatabaseFetchResultsBlock fetchResultsBlk = ^(NSArray *fetchedObjects) {
__strong __typeof(weakSelf)strongSelf = weakSelf;
if (fetchedObjects.count == 0 && titleStr.length == 0) {
if (fetchedObjects.count == 0 && titleStr.length == 0 && self.isFirst) {
self.isFirst = NO;
[GXF_NSUSERFEFTAULTS setObject:[NSDate date] forKey:self.tableView.header.lastUpdatedTimeKey];
[GXF_NSUSERFEFTAULTS synchronize];
[self getBaseDataFromServer];
......
......@@ -37,41 +37,6 @@
[IBTLoadingView showProgressLabel:@"正在加载..."];
[[ICRHTTPController sharedController] getProductWithPage_number:0 page_size:100 success:succ failure:fail];
}
#pragma mark -成功
- (void)fetchProductList:(NSString *)titleStr{
ICRDatabaseFetchBlock fetchBlk = ^FMResultSet *(FMDatabase *db) {
NSString * sql = @"";
if (titleStr.length > 0) {
sql = [NSString stringWithFormat:@"SELECT * FROM %@ WHERE NAME LIKE '%%%@%%' ORDER BY %@", [Product TableName],titleStr, @"uuid"];
}else{
sql = [NSString stringWithFormat:@"SELECT * FROM %@ ORDER BY %@", [Product TableName], @"uuid"];
}
return [db executeQuery:sql];
};
__weak typeof(self)weakSelf = self;
ICRDatabaseFetchResultsBlock fetchResultsBlk = ^(NSArray *fetchedObjects) {
__strong __typeof(weakSelf)strongSelf = weakSelf;
if (![GXF_NSUSERFEFTAULTS objectForKey:ChooseProductUpdateDate]) {
[GXF_NSUSERFEFTAULTS setObject:[NSDate date] forKey:ChooseProductUpdateDate];
[GXF_NSUSERFEFTAULTS synchronize];
[self getBaseDataFromServer];
}else{
[strongSelf.dataArr removeAllObjects];
[strongSelf.dataArr addObject:self.tableView.header.lastUpdatedTime];
[strongSelf.dataArr addObjectsFromArray:fetchedObjects];
[self tableViewRefresh];
}
};
ICRDataBaseController *dbCtrl = [ICRDataBaseController sharedController];
[dbCtrl runFetchForClass:[Product class]
fetchBlock:fetchBlk
fetchResultsBlock:fetchResultsBlk];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellID = @"MaskCell";
MaskCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
......
......@@ -51,7 +51,6 @@ typedef enum : NSUInteger {
HPGrowingTextView *_noteTextView;
NSIndexPath *selectedCellIndexPath;
NSMutableArray *selectCellAry;
BOOL _isClickStart;
UITableView *mingXiTableView;
id uuidObject;
id billNumberObject;
......@@ -270,15 +269,7 @@ typedef enum : NSUInteger {
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if ([tableView isEqual:_tableView]) {
if (indexPath.row == 2 || indexPath.row == 3) {
[self keyboardHidden];
if (indexPath.row == 2) {
_isClickStart = YES;
}else{
_isClickStart = NO;
}
}else if(indexPath.row == 1){
if(indexPath.row == 1){
ChosePersonViewController *cvc = [ChosePersonViewController new];
cvc.choseBaseInfo = ^(NSArray *users){
NSString *textStr = @"";
......@@ -449,27 +440,11 @@ typedef enum : NSUInteger {
#pragma mark delegate
- (BOOL)growingTextViewShouldReturn:(HPGrowingTextView *)growingTextView{
[_noteTextView resignFirstResponder];
[self setTableFrame:LeftMargin];
return YES;
}
- (void)growingTextViewDidBeginEditing:(HPGrowingTextView *)growingTextView{
CGFloat offset = ScreenSize.height - TotalHeight - KeyboardHeight;
if (offset < 0) {//上移
[self setTableFrame:LeftMargin+offset];
}
}
- (void)setTableFrame:(CGFloat)tabelH{
[UIView animateWithDuration:0.25 animations:^{
CGRect tableFrame = _tableView.frame;
tableFrame.origin.y = tabelH;
_tableView.frame = tableFrame;
}];
}
- (void)keyboardHidden{
[_titleField resignFirstResponder];
[_noteTextView resignFirstResponder];
[self setTableFrame:LeftMargin];
}
- (void)btnClick:(UIButton *)btn{
switch (btn.tag) {
......
......@@ -7,7 +7,7 @@
//
#import "ChooseParentViewController.h"
#import "Product.h"
#import "GXFProductUnit.h"
@interface ChooseProductUnitViewController : ChooseParentViewController
@end
......@@ -34,43 +34,8 @@
[IBTLoadingView showTips:data];
};
[IBTLoadingView showProgressLabel:@"正在加载..."];
[[ICRHTTPController sharedController] getProductWithPage_number:0 page_size:100 success:succ failure:fail];
[[ICRHTTPController sharedController] getProductUnitWithPage_number:0 page_size:100 success:succ failure:fail];
}
#pragma mark -成功
- (void)fetchProductList:(NSString *)titleStr{
ICRDatabaseFetchBlock fetchBlk = ^FMResultSet *(FMDatabase *db) {
NSString * sql = @"";
if (titleStr.length > 0) {
sql = [NSString stringWithFormat:@"SELECT * FROM %@ WHERE NAME LIKE '%%%@%%' ORDER BY %@", [Product TableName],titleStr, @"uuid"];
}else{
sql = [NSString stringWithFormat:@"SELECT * FROM %@ ORDER BY %@", [Product TableName], @"uuid"];
}
return [db executeQuery:sql];
};
__weak typeof(self)weakSelf = self;
ICRDatabaseFetchResultsBlock fetchResultsBlk = ^(NSArray *fetchedObjects) {
__strong __typeof(weakSelf)strongSelf = weakSelf;
if (![GXF_NSUSERFEFTAULTS objectForKey:ChooseProductUnitUpdateDate]) {
[GXF_NSUSERFEFTAULTS setObject:[NSDate date] forKey:ChooseProductUnitUpdateDate];
[GXF_NSUSERFEFTAULTS synchronize];
[self getBaseDataFromServer];
}else{
[strongSelf.dataArr removeAllObjects];
[strongSelf.dataArr addObject:self.tableView.header.lastUpdatedTime];
[strongSelf.dataArr addObjectsFromArray:fetchedObjects];
[self tableViewRefresh];
}
};
ICRDataBaseController *dbCtrl = [ICRDataBaseController sharedController];
[dbCtrl runFetchForClass:[Product class]
fetchBlock:fetchBlk
fetchResultsBlock:fetchResultsBlk];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellID = @"MaskCell";
MaskCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
......@@ -103,9 +68,9 @@
cell.titleLabel.textColor = GXF_CONTENT_COLOR;
[cell setTitleStr:[NSString stringWithFormat:@"上次更新时间:%@",dateStr]];
}else{
Product *product = self.dataArr[indexPath.row];
GXFProductUnit *product = self.dataArr[indexPath.row];
cell.titleLabel.textColor = GXF_LEFTSIX_COLOR;
NSString *proStr = [NSString stringWithFormat:@"%@[%@]",product.name,product.code];
NSString *proStr = [NSString stringWithFormat:@"%@",product.name];
[cell setTitleStr:proStr];
}
}
......
......@@ -16,9 +16,6 @@
#import "ChooseProductUnitViewController.h"
#import "GXFSearchVendorViewController.h"
#import "GXFProductUnit.h"
#import "SurveyUser.h"
#import "Survey.h"
#import "Product.h"
#define LeftMargin 15
#define BtnHeight 44
#define TableHeight 46
......@@ -36,17 +33,9 @@ typedef enum : NSUInteger {
{
UITableView *_tableView;
NSMutableArray *_dataArr;
UITextField *_titleField;
UILabel *_productLabel;
UILabel *_PackagingLable;
UILabel *_startDateLabel;
UILabel *_endDateLabel;
UILabel *_personLabel;
HPGrowingTextView *_noteTextView;
UIDatePicker *_timePicker;
BOOL _isClickStart;
StartTimeView *_startTimeView;
UITextField *merchandise; //商品
UITextField *packageSpecification;//包装规格
UITextField *packageQuantity; //包装数量
......@@ -310,15 +299,14 @@ typedef enum : NSUInteger {
}
- (void)clearAllInformation{
_titleField.text = @"";
_productLabel.text = @"请输入商品";
_productLabel.textColor = GXF_PLACEHOLDER_COLOR;
_startDateLabel.text = @"选择日期";
_startDateLabel.textColor = GXF_PLACEHOLDER_COLOR;
_endDateLabel.text = @"选择日期";
_endDateLabel.textColor = GXF_PLACEHOLDER_COLOR;
_personLabel.text = @"选择调研人员";
_personLabel.textColor = GXF_PLACEHOLDER_COLOR;
// _startDateLabel.text = @"选择日期";
// _startDateLabel.textColor = GXF_PLACEHOLDER_COLOR;
// _endDateLabel.text = @"选择日期";
// _endDateLabel.textColor = GXF_PLACEHOLDER_COLOR;
// _personLabel.text = @"选择调研人员";
// _personLabel.textColor = GXF_PLACEHOLDER_COLOR;
_noteTextView.text = @"";
//清空数据
self.titleStr = @"";
......@@ -367,7 +355,7 @@ typedef enum : NSUInteger {
- (void)createViewInCell:(SurveyCell *)cell indexPath:(NSIndexPath *)indexPath{
if (indexPath.row == 0||indexPath.row==3) {
UILabel *contentLabel = [[UILabel alloc]initWithFrame:(CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-10, TableHeight))];
UILabel *contentLabel = [[UILabel alloc]initWithFrame:(CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-15, TableHeight))];
contentLabel.textAlignment= NSTextAlignmentRight;
contentLabel.textColor = GXF_PLACEHOLDER_COLOR;
contentLabel.font = FontSize(TitleSize);
......@@ -385,55 +373,53 @@ typedef enum : NSUInteger {
}else
{
_titleField = [[UITextField alloc] initWithFrame:CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-10, TableHeight)];
_titleField.textAlignment = NSTextAlignmentRight;
_titleField.textColor = GXF_CONTENT_COLOR;
_titleField.placeholder = @"输入调研标题";
_titleField.font = FontSize(15);
_titleField.returnKeyType = UIReturnKeyDone;
_titleField.delegate = self;
[cell.contentView addSubview:_titleField];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-15, TableHeight)];
textField.textAlignment = NSTextAlignmentRight;
textField.textColor = GXF_CONTENT_COLOR;
textField.font = FontSize(15);
textField.returnKeyType = UIReturnKeyDone;
textField.delegate = self;
[cell.contentView addSubview:textField];
if (indexPath.row==1) {
packageSpecification=_titleField;//包装规格
_titleField.placeholder = @"输入包装规格";
packageSpecification=textField;//包装规格
textField.placeholder = @"输入包装规格";
}else if (indexPath.row==2)
{
packageQuantity=_titleField; //包装数量
_titleField.placeholder = @"输入包装数量";
packageQuantity=textField; //包装数量
textField.placeholder = @"输入包装数量";
}else if (indexPath.row==4)
{
foundationQuantity=_titleField; //基础数量
_titleField.placeholder = @"输入基础数量";
foundationQuantity=textField; //基础数量
textField.placeholder = @"输入基础数量";
}else if (indexPath.row==5)
{
foundationUnitPrice=_titleField; //基础单价
_titleField.placeholder = @"输入基础单价";
_titleField.frame = CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-30, TableHeight);
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(_titleField.frame) + 5, 0, 20, TableHeight)];
foundationUnitPrice=textField; //基础单价
textField.placeholder = @"输入基础单价";
textField.frame = CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-30, TableHeight);
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(textField.frame) + 5, 0, 20, TableHeight)];
label.text = @"元";
label.textColor = GXF_CONTENT_COLOR;
label.font = GXF_FIFTEENTEN_SIZE;
[cell.contentView addSubview:label];
}else if (indexPath.row==6)
{
packageUnitPrice=_titleField; //包装单价
_titleField.placeholder = @"输入包装单价";
_titleField.frame = CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-30, TableHeight);
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(_titleField.frame) + 5, 0, 20, TableHeight)];
packageUnitPrice=textField; //包装单价
textField.placeholder = @"输入包装单价";
textField.frame = CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-30, TableHeight);
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(textField.frame) + 5, 0, 20, TableHeight)];
label.text = @"元";
label.textColor = GXF_CONTENT_COLOR;
label.font = GXF_FIFTEENTEN_SIZE;
[cell.contentView addSubview:label];
}else if (indexPath.row==7)
{
totalMoney=_titleField; //总金额
_titleField.placeholder = @"输入总金额";
_titleField.text = @"0";
_titleField.frame = CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-30, TableHeight);
_titleField.textColor = [UIColor redColor];
totalMoney=textField; //总金额
textField.placeholder = @"输入总金额";
textField.text = @"0";
textField.frame = CGRectMake(100+LeftMargin, 0, ScreenSize.width - 100 - LeftMargin*2-30, TableHeight);
textField.textColor = [UIColor redColor];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(_titleField.frame)+ 5, 0, 20, TableHeight)];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(textField.frame)+ 5, 0, 20, TableHeight)];
label.text = @"元";
label.textColor = GXF_CONTENT_COLOR;
label.font = GXF_FIFTEENTEN_SIZE;
......@@ -441,11 +427,9 @@ typedef enum : NSUInteger {
}else if (indexPath.row==8)
{
remark=_titleField; //备注
_titleField.placeholder = @"输入备注内容";
remark=textField; //备注
textField.placeholder = @"输入备注内容";
}
}
[self setviewsData];
}
......@@ -467,71 +451,20 @@ typedef enum : NSUInteger {
[self PushViewController:cvc animated:YES];
}else if (indexPath.row ==3)
{
// 无数据
// GXFSearchVendorViewController *vc = [[GXFSearchVendorViewController alloc]initWithTitle:[IBTCommon localizableString:@"ProductUnitTitle"]];
// vc.choseVendor = ^(NSArray *vendors){
// if (vendors.count > 0) {
// GXFProductUnit *productUnit = vendors[0];
// _PackagingLable.text = [NSString stringWithFormat:@"%@[%@]",productUnit.name,productUnit.uuid];
// packageUnit.text = [NSString stringWithFormat:@"%@[%@]",productUnit.name,productUnit.uuid];
// _PackagingLable.textColor = GXF_CONTENT_COLOR;
// self.productUuidStr = productUnit.uuid;
//
// self.productNameStr = productUnit.name;
// }
// };
// [self PushViewController:vc animated:YES];
// 陈俊
ChooseProductUnitViewController *cvc = [ChooseProductUnitViewController new];
cvc.choseBaseInfo = ^(NSArray *products){
Product *product=products [0];
_PackagingLable.text = [NSString stringWithFormat:@"%@[%@]",product.name,product.code];
packageUnit.text= [NSString stringWithFormat:@"%@[%@]",product.name,product.code];
if (products.count > 0) {
GXFProductUnit *productUnit=products [0];
_PackagingLable.text = [NSString stringWithFormat:@"%@",productUnit.name];
packageUnit.text= [NSString stringWithFormat:@"%@",productUnit.name];
_PackagingLable.textColor = GXF_CONTENT_COLOR;
// merchandise.text=product.name;
self.productNameStr = product.name;
self.productUuidStr = product.uuid;
self.productCodeStr = product.code;
}
};
cvc.isMoreChose = NO;
[self PushViewController:cvc animated:YES];
// 自己
// SelectCompanyViewController *vc=[SelectCompanyViewController new];
// vc.chosePackaging = ^(NSString *Packaging){
//
// _PackagingLable.text = [NSString stringWithFormat:@"%@",Packaging];
// packageUnit.text=[NSString stringWithFormat:@"%@",Packaging];
// _PackagingLable.textColor = GXF_CONTENT_COLOR;
//
// };
//
//
// [self PushViewController:vc animated:YES];
}
}
- (void)preferDataInPersonLabel{
if (self.survey) {
if (self.survey.users.count > 0) {
NSString *personStr = @"";
for (SurveyUser * surveyUser in self.survey.users) {
if (personStr.length == 0) {
personStr = [personStr stringByAppendingFormat:@"%@",surveyUser.userName];
}else {
personStr = [personStr stringByAppendingFormat:@"、%@",surveyUser.userName];
}
}
_personLabel.text = personStr;
_personLabel.textColor = GXF_CONTENT_COLOR;
}
if (self.users > 0) {
[self.users addObjectsFromArray:self.survey.users];
}
}
}
- (void)preferDataInProductLabel{
if (self.survey) {
_productLabel.text = [IBTCommon checkString:self.survey.productName];
......@@ -541,82 +474,13 @@ typedef enum : NSUInteger {
self.productUuidStr = [IBTCommon checkString:self.survey.productUuid];
}
}
- (void)startDatePickView{
if (!_startTimeView) {
_startTimeView = [[StartTimeView alloc] initWithFrame:CGRectMake(0, ScreenSize.height, ScreenSize.width, ScreenSize.height - 64)];
_startTimeView.delegate = self;
_startTimeView.backgroundColor = RGBA(0, 0, 0 ,0.5);
[self.view addSubview:_startTimeView];
[UIView animateWithDuration:0.15 animations:^{
CGRect startFrame = _startTimeView.frame;
startFrame.origin.y = 0;
_startTimeView.frame = startFrame;
} completion:^(BOOL finished) {
}];
}
}
- (void)cancelTimeView{
[self clearDatePickView];
}
- (void)okTimeView:(NSDate *)time{
if (_isClickStart) {
_startDateLabel.textColor = GXF_CONTENT_COLOR;
_startDateLabel.text = [IBTCommon stringFromDate:time];
self.beginDateStr = [time httpParameterString];
}else{
_endDateLabel.textColor = GXF_CONTENT_COLOR;
_endDateLabel.text = [IBTCommon stringFromDate:time];
self.endDateStr = [time httpParameterString];
}
// 关闭选择器
[self clearDatePickView];
}
#pragma mark - 取消
- (void)clearDatePickView{
[UIView animateWithDuration:0.15 animations:^{
CGRect startFrame = _startTimeView.frame;
startFrame.origin.y = ScreenSize.height;
_startTimeView.frame = startFrame;
} completion:^(BOOL finished) {
[_startTimeView removeFromSuperview];
_startTimeView = nil;
}];
}
#pragma mark delegate
- (BOOL)growingTextViewShouldReturn:(HPGrowingTextView *)growingTextView{
[_noteTextView resignFirstResponder];
[self setTableFrame:LeftMargin];
return YES;
}
- (void)growingTextViewDidBeginEditing:(HPGrowingTextView *)growingTextView{
CGFloat offset = ScreenSize.height - TotalHeight - KeyboardHeight;
if (offset < 0) {//上移
[self setTableFrame:LeftMargin+offset];
}
}
- (void)setTableFrame:(CGFloat)tabelH{
[UIView animateWithDuration:0.25 animations:^{
CGRect tableFrame = _tableView.frame;
tableFrame.origin.y = tabelH;
_tableView.frame = tableFrame;
}];
}
- (void)keyboardHidden{
[_titleField resignFirstResponder];
[_noteTextView resignFirstResponder];
[self setTableFrame:LeftMargin];
}
- (void)viewWillDisappear:(BOOL)animated{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment