Пример #1
0
        public IActionResult RepairGrid(RepairSearchModel model)
        {
            model = InitializeRepairGridModel(model);
            var result = _propertyFacadeApiClient.GetRepairs(model).Result;

            return(PartialView(result));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
            }
        }
Пример #5
0
        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));
            }
        }
Пример #6
0
 private RepairSearchModel InitializeRepairGridModel(RepairSearchModel model)
 {
     model = InitializeSearchModel(model, "RepairGrid", "RepairId", "Desc");
     return(model);
 }
Пример #7
0
 public IActionResult Repair(RepairSearchModel model)
 {
     model = InitializeRepairGridModel(model);
     return(PartialView(model));
 }
Пример #8
0
 public async Task <RepairSearchModel> GetRepairs(RepairSearchModel model)
 {
     return(await _repairApiClient.GetRepairs(model));
 }