Exemple #1
0
        public static void Перенумеровать(IObjectSpace os, КнигаПокуп book)
        {
            Int32 cur_num = 1;

            foreach (var line in book.КнПокСтр.OrderBy(x => x.ДатаСчФПрод))
            {
                line.НомерПор = cur_num++;
            }
        }
Exemple #2
0
        public void Перенумеровать()
        {
            IObjectSpace os_cur = CommonMethods.FindObjectSpaceByObject(this);

            using (IObjectSpace os = os_cur.CreateNestedObjectSpace()) {
                КнигаПокуп book = os.GetObject <КнигаПокуп>(this);
                Перенумеровать(os, book);
                os.CommitChanges();
            }
        }
Exemple #3
0
        public static void Обновить(IObjectSpace os, КнигаПокуп book)
        {
            os.Delete(book.КнПокСтр);
            Int32 cur_num = 1;

            book.Книга.СтрокиКниги.Sorting.Add(new SortProperty("Основание.Дата", DevExpress.Xpo.DB.SortingDirection.Ascending));
            foreach (var line in book.Книга.СтрокиКниги)
            {
                КнПокСтр doc_line = os.CreateObject <КнПокСтр>();
                book.КнПокСтр.Add(doc_line);
                doc_line.КнигаСтрока = line;
                doc_line.НомерПор    = cur_num++;
                DateTime дата_учета = default(DateTime);
//                DateTime дата_учета = default(DateTime);
                foreach (Операция oper in line.Операции)
                {
                    if (oper.Основание.Тип == Основание.ТипОснования.СФА)
                    {
                        ДокПдтвУпл pay_doc = null;
                        foreach (ДокПдтвУпл doc in doc_line.ДокПдтвУпл)
                        {
                            if (doc.НомДокПдтвУпл == oper.ПДНомер && doc.ДатаДокПдтвУпл == oper.ПДДата)
                            {
                                pay_doc = doc;
                                break;
                            }
                        }
                        if (pay_doc == null)
                        {
                            pay_doc = os.CreateObject <ДокПдтвУпл>();
                            doc_line.ДокПдтвУпл.Add(pay_doc);
                            pay_doc.НомДокПдтвУпл  = oper.ПДНомер;
                            pay_doc.ДатаДокПдтвУпл = oper.ПДДата;
//                            дата_учета = oper.ПДДата;
                        }
                    }
                    else
                    {
                        if (oper.СуммаСтоимость > 0)
                        {
                            if (дата_учета < oper.ДатаБУ)
                            {
                                дата_учета = oper.ДатаБУ;
                            }
                        }
                    }
                    if (oper.СуммаНДСВычет != 0)
                    {
                        doc_line.КодВидОпер = oper.ОфицВидОперации;
                        if (oper.Ставка != СтавкаНДС.НЕОБЛ)
                        {
                            doc_line.СумНДСВыч += oper.СуммаНДСВычет;
                        }
                    }
                    if (дата_учета < oper.ПДДата)
                    {
                        дата_учета = oper.ПДДата;
                    }
                }
                if (doc_line.Основание.Тип != Основание.ТипОснования.СФА)
                {
                    if (дата_учета > ValidationMethods._DATE_NULL)
                    {
                        doc_line.ДатаУчТов = дата_учета;
                    }
                    else
                    {
                        doc_line.ДатаУчТов = doc_line.ДатаСчФПрод;
                    }
                }
                if (doc_line.СумНДСВыч == 0)
                {
                    os.Delete(doc_line);
                    cur_num--;
                }
            }
        }