コード例 #1
0
        public ActionResult Edit1(int?id, int?idd)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SupplierCategory cat         = db.SupplierCategories.Find(idd);
            SupplierItem     itemsDetail = db.SupplierItems.Find(id);

            Session["imagepath"] = itemsDetail.Image;
            itemsDetail.CatId    = cat.CatId;
            if (itemsDetail == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CatId = new SelectList(db.SupplierCategories, "CatId", "Name", itemsDetail.CatId);
            return(View(itemsDetail));
        }
コード例 #2
0
        public void updateSupplierItem(string itemID, List <string> supList, List <decimal> priceList)
        {
            List <SupplierItem> supItemList = m.SupplierItems.Where(x => x.itemID == itemID).ToList();
            SupplierItem        i_1         = supItemList.Where(x => x.preferenceRank == "1").First();
            SupplierItem        i_2         = supItemList.Where(x => x.preferenceRank == "2").First();
            SupplierItem        i_3         = supItemList.Where(x => x.preferenceRank == "3").First();

            i_1.supplierID = supList[0];
            i_1.price      = priceList[0];

            i_2.supplierID = supList[1];
            i_2.price      = priceList[1];

            i_3.supplierID = supList[2];
            i_3.price      = priceList[2];

            m.SaveChanges();
        }
コード例 #3
0
        protected void OnRowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow row        = GridView_reorderList.Rows[e.RowIndex];
            string      itemID     = (GridView_reorderList.DataKeys[e.RowIndex].Values[0]).ToString();
            string      supplierID = (row.FindControl("ddlSuppliers") as DropDownList).SelectedItem.Value;
            int         orderQty   = Int32.Parse((row.FindControl("txtOrderQty") as TextBox).Text);

            if (orderQty < itemDAO.getReorderQtyByitemID(itemID) && orderQty != 0)
            {
                GridView_reorderList.EditIndex = -1;
                BindGrid();
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Please order more than reorder quantity!')", true);
                return;
            }

            List <ReorderItem> reorderList = new List <ReorderItem>();

            reorderList = (List <ReorderItem>)Session["reorderList"];

            SupplierItem SupItem = new SupplierItem();
            Item         item    = new Item();

            SupItem = supItemDAO.findSupplierItemByItemIDAndSupplier(itemID, supplierID);
            item    = itemDAO.getItemByID(itemID);
            foreach (ReorderItem rItem in reorderList)
            {
                if (rItem.ItemID == itemID)
                {
                    rItem.ItemID        = itemID;
                    rItem.OrderQty      = orderQty;
                    rItem.SupplierID    = supplierID;
                    rItem.ReorderLevel  = item.reorderLevel;
                    rItem.ReorderQty    = item.reorderQty;
                    rItem.Description   = item.description;
                    rItem.Price         = SupItem.price;
                    rItem.UnitOfMeasure = item.unitOfMeasure;
                    rItem.QtyOnHand     = item.qtyOnHand;
                }
            }

            Session["reorderList"]         = reorderList;
            GridView_reorderList.EditIndex = -1;
            BindGrid();
        }
コード例 #4
0
        public ActionResult Create1(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SupplierCategory cat = db.SupplierCategories.Find(id);
            SupplierItem     it  = new SupplierItem();

            it.CatId = cat.CatId;
            if (cat == null)
            {
                return(HttpNotFound());
            }


            return(View(it));
        }
コード例 #5
0
        public ActionResult Create1([Bind(Include = "CateId,Name,Description,Price,ImageFile")] SupplierItem supplierItem)
        {
            if (ModelState.IsValid)
            {
                string fileName  = Path.GetFileNameWithoutExtension(supplierItem.ImageFile.FileName);
                string extension = Path.GetExtension(supplierItem.ImageFile.FileName);
                fileName           = fileName + DateTime.Now.ToString("yymmssfff") + extension;
                supplierItem.Image = "~/Images/" + fileName;
                Console.WriteLine(extension);
                //var supportedType = new[] { "jpg", "jpeg", "png" };
                fileName = Path.Combine(Server.MapPath("~/Images/"), fileName);
                supplierItem.ImageFile.SaveAs(fileName);

                db.SupplierItems.Add(supplierItem);
                db.SaveChanges();
                return(RedirectToAction("ViewItems", new { id = supplierItem.CatId }));
            }

            ViewBag.CategoryId = new SelectList(db.SupplierCategories, "CatId", "Name", supplierItem.CatId);
            return(View(supplierItem));
        }
コード例 #6
0
ファイル: PubHelper.cs プロジェクト: HaiBoHan/HBHDaYunsy
        public static SalePriceLine GetSalePriceList(SupplierItem supplierItem)
        {
            string opath = string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate ", Context.LoginOrg.ID.ToString(), supplierItem.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString());
            //if (Context.LoginOrg.Code == Const_OrgCode_Electric)
            //{
            //    opath += string.Format(" and SalePriceList.Code='{0}'", Const_ElectricPartPriceListCode);
            //}
            //else if (Context.LoginOrg.Code == Const_OrgCode_Hubei)
            //{
            //    //opath += string.Format(" and SalePriceList.Code={0}", Const_SalePartPriceListCode);
            //}

            string pricelistCode = GetPartPriceListCode();

            if (pricelistCode.IsNotNullOrWhiteSpace())
            {
                opath += string.Format(" and SalePriceList.Code='{0}'", pricelistCode);
            }

            return(SalePriceLine.Finder.Find(opath));
        }
コード例 #7
0
        public List<SupplierItem> GetItemsByItemId(string ItmeID)
        {
            SqlConnection conn = new SqlConnection();
            String companyNote = String.Empty;
            var list = new List<SupplierItem>();

            conn.ConnectionString = CONNSTRING;

            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = @"SELECT IT.ItemID, IT.COG, IT.Description, 
       IT.ManagerUnitPrice,IT.RepUnitPrice,IT.SupplierItemCode FROM dbo.Items IT Where  IT.ItemID=@itmeID";
                cmd.Parameters.AddWithValue("@itmeID", ItmeID);
                conn.Open();

                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        var obj = new SupplierItem();
                        obj.ItemId = sdr["ItemID"].ToString();
                        obj.PriceUpdate = sdr["COG"].ToString();
                        if (sdr["ManagerUnitPrice"] != DBNull.Value)
                            obj.ResellPrice = sdr["ManagerUnitPrice"].ToString();
                        else
                            obj.ResellPrice = sdr["RepUnitPrice"].ToString();
                        obj.Description = sdr["Description"].ToString();
                        obj.SupplierItemCode = sdr["SupplierItemCode"].ToString();
                        list.Add(obj);
                    }
                }

                conn.Close();
            }

            return list;
        }
コード例 #8
0
        public async Task <IActionResult> CreateToBeCreatedItems(ItemsToBeCreatedVM vm)
        {
            // Check if order exists
            var order = _context.ExactOrders
                        .Include(nameof(ExactOrder.Lines) + "." + nameof(ExactOrderLine.Item))
                        .Include(nameof(ExactOrder.DBUser))
                        .FirstOrDefault(x => x.Id == vm.OrderId);

            if (order == null || order.Lines == null)
            {
                return(RedirectToAction(nameof(Index), new { sm = StateMessage.FailedOrderDoesNotExist }));
            }

            // Check if user exists
            var user = _dbHelper.GetUser(_context, User.Identity.Name);

            if (user == null)
            {
                return(RedirectToAction("LogOut", "Account"));
            }

            ExactOnlineConnect.data.Context     = _context;
            ExactOnlineConnect.data.AccessToken = user.Token;

            // Create missing Items within Exact Online
            foreach (var x in vm.Items)
            {
                var storedItem = await ExactOnlineConnect.data.StoreItem(user.DivisionId, x);

                var tempOrder = order.Lines
                                .FirstOrDefault(y => y.Item.Name == x.Description);
                var supplierItem = new SupplierItem
                {
                    Item          = storedItem.ID,
                    PurchasePrice = tempOrder.AmountDC,
                    PurchaseUnit  = "PC",
                    Supplier      = new Guid(user.SupplierId),
                };

                // Set new item values
                var dbItem = _context.ExactItems
                             .FirstOrDefault(y =>
                                             y.Name == x.Description &&
                                             y.ExactUserId.ToString() == user.CreatorId &&
                                             y.SupplierId.ToString() == user.SupplierId);

                dbItem.Description = storedItem.ExtraDescription;
                dbItem.ExactID     = storedItem.ID;
                dbItem.Code        = storedItem.Code;
                dbItem.IsComplete  = true;
                dbItem.MessageSeen = false;

                var storedSupplierItem = await ExactOnlineConnect.data.StoreSupplierItem(user.DivisionId, supplierItem);
            }

            // Set SalesItemPrice
            var salesItemPrices = await ExactOnlineConnect.data.GetSalesItemPrices(user.DivisionId);

            order.ItemsAreInExact = true;
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Order), new { Id = vm.OrderId }));
        }
コード例 #9
0
ファイル: PubHelper.cs プロジェクト: HaiBoHan/HBHDaYunsy
        public static SalePriceLine GetSalePriceList(SupplierItem supplierItem)
        {
            string opath = string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate ", Context.LoginOrg.ID.ToString(), supplierItem.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString());
            //if (Context.LoginOrg.Code == Const_OrgCode_Electric)
            //{
            //    opath += string.Format(" and SalePriceList.Code='{0}'", Const_ElectricPartPriceListCode);
            //}
            //else if (Context.LoginOrg.Code == Const_OrgCode_Hubei)
            //{
            //    //opath += string.Format(" and SalePriceList.Code={0}", Const_SalePartPriceListCode);
            //}

            string pricelistCode = GetPartPriceListCode();
            if (pricelistCode.IsNotNullOrWhiteSpace())
            {
                opath += string.Format(" and SalePriceList.Code='{0}'", pricelistCode);
            }

            return SalePriceLine.Finder.Find(opath);
        }
コード例 #10
0
        public async Task <IList <StockAdjustSumById> > StockAdjustDetailInfo()
        {
            IList <StockAdjustSumById> stockAdjustSumByIdList = new List <StockAdjustSumById>();
            float amounttotal = 0;
            IList <StockAdjustment> stoAdjlist = await findAllStockAdjustmentAsync();

            IList <StockAdjustmentDetail> stoAdjDetaillist = await findAllStockAdjustDetailAsync();

            IList <AdjustmentVoucherDetail> vocDetails = await findAllAdjustmentVoucherDetailAsync();

            IList <AdjustmentVoucher> vocList = await findAllAdjustmentVoucherAsync();

            bool isApprove = false;
            StockAdjustSumById adjustSumbyId = new StockAdjustSumById()
            {
            };

            foreach (StockAdjustment eachSAdjRecord in stoAdjlist)
            {
                adjustSumbyId = null;
                amounttotal   = 0;

                List <StockAdjustmentDetail> stockAdjDetailList = unitOfWork
                                                                  .GetRepository <StockAdjustmentDetail>()
                                                                  .GetAllIncludeIQueryable(filter: x => x.stockAdjustmentId == eachSAdjRecord.Id && x.Status != "Reverted" && x.Status != "Declined" && x.Status != "Approved" && x.discpQty != 0).ToList();

                if (stockAdjDetailList != null)
                {
                    foreach (StockAdjustmentDetail eachSAdjDetailRecord in stockAdjDetailList)
                    {
                        isApprove = false;
                        foreach (AdjustmentVoucherDetail eachVocRecord in vocDetails)
                        {
                            if (eachSAdjDetailRecord.Id == eachVocRecord.StockAdjustmentDetailId)
                            {
                                isApprove = true;
                            }
                        }

                        SupplierItem supplierItem = await findSupplierItemByIdAsync(eachSAdjDetailRecord.StationeryId);

                        amounttotal += (Math.Abs(supplierItem.price * eachSAdjDetailRecord.discpQty));
                        double eachItemAmount = supplierItem.price * eachSAdjDetailRecord.discpQty;
                        if (Math.Abs(eachItemAmount) > 250)
                        {
                            StockAdjustment stockAdjustment = await findStockAdjustmentByIdAsync(eachSAdjDetailRecord.stockAdjustmentId);

                            if (stockAdjustment != null)
                            {
                                Employee emp = await findEmployeeByIdAsync(stockAdjustment.EmployeeId);

                                if (emp != null)
                                {
                                    adjustSumbyId = new StockAdjustSumById()
                                    {
                                        stockAdustmentId = eachSAdjRecord.Id,
                                        empId            = emp.Id,
                                        empName          = emp.name,
                                        amount           = amounttotal
                                    };
                                }
                            }
                        }
                    } //End StockAdjustmentDetail loop
                    if (!isApprove && adjustSumbyId != null)
                    {
                        stockAdjustSumByIdList.Add(adjustSumbyId); // Sum
                    }
                }
            }

            return(stockAdjustSumByIdList);
        }
コード例 #11
0
        //One month report for requisition cost analysis
        public ReportResponsePayload oneMonthReport(List <RequisitionDetail> requisitionDetails, int month)
        {
            ReportResponsePayload reportResponsePayload = new ReportResponsePayload();

            month++; // month integer in months is indexed from 0

            // Get list of departments from requisition details
            List <Department> departments = requisitionDetails
                                            .Select(d => d.Requisition.Requester.Department)
                                            .Distinct()
                                            .OrderBy(d => d.DepartmentName)
                                            .ToList();

            // Get years required for data generation. If month has not past for current year, start
            // from 4 years ago, if month has past for current year, start for month of this year
            reportResponsePayload.labels = new List <string>();

            int excludeCurrentYear = month > DateTime.Today.Month ? 1 : 0;

            for (int i = 3; i >= 0; i--)
            {
                reportResponsePayload.labels.Add(DateTime.Today.AddYears(-i - excludeCurrentYear).Year.ToString());
            }
            reportResponsePayload.datasets = new List <ReportDataPayload>();

            ReportDataPayload reportDataPayload;

            foreach (Department d in departments)
            {
                reportDataPayload                 = new ReportDataPayload();
                reportDataPayload.label           = d.DepartmentName;
                reportDataPayload.backgroundColor = colors[departments.IndexOf(d)];

                List <decimal> chartValues = new List <decimal>();

                for (int i = 3; i >= 0; i--)
                {
                    int year = DateTime.Today.AddYears(-i - excludeCurrentYear).Year;
                    int j    = 0;
                    List <RequisitionDetail> newList = requisitionDetails
                                                       .Where(r => r.Requisition.RequestedDate.HasValue && r.Requisition.RequestedDate.Value.Month == month && r.Requisition.Requester.DepartmentID == d.DepartmentID &&
                                                              r.Requisition.RequestedDate.Value.Year == year)
                                                       .ToList();
                    var count = newList.Where(ri => ri.Quantity > 0).Count();

                    int[]        quantity = new int[count];
                    decimal?[]   cost     = new decimal?[count];
                    SupplierItem supItem  = new SupplierItem();
                    foreach (RequisitionDetail rdetail in newList)
                    {
                        quantity[j] = rdetail.Quantity;
                        supItem     = context.SupplierItems.Where(s => s.Rank == 1 && s.ItemID == rdetail.ItemID).FirstOrDefault();
                        cost[j]     = (supItem.Cost == null) ? (decimal?)null : Convert.ToDecimal(supItem.Cost);
                        j++;
                    }

                    decimal?sum = 0;
                    for (int m = 0; m < newList.Count; m++)
                    {
                        sum = sum + cost[m] * quantity[m];
                    }

                    chartValues.Add(sum == null ? 0 : (decimal)sum);
                }
                reportDataPayload.data = chartValues;
                reportResponsePayload.datasets.Add(reportDataPayload);
            }

            return(reportResponsePayload);
        }
コード例 #12
0
        public ReportResponsePayload pastThreeMonthsReport(List <RequisitionDetail> requisitionDetails)
        {
            ReportResponsePayload reportResponsePayload = new ReportResponsePayload();

            //Distinct list of departments
            List <Department> departments = requisitionDetails
                                            .Select(d => d.Requisition.Requester.Department)
                                            .Distinct().OrderBy(d => d.DepartmentName)
                                            .ToList();

            reportResponsePayload.labels = new List <string>();
            for (int i = 3; i >= 0; i--)
            {
                reportResponsePayload.labels.Add(DateTime.Today.AddMonths(-i).ToString("MMMM"));
            }
            reportResponsePayload.datasets = new List <ReportDataPayload>();

            ReportDataPayload reportDataPayload;

            foreach (Department d in departments)
            {
                reportDataPayload                 = new ReportDataPayload();
                reportDataPayload.label           = d.DepartmentName;
                reportDataPayload.backgroundColor = colors[departments.IndexOf(d)];

                List <decimal> chartValues = new List <decimal>();


                for (int i = 3; i >= 0; i--)
                {
                    int j     = 0;
                    int month = DateTime.Today.AddMonths(-i).Month;
                    List <RequisitionDetail> newList = new List <RequisitionDetail>();

                    newList = requisitionDetails
                              .Where(r => r.Requisition.RequestedDate.HasValue && r.Requisition.RequestedDate.Value.Month == month && r.Requisition.Requester.DepartmentID.Equals(d.DepartmentID))
                              .ToList();
                    var count = newList.Where(ri => ri.Quantity > 0).Count();

                    int[]        quantity = new int[count];
                    decimal?[]   cost     = new decimal?[count];
                    SupplierItem supItem  = new SupplierItem();
                    foreach (RequisitionDetail rdetail in newList)
                    {
                        quantity[j] = rdetail.Quantity;
                        supItem     = context.SupplierItems.Where(s => s.Rank == 1 && s.ItemID == rdetail.ItemID).FirstOrDefault();
                        cost[j]     = (supItem.Cost == null) ? (decimal?)null : Convert.ToDecimal(supItem.Cost);

                        j++;
                    }

                    decimal?sum = 0;
                    for (int m = 0; m < newList.Count; m++)
                    {
                        sum = sum + cost[m] * quantity[m];
                    }
                    chartValues.Add(sum == null ? 0 : (decimal)sum);
                }

                reportDataPayload.data = chartValues;
                reportResponsePayload.datasets.Add(reportDataPayload);
            }
            return(reportResponsePayload);
        }
コード例 #13
0
 public async Task <SupplierItem> StoreSupplierItem(int division, SupplierItem supplierItem)
 {
     return(await service.PostNew <SupplierItem>(String.Format($"{division}/logistics/SupplierItem"), data : supplierItem));
 }
コード例 #14
0
        public ActionResult RefreshDisbursement(IEnumerable <int> disbId, IList <int> disbItemId, IList <int> qtyDisbursed)
        {
            /*            if (Session["IdEmployee"] == null || (String)Session["Role"] != "StockClerk")
             *   return RedirectToAction("Login", "Home");*/

            int IdStoreClerk = 1;

            if (Session["IdEmployee"] != null)
            {
                IdStoreClerk = (int)Session["IdEmployee"];
            }



            Disbursement targetDisbursement = _disbursementDAO.FindById(disbId.First());

            ViewBag.disb = targetDisbursement;
            List <DisbursementItem> targetList = targetDisbursement.DisbursementItems.ToList();
            Employee sup = _employeeDAO.FindByRole(7).FirstOrDefault();
            Employee man = _employeeDAO.FindByRole(6).FirstOrDefault();

            // if qtyDisbursed < disbItem.UnitIssued then raise a SA-broken and a reversal entry to qtyDisbursed
            for (int i = 0; i < targetList.Count; i++)
            {
                if (qtyDisbursed[i] < targetList[i].UnitIssued)
                {
                    _stockRecordDAO.StockAdjustmentDuringDisbursement(qtyDisbursed[i], targetList[i], IdStoreClerk);
                    // reverses the amount disbursed to the department
                    // commented out as net = 0 diff
                    //_itemDAO.UpdateUnits(targetList[i].Item, -(targetList[i].UnitIssued - qtyDisbursed[i]));
                    //_itemDAO.UpdateUnits(targetList[i].Item, (targetList[i].UnitIssued - qtyDisbursed[i]));

                    // sends a notification to either supervisor or manager on stock record's value
                    #region Send notification
                    String message = $"Stock adjustment raised for Item ({targetList[i].Item.Description}). Please approve/reject.";
                    int    notifId = _notificationDAO.CreateNotification(message);
                    var    hub     = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();

                    SupplierItem si = _supplierItemDAO.FindByItem(targetList[i].Item);
                    if (Math.Abs((targetList[i].UnitIssued - qtyDisbursed[i]) * si.Price) >= 250)
                    {
                        _notificationChannelDAO.SendNotification(IdStoreClerk, man.IdEmployee, notifId, DateTime.Now);
                        hub.Clients.All.receiveNotification(man.IdEmployee);
                        EmailClass emailClass = new EmailClass();
                        emailClass.SendTo(man.Email, "SSIS System Email", message);
                    }
                    else
                    {
                        _notificationChannelDAO.SendNotification(IdStoreClerk, sup.IdEmployee, notifId, DateTime.Now);
                        hub.Clients.All.receiveNotification(sup.IdEmployee);
                        EmailClass emailClass = new EmailClass();
                        emailClass.SendTo(sup.Email, "SSIS System Email", message);
                    }
                    #endregion
                }
            }

            // updates the disbitemId's unitissued to the qtyDisbursed
            _disbursementItemDAO.UpdateUnitIssued(disbItemId, qtyDisbursed);

            return(RedirectToAction("Disbursement"));
        }
コード例 #15
0
        private void btnGet_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // var result1 = CommonCode.GenerateTopPurchaseOrder(Guid.NewGuid().ToString());
                // var SplitResult = result1.Split('-');
                // var SplitResultInt = Convert.ToInt64(SplitResult[1]) + 1;
                //var TotalZeros = "";
                //switch (SplitResultInt.ToString().Count())
                //{
                //    case 3:
                //        TotalZeros = "00000";
                //        break;
                //    case 4:
                //        TotalZeros = "0000";
                //        break;
                //    case 5:
                //        TotalZeros = "000";
                //        break;
                //    case 6:
                //        TotalZeros = "00";
                //        break;
                //    case 7:
                //        TotalZeros = "0";
                //        break;
                //    default:
                //        break;
                //}
                string     message      = string.Empty;
                string     order        = "<?xml version=\"1.0\"?> \r\n <PurchaseOrder xmlns:xsd = \"http://www.w3.org/2001/XMLSchema\" xmlns:xsi = \"http://www.w3.org/2001/XMLSchema-instance\" xmlns = \"http://api.unleashedsoftware.com/version/1\" >";
                string     supplierCode = string.Empty;
                string     currencyCode = string.Empty;
                double     taxRate      = 0.0;
                double     subTotal     = 0.0;
                double     taxTotal     = 0.0;
                double     total        = 0.0;
                Warehouses wh           = new Warehouses();
                // Random generator = new Random();
                // int r = generator.Next(0000000, 9999999);
                order += "\r\n<Guid>" + Guid.NewGuid().ToString() + "\r\n</Guid><OrderDate>" + DateTime.Now.ToString("yyyy-MM-dd") + "</OrderDate>";
                order += "<RequiredDate>" + DateTime.Now.AddDays(Convert.ToInt32(TimeSpanUpcoming)).ToString("yyyy-MM-dd") + "</RequiredDate>";
                order += " <Supplier><SupplierCode>{0}</SupplierCode></Supplier><OrderStatus>Parked</OrderStatus><ExchangeRate>0.478090</ExchangeRate><Currency><CurrencyCode>{1}</CurrencyCode></Currency>";
                order += "<PurchaseOrderLines>";
                int          i        = 0;
                SupplierItem supplier = null;
                foreach (System.Windows.Forms.DataGridViewRow row in UnleashedData.Rows)
                {
                    bool isSelected = Convert.ToBoolean(row.Cells["checkBoxColumn"].EditedFormattedValue);
                    if (isSelected)
                    {
                        i = i + 1;
                        string productCode = row.Cells["ProductCode"].Value.ToString();
                        var    result      = ULDataCalculation.productList.Where(m => m.ProductCode == productCode).FirstOrDefault();
                        //DataRow[] dr = CommonCode.productDt.Select("[Product Code]='" + productCode + "'");
                        double defaultPurchasePrice = 0;
                        string units = string.Empty;
                        //if (dr.Count() > 0)
                        //{
                        //    defaultPurchasePrice = Convert.ToDouble(dr[0]["Default Purchase Price"]);
                        //    units = Convert.ToString(dr[0]["Units"]);

                        //}
                        if (result != null)
                        {
                            defaultPurchasePrice = result.DefaultPurchasePrice == null ? 0.0 : result.DefaultPurchasePrice.Value;
                            units = result.UnitOfMeasure == null ? "EA" : result.UnitOfMeasure.Name;
                        }
                        if (supplierCode == string.Empty)
                        {
                            supplierCode = row.Cells["SupplierCode"].Value.ToString();
                            var response = CommonCode.GetSupplierInformation(supplierCode);
                            if (response != null)
                            {
                                supplier = response.Items.Where(m => m.SupplierCode == supplierCode).FirstOrDefault();
                                if (supplier != null)
                                {
                                    currencyCode = supplier.Currency.CurrencyCode;
                                }
                            }
                        }
                        double linetax = 0;

                        //UpcomingOrderQuantities
                        string orderQuantity = row.Cells["Quantity"].Value.ToString();
                        if (orderQuantity == string.Empty)
                        {
                            orderQuantity = "0";
                        }
                        //objSupplier.SupplierCode = row.Cells["SupplierCode"].Value.ToString();
                        double lineTotal = defaultPurchasePrice * Convert.ToDouble(orderQuantity);
                        subTotal += lineTotal;
                        if (supplier != null)
                        {
                            //if (supplier.Currency.CurrencyCode == "AUD")
                            if (supplier.Taxable == true)
                            {
                                linetax   = (lineTotal * 10) / 100;
                                taxRate   = 10;
                                taxTotal += linetax;
                            }
                        }

                        order += "<PurchaseOrderLine><LineNumber> " + i + " </LineNumber><Product><ProductCode>" + productCode + "</ProductCode></Product>";
                        order += "<OrderQuantity> " + orderQuantity + " </OrderQuantity><UnitPrice>" + defaultPurchasePrice + "</UnitPrice><LineTotal>" + lineTotal + "</LineTotal><LineTax>" + linetax + "</LineTax>";
                        // order += "<BCUnitPrice>" + Math.Round(defaultPurchasePrice,2) + "</BCUnitPrice><BCSubTotal>" + Math.Round(lineTotal,2) + "</BCSubTotal>";
                        order += "<UnitOfMeasure><Name>" + units + "</Name></UnitOfMeasure>";
                        order += "</PurchaseOrderLine>";
                    }
                }
                total    = subTotal + taxTotal;
                subTotal = subTotal;
                taxTotal = taxTotal;
                order   += "</PurchaseOrderLines><TaxRate>" + Math.Round(taxRate / 100, 2) + "</TaxRate><SubTotal>" + subTotal + "</SubTotal><TaxTotal>" + taxTotal + "</TaxTotal><Total>" + total + "</Total>";

                //order += "<BCSubTotal>" + subTotal + "</BCSubTotal><BCTaxTotal>" + taxTotal + "</BCTaxTotal><BCTotal>" + total + "</BCTotal>";
                if (glbWarehouse != string.Empty)
                {
                    order += "<Warehouse><WarehouseCode>" + glbWarehouse + "</WarehouseCode></Warehouse>";
                    wh     = CommonCode.GetWarehouseInformation(glbWarehouse);
                }
                order += "<DiscountRate>0.00</DiscountRate></PurchaseOrder>";
                string completeOrder = string.Format(order, supplierCode, currencyCode);

                if (supplierCode != string.Empty)
                {
                    try
                    {
                        var xmlstring  = CommonCode.AddPurchaseOrder(completeOrder);
                        var firstIndex = xmlstring.IndexOf("<Guid>");
                        var lastIndex  = xmlstring.IndexOf("</Guid>");
                        int indexStart = firstIndex + 6;
                        int indexLast  = lastIndex - firstIndex - 6;
                        //var remainingString = xmlstring.Substring(indexStart, indexLast);
                        //var result222 = CommonCode.GeneratePurchaseOrder(remainingString);
                        //ConvertHTMLtoPDF(result222);
                        if (indexStart >= 0 && indexLast >= 0)
                        {
                            var remainingString = xmlstring.Substring(indexStart, indexLast);
                            var result222       = CommonCode.GeneratePurchaseOrder(remainingString);
                            //ConvertHTMLtoPDF(result222, wh);
                            Helpers.Converters.ConvertHTMLtoPDF(result222, wh);
                        }
                        else
                        {
                            MessageBox.Show(xmlstring);
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                else
                {
                    MessageBox.Show("Supplier is not selected.", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException + "," + ex.Message + "," + ex.StackTrace, "Error");
            }
        }
コード例 #16
0
 public void AddItem(SupplierItem item)
 {
     Database.AddItem(item);
 }
コード例 #17
0
 public void Notify(params object[] args)
 {
     if (args != null && args.Length != 0 && args[0] is EntityEvent)
     {
         BusinessEntity.EntityKey key = ((EntityEvent)args[0]).EntityKey;
         if (!(key == null))
         {
             SupplierItem supplierItem = key.GetEntity() as SupplierItem;
             //if (Context.LoginOrg.Code == "10")
             if (PubHelper.IsOrg_SupplierItem2DMS())
             {
                 bool flag = PubHelper.IsUsedDMSAPI();
                 if (flag)
                 {
                     if (SupplierItemInserted.IsUpdateDMS(supplierItem))
                     {
                         if (supplierItem.OriginalData.ItemInfo.ItemID != supplierItem.ItemInfo.ItemID || supplierItem.OriginalData.SupplierInfo.SupplierKey != supplierItem.SupplierInfo.SupplierKey)
                         {
                             PI06ImplService service = new PI06ImplService();
                             // service.Url = PubHelper.GetAddress(service.Url);
                             System.Collections.Generic.List <partBaseDto> lines = new System.Collections.Generic.List <partBaseDto>();
                             partBaseDto linedto = new partBaseDto();
                             if (supplierItem.OriginalData.SupplierInfo != null && supplierItem.OriginalData.SupplierInfo.SupplierKey != null)
                             {
                                 linedto.suptCode = supplierItem.OriginalData.SupplierInfo.Supplier.Code;
                             }
                             if (supplierItem.OriginalData.ItemInfo != null && supplierItem.OriginalData.ItemInfo.ItemIDKey != null)
                             {
                                 linedto.partCode = supplierItem.OriginalData.ItemInfo.ItemID.Code;
                                 linedto.partName = supplierItem.OriginalData.ItemInfo.ItemID.Name;
                             }
                             if (supplierItem.OriginalData.ItemInfo.ItemID.InventoryUOM != null)
                             {
                                 linedto.unit = supplierItem.OriginalData.ItemInfo.ItemID.InventoryUOM.Name;
                             }
                             if (supplierItem.OriginalData.ItemInfo.ItemID.PurchaseInfo != null)
                             {
                                 linedto.miniPack = ((supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                             }
                             //SalePriceLine line = SalePriceLine.Finder.Find(string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate", Context.LoginOrg.ID.ToString(), supplierItem.OriginalData.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                             SalePriceLine line = PubHelper.GetSalePriceList(supplierItem);
                             if (line != null)
                             {
                                 linedto.salePrice = float.Parse(line.Price.ToString());
                                 linedto.unitPrace = linedto.salePrice;
                             }
                             else
                             {
                                 linedto.salePrice = 0f;
                                 linedto.unitPrace = 0f;
                             }
                             linedto.isFlag      = "2";
                             linedto.isDanger    = "0";
                             linedto.isReturn    = "1";
                             linedto.isSale      = "1";
                             linedto.isEffective = supplierItem.OriginalData.Effective.IsEffective.ToString();
                             linedto.actionType  = 3;
                             lines.Add(linedto);
                             linedto = new partBaseDto();
                             if (supplierItem.SupplierInfo != null && supplierItem.SupplierInfo.SupplierKey != null)
                             {
                                 linedto.suptCode = supplierItem.SupplierInfo.Supplier.Code;
                             }
                             if (supplierItem.ItemInfo != null && supplierItem.ItemInfo.ItemIDKey != null)
                             {
                                 linedto.partCode = supplierItem.ItemInfo.ItemID.Code;
                                 linedto.partName = supplierItem.ItemInfo.ItemID.Name;
                             }
                             if (supplierItem.ItemInfo.ItemID.InventoryUOM != null)
                             {
                                 linedto.unit = supplierItem.ItemInfo.ItemID.InventoryUOM.Name;
                             }
                             if (supplierItem.ItemInfo.ItemID.PurchaseInfo != null)
                             {
                                 linedto.miniPack = ((supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                             }
                             SalePriceLine line2 = SalePriceLine.Finder.Find(string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate", supplierItem.MasterOrg.ID.ToString(), supplierItem.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                             if (line2 != null)
                             {
                                 linedto.salePrice = float.Parse(line2.Price.ToString());
                                 linedto.unitPrace = linedto.salePrice;
                             }
                             else
                             {
                                 linedto.salePrice = 0f;
                                 linedto.unitPrace = 0f;
                             }
                             linedto.isFlag      = "2";
                             linedto.isDanger    = "0";
                             linedto.isReturn    = "1";
                             linedto.isSale      = "1";
                             linedto.isEffective = supplierItem.Effective.IsEffective.ToString();
                             linedto.actionType  = 1;
                             lines.Add(linedto);
                             try
                             {
                                 partBaseDto d = service.Do(lines.ToArray());
                                 if (d != null && d.flag == 0)
                                 {
                                     throw new BusinessException(d.errMsg);
                                 }
                             }
                             catch (System.Exception e)
                             {
                                 throw new BusinessException("调用DMS接口错误:" + e.Message);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #18
0
        public async Task <SupplierItem> findSupplierItemByIdAsync(int stkAdjId)
        {
            SupplierItem supplierItem = await unitOfWork.GetRepository <SupplierItem>().FindAsync(stkAdjId);

            return(supplierItem);
        }
コード例 #19
0
 public void Setup()
 {
     m_Inventory       = new InventoryHandler(new List <IInventoryItem>());
     m_ExistantItem    = new SupplierItem(c_Item1, c_Category, 1, 1);
     m_NonExistantItem = new SupplierItem(c_Item2, c_Category, 1, 1);
 }