/// <summary>
        /// Adds the specified order product.
        /// </summary>
        /// <param name="shipmentProduct">The order product.</param>
        /// <returns></returns>
        public tbl_ShipmentProducts Add(tbl_ShipmentProducts shipmentProduct)
        {
            shipmentProduct.ID = Guid.NewGuid();
            _dataContext.tbl_ShipmentProducts.AddObject(shipmentProduct);
            _dataContext.SaveChanges();

            return(shipmentProduct);
        }
示例#2
0
        protected void rbtnGenerateShipment_OnClick(object sender, EventArgs e)
        {
            var shipmentType = _dataManager.ShipmentType.SelectAll(CurrentUser.Instance.SiteID).SingleOrDefault(o => o.IsDefault);

            if (!InvoiceId.HasValue)
            {
                return;
            }

            if (shipmentType == null)
            {
                ucMessage.Text = "Необходимо указать тип документа по умолчанию";
                return;
            }

            var invoice = _dataManager.Invoice.SelectById(InvoiceId.Value);

            var shipment = new tbl_Shipment
            {
                CreatedAt                     = DateTime.Now,
                ShipmentTypeID                = shipmentType.ID,
                ShipmentStatusID              = (int)ShipmentStatus.Prepared,
                Note                          = invoice.Note,
                ExecutorCompanyID             = invoice.ExecutorCompanyID,
                BuyerCompanyID                = invoice.BuyerCompanyID,
                ExecutorCompanyLegalAccountID = invoice.ExecutorCompanyLegalAccountID,
                BuyerCompanyLegalAccountID    = invoice.BuyerCompanyLegalAccountID,
                BuyerContactID                = invoice.BuyerContactID,
                ExecutorContactID             = invoice.ExecutorContactID,
                SendDate                      = null,
                PriceListID                   = null,
                OrderID                       = invoice.OrderID,
                ShipmentAmount                = invoice.InvoiceAmount
            };



            shipment.tbl_Invoice.Clear();
            shipment.tbl_Invoice.Add(invoice);
            shipment.SiteID  = invoice.SiteID;
            shipment.OwnerID = CurrentUser.Instance.ContactID;
            var documentNumerator = DocumentNumerator.GetNumber((Guid)shipmentType.NumeratorID,
                                                                shipment.CreatedAt,
                                                                shipmentType.tbl_Numerator.Mask, "tbl_Shipment");

            shipment.Number       = documentNumerator.Number;
            shipment.SerialNumber = documentNumerator.SerialNumber;

            foreach (var product in invoice.tbl_InvoiceProducts.ToList())
            {
                var shipmentProduct = new tbl_ShipmentProducts
                {
                    ID                      = Guid.NewGuid(),
                    Amount                  = product.Amount,
                    AnyProductName          = product.AnyProductName,
                    CurrencyAmount          = product.CurrencyAmount,
                    CurrencyDiscountAmount  = product.CurrencyDiscountAmount,
                    CurrencyID              = product.CurrencyID,
                    CurrencyPrice           = product.CurrencyPrice,
                    CurrencyTotalAmount     = product.CurrencyTotalAmount,
                    Discount                = product.Discount,
                    DiscountAmount          = product.DiscountAmount,
                    Price                   = product.Price,
                    PriceListID             = product.PriceListID,
                    ProductID               = product.ProductID,
                    Quantity                = product.Quantity,
                    Rate                    = product.Rate,
                    SerialNumber            = product.SerialNumber,
                    ShipmentID              = shipment.ID,
                    SpecialOfferPriceListID = product.SpecialOfferPriceListID,
                    TaskID                  = product.TaskID,
                    TotalAmount             = product.TotalAmount,
                    UnitID                  = product.UnitID
                };

                shipment.tbl_ShipmentProducts.Add(shipmentProduct);
            }

            _dataManager.Shipment.Add(shipment);

            Response.Redirect(UrlsData.AP_ShipmentEdit(shipment.ID));
        }