Eylem Yazımında Özel Metotlar

<< Click to Display Table of Contents >>

Navigation:  Likom Gusto BPM İş Süreçleri Yönetimi Yazılımı > Tanımlar > Form Tasarımı >

Eylem Yazımında Özel Metotlar

Previous pageReturn to chapter overviewNext page
Show/Hide Hidden Text

 

hmtoggle_arrow1Çoklu Girişe Satır Ekleme

Mal alış satırları adlı bir sql çoklu seçim form kontrolü var.

Bu kontrolde seçilen başlık kartına göre ilgili mal alış satırları listelenmektedir.

Daha sonra bu satırlardan bir ya da birkaçı seçilir ve bir buton yardımı ile eylem çalıştırılır.

Eylem çalıştığında seçilen veriler çoklu girişe yeni satır olarak eklenir.

 

IBPMFormItem_Custom_MultiSelect msAktarilacakSatirlar = (IBPMFormItem_Custom_MultiSelect)Helper.GetItem("Mal Alış Satırları");

IBPMFormItem_CokluGiris cgAktarimSatirlari = Helper.GetItem("Malzeme Çıkış Satırları") as IBPMFormItem_CokluGiris;

 

System.Data.DataRow[] drrAktarilacakSatirlar = msAktarilacakSatirlar.GetSelectedDataRows(); // Çoklu seçimin seçilen satırları alınır.

 

int say = drrAktarilacakSatirlar.Length;

 

if (say > 0)

{

  System.Collections.Generic.Dictionary<int, object> dicSatir = new System.Collections.Generic.Dictionary<int, object>();

 

 

foreach (DataRow drAktarilacakSatir in drrAktarilacakSatirlar)

  {

    int pStokKodu = Convert.ToInt32(drAktarilacakSatir["pStok"]);

        int pIzlemeKodu = Convert.ToInt32(drAktarilacakSatir["pIzlemeKodu"]);

    string Birim = drAktarilacakSatir["Birim"].ToString();

    decimal Miktar = Convert.ToDecimal(drAktarilacakSatir["Miktar"]);

       

    dicSatir.Clear();

       

        dicSatir.Add(2030, 0); // 2030 çoklu girişteki ilgili alanın id’si

        dicSatir.Add(2032, pStokKodu);

        dicSatir.Add(3370, pIzlemeKodu);

      dicSatir.Add(2033, Birim);

      dicSatir.Add(2035, Miktar);

        dicSatir.Add(2034, 0);

       

// Çoklu girişe satır ekleme bu metod kullanılarak yapılır

        int satirSay = cgAktarimSatirlari.AddRow(dicSatir);

       

        cgAktarimSatirlari.UpdateRow(satirSay);

        cgAktarimSatirlari.Refresh();

                       

  }

}

else

{

  Helper.ShowMessage("Lütfen Satır Seçimi Yapınız!!");

return false;

}

 

hmtoggle_arrow1Form Üzerinden Crystal Rapor Görüntüleme

  if (!(Helper.BPMApplication as IBPMApplication_FaaliyetForm).Save())

{

  Helper.ShowMessage("Faaliyet Formu Kaydedilemedi!");

return false;

}

 

int pFaaliyetID = Helper.FaaliyetID;

 

GustoBpmBaseLib.CEPMReportDef_Crystal report = new GustoBpmBaseLib.CEPMReportDef_Crystal();

 

 //Asagidaki kod satirinda 33 ornek deger olarak yazilmistir, report.Index degerine formla iliskili raporun EPMRAPOR_CRYSTAL tablosundaki                        EPMRAPOR_CRYSTAL_ROWID'si yazilmalidir.

 

 report.Index = 33;

 report.ReportName="\\\\192.168.1.34\\Ozel Raporlar\\Proje\\TeklifFormu_Rev07.rpt";

 report.ReadData();

 BPMBaseGlobal.CrmDelegateContainer.m_Delegatge_OpenCrystalReport_Faaliyet.Invoke(pFaaliyetID, report,true);

 

hmtoggle_arrow1Helper.Execute Kullanımı

Bu metot sayesinde aynı işlem birden fazla eylem içerisinde tekrar kullanılır.

 

 

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

GustoyaAktar eylemi içerisinde de aşağıdaki şekilde bu iki metodu kullanılabilir.

Helper.Execute("SevkEmriOlustur");

Helper.Execute("DepoTransferiOlustur");

 

hmtoggle_arrow1Ekli Belge Kontrolü

Ekli belge kontrolüne eklenen belgelerin sayısı aşağıdaki gibi alınabilir.

IBPMFormItem_FileAttachment attachments = Helper.GetItem(1111) as IBPMFormItem_FileAttachment;

int nAttachedFileCount = ekliBelgeler.AttachmentCount;

İD’si 1111 olan form kontrolündeki alanın kontrolü, IBPMFormItem_FileAttachment yapısı ile alınmış olup,form tasarımında kontrolü alınan alana                bağlanan ekli belgelerin sayısı;

int nAttachedFileCount = ekliBelgeler.AttachmentCount yapısı ile integer formatında tanımlanmıştır.

 

hmtoggle_arrow1Buton Renklendirme

Form açılışında aşağıdaki kod kullanılarak form üzerinde bulunan butonun ve butonun içindeki karakterlerin renk seçimi yapılabilir.

IBPMFormItem_SimpleButton hesapla = Helper.GetItem(1111) as IBPMFormItem_SimpleButton;

if (tempFormItemButton != null)

  tempFormItemButton.SetButtonColor(System.Drawing.Color.Black, System.Drawing.Color.Yellow, System.Drawing.Color.Blue

 

Form tasarımında kullanılan butonun kontrolü,

IBPMFormItem_SimpleButton

hesapla = Helper.GetItem(1111) as IBPMFormItem_SimpleButton;

 

hmtoggle_arrow1Eylem ile Procedure Çalıştırma

Likom Gusto BPM’de Eylem ile Procedure Çalıştırma işlemi, BPM’de yapılan işlemlerin Gusto’ya aktarılması amacıyla yapılır. Bu sayede BPM’de karta ya da faaliyet üzerinden tanımlanan Alınan Teklif, Alış Faturası, Sevk Emri vb. işlemler eylem oluştuktan sonra doğruca Gusto’ya aktarılır. Yapılan işlemlerin tekrardan Gusto içerisinde oluşturulmasına gerek kalmaz.

Aşağıda Sevk Emri oluşturma procedure’ünden sevk emri başlık oluşturma işlemine ait bir kısım bulunmaktadır.

BPM_DBConnection Con = BPMBaseGlobal.WebService.CreateConnection(out Con);

      BPM_DBConnection_Sql SQLCon = Con as BPM_DBConnection_Sql;

      SqlConnection SQL_Con_Procecure = SQLCon.Connection;

 

      SqlCommand cmd = new SqlCommand("[GUSTO00002].[PROC_SEVKEMRIBASLIK]", SQL_Con_Procecure);

      cmd.CommandType = CommandType.StoredProcedure;

 

      SqlParameter param1 = new SqlParameter("@PR_dtTarih", dtTarih);

        SqlParameter param2 = new SqlParameter("@PR_dtTeslim", dtTeslim);

        SqlParameter param3 = new SqlParameter("@PR_CariID", pCari);

        SqlParameter param4 = new SqlParameter("@PR_OLUSTURANKULLANICI", pOlusturan);

        SqlParameter param5 = new SqlParameter("@PR_Sube", pSube);

        SqlParameter param6 = new SqlParameter("@PR_Referans_No", "");

        SqlParameter param7 = new SqlParameter("@PR_Aciklama",sReferans);

       

      SqlParameter PR_ID = new SqlParameter("@PR_ID", SqlDbType.Int);

      PR_ID.Direction = ParameterDirection.Output;

 

      cmd.Parameters.Add(param1);

        cmd.Parameters.Add(param2);

        cmd.Parameters.Add(param3);

        cmd.Parameters.Add(param4);

        cmd.Parameters.Add(param5);

        cmd.Parameters.Add(param6);

        cmd.Parameters.Add(param7);

      cmd.Parameters.Add(PR_ID);

 

      cmd.ExecuteNonQuery();

 

    int sDonus = Convert.ToInt32(PR_ID.Value);

 

hmtoggle_arrow1 Web Servis Kullanımı

Tanımlanan Web Servisler eylem tanımlarında direkt olarak kullanılabilir. Örnek olarak şekildeki gibi bir form tasarımını ele alalım.

clip1814

 

Formdaki Şehir kontrolü sorgulama yapılacak olan şehrin belirtileceği, Sorgula düğmesi sorgulama işleminin gerçekleştirileceği kontrollerdir. Hava Durumu kontrolü ise sonucun gösterileceği liste kontrolüdür. Burada Liste kontrolü kullanılmasının sebebi, servisin GetWheather methodunun xml verilerini string olarak döndürmesidir. Eylemde bu xml i DataSet’e çevirip liste kontrolüne Bind edeceğiz.

Eylem sihirbazında Web servis class ve metodları için intellisense özelliği desteği bulunmaktadır. Kullanıcı burada da enum,struct,delegate,class ve metodları görebilmektedir. Her metodun paremetrelerinin açıklamalarını da görebilmektedir.

clip1815

 

Gerekli eylem aşağıdaki gibidir.

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

 

Eylem tanımı yapıldıktan sonra Şehir:Ankara değeri için formun ekran çıktısı şekildeki gibidir.

clip1817

hmtoggle_arrow1Excel'den Veri Okuma

IBPMFormItem_Text textBox1=Helper.GetItem("Dosya Yolu"/*381*/) as IBPMFormItem_Text; //Dosya yolu alanı tutulur.

 

OpenFileDialog openFileDialog1 = new OpenFileDialog();  //Dosya açma objesi oluşturulur.

 

openFileDialog1.InitialDirectory = "c:\\" ;

//openFileDialog1.Filter = "txt files (*.txt)|*.txt" ;

openFileDialog1.FilterIndex = 2 ;

openFileDialog1.RestoreDirectory = true;

 

openFileDialog1.ShowDialog();

 

foreach (string str in openFileDialog1.FileNames)

textBox1.SetDBValue(str);

hmtoggle_arrow1İş Emri Oluşturma Metodu

Bu metod ile Gusto standartta iş emri kaydı oluşturmak amaçlanmıştır. BPM’de tasarlanan formun eylem ekranına yazılan metot ile iş emri oluşturulabilir.Şekil.1’de metot sonucu oluşan iş emri gösterilmiştir.

Şekil.1

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

var IE = Helper.FormBase.IsEmriOlusturma;

 

IE.Connect(true, "." /*servername*/, "Gusto" /*veritabanı*/, "Gusto" /*kullanıcı*/, "anki" /*şifre*/, 35 /*firma*/, 3076 /*dönem*/, 1/*epm kullanıcı*/ );

 

IE.AddSerbestIsEmri("IE" /*Seri*/, DateTime.Today /*Tarih*/, 3 /*İşEmri Miktarı*/);

 

// bool AddIsEmriUrun(bool Stok, int StokId, int IzlemeId, char KacinciBirim, decimal Miktar1, decimal Miktar2, decimal Miktar3, int DepoId, int Revizyon)

IE.AddIsEmriUrun(true, 2491, 2819, '1', 4, 0, 0, 1, 0);

//IE.AddIsEmriUrun(true, 149, 0, '1', 6, 0, 0, 2, 0);

 

// bool AddIsEmriMalzeme(bool Stok,int StokId,int IzlemeId,int DepoId,char KacinciBirim,decimal Miktar1,decimal Miktar2,decimal Miktar3,string KonumKodu,string KonumAdi,bool MiktarKontrolu)

IE.AddIsEmriMalzeme(true, 2492, 0, 1, '1', 1, 0, 0, "", "", false);

 

// bool AddIsEmriOperasyon(int IslemSirasi,int OperasyonId)

IE.AddIsEmriOperasyon(1, 1);

IE.AddIsEmriOperasyon(2, 2);

IE.AddIsEmriOperasyon(3, 3);

 

int n = IE.SaveSerbestIsEmri(); // Returns IsEmri_Rowid

 

hmtoggle_arrow1İş Emri Gerçekleştirme Metodu

Gustoda var olan iş emrinin gerçekleşmesi bu metot ile yapabilir.Bu metod sonucu Gusto standartta iş emri gerçekleşme kaydı oluşur(Şekil.1)

Şekil.1

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

Örnek

BPM eylem editöründe metod için gerekli olan iş emrinde tanımlı operasyon ,kullanılan malzeme,malzemenin izleme kodu,malzemelerin bulunduğu depo,miktar ,gerçekleşmeyi yapan personel,kullanılan tezgah bilgileri tanımlanmalıdır.Şekil.2’de iş emri operasyon barkod yani isemrioperasyon tablosundaki rowid alanı girildiğinde iş emrine ait bilgiler setlenir.

Şekil.2

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

hmtoggle_plus1Metot

var GerceklestirmeIslemleri = Helper.FormBase.GetIsEmriGerceklesme(true);

 

if(!GerceklestirmeIslemleri.Connect(true,BPMBaseGlobal.WebService.sServerName,BPMBaseGlobal.WebService.m_sGustoDbName,"veritabanı adı","şifre",firma,kullanıcı))

 

//Firma ve kullanıcı ıd tanımlanmalı

 

{

     Helper.ShowMessage("Bağlantı Kurulamadı");

   

    return false;

}

 

GerceklestirmeIslemleri.DepoAzamiAsgariKontrol = BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;

 

GerceklestirmeIslemleri.DepoMiktarKontrol= BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;

GerceklestirmeIslemleri.DepoRezervasyonKontrol= BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;

 

GerceklestirmeIslemleri.StokAzamiAsgariKontrol= BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;

 

GerceklestirmeIslemleri.StokMiktarKontrol= BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;

 

GerceklestirmeIslemleri.StokRezervasyonKontrol= BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;

 

GerceklestirmeIslemleri.GerceklesmeTuru|=BpmGustoInterface.Tanimlar.GerceklesmeTipleri.KullanılanMakina;

 

GerceklestirmeIslemleri.GerceklesmeTuru|=BpmGustoInterface.Tanimlar.GerceklesmeTipleri.Harcananİşçilik;

 

GerceklestirmeIslemleri.GerceklesmeTuru|=BpmGustoInterface.Tanimlar.GerceklesmeTipleri.KullanılanMalzeme;

 

GerceklestirmeIslemleri.OperasyonMiktariAsildiginda = BpmGustoInterface.Tanimlar.KaynakMiktar.DevamEt;

 

 

var gerceklestirme = GerceklestirmeIslemleri.GerceklesmeEkle("İEG",0,poperasyınıd,0,0,"Gerçekleşme","",0,dtbastar, dtbastar.Hour*10000+ dtbastar.Minute*100+ dtbastar.Second,dtbittar, dtbittar.Hour*10000+ dtbittar.Minute*100+ dtbittar.Second);

 

// poperasyınıd: IsEmriOperasyon tablosunda rowid

 

if(gerceklestirme == null)

{

     Helper.ShowMessage("İş Emri Gerçekleştirme Eklenemedi.");

   

    return false;

}

 

var kulmalzeme = gerceklestirme.KullanilanMalzemeEkle(pmalzeme,"S",pizleme,pdepo,"");

 

//pmalzeme:kullanılan stok,pizleme:izlemekodu,pdepo:kullanılan malzemelerin bulunduğu depo

 

if(kulmalzeme==null)

{

     Helper.ShowMessage("İş Emri Gerçekleştirme Kullanılan Malzeme Eklenemedi");

   

    return false;

}

 

if(kulmalzeme.SeriLotZorunlu)

{

     kulmalzeme.SetLotBilgisi("1",pmiktarbir,pmiktariki,0,"Etiket","açıklama",DateTime.Today,DateTime.Today);

}

else

     kulmalzeme.SetMiktarBilgisi("1",pmiktarbir,pmiktariki,0);

 

var iscilik=gerceklestirme.HarcananIscilikEkle(ppersonel,dtbastar,dtbastar.Hour*10000+dtbastar.Minute*100+dtbastar.Second,dtbittar,dtbittar.Hour*10000+dtbittar.Minute*100+dtbittar.Second,DateTime.Today,0,DateTime.Today,0,"");

 

// ppersonel:gerçekleşmeyi yapan personel

 

var makina=gerceklestirme.KullanilanMakinaEkle(ptezgah,dtbastar,dtbastar.Hour*10000+dtbastar.Minute*100+dtbastar.Second,dtbittar,dtbittar.Hour*10000+dtbittar.Minute*100+dtbittar.Second,DateTime.Today,0,DateTime.Today,0,"");

 

// ptezgah:kullanılan tezgah

 

gerceklestirme.GerceklesmeMiktari=pmiktarbir;

 

if(gerceklestirme.Kaydet())

{

     Helper.ShowMessage(string.Format("İş Emri Gerçekleştirme Kaydedildi."));

 

    return true;

}

else

{

     Helper.ShowMessage("Gerçekleştirme Kaydedilemedi.");

 

    return false;

}

 

hmtoggle_arrow1İrsaliye Oluşturma Metodu

Bu metod ile BPM aracılığıyla Gusto standartta irsaliye oluşturma amaçlanmıştır.

Örnek;

Basit bir BPM form üzerinde bu metodun çalışma prensibi incelenecektir(Şekil.1).BPM ekranına oluşturmak istediğimiz irsaliye için gerekli veriler girilir(Müşteri,stok,izleme kodu,depo,miktar bilgisi,birim fiyat,ödeme koşulu vb.).İrsaliyede olması gereken tüm satır bilgileri her stok için çoklu girişe eklenmelidir.Kullanıcı ‘irsaliye oluştur’ butonuna basarak gusto standart ekranda ilgili irsaliyeyi oluşturabilir.İrsaliye oluşturma metodu ‘irsaliye oluştur’ butonunun arkasına yazılmalıdır.

Şekil.1

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

Şekil.2:Oluşan İrsaliye

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

hmtoggle_plus1İrsaliye Oluştur butonunun arkasına yazılacak metod

var IrsaliyeCikis=Helper.FormBase.GetIrsaliye(201,true); //201:oluşacak irsaliyenin stokhareketturu tablosundaki nstokhrknumara’sı

int pFirma = 35; //Firma ıd

int pDonem = 3076; //Dönem id

int pKullanici = 1; //kullanici

IBPMFormItem_Custom_SingleSelect cntrlmusteri=Helper.GetItem("Müşteri"/*2963*/) as IBPMFormItem_Custom_SingleSelect; //seçilen müşteri

int pMusteri=Convert.ToInt32(cntrlmusteri.GetDBValue());

 

              if (!IrsaliyeCikis.Connect(true, "server adı", "veritabanı adı", "login", "password", pFirma, pDonem, pKullanici))

               {

                   Helper.ShowMessage("Bağlantı Kurulamadı");

                  return false;

               }

 

 
                       IrsaliyeCikis.DepoMiktarKontrol=BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;
 
                       IrsaliyeCikis.DepoRezervasyonKontrol=BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;
                       IrsaliyeCikis.DepoAzamiAsgariKontrol=BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;
                       IrsaliyeCikis.StokAzamiAsgariKontrol=BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;
                       IrsaliyeCikis.StokMiktarKontrol=BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;
                       IrsaliyeCikis.StokRezervasyonKontrol=BpmGustoInterface.Tanimlar.MiktarKontrol.SerbestBırak;
                       

 

DateTime Tarih = DateTime.Now;

 

var IrsaliyeBaslik = IrsaliyeCikis.IrsaliyeBaslikEkle(Tarih,"PS",0,"BAŞLIK AÇIKLAMA","",BpmGustoInterface.Tanimlar.GustoCariTuru.Cari,pMusteri,0,0,0,0);

 

IrsaliyeBaslik.BirimFiyatZorunlu=true;

IrsaliyeBaslik.AddFiyatSirasi(BpmGustoInterface.Siparis.FiyatSiralama.TanımlıBirimFiyattan);

IrsaliyeBaslik.AddKdvSirasi(BpmGustoInterface.Siparis.FiyatSiralama.TanımlıKdvden);

IrsaliyeBaslik.AddOdemeSirasi(BpmGustoInterface.Siparis.FiyatSiralama.TanımlıOdemeKosulundan);

IrsaliyeBaslik.AddOdemeSirasi(BpmGustoInterface.Siparis.FiyatSiralama.TanımlıVadeSuresinden);

 
                       

IBPMFormItem_CokluGiris cntrlCGSatirlar = Helper.GetItem("Satırlar"/*2964*/) as IBPMFormItem_CokluGiris;

if (cntrlCGSatirlar != null)

{

for (int nRow = 0; nRow < cntrlCGSatirlar.RowCount; nRow++)

  {

      int IzlemeKodu_Rowid=Convert.ToInt32(cntrlCGSatirlar.GetRowColValue(nRow, 2966)); //seçilen izleme kodu
       decimal ldMalMiktari1Birim =Convert.ToDecimal(cntrlCGSatirlar.GetRowColValue(nRow, 2968)); //1.birim mal miktar
       decimal ldMalMiktari2Birim =Convert.ToDecimal(cntrlCGSatirlar.GetRowColValue(nRow, 2969));//2.birim mal miktar
       int depokodu = Convert.ToInt32(cntrlCGSatirlar.GetRowColValue(nRow, 2967)); //seçilen depo
       int OdemeKosulu_Rowid=Convert.ToInt32(cntrlCGSatirlar.GetRowColValue(nRow, 2972)); //ödeme koşulu eğer birim fiyat girilecekse birim fiyat alanı konulmalı
       int pstokkodu=Convert.ToInt32(cntrlCGSatirlar.GetRowColValue(nRow, 2965));//seçilen stok

 

 

 

  int nSevkEmriDoviz=0;

  int nSevkEmriDovizYeri=0;

  string sSevkEmriKurTuru="EUR";

  decimal ldBirimFiyatKdvSiz=10;

  int nVadeSuresi=1;

           

decimal ldKDVOran=Helper.SqlSonucu_Decimal(string.Format(@"select ldSatisKDV from Gusto00035.StokDetay where pStokKodu={0}",pstokkodu));

                                         

            var IrsaliyeSatir = IrsaliyeBaslik.IrsaliyeSatirEkle(BpmGustoInterface.Tanimlar.HareketType.Serbest,0,"S",pstokkodu,IzlemeKodu_Rowid,depokodu,"SATIR AÇIKLAMA","",0);  

            IrsaliyeSatir.SetMiktarBilgisi("1",ldMalMiktari1Birim,ldMalMiktari2Birim,0);

           IrsaliyeSatir.VarsayilanFiyatDegerleri(0,ldBirimFiyatKdvSiz,sSevkEmriKurTuru,nSevkEmriDoviz,nSevkEmriDovizYeri,0,OdemeKosulu_Rowid,nVadeSuresi,ldKDVOran,0);

           IrsaliyeSatir.FiyatHesapla();

                                                                                                                               

           

 

 

}

IrsaliyeBaslik.Kaydet();

}

 

//IrsaliyeBaslik.StokHareketId Oluşan İrsaliyenin StokhareketBaslik tablosunda ki ID'sini verir

 

 

hmtoggle_arrow1Sipariş Oluşturma Metodu

Sipariş oluşturma metodunu BPM de kullanarak standart ekranda alınan sipariş kaydı oluşturabiliriz (Şekil.1).Sipariş oluşturmak için dikkat edilmesi gereken noktalardan biri o güne ait döviz kur bilgilerinin girili olmasıdır.

Şekil.1

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

hmtoggle_plus1Metot

IBPMFormItem_Custom_SingleSelect cntrlmusteri=Helper.GetItem("musteritest"/*4179*/) as IBPMFormItem_Custom_SingleSelect;

int pmusteri=Convert.ToInt32(cntrlmusteri.GetDBValue());

BpmGustoInterface.ISiparisOlusturmaInterface siparisOlusturma = Helper.FormBase.SiparisOlusturma;

DateTime tarih=DateTime.Now;

siparisOlusturma.AlinanSiparis = true;

 

if (!siparisOlusturma.Connect(true, "sunucu", "veritabanı", "kullanıcı","sifre",firma,donem,epmkullanıcı))

{

 

 Helper.ShowMessage("bağlantı başarısısz");

 

}

 

var baslik = siparisOlusturma.SiparisBaslikEkle(tarih, "AS-Yİ",0, "", "", BpmGustoInterface.Tanimlar.GustoCariTuru.Cari, pmusteri, 50 /*personelkodu*/, 0/*pFiyatListesi*/, 0/*pButceID*/, 0/*pSozlesme*/);

 

 

if (baslik != null)

{

   baslik.BirimFiyatZorunlu = true;

   baslik.FlsMiktarKontroluYapilsin = false;

   baslik.FlsTeslimTarihiKullanilsin = false;

   baslik.FytLstSozlesmesizKullanilmasin = false;

   baslik.IskontoTeslimTarihiKullanilsin = false;

baslik.OdmTeslimTarihiKullanilsin = false;

   baslik.AddFiyatSirasi(BpmGustoInterface.Siparis.FiyatSiralama.TanımlıBirimFiyattan);

   baslik.AddKdvSirasi(BpmGustoInterface.Siparis.FiyatSiralama.StokKartından);

   baslik.AddOdemeSirasi(BpmGustoInterface.Siparis.FiyatSiralama.TanımlıVadeSuresinden);

 var item = baslik.SiparisSatirEkle(BpmGustoInterface.Tanimlar.HareketType.Serbest, 0, "S", 108 /*stokkodu*/, 0 /*izlemekodu*/, "", tarih, "", false);

 

 int pBaslik = 0;

 

 if (item != null)

   {

       

item.SetMiktarBilgisi("1", 1, 0, 0);

item.BirimFiyatDovizli = false;

item.VarsayilanFiyatDegerleri(0/*pFiyatListesi*/, 1, "Alış", 1, 1, 0/*IskontoTutari*/, 0/*pOdemeKosulu*/, 0/*VadeSuresi*/, 0/*KDVOrani*/, 0/*KDVTutari*/);

         

siparisOlusturma.FiyatHesapla();

siparisOlusturma.Kaydet();

pBaslik = baslik.SiparisBaslikId;

         

if (pBaslik <= 0)

        {

                 Helper.ShowMessage("Başlıkta sorun");

                 return false;

         }                

         else

       {

              string sSql = @"select concat(sseri,'/',lno) serino from gusto00035.AlinanSiparisBaslik where AlinanSiparisBaslik_rowid= " + pBaslik;

                 

              string sSiparisSeriNo = Helper.SqlSonucu_Text(sSql);

                 

         }

   }

  else

   {

        Helper.ShowMessage("Sipariş satırda sorun");

                              return false;

   }

 

}

else

{

   Helper.ShowMessage("Sipariş başlık eklenemedi" );

 

                      return false;

}

 

//IrsaliyeBaslik.StokHareketId Oluşan İrsaliyenin StokhareketBaslik tablosunda ki ID'sini verir

 

hmtoggle_arrow1BPM Muhasebeleştirme Kontrolü

BPM de yeni eklenen muhasebeleştirme kontrolü ile gusto belgeleri, gusto benzeri bir arayüz aracılığı ile muhasebeleştirilmeleri amaçlanmıştır. Kontrol, gustonun desteklediği tüm muhasebeleştirilebilir hareketleri destekleyecek şekilde tanımlanmıştır.

 

Örnek

Şekil 1 deki gibi tasarlanan basit bir form üzerinde kontrolün çalışmasını gösterebiliriz. Form üzerindeki textbox(“İşlem Idsi” etiketli kontrol)’a yazılan Islem Id sini girip muhasebeleştirme kontrolüne bu değeri setleyeceğiz. Kontrol’ün arayüzündeki IslemId özelliğine bu değer setlendiğinde ilgili işlemId daha önce muhasebeleştirilmişse pasif olup fiş numarasını gösterecek; aksi taktirde kontrol aktif olup geriye kullanıcının düğmeye basması işlemi kalacaktır.

 

Şekil.1

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

 

Kullanıcı “Muhasebeye Kaydet” düğmesine tıkladığında Gusto programındaki diyalogun benzeri bir diyalog ekranda belirecektir.

 

Resmi büyütmek için tıklayınız.
Resmi büyütmek için tıklayınız.

 

Bu ekranda kullanıcı “Hareket durumu” seçimi ile hareketleri birleştirebilir, “Fiş seri “ seçimi ile mevcut serilerden seçebilir. Ortak açıklama verilirse yevmiye hareketlerinin tümüne ortak açıklama konulabilir.

 

Gustoda oluşturulmuş Alış faturasını BPM de muhasebeleştirelim. Form üzerindeki Islem Id kısmına 160986(alış faturasının pIslemId değeri) yazıp muhasebeye kaydet butonuna basalım. Gelen ekranda Yeni bir yevmiye fişi oluşturmayı seçelim. Aynı işlemi Gusto tarafında da yaparak mukayese edebiliriz. Bulunamayan muhasebe kodları için Gusto ve  BPM uyarı mesajı aşağıdaki gibidir.

 

clip0041

 

BPM de ilgili kartlara muhasebe kodu girilememektedir. Veriler gustodan girilmek zorundadır. Fakat Yevmiye fişi ekranında muhasebe kodları değiştirilebilmektedir.

hmtoggle_plus1Muhasebeleştirme Kontrolü Eylemi

IBPMFormItem_Muhasebelestir muh = Helper.GetItem("Muhasebeleştirme") as IBPMFormItem_Muhasebelestir;

 

          if (muh.Result != null)

           {

              if (muh.Result.Activity == GustoBpmBaseLib.Muhasebelestir.MuhActivityType.CreateNew)

               {

                  bool bEnabled = !muh.Result.Success;

 

                   Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.Button_Kaydet, false);

                   Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.Button_Sil, false);

                   Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.BPMKart, false);

 

                  foreach (System.Collections.Generic.KeyValuePair<int, IBPMFormItem> pair in Helper.FormBase.HT_FormItems)

                   {

                      if (pair.Value != muh)

                           pair.Value.SetEnabled(bEnabled);

                   }

               }

 

              else if (muh.Result.Activity == GustoBpmBaseLib.Muhasebelestir.MuhActivityType.Deleting)

               {

 

                  if (muh.Result.Success)

                   {

                       Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.Button_Kaydet, true);

                       Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.BPMKart, false);

 

                      foreach (System.Collections.Generic.KeyValuePair<int, IBPMFormItem> pair in Helper.FormBase.HT_FormItems)

                       {

                          if (pair.Value != muh)

                               pair.Value.SetEnabled(true);

                       }

                       Helper.GetItem("Hizmet Faturası").SetEnabled(false);

                       Helper.GetItem("Belge Seri").SetEnabled(false);

                       Helper.GetItem("İrsaliye Secim").SetEnabled(false);

                       Helper.GetItem("İrsaliye").SetEnabled(false);

                       Helper.GetItem("Cari").SetEnabled(false);

                       Helper.GetItem("Fatura Satırları").SetEnabled(false);

 

                   }

                  else

                   {

                       Helper.ShowMessage("Çözme işlemi yapılamamıştır.");

                       Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.Button_Kaydet, false);

                       Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.Button_Sil, false);

                       Helper.FormContainer.SetStandartFieldEnabled(Enum_BPMForm_StaticControlID.BPMKart, false);

 

                      foreach (System.Collections.Generic.KeyValuePair<int, IBPMFormItem> pair in Helper.FormBase.HT_FormItems)

                       {

 

                          if (pair.Value != muh)

                               pair.Value.SetEnabled(false);

                       }

 

                   }

               }