| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757 |
- //
- // NewInstallReceiptVC.m
- // IBOSS
- //
- // Created by guanhh on 17/7/14.
- // Copyright © 2017年 沈阳东科云信软件有限公司. All rights reserved.
- //
- // 功能描述:新增安装回执
- #import "NewInstallReceiptVC.h"
- #import "StatusInfo.h"
- #import "StatusInfoTextVC.h"
- #import "NIDropDown.h"
- #import "NewInstallIItemModel.h"
- #import "NewInstallDetailListsCell.h"
- #import "DKUICollectionViewCell.h"
- #import "DKCamera.h"
- #import "DKCameraViewController.h"
- #import "DKPhotoPickerViewController.h"
- #import "RegularExpression.h"
- #import "Util.h"
- #import "LeslieAsyncImageDownloader.h"
- #import "CustomButton.h"
- #define kTextFont [UIFont systemFontOfSize: LabelAndTextFontOfSize]
- @interface NewInstallReceiptVC ()<StatusInfoTextDelegate,UITextFieldDelegate,NewInstallDetailListsCellDelegate,SettlementTypeProtocol>{
- NSMutableArray* _arrayStatus;
- NSMutableArray* _arrayReceiptType;
- BOOL _isHaveDian;
- UIView *_contentView;
- UIScrollView *_scroll;
- NSInteger _imagesHeight;
- NSInteger _cellHeight;
- UIView *_vCollectionView;
- UIView *_vImage;
- NSInteger _btnImageHeight;
- NSInteger _positionHeight;
- UIView *_positionImage;
- UILabel *_lblPosition;
- UIImageView* _ivPosition;
- CGFloat _initHeight;
- BOOL _keyboardShow;
- }
- /**
- 下载管理器
- */
- @property (nonatomic,strong) ASIDownManager *mDownManager;
- /**
- 保存管理器
- */
- @property (nonatomic,strong) ASIDownManager *mSaveManager;
- @end
- @implementation NewInstallReceiptVC
- @synthesize vCustomTableView;
- #pragma mark - 公共函数
- /**
- 视图加载完成函数
- */
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self initUI];
- [self initStatus];
- self.model = [[ParseNewInstallItem alloc]init];
- self.model.detailsArr = [[NSMutableArray alloc]init];
- self.mSaveManager = [[ASIDownManager alloc] init];
- self.mSaveManager.delegate = self;
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onFocusPeopleEditingChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.receiptAmount ];
- self.navigationItem.title = @"新增安装回执";
- //返回
- UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
- [button setImage:[UIImage imageNamed:@"icon_back"] forState:UIControlStateNormal];
- [button addTarget:self action:@selector(goBack)
- forControlEvents:UIControlEventTouchUpInside];
- button.frame = CGRectMake(0, 0,45,22);
- UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:button];
- self.navigationItem.leftBarButtonItem = menuButton;
- if(_sCode != nil && _sCode.length > 0){
- self.code.enabled = NO;
- [self reloadDataWithOnlyCode:_sCode];
-
- }
- }
- /**
- 安全区视图发生变化
- */
- -(void)viewSafeAreaInsetsDidChange{
- [self.view setBackgroundColor:[UIColor whiteColor]];
- UIImage *pic = [UIImage imageNamed:@"bt_datasave"];
- CGFloat h = (Screen_Width - 40) * pic.size.height / pic.size.width;
- _scroll.frame =CGRectMake(0, 0, Screen_Width, self.view.safeAreaLayoutGuide.layoutFrame.size.height -h);
- _saveBtn.frame = CGRectMake(20,
- self.view.safeAreaLayoutGuide.layoutFrame.size.height -h-15,
- Screen_Width-40,
- h);
- [super viewSafeAreaInsetsDidChange];
- }
- /**
- 内存释放函数
- */
- - (void)dealloc{
- // [self cancel];
- // [[NSNotificationCenter defaultCenter]removeObserver:self name:@"UITextFieldTextDidChangeNotification" object:self.receiptAmount];
- }
- /**
- 初始化相册数组
- @return <#return value description#>
- */
- - (NSMutableArray *)assets{
- if (!_assets) {
- _assets = [NSMutableArray array];
- }
- return _assets;
- }
- /**
- 初始化图片路径数组
- @return <#return value description#>
- */
- - (NSMutableArray *)imagePaths{
- if (!_imagePaths) {
- _imagePaths = [NSMutableArray array];
- }
- return _imagePaths;
- }
- /**
- 初始化回执类型数组
- */
- - (void)initStatus{
- _arrayStatus = [[NSMutableArray alloc]init];
- StatusInfo *s = [[StatusInfo alloc]init];
- s.statusId = @"1";
- s.name = @"完成";
- [_arrayStatus addObject:s];
- s = [[StatusInfo alloc]init];
- s.statusId = @"3";
- s.name = @"推迟安装";
- [_arrayStatus addObject:s];
-
- }
- - (void) initStatus2 :(BOOL) flag{
- _arrayReceiptType = [[NSMutableArray alloc]init];
- StatusInfo *s = [[StatusInfo alloc]init];
- s.statusId = @"1";
- s.name = @"完成";
- s.tagName = @"ReceiptType";
- [_arrayReceiptType addObject:s];
- if(flag){
- s = [[StatusInfo alloc]init];
- s.statusId = @"5";
- s.tagName = @"ReceiptType";
- s.name = @"再安装";
- [_arrayReceiptType addObject:s];
- }
- }
- /**
- 初始化collectionView
- */
- - (void)setupCollectionView{
- UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
- flowLayout.itemSize = CGSizeMake(85, 85);
- flowLayout.minimumInteritemSpacing = 5;
- flowLayout.minimumLineSpacing = 10;
- flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
- flowLayout.sectionInset = UIEdgeInsetsMake(7, 20, 0, 20);
- self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, Screen_Width, (85 + 15) * 3) collectionViewLayout:flowLayout];
- self.collectionView.backgroundColor = [UIColor clearColor];
- self.collectionView.dataSource = self;
- self.collectionView.delegate = self;
- [self.collectionView registerNib:[UINib nibWithNibName:@"DKUICollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"DKUICollectionViewCell"];
- [_vCollectionView addSubview:self.collectionView];
- }
- #pragma mark - 委托函数
- /**
- 保存完成后更新数据
- @param sender <#sender description#>
- */
- - (void)onLoadFinish:(ASIDownManager *)sender {
-
- RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr];
- [self cancel];
- int iStatus = resultModel.status;
- NSString *message = resultModel.message;
- self.navigationItem.rightBarButtonItem.enabled=YES;
- if (iStatus == 0) {
- //[self clearData];//新增后 清除画面的值
- UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"保存成功!" preferredStyle:UIAlertControllerStyleAlert ];
- [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
- [_parentVC ReloadList];
- [self.navigationController popViewControllerAnimated:YES];
- }]];
- // 3.显示alertController:presentViewController
- [self presentViewController:alert animated:YES completion:nil];
- }
- else if(iStatus == ActionResultStatusAuthError
- || iStatus == ActionResultStatusNoLogin
- || iStatus == ActionResultStatusLogined||iStatus==ActionResultSessionOverdue){
- [self showReLoginDialog:message];
- return;
- }
-
- else {
- [self showAlertViewText:message];
- }
-
- }
- /**
- 保存加载失败函数
- @param sender <#sender description#>
- */
- - (void)onLoadFail:(ASIDownManager *)sender {
- [self cancel];
- [self showAlertViewText:@"网络异常"];
- }
- /**
- 回执数据加载成功接口
- @param sender <#sender description#>
- */
- - (void)onRequestSuccess:(ASIDownManager *)sender {
- RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr];
-
- [self cancel];
- self.sCode = @"";
- int iStatus = resultModel.status;
- NSString *message = resultModel.message;
- if (iStatus == 0) {
- self.sCode=self.code.text;
- NSArray * infoArr;
- NSArray * infoHead;
- NSDictionary *dicResult = (NSDictionary*)resultModel.result;
- [self.model.detailsArr removeAllObjects];
- if(dicResult != nil){
- infoArr = [dicResult objectForKey:@"Table1"];
- infoHead = [dicResult objectForKey:@"Table"];
- }
-
- if (infoHead == nil|| infoHead.count == 0) {
- self.code.text = @"";
- self.sCode = @"";
- [self clearData];
- [self showAlertViewText:@"该安装单未建安排单,请重新建安排单"];
- return;
- }
-
- //单据信息 一条数据
- BOOL receiptFlag=false;
- for (int i = 0; i < infoHead.count; i++) {
- NSDictionary *h = infoHead[i];
- receiptFlag = [[h objectForKey:@"ReceiptFlag"] boolValue] ;
- if (receiptFlag) {
- self.sReceiptType = @"1";
- break;
- }else{
- self.sReceiptType = @"0";
- }
-
- self.customerId = [[h objectForKey:@"CustomerID"]stringValue];
- self.installationId = [[h objectForKey:@"InstallationID"]stringValue];
- self.orgId = [[h objectForKey:@"BusinessOrganization"]stringValue];
- self.salesman = [[h objectForKey:@"SalesMan"]stringValue];
- self.lblCustomerNameValue.text = [h objectForKey:@"CustomerName"];
- self.receivablesValue.text = [NSString stringWithFormat:@"%.2f",[[h objectForKey:@"Receivables"] doubleValue] - [[h objectForKey:@"ReceiptedAmount"] doubleValue]];
- self.lblServiceStaffName.text = [h objectForKey:@"ServiceStaffName"];
-
- if ([self.sReceiptType isEqualToString:@"3"]) {
- self.sDelayDate = [h objectForKey:@"NextinstallDate"];
- [self.delayDate setTitle:self.sDelayDate forState:UIControlStateNormal];
- [self.receiptType setTitle:@"推迟安装" forState:UIControlStateNormal];
-
-
- }else{
- [self.receiptType setTitle:@"完成" forState:UIControlStateNormal];
- self.sReceiptType = @"1";
- [self.delayDate setTitle:@"请选择推迟日期" forState:UIControlStateNormal];
- self.sDelayDate = @"";
- }
-
- if (self.receivablesValue.text != nil && [self.receivablesValue.text doubleValue] > 0) {
- self.receiptAmount.enabled = YES;
-
- }else{
- self.receiptAmount.enabled = NO;
- }
- self.receiptAmount.text = @"0";
- self.sSettlementType = @"";
- [self.settlementType setTitle:@"请选择收款方式" forState:UIControlStateNormal];
-
-
- }
- if (receiptFlag) {
- self.code.text = @"";
- self.sCode = @"";
- [self clearData];
- [self showAlertViewText:@"该安装单已经回执"];
- return;
- }
-
- //详细信息
- for (int i = 0; i <infoArr.count; i++) {
- NSDictionary *info = infoArr[i];
- NewInstallIItemModel * m = [NewInstallIItemModel dk_modelWithDictionary:info];
- [self.model.detailsArr addObject:m];
- }
- _btnImageHeight = 51;
- vCustomTableView.hidden = NO;
- _vImage.hidden = NO;
- [self.vCustomTableView reloadData];
-
- }
- else if(iStatus == ActionResultStatusAuthError
- ||iStatus == ActionResultStatusNoLogin
- ||iStatus == ActionResultStatusLogined||iStatus==ActionResultSessionOverdue){
- [self showReLoginDialog:message];
- return;
- }
- else {
-
- [self showAlertViewText:message];
-
-
- }
-
-
-
- }
- /**
- 回执数据加载失败接口
- @param sender <#sender description#>
- */
- - (void)onRequestFail:(ASIDownManager *)sender{
- [self cancel];
- [self showAlertViewText:@"网络异常"];
- }
- /**
- 限制用户输入小数点后位数的方法
- @param textField <#textField description#>
- @param range <#range description#>
- @param string <#string description#>
- @return <#return value description#>
- */
- - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
-
- if ([textField.text rangeOfString:@"."].location == NSNotFound) {
- _isHaveDian = NO;
- }
- if ([string length] > 0) {
-
- unichar single = [string characterAtIndex:0];//当前输入的字符
- if ((single >= '0' && single <= '9') || single == '.') {//数据格式正确
-
- //首字母不能为0和小数点
- if([textField.text length] == 0){
- if(single == '.') {
- [self showAlertViewText:@"第一个数字不能为小数点"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }
- if([textField.text length] == 1 && [[textField.text substringToIndex:1] isEqualToString: @"0"]){
- if(!(single == '.')) {
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
-
- }
-
- //输入的字符是否是小数点
- if (single == '.') {
- if(!_isHaveDian)//text中还没有小数点
- {
- _isHaveDian = YES;
- return YES;
-
- }else{
- [self showAlertViewText:@"您已经输入过小数点了"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }else{
- if (_isHaveDian) {//存在小数点
-
- //判断小数点的位数
- NSRange ran = [textField.text rangeOfString:@"."];
- if (range.location - ran.location <= 6) {
- return YES;
- }
- else{
-
- return NO;
- }
- }else{
- return YES;
- }
- }
- }else{
- //输入的数据格式不正确
- [self showAlertViewText:@"您输入的格式不正确"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }
- else
- {
- return YES;
- }
-
- }
- /**
- 选中位置回调事件
- @param name <#name description#>
- */
- - (void)relocationData:(NSString *)name{
- _lblPosition.text = name;
- _positionImage.hidden = NO;
- if (_lblPosition.text.length > 0){
- _ivPosition.image = [UIImage imageNamed:@"log_position"];
-
- vCustomTableView.frame = CGRectMake(0, CGRectGetMaxY(_separatorView.frame), self.view.frame.size.width, [self getDataViewHeight:self.model.detailsArr]);
- _vCollectionView.frame = CGRectMake(0,CGRectGetMaxY(vCustomTableView.frame), self.view.frame.size.width, [Util getPhotoCollectionViewHeightWithPhotos:self.assets]);
- _positionImage.frame = CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame)-10, Screen_Width, 30);
- _vImage.frame = CGRectMake(0,CGRectGetMaxY(_positionImage.frame)+5, Screen_Width,30);
- _contentView.frame = CGRectMake(0, 0, Screen_Width, CGRectGetMaxY(_vImage.frame));
- _scroll.contentSize = CGSizeMake(Screen_Width, _contentView.frame.size.height + 150);
- }
- }
- /**
- 单据信息中收款方式的回调函数
- @param model <#model description#>
- */
- - (void)showProtocolValue:(SettlementTypeModel *)model{
- self.sSettlementType = model.settlementId;
- self.sSettlementTypeName = model.settlementName;
- self.sExitsHandleFee = model.isNotHand;
- self.sEarnestFee = model.handAmount;
- self.sRemarks = model.remark;
- [self.settlementType setTitle:model.settlementName forState:UIControlStateNormal];
- }
- /**
- 详细信息中铺贴方式,回执类型,单据信息中回执类型的回调函数
- @param s <#s description#>
- */
- - (void)showStatusValue:(StatusInfo *)s{
- if (s == nil) {
- return;
- }
- if ([s.tagName isEqualToString: @"PayStyle"]) {
- //详细cell中铺贴方式返回值
- [self.model btnGoPayStyle:s.statusId Name:s.name CellIndex:self.cellIndex];
- //一个cell刷新
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.cellIndex inSection:0];
- [self.vCustomTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
-
-
- }
- else if ([s.tagName isEqualToString: @"ReceiptType"]) {
- [self.model btnGoReceiptType:s.statusId Name:s.name CellIndex:self.cellIndex];
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.cellIndex inSection:0];
- [self.vCustomTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
-
- }
- else{
- self.sReceiptType = s.statusId;
- [self.receiptType setTitle:s.name forState:UIControlStateNormal];
- if (![self.sReceiptType isEqualToString:@"3"]) {
- self.sDelayDate = @"";
- [self.delayDate setTitle:@"请选择回执开始日期" forState:UIControlStateNormal];
- [self.model updateCellInfo:NO];
- }
- else{
- [self.model updateCellInfo:YES];
- }
- [self.vCustomTableView reloadData];
- }
- }
- /**
- 键盘隐藏回调
- @param cell <#cell description#>
- */
- - (void)keyboardWillHide:(NewInstallDetailListsCell *)cell{
- if (cell.cellIndex == self.model.detailsArr.count - 1) {
- [self keyboardWillHide];
- }
- }
- /**
- 键盘弹出回调
- @param cell <#cell description#>
- */
- - (void)keyboardWillShow:(NewInstallDetailListsCell *)cell{
- if (cell.cellIndex == self.model.detailsArr.count - 1) {
- [self keyboardWillShow];
- }
- }
- /**
- 编辑完成回调
- @param cell <#cell description#>
- */
- - (void)endEdit:(NewInstallDetailListsCell *)cell{
- NewInstallIItemModel *m = self.model.detailsArr[self.cellIndex];
- cell.receiptQuantity.text = m.receiptQuantity;
- }
- /**
- 选中相片回调事件
- @param assets <#assets description#>
- */
- - (void)pickerViewControllerDoneAsstes:(NSArray *)assets{
- // __weak typeof(self) weakSelf = self;
- for (int i = (int)self.assets.count - 1;i >= 0;i-- ) {
- if ([self.assets[i] isKindOfClass:[DKPhotoAssets class]]) {
- [self.assets removeObject:self.assets[i]];
- }
- }
- for (DKPhotoAssets* asset in assets ) {
- if ([asset isKindOfClass:[DKPhotoAssets class]]) {
- [self.assets addObject:asset];
- }
- }
- [self.collectionView reloadData];
- }
- /**
- 详细信息中文本信息编辑
- @param cell <#cell description#>
- @param txtfield <#txtfield description#>
- @param qualityTxt <#qualityTxt description#>
- @param remark <#remark description#>
- */
- - (void)textValueChange:(NewInstallDetailListsCell *)cell txtField:(UITextField *)txtfield qualityField:(UITextField *)qualityTxt remarkField:(UITextField *)remark{
- self.cellIndex = cell.cellIndex;
- [self.model updateCellText:txtfield CellIndex:cell.cellIndex qualityField:qualityTxt remarkField:remark];
- if(txtfield.tag == 1110) //数量
- {
- NewInstallIItemModel *m = self.model.detailsArr[self.cellIndex];
- cell.receiptBox.text = m.box;
- cell.receiptPiece.text= m .piece;
- cell.mm.text = m.mm;
- }
- }
- /**
- tableview的分区数
- @param tableView <#tableView description#>
- @return <#return value description#>
- */
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
- }
- /**
- tableview的行数
- @param tableView <#tableView description#>
- @param section <#section description#>
- @return <#return value description#>
- */
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- {
- NSInteger rowcount = [self.model.detailsArr count];
- vCustomTableView.frame = CGRectMake(0, CGRectGetMaxY(_separatorView.frame), self.view.frame.size.width, [self getDataViewHeight:self.model.detailsArr]);
- _vCollectionView.frame = CGRectMake(0,CGRectGetMaxY(vCustomTableView.frame), self.view.frame.size.width, [Util getPhotoCollectionViewHeightWithPhotos:self.assets]);
- _positionImage.frame = CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, 0);
- _vImage.frame = CGRectMake(0,CGRectGetMaxY(_positionImage.frame), Screen_Width,30);
- _contentView.frame = CGRectMake(0, 0, Screen_Width, CGRectGetMaxY(_vImage.frame));
- _scroll.contentSize = CGSizeMake(Screen_Width, _contentView.frame.size.height + 150);
- return rowcount;
- }
- /**
- tableview的高度
- @param tableView <#tableView description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- return 262;
- }
- /**
- 获取tableview的cell
- @param tableView <#tableView description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
-
- static NSString *identifier = @"NewInstallDetailListsCell";
- NewInstallDetailListsCell* cell = [[NewInstallDetailListsCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
- NSUInteger row = [indexPath row];
- cell.installDelegate = self;
- cell.cellIndex = row;
- [cell parseInfoModel:self.model.detailsArr[row]type:_sReceiptType];
- if (!self.model.isDelay && [cell.receiptType isEqualToString:@"1"]) {
- cell.remark.enabled = YES;
- }
-
- return cell;
- }
- /**
- 获取collection view的分区数
- @param collectionView <#collectionView description#>
- @return <#return value description#>
- */
- - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
- return 1;
- }
- /**
- 获取collection view的项数
- @param collectionView <#collectionView description#>
- @param section <#section description#>
- @return <#return value description#>
- */
- - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
- vCustomTableView.frame = CGRectMake(0, CGRectGetMaxY(_separatorView.frame), self.view.frame.size.width, [self getDataViewHeight:self.model.detailsArr]);
- _vCollectionView.frame = CGRectMake(0,CGRectGetMaxY(vCustomTableView.frame), self.view.frame.size.width, [Util getPhotoCollectionViewHeightWithPhotos:self.assets]);
- if(_lblPosition.text.length > 0){
- _positionImage.frame = CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, 30);
- }else{
- _positionImage.frame = CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, 0);
- }
- _vImage.frame = CGRectMake(0,CGRectGetMaxY(_positionImage.frame)+5, Screen_Width,30);
- _contentView.frame = CGRectMake(0, 0, Screen_Width, CGRectGetMaxY(_vImage.frame));
- _scroll.contentSize = CGSizeMake(Screen_Width,_contentView.frame.size.height + 150);
- return [self.assets count];
- }
- /**
- 获取collection view的cell
- @param collectionView <#collectionView description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
-
- DKUICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"DKUICollectionViewCell" forIndexPath:indexPath];
-
- // 判断类型来获取Image
- DKPhotoAssets *asset = self.assets[indexPath.item];
- if ([asset isKindOfClass:[DKPhotoAssets class]]) {
- cell.imageView.image = asset.thumbImage;
- }
- else if ([asset isKindOfClass:[NSString class]]){
- [cell.imageView sd_setImageWithURL:[NSURL URLWithString:(NSString *)asset] placeholderImage:[UIImage imageNamed:@"wallpaper_placeholder"]];
- }
- else if([asset isKindOfClass:[UIImage class]]){
- cell.imageView.image = (UIImage *)asset;
- }
- else if ([asset isKindOfClass:[DKCamera class]]){
- cell.imageView.image = [asset thumbImage];
- }
-
- return cell;
-
- }
- /**
- collection view的点击事件
- @param collectionView <#collectionView description#>
- @param indexPath <#indexPath description#>
- */
- - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
-
- DKUICollectionViewCell *cell = (DKUICollectionViewCell *)[self.collectionView cellForItemAtIndexPath:indexPath];
- // 图片游览器
- DKPhotoPickerBrowserViewController *pickerBrowser = [[DKPhotoPickerBrowserViewController alloc] init];
- // 传入点击图片View的话,会有微信朋友圈照片的风格
- pickerBrowser.toView = cell.imageView;
- // 数据源/delegate
- pickerBrowser.delegate = self;
- pickerBrowser.dataSource = self;
- // 是否可以删除照片
- pickerBrowser.editing = YES;
- // 当前选中的值
- pickerBrowser.currentIndexPath = [NSIndexPath indexPathForItem:indexPath.row inSection:0];
- // 展示控制器
- [pickerBrowser show];
- }
- /**
- collection view的分区数
- @param pickerBrowser <#pickerBrowser description#>
- @return <#return value description#>
- */
- - (NSInteger)numberOfSectionInPhotosInPickerBrowser:(DKPhotoPickerBrowserViewController *)pickerBrowser{
- return 1;
- }
- - (NSInteger)photoBrowser:(DKPhotoPickerBrowserViewController *)photoBrowser numberOfItemsInSection:(NSUInteger)section{
- return [self.assets count];
- }
- - (DKPhotoPickerBrowserPhoto *)photoBrowser:(DKPhotoPickerBrowserViewController *)pickerBrowser photoAtIndexPath:(NSIndexPath *)indexPath{
- id imageObj = [self.assets objectAtIndex:indexPath.item];
- DKPhotoPickerBrowserPhoto *photo = [DKPhotoPickerBrowserPhoto photoAnyImageObjWith:imageObj];
- // 包装下imageObj 成 DKPhotoPickerBrowserPhoto 传给数据源
- DKUICollectionViewCell *cell = (DKUICollectionViewCell *)[self.collectionView cellForItemAtIndexPath:indexPath];
- // 缩略图
- photo.thumbImage = cell.imageView.image;
- return photo;
- }
- #pragma mark - <DKPhotoPickerBrowserViewControllerDelegate>
- - (void)photoBrowser:(DKPhotoPickerBrowserViewController *)photoBrowser removePhotoAtIndexPath:(NSIndexPath *)indexPath{
- if (indexPath.row > [self.assets count]) return;
- [self.assets removeObjectAtIndex:indexPath.row];
- [self.collectionView reloadData];
- }
- #pragma mark - 私有函数
- /**
- 弹出键盘函数
- */
- - (void)keyboardWillShow {
-
- if(!_keyboardShow){
- [UIView animateWithDuration:0.3f animations:^ {
- self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - 190, self.view.frame.size.width, self.view.frame.size.height);
-
- }];}
- _keyboardShow=YES;
- }
- /**
- 隐藏键盘函数
- */
- - (void)keyboardWillHide {
- self.view.backgroundColor = [UIColor colorWithWhite:0.96 alpha:1.0];
- if(_keyboardShow){
- [UIView animateWithDuration:0.1f animations:^ {
- self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + 190, self.view.frame.size.width, self.view.frame.size.height);
-
- }];}
- _keyboardShow=NO;
- }
- /**
- 初始化界面
- */
- - (void)initUI{
- _scroll = [UIScrollView new];
- _scroll.frame = self.view.bounds;
- _scroll.tag = 1000;
- UITapGestureRecognizer *singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKey)];
- singleRecognizer.cancelsTouchesInView = NO;
- [_scroll addGestureRecognizer:singleRecognizer];
- [self.view addSubview:_scroll];
-
- if(Screen_Height2 <= 480){
- _scroll.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height + 80);
- }
- _contentView = [[UIView alloc]init];
- _contentView.frame = CGRectZero;
- _contentView.backgroundColor = [UIColor whiteColor];
- [_scroll addSubview:_contentView];
-
- UIView *vCode = [UIView new];
- vCode.frame = CGRectMake(0, 0, Screen_Width, 51);
- [_contentView addSubview:vCode];
- UILabel *lblCode = [UILabel new];
- lblCode.frame = CGRectMake(20, 16, 90, 25);
- lblCode.text = @"安装单号:";
- lblCode.font = kTextFont;
- [vCode addSubview:lblCode];
- self.code = [UITextField new];
- self.code.enabled = NO;
- self.code.font = kTextFont;
- self.code.frame = CGRectMake(95, 16, 200, 25);
- [vCode addSubview:self.code];
-
- UIView *vSeparator = [UIView new];
- vSeparator.frame = CGRectMake(0,CGRectGetMaxY(vCode.frame), Screen_Width, 5);
- vSeparator.backgroundColor = LineBackgroundColor;
- [_contentView addSubview:vSeparator];
-
- UIView *vCustomerName = [UIView new];
- vCustomerName.frame = CGRectMake(0,CGRectGetMaxY(vSeparator.frame), Screen_Width, 31);
- [_contentView addSubview:vCustomerName];
- UILabel *lblCustomerName = [UILabel new];
- lblCustomerName.frame = CGRectMake(20, 3, 100, 25);
- lblCustomerName.text = @"客户名称:";
- lblCustomerName.font = kTextFont;
- [vCustomerName addSubview:lblCustomerName];
-
- self.lblCustomerNameValue = [UILabel new];
- self.lblCustomerNameValue.font = kTextFont;
- self.lblCustomerNameValue.frame = CGRectMake(95, 3,200, 25);
- [vCustomerName addSubview:self.lblCustomerNameValue];
-
- UIView *vReceivables = [UIView new];
- vReceivables.frame=CGRectMake(0,CGRectGetMaxY(vCustomerName.frame), Screen_Width, 31);
- [_contentView addSubview:vReceivables];
- UILabel *lblReceivables = [UILabel new];
- lblReceivables.font = kTextFont;
- lblReceivables.frame = CGRectMake(20, 3, 100, 25);
- lblReceivables.text = @"应收金额:";
- [vReceivables addSubview:lblReceivables];
-
- self.receivablesValue = [UILabel new];
- self.receivablesValue.font = kTextFont;
- self.receivablesValue.frame = CGRectMake(95, 3,200, 25);
- [vReceivables addSubview:self.receivablesValue];
-
- UIView *vServiceStaffName = [UIView new];
- vServiceStaffName.frame = CGRectMake(0,CGRectGetMaxY(vReceivables.frame), Screen_Width, 31);
- [_contentView addSubview:vServiceStaffName];
- UILabel *lblServiceStaffNameTitle = [UILabel new];
- lblServiceStaffNameTitle.frame = CGRectMake(20, 3, 100, 25);
- lblServiceStaffNameTitle.text = @"客服人员:";
- lblServiceStaffNameTitle.font = kTextFont;
- [vServiceStaffName addSubview:lblServiceStaffNameTitle];
-
- self.lblServiceStaffName = [UILabel new];
- self.lblServiceStaffName.font = kTextFont;
- self.lblServiceStaffName.frame = CGRectMake(95, 3,200, 25);
- [vServiceStaffName addSubview:self.lblServiceStaffName];
- UIView *vReceiptType = [UIView new];
- vReceiptType.frame=CGRectMake(0,CGRectGetMaxY(vServiceStaffName.frame), Screen_Width, 31);
- [_contentView addSubview:vReceiptType];
- UILabel *lblType = [UILabel new];
- lblType.frame = CGRectMake(20, 3, 100, 25);
- lblType.text = @"回执类型:";
- lblType.font = kTextFont;
- [vReceiptType addSubview:lblType];
- self.receiptType = [UIButton buttonWithType:UIButtonTypeCustom];
- self.receiptType.frame = CGRectMake(95, 3,200, 25);
- self.receiptType.titleLabel.font = kTextFont;
- [self.receiptType setTitle:@"请选择回执类型" forState:UIControlStateNormal];
- self.receiptType.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
- [self.receiptType setTitleColor:[UIColor colorWithWhite:0 alpha:1.0] forState:UIControlStateNormal];
- [self.receiptType addTarget:self action:@selector(btnTypeCilck) forControlEvents:UIControlEventTouchUpInside];
- [vReceiptType addSubview:self.receiptType];
-
- UIButton *btnReceiptTypeArrow = [UIButton buttonWithType:UIButtonTypeCustom];
- btnReceiptTypeArrow.frame = CGRectMake(Screen_Width-15,8,7,12);
-
- [btnReceiptTypeArrow setImage:[UIImage imageNamed:@"rightarrow"] forState:UIControlStateNormal];
- [vReceiptType addSubview:btnReceiptTypeArrow];
-
- //收款方式--------------
- UIView *vSettlementType = [UIView new];
- vSettlementType.frame = CGRectMake(0,CGRectGetMaxY(vReceiptType.frame), Screen_Width, 31);
- [_contentView addSubview:vSettlementType];
- UILabel *lblSettlementType = [UILabel new];
- lblSettlementType.frame = CGRectMake(20, 3, 100, 25);
- lblSettlementType.text = @"收款方式:";
- lblSettlementType.font = kTextFont;
- [vSettlementType addSubview:lblSettlementType];
- self.settlementType = [UIButton buttonWithType:UIButtonTypeCustom];
- self.settlementType.frame = CGRectMake(95, 3,200, 25);
- self.settlementType.titleLabel.font = kTextFont;
- [self.settlementType setTitle:@"请选择收款方式" forState:UIControlStateNormal];
- self.settlementType.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
- [self.settlementType setTitleColor:[UIColor colorWithWhite:0.5 alpha:0.5] forState:UIControlStateNormal];
- [self.settlementType addTarget:self action:@selector(settlementTypeCilck) forControlEvents:UIControlEventTouchUpInside];
- [vSettlementType addSubview:self.settlementType];
- UIButton *btnSettlementTypeArrow = [UIButton buttonWithType:UIButtonTypeCustom];
- btnSettlementTypeArrow.frame = CGRectMake(Screen_Width-15,8,7,12);
- [btnSettlementTypeArrow setImage:[UIImage imageNamed:@"rightarrow"] forState:UIControlStateNormal];
- [vSettlementType addSubview:btnSettlementTypeArrow];
-
- UIView *vReceiptAmount = [UIView new];
- vReceiptAmount.frame = CGRectMake(0,CGRectGetMaxY(vSettlementType.frame), Screen_Width, 31);
- [_contentView addSubview:vReceiptAmount];
- UILabel *lblreceiptamount = [UILabel new];
- lblreceiptamount.frame = CGRectMake(20, 3, 100, 25);
- lblreceiptamount.text = @"回执金额:";
- lblreceiptamount.font = kTextFont;
- [vReceiptAmount addSubview:lblreceiptamount];
- self.receiptAmount = [UITextField new];
- self.receiptAmount.placeholder = @"请输入回执金额";
- self.receiptAmount.keyboardType = UIKeyboardTypeDecimalPad;
- self.receiptAmount.font = kTextFont;
- self.receiptAmount.delegate = self;
- self.receiptAmount.enabled = NO;
- self.receiptAmount.frame = CGRectMake(95, 3,200, 25);
- [vReceiptAmount addSubview:self.receiptAmount];
- //清除按钮
- UILabel *lblMoney = [[UILabel alloc]init];
- lblMoney.frame = CGRectMake(Screen_Width-20, 3, 22, 22);
- lblMoney.font = kTextFont;
- lblMoney.text = @"元";
- [vReceiptAmount addSubview:lblMoney];
- //start日期--------------
- UIView *vReceiptDate = [UIView new];
- vReceiptDate.frame = CGRectMake(0,CGRectGetMaxY(vReceiptAmount.frame), Screen_Width, 31);
- [_contentView addSubview:vReceiptDate];
- UILabel *lblDelayDate = [UILabel new];
- lblDelayDate.frame = CGRectMake(20, 3, 100, 25);
- lblDelayDate.text = @"推迟日期:";
- lblDelayDate.font = kTextFont;
- [vReceiptDate addSubview:lblDelayDate];
- self.delayDate = [UIButton buttonWithType:UIButtonTypeCustom];
- self.delayDate.frame = CGRectMake(95, 3,200, 25);
- self.delayDate.titleLabel.font = kTextFont;
- self.delayDate.tag = 1002;
- [self.delayDate setTitle:@"请选择推迟日期" forState:UIControlStateNormal];
- self.delayDate.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
- [self.delayDate setTitleColor:[UIColor colorWithWhite:0.5 alpha:0.5] forState:UIControlStateNormal];
- [self.delayDate addTarget:self action:@selector(btnDateClick:) forControlEvents:UIControlEventTouchUpInside];
- [vReceiptDate addSubview:self.delayDate];
-
- UIButton *btnStrDateClear = [UIButton buttonWithType:UIButtonTypeCustom];
- btnStrDateClear.frame = CGRectMake(Screen_Width-15,8,7,12);
- btnStrDateClear.tag = 1003;
- [ btnStrDateClear setImage:[UIImage imageNamed:@"rightarrow"] forState:UIControlStateNormal];
- [vReceiptDate addSubview:btnStrDateClear];
- _separatorView = [UIView new];
- _separatorView.frame = CGRectMake(0,CGRectGetMaxY(vReceiptDate.frame), Screen_Width, 5);
- _separatorView.backgroundColor = LineBackgroundColor;
- [_contentView addSubview:_separatorView];
-
- vCustomTableView = [[UITableView alloc] initWithFrame:CGRectMake(0,CGRectGetMaxY(_separatorView.frame), self.view.frame.size.width, 0) style:UITableViewStylePlain];
- vCustomTableView.separatorStyle = NO;
- vCustomTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
- vCustomTableView.delegate = self;
- vCustomTableView.dataSource = self;
- [_contentView addSubview:vCustomTableView];
- vCustomTableView.hidden = YES;
- _btnImageHeight = 0;
- _positionHeight=0;
-
- /////////图片
- _vCollectionView = [UIView new];
- _vCollectionView.frame=CGRectMake(0,CGRectGetMaxY(vCustomTableView.frame), Screen_Width, 0);
- [_contentView addSubview:_vCollectionView];
- [self setupCollectionView];
-
- ////////位置view
- _positionImage = [UIView new];
- _positionImage.frame=CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, 0);
- [_contentView addSubview:_positionImage];
- //星号
- _ivPosition = [UIImageView new];
- _ivPosition.frame=CGRectMake(12, 18,9,12);
- [_positionImage addSubview:_ivPosition];
-
- _lblPosition = [UILabel new];
- _lblPosition.font=kTextFont;
- _lblPosition.frame=CGRectMake(32, 13, Screen_Width - 32, 20);
- [_positionImage addSubview:_lblPosition];
-
- //照相和相册 —————————
- _vImage = [UIView new];
- _vImage.frame = CGRectMake(0,CGRectGetMaxY(_positionImage.frame), Screen_Width, _btnImageHeight);
- [_contentView addSubview:_vImage];
- CGFloat width = (SCREENWIDTH-70)/2;
- CustomButton *btnPhoto = [[CustomButton alloc]initWithFrame:CGRectMake(width-90, 0, 70, 20) andImage:[UIImage imageNamed:@"icon_takephoto"] addText:@"照相" addImageWidth:15 addImageHeight:12];
- [btnPhoto addTarget:self action:@selector(selectCamera) forControlEvents:(UIControlEventTouchUpInside)];
- [_vImage addSubview:btnPhoto];
-
- CustomButton *btn = [[CustomButton alloc]initWithFrame:CGRectMake(width, 0,70 , 20) andImage:[UIImage imageNamed:@"icon_photo"] addText:@"相册" addImageWidth:14 addImageHeight:15];
- [btn addTarget:self action:@selector(selectPhotos) forControlEvents:(UIControlEventTouchUpInside)];
-
- [_vImage addSubview:btn];
-
- CustomButton *btnLoaction = [[CustomButton alloc]initWithFrame:CGRectMake(width+85, 0,100 , 20) andImage:[UIImage imageNamed:@"icon_position"] addText:@"所在位置" addImageWidth:13 addImageHeight:16];
- [btnLoaction addTarget:self action:@selector(newMap) forControlEvents:(UIControlEventTouchUpInside)];
- [_vImage addSubview:btnLoaction];
- _vImage.hidden=YES;
- //保存按钮
- UIImage *pic = [UIImage imageNamed:@"bt_datasave"];
- CGFloat h = (Screen_Width - 40) * pic.size.height / pic.size.width;
- _saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _saveBtn.frame = CGRectMake(20, Screen_Height - h - 5 - rectStatusHeight -10- rectNavHeight, Screen_Width - 40,h) ;
- [_saveBtn setBackgroundImage:pic forState:UIControlStateNormal];
- [_saveBtn addTarget:self action:@selector(saveData) forControlEvents:UIControlEventTouchUpInside];
- [self.view addSubview:_saveBtn];
-
- }
- /**
- 加载回执数据
- */
- - (void)loadData{
- [self startLoading];
- NSString *urlStr = ServerURL;
- NSMutableDictionary *dict = [NSMutableDictionary new];
- [dict setObject:@"GetInstallationForNewReceiptIphone" forKey:@"Action"];
- [dict setObject:kkAccountCode forKey:@"AccountCode"];
- [dict setObject:kkUserCode forKey:@"UserCode"];
- [dict setObject:kkUserPwd forKey:@"UserPassword"];
- [dict setObject:kkSessionKey forKey:@"SessionKey"];
- [dict setObject:self.code.text forKey:@"InstallationNo"];
- self.mDownManager = [[ASIDownManager alloc] init];
- self.mDownManager.delegate=self;
- self.mDownManager.onRequestSuccess=@selector(onRequestSuccess:);
- self.mDownManager.onRequestFail=@selector(onRequestFail:);
- [_mDownManager postHttpRequest:urlStr dic:dict path:nil fileName:nil];
- }
- /**
- 保存图片到沙盒
- @param currentImage <#currentImage description#>
- @param imageName <#imageName description#>
- @return <#return value description#>
- */
- - (DKCamera *) saveImage:(UIImage *)currentImage withName:(NSString *)imageName
- {
- if (!currentImage) {
- return nil;
- }
-
- NSDateFormatter *formater = [[NSDateFormatter alloc] init];
- formater.dateFormat = @"yyyyMMddHHmmss";
- NSString *currentTimeStr = [[formater stringFromDate:[NSDate date]] stringByAppendingFormat:@"_%d_.jpg" ,arc4random_uniform(10000)];
-
- NSData *imageData= [LeslieAsyncImageDownloader resetSizeOfImageData:currentImage maxSize:500];
- // 获取沙盒目录
- NSString *fullPath ;
- if([imageName isEqualToString:@""] || imageName == nil){
- fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:currentTimeStr];
- }
- else{
- fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:imageName];
- }
-
- // 将图片写入文件
- [imageData writeToFile:fullPath atomically:NO];
-
- UIImage *savedImage = [[UIImage alloc] initWithContentsOfFile:fullPath];
- DKCamera *camera = [[DKCamera alloc] init];
- camera.imagePath = fullPath;
- camera.thumbImage = savedImage;// [UIImage imageWithData:data];
- return camera;
- }
- /**
- 保存图片数据
- @return <#return value description#>
- */
- - (BOOL)savePicsManager{
-
- self.mDownManager = [[ASIDownManager alloc] init];
- self.mDownManager.delegate = self;
- //////////////上传图片
- NSString *urlStr = ServerURL;
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"SaveImg" forKey:@"Action"];
- [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"];
- [dict setObject:kkUserCode forKey:@"UserCode"];
- [dict setObject:kkUserPwd forKey:@"UserPassword"];
- [dict setObject:kkSessionKey forKey:@"SessionKey"];
- [self.imagePaths removeAllObjects];
- for (int i=0; i<self.assets.count; i++) {
- //图片转化成document的路径。。。。。。。。
- // 判断类型来获取Image
- DKPhotoAssets *asset = self.assets[i];
- DKCamera * c;
- if ([asset isKindOfClass:[DKPhotoAssets class]]) {
- c = [self saveImage:asset.originImage withName:nil];
-
- }
- else if ([asset isKindOfClass:[NSString class]]){
-
- }
- else if([asset isKindOfClass:[UIImage class]]){
-
- }
- else if ([asset isKindOfClass:[DKCamera class]]){
- c = (DKCamera *)asset;
- c = [self saveImage:c.thumbImage withName:nil];
- }
-
- //延时
- [NSThread sleepForTimeInterval:0.5];
-
- NSString* retValue= [_mDownManager syncPostHttpRequestUrl:urlStr dic:dict path:c.imagePath filename:nil fileType:@"image/jpeg"];
- if (retValue == nil || retValue.length == 0){
- [self cancel];
- [self showAlertViewText:@"上传图片失败"];
- self.navigationItem.rightBarButtonItem.enabled=YES;
- return NO;
- }
- NSDictionary *dicRetValue = [retValue JSONValue];
- if (dicRetValue && [dicRetValue isKindOfClass:[NSDictionary class]]) {
- int iStatus = [[dicRetValue objectForKey:@"Status"] intValue];
- if (iStatus == 0) {
- NSString * imgPath = [dicRetValue objectForKey:@"Result"];
- [self.imagePaths addObject:imgPath];
-
- }
- }
-
- }
-
- return YES;
-
- }
- /**
- 保存数据接口
- */
- - (void)saveDataManager{
- self.mDownManager = [[ASIDownManager alloc] init];
- self.mDownManager.delegate=self;
- self.mDownManager.onRequestSuccess = @selector(onLoadFinish:);
- self.mDownManager.onRequestFail = @selector(onLoadFail:);
- NSString *urlStr = ServerURL;
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"SaveInstallationReceiptIphone" forKey:@"Action"];
- [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"];
- [dict setObject:kkUserCode forKey:@"UserCode"];
- [dict setObject:kkUserPwd forKey:@"UserPassword"];
- [dict setObject:kkSessionKey forKey:@"SessionKey"];
- [dict setObject:kkLicenseCode forKey:@"LicenseCode"];
- [dict setObject:self.installationId forKey:@"InstallationID"];
- if (_lblPosition.text == nil) {
- [dict setObject:@"" forKey:@"Position"];
- }else{
- [dict setObject:_lblPosition.text forKey:@"Position"];
- }
-
- ///////主界面
- NSMutableDictionary *dicHead = [[NSMutableDictionary alloc] init];
- NSMutableArray *arrHead = [[NSMutableArray alloc]init];
- [dicHead setObject:self.sReceiptType forKeyedSubscript:@"ReceiptType"];
- [dicHead setObject:self.sDelayDate forKeyedSubscript:@"NextInstallDate"];
- [dicHead setObject:self.installationId forKeyedSubscript:@"InstallationID"];
- [dicHead setObject:self.customerId forKeyedSubscript:@"CustomerID"];
- [dicHead setObject:self.receiptAmount.text forKeyedSubscript:@"ReceivableSum"];
- [dicHead setObject:self.orgId forKeyedSubscript:@"BusinessOrganization"];
- [dicHead setObject:self.salesman forKeyedSubscript:@"SalesMan"];
- [arrHead addObject:dicHead];
- [dict setObject:[Util objectToJson:arrHead] forKey:@"ReceiptData"];
-
- NSMutableDictionary *dicDetails;
- NSMutableArray* arrDetails = [[NSMutableArray alloc]init];
- for (NewInstallIItemModel* m in self.model.detailsArr) {
- dicDetails = [[NSMutableDictionary alloc] init];
- [dicDetails setObject:m.detailId forKeyedSubscript:@"DetailID"];
- if(m.salesDetailId == nil){
- [dicDetails setObject:@"" forKeyedSubscript:@"SalesDetailID"];
- }else{
- [dicDetails setObject:m.salesDetailId forKeyedSubscript:@"SalesDetailID"];
- }
-
- [dicDetails setObject:self.installationId forKeyedSubscript:@"InstallationID"];
- if (m.payStyle == nil) {
- [dicDetails setObject:@"0" forKey:@"PaveStyle"];
- }else{
- [dicDetails setObject:m.payStyle forKey:@"PaveStyle"];
- }
- [dicDetails setObject:m.sourceFrom forKeyedSubscript:@"SourceFrom"];
- [dicDetails setObject:m.installQuantity forKeyedSubscript:@"InstallationQuantity"];
- [dicDetails setObject:m.receiptQuantity forKeyedSubscript:@"ReceiptQuantity"];
- [dicDetails setObject:m.receiptType forKeyedSubscript:@"ReceiptType"];
- if(m.remarks == nil){
- [dicDetails setObject:@"" forKeyedSubscript:@"ReceiptRemarks"];
- }else{
- [dicDetails setObject:m.remarks forKeyedSubscript:@"ReceiptRemarks"];
- }
-
- [arrDetails addObject:dicDetails];
- }
-
- [dict setObject:[Util objectToJson:arrDetails] forKey:@"ReceiptDetailData"];
-
- //////付款方式
- NSMutableDictionary *dicSettle = [[NSMutableDictionary alloc] init];
- NSMutableArray* arrSettle = [[NSMutableArray alloc]init];
- if (self.sSettlementType == nil || [self.sSettlementType isEqual:@""]) {
- [dict setObject:@"" forKey:@"ReceiptEarnestData"];
- }else{
- [dicSettle setObject:self.sSettlementType forKeyedSubscript:@"SettlementType"];
- [dicSettle setObject:self.sSettlementTypeName forKeyedSubscript:@"SettlementTypeName"];
- [dicSettle setObject:self.installationId forKeyedSubscript:@"InstallationID"];
- [dicSettle setObject:self.receiptAmount.text forKeyedSubscript:@"ReceivableSum"];
- [dicSettle setObject:self.sEarnestFee forKeyedSubscript:@"EarnestFee"];
- [dicSettle setObject:self.sExitsHandleFee forKeyedSubscript:@"ExistsHandlingFee"];
- [dicSettle setObject:self.sRemarks forKeyedSubscript:@"Remarks"];
- [arrSettle addObject:dicSettle];
- [dict setObject:[Util objectToJson:arrSettle] forKey:@"ReceiptEarnestData"];
- }
-
- if (self.imagePaths && self.imagePaths.count>0) {
- [dict setObject:[self.imagePaths componentsJoinedByString:@"," ] forKey:@"ImagePath"];
-
- }
-
- [self.mDownManager postHttpRequest:urlStr dic:dict files:nil];
- }
- /**
- 隐藏进度条
- */
- - (void)cancel {
- [self stopLoading];
- }
- /**
- 返回按钮
- */
- - (void)goBack
- {
- [self.navigationController popViewControllerAnimated:YES];
- if([self.refreshDelegate respondsToSelector:@selector(refreshFollowUpData)]){
- [self.refreshDelegate refreshFollowUpData];
- }
- }
- /**
- 保存前的校验
- @return <#return value description#>
- */
- - (BOOL)check{
- if(self.code.text == nil||[self.code.text isEqualToString:@""]){
- [self showAlertViewText:@"请输入或扫描单号"];
- return NO;
- }
- if(self.sCode == nil || [self.sCode isEqualToString:@""] )
- {
- [self showAlertViewText:@"请按回车加载数据!"];
- return NO;
- }
-
- if(self.receivablesValue != nil && [self.receivablesValue.text doubleValue] > 0 && self.receiptAmount.text.length == 0)
- {
- [self showAlertViewText:@"请输入回执金额"];
- return NO;
- }
- if(self.receiptAmount.text != nil||![self.receiptAmount.text isEqualToString:@""]){
- RegularExpression *regularExpr = [[RegularExpression alloc]init];
- bool receiptAmountCheck = [regularExpr AmountRegular:self.receiptAmount.text];
- if(!receiptAmountCheck){
- [self showAlertViewText:@"回执金额格式不正确"];
- self.receiptAmount.text = @"";
- return NO;
- }
- }
-
- if(self.receivablesValue != nil && [self.receivablesValue.text doubleValue] > 0
- && self.receiptAmount.text.length != 0 &&[self.receivablesValue.text doubleValue] < [self.receiptAmount.text doubleValue])
- {
- [self showAlertViewText:@"回执金额不能大于应收金额"];
- return NO;
- }
-
- if([self.sReceiptType isEqualToString:@"3"] && (self.sDelayDate == nil||[self.sDelayDate isEqualToString:@""]))
- {
- [self showAlertViewText:@"请选择推迟日期"];
- return NO;
- }
- NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
-
- [dateFormat setDateFormat:@"yyyy-MM-dd"];
- NSDate *date = [dateFormat dateFromString:self.sDelayDate];
- NSDate *lastDay = [NSDate dateWithTimeInterval:-24*60*60 sinceDate:[self getCurrentTime]];
- if([self.sReceiptType isEqualToString:@"3"] && [self compareOneDay:date withAnotherDay:lastDay] != 1){
- [self showAlertViewText:@"推迟日期不能小于当前日期"];
- return NO;
- }
- for (NewInstallIItemModel *m in self.model.detailsArr) {
- if(m.receiptQuantity == nil || m.receiptQuantity.length == 0)
- {
- [self showAlertViewText:@"请输入回执数量"];
- return NO;
- }
- if(m.completeQuantity == nil || m.completeQuantity.length == 0)
- {
- m.completeQuantity = @"0";
- }
- if(m.installQuantity == nil || m.installQuantity.length == 0)
- {
- m.installQuantity = @"0";
- }
- if([m.receiptQuantity doubleValue] > [MAX_COUNT doubleValue])
- {
- [self showAlertViewText:[NSString stringWithFormat:@"回执数量的最大值为%@",MAX_COUNT ]];
- return NO;
- }
- if([m.receiptQuantity doubleValue] > [m.installQuantity doubleValue]-[m.completeQuantity doubleValue])
- {
- [self showAlertViewText:@"回执数量不能大于安装数量减去完成数量"];
- return NO;
- }
- //0为传过来的是@“”;20211110
- // if(m.salesDetailType != 2 || m.salesDetailType == 0){
- // if([m.outQuantity doubleValue] <= 0){
- // [self showAlertViewText:@"出库数量不能小于等于0"];
- // return NO;
- // }
- // }
- //
- if([_sReceiptType intValue] == 1 && [m.receiptType intValue] == 5){
- if([m.receiptQuantity doubleValue] < 0){
- [self showAlertViewText:@"回执数量不能小于0"];
- return NO;
- }
- double min;
- if([m.installQuantity doubleValue]>[m.outQuantity doubleValue]){
- min =[m.outQuantity doubleValue];
- }else{
- min = [m.installQuantity doubleValue];
- }
- if([m.receiptQuantity doubleValue]>= min){
- [self showAlertViewText:@"回执数量不能大于或等于(安装数量或出库数量的最小值)"];
- return NO;
- }
- if([m.receiptQuantity doubleValue] >= [m.maxReceiptQuantity doubleValue]){
- [self showAlertViewText:@"回执数量不能大于或等于最大允许回执数量"];
- return NO;
- }
- }
- }
-
- return YES;
- }
- /**
- 保存数据
- */
- - (void)saveData{
- [self.view endEditing:YES];
-
- if (![self check]) {
- return;
- }
-
- self.navigationItem.rightBarButtonItem.enabled=NO;
- [self startLoading];
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
- if ([self savePicsManager]) {
- [self saveDataManager];
- }
- });
-
-
- }
- /**
- 收款方式的画面跳转
- */
- - (void)settlementTypeCilck{
- if (self.sCode == nil || self.sCode.length == 0 |
- self.receivablesValue.text == nil || [self.receivablesValue.text doubleValue] == 0) {
- return;
- }
- [self.view endEditing:YES];
- self.hidesBottomBarWhenPushed = YES;
- SettlementTypeVC *tc = [[SettlementTypeVC alloc] init];
- tc.sDelegate = self;
- [self.navigationController pushViewController:tc animated:YES];
- self.hidesBottomBarWhenPushed=NO;
- }
- /**
- 单据回执类型画面跳转
- */
- - (void)btnTypeCilck{
- if (self.sCode == nil || self.sCode.length == 0) {
- return;
- }
- [self.view endEditing:YES];
- self.hidesBottomBarWhenPushed=YES;
- StatusInfoTextVC *tc = [[StatusInfoTextVC alloc] init];
- tc.sdelegate = self;
- [tc.arrFilter addObjectsFromArray:_arrayStatus];
- [self.navigationController pushViewController:tc animated:YES];
- self.hidesBottomBarWhenPushed=NO;
-
- }
- /**
- 清空画面
- */
- - (void)clearData{
- self.code.enabled=YES;
- self.code.text = @"";
- self.sCode = @"";
- self.receiptAmount.text = @"";
- self.lblCustomerNameValue.text = @"";
- self.receivablesValue.text = @"";
- self.lblServiceStaffName.text = @"";
- self.sDelayDate = @"";
- [self.delayDate setTitle:@"请选择推迟日期" forState:UIControlStateNormal];
- self.sReceiptType = @"";
- [self.receiptType setTitle:@"请选择回执类型" forState:UIControlStateNormal];
- self.sSettlementType = @"";
- self.sSettlementTypeName = @"";
- [self.settlementType setTitle:@"请选择收款方式" forState:UIControlStateNormal];
- _lblPosition.text = @"";
- _positionImage.hidden=YES;
- _vImage.hidden=YES;
- _btnImageHeight=0;
- _positionHeight=0;
- [self.imagePaths removeAllObjects];
- [self.model.detailsArr removeAllObjects];
- [self.assets removeAllObjects];
- [self.vCustomTableView reloadData];
- [self.collectionView reloadData];
- }
- /**
- 清空单个控件数据
- @param sender <#sender description#>
- */
- - (void)clearData:(id)sender{
- UIButton *btn=sender;
- [self.view endEditing:YES];
- switch (btn.tag) {
- case 1001:
- {
- self.code.text = @"";
- }
- break;
-
- case 1003:
- {
- self.sDelayDate = @"";
-
- [self.delayDate setTitle:@"请选择回执开始日期" forState:UIControlStateNormal];
- }
- break;
-
-
- default:
- break;
- }
-
-
- }
- /**
- 日历点击事件
- @param sender <#sender description#>
- */
- - (void)btnDateClick:(id)sender{
- UIButton *btn=sender;
- [self.view endEditing:YES];
- if (self.sCode == nil || self.sCode.length == 0 || ![self.sReceiptType isEqualToString: @"3"]) {
- return;
- }
- __weak typeof(self) weakself=self;
- switch (btn.tag) {
- case 1002:
- {
- _dealDatePicker = [BRDatePickerView PickerAlertWithTitle:@""];
- [_dealDatePicker configureSelectionBlock:^(NSString *date){
- self.sDelayDate = date;
- } andCompletionBlock:^(void){
- [weakself.delayDate setTitle:self.sDelayDate forState:UIControlStateNormal];
- } andCancelBlock:^(void){
- self.sDelayDate = weakself.delayDate.titleLabel.text;
- if([self.sDelayDate isEqualToString:@"请选择回执开始日期"]||[self.sDelayDate isEqualToString:@"请选择推迟日期"]){
- self.sDelayDate = @"";
- }
- }];
- [_dealDatePicker show];
- }
- break;
- default:
- break;
- }
-
- }
- /**
- 隐藏键盘
- */
- - (void)hideKey
- {
- [self.view endEditing:YES];
- }
- /**
- 文本框的长度限制 实现监听方法
- @param sender <#sender description#>
- */
- - (void)onFocusPeopleEditingChanged:(NSNotification *)sender
- {
-
- UITextField *textField = (UITextField *)sender.object;
- NSString *toBeString = textField.text;
- NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage];
- int kMaxLength = 0;
- //费用
- if ([textField isEqual:self.receiptAmount ]) {
- kMaxLength = 17;
-
- if (toBeString != nil && toBeString.length>0 && [toBeString floatValue]-MAXIMUM_QUANTITY>0.0000000001f) {
- textField.text = MAX_COUNT;
- toBeString = MAX_COUNT;
- }
- }
-
- if ([lang isEqualToString:@"zh-Hans"]) {
- UITextRange *selectedRange = [textField markedTextRange];
- UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
-
- if (!position) {
- if (toBeString.length > kMaxLength) {
- textField.text = [toBeString substringToIndex:kMaxLength];
- }
- }
- }else{
- if (toBeString.length > kMaxLength) {
- textField.text = [toBeString substringToIndex:kMaxLength];
- }
- }
- }
- /**
- 加载数据函数
- @param code <#code description#>
- */
- - (void)reloadDataWithOnlyCode:(NSString *)code
- {
- self.code.text = code;
- self.sCode = code;
- self.receiptAmount.enabled = YES;
- double delayInSeconds = 0.5;
- dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
- dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
- //刷新
- [self loadData];
- });
- }
- /**
- 详细信息中回执类型点击
- @param cell <#cell description#>
- */
- - (void)btnGoReceiptType:(NewInstallDetailListsCell *)cell{
- if (self.model.isDelay) {
- return;
- }
- self.hidesBottomBarWhenPushed=YES;
- self.cellIndex = cell.cellIndex;
- NewInstallIItemModel *model = self.model.detailsArr[self.cellIndex];
- if([model.sourceFrom intValue] == 1||[model.sourceFrom intValue] == 0){
- [self initStatus2:YES];
- }else{
- [self initStatus2:NO];
- }
- StatusInfoTextVC *tc = [[StatusInfoTextVC alloc] init];
- tc.sdelegate = self;
- [tc.arrFilter addObjectsFromArray: _arrayReceiptType];
- [self.navigationController pushViewController:tc animated:YES];
- self.hidesBottomBarWhenPushed = NO;
-
- }
- /**
- 获取照片数
- @return <#return value description#>
- */
- - (NSInteger)cameraCount{
- NSInteger count = 0;
- for (int i = 0; i < self.assets.count; i++) {
- id asset = self.assets[i];
- if ([asset isKindOfClass:[DKCamera class]]) {
- count++;
- }
- }
- return count;
- }
- /**
- 拍照事件
- */
- - (void)selectCamera{
- DKCameraViewController *cameraVc = [[DKCameraViewController alloc] init];
- __weak typeof(self) weakSelf = self;
- // 多选相册+相机多拍 回调
- [cameraVc startCameraOrPhotoFileWithViewController:self complate:^(NSArray *object) {
- // 选择完照片、拍照完回调
- [object enumerateObjectsUsingBlock:^(id asset, NSUInteger idx, BOOL *stop) {
- if(weakSelf.assets.count < 9){
- if ([asset isKindOfClass:[DKCamera class]]) {
- [weakSelf.assets addObject:asset];
- }else{
- [weakSelf.assets addObject:asset];
- }
-
- }else{
- [self showAlertViewText:@"最多只能选择9张图片"];
- }
-
- }];
- [weakSelf.collectionView reloadData];
- }];
-
- }
- /**
- 获取table view的高度
- @param dataArray <#dataArray description#>
- @return <#return value description#>
- */
- - (CGFloat)getDataViewHeight:(NSArray *)dataArray {
- // 上下间隔已经在frame上做了
- NSInteger row = dataArray.count;
- return (row * 262);
- }
- /**
- 选择相册事件
- */
- - (void)selectPhotos {
- // 创建控制器
- DKPhotoPickerViewController *pickerVc = [[DKPhotoPickerViewController alloc] init];
- // 默认显示相册里面的内容SavePhotos
- pickerVc.status = PickerViewShowStatusCameraRoll;
- pickerVc.selectPickers = self.assets;
- // 最多能选9张图片
- pickerVc.minCount = 9;
- pickerVc.cameraCount = [self cameraCount];
- pickerVc.delegate = self;
- [pickerVc show];
- }
- /**
- 打开地图界面
- 关宏厚删除高德地图
- 2018-11-14
- */
- - (void)newMap{
- // self.hidesBottomBarWhenPushed = YES;
- // MapViewController *mc = [[MapViewController alloc] init];
- // mc.pDelegate = self;
- // [self.navigationController pushViewController:mc animated:YES];
- }
- #pragma mark -得到当前时间
- /**
- 获得当前日期
-
- @return <#return value description#>
- */
- - (NSDate *)getCurrentTime{
- NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
- [formatter setDateFormat:@"yyyy-MM-dd"];
- NSString *dateTime=[formatter stringFromDate:[NSDate date]];
- NSDate *date = [formatter dateFromString:dateTime];
- return date;
- }
- /**
- 比较时间
-
- @param oneDay <#oneDay description#>
- @param anotherDay <#anotherDay description#>
- @return <#return value description#>
- */
- - (int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay
- {
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- [dateFormatter setDateFormat:@"dd-MM-yyyy-HHmmss"];
- NSString *oneDayStr = [dateFormatter stringFromDate:oneDay];
- NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay];
- NSDate *dateA = [dateFormatter dateFromString:oneDayStr];
- NSDate *dateB = [dateFormatter dateFromString:anotherDayStr];
- NSComparisonResult result = [dateA compare:dateB];
- NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);
- if (result == NSOrderedDescending) {
- //NSLog(@"Date1 is in the future");
- return 1;
- }
- else if (result == NSOrderedAscending){
- //NSLog(@"Date1 is in the past");
- return -1;
- }
- //NSLog(@"Both dates are the same");
- return 0;
-
- }
- @end
|