Esempio n. 1
0
 void OnCounterpartyChanged(Counterparty newCounterparty)
 {
     if (newCounterparty != null)
     {
         SelectedCounterparty = newCounterparty;
         CounterpartyChangeEvent evt = eventAggregator.GetEvent <CounterpartyChangeEvent>();
         evt.Publish(newCounterparty);
     }
 }
Esempio n. 2
0
        public IList <GoodsInRouteListResultWithSpecialRequirements> GetGoodsInRLWithoutEquipmentsWithSpecialRequirements(IUnitOfWork uow, RouteList routeList)
        {
            GoodsInRouteListResultWithSpecialRequirements resultAlias = null;
            VodovozOrder orderAlias                 = null;
            OrderItem    orderItemsAlias            = null;
            Counterparty counterpartyAlias          = null;
            Nomenclature OrderItemNomenclatureAlias = null;

            var ordersQuery = QueryOver.Of(() => orderAlias);

            var routeListItemsSubQuery = QueryOver.Of <RouteListItem>()
                                         .Where(r => r.RouteList.Id == routeList.Id)
                                         .Where(r => !r.WasTransfered || (r.WasTransfered && r.NeedToReload))
                                         .Select(r => r.Order.Id);

            ordersQuery.WithSubquery.WhereProperty(o => o.Id).In(routeListItemsSubQuery).Select(o => o.Id);

            var orderitemsQuery = uow.Session.QueryOver <OrderItem>(() => orderItemsAlias)
                                  .WithSubquery.WhereProperty(i => i.Order.Id).In(ordersQuery)
                                  .JoinAlias(() => orderItemsAlias.Nomenclature, () => OrderItemNomenclatureAlias)
                                  .JoinAlias(() => orderItemsAlias.Order, () => orderAlias)
                                  .JoinAlias(() => orderAlias.Client, () => counterpartyAlias)
                                  .Where(() => OrderItemNomenclatureAlias.Category.IsIn(Nomenclature.GetCategoriesForShipment()));

            return(orderitemsQuery.SelectList(list => list
                                              .Select(
                                                  Projections.GroupProperty(
                                                      Projections.Conditional(
                                                          Restrictions.And(
                                                              Restrictions.Where(() => counterpartyAlias.SpecialExpireDatePercentCheck),
                                                              Restrictions.Where(() => OrderItemNomenclatureAlias.Category == NomenclatureCategory.water)
                                                              ),
                                                          Projections.SqlFunction(
                                                              new SQLFunctionTemplate(NHibernateUtil.String, "CONCAT(?1, ' >', ?2, '% срока годности')"),
                                                              NHibernateUtil.String,
                                                              Projections.Property(() => OrderItemNomenclatureAlias.Name),
                                                              Projections.Cast(NHibernateUtil.String, Projections.Property(() => counterpartyAlias.SpecialExpireDatePercent))
                                                              ),
                                                          Projections.Property(() => OrderItemNomenclatureAlias.Name)
                                                          )
                                                      )
                                                  ).WithAlias(() => resultAlias.NomenclatureName)
                                              .Select(
                                                  Projections.Conditional(
                                                      Restrictions.And(
                                                          Restrictions.Where(() => counterpartyAlias.SpecialExpireDatePercentCheck),
                                                          Restrictions.Where(() => OrderItemNomenclatureAlias.Category == NomenclatureCategory.water)
                                                          ),
                                                      Projections.Property(() => counterpartyAlias.SpecialExpireDatePercent),
                                                      Projections.Constant(null, NHibernateUtil.Decimal)
                                                      )
                                                  ).WithAlias(() => resultAlias.ExpireDatePercent)
                                              .Select(() => OrderItemNomenclatureAlias.Id).WithAlias(() => resultAlias.NomenclatureId)
                                              .SelectSum(() => orderItemsAlias.Count).WithAlias(() => resultAlias.Amount))
                   .TransformUsing(Transformers.AliasToBean <GoodsInRouteListResultWithSpecialRequirements>())
                   .List <GoodsInRouteListResultWithSpecialRequirements>());
        }
Esempio n. 3
0
 public static int GetBottlesAtCouterpartyAndDeliveryPoint(IUnitOfWork uow, Counterparty counterparty, DeliveryPoint deliveryPoint, DateTime?before = null)
 {
     return(new EntityRepositories.Operations.BottlesRepository().GetBottlesAtCouterpartyAndDeliveryPoint(
                uow,
                counterparty,
                deliveryPoint,
                before
                ));
 }
 public AddExistingDocumentsDlg(IUnitOfWorkGeneric <Order> uow, Counterparty client)
 {
     this.Build();
     UoW = uow;
     counterpartydocumentsview1.Config(uow, client, true);
     orderselectedview1.Config(uow, client);
     orderselectedview1.OrderActivated += Orderselectedview1_OrderActivated;
     TabName = "Добавление документов";
 }
        public IList <VodovozOrder> GetCounterpartyOrders(IUnitOfWork UoW, Counterparty counterparty)
        {
            VodovozOrder orderAlias = null;

            return(UoW.Session.QueryOver(() => orderAlias)
                   .Where(() => orderAlias.Client.Id == counterparty.Id)
                   //.Where(() => orderAlias.OrderPaymentStatus != OrderPaymentStatus.paid)
                   .List());
        }
Esempio n. 6
0
        public static ChangedItem CompareAndChange(Counterparty oldCP, Counterparty newCP)
        {
            if (oldCP == null || newCP == null)
                return null;

            var result = new List<FieldChange>();

            if (oldCP.Name != newCP.Name)
            {
                result.Add(new FieldChange("Изменено имя", oldCP.Name, newCP.Name));
                oldCP.Name = newCP.Name;
            }
            if (oldCP.PersonType != newCP.PersonType)
            {
                result.Add(new FieldChange("Изменен тип", oldCP.PersonType.GetEnumTitle(), newCP.PersonType.GetEnumTitle()));
                oldCP.PersonType = newCP.PersonType;
            }
            if (oldCP.PaymentMethod != newCP.PaymentMethod)
            {
                result.Add(new FieldChange("Изменен метод оплаты", oldCP.PaymentMethod.GetEnumTitle(), newCP.PaymentMethod.GetEnumTitle()));
                oldCP.PaymentMethod = newCP.PaymentMethod;
            }
            if (oldCP.Comment != newCP.Comment)
            {
                result.Add(new FieldChange("Изменен комментарий", oldCP.Comment, newCP.Comment));
                oldCP.Comment = newCP.Comment;
            }
            if (oldCP.FullName != newCP.FullName)
            {
                result.Add(new FieldChange("Изменено полное имя", oldCP.FullName, newCP.FullName));
                oldCP.FullName = newCP.FullName;
            }
            if (oldCP.INN != newCP.INN)
            {
                result.Add(new FieldChange("Изменен ИНН", oldCP.INN, newCP.INN));
                oldCP.INN = newCP.INN;
            }
            if (oldCP.KPP != newCP.KPP)
            {
                result.Add(new FieldChange("Изменен КПП", oldCP.KPP, newCP.KPP));
                oldCP.KPP = newCP.KPP;
            }
            if (oldCP.TypeOfOwnership != newCP.TypeOfOwnership)
            {
                result.Add(new FieldChange("Изменена форма собственности", oldCP.TypeOfOwnership, newCP.TypeOfOwnership));
                oldCP.TypeOfOwnership = newCP.TypeOfOwnership;
            }

            if (result.Count > 0)
                return new ChangedItem
                {
                    Title = string.Format("Контрагент с кодом {0} и именем {1}", oldCP.Code1c, oldCP.Name),
                    Fields = result
                };
            else
                return null;
        }
Esempio n. 7
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            using (DBCtx db = new DBCtx())
            {
                Counterparty counterparty = (from c in db.Counterparty
                                             where c.inn == inn && c.deleted == null
                                             select c).FirstOrDefault();
                if (counterparty == null)
                {
                    MessageBox.Show("Не удалось найти покупателя или поставщика, удаление невозможно", "Информация");
                    return;
                }

                Dictionary dict = (from _d in db.Dictionary
                                   from _e in db.Entity
                                   where _d.entity_id == _e.id && _d.term_name == attr_name && _e.name == "counterparty"
                                   select _d).FirstOrDefault();

                if (dict == null)
                {
                    MessageBox.Show("Не удалось найти атрибут, удаление невозможно", "Информация");
                    return;
                }

                CounterpartyAttrs cpa = (from _cpa in db.CounterpartyAttrs
                                         where _cpa.counterparty_id == counterparty.id && _cpa.attr_id == dict.id && _cpa.attr_value == attr_value && _cpa.deleted == null
                                         select _cpa).FirstOrDefault();
                if (cpa == null)
                {
                    MessageBox.Show("Ошибка получения атрибута, возможно он был удален");
                    return;
                }

                cpa.deleted = "Y";

                Logs log = new Logs();
                log.username = username;
                log.acttime  = DateTime.Now;
                log.action   = String.Format("Delete counterparty attrs: counterparty(name - {0}, inn - {1}, kpp - {2}), attr (name - {3} id - {4}, value - {5})",
                                             counterparty.name, counterparty.inn, counterparty.kpp,
                                             dict.term_name, cpa.attr_id, cpa.attr_value);
                db.Logs.Add(log);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    MessageBox.Show("Произошла ошибка, атрибут покупателя или поставщика не был удален", "Информация");
                    return;
                }

                MessageBox.Show("Атрибут покупателя или поставщика успешно удален из системы", "Информация");
                this.Close();
            }
        }
Esempio n. 8
0
        private void UpdateNodes()
        {
            SelectedOrdersDocumentVMNode resultAlias = null;

            Vodovoz.Domain.Orders.Order orderAlias = null;
            Counterparty  counterpartyAlias        = null;
            OrderDocument orderDocumentAlias       = null;
            DeliveryPoint deliveryPointAlias       = null;

            var query = UoW.Session.QueryOver <OrderDocument>(() => orderDocumentAlias);

            Counterparty client = entryreferencevm1.GetSubject <Counterparty>();

            if (client != null)
            {
                query.Where(() => counterpartyAlias.Id == client.Id);
            }

            int orderId = default(int);

            if (int.TryParse(yvalidatedentry1.Text, out orderId))
            {
                //query.Where(() => orderAlias.Id == orderId);
                query.WhereRestrictionOn(() => orderAlias.Id).IsLike(orderId);
            }

            Documents = query
                        .JoinAlias(() => orderDocumentAlias.Order, () => orderAlias)
                        .JoinAlias(() => orderAlias.Client, () => counterpartyAlias)
                        .JoinAlias(() => orderAlias.DeliveryPoint, () => deliveryPointAlias)
                        .Where(() =>
                               orderDocumentAlias.GetType() == typeof(BillDocument) ||
                               orderDocumentAlias.GetType() == typeof(DoneWorkDocument) ||
                               orderDocumentAlias.GetType() == typeof(EquipmentTransferDocument) ||
                               orderDocumentAlias.GetType() == typeof(InvoiceBarterDocument) ||
                               orderDocumentAlias.GetType() == typeof(InvoiceDocument) ||
                               orderDocumentAlias.GetType() == typeof(InvoiceContractDoc) ||
                               orderDocumentAlias.GetType() == typeof(UPDDocument) ||
                               orderDocumentAlias.GetType() == typeof(DriverTicketDocument) ||
                               orderDocumentAlias.GetType() == typeof(Torg12Document) ||
                               orderDocumentAlias.GetType() == typeof(ShetFacturaDocument)
                               )
                        .SelectList(list => list
                                    .Select(() => orderAlias.Id).WithAlias(() => resultAlias.OrderId)
                                    .Select(() => orderAlias.DeliveryDate).WithAlias(() => resultAlias.OrderDate)
                                    .Select(() => counterpartyAlias.Id).WithAlias(() => resultAlias.ClientId)
                                    .Select(() => counterpartyAlias.Name).WithAlias(() => resultAlias.ClientName)
                                    .Select(() => orderDocumentAlias.Id).WithAlias(() => resultAlias.DocumentId)
                                    .Select(() => orderDocumentAlias.GetType()).WithAlias(() => resultAlias.DocumentTypeString)
                                    .Select(() => deliveryPointAlias.CompiledAddress).WithAlias(() => resultAlias.AddressString)
                                    ).OrderBy(() => orderAlias.DeliveryDate).Desc
                        .TransformUsing(Transformers.AliasToBean <SelectedOrdersDocumentVMNode>())
                        .List <SelectedOrdersDocumentVMNode>().ToList();

            datatreeviewOrderDocuments.SetItemsSource(Documents);
        }
        // Yeni kontragentin yaddaşda saxlanılması:
        private void Save_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(TxtCounterpartyName.Text))
            {
                TxtCounterpartyName.BorderBrush     = Brushes.Red;
                TxtCounterpartyName.BorderThickness = new Thickness(2);
            }
            if (string.IsNullOrWhiteSpace(TxtResponsiblePerson.Text))
            {
                TxtResponsiblePerson.BorderBrush     = Brushes.Red;
                TxtResponsiblePerson.BorderThickness = new Thickness(2);
            }
            if (string.IsNullOrWhiteSpace(TxtPhone.Text))
            {
                TxtPhone.BorderBrush     = Brushes.Red;
                TxtPhone.BorderThickness = new Thickness(2);
            }
            if (string.IsNullOrWhiteSpace(TxtAddress.Text))
            {
                TxtAddress.BorderBrush     = Brushes.Red;
                TxtAddress.BorderThickness = new Thickness(2);
            }
            if (string.IsNullOrWhiteSpace(TxtCounterpartyName.Text) ||
                string.IsNullOrWhiteSpace(TxtResponsiblePerson.Text) ||
                string.IsNullOrWhiteSpace(TxtPhone.Text) ||
                string.IsNullOrWhiteSpace(TxtAddress.Text))
            {
                TxtBlcAttention.Text = "Qırmızı sahələr doldurulmalıdır";
                return;
            }
            if (CmbPosition.SelectedItem == null)
            {
                MessageBox.Show("Vəzifə seçin");
                return;
            }
            TxtBlcAttention.Text = "";
            if (db.Counterparties.Count(c => c.Phone == TxtPhone.Text) > 0)
            {
                TxtBlcAttention.Text = "Bu telefon nömrəsi artıq qeyd olunub";
                TxtPhone.Focus();
                return;
            }
            Counterparty counterparty = new Counterparty
            {
                Name = TxtCounterpartyName.Text,
                ResponsiblePerson = TxtResponsiblePerson.Text,
                PositionID        = db.Positions.First(p => p.Name == CmbPosition.SelectedValue.ToString()).Id,
                Phone             = TxtPhone.Text,
                Mobile            = TxtMobile.Text,
                Address           = TxtAddress.Text
            };

            db.Counterparties.Add(counterparty);
            db.SaveChanges();
            TxtBlcAttention.Text = "Yeni kontragent yaddaşa yazıldı";
        }
Esempio n. 10
0
        // Kontragentin məlumat bazasından silinməsi:
        private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            Counterparty counterparty = db.Counterparties.Find(selectedCounterparty.Id);

            db.Counterparties.Remove(counterparty);
            db.SaveChanges();
            TxtBlcAttention.Text = "Kontragent silindi";
            BtnUpdate.IsEnabled  = false;
            crmWindow.Refresh();
        }
Esempio n. 11
0
        public bool IsBottleStockExists(IUnitOfWork uow, Counterparty counterparty)
        {
            var stockBottleOrder = uow.Session.QueryOver <VodovozOrder>()
                                   .Where(x => x.IsBottleStock)
                                   .And(x => x.Client.Id == counterparty.Id)
                                   .Take(1)
                                   .SingleOrDefault();

            return(stockBottleOrder != null);
        }
Esempio n. 12
0
        public CounterpartyContractDlg(Counterparty counterparty, PaymentType paymentType, Organization organizetion, DateTime?date) : this(counterparty, organizetion)
        {
            var contractType = DocTemplateRepository.GetContractTypeForPaymentType(counterparty.PersonType, paymentType);

            Entity.ContractType = contractType;
            if (date.HasValue)
            {
                UoWGeneric.Root.IssueDate = date.Value;
            }
        }
Esempio n. 13
0
        public static IList <Residue> GetResidueByCounterpary(IUnitOfWork UoW, Counterparty counterparty, int count = int.MaxValue)
        {
            Residue residueAlias = null;
            var     residueQuery = UoW.Session.QueryOver <Residue>(() => residueAlias)
                                   .Where(() => residueAlias.Customer.Id == counterparty.Id)
                                   .Take(count)
                                   .List();

            return(residueQuery);
        }
Esempio n. 14
0
 public VirtualContract(Counterparty counterparty, Organization organization, string title)
 {
     //В договор создаем виртуальный номер id, по номеру контрагента но отрицательный, чтобы не пересекалось с настоящими id договоров.
     //Поиск в GetReferenceId ищет по id.
     Id = -counterparty.Id;
     ContractSubNumber = 1;
     Counterparty      = counterparty;
     Organization      = organization;
     this.title        = title;
 }
Esempio n. 15
0
        void OnCounterpartyChanged(Counterparty newCounterparty)
        {
            var usage = usageService.FindByCounterparty(newCounterparty);

            var pivotedUsageData = new PivotedUsageData(usage);

            Usage = pivotedUsageData;

            CounterpartyName = newCounterparty.Name;
        }
        private void Refresh(object changedObj)
        {
            if (InfoProvider == null)
            {
                return;
            }

            _counterparty = changedObj as Counterparty;
            RefreshData();
        }
Esempio n. 17
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (!fillCheck())
            {
                MessageBox.Show("Одно или несколько полей не заполнены", "Информация");
                return;
            }
            using (DBCtx db = new DBCtx())
            {
                string inn     = tbINN.Text;
                int    attr_id = 0;
                int.TryParse(cbAttr.SelectedValue.ToString(), out attr_id);
                string val = tbVal.Text;

                if (attr_id == 0)
                {
                    MessageBox.Show("Ошибка выбора элемента списка", "Информация");
                    return;
                }

                Counterparty counterparty = (from c in db.Counterparty
                                             where c.inn == inn && c.deleted == null
                                             select c).FirstOrDefault();
                if (counterparty == null)
                {
                    MessageBox.Show("Покупатель или поставщик не найден, возможно он был удален", "Информация");
                    return;
                }

                CounterpartyAttrs cpa = new CounterpartyAttrs();
                cpa.attr_id         = attr_id;
                cpa.counterparty_id = counterparty.id;
                cpa.attr_value      = val;
                db.CounterpartyAttrs.Add(cpa);

                Logs log = new Logs();
                log.username = username;
                log.acttime  = DateTime.Now;
                log.action   = String.Format("Add counterparty attribute: counterparty(name - {0}, inn - {1}, kpp - {2}), attribute(attr - {3}, value - {4})",
                                             counterparty.name, counterparty.inn, counterparty.kpp, cbAttr.GetItemText(cbAttr.SelectedItem), val);
                db.Logs.Add(log);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    MessageBox.Show("Произошла ошибка, атрибут покупателя или поставщика не был создан", "Информация");
                    return;
                }

                MessageBox.Show("Атрибут покупателя или поставщика успешно создан в системе", "Информация");
                this.Close();
            }
        }
 public ActionResult Edit([Bind(Include = "Id,IdOrest,OwneshipTypeId,Name,FullName,VATPayer,CodVATPayer,VATCertificateNumber,BankName,AccountNumber,BankMFO,EDRPO,LegalAdress,ActualAddress,PhoneNumber,ContactPerson,Comment,Discount")] Counterparty counterparty)
 {
     if (ModelState.IsValid)
     {
         db.Entry(counterparty).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Details/" + counterparty.Id));
     }
     ViewBag.OwneshipTypeId = new SelectList(db.OwnershipTypes, "Id", "OwnershipTypeName", counterparty.OwneshipTypeId);
     return(View(counterparty));
 }
        public IList <IncomingCallsAnalysisReportNode> GetLastOrderIdAndDeliveryDateByPhone(
            IUnitOfWork uow, IEnumerable <string> incomingCallsNumbers)
        {
            Phone         phoneAlias                    = null;
            Counterparty  counterpartyAlias             = null;
            DeliveryPoint deliveryPointAlias            = null;
            Order         orderAlias                    = null;
            IncomingCallsAnalysisReportNode resultAlias = null;

            var query = uow.Session.QueryOver(() => phoneAlias)
                        .Left.JoinAlias(() => phoneAlias.Counterparty, () => counterpartyAlias)
                        .Left.JoinAlias(() => phoneAlias.DeliveryPoint, () => deliveryPointAlias)
                        .Where(() => counterpartyAlias.Id != null || deliveryPointAlias.Id != null)
                        .WhereRestrictionOn(() => phoneAlias.DigitsNumber).IsInG(incomingCallsNumbers);

            var lastOrderIdForCounterparty = QueryOver.Of(() => orderAlias)
                                             .Where(() => orderAlias.Client.Id == counterpartyAlias.Id)
                                             .Select(o => o.Id)
                                             .OrderBy(o => o.DeliveryDate).Desc
                                             .Take(1);

            var lastOrderIdForDeliveryPoint = QueryOver.Of(() => orderAlias)
                                              .Where(() => orderAlias.DeliveryPoint.Id == deliveryPointAlias.Id)
                                              .Select(o => o.Id)
                                              .OrderBy(o => o.DeliveryDate).Desc
                                              .Take(1);

            var lastOrderDeliveryDateForCounterparty = QueryOver.Of(() => orderAlias)
                                                       .Where(() => orderAlias.Client.Id == counterpartyAlias.Id)
                                                       .Select(o => o.DeliveryDate)
                                                       .OrderBy(o => o.DeliveryDate).Desc
                                                       .Take(1);

            var lastOrderDeliveryDateForDeliveryPoint = QueryOver.Of(() => orderAlias)
                                                        .Where(() => orderAlias.DeliveryPoint.Id == deliveryPointAlias.Id)
                                                        .Select(o => o.DeliveryDate)
                                                        .OrderBy(o => o.DeliveryDate).Desc
                                                        .Take(1);

            return(query.SelectList(list => list
                                    .Select(() => phoneAlias.DigitsNumber).WithAlias(() => resultAlias.PhoneDigitsNumber)
                                    .Select(() => counterpartyAlias.Id).WithAlias(() => resultAlias.CounterpartyId)
                                    .Select(() => deliveryPointAlias.Id).WithAlias(() => resultAlias.DeliveryPointId)
                                    .Select(Projections.Conditional(
                                                Restrictions.IsNull(Projections.Property(() => counterpartyAlias.Id)),
                                                Projections.SubQuery(lastOrderIdForDeliveryPoint),
                                                Projections.SubQuery(lastOrderIdForCounterparty))).WithAlias(() => resultAlias.LastOrderId)
                                    .Select(Projections.Conditional(
                                                Restrictions.IsNull(Projections.Property(() => counterpartyAlias.Id)),
                                                Projections.SubQuery(lastOrderDeliveryDateForDeliveryPoint),
                                                Projections.SubQuery(lastOrderDeliveryDateForCounterparty))).WithAlias(() => resultAlias.LastOrderDeliveryDate))
                   .TransformUsing(Transformers.AliasToBean <IncomingCallsAnalysisReportNode>())
                   .List <IncomingCallsAnalysisReportNode>());
        }
Esempio n. 20
0
        public VodovozOrder GetLatestCompleteOrderForCounterparty(IUnitOfWork UoW, Counterparty counterparty)
        {
            VodovozOrder orderAlias  = null;
            var          queryResult = UoW.Session.QueryOver(() => orderAlias)
                                       .Where(() => orderAlias.Client.Id == counterparty.Id)
                                       .Where(() => orderAlias.OrderStatus == OrderStatus.Closed)
                                       .OrderBy(() => orderAlias.Id).Desc
                                       .Take(1).List();

            return(queryResult.FirstOrDefault());
        }
Esempio n. 21
0
        /// <summary>
        /// Creates the counterparty.
        /// </summary>
        /// <param name="counterparty">The counterparty.</param>
        /// <returns>The <see cref="Task"/> containing the API response with <see cref="Counterparty"/>.</returns>
        public virtual Task <ApiResponse <Counterparty> > CreateAsync(Counterparty counterparty)
        {
            if (counterparty == null)
            {
                throw new ArgumentNullException(nameof(counterparty));
            }

            var requestContext = PrepareRequestContext(method: Method.POST).WithBody(Serialize(counterparty));

            return(CallAsync <Counterparty>(requestContext));
        }
Esempio n. 22
0
        public Modify(string username, Counterparty oldCounterparty)
        {
            InitializeComponent();

            this.username        = username;
            this.oldCounterparty = oldCounterparty;

            tbName.Text = oldCounterparty.name;
            tbINN.Text  = oldCounterparty.inn;
            tbKPP.Text  = oldCounterparty.kpp;
        }
Esempio n. 23
0
        public override void UpdateNodes()
        {
            TransferOperationDocument transferAlias        = null;
            Employee                authorAlias            = null;
            Employee                lastEditorAlias        = null;
            Counterparty            fromCounterpartyAlias  = null;
            Counterparty            toCounterpartyAlias    = null;
            DeliveryPoint           fromDeliveryPointAlias = null;
            DeliveryPoint           toDeliveryPointAlias   = null;
            TransferOperationVMNode resultAlias            = null;
            var result = new List <TransferOperationVMNode>();

            var transferQuery = UoW.Session.QueryOver <TransferOperationDocument>(() => transferAlias)
                                .JoinQueryOver(() => transferAlias.Author, () => authorAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                                .JoinQueryOver(() => transferAlias.LastEditor, () => lastEditorAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                                .JoinQueryOver(() => transferAlias.FromClient, () => fromCounterpartyAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                                .JoinQueryOver(() => transferAlias.ToClient, () => toCounterpartyAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                                .JoinQueryOver(() => transferAlias.FromDeliveryPoint, () => fromDeliveryPointAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                                .JoinQueryOver(() => transferAlias.ToDeliveryPoint, () => toDeliveryPointAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin);

            var transferList = transferQuery
                               .SelectList(list => list
                                           .Select(() => transferAlias.Id).WithAlias(() => resultAlias.Id)
                                           .Select(() => transferAlias.TimeStamp).WithAlias(() => resultAlias.Date)
                                           .Select(() => transferAlias.Comment).WithAlias(() => resultAlias.Comment)
                                           .Select(() => fromCounterpartyAlias.Name).WithAlias(() => resultAlias.FromCounterparty)
                                           .Select(() => toCounterpartyAlias.Name).WithAlias(() => resultAlias.ToCounterparty)
                                           .Select(() => fromDeliveryPointAlias.ShortAddress).WithAlias(() => resultAlias.FromDeliveryPoint)
                                           .Select(() => toDeliveryPointAlias.ShortAddress).WithAlias(() => resultAlias.ToDeliveryPoint)
                                           .Select(() => authorAlias.LastName).WithAlias(() => resultAlias.AuthorSurname)
                                           .Select(() => authorAlias.Name).WithAlias(() => resultAlias.AuthorName)
                                           .Select(() => authorAlias.Patronymic).WithAlias(() => resultAlias.AuthorPatronymic)
                                           .Select(() => lastEditorAlias.LastName).WithAlias(() => resultAlias.LastEditorSurname)
                                           .Select(() => lastEditorAlias.Name).WithAlias(() => resultAlias.LastEditorName)
                                           .Select(() => lastEditorAlias.Patronymic).WithAlias(() => resultAlias.LastEditorPatronymic))
                               .TransformUsing(Transformers.AliasToBean <TransferOperationVMNode>())
                               .List <TransferOperationVMNode>();

            result.AddRange(transferList);

            result.Sort((x, y) => {
                if (x.Date < y.Date)
                {
                    return(1);
                }
                if (x.Date == y.Date)
                {
                    return(0);
                }
                return(-1);
            });

            SetItemsSource(result);
        }
Esempio n. 24
0
 public void AddOrUpdateFixedPrice(IUnitOfWork uow, Counterparty counterparty, Nomenclature nomenclature, decimal fixedPrice)
 {
     if (nomenclature.Category == NomenclatureCategory.water)
     {
         AddOrUpdateWaterFixedPrice(uow, counterparty, nomenclature, fixedPrice);
     }
     else
     {
         throw new NotSupportedException("Не поддерживается.");
     }
 }
Esempio n. 25
0
        /// <summary>
        /// Двойной клик по контрагенту
        /// </summary>
        private void dgCounterparties_DoubleClick(object sender, MouseButtonEventArgs e)
        {
            Counterparty counterparty = (Counterparty)dataGrid.SelectedItem;

            CounterpartyWindow view = new CounterpartyWindow(WindowMode.Read, counterparty);

            view.Owner = this;

            view.ShowDialog();

            dataGrid.Items.Refresh();
        }
Esempio n. 26
0
        public int GetReferenceId(Account account, Counterparty owner)
        {
            int id;

            if (!items.TryGetValue(account, out id))
            {
                id = ++exportData.objectCounter;
                items.Add(account, id);
                Add(account, owner);
            }
            return(id);
        }
Esempio n. 27
0
        public void Add(Account account, Counterparty owner)
        {
            var item = new CatalogObjectNode
            {
                Id            = GetReferenceId(account, owner),
                CatalogueType = this.Name
            };

            item.Reference = CreateReferenceTo(account, owner);
            item.Properties.AddRange(GetProperties(account, owner));
            exportData.Objects.Add(item);
        }
Esempio n. 28
0
        public void Add(Counterparty counterparty)
        {
            var cp = new EFDataLayer.Counterparty();

            cp.Code = counterparty.Code;
            cp.Name = counterparty.Name;

            if (counterparty.IsValid)
            {
                counterparty.Id = counterpartyRepository.Add(cp);
            }
        }
Esempio n. 29
0
        /// <summary>
        /// Редактирование контрагента
        /// </summary>
        private void EditCounterparty_Execute(object sender, ExecutedRoutedEventArgs e)
        {
            Counterparty counterparty = (Counterparty)dataGrid.SelectedItem;

            CounterpartyWindow view = new CounterpartyWindow(WindowMode.Edit, counterparty);

            view.Owner = this;

            view.ShowDialog();

            dataGrid.Items.Refresh();
        }
        private Task <Result> ChangeActivityStatus(Counterparty counterparty, ActivityStatus status)
        {
            var convertedStatus = ConvertToDbStatus(status);

            if (convertedStatus == counterparty.IsActive)
            {
                return(Task.FromResult(Result.Success()));
            }

            return(ChangeCounterpartyActivityStatus()
                   .Tap(ChangeCounterpartyAccountsActivityStatus)
                   .Tap(ChangeCounterpartyAgenciesActivityStatus));


            async Task <Result> ChangeCounterpartyActivityStatus()
            {
                counterparty.IsActive = convertedStatus;
                counterparty.Updated  = _dateTimeProvider.UtcNow();

                _context.Update(counterparty);
                await _context.SaveChangesAsync();

                return(Result.Success());
            }

            async Task ChangeCounterpartyAccountsActivityStatus()
            {
                var counterpartyAccounts = await _context.CounterpartyAccounts
                                           .Where(c => c.CounterpartyId == counterparty.Id)
                                           .ToListAsync();

                foreach (var account in counterpartyAccounts)
                {
                    account.IsActive = convertedStatus;
                }

                _context.UpdateRange(counterpartyAccounts);
                await _context.SaveChangesAsync();
            }

            async Task ChangeCounterpartyAgenciesActivityStatus()
            {
                var agencies = await _context.Agencies
                               .Where(ag => ag.CounterpartyId == counterparty.Id && ag.IsActive != convertedStatus)
                               .ToListAsync();

                foreach (var agency in agencies)
                {
                    await ChangeActivityStatus(agency, status);
                }
            }
        }
Esempio n. 31
0
        public CounterpartyContractDlg(Counterparty counterparty, PaymentType paymentType, Organization organizetion, DateTime?date) : this(counterparty, organizetion)
        {
            var orderOrganizationProviderFactory = new OrderOrganizationProviderFactory();
            var orderOrganizationProvider        = orderOrganizationProviderFactory.CreateOrderOrganizationProvider();
            var counterpartyContractRepository   = new CounterpartyContractRepository(orderOrganizationProvider);
            var contractType = counterpartyContractRepository.GetContractTypeForPaymentType(counterparty.PersonType, paymentType);

            Entity.ContractType = contractType;
            if (date.HasValue)
            {
                UoWGeneric.Root.IssueDate = date.Value;
            }
        }
Esempio n. 32
0
        public static int GetBottlesAtCounterparty(IUnitOfWork UoW, Counterparty counterparty, DateTime? before = null)
        {
            BottlesMovementOperation operationAlias = null;
            BottlesBalanceQueryResult result = null;
            var queryResult = UoW.Session.QueryOver<BottlesMovementOperation>(() => operationAlias)
                .Where(() => operationAlias.Counterparty.Id == counterparty.Id);
            if (before.HasValue)
                queryResult.Where(() => operationAlias.OperationTime < before);

            var bottles =  queryResult.SelectList(list => list
                    .SelectSum(() => operationAlias.Delivered).WithAlias(() => result.Delivered)
                    .SelectSum(() => operationAlias.Returned).WithAlias(() => result.Returned)
                ).TransformUsing(Transformers.AliasToBean<BottlesBalanceQueryResult>()).List<BottlesBalanceQueryResult>()
                .FirstOrDefault()?.BottlesDebt ?? 0;
            return bottles;
        }
        public void Refresh()
        {
            Counterparty = (InfoProvider as ICounterpartyInfoProvider)?.Counterparty;
            if (Counterparty == null)
                return;
            labelName.LabelProp = Counterparty.FullName;
            textviewComment.Buffer.Text = Counterparty.Comment;

            var debt = MoneyRepository.GetCounterpartyDebt(InfoProvider.UoW, Counterparty);
            string labelDebtFormat 		 = "<span {0}>{1}</span>";
            string backgroundDebtColor 	 = "";
            if (debt > 0)
            {
                backgroundDebtColor 	 = "background=\"red\"";
                ylabelDebtInfo.LabelProp = "Долг:";
            }
            if (debt < 0)
            {
                backgroundDebtColor 	 = "background=\"lightgreen\"";
                ylabelDebtInfo.LabelProp = "Баланс:";
                debt 	= -debt;
            }
            labelDebt.Markup = string.Format(labelDebtFormat, backgroundDebtColor, CurrencyWorks.GetShortCurrencyString(debt));

            var latestOrder = OrderRepository.GetLatestCompleteOrderForCounterparty(InfoProvider.UoW, Counterparty);
            if (latestOrder != null)
            {
                var daysFromLastOrder = (DateTime.Today - latestOrder.DeliveryDate.Value).Days;
                labelLatestOrderDate.Text = String.Format(
                    "{0} ({1} {2} назад)",
                    latestOrder.DeliveryDate.Value.ToShortDateString(),
                    daysFromLastOrder,
                    RusNumber.Case(daysFromLastOrder, "день", "дня", "дней")
                );
            }
            else
            {
                labelLatestOrderDate.Text = "(Выполненных заказов нет)";
            }
            var currentOrders = OrderRepository.GetCurrentOrders(InfoProvider.UoW, Counterparty);
            ytreeCurrentOrders.SetItemsSource<Order>(currentOrders);
            vboxCurrentOrders.Visible = currentOrders.Count > 0;
        }
        public static Counterparty CreateEntityWithTwoDetailsAndTwoMappings()
        {
            SourceSystem endur = repository.Queryable<SourceSystem>().Where(system => system.Name == "Endur").First();
            SourceSystem trayport =
                repository.Queryable<SourceSystem>().Where(system => system.Name == "Trayport").First();

            var entity = new Counterparty();
            entity.Party = ObjectMother.Create<Party>();
            baseDate = DateTime.Today.Subtract(new TimeSpan(72, 0, 0));
            SystemTime.UtcNow = () => new DateTime(DateTime.Today.Subtract(new TimeSpan(73, 0, 0)).Ticks);

            AddDetailsToEntity(entity, DateTime.MinValue, baseDate);
            AddDetailsToEntity(entity, baseDate, DateTime.MaxValue);

            SystemTime.UtcNow = () => DateTime.Now;

            var trayportMapping = new PartyRoleMapping
                {
                    MappingValue = Guid.NewGuid().ToString(),
                    System = trayport,
                    Validity = new DateRange(DateTime.MinValue, DateTime.MaxValue)
                };

            var endurMapping = new PartyRoleMapping
                {
                    MappingValue = Guid.NewGuid().ToString(),
                    System = endur,
                    IsDefault = true,
                    Validity = new DateRange(DateTime.MinValue, DateTime.MaxValue)
                };

            entity.ProcessMapping(trayportMapping);
            entity.ProcessMapping(endurMapping);

            repository.Add(entity);
            repository.Flush();
            return entity;
        }
        public void ValidContractIsSaved()
        {
            // Arrange
            var validatorFactory = new Mock<IValidatorEngine>();
            var mappingEngine = new Mock<IMappingEngine>();
            var repository = new Mock<IRepository>();
            var searchCache = new Mock<ISearchCache>();

            var service = new CounterpartyService(validatorFactory.Object, mappingEngine.Object, repository.Object, searchCache.Object);

            var counterparty = new Counterparty();
            var contract = new EnergyTrading.MDM.Contracts.Sample.Counterparty();

            validatorFactory.Setup(x => x.IsValid(It.IsAny<EnergyTrading.MDM.Contracts.Sample.Counterparty>(), It.IsAny<IList<IRule>>())).Returns(true);
            mappingEngine.Setup(x => x.Map<EnergyTrading.MDM.Contracts.Sample.Counterparty, Counterparty>(contract)).Returns(counterparty);

            // Act
            var expected = service.Create(contract);

            // Assert
            Assert.AreSame(expected, counterparty, "Counterparty differs");
            repository.Verify(x => x.Add(counterparty));
            repository.Verify(x => x.Flush());
        }
Esempio n. 36
0
 public static IUnitOfWorkGeneric<DeliveryPoint> CreateUowForNew(Counterparty counterparty)
 {
     var uow = UnitOfWorkFactory.CreateWithNewRoot<DeliveryPoint> ();
     uow.Root.Counterparty = counterparty;
     return uow;
 }
 public static IList<Equipment> GetEquipmentForClient(IUnitOfWork uow, Counterparty counterparty)
 {
     return GetEquipmentAtDeliveryPointQuery(counterparty, null)
         .GetExecutableQueryOver(uow.Session)
         .List();
 }
        public static QueryOver<Equipment> GetEquipmentAtDeliveryPointQuery(Counterparty client, DeliveryPoint deliveryPoint)
        {
            Equipment equipmentAlias=null;
            CounterpartyMovementOperation operationAlias = null;
            CounterpartyMovementOperation subsequentOperationAlias = null;

            var subsequentOperationsSubquery = QueryOver.Of<CounterpartyMovementOperation> (() => subsequentOperationAlias)
                .Where (() => operationAlias.Id < subsequentOperationAlias.Id && operationAlias.Equipment == subsequentOperationAlias.Equipment)
                .Select (op=>op.Id);

            var availableEquipmentIDsSubquery = QueryOver.Of<CounterpartyMovementOperation>(() => operationAlias)
                .WithSubquery.WhereNotExists(subsequentOperationsSubquery)
                .Where (() => operationAlias.IncomingCounterparty.Id == client.Id);
            if (deliveryPoint != null)
                availableEquipmentIDsSubquery
                    .Where(() => operationAlias.IncomingDeliveryPoint.Id == deliveryPoint.Id);
            availableEquipmentIDsSubquery
                .Select(op=>op.Equipment.Id);
            return QueryOver.Of<Equipment> (() => equipmentAlias).WithSubquery.WhereProperty (() => equipmentAlias.Id).In (availableEquipmentIDsSubquery);
        }
 private static void CreateSearchData(Search search, Counterparty entity1, Counterparty entity2)
 {
     search.AddSearchCriteria(SearchCombinator.Or)
         .AddCriteria("Name", SearchCondition.Equals, entity1.LatestDetails.Name)
         .AddCriteria("Name", SearchCondition.Equals, entity2.LatestDetails.Name);
 }
 private static void AddDetailsToEntity(Counterparty entity, DateTime startDate, DateTime endDate)
 {
     var newEntity = ObjectMother.Create<Counterparty>();
     entity.PartyRoleType = newEntity.PartyRoleType;
     entity.AddDetails(new CounterpartyDetails() {
         Name = newEntity.Details[0].Name,
         Phone = ((CounterpartyDetails)newEntity.Details[0]).Phone,
         Fax = ((CounterpartyDetails)newEntity.Details[0]).Fax,
         ShortName = ((CounterpartyDetails)newEntity.Details[0]).ShortName,
     });
 }
 public static void CreateSearch(Search search, Counterparty entity1, Counterparty entity2)
 {
     CreateSearchData(search, entity1, entity2);
 }
 public virtual void CreateOperation(Counterparty counterpartySrc, DeliveryPoint pointSrc, Counterparty counterpartyDst, DeliveryPoint pointDst, DateTime time)
 {
     WarehouseMovementOperation = null;
     CounterpartyMovementOperation = new CounterpartyMovementOperation
         {
             IncomingCounterparty = counterpartyDst,
             IncomingDeliveryPoint = pointDst,
             WriteoffCounterparty = counterpartySrc,
             WriteoffDeliveryPoint = pointSrc,
             Amount = Amount,
             OperationTime = time,
             Nomenclature = Nomenclature,
             Equipment = Equipment
         };
 }
Esempio n. 43
0
 public static DeliveryPoint Create(Counterparty counterparty)
 {
     var point = new DeliveryPoint ();
     point.Counterparty = counterparty;
     counterparty.DeliveryPoints.Add(point);
     return point;
 }