public IActionResult RepairGrid(RepairSearchModel model) { model = InitializeRepairGridModel(model); var result = _propertyFacadeApiClient.GetRepairs(model).Result; return(PartialView(result)); }
public async Task <RepairSearchModel> GetRepairs(RepairSearchModel model) { var url = LogisticsApiUri + "/Repair/GetRepairs?" + GetFilterStringForRepair(model) + "&$inlinecount=allpages"; var result = await GetOdataResultFromApi(url); var searchResultCount = 0; if (result.Count != null) { int.TryParse(result.Count.ToString(), out searchResultCount); } model.TotalRows = searchResultCount; model.RepairSearchResult.Clear(); model.RepairSearchResult.AddRange(result.Items.Select(item => JsonConvert.DeserializeObject <RepairDto>(item.ToString()))); return(model); }
private string GetFilterStringForRepair(RepairSearchModel model) { var filterString = string.Empty; if (model != null) { if (!string.IsNullOrWhiteSpace(model.VisitStatus)) { if (string.IsNullOrWhiteSpace(filterString)) { filterString = ODataFilterConstant.Filter + $"VisitStatus eq '{model.VisitStatus}'"; } else { filterString += $" and VisitStatus eq '{model.VisitStatus}'"; } } if (!string.IsNullOrWhiteSpace(model.RepairTrade)) { if (string.IsNullOrWhiteSpace(filterString)) { filterString = ODataFilterConstant.Filter + $"RepairTrade eq '{model.RepairTrade}'"; } else { filterString += $" and RepairTrade eq '{model.RepairTrade}'"; } } if (!string.IsNullOrWhiteSpace(model.PropertyReference)) { if (string.IsNullOrWhiteSpace(filterString)) { filterString = ODataFilterConstant.Filter + $"PropertyReference eq '{model.PropertyReference}'"; } else { filterString += $" or PropertyReference eq '{model.PropertyReference}'"; } } else if (!string.IsNullOrWhiteSpace(model.OperativeCode)) { if (string.IsNullOrWhiteSpace(filterString)) { filterString = ODataFilterConstant.Filter + $"OperativeCode eq '{model.OperativeCode}'"; } else { filterString += $" or OperativeCode eq '{model.OperativeCode}'"; } } else if (!string.IsNullOrWhiteSpace(model.FilterText)) { int id; int.TryParse(model.FilterText, out id); if (id > 0) { if (string.IsNullOrWhiteSpace(filterString)) { filterString = ODataFilterConstant.Filter + $"(RepairId eq {id}"; } else { filterString += $" and (RepairId eq {id}"; } filterString += $" or RepairLineId eq {id}"; filterString += $" or VisitId eq {id} )"; } else { if (string.IsNullOrWhiteSpace(filterString)) { filterString = ODataFilterConstant.Filter + $"substringof('{model.FilterText}',OperativeName) eq true"; } else { filterString += $" or substringof('{model.FilterText}',OperativeName) eq true"; } filterString += $" or substringof('{model.FilterText}',RepairDescription) eq true"; filterString += $" or substringof('{model.FilterText}',AccessNotes) eq true"; } } AddPageSizeNumberAndSortingInFilterString(model, ref filterString); } return(filterString); }
public HttpResponseMessage search_list(RepairSearchModel search) { var loadUser = new loadUser(); var sapSaleOrder = new sapSaleOrder(); var sapCustomer = new sapCustomer(); var sapBilling = new sapBilling(); var BranchService = new sapBranch(); search.fetchdata = search.fetchdata == null ? new fetchdata() : search.fetchdata; var result = new List <RepairHeader>(); var rh = new RepairHeader(); ICollection <RepairItems> ri = new List <RepairItems>(); try { Expression <Func <afs_repair_header, bool> > RepairDateFromExpression; if (!string.IsNullOrEmpty(search.repair_date_from)) { var datefrom = DateTime.ParseExact(search.repair_date_from, "dd/MM/yyyy", null); //RepairDateFromExpression = gto => gto.REPAIR_DATE.Value.ToString("dd/MM/yyyy").CompareTo(search.repair_date_from) >= 0; RepairDateFromExpression = gto => gto.REPAIR_DATE >= datefrom; } else { RepairDateFromExpression = gto => 1 == 1; } Expression <Func <afs_repair_header, bool> > RepairDateToExpression; if (!string.IsNullOrEmpty(search.repair_date_to)) { var dateto = DateTime.ParseExact(search.repair_date_to + " 23:59:59", "dd/MM/yyyy HH:mm:ss", null); //RepairDateToExpression = gto => gto.REPAIR_DATE.Value.ToString("dd/MM/yyyy").CompareTo(search.repair_date_to) <= 0; RepairDateToExpression = gto => gto.REPAIR_DATE <= dateto; } else { RepairDateToExpression = gto => 1 == 1; } Expression <Func <afs_repair_header, bool> > SoldToNameExpression; if (!string.IsNullOrEmpty(search.soldto_name)) { SoldToNameExpression = gto => gto.SOLDTO_NAME.Contains(search.soldto_name); } else { SoldToNameExpression = gto => 1 == 1; } Expression <Func <afs_repair_header, bool> > SoNumberExpression; if (!string.IsNullOrEmpty(search.sonumber)) { SoNumberExpression = gto => gto.SO_NUMBER == search.sonumber; } else { SoNumberExpression = gto => 1 == 1; } Expression <Func <afs_repair_header, bool> > RepairStatusExpression; if (search.status != "ALL" && !string.IsNullOrEmpty(search.status)) { RepairStatusExpression = gto => gto.STATUS == search.status; } else { RepairStatusExpression = gto => 1 == 1; } Expression <Func <afs_repair_header, bool> > RepairCodeExpression; if (!string.IsNullOrEmpty(search.repair_code)) { RepairCodeExpression = gto => gto.REPAIR_CODE == search.repair_code; } else { RepairCodeExpression = gto => 1 == 1; } using (var context = new SAPContext()) { var repair_headers = context.afs_repair_header .Where(RepairCodeExpression) .Where(RepairDateFromExpression) .Where(RepairDateToExpression) .Where(SoNumberExpression) .Where(SoldToNameExpression) .Where(RepairStatusExpression) .ToList(); foreach (var item in repair_headers) { var vbak = sapSaleOrder.GetVBAK(client, item.SO_NUMBER); rh = new RepairHeader(); rh.repair_code = item.REPAIR_CODE; rh.repair_date = item.REPAIR_DATE; rh.so_number = item.SO_NUMBER; rh.soldto_code = item.SOLDTO_CODE; rh.soldto_name = item.SOLDTO_NAME; rh.saleorg = vbak.VKORG; rh.distchannel = vbak.VTWEG; rh.division = vbak.SPART; rh.salegroup = vbak.VKGRP; rh.saleoffice = vbak.VKBUR; var branch = BranchService.GetZBRANCH(client, rh.saleoffice); if (branch != null) { rh.saleoffice_name = branch.HOST_DESC; } //Get Partner Customer var vbpa = sapSaleOrder.GetVBPA(vbak.MANDT, vbak.VBELN, "000000"); //Get Sale Rep name var partner = vbpa.Where(w => w.PARVW == "ZR").FirstOrDefault(); rh.salerep_code = partner.KUNNR; var salerep = sapCustomer.GetKNA1(partner.MANDT, partner.KUNNR); rh.salerep_name = salerep.NAME1 + salerep.NAME2; rh.status = item.STATUS; rh.transport_amount = item.TRANSPORT_AMOUNT; rh.contact_tel = item.CONTACT_TEL; rh.remark = item.REMARK; rh.created_by = item.CREATED_BY; var ud = loadUser.GetUser(rh.created_by); if (ud != null) { rh.created_name = ud.firstname + ' ' + ud.lastname; } ; rh.created_date = item.CREATED_DATE; rh.update_by = item.UPDATE_BY; ud = loadUser.GetUser(rh.update_by); if (ud != null) { rh.update_name = ud.firstname + ' ' + ud.lastname; } ; rh.update_date = item.UPDATE_DATE; result.Add(rh); } } return(result.Count() == 0 ? Request.CreateErrorResponse(HttpStatusCode.NotFound, "Repair data not found") : Request.CreateResponse(HttpStatusCode.OK, result)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.InnerException.Message)); } }
public HttpResponseMessage PostSearh(RepairSearchModel search) { var sapSaleOrder = new sapSaleOrder(); var sapCustomer = new sapCustomer(); var sapBilling = new sapBilling(); search.fetchdata = search.fetchdata == null ? new fetchdata() : search.fetchdata; var result = new RepairForm(); var rh = new RepairHeader(); ICollection <RepairItems> ri = new List <RepairItems>(); try { var vbak = sapSaleOrder.GetVBAK(client, search.sonumber); if (vbak == null || vbak.VBTYP != "C") { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "VBAK not found")); } ; rh.so_number = vbak.VBELN; rh.so_date = DateTime.ParseExact(vbak.ERDAT, "yyyyMMdd", null); rh.soldto_code = vbak.KUNNR; //Get Customer Detail var kna1 = sapCustomer.GetKNA1(vbak.MANDT, vbak.KUNNR); rh.soldto_name = kna1.NAME1 + kna1.NAME2; //Get Customer Address var adrc = sapCustomer.GetADRC(kna1.MANDT, kna1.ADRNR); rh.soldto_address = sapCustomer.ConcateAddress(adrc.Where(w => w.NATION == " ").FirstOrDefault()); //Get Partner Customer var vbpa = sapSaleOrder.GetVBPA(vbak.MANDT, vbak.VBELN, "000000"); //Ship-To Address var partner = vbpa.Where(w => w.PARVW == "WE").FirstOrDefault(); rh.shipto_code = partner.KUNNR; kna1 = sapCustomer.GetKNA1(vbak.MANDT, partner.KUNNR); adrc = sapCustomer.GetADRC(kna1.MANDT, kna1.ADRNR); rh.shipto_address = sapCustomer.ConcateAddress(adrc.Where(w => w.NATION == " ").FirstOrDefault()); //Get Sale Rep name partner = vbpa.Where(w => w.PARVW == "ZR").FirstOrDefault(); rh.salerep_code = partner.KUNNR; var salerep = sapCustomer.GetKNA1(partner.MANDT, partner.KUNNR); rh.salerep_name = salerep.NAME1 + salerep.NAME2; //Get Sale Order item var vbap = sapSaleOrder.GetVBAP(vbak.MANDT, vbak.VBELN); foreach (var item in vbap) { ri.Add(new RepairItems { select = false, so_number = item.VBELN, so_item = item.POSNR, article_number = item.MATNR, article_name = item.ARKTX, qty = item.KWMENG }); } //Get Billing var vbrks = sapBilling.GetVBRKbySONumber(vbak.MANDT, vbak.VBELN); if (vbrks == null || vbrks.Count == 0) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Billing not found")); } var vbrk = vbrks.OrderBy(o => o.FKDAT).FirstOrDefault(); rh.billing_date = DateTime.ParseExact(vbrk.FKDAT, "yyyyMMdd", null); result.header = rh; result.items = ri; return(result.header == null || result.items == null ? Request.CreateErrorResponse(HttpStatusCode.NotFound, "Sale Order not found") : Request.CreateResponse(HttpStatusCode.OK, result)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
private RepairSearchModel InitializeRepairGridModel(RepairSearchModel model) { model = InitializeSearchModel(model, "RepairGrid", "RepairId", "Desc"); return(model); }
public IActionResult Repair(RepairSearchModel model) { model = InitializeRepairGridModel(model); return(PartialView(model)); }
public async Task <RepairSearchModel> GetRepairs(RepairSearchModel model) { return(await _repairApiClient.GetRepairs(model)); }