/// <summary>
 /// Deprecated Method for adding a new object to the spare_in_spare_outgo EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddTospare_in_spare_outgo(spare_in_spare_outgo spare_in_spare_outgo)
 {
     base.AddObject("spare_in_spare_outgo", spare_in_spare_outgo);
 }
 /// <summary>
 /// Create a new spare_in_spare_outgo object.
 /// </summary>
 /// <param name="id">Initial value of the id property.</param>
 /// <param name="quantity">Initial value of the quantity property.</param>
 /// <param name="total_sum">Initial value of the total_sum property.</param>
 public static spare_in_spare_outgo Createspare_in_spare_outgo(global::System.Int32 id, global::System.Decimal quantity, global::System.Decimal total_sum)
 {
     spare_in_spare_outgo spare_in_spare_outgo = new spare_in_spare_outgo();
     spare_in_spare_outgo.id = id;
     spare_in_spare_outgo.quantity = quantity;
     spare_in_spare_outgo.total_sum = total_sum;
     return spare_in_spare_outgo;
 }
Beispiel #3
0
        public Basket BasketCreate(BasketView i)
        {
            // здесь
            // Create spare_in_spare_outgo - для каждого прихода, из которых берется товар в отгрузку
            // Edit spare_in_spare_income
            // Create OfferingInBasketItem
            int SpareID = i.SpareID.Value;

            // Create Basket
            Basket b = new Basket();
            b.CreatedOn = DateTime.Now;
            b.Pbyr = i.Pbyr;
            b.Peur = i.Peur;
            b.Prur = i.Prur;
            b.Pusd = i.Pusd;
            b.Q = i.Q;
            b.SaleID = i.SaleID;
            b.SpareID = SpareID;
            objDataContext.AddToBaskets(b);
            objDataContext.SaveChanges();

            decimal unallocatedQ = b.Q.Value;

            // Edit spare_in_spare_income
            List<SpareInSpareIncomeView> incomes = objDataContext.SpareInSpareIncomeViews.Where(x => (x.SpareID == b.SpareID && x.QRest > 0)).OrderBy(x => x.SpareIncomeDate).ToList();
            List<SpareInSpareIncomeView> LinkedIncomes = new List<SpareInSpareIncomeView>();
            List<decimal> Qs = new List<decimal>();
            foreach (SpareInSpareIncomeView income in incomes)
            {
                spare_in_spare_income inc = objDataContext.spare_in_spare_income.FirstOrDefault(x => x.id == income.id);
                if (income.QRest >= unallocatedQ)
                {
                    decimal q = unallocatedQ;
                    inc.QRest -= q;
                    objDataContext.SaveChanges();
                    Qs.Add(q);
                    LinkedIncomes.Add(income);
                    break;
                }
                else
                {
                    decimal q = inc.QRest.Value;
                    unallocatedQ -= q;
                    inc.QRest = 0;
                    objDataContext.SaveChanges();
                    Qs.Add(q);
                    LinkedIncomes.Add(income);
                }
            }
            SpareInSpareIncomeView ActualIncome = LinkedIncomes.OrderByDescending(x => x.SpareIncomeDate).FirstOrDefault();
            spare_outgo outgo = SpareOutgoOpened();
            foreach (SpareInSpareIncomeView income in LinkedIncomes)
            {
                int ind = LinkedIncomes.IndexOf(income);

                // Create spare_in_spare_outgo - для каждого прихода, из которых берется товар в отгрузку
                // при этом подставляем цены и проценты из первого прихода

                spare_in_spare_outgo siso = new spare_in_spare_outgo();

                // [basic_price]    - цена в базовой валюте
                // получим из профиля код базовой валюты
                settings_profile profile = getProfileCurrent();
                string BasicCurrencyCode = profile.BasicCurrencyCode;
                siso.basic_price = ActualIncome.POutBasic;
                /*decimal basic_price = 0;
                switch (BasicCurrencyCode)
                {
                    case "RUR":
                        basic_price = b.Prur.Value;
                        break;

                    case "BYR":
                        basic_price = b.Pbyr.Value;
                        break;

                    case "EUR":
                        basic_price = b.Peur.Value;
                        break;

                    case "USD":
                        basic_price = b.Pusd.Value;
                        break;
                }
                outgo.basic_price = basic_price;                */
                siso.description = "";
                siso.discount = 0;
                siso.markup_percentage = ActualIncome.Markup;
                siso.num = ind;

                // [purchase_price]     - указать цену отпускную в валюте накладной отгрузки
                decimal price = 0;
                if (outgo.currency == null)
                    outgo.currencyReference.Load();
                switch (outgo.currency.code)
                {
                    case "RUR":
                        price = b.Prur.Value;
                        break;

                    case "BYR":
                        price = b.Pbyr.Value;
                        break;

                    case "EUR":
                        price = b.Peur.Value;
                        break;

                    case "USD":
                        price = b.Pusd.Value;
                        break;
                }
                siso.purchase_price = price;
                siso.quantity = Qs[ind];
                siso.spare = objDataContext.spares.FirstOrDefault(x => x.id == SpareID);
                siso.spare_in_spare_income = objDataContext.spare_in_spare_income.FirstOrDefault(x => x.id == income.id);
                siso.spare_outgo = outgo;
                siso.total_sum = siso.quantity * siso.purchase_price.Value;
                siso.vat_rate = getZeroVatRate();
                objDataContext.AddTospare_in_spare_outgo(siso);
                objDataContext.SaveChanges();

                // Create OfferingInBasketItem
                OfferingInBasketItem o = new OfferingInBasketItem();
                o.BasketItemID = b.ID;
                o.OfferingIncomeID = income.id;
                o.OfferingOutgoID = siso.id;
                o.Q = Qs[ind];
                objDataContext.AddToOfferingInBasketItems(o);
                objDataContext.SaveChanges();
            }
            objDataContext.SaveChanges();
            return b;
        }
Beispiel #4
0
        public int SpareInSpareOutgoCreate(int SpareInSpareIncomeID, decimal quantity, int SpareOutgoID
                                            , decimal Price, decimal BasicPrice, decimal discount, decimal VatRate)
        {
            // создать запись spare_in_spare_outgo
            spare_in_spare_outgo sout = new spare_in_spare_outgo();

            // отминусовать от актуального количества в соотвествующей spare_in_spare_income
            // если в накладной стоит галочка "Без списания" - не миусуем.
            spare_outgo outgo = objDataContext.spare_outgo.FirstOrDefault(s => s.id == SpareOutgoID);
            spare_in_spare_income sin = objDataContext.spare_in_spare_income.FirstOrDefault(i => i.id == SpareInSpareIncomeID);
            if (outgo.isGhost != 1)
                sin.QRest -= quantity;

            sin.spareReference.Load();
            sout.spare = sin.spare;
            sout.spare_in_spare_income = sin;
            sout.spare_outgo = outgo;
            sout.purchase_price = Price;
            sout.basic_price = BasicPrice;
            sout.quantity = quantity;
            sout.markup_percentage = sin.Markup;
            sout.total_sum = quantity * sout.purchase_price.Value;
            sout.discount = discount;
            sout.num = 0;
            objDataContext.AddTospare_in_spare_outgo(sout);

            objDataContext.SaveChanges();
            return sin.spare.id;
        }
Beispiel #5
0
        public void OutOfferingEdit(spare_in_spare_outgo e, int spareId)
        {
            spare_in_spare_outgo o = objDataContext.spare_in_spare_outgo.FirstOrDefault(i => i.id == e.id);
            if (o != null)
            {
                o.description = e.description;
                o.markup_percentage = e.markup_percentage;

                //o.num = e.num;
                o.purchase_price = e.purchase_price;
                o.quantity = e.quantity;
                o.spare = objDataContext.spares.FirstOrDefault(s => s.id == spareId);
                o.total_sum = e.total_sum;

                //o.vat_rate =
                objDataContext.SaveChanges();
            }
        }
Beispiel #6
0
 public void OutOfferingCreate(spare_in_spare_outgo _obj, int spareId, int spareMovementId)
 {
     _obj.spare = objDataContext.spares.FirstOrDefault(s => s.id == spareId);
     _obj.spare_outgo = objDataContext.spare_outgo.FirstOrDefault(s => s.id == spareMovementId);
     objDataContext.AddTospare_in_spare_outgo(_obj);
     objDataContext.SaveChanges();
 }