コード例 #1
0
        public static async Task DeleteAsync(ossContext context, string sid, BizonylatDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva);

            var entity = await BizonylatDal.GetAsync(context, dto.Bizonylatkod);

            await BizonylatDal.DeleteAsync(context, entity);
        }
コード例 #2
0
        public static async Task <int> KibocsatasAsync(ossContext context, string sid,
                                                       BizonylatDto dto, string bizonylatszam)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva);

            var entity = await BizonylatDal.GetAsync(context, dto.Bizonylatkod);

            if (entity.Bizonylatszam != null)
            {
                throw new Exception("Ez a bizonylat már ki van bocsátva!");
            }

            if (string.IsNullOrEmpty(dto.Ugyfelnev) ||
                string.IsNullOrEmpty(dto.Ugyfeliranyitoszam) || string.IsNullOrEmpty(dto.Ugyfelhelysegnev) ||
                string.IsNullOrEmpty(dto.Ugyfelkozterulet) || string.IsNullOrEmpty(dto.Ugyfelkozterulettipus) ||
                string.IsNullOrEmpty(dto.Ugyfelhazszam))
            {
                throw new Exception("Hiányzó ügyféladatok!");
            }

            if (dto.Penznem != "HUF" & dto.Arfolyam == 1)
            {
                throw new Exception("Hibás az árfolyam!");
            }

            if (Bl[dto.Bizonylattipuskod].FizetesiModIs & string.IsNullOrEmpty(dto.Fizetesimod))
            {
                throw new Exception("Hiányzó fizetési mód!");
            }

            if (Bl[entity.Bizonylattipuskod].GenBizonylatszam)
            {
                entity.Bizonylatszam = GenerateBizonylatszam(context, entity.Bizonylattipuskod);
            }
            else
            {
                entity.Bizonylatszam = bizonylatszam ?? throw new Exception("A bizonylatszám nem lehet üres!");
            }
            var result = await BizonylatDal.UpdateAsync(context, entity);

            return(result);
        }
コード例 #3
0
        public async Task <Int32Result> FuvardijTorles([FromQuery] string sid, [FromBody] BizonylatDto par)
        {
            var result = new Int32Result();

            using (var tr = await _context.Database.BeginTransactionAsync())
                try
                {
                    result.Result = await BizonylatBll.FuvardijTorles(_context, sid, par);

                    tr.Commit();
                }
                catch (Exception ex)
                {
                    tr.Rollback();
                    result.Error = ex.InmostMessage();
                }

            return(result);
        }
コード例 #4
0
        public async Task <BaseResults.EmptyResult> Delete([FromQuery] string sid, [FromBody] BizonylatDto dto)
        {
            var result = new BaseResults.EmptyResult();

            using (var tr = await _context.Database.BeginTransactionAsync())
                try
                {
                    await BizonylatBll.DeleteAsync(_context, sid, dto);

                    tr.Commit();
                }
                catch (Exception ex)
                {
                    tr.Rollback();
                    result.Error = ex.InmostMessage();
                }

            return(result);
        }
コード例 #5
0
        public static async Task <int> FuvardijTorles(ossContext context, string sid, BizonylatDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva);

            var entity = await BizonylatDal.GetAsync(context, dto.Bizonylatkod);

            if (entity.Bizonylattipuskod != (int)BizonylatTipus.BejovoSzamla)
            {
                throw new Exception($"Ez a bizonylat nem bejövő számla: {entity.Bizonylatkod}!");
            }
            if (entity.Bizonylatszam == null)
            {
                throw new Exception($"Ez a bizonylat még módosítható: {entity.Bizonylatkod}!");
            }

            entity.Fuvarszamlakod     = null;
            entity.Fuvarszamla        = null;
            entity.Fuvardij           = null;
            entity.Fuvardijpenznemkod = null;
            entity.Fuvardijpenznem    = null;
            entity.Fuvardijarfolyam   = null;

            await BizonylatDal.UpdateAsync(context, entity);

            var entitesTetel = BizonylatTetelDal.Select(context, dto.Bizonylatkod);

            foreach (var l in entitesTetel)
            {
                l.Fuvardijegysegar = null;
                l.Fuvardij         = null;

                await BizonylatTetelDal.UpdateAsync(context, l);
            }

            return(entity.Bizonylatkod);
        }
コード例 #6
0
        public static async Task <int> KiszallitvaAsync(ossContext context, string sid, BizonylatDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva);

            var entity = await BizonylatDal.GetAsync(context, dto.Bizonylatkod);

            if (entity.Kiszallitva == true) //null miatt
            {
                entity.Kiszallitva = false;
            }
            else
            {
                entity.Kiszallitva = true;
            }
            return(await BizonylatDal.UpdateAsync(context, entity));
        }
コード例 #7
0
        public static async Task <int> StornoAsync(ossContext context, string sid, BizonylatDto dto)
        {
            SessionBll.Check(context, sid);
            await CsoportDal.JogeAsync(context, JogKod.BIZONYLATMOD);

            await BizonylatDal.Lock(context, dto.Bizonylatkod, dto.Modositva);

            //a fej/tételek/áfa lekérése/módosítása/hozzáadása lépésenként
            var stornozando = await BizonylatDal.GetAsync(context, dto.Bizonylatkod);

            if (stornozando.Bizonylatszam == null)
            {
                throw new Exception("Lezáratlan bizonylatot nem lehet stornozni!");
            }
            if (stornozando.Ezstornozott)
            {
                throw new Exception("A bizonylat már stornozott!");
            }

            //ha díjbekérő -> nem jön létre másik bizonylat
            if (stornozando.Bizonylattipuskod == (int)BizonylatTipus.DijBekero)
            {
                stornozando.Ezstornozott = true;
                await BizonylatDal.UpdateAsync(context, stornozando);

                return(0);
            }

            var stornozo = ObjectUtils.Clone(stornozando);

            stornozo.Bizonylatszam          = GenerateBizonylatszam(context, stornozo.Bizonylattipuskod);
            stornozo.Megjegyzesfej          = $"A(z) {stornozando.Bizonylatszam} számú bizonylat stornója.";
            stornozo.Netto                  = -stornozo.Netto;
            stornozo.Afa                    = -stornozo.Afa;
            stornozo.Brutto                 = -stornozo.Brutto;
            stornozo.Termekdij              = -stornozo.Termekdij;
            stornozo.Ezstornozo             = true;
            stornozo.Stornozottbizonylatkod = stornozando.Bizonylatkod;
            stornozo.Bizonylatkelte         = DateTime.Today;
            // Stornónál a teljesítés kelte és a fizetési határidő ugyanaz kell hogy maradjon!
            stornozo.Azaz = Azaz.Szovegge(stornozo.Brutto);

            await BizonylatDal.AddAsync(context, stornozo);

            //a tételek lekérése/másolása/módosítása/hozzáadása lépésenként
            var stornozoTetel = BizonylatTetelDal.Select(context, dto.Bizonylatkod);

            foreach (var t in stornozoTetel)
            {
                var tetel = ObjectUtils.Clone(t);

                tetel.Bizonylatkod = stornozo.Bizonylatkod;
                tetel.Mennyiseg    = -tetel.Mennyiseg;
                tetel.Netto        = -tetel.Netto;
                tetel.Afa          = -tetel.Afa;
                tetel.Brutto       = -tetel.Brutto;

                tetel.Ossztomegkg = -tetel.Ossztomegkg;
                tetel.Termekdij   = -tetel.Termekdij;

                await BizonylatTetelDal.AddAsync(context, tetel);
            }

            //az áfa lekérése/másolása/módosítása/hozzáadása lépésenként
            var stornozoAfa = BizonylatAfaDal.Select(context, dto.Bizonylatkod);

            foreach (var t in stornozoAfa)
            {
                var afa = ObjectUtils.Clone(t);

                afa.Bizonylatkod = stornozo.Bizonylatkod;
                afa.Netto        = -afa.Netto;
                afa.Afa          = -afa.Afa;
                afa.Brutto       = -afa.Brutto;

                await BizonylatAfaDal.AddAsync(context, afa);
            }

            //termékdíj másolása
            var stornozotermekdij = BizonylatTermekdijDal.Select(context, dto.Bizonylatkod);

            foreach (var t in stornozotermekdij)
            {
                var termekdij = ObjectUtils.Clone(t);

                termekdij.Bizonylatkod = stornozo.Bizonylatkod;
                termekdij.Ossztomegkg  = -termekdij.Ossztomegkg;
                termekdij.Termekdij    = -termekdij.Termekdij;

                await BizonylatTermekdijDal.AddAsync(context, termekdij);
            }

            //az eredetiben ennyi módosítás
            stornozando.Ezstornozott         = true;
            stornozando.Stornozobizonylatkod = stornozo.Bizonylatkod;
            await BizonylatDal.UpdateAsync(context, stornozando);

            return(stornozo.Bizonylatkod);
        }
コード例 #8
0
        private static BizonylatDto CalcCim(BizonylatDto dto)
        {
            dto.Ugyfelcim = $"{dto.Ugyfeliranyitoszam} {dto.Ugyfelhelysegnev}, {dto.Ugyfelkozterulet} {dto.Ugyfelkozterulettipus} {dto.Ugyfelhazszam}";

            return(dto);
        }
コード例 #9
0
ファイル: BizonylatUtils.cs プロジェクト: lagzikovacs/ossCore
        public static void SumEsAfaEsTermekdij(BizonylatDto bizonylatDto, List <BizonylatTetelDto> lstBizonylatTetelDto,
                                               List <BizonylatAfaDto> lstBizonylatAfaDto, List <BizonylatTermekdijDto> lstBizonylatTermekdijDto)
        {
            lstBizonylatAfaDto.Clear();
            lstBizonylatTermekdijDto.Clear();

            var mire = bizonylatDto.Penznem == "HUF" ? 1m : 0.01m;

            var afaBontas = lstBizonylatTetelDto.GroupBy(s =>
                                                         new { s.Afakulcskod, s.Afakulcs, s.Afamerteke })
                            .Select(t => new
            {
                t.Key.Afakulcskod,
                t.Key.Afakulcs,
                t.Key.Afamerteke,
                NETTO = t.Sum(k => k.Netto),
                AFA   = t.Sum(k => k.Afa)
            });

            foreach (var ab in afaBontas.OrderBy(s => s.Afakulcs))
            {
                var bizonylatAfaDto = new BizonylatAfaDto
                {
                    Afakulcskod = ab.Afakulcskod,
                    Afakulcs    = ab.Afakulcs,
                    Afamerteke  = ab.Afamerteke,
                    Netto       = Calc.RealRound(ab.NETTO, mire),
                    Afa         = Calc.RealRound(ab.AFA, mire)
                };
                bizonylatAfaDto.Brutto = bizonylatAfaDto.Netto + bizonylatAfaDto.Afa;

                lstBizonylatAfaDto.Add(bizonylatAfaDto);
            }

            var termekdijBontas = lstBizonylatTetelDto
                                  .Where(s => s.Termekdijas)
                                  .GroupBy(s => new { s.Termekdijkod, s.Termekdijkt, s.Termekdijmegnevezes, s.Termekdijegysegar })
                                  .Select(t => new
            {
                OSSZTOMEGKG = t.Sum(k => k.Ossztomegkg),

                t.Key.Termekdijkod,
                t.Key.Termekdijkt,
                t.Key.Termekdijmegnevezes,
                t.Key.Termekdijegysegar,

                TERMEKDIJ = t.Sum(k => k.Termekdij)
            });

            foreach (var tb in termekdijBontas.OrderBy(s => s.Termekdijkt))
            {
                lstBizonylatTermekdijDto.Add(new BizonylatTermekdijDto
                {
                    Ossztomegkg = tb.OSSZTOMEGKG,

                    Termekdijkod        = (int)tb.Termekdijkod,
                    Termekdijkt         = tb.Termekdijkt,
                    Termekdijmegnevezes = tb.Termekdijmegnevezes,
                    Termekdijegysegar   = (decimal)tb.Termekdijegysegar,
                    //TERMEKDIJ = Calc.RealRound((decimal) tb.TERMEKDIJ, mire) //navfeltöltés miatt
                    Termekdij = (decimal)tb.TERMEKDIJ
                });
            }

            bizonylatDto.Netto     = lstBizonylatAfaDto.Sum(s => s.Netto);
            bizonylatDto.Afa       = lstBizonylatAfaDto.Sum(s => s.Afa);
            bizonylatDto.Brutto    = lstBizonylatAfaDto.Sum(s => s.Brutto);
            bizonylatDto.Termekdij = lstBizonylatTermekdijDto.Sum(s => s.Termekdij);

            bizonylatDto.Azaz = Azaz.Szovegge(bizonylatDto.Brutto);
        }