Exemplo n.º 1
0
        public bool Lagerbuchung(int Quelllager, int Ziellager, int WirkungQuelllager, int WirkungZiellager, int Bewegungsmenge, int id_Artikel,
                                 string BewegungsArt, int id_Projekt, SI_BelegePositionen BelegPosition)
        {
            try
            {
                bool resQ = false;
                bool resZ = false;

                var lb = new lagerliste_addremove();

                lb.isConfirmed           = 0;
                lb.created               = DateTime.Now;
                lb.id_Quelllager         = Quelllager;
                lb.id_Ziellager          = Ziellager;
                lb.id_lagerliste         = id_Artikel;
                lb.anzahl                = Bewegungsmenge;
                lb.addtype               = BewegungsArt;
                lb.id_projekt            = id_Projekt;
                lb.SI_BelegePositionen   = BelegPosition;
                lb.Quelllager_BestandAlt = GetBestandLagerort(id_Artikel, Quelllager);
                lb.Ziellager_BestandAlt  = GetBestandLagerort(id_Artikel, Ziellager);
                db.AddTolagerliste_addremove(lb);
                // db.SaveChanges();
                if (WirkungQuelllager != 0)
                {
                    resQ = Lagerbuchung(Quelllager, id_Artikel, Bewegungsmenge * WirkungQuelllager);
                }
                else
                {
                    resQ = true;
                }

                resZ = Lagerbuchung(Ziellager, id_Artikel, Bewegungsmenge * WirkungZiellager);

                if (resQ == true && resZ == true)
                {
                    lb.isConfirmed = -1;
                    // db.SaveChanges();
                }

                lb.Quelllager_BestandNeu = GetBestandLagerort(id_Artikel, Quelllager);
                lb.Ziellager_BestandNeu  = GetBestandLagerort(id_Artikel, Ziellager);

                // db.SaveChanges();
                return(true);
            }

            catch (Exception ex)
            {
                CommonTools.Tools.ErrorMethods.HandleStandardError(ex, "Lagerbuchung  fehlgeschlagen.");

                return(false);
            }
        }
 public SI_BelegePositionChangedEventArgs(SI_BelegePositionen Position)
 {
     CurrentPosition = Position;
 }
        private bool MakeBuchungsbeleg()
        {
            bool result = false;

            try
            {
                int count = invPositionen.Where(n => (n.Differenz != 0 && n.Differenz != null) && (n.IstGebucht == 0 || n.IstGebucht == null)).Count();
                if (count > 0)
                {
                    SI_Belege b = null;
                    if (!BelegID.HasValue || BelegID == 0)
                    {
                        b = new SI_Belege();
                        db.AddToSI_Belege(b);

                        b.created       = DateTime.Now;
                        b.Belegart      = "inv";
                        b.id_Ziellager  = db.StammLagerorte.Where(n => n.istStandardLagerort == 1).SingleOrDefault().id;
                        b.id_Quelllager = 4;
                        b.Belegdatum    = this.Inventurdatum;
                        b.Bemerkung     = "Inventur : " + id;
                        b.Belegnummer   = "Inventur : " + id;
                        b.id_user       = Session.User.id;
                        b.id_Sprache    = 1;
                        b.istGebucht    = 0;
                    }
                    else
                    {
                        b = db.SI_Belege.Where(id => id.id == BelegID).SingleOrDefault();
                    }


                    if (invPositionen != null)
                    {
                        foreach (var item in invPositionen.Where(n => (n.Differenz != 0 && n.Differenz != null) && (n.IstGebucht == 0 || n.IstGebucht == null)))
                        {
                            var pos    = (SI_InventurenPositionen)item;
                            var posBel = new SI_BelegePositionen();
                            posBel.SI_Belege  = b;
                            posBel.Menge      = pos.Differenz;
                            posBel.id_Artikel = pos.id_artikel;

                            db.AddToSI_BelegePositionen(posBel);


                            if (pos.IstGebucht == 0 || pos.IstGebucht == null)
                            {
                                if (pos.id_artikel != null && pos.Differenz != null && pos.Differenz != 0)
                                {
                                    int ProId = pos.id_inventur;


                                    pos.IstGebucht = 1;
                                }
                            }
                        }
                    }

                    db.SaveChanges();
                    if (!BelegID.HasValue || BelegID == 0)
                    {
                        BelegID = b.id;
                    }
                    Inventurgebucht  = 1;
                    isGebuchtEnabled = false;
                    isDirty          = false;
                    db.SaveChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(false);
            }
        }