Пример #1
0
 public DdsSellsView(DdsDnevnikModel model, DdsDnevnicItem item, DdsViewModel.RefreshElement vmRefreshExecuted, DdsViewModel.RefreshElement vmSavedExecuted, DdsViewModel.CancelSaveElement vmCanelExecuted)
 {
     vm = new DdsViewModel(model, item);
     vm.RefreshExecuted += vmRefreshExecuted;
     vm.DdsSaved        += vmSavedExecuted;
     vm.CancelSave      += vmCanelExecuted;
     InitializeComponent();
     this.DataContext = vm;
 }
Пример #2
0
        private void UpdateRelatedDds()
        {
            if (MessageBoxWrapper.Show("Запази стари стойности в дневник?", "Предупреждение", MessageBoxWrapperButton.YesNo) == MessageBoxWrapperResult.Yes)
            {
                return;
            }
            bool            haschange       = false;
            DdsDnevnikModel ddsDnevnikModel = Context.LoadDenevnicItem(CurrentWraperConto.CurrentConto.Id, 1);

            ddsDnevnikModel.CodeDoc = Kd;
            ddsDnevnikModel.Stoke   = CurrentWraperConto.CurrentConto.Reason;
            ddsDnevnikModel.Date    = CurrentWraperConto.CurrentConto.Data;
            if (ItemsDebit != null && (ItemsCredit != null && (ItemsCredit.Count == 0 && ItemsDebit.Count == 0)))
            {
                ddsDnevnikModel.DataF = CurrentWraperConto.CurrentConto.Data;
            }
            if (ddsDnevnikModel.IsLinked)
            {
                foreach (SaldoItem saldoItem in ItemsDebit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }
                foreach (SaldoItem saldoItem in ItemsCredit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }

                var vm = new DdsViewModel(ddsDnevnikModel,
                                          new DdsDnevnicItem
                {
                    DdsPercent = CurrItemDdsDnevPurchases.DdsPercent,
                    DdsSuma    = CurrentWraperConto.Oborot,
                    Name       = CurrItemDdsDnevPurchases.Name,
                    In         = true
                });
                vm.SaveFromOutside();

                haschange = true;
            }
            ddsDnevnikModel         = Context.LoadDenevnicItem(CurrentWraperConto.CurrentConto.Id, 2);
            ddsDnevnikModel.CodeDoc = Kd;
            ddsDnevnikModel.Stoke   = CurrentWraperConto.CurrentConto.Reason;
            ddsDnevnikModel.Date    = CurrentWraperConto.CurrentConto.Data;
            if (ItemsDebit != null && (ItemsCredit != null && (ItemsCredit.Count == 0 && ItemsDebit.Count == 0)))
            {
                ddsDnevnikModel.DataF = CurrentWraperConto.CurrentConto.Data;
            }
            if (ddsDnevnikModel.IsLinked)
            {
                foreach (SaldoItem saldoItem in ItemsCredit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }
                foreach (SaldoItem saldoItem in ItemsDebit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }

                var vm = new DdsViewModel(ddsDnevnikModel,
                                          new DdsDnevnicItem
                {
                    DdsPercent = CurrItemDdsDnevSales.DdsPercent,
                    DdsSuma    = CurrentWraperConto.Oborot,
                    Name       = CurrItemDdsDnevSales.Name,
                    In         = true
                });
                vm.SaveFromOutside();

                haschange = true;
            }
            if (haschange)
            {
                MessageBoxWrapper.Show(Resources.ContoViewModel_UpdateRelatedDds_Message, Resources.ContoViewModel_UpdateRelatedDds_Title);
            }
        }
Пример #3
0
        private static decimal SaveDDS(TempoDataBaseContext context, ContoAll allconto)
        {
            var itemsDdsDnevPurchases    = new List <DdsItemModel>(context.GetAllDnevItems(1));
            var itemsDdsDnevSales        = new List <DdsItemModel>(context.GetAllDnevItems(0));
            var currItemDdsDnevPurchases = itemsDdsDnevPurchases.FirstOrDefault(e => e.Code == allconto.KindDds);
            var currItemDdsDnevSales     = itemsDdsDnevSales.FirstOrDefault(e => e.Code == allconto.KindDds);
            int codeDnev = 2;

            if (allconto.KindDeal == "1")
            {
                codeDnev = 1;
            }
            DdsDnevnikModel ddsDnevnikModel = context.LoadDenevnicItem(allconto.Conto.Id, codeDnev);

            //ddsDnevnikModel.DocId = allconto.Conto.DocNum;
            ddsDnevnikModel.Date         = allconto.Conto.Data;
            ddsDnevnikModel.DataF        = allconto.Conto.Data;
            ddsDnevnikModel.KindActivity = codeDnev;
            ddsDnevnikModel.KindDoc      = 1;
            ddsDnevnikModel.Title        = codeDnev == 1 ? "Дневник покупки" : "Дневник продажби";
            ddsDnevnikModel.CodeDoc      = allconto.Conto.KD;
            ddsDnevnikModel.Stoke        = allconto.Conto.Reason;
            ddsDnevnikModel.DdsIncluded  = allconto.IsDdsInclude ? "ВКЛЮЧЕН ДДС" : "НЕВКЛЮЧЕН ДДС";
            if (codeDnev == 2)
            {
                if (allconto.ItemsCredit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsCredit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
                if (allconto.ItemsDebit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsDebit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
            }
            else
            {
                if (allconto.ItemsDebit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsDebit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
                if (allconto.ItemsDebit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsCredit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
            }

            if (allconto.ItemsCredit == null && allconto.ItemsDebit == null)
            {
                ddsDnevnikModel.DataF    = DataFactura;
                ddsDnevnikModel.Bulstat  = Bulstad;
                ddsDnevnikModel.Nzdds    = Vat ?? Bulstad;
                ddsDnevnikModel.DocId    = Factura;
                ddsDnevnikModel.LookupID = 17;
                ddsDnevnikModel.ClNum    = CodeClient;
            }
            decimal ddspercent = 0;

            ddspercent = codeDnev == 1
                    ? currItemDdsDnevPurchases != null ? currItemDdsDnevPurchases.DdsPercent : 0
                    : currItemDdsDnevSales != null ? currItemDdsDnevSales.DdsPercent : 0;
            string name = codeDnev == 1
                    ? currItemDdsDnevPurchases != null ? currItemDdsDnevPurchases.Name : ""
                    : currItemDdsDnevSales != null ? currItemDdsDnevSales.Name : "";
            var vm = new DdsViewModel(ddsDnevnikModel, new DdsDnevnicItem
            {
                DdsPercent = ddspercent,
                DdsSuma    = allconto.Conto.Oborot,
                Name       = name,
                In         = true
            });

            vm.SaveCommand.Execute(null);
            return(Decimal.Round(allconto.Conto.Oborot * ddspercent / 100, 2));
        }