示例#1
0
        public PurchaseOrderModels GetDetail(string id)
        {
            try
            {
                PurchaseOrderModels model = _factory.GetDetail(id, listCompanyId);
                //model.GetListSupplierFromCompnay(listCompanyId);
                var ListSupplierInfo = GetListSuppliers(model.StoreID);
                var ListSupplier     = new SelectList(ListSupplierInfo, "Id", "Name");
                model.ListSupplier = ListSupplier.ToList();
                //--------------
                bool IsIntegrate = false;
                var  objStore    = CurrentUser.listStore.Where(x => x.ID.Equals(model.StoreID)).FirstOrDefault();
                if (objStore != null && !string.IsNullOrEmpty(objStore.ThirdParty.ApiURL))
                {
                    IsIntegrate = objStore.ThirdParty.IsIntegrate;
                }

                List <SelectListItem> listItemTax = new List <SelectListItem>();
                if (IsIntegrate)
                {
                    model.StoreIntegrate = true;
                    //---------------------
                    var lstTaxV2 = _factoryTax.GetListTaxV2(model.StoreID, null, CurrentUser.ListOrganizationId);
                    lstTaxV2 = lstTaxV2.Where(x => x.IsActive).ToList();
                    string             Symbol   = GetSymbol(model.StoreID);
                    List <POTaxModels> listItem = new List <POTaxModels>();
                    int OffSet = 0;
                    lstTaxV2.ForEach(x =>
                    {
                        var amount = model.ListItem.Where(z => z.TaxId.Equals(x.ID)).Sum(z => z.TaxAmount);
                        listItem.Add(new POTaxModels
                        {
                            ID       = x.ID,
                            Name     = x.Name,
                            Percent  = x.Percent,
                            TaxType  = x.TaxType,
                            OffSet   = OffSet++,
                            Symbol   = Symbol,
                            sTaxType = (x.TaxType == (int)Commons.ETax.Inclusive) ? "Inclusive" : "Exclusive",
                            Amount   = Math.Round(amount, 2),
                            IsShow   = amount > 0 ? true : false
                        });

                        //----for Dropdownlist
                        listItemTax.Add(new SelectListItem
                        {
                            Text  = x.Name,
                            Value = x.ID,
                        });
                    });
                    model.ListItemTax = listItem;
                    model.TaxAmount   = Math.Round(model.ListItemTax.Sum(z => z.Amount), 2);
                }
                //--------
                model.ListItem.ForEach(x =>
                {
                    if (!string.IsNullOrEmpty(x.TaxId))
                    {
                        var objTax = model.ListItemTax.Where(z => z.ID.Equals(x.TaxId)).FirstOrDefault();
                        x.TaxName  = objTax != null ? objTax.Name : string.Empty;
                        x.TaxType  = objTax != null ? objTax.TaxType : 0;
                    }
                    //-----
                    x.ListTax   = listItemTax;
                    x.IsShowTax = IsIntegrate;
                });

                return(model);
            }
            catch (Exception ex)
            {
                _logger.Error("PurchaseOrderDetail: " + ex);
                return(null);
            }
        }