示例#1
0
        private void writeBillDetailsInfoFromBillNumber(string billNumber)
        {
            // DataGridView 赋值
            SortedDictionary <int, SaleOrderDetailsTable> saleOrderDetails =
                SaleOrderDetails.getInctance().getSaleInfoFromBillNumber(billNumber);

            foreach (KeyValuePair <int, SaleOrderDetailsTable> index in saleOrderDetails)
            {
                SaleOrderDetailsTable record = new SaleOrderDetailsTable();
                record = index.Value;

                int rowIndex = Convert.ToInt32(record.rowNumber.ToString()) - 1;

                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielNumber].Value     = record.materielID;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielName].Value       = record.materielName;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Model].Value              = record.materielModel;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Unit].Value               = record.materielUnitSale;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Price].Value              = record.price;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Value].Value              = record.value;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Turnover].Value           = record.sumMoney;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.TransportationCost].Value = record.transportationCost;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.OtherCost].Value          = record.otherCost;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.SumTurnover].Value        = record.totalMoney;
            }
        }
        public SaleOrderDetails Gets()
        {
            SaleOrderDetails oSaleOrderDetails = new SaleOrderDetails();

            try
            {
                SqlCommand cmd = new SqlCommand("SP_SaleOrderDetail_Gets", _conn);

                cmd.CommandType = CommandType.StoredProcedure;
                if (_conn.State == ConnectionState.Open)
                {
                }
                else
                {
                    cmd.Connection.Open();
                }
                IDataReader reader = cmd.ExecuteReader();

                oSaleOrderDetails = CreateObjects(reader);
                reader.Close();
                cmd.Dispose();
                cmd.Connection.Close();
            }
            catch (Exception e)
            {
                throw new ServiceException(e.Message, e);
            }
            return(oSaleOrderDetails);
        }
        public SaleOrderDetails GetsByString(string sString)
        {
            SaleOrderDetails oSaleOrderDetails = new SaleOrderDetails();

            try
            {
                SqlCommand cmd = new SqlCommand("SP_SaleOrderDetail_GetsByString", _conn);

                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@SaleID", SqlDbType.VarChar)).Value = sString;
                if (_conn.State == ConnectionState.Open)
                {
                }
                else
                {
                    cmd.Connection.Open();
                }
                IDataReader reader = cmd.ExecuteReader();

                oSaleOrderDetails = CreateObjects(reader);
                reader.Close();
                cmd.Dispose();
                cmd.Connection.Close();
            }
            catch (Exception e)
            {
                throw new ServiceException(e.Message, e);
            }
            return(oSaleOrderDetails);
        }
示例#4
0
        private void save_Click(object sender, EventArgs e)
        {
            // 得到详细的销售信息
            ArrayList dataList = getSaleOrderDetailsValue();

            if (dataList.Count > 0)
            {
                // 销售订单表头和表尾信息
                SaleOrderTable record = getSaleOrderValue();
                if (purchaseOrderIsFull(record) && purchaseOrderDetailsIsFull(dataList))
                {
                    SaleOrder.getInctance().insert(record, false);
                    SaleOrderDetails.getInctance().insert(dataList);
                    BillNumber.getInctance().inserBillNumber(BillTypeNumber, this.labelTradingDate.Text, this.labelBillNumber.Text.ToString());

                    if (m_billNumber.Length == 0)
                    {
                        MessageBoxExtend.messageOK("数据保存成功");
                    }

                    this.Close();
                }
            }
            else
            {
                MessageBoxExtend.messageWarning("此单据不包含任何交易信息,单据保存失败.");
            }
        }
示例#5
0
 private void AddOrderDetail(
     string custormerNo,
     List <ShoppingCarts> carts,
     List <ProductSales> productSales,
     List <ProductPhotos> productPhotos,
     List <Products> products,
     DateTime inputDate,
     string saleOrderNo)
 {
     foreach (var cart in carts)
     {
         SaleOrderDetails detail = new SaleOrderDetails()
         {
             SaleOrderGuid   = Guid.NewGuid().ToString(),
             SaleOrderNo     = saleOrderNo,
             ProductNo       = cart.ProductNo,
             ProductName     = products.Find(m => m.ProductNo == cart.ProductNo)?.ProductName,
             ProductPhotoUrl = productPhotos.Find(m => m.ProductNo == cart.ProductNo)?.ProductPhotoUrl,
             CustomerNo      = custormerNo,
             InputDate       = inputDate,
             OrderNum        = cart.ProductNum,
             BasePrice       = productSales.Find(m => m.ProductNo == cart.ProductNo)?.SalePrice ?? 0,
             DiffPrice       = 0,
             SalePrice       = productSales.Find(m => m.ProductNo == cart.ProductNo)?.SalePrice ?? 0,
         };
         _orderDetailRepository.Insert(detail);
     }
     _cartService.RemoveCart(carts.Select(m => m.CartGuid).ToArray());
 }
        private void toolStripButtonRefresh_Click(object sender, EventArgs e)
        {
            // 刷新按钮逻辑
            if (m_orderType == OrderType.SaleQuotation)
            {
                // 销售管理-销售报价单序时簿
                SaleQuotationOrder.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.SaleOrder)
            {
                // 销售管理-销售订单序时簿
                SaleOrder.getInctance().refreshRecord();
                SaleOrderDetails.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.SaleOut)
            {
                // 销售管理-销售出库单序时簿
                SaleOutOrder.getInctance().refreshRecord();
                SaleOutOrderDetails.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.SaleInvoice)
            {
                // 销售管理-销售发票序时簿(暂时为空就可以)
            }
            else if (m_orderType == OrderType.SaleOrderExcute)
            {
                // 销售管理-销售订单执行情况
                SaleOrder.getInctance().refreshRecord();
                SaleOrderDetails.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.SaleOutOrderExcute)
            {
                // 销售管理-销售出库单收款情况
                SaleOutOrder.getInctance().refreshRecord();
                SaleOutOrderDetails.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.StorageMaterielOut)
            {
                // 仓存管理-生产领料
                MaterielOutOrder.getInctance().refreshRecord();
                MaterielOutOrderDetails.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.StorageOutCheck)
            {
                // 仓存管理-盘亏亏损
                MaterielOutEarningsOrder.getInctance().refreshRecord();
                MaterielOutEarningsOrderDetails.getInctance().refreshRecord();
            }
            else if (m_orderType == OrderType.StorageOutOther)
            {
                // 仓存管理-其他出库
                MaterielOutOtherOrder.getInctance().refreshRecord();
                MaterielOutOtherOrderDetails.getInctance().refreshRecord();
            }

            updateDataGridView();
        }
        private SaleOrderDetails CreateObjects(IDataReader oReader)
        {
            SaleOrderDetails oSaleOrderDetails = new SaleOrderDetails();
            NullHandler      oHandler          = new NullHandler(oReader);

            while (oReader.Read())
            {
                SaleOrderDetail oItem = CreateObject(oHandler);
                oSaleOrderDetails.Add(oItem);
            }
            return(oSaleOrderDetails);
        }
示例#8
0
        private SaleOrders CalculateOrder(CartViewModel model)
        {
            var order = new SaleOrders();

            order.AcceptedTime = null;
            order.CancledTime  = null;

            order.Id           = _rand.RandomStringFrom(RandomExtension.Uppers_Digits, 10);
            order.OrderTime    = DateTime.UtcNow;
            order.FinishedTime = null;
            order.Status       = "New";

            var details = new List <SaleOrderDetails>();

            foreach (var kv in model.details)
            {
                var d   = kv.Value;
                var pro = _context.Products.FirstOrDefault(p => p.Id == d.product_id && p.Active == true);
                var oD  = new SaleOrderDetails();
                oD.Id          = Guid.NewGuid().ToString();
                oD.OrderId     = order.Id;
                oD.ProductId   = pro.Id;
                oD.Quantity    = d.quantity;
                oD.TotalAmount = d.quantity * pro.UnitPrice;
                if (pro.DiscountAmount != null)
                {
                    oD.FinalAmount = oD.TotalAmount - pro.DiscountAmount;
                }
                else if (pro.DiscountPercent != null)
                {
                    oD.FinalAmount = oD.TotalAmount - (oD.TotalAmount * pro.DiscountPercent / 100.0);
                }
                else
                {
                    oD.FinalAmount = oD.TotalAmount;
                }
                details.Add(oD);
            }
            order.SaleOrderDetails = details;

            order.TotalAmount = details.Sum(oD => oD.TotalAmount);
            order.FinalAmount = details.Sum(oD => oD.FinalAmount);
            return(order);
        }
示例#9
0
        private void save_Click(object sender, EventArgs e)
        {
            m_isSaveSuccess = false;

            if ((sender.ToString() == "保存" || sender.ToString() == "审核") &&
                SaleOrder.getInctance().checkBillIsReview(this.labelBillNumber.Text.ToString()))
            {
                MessageBoxExtend.messageWarning("单据已被审核,所有数据无法进行更改,无法重复保存或审核\r\n请重新登录或手动刷新后查看单据详情");
                return;
            }

            this.ActiveControl = this.toolStrip1;

            // 得到详细的销售信息
            ArrayList dataList = getSaleOrderDetailsValue();

            if (dataList.Count > 0)
            {
                // 销售订单表头和表尾信息
                SaleOrderTable record = getSaleOrderValue();
                if (purchaseOrderIsFull(record) && purchaseOrderDetailsIsFull(dataList))
                {
                    SaleOrder.getInctance().insert(record, false);
                    SaleOrderDetails.getInctance().insert(dataList);
                    BillNumber.getInctance().inserBillNumber(BillTypeNumber, this.labelTradingDate.Text, this.labelBillNumber.Text.ToString());

                    m_isSaveSuccess = true;

                    if (m_billNumber.Length == 0)
                    {
                        MessageBoxExtend.messageOK("数据保存成功");
                    }

                    this.Close();
                }
            }
            else
            {
                MessageBoxExtend.messageWarning("此单据不包含任何交易信息,单据保存失败.");
            }
        }
        public IActionResult IndexPost()
        {
            List <BuyProductViewModel> lstCartItems = HttpContext.Session.Get <List <BuyProductViewModel> >("ssShoppingCart");
            double Total = 0.0;

            Clients    client    = ShoppingCartVM.client;
            SaleOrders saleOrder = new SaleOrders()
            {
                Description = ShoppingCartVM.Description,
                OrderDate   = DateTime.Now
            };

            // Xử lí thông tin người mua & tạo đơn hàng
            if (_db.clients.Where(m => m.Name == client.Name).Count() == 0)
            {
                _db.clients.Add(client);
                _db.SaveChanges();
                saleOrder.ClientId = _db.clients
                                     .OrderByDescending(x => x.Id)
                                     .Take(1)
                                     .Select(x => x.Id)
                                     .FirstOrDefault();
                _db.saleOrders.Add(saleOrder);
                _db.SaveChanges();
            }
            else
            {
                saleOrder.ClientId = _db.clients.Where(m => m.Name == client.Name).Select(x => x.Id).FirstOrDefault();
                _db.saleOrders.Add(saleOrder);
                _db.SaveChanges();
            }

            // Xử lí các sp người đó mua
            int saleOrderId = _db.saleOrders
                              .OrderByDescending(x => x.Id)
                              .Take(1)
                              .Select(x => x.Id)
                              .FirstOrDefault();

            foreach (BuyProductViewModel product in lstCartItems)
            {
                Products prod = new Products();
                prod        = _db.products.Where(m => m.Id == product.productId).FirstOrDefault();
                Total      += prod.DefaultSellingPrice;
                prod.Stock -= product.amount;
                SaleOrderDetails saleOrderDetail = new SaleOrderDetails()
                {
                    SaleOrderId     = saleOrderId,
                    ExportProductId = prod.Id,
                    Description     = "Xuất hàng theo hóa đơn của khách hàng " + client.Id,
                    Quantity        = product.amount,
                    Total           = prod.DefaultSellingPrice * product.amount
                };
                _db.saleOrderDetails.Add(saleOrderDetail);
                _db.SaveChanges();
            }

            // Cập nhật giá trị đơn hàng
            saleOrder.Total = (float)Total;
            _db.SaveChanges();

            lstCartItems = new List <BuyProductViewModel>();
            HttpContext.Session.Set("ssShoppingCart", lstCartItems);

            return(RedirectToAction("SaleOrderConfirmation", "ShoppingCart", new { id = saleOrderId }));
        }
示例#11
0
        private void readBillInfoToUI()
        {
            // 单据表头表尾信息
            m_purchaseOrder = SaleOrder.getInctance().getSaleInfoFromBillNumber(m_billNumber);

            m_customerPkey = m_purchaseOrder.customerId;

            this.labelSaleName.Visible        = true;
            this.labelTradingDate.Visible     = true;
            this.labelBillNumber.Visible      = true;
            this.labelSaleType.Visible        = true;
            this.labelDeliveryDate.Visible    = true;
            this.labelPaymentDate.Visible     = true;
            this.labelSummary.Visible         = true;
            this.labelBusinessPeople.Visible  = true;
            this.labelMakeBillStaff.Visible   = true;
            this.labelReviewBillStaff.Visible = true;
            this.labelReviewDate.Visible      = true;

            this.labelSaleName.Text     = m_purchaseOrder.customerName;
            this.labelTradingDate.Text  = m_purchaseOrder.tradingDate;
            this.labelBillNumber.Text   = m_purchaseOrder.billNumber;
            this.labelSaleType.Text     = m_purchaseOrder.saleType;
            this.labelDeliveryDate.Text = m_purchaseOrder.deliveryDate;
            this.labelPaymentDate.Text  = m_purchaseOrder.paymentDate;
            this.labelSummary.Text      = m_purchaseOrder.exchangesUnit;

            m_staffPkey = m_purchaseOrder.businessPeopleId;
            this.labelBusinessPeople.Text = m_purchaseOrder.businessPeopleName;
            this.labelMakeBillStaff.Text  = m_purchaseOrder.makeOrderStaffName;

            // DataGridView 赋值
            SortedDictionary <int, SaleOrderDetailsTable> purchaseOrderDetails =
                SaleOrderDetails.getInctance().getSaleInfoFromBillNumber(m_billNumber);

            foreach (KeyValuePair <int, SaleOrderDetailsTable> index in purchaseOrderDetails)
            {
                SaleOrderDetailsTable record = new SaleOrderDetailsTable();
                record = index.Value;

                int rowIndex = Convert.ToInt32(record.rowNumber.ToString()) - 1;

                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielNumber].Value     = record.materielID;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielName].Value       = record.materielName;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Model].Value              = record.materielModel;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Unit].Value               = record.materielUnitSale;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Price].Value              = record.price;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Value].Value              = record.value;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Turnover].Value           = record.sumMoney;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.TransportationCost].Value = record.transportationCost;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.OtherCost].Value          = record.otherCost;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.SumTurnover].Value        = record.totalMoney;
            }

            // 如果单据已审核,则禁用页面所有控件
            if (m_purchaseOrder.isReview == "1")
            {
                this.labelReviewBillStaff.Text = m_purchaseOrder.orderrReviewName;
                this.labelReviewDate.Text      = m_purchaseOrder.reviewDate;
                this.panelIsReview.Visible     = true;

                this.save.Enabled = false;
                this.toolStripButtonReview.Enabled  = false;
                this.dataGridViewDataList.ReadOnly  = true;
                this.dataGridViewDataCount.ReadOnly = true;

                this.panelSaleName.Visible     = false;
                this.panelTradingDate.Visible  = false;
                this.panelSaleType.Visible     = false;
                this.panelDeliveryDate.Visible = false;
                this.panelPaymentDate.Visible  = false;
                this.panelSummary.Visible      = false;

                this.textBoxSaleName.Visible            = false;
                this.dateTimePickerTradingDate.Visible  = false;
                this.comboBoxSaleType.Visible           = false;
                this.dateTimePickerDeliveryDate.Visible = false;
                this.dateTimePickerPaymentDate.Visible  = false;
                this.textBoxSummary.Visible             = false;

                this.panelBusinessPeople.Visible = false;
            }
            else
            {
                this.labelReviewBillStaff.Visible = false;
                this.labelReviewDate.Visible      = false;
            }
        }