示例#1
0
        private void ButtonAddClick(object sender, EventArgs e)
        {
            if (listViewKits.SelectedItems.Count == 0)
            {
                return;
            }

            foreach (var product in listViewKits.SelectedItems.ToArray())
            {
                var newRequest = new RequestForQuotationRecord(-1, product, 1);
                newRequest.Product = product;
                _addedQuotationRecord.Add(newRequest);
            }

            listViewAddedItems.SetItemsArray(_addedQuotationRecord.ToArray());
        }
示例#2
0
        public QuotationSupplierForm(List <Supplier> suppliers, RequestForQuotationRecord selectedItem) : this()
        {
            _suppliers    = suppliers;
            _selectedItem = selectedItem;

            foreach (var price in selectedItem.SupplierPrice)
            {
                price.Supplier = _suppliers.FirstOrDefault(i => i.ItemId == price.SupplierId);
            }

            _prices.AddRange(selectedItem.SupplierPrice);
            if (_prices.Count > 0)
            {
                supplierListView1.SetItemsArray(_prices.Select(i => i.Supplier).ToArray());
            }
            supplierListView.SetItemsArray(suppliers.ToArray());
        }
示例#3
0
        public QuatationOrderFormNew(RequestForQuotation order, IEnumerable <Product> selectedProducts = null) : this()
        {
            if (selectedProducts != null)
            {
                foreach (var product in selectedProducts)
                {
                    var newRequest = new RequestForQuotationRecord(-1, product, 1);
                    newRequest.Product = product;
                    _addedQuatationOrderRecords.Add(newRequest);
                }
            }

            _order = order;

            DocumentControls.AddRange(new[] { documentControl1, documentControl2, documentControl3, documentControl4, documentControl5, documentControl6, documentControl7, documentControl8, documentControl9, documentControl10 });

            Task.Run(() => DoWork())
            .ContinueWith(task => Completed(), TaskScheduler.FromCurrentSynchronizationContext());
        }
        private void _toolStripMenuItemCreateQuatation_Click(object sender, EventArgs e)
        {
            try
            {
                var initial   = _directivesViewer.SelectedItem;
                var quatation = new RequestForQuotation
                {
                    Parent      = initial,
                    ParentType  = initial.SmartCoreObjectType,
                    Title       = initial.Title,
                    OpeningDate = DateTime.Now,
                    Author      = initial.Author,
                    Remarks     = initial.Remarks,
                    Number      = initial.Number,
                };

                GlobalObjects.CasEnvironment.NewKeeper.Save(quatation);

                var initialRecords = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <InitialOrderRecordDTO, InitialOrderRecord>(new Filter("ParentPackageId", initial.ItemId));
                var ids            = initialRecords.Select(i => i.ProductId);
                if (ids.Count() > 0)
                {
                    var product = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <AccessoryDescriptionDTO, Product>(new Filter("ItemId", ids));
                    foreach (var addedInitialOrderRecord in initialRecords)
                    {
                        addedInitialOrderRecord.Product = product.FirstOrDefault(i => i.ItemId == addedInitialOrderRecord.ProductId);
                    }
                }

                foreach (var record in initialRecords)
                {
                    var newquatationRecord = new RequestForQuotationRecord(quatation.ItemId, record.Product, record.Quantity);
                    newquatationRecord.Priority              = record.Priority;
                    newquatationRecord.Measure               = record.Measure;
                    newquatationRecord.DeferredCategory      = record.DeferredCategory;
                    newquatationRecord.CostCondition         = record.CostCondition;
                    newquatationRecord.DestinationObjectType = record.DestinationObjectType;
                    newquatationRecord.DestinationObjectId   = record.DestinationObjectId;
                    newquatationRecord.Remarks               = record.Remarks;
                    newquatationRecord.LifeLimit             = new Lifelength(record.LifeLimit);
                    newquatationRecord.LifeLimitNotify       = new Lifelength(record.LifeLimitNotify);

                    GlobalObjects.CasEnvironment.Keeper.Save(newquatationRecord);
                }
                MessageBox.Show("Create quatation successful", "Message infomation", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);

                initial.Status          = WorkPackageStatus.Published;
                initial.PublishingDate  = DateTime.Now;
                initial.PublishedByUser = GlobalObjects.CasEnvironment.IdentityUser.ToString();
                initial.PublishedById   = GlobalObjects.CasEnvironment.IdentityUser.ItemId;
                GlobalObjects.CasEnvironment.NewKeeper.Save(initial);

                var form = new QuatationOrderFormNew(quatation);
                form.ShowDialog();
                AnimatedThreadWorker.RunWorkerAsync();
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while saving data", ex);
                throw;
            }
        }
示例#5
0
        private void _toolStripMenuItemPublish_Click(object sender, EventArgs e)
        {
            if (_directivesViewer.SelectedItems.Count == 0)
            {
                return;
            }

            if (_directivesViewer.SelectedItems[0] is RequestForQuotation)
            {
                var editForm = new CreatePurchaseOrderForm(_directivesViewer.SelectedItems[0] as RequestForQuotation);
                if (editForm.ShowDialog() == DialogResult.OK)
                {
                    MessageBox.Show("Create purchase successful", "Message infomation", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);

                    foreach (var rfq in _directivesViewer.SelectedItems)
                    {
                        if (rfq.Status == WorkPackageStatus.Published)
                        {
                            MessageBox.Show("Initional Order " + rfq.Title + " is already publisher.",
                                            (string)new GlobalTermsProvider()["SystemName"], MessageBoxButtons.OK,
                                            MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                            continue;
                        }

                        rfq.Status          = WorkPackageStatus.Published;
                        rfq.PublishingDate  = DateTime.Now;
                        rfq.PublishedByUser = GlobalObjects.CasEnvironment.IdentityUser.ToString();
                        rfq.PublishedById   = GlobalObjects.CasEnvironment.IdentityUser.ItemId;
                        GlobalObjects.CasEnvironment.NewKeeper.Save(rfq as BaseEntityObject);

                        SendQuotationOrder(rfq as RequestForQuotation);
                    }
                }
                AnimatedThreadWorker.RunWorkerAsync();
            }
            else if (_directivesViewer.SelectedItems[0] is InitialOrder)
            {
                var initial   = _directivesViewer.SelectedItems[0] as InitialOrder;
                var quatation = new RequestForQuotation
                {
                    Parent      = initial,
                    ParentType  = initial.SmartCoreObjectType,
                    Title       = initial.Title,
                    OpeningDate = DateTime.Now,
                    Author      = initial.Author,
                    Remarks     = initial.Remarks,
                    Number      = initial.Number,
                };

                GlobalObjects.CasEnvironment.NewKeeper.Save(quatation);

                var initialRecords = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <InitialOrderRecordDTO, InitialOrderRecord>(new Filter("ParentPackageId", initial.ItemId));
                var ids            = initialRecords.Select(i => i.ProductId);
                if (ids.Count() > 0)
                {
                    var product = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <AccessoryDescriptionDTO, Product>(new Filter("ItemId", ids));
                    foreach (var addedInitialOrderRecord in initialRecords)
                    {
                        addedInitialOrderRecord.Product = product.FirstOrDefault(i => i.ItemId == addedInitialOrderRecord.ProductId);
                    }
                }

                foreach (var record in initialRecords)
                {
                    var newquatationRecord = new RequestForQuotationRecord(quatation.ItemId, record.Product, record.Quantity);
                    newquatationRecord.Priority              = record.Priority;
                    newquatationRecord.Measure               = record.Measure;
                    newquatationRecord.DeferredCategory      = record.DeferredCategory;
                    newquatationRecord.CostCondition         = record.CostCondition;
                    newquatationRecord.DestinationObjectType = record.DestinationObjectType;
                    newquatationRecord.DestinationObjectId   = record.DestinationObjectId;
                    newquatationRecord.Remarks               = record.Remarks;
                    newquatationRecord.LifeLimit             = new Lifelength(record.LifeLimit);
                    newquatationRecord.LifeLimitNotify       = new Lifelength(record.LifeLimitNotify);

                    GlobalObjects.CasEnvironment.Keeper.Save(newquatationRecord);
                }

                initial.Status          = WorkPackageStatus.Published;
                initial.PublishingDate  = DateTime.Now;
                initial.PublishedByUser = GlobalObjects.CasEnvironment.IdentityUser.ToString();
                initial.PublishedById   = GlobalObjects.CasEnvironment.IdentityUser.ItemId;
                GlobalObjects.CasEnvironment.NewKeeper.Save(initial);

                var form = new QuatationOrderFormNew(quatation);
                if (form.ShowDialog() == DialogResult.OK)
                {
                    MessageBox.Show("Create quatation successful", "Message infomation", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
                AnimatedThreadWorker.RunWorkerAsync();
            }
            else if (_directivesViewer.SelectedItems[0] is PurchaseOrder)
            {
                var purch = _directivesViewer.SelectedItem as PurchaseOrder;
                //var form = new MoveProductForm(purch);
                //if (form.ShowDialog() == DialogResult.OK)
                //{
                purch.Status          = WorkPackageStatus.Published;
                purch.PublishingDate  = DateTime.Now;
                purch.PublishedByUser = GlobalObjects.CasEnvironment.IdentityUser.ToString();
                purch.PublishedById   = GlobalObjects.CasEnvironment.IdentityUser.ItemId;
                GlobalObjects.CasEnvironment.NewKeeper.Save(purch);
                SendPurchaseOrder(purch);
                //}
                AnimatedThreadWorker.RunWorkerAsync();
            }
        }
        /// <summary>
        /// Добавляется элемент в таблицу данных
        /// </summary>
        /// <param name="accessory">Добавлямая директива</param>
        /// <param name="supp"></param>
        /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param>
        private void AddItemDataset(Product accessory, Supplier supp, RequestForQuotationDataSet destinationDataSet)
        {
            RequestForQuotationRecord rec =
                _currentRfQ.PackageRecords.FirstOrDefault(item => item.PackageItemId == accessory.ItemId && item.PackageItemType == accessory.SmartCoreObjectType);


            String description = "";

            #region Инициализация description
            if (_currentRfQ.Parent is Aircraft)
            {
                description += ((Aircraft)_currentRfQ.Parent).Model;
            }

            if (accessory.GoodsClass.IsNodeOrSubNodeOf(GoodsClass.MaintenanceMaterials) ||
                accessory.GoodsClass.IsNodeOrSubNodeOf(GoodsClass.Tools))
            {
                //AccessoryRequired kr = (AccessoryRequired) accessory;

                //if (kr.ParentObject is Directive)
                //{
                //    Directive d = (Directive)kr.ParentObject;
                //    description += " " + d.Title +
                //                   " " + d.WorkType;
                //}
                //if (kr.ParentObject is DetailDirective)
                //{
                //    DetailDirective d = (DetailDirective)kr.ParentObject;
                //    description += " " + d.ParentDetail.PartNumber +
                //                   " " + d.DirectiveType;
                //}
                //if (kr.ParentObject is Detail) description += " " + ((Detail)kr.ParentObject).PartNumber;
                //if (kr.ParentObject is MaintenanceCheck) description += " " + ((MaintenanceCheck)kr.ParentObject).Name;
                //if (kr.ParentObject is NonRoutineJob) description += " " + ((NonRoutineJob)kr.ParentObject).Title;

                description += " kit desc: " + accessory.Description;
            }
            else
            {
                description += " desc: " + accessory.Description;
            }
            #endregion

            String costCondition = "";

            #region инициализация CostCondition
            if ((rec.CostCondition & ComponentStatus.New) != 0)
            {
                costCondition += "New";
            }
            if ((rec.CostCondition & ComponentStatus.Serviceable) != 0)
            {
                if (costCondition != "")
                {
                    costCondition += " or ";
                }
                costCondition += "Serviceable";
            }
            if ((rec.CostCondition & ComponentStatus.Overhaul) != 0)
            {
                if (costCondition != "")
                {
                    costCondition += " or ";
                }
                costCondition += "Overhaul";
            }
            #endregion

            destinationDataSet.KitsTable.AddKitsTableRow(accessory.PartNumber, description, (int)rec.Quantity,
                                                         costCondition, supp.Name);
        }