Exemple #1
0
        /// <summary>
        /// malkabul işlemleri
        /// </summary>
        public Result MalKabul(IR irsaliye, int kulId)
        {
            List <STIBase> STIBaseList = new List <STIBase>();
            var            kaydeden    = Db.Users.Where(m => m.ID == kulId).Select(m => m.Kod).FirstOrDefault();
            var            sql         = string.Format(@"SELECT IRS.EvrakNo, IRS_Detay.IrsaliyeID, IRS_Detay.MalKodu, SUM(wms.IRS_Detay.Miktar) AS Miktar, IRS_Detay.Birim, ISNULL(SUM(wms.IRS_Detay.OkutulanMiktar), 0) AS OkutulanMiktar, Depo.DepoKodu, IRS.HesapKodu, IRS.Tarih, 
                                        (SELECT MalAdi FROM FINSAT6{0}.FINSAT6{0}.STK WITH(NOLOCK) WHERE (MalKodu = IRS_Detay.MalKodu)) AS MalAdi,
                                        ISNULL(IRS_Detay.KynkSiparisNo, '') AS SiparisNo, ISNULL(IRS_Detay.KynkSiparisSiraNo, 0) AS KynkSiparisSiraNo, ISNULL(IRS_Detay.KynkSiparisTarih, 0) AS KynkSiparisTarih, ISNULL(IRS_Detay.KynkSiparisMiktar, 0) AS KynkSiparisMiktar, 
                                        ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.BirimFiyat,0) AS Fiyat, ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.KDVOran,0) AS KDVOran, ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran1,0) AS IskontoOran1, ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran2,0) As IskontoOran2, ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran3,0) As IskontoOran3 , ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran4,0) As IskontoOran4, ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran5,0) As IskontoOran5, ISNULL(FINSAT6{0}.FINSAT6{0}.SPI.ValorGun,0) As ValorGun  
                                    FROM    FINSAT6{0}.FINSAT6{0}.SPI WITH (NOLOCK) RIGHT OUTER JOIN 
                                            wms.Depo WITH(NOLOCK) INNER JOIN wms.IRS WITH(NOLOCK) ON wms.Depo.ID = wms.IRS.DepoID INNER JOIN 
                                            wms.IRS_Detay WITH(NOLOCK) ON wms.IRS.ID = wms.IRS_Detay.IrsaliyeID ON FINSAT6{0}.FINSAT6{0}.SPI.Chk = wms.IRS.HesapKodu AND FINSAT6{0}.FINSAT6{0}.SPI.Tarih = wms.IRS_Detay.KynkSiparisTarih AND FINSAT6{0}.FINSAT6{0}.SPI.SiraNo = wms.IRS_Detay.KynkSiparisSiraNo AND FINSAT6{0}.FINSAT6{0}.SPI.EvrakNo = wms.IRS_Detay.KynkSiparisNo 
                                    WHERE (IRS_Detay.IrsaliyeID = {1}) AND (IRS_Detay.OkutulanMiktar IS NOT NULL) AND (IRS_Detay.OkutulanMiktar > 0)
                                    GROUP BY wms.IRS.EvrakNo, wms.IRS_Detay.IrsaliyeID, wms.IRS_Detay.MalKodu, wms.IRS_Detay.Birim, wms.Depo.DepoKodu, wms.IRS.HesapKodu, wms.IRS.Tarih, ISNULL(wms.IRS_Detay.KynkSiparisNo, ''), ISNULL(wms.IRS_Detay.KynkSiparisSiraNo, 0), ISNULL(wms.IRS_Detay.KynkSiparisTarih, 0), ISNULL(wms.IRS_Detay.KynkSiparisMiktar, 0), FINSAT6{0}.FINSAT6{0}.SPI.BirimFiyat, FINSAT6{0}.FINSAT6{0}.SPI.KDVOran, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran1, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran2, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran3, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran4, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran5, FINSAT6{0}.FINSAT6{0}.SPI.ValorGun ORDER BY  ISNULL(wms.IRS_Detay.KynkSiparisSiraNo, 0)", irsaliye.SirketKod, irsaliye.ID);
            var            STList      = Db.Database.SqlQuery <STIMax>(sql).ToList();

            foreach (STIMax stItem in STList)
            {
                var sti = new STIBase()
                {
                    EvrakNo     = stItem.EvrakNo,
                    HesapKodu   = stItem.HesapKodu,
                    Tarih       = stItem.Tarih,
                    MalKodu     = stItem.MalKodu,
                    Miktar      = stItem.OkutulanMiktar,
                    Birim       = stItem.Birim,
                    Depo        = stItem.DepoKodu,
                    EvrakTipi   = STIEvrakTipi.AlimIrsaliyesi,
                    Kaydeden    = kaydeden,
                    KayitSurum  = "9.01.028",
                    KayitKaynak = 70,
                    ValorGun    = stItem.ValorGun
                };
                if (stItem.SiparisNo != "" && stItem.KynkSiparisMiktar > 0)
                {
                    sti.KayitTipi          = STIKayitTipi.Siparisten_Irsaliye;
                    sti.KaynakSiparisNo    = stItem.SiparisNo;
                    sti.KaynakSiparisTarih = stItem.KynkSiparisTarih;
                    sti.SiparisSiraNo      = stItem.KynkSiparisSiraNo;
                    sti.SiparisMiktar      = stItem.KynkSiparisMiktar;
                    sti.Fiyat        = stItem.Fiyat;
                    sti.KdvOran      = stItem.KdvOran;
                    sti.IskontoOran1 = stItem.IskontoOran1;
                    sti.IskontoOran2 = stItem.IskontoOran2;
                    sti.IskontoOran3 = stItem.IskontoOran3;
                    sti.IskontoOran4 = stItem.IskontoOran4;
                    sti.IskontoOran5 = stItem.IskontoOran5;
                }
                else
                {
                    sti.KayitTipi          = STIKayitTipi.Irsaliye;
                    sti.KaynakSiparisNo    = "";
                    sti.KaynakSiparisTarih = 0;
                    sti.SiparisSiraNo      = 0;
                    sti.SiparisMiktar      = 0;
                }

                STIBaseList.Add(sti);
            }

            var IrsIslem = new Irsaliye_Islemleri(irsaliye.SirketKod, SqlExper);

            try
            {
                var sonuc = IrsIslem.Irsaliye_Kayit(-1, true, STIBaseList);
                if (sonuc.Status == true)
                {
                    Db.LogActions("WMS", "Business", "Finsat", "MalKabul", ComboItems.alEkle.ToInt32(), irsaliye.ID, "EvrakNo: " + STList[0].EvrakNo + ", HesapKodu: " + STList[0].HesapKodu + ", Depo: " + STList[0].DepoKodu, "", kulId.ToString(), "");
                }
                else
                {
                    Db.Logger(kulId.ToString(), "", "", sonuc.Message, "", "Business/Finsat/MalKabul");
                }
                return(sonuc);
            }
            catch (Exception ex)
            {
                Logger(ex, "Business/Finsat/MalKabul", kulId);
                return(new Result(false, ex.Message));
            }
        }
Exemple #2
0
        /// <summary>
        /// satıştan iade
        /// </summary>
        public Result SatisIade(IR irsaliye, int kulID, int IrsaliyeSeri, int yil, bool efatKullanici, string depo)
        {
            List <STIBase> STIBaseList = new List <STIBase>();

            var kaydeden = Db.Users.Where(m => m.ID == kulID).Select(m => m.Kod).FirstOrDefault();
            var sql      = string.Format("FINSAT6{0}.wms.SatisIadeKayitList {1}", irsaliye.SirketKod, irsaliye.ID);
            var STList   = Db.Database.SqlQuery <STIMax>(sql).ToList();

            foreach (STIMax stItem in STList)
            {
                var sti = new STIBase()
                {
                    EvrakNo           = irsaliye.EvrakNo,
                    HesapKodu         = stItem.HesapKodu,
                    Tarih             = stItem.Tarih,
                    MalKodu           = stItem.MalKodu,
                    Miktar            = stItem.OkutulanMiktar,
                    Birim             = stItem.Birim,
                    Depo              = depo,
                    EvrakTipi         = STIEvrakTipi.SatistanIadeIrsaliyesi,
                    Kaydeden          = kaydeden,
                    KayitSurum        = "9.01.028",
                    KayitKaynak       = 74,
                    ErekIIFMiktar     = stItem.ErekIIFMiktar,
                    Row_ID            = stItem.Row_ID,
                    SiraNo            = stItem.SiraNo,
                    KaynakSiraNo      = stItem.KaynakSiraNo,
                    EFatSenaryo       = stItem.EFatSenaryo,
                    EArsivTeslimSekli = stItem.EArsivTeslimSekli,
                    EFatEtiketGB      = stItem.EFatEtiketGB,
                    EFatEtiketPK      = stItem.EFatEtiketPK,
                    IslemTip          = stItem.SipIslemTip
                };
                if (stItem.SiparisNo != "")
                {
                    sti.KayitTipi          = STIKayitTipi.Irsaliye;
                    sti.KaynakSiparisTarih = stItem.KaynakSiparisTarih;
                    sti.SiparisSiraNo      = stItem.SiparisSiraNo;
                    sti.SiparisMiktar      = stItem.KynkSiparisMiktar;
                    sti.Fiyat                 = stItem.Fiyat;
                    sti.KdvOran               = stItem.KdvOran;
                    sti.IskontoOran1          = stItem.IskontoOran1;
                    sti.IskontoOran2          = stItem.IskontoOran2;
                    sti.IskontoOran3          = stItem.IskontoOran3;
                    sti.IskontoOran4          = stItem.IskontoOran4;
                    sti.IskontoOran5          = stItem.IskontoOran5;
                    sti.Kod1                  = stItem.Kod1;
                    sti.Kod2                  = stItem.Kod2;
                    sti.Kod3                  = stItem.Kod3;
                    sti.Kod4                  = stItem.Kod4;
                    sti.Kod5                  = stItem.Kod5;
                    sti.Kod6                  = stItem.Kod6;
                    sti.Kod7                  = stItem.Kod7;
                    sti.Kod8                  = stItem.Kod8;
                    sti.Kod9                  = stItem.Kod9;
                    sti.Kod10                 = stItem.Kod10;
                    sti.Kod11                 = stItem.Kod11;
                    sti.Kod12                 = stItem.Kod12;
                    sti.Kod13                 = stItem.Kod13;
                    sti.Kod14                 = stItem.Kod14;
                    sti.ValorGun              = stItem.ValorGun;
                    sti.Operator              = stItem.Operator;
                    sti.KaynakIrsEvrakNo      = stItem.KaynakIrsEvrakNo;
                    sti.KaynakIrsTarih        = stItem.KaynakIrsTarih;
                    sti.KaynakIIFEvrakNo      = stItem.KaynakIIFEvrakNo;
                    sti.KaynakIIFTarih        = stItem.KaynakIIFTarih;
                    sti.KaynakSiparisNo       = stItem.KaynakSiparisNo;
                    sti.MFKAciklama           = stItem.MFKAciklama;
                    sti.MFKTarih              = stItem.MFKTarih;
                    sti.Kredi_Donem_VadeTarih = stItem.Kredi_Donem_VadeTarih;
                    sti.Nesne1                = stItem.Nesne1;
                    sti.Nesne2                = stItem.Nesne2;
                    sti.Nesne3                = stItem.Nesne3;
                    sti.EvrakTarih            = stItem.EvrakTarih;
                    sti.SevkTarih             = stItem.SevkTarih;
                }
                else
                {
                    sti.KayitTipi          = STIKayitTipi.Irsaliye;
                    sti.KaynakSiparisNo    = "";
                    sti.KaynakSiparisTarih = 0;
                    sti.SiparisSiraNo      = 0;
                    sti.SiparisMiktar      = 0;
                }

                STIBaseList.Add(sti);
            }

            var IrsIslem = new Irsaliye_Islemleri(irsaliye.SirketKod, SqlExper);

            try
            {
                return(IrsIslem.Irsaliye_Kayit(-1, efatKullanici, STIBaseList));
            }
            catch (Exception ex)
            {
                return(new Result(false, ex.Message));
            }
        }
Exemple #3
0
        /// <summary>
        /// satış irsaliyesi ve faturası
        /// </summary>
        public Result FaturaKayıt(int irsId, string depoKodu, bool efatKullanici, int tarih, string chk, string kaydeden, int irsaliyeSeri, int faturaSeri, int yil)
        {
            var               stiBaseList    = new List <ParamSti>();
            var               tempEvrakNo    = "";
            List <STIBase>    stiBaseListSpi = new List <STIBase>();
            List <STIMax>     stList         = new List <STIMax>();
            List <EvrakBilgi> evrkno         = new List <EvrakBilgi>();
            var               saat           = DateTime.Now.ToOaTime();
            //iç piyasa için evrak no oluşturur
            var sql  = string.Format(@"
                                        SELECT MalKodu, Miktar, Birim, KynkSiparisNo as EvrakNo, KynkSiparisTarih, KynkSiparisSiraNo,
                                        (SELECT IslemTip FROM FINSAT6{0}.FINSAT6{0}.SPI WITH (NOLOCK) WHERE KynkEvrakTip=62 AND SPI.EvrakNo= wms.IRS_Detay.KynkSiparisNo AND SiraNo=wms.IRS_Detay.KynkSiparisSiraNo
                                        AND Tarih=wms.IRS_Detay.KynkSiparisTarih) AS SipIslemTip
                                        FROM wms.IRS_Detay WITH (NOLOCK) WHERE IrsaliyeID={1}", SirketKodu, irsId);
            var list = Db.Database.SqlQuery <STIMax>(sql).ToList();

            if (list.Where(x => x.SipIslemTip == 1).ToList().Count > 0)
            {
                try
                {
                    evrkno = FtrKayit.EvrakNo_Getir(efatKullanici, irsaliyeSeri, yil, FaturaTipi.SatisFaturası.ToInt32());
                }
                catch (Exception ex)
                {
                    return(new Result(false, ex.Message));
                }
            }
            //İç Piyasa için Satış Faturası bilgileri oluşturulur
            foreach (STIMax item in list.Where(x => x.SipIslemTip == 1).ToList())
            {
                tempEvrakNo = item.EvrakNo;
                sql         = string.Format(@"SELECT SPI.Chk, SPI.IslemTip, SPI.Miktar, SPI.MalKodu, SPI.Fiyat, SPI.Birim, SPI.Depo, SPI.ToplamIskonto, SPI.KDV, SPI.KDVOran, SPI.IskontoOran1, SPI.IskontoOran2, SPI.IskontoOran3, SPI.IskontoOran4, SPI.IskontoOran5,
                                            SPI.EvrakNo as KaynakSiparisNo,SPI.VadeTarih, SPI.Tarih as KaynakSiparisTarih, SPI.SiraNo as SiparisSiraNo, SPI.Miktar as SiparisMiktar, SPI.TeslimMiktar, SPI.KapatilanMiktar, SPI.FytListeNo, SPI.ValorGun, SPI.Kod1, SPI.Kod2, SPI.Kod3, SPI.Kod4, SPI.Kod5, SPI.Kod6, SPI.Kod7, SPI.Kod8, SPI.Kod9, SPI.Kod10, SPI.Kod11, SPI.Kod12, SPI.Kod13, SPI.Kod14, SPI.KayitKaynak, SPI.KayitSurum, SPI.DegisKaynak, SPI.DegisSurum,
                                            CHK.EFatKullanici, STK.SatislarHesabi, CHK.EArsivTeslimSekli, CHK.MhsKod, CHK.EFatSenaryo,
                                            MFK.Tutar AS MFKTutar, MFK.Aciklama AS MFKAciklama , MFK.Aciklama2 AS MFKAciklama2 , MFK.Aciklama3 AS MFKAciklama3 , MFK.Aciklama4 AS MFKAciklama4 , MFK.Aciklama5  AS MFKAciklama5, MFK.Aciklama6 AS MFKAciklama6
                                    FROM    FINSAT6{0}.FINSAT6{0}.SPI WITH (NOLOCK) LEFT JOIN 
                                            FINSAT6{0}.FINSAT6{0}.CHK WITH (NOLOCK) ON SPI.Chk=CHK.HesapKodu LEFT JOIN 
                                            FINSAT6{0}.FINSAT6{0}.STK WITH (NOLOCK) ON STK.MalKodu=SPI.MalKodu LEFT JOIN 
                                            FINSAT6{0}.FINSAT6{0}.MFK WITH (NOLOCK) ON MFK.EvrakNo=SPI.EvrakNo  AND  MFK.KynkEvrakTip=SPI.KynkEvrakTip AND  MFK.HesapKod=SPI.Chk
                                    WHERE (SPI.EvrakNo = '{1}') AND (SPI.Chk = '{2}') AND (SPI.Depo = '{3}') AND (SPI.Tarih = {4}) AND (SPI.SiraNo = {5}) AND (SPI.KynkEvrakTip = 62) AND (SPI.SiparisDurumu = 0) AND (SPI.Kod10 IN ('Terminal', 'Onaylandı'))", SirketKodu, item.EvrakNo, chk, depoKodu, item.KynkSiparisTarih, item.KynkSiparisSiraNo);
                var finsat = Db.Database.SqlQuery <ParamSti>(sql).FirstOrDefault();
                if (finsat != null)
                {
                    finsat.Miktar  = item.Miktar;
                    finsat.EvrakNo = evrkno[0].EvrakNo;

                    finsat.KaynakIrsEvrakNo = evrkno[1].EvrakNo;
                    finsat.KaynakIrsTarih   = evrkno[1].EvrakNo.Trim() != "" ? DateTime.Today.ToOADate().ToInt32() : 0;

                    finsat.Tarih       = finsat.KaynakSiparisTarih;
                    finsat.CHKMhsKod   = finsat.MhsKod;
                    finsat.MhsKod      = SirketKodu == "33" ? "391 000" : "391 01 001";
                    finsat.Kaydeden    = kaydeden;
                    finsat.KayitSurum  = "9.01.028";
                    finsat.KayitKaynak = 70;
                    stiBaseList.Add(finsat);
                }
            }
            //dış piyasa için ayrı evrak no oluşturur
            if (list.Where(x => x.SipIslemTip == 2).ToList().Count > 0)
            {
                try
                {
                    evrkno = FtrKayit.EvrakNo_Getir(efatKullanici, irsaliyeSeri, yil, FaturaTipi.SatisIrsaliyesi.ToInt32());
                }
                catch (Exception ex)
                {
                    return(new Result(false, ex.Message));
                }
            }
            //Dış Piyasa için Satış İrsaliye bilgileri oluşturur
            foreach (STIMax item in list.Where(x => x.SipIslemTip == 2).ToList())
            {
                tempEvrakNo = item.EvrakNo;
                var sqlSPI = string.Format("SELECT IRS.EvrakNo, IRS_Detay.IrsaliyeID, IRS_Detay.MalKodu, SUM(wms.IRS_Detay.Miktar) AS Miktar, IRS_Detay.Birim, SUM(wms.IRS_Detay.Miktar) AS OkutulanMiktar, Depo.DepoKodu, IRS.HesapKodu, IRS.Tarih, " +
                                           "(SELECT MalAdi FROM FINSAT6{0}.FINSAT6{0}.STK WITH(NOLOCK) WHERE (MalKodu = IRS_Detay.MalKodu)) AS MalAdi," +
                                           "ISNULL(IRS_Detay.KynkSiparisNo, '') AS SiparisNo, ISNULL(IRS_Detay.KynkSiparisSiraNo, 0) AS KynkSiparisSiraNo, ISNULL(IRS_Detay.KynkSiparisTarih, 0) AS KynkSiparisTarih, ISNULL(IRS_Detay.KynkSiparisMiktar, 0) AS KynkSiparisMiktar, " +
                                           "FINSAT6{0}.FINSAT6{0}.SPI.BirimFiyat AS Fiyat, FINSAT6{0}.FINSAT6{0}.SPI.KDVOran, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran1, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran2, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran3, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran4, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran5, FINSAT6{0}.FINSAT6{0}.SPI.IslemTip AS SipIslemTip, FINSAT6{0}.FINSAT6{0}.SPI.DovizCinsi AS DovizCinsi,FINSAT6{0}.FINSAT6{0}.CHK.EFatSenaryo,FINSAT6{0}.FINSAT6{0}.CHK.EArsivTeslimSekli,FINSAT6{0}.FINSAT6{0}.CHK.EFatEtiket AS EFatEtiketPK,ISNULL((SELECT EfatEtiketGB FROM SOLAR6.DBO.SIR(NOLOCK) INNER JOIN SOLAR6.DBO.SDK(NOLOCK) ON SIR.Kod = SDK.SirketKod WHERE SDK.Kod = '{0}' AND SDK.Tip = 0), '') AS EfatEtiketGB, FINSAT6{0}.FINSAT6{0}.SPI.ValorGun " +
                                           "FROM FINSAT6{0}.FINSAT6{0}.SPI WITH (NOLOCK)" +
                                           "INNER JOIN FINSAT6{0}.FINSAT6{0}.CHK WITH (NOLOCK) ON SPI.Chk = CHK.HesapKodu RIGHT OUTER JOIN wms.Depo WITH(NOLOCK) INNER JOIN wms.IRS WITH(NOLOCK) ON wms.Depo.ID = wms.IRS.DepoID INNER JOIN wms.IRS_Detay WITH(NOLOCK) ON wms.IRS.ID = wms.IRS_Detay.IrsaliyeID ON FINSAT6{0}.FINSAT6{0}.SPI.Chk = wms.IRS.HesapKodu AND FINSAT6{0}.FINSAT6{0}.SPI.Tarih = wms.IRS_Detay.KynkSiparisTarih AND FINSAT6{0}.FINSAT6{0}.SPI.SiraNo = wms.IRS_Detay.KynkSiparisSiraNo AND FINSAT6{0}.FINSAT6{0}.SPI.EvrakNo = wms.IRS_Detay.KynkSiparisNo " +
                                           "WHERE (IRS_Detay.IrsaliyeID = {1}) " +
                                           "GROUP BY wms.IRS.EvrakNo, wms.IRS_Detay.IrsaliyeID, wms.IRS_Detay.MalKodu, wms.IRS_Detay.Birim, wms.Depo.DepoKodu, wms.IRS.HesapKodu, wms.IRS.Tarih, ISNULL(wms.IRS_Detay.KynkSiparisNo, ''), ISNULL(wms.IRS_Detay.KynkSiparisSiraNo, 0), ISNULL(wms.IRS_Detay.KynkSiparisTarih, 0), ISNULL(wms.IRS_Detay.KynkSiparisMiktar, 0), FINSAT6{0}.FINSAT6{0}.SPI.BirimFiyat, FINSAT6{0}.FINSAT6{0}.SPI.KDVOran, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran1, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran2, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran3, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran4, FINSAT6{0}.FINSAT6{0}.SPI.IskontoOran5, FINSAT6{0}.FINSAT6{0}.SPI.IslemTip, FINSAT6{0}.FINSAT6{0}.SPI.DovizCinsi,FINSAT6{0}.FINSAT6{0}.CHK.EFatSenaryo,FINSAT6{0}.FINSAT6{0}.CHK.EArsivTeslimSekli,FINSAT6{0}.FINSAT6{0}.CHK.EFatEtiket, FINSAT6{0}.FINSAT6{0}.SPI.ValorGun", SirketKodu, irsId);
                stList = Db.Database.SqlQuery <STIMax>(sqlSPI).ToList();
                foreach (STIMax stItem in stList)
                {
                    var sti = new STIBase()
                    {
                        EvrakNo           = evrkno[0].EvrakNo,
                        HesapKodu         = stItem.HesapKodu,
                        Tarih             = stItem.KynkSiparisTarih == 0 ? DateTime.Today.ToOADate().ToInt32() : stItem.KynkSiparisTarih,
                        MalKodu           = stItem.MalKodu,
                        Miktar            = stItem.OkutulanMiktar,
                        Birim             = stItem.Birim,
                        Depo              = stItem.DepoKodu,
                        EvrakTipi         = STIEvrakTipi.SatisIrsaliyesi,
                        Kaydeden          = kaydeden,
                        KayitSurum        = "9.01.028",
                        KayitKaynak       = 70,
                        IslemTip          = stItem.SipIslemTip,
                        DovizCinsi        = stItem.DovizCinsi,
                        EFatSenaryo       = stItem.EFatSenaryo,
                        EArsivTeslimSekli = stItem.EArsivTeslimSekli,
                        EFatEtiketGB      = stItem.EFatEtiketGB,
                        EFatEtiketPK      = stItem.EFatEtiketPK,
                        ValorGun          = stItem.ValorGun
                    };
                    if (stItem.SiparisNo != "" && stItem.KynkSiparisMiktar > 0)
                    {
                        sti.KayitTipi          = STIKayitTipi.Siparisten_Irsaliye;
                        sti.KaynakSiparisNo    = stItem.SiparisNo;
                        sti.KaynakSiparisTarih = stItem.KynkSiparisTarih;
                        sti.SiparisSiraNo      = stItem.KynkSiparisSiraNo;
                        sti.SiparisMiktar      = stItem.KynkSiparisMiktar;
                        sti.Fiyat = stItem.Fiyat;
                    }
                    else
                    {
                        sti.KayitTipi          = STIKayitTipi.Irsaliye;
                        sti.KaynakSiparisNo    = "";
                        sti.KaynakSiparisTarih = 0;
                        sti.SiparisSiraNo      = 0;
                        sti.SiparisMiktar      = 0;
                    }
                    stiBaseListSpi.Add(sti);
                }
            }

            // finsat işlemlerini çalıştırır ve veritabanına kaydeder
            try
            {
                Result result;
                if (stiBaseList.Count > 0)
                {
                    var parametre = new FaturaKayitParametre()
                    {
                        paramStiList    = stiBaseList,
                        EFatKullanici   = efatKullanici,
                        kullaniciSeri   = faturaSeri,
                        muhasebeYili    = yil,
                        faturaTipi      = FaturaTipi.SatisFaturası.ToInt32(),
                        KebirKod        = "391",
                        MhsKarsiKod     = SirketKodu == "33" ? "391 000" : "391 01 001",
                        IadeMhsKarsiKod = SirketKodu == "33" ? "391 000" : "391 01 002",
                        StiMhsKod       = stiBaseListSpi.Count > 0 ? "601 001" : stiBaseList[0].SatislarHesabi,
                        CHIMhsKod       = stiBaseList[0].CHKMhsKod.IsNotNull() ? stiBaseList[0].CHKMhsKod.ToString() : ""
                    };
                    result = FtrKayit.FaturaKaydet(parametre);
                    if (result.Status == false)
                    {
                        return(new Result(false, "Hata: " + result.Message));
                    }
                }
                if (stiBaseListSpi.Count > 0)
                {
                    result = new Irsaliye_Islemleri(SirketKodu, SqlExper).Irsaliye_Kayit(irsaliyeSeri, efatKullanici, stiBaseListSpi);
                    if (result.Status == false)
                    {
                        return(new Result(false, "Hata: " + result.Message));
                    }
                }
                if (stiBaseList.Count <= 0 && stiBaseListSpi.Count <= 0)
                {
                    return(new Result(false, "Bu sipariş kapanmış. Evrak No= " + tempEvrakNo));
                }
                else
                {
                    return(new Result(true, evrkno[0].EvrakNo + "," + list[0].EvrakNo));
                }
            }
            catch (Exception ex)
            {
                return(new Result(false, ex.Message));
            }
        }