Beispiel #1
0
        private void btn_SevkiyatNo_Kontrol_Click(object sender, EventArgs e)
        {
            if (txtSevkiyatNo.Text.Trim() == "")
            {
                MessageBox.Show("Sevkiyat No giriniz", "HATA");
                return;
            }

            try
            {
                Cursor.Current = Cursors.WaitCursor;

                WS_Satis.service                         srv        = new KoctasMobil.WS_Satis.service();
                WS_Satis.ZmbSevkiyatHrzDty[]             itDetay    = new KoctasMobil.WS_Satis.ZmbSevkiyatHrzDty[0];
                WS_Satis.ZmbSevkiyatHrz[]                itSevkiyat = new KoctasMobil.WS_Satis.ZmbSevkiyatHrz[0];
                WS_Satis.ZktmobilSevkiyatSiparis         ss         = new KoctasMobil.WS_Satis.ZktmobilSevkiyatSiparis();
                WS_Satis.ZktmobilSevkiyatSiparisResponse resp       = new KoctasMobil.WS_Satis.ZktmobilSevkiyatSiparisResponse();

                ss.ItDetay    = itDetay;
                ss.ItSevkiyat = itSevkiyat;
                ss.ImSevkno   = txtSevkiyatNo.Text.Trim().ToUpper();
                ss.ImDetay    = "X";


                srv.Credentials = ProgramGlobalData.g_credential;
                srv.Url         = Utility.getWsUrl("zktmobil_satis");
                resp            = srv.ZktmobilSevkiyatSiparis(ss);



                // Eger kontrol sonrasýnda hiçbir sipariş dönmüyorsa
                // uyarı veriliyor
                if (resp.ItSevkiyat.Length == 0)
                {
                    MessageBox.Show("Belirtilen sevkiyat numarasına ait sipariş listesi bulunamadı", "HATA");
                    Cursor.Current = Cursors.Default;
                    return;
                }
                else if (resp.ItSevkiyat.Length > 0)
                {
                    //lst_Siparis.Items.Clear();
                    for (int i = 0; i < resp.ItSevkiyat.Length; i++)
                    {
                        string sipNo = resp.ItSevkiyat[i].Ebeln.ToString().Trim();

                        //Herbir siparis detayi cekiliyor

                        WS_Satis.service                    srv2    = new KoctasMobil.WS_Satis.service();
                        WS_Satis.ZkmobilMatlist[]           matlist = new KoctasMobil.WS_Satis.ZkmobilMatlist[0];
                        WS_Satis.ZkmobilReturn[]            ret     = new KoctasMobil.WS_Satis.ZkmobilReturn[0];
                        WS_Satis.ZktmobilMgCheckSas         sas     = new KoctasMobil.WS_Satis.ZktmobilMgCheckSas();
                        WS_Satis.ZktmobilMgCheckSasResponse resp2   = new KoctasMobil.WS_Satis.ZktmobilMgCheckSasResponse();


                        sas.TeMatlist = matlist;
                        sas.TeReturn  = ret;
                        sas.IEbeln    = sipNo;

                        //System.Net.NetworkCredential cr = new System.Net.NetworkCredential("berk", "Burak980");
                        //srv.Credentials = cr;

                        srv2.Credentials = ProgramGlobalData.g_credential;
                        srv2.Url         = Utility.getWsUrl("zktmobil_satis");
                        resp2            = srv2.ZktmobilMgCheckSas(sas);



                        // Eger SAS kontrolu sonrasýnda siparis kaydi HOROZ'a ait bir
                        // kayıt ise, checkbox ýn seçilmesi isteniyor.
                        if ((resp2.ExType1 == "1") && (!chk_horoz.Checked))
                        {
                            MessageBox.Show("Bu sipariş için 'Horoz Lojistik' kutusunu işaretleyiniz.", "HATA");
                        }
                        else if (resp2.TeReturn.Length > 0)
                        {
                            if (resp2.TeReturn[0].RcCode.ToUpper() == "S" && resp2.TeMatlist.Length > 0)
                            {
                                //lst_Siparis.Items.Add(sipNo);
                                lst_Siparis.Items.Insert(0, sipNo);
                                for (int j = 0; j < resp2.TeMatlist.Length; j++)
                                {
                                    try
                                    {
                                        materials.Add(Convert.ToInt64(resp2.TeMatlist[j].Ean11));
                                    }
                                    catch { }

                                    sas_fs[lenght]       = resp2.TeMatlist[j];
                                    sas_fs[lenght].Ebeln = sipNo;


                                    //ilgili siparis ve malzeme numarasýna göre Amenge degeri bulunuyor
                                    if (resp.ItDetay.Length > 0)
                                    {
                                        for (int ii = 0; ii < resp.ItDetay.Length; ii++)
                                        {
                                            if ((resp.ItDetay[ii].Ebeln.ToString().Trim() == sipNo) && (resp.ItDetay[ii].Matnr.TrimStart('0').ToString() == sas_fs[lenght].Matnr))
                                            {
                                                //Acik siparis miktarlari Matlist tablosuna ataniyor
                                                sas_fs[lenght].Amenge = Convert.ToDecimal(resp.ItDetay[ii].Amenge.ToString());
                                                break;
                                            }
                                        }
                                    }


                                    lenght++;
                                }
                            }

                            //else
                            //{
                            //    MessageBox.Show(resp2.TeReturn[0].RcText, "HATA");
                            //}
                        }
                    }
                }
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show(ex.Message, "HATA");
            }

            if (lenght == 0)
            {
                MessageBox.Show("Girilen sevkiyat numarasına ait mal kabulu yapılacak sipariş listesi bulunmamaktadır.", "BİLGİ");
            }
        }
        private void btn_Ekle_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(txt_malzemeno.Text) || String.IsNullOrEmpty(txt_miktar.Text))
                {
                    return;
                }


                if ((Horoz == true) && (String.IsNullOrEmpty(txt_Horoz.Text)))
                {
                    MessageBox.Show("Sevkiyat No Alanını Giriniz", "HATA");
                    return;
                }

                if ((Horoz == true) && (txt_Horoz.Text != ""))
                {
                    Cursor.Current = Cursors.WaitCursor;
                    // Horoz sevkiyat numarasi sistemde var mi kontrol
                    // ediliyor. - 26.12.2010 - Added by BrkSnmz
                    WS_Satis.service                     srv       = new KoctasMobil.WS_Satis.service();
                    WS_Satis.ZktmobilHrzSevkiyat         hrzChk    = new KoctasMobil.WS_Satis.ZktmobilHrzSevkiyat();
                    WS_Satis.ZktmobilHrzSevkiyatResponse hrzChkRes = new KoctasMobil.WS_Satis.ZktmobilHrzSevkiyatResponse();

                    srv.Url         = Utility.getWsUrl("zktmobil_satis");
                    srv.Credentials = ProgramGlobalData.g_credential;

                    hrzChk.ImSevkno = txt_Horoz.Text.Trim();
                    hrzChkRes       = srv.ZktmobilHrzSevkiyat(hrzChk);

                    if (hrzChkRes.ExReturn == "0")
                    {
                        MessageBox.Show("Sevkiyat Numarası Bulunmamaktadır.", "HATA");
                        Cursor.Current = Cursors.Default;
                        return;
                    }
                }

                bool  miktar_aşımı = false;
                Int64 matnr        = Convert.ToInt64(txt_malzemeno.Text.Trim()); //140509
                //malzeme kontrol yap.
                if (materials.Contains(matnr))
                {
                    decimal miktar         = decimal.Parse(txt_miktar.Text.Trim());
                    decimal kalan_miktar   = miktar;
                    decimal eklenen_miktar = 0;

                    //malzemenin bütün siparişlerdeki toplam miktarı:
                    decimal max_menge = 0;
                    for (int i = 0; i < siparis_sayisi; i++)
                    {
                        if (Convert.ToInt64(sas_fs[i].Ean11.Trim()) == matnr /*|| Convert.ToInt64(sas_fs[i].Matnr.Trim()) == matnr*/)
                        {
                            max_menge += sas_fs[i].Menge;
                        }
                    }

                    //Malzeme daha önce eklenmişse eklenen miktarları devral
                    for (int i = 0; i < dt_mal.Rows.Count; i++)
                    {
                        if (Convert.ToInt64(dt_mal.Rows[i]["matnr"].ToString()) == matnr)
                        {
                            miktar += Convert.ToDecimal(dt_mal.Rows[i]["menge"].ToString());
                        }
                    }
                    kalan_miktar = miktar;

                    #region ÇIKARILAN %15 KONTROLÜ
                    //miktar max miktarı aşıyor mu?:
                    //if (miktar > max_menge)
                    //{
                    //    //miktar, max miktarı en fazla yüzde 15 aşabilir :
                    //    if (miktar > max_menge * YÜZDEONBEŞ)
                    //    {
                    //        MessageBox.Show("Miktar " + max_menge.ToString() + "'i yüzde 15den fazla aşamaz.");
                    //        return;
                    //    }
                    //    miktar_aşımı = true;
                    //}

                    ////eklemeden önce, aynı malzeme daha önce eklenmişse sil:
                    //for (int i = 0; i < dt_mal.Rows.Count; i++)
                    //{
                    //    if (Convert.ToInt64(dt_mal.Rows[i]["matnr"].ToString()) == matnr)
                    //    {
                    //        dt_mal.Rows.RemoveAt(i);
                    //        i--;
                    //    }
                    //}

                    ////ekle
                    //for (int i = 0; i < sas_lenght; i++)
                    //{
                    //    if (Convert.ToInt64(sas_fs[i].Ean11.Trim()) == matnr || Convert.ToInt64(sas_fs[i].Matnr) == matnr)
                    //    {
                    //        if (kalan_miktar > (sas_fs[i].Menge * YÜZDEONBEŞ))
                    //        {
                    //            if (miktar_aşımı) //miktar aşımı varsa siparişlerdeki miktarların %15 fazlaları kullanılır, yoksa sipparişteki miktar kullanılır.
                    //            {
                    //                miktar = sas_fs[i].Menge * YÜZDEONBEŞ;
                    //            }
                    //            else
                    //            {
                    //                miktar = sas_fs[i].Menge;
                    //            }
                    //        }
                    //        else
                    //        {
                    //            miktar = kalan_miktar;
                    //        }
                    //        kalan_miktar = kalan_miktar - miktar;
                    //        DataRow row = dt_mal.NewRow();
                    //        row["matnr"] = sas_fs[i].Matnr;
                    //        row["maktx"] = sas_fs[i].Maktx;
                    //        row["menge"] = miktar;
                    //        row["meins"] = sas_fs[i].Meins;
                    //        row["ebeln"] = sas_fs[i].Ebeln;
                    //        row["ebelp"] = sas_fs[i].Ebelp;
                    //        row["werks"] = sas_fs[i].Werks;
                    //        row["lgort"] = sas_fs[i].Lgort;
                    //        if (chk_Son.Checked || miktar >= sas_fs[i].Menge)
                    //        {
                    //            row["S"] = "X";
                    //        }
                    //        dt_mal.Rows.Add(row);
                    //        grd_mal.DataSource = null;
                    //        grd_mal.DataSource = dt_mal;

                    //        if (kalan_miktar == 0)
                    //        {
                    //            break;
                    //        }
                    //    }
                    //}
                    //txt_malzemeno.Text = "";
                    //txt_miktar.Text = "";
                    //txt_malzemeno.Focus();
                    //chk_Son.Checked = false;
                    #endregion

                    //eklemeden önce, aynı malzeme daha önce eklenmişse sil:
                    for (int i = 0; i < dt_mal.Rows.Count; i++)
                    {
                        if (Convert.ToInt64(dt_mal.Rows[i]["matnr"].ToString()) == matnr)
                        {
                            dt_mal.Rows.RemoveAt(i);
                            i--;
                        }
                    }
                    //bu malzemeye ait olan siparişlerin alınması
                    WS_Satis.ZkmobilMatlist[] sas_mat = new KoctasMobil.WS_Satis.ZkmobilMatlist[500];
                    int inx = 0;
                    for (int i = 0; i < sas_lenght; i++)
                    {
                        if (ConvertInt64(sas_fs[i].Ean11.Trim()) == matnr || ConvertInt64(sas_fs[i].Ean112.Trim()) == matnr || ConvertInt64(sas_fs[i].Matnr) == matnr)
                        {
                            sas_mat[inx] = sas_fs[i];
                            inx++;
                        }
                    }
                    for (int i = 0; i < inx; i += 2)
                    {
                        if (kalan_miktar > (sas_mat[i].Menge)) //Son siparişe kadar, sipariş miktarlarını kapatarak git
                        {
                            miktar = sas_mat[i].Menge;
                        }
                        else
                        {
                            miktar = kalan_miktar;
                        }
                        kalan_miktar = kalan_miktar - miktar;
                        DataRow row = dt_mal.NewRow();
                        row["matnr"]    = sas_mat[i].Matnr;
                        row["maktx"]    = sas_mat[i].Maktx;
                        row["menge"]    = miktar;
                        eklenen_miktar += miktar;
                        row["meins"]    = sas_mat[i].Meins;
                        row["ebeln"]    = sas_mat[i].Ebeln;
                        row["ebelp"]    = sas_mat[i].Ebelp;
                        row["werks"]    = sas_mat[i].Werks;
                        row["lgort"]    = sas_mat[i].Lgort;
                        //row["frbnr"] = txt_Horoz.Text.Trim() ;
                        if (chk_Son.Checked || miktar >= sas_mat[i].Menge)
                        {
                            row["S"] = "X";
                            dt_mal.Rows.Add(row);
                        }
                        //Sipariş miktarındaki miktardan fazla miktar eklenmiş ise
                        else if (eklenen_miktar >= sas_mat[i].Menge)
                        {
                            //row["S"] = "X";
                            dt_mal.Rows[dt_mal.Rows.Count - 1]["menge"] = (Convert.ToDecimal(dt_mal.Rows[dt_mal.Rows.Count - 1]["menge"].ToString()) + miktar).ToString();
                        }
                        else
                        {
                            dt_mal.Rows.Add(row);
                        }


                        //dt_mal.Rows.Add(row);
                        grd_mal.DataSource = null;
                        grd_mal.DataSource = dt_mal;

                        if (kalan_miktar == 0)
                        {
                            break;
                        }
                    }
                    if (kalan_miktar > 0) //Kalan miktarın tamamını son siparişe ekle.
                    {
                        decimal sonMiktar = Convert.ToDecimal(dt_mal.Rows[dt_mal.Rows.Count - 1]["menge"].ToString()) + kalan_miktar;
                        dt_mal.Rows[dt_mal.Rows.Count - 1]["menge"] = sonMiktar.ToString();

                        //DataRow row = dt_mal.NewRow();
                        //row["matnr"] = sas_mat[inx - 1].Matnr;
                        //row["maktx"] = sas_mat[inx - 1].Maktx;
                        //row["menge"] = kalan_miktar;
                        //row["meins"] = sas_mat[inx - 1].Meins;
                        //row["ebeln"] = sas_mat[inx - 1].Ebeln;
                        //row["ebelp"] = sas_mat[inx - 1].Ebelp;
                        //row["werks"] = sas_mat[inx - 1].Werks;
                        //row["lgort"] = sas_mat[inx - 1].Lgort;
                        //if (chk_Son.Checked || miktar >= sas_mat[inx - 1].Menge)
                        //{
                        //   row["S"] = "X";
                        //}
                        //dt_mal.Rows.Add(row);
                        grd_mal.DataSource = null;
                        grd_mal.DataSource = dt_mal;
                    }
                    txt_malzemeno.Text = txt_miktar.Text = "";
                    txt_malzemeno.Focus();

                    Cursor.Current = Cursors.Default;
                }
                else
                {
                    MessageBox.Show("Bu malzeme girilen siparişlerde bulunmuyor.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btn_SiparisEkle_Click(object sender, EventArgs e)
        {
            string irsaliyeNo = cmb_IrsNo.Text;
            string siparisNo  = txt_sas.Text.Trim();

            dt_IrsaliyeKaydiGuncelle(irsaliyeNo);

            if (siparisNo == "")
            {
                return;
            }

            if (irsaliyeNo == "")
            {
                MessageBox.Show("Sipariş no girişi yapmadan önce irsaliye eklemelisiniz");
                return;
            }

            try
            {
                Cursor.Current = Cursors.WaitCursor;

                WS_Satis.service                    srv     = new KoctasMobil.WS_Satis.service();
                WS_Satis.ZkmobilMatlist[]           matlist = new KoctasMobil.WS_Satis.ZkmobilMatlist[0];
                WS_Satis.ZkmobilReturn[]            ret     = new KoctasMobil.WS_Satis.ZkmobilReturn[0];
                WS_Satis.ZktmobilMgCheckSas         sas     = new KoctasMobil.WS_Satis.ZktmobilMgCheckSas();
                WS_Satis.ZktmobilMgCheckSasResponse resp    = new KoctasMobil.WS_Satis.ZktmobilMgCheckSasResponse();


                sas.TeMatlist = matlist;
                sas.TeReturn  = ret;
                sas.IEbeln    = siparisNo;

                //System.Net.NetworkCredential cr = new System.Net.NetworkCredential("berk", "Burak980");
                //srv.Credentials = cr;

                srv.Credentials = ProgramGlobalData.g_credential;
                srv.Url         = Utility.getWsUrl("zktmobil_satis");
                resp            = srv.ZktmobilMgCheckSas(sas);



                // Eger SAS kontrolu sonrasında siparis kaydi DEPO'ya ait bir
                // kayıt ise, depo formu üzerinden giriş yapılması bekleniyor

                if (resp.ExType1 == "1")
                {
                    MessageBox.Show("Bu sipariş için 'Depo Lojistik' formunu kullanmalısınız.", "HATA");
                }
                else if (resp.TeReturn.Length > 0)
                {
                    if (resp.TeReturn[0].RcCode.ToUpper() == "S" && resp.TeMatlist.Length > 0)
                    {
                        //Sipariş No ilgili irsaliyeye ekleniyor
                        //Sipariş daha önce ilgili irsaliyeye eklenmiş mi?
                        if (dt_SiparisIrsaliyedeVarMi(irsaliyeNo, siparisNo) == false)
                        {
                            DataRow rowS = tbl_Siparisler.NewRow();
                            rowS["irsaliyeNo"] = irsaliyeNo;
                            rowS["siparisNo"]  = siparisNo;
                            tbl_Siparisler.Rows.Add(rowS);
                        }
                        else
                        {
                            MessageBox.Show("Bu sipariş ilgili irsaliyede zaten var.", "HATA");
                        }


                        //Bulunan malzemeler tabloya alınıyor
                        //Daha önce alınmış mı?
                        if (dt_SiparisMalzemeleriAlindiMi(irsaliyeNo, siparisNo) == false)
                        {
                            for (int i = 0; i < resp.TeMatlist.Length; i++)
                            {
                                DataRow row = tbl_Malzeme.NewRow();
                                row["siparisNo"]  = resp.TeMatlist[i].Ebeln.ToString();
                                row["irsaliyeNo"] = irsaliyeNo;
                                row["Amenge"]     = resp.TeMatlist[i].Amenge;
                                row["Ean11"]      = resp.TeMatlist[i].Ean11.ToString();
                                row["Ean112"]     = resp.TeMatlist[i].Ean112.ToString();
                                row["Ebeln"]      = resp.TeMatlist[i].Ebeln.ToString();
                                row["Ebelp"]      = resp.TeMatlist[i].Ebelp.ToString();
                                row["Lgort"]      = resp.TeMatlist[i].Lgort.ToString();
                                row["Maktx"]      = resp.TeMatlist[i].Maktx.ToString();
                                row["Matnr"]      = resp.TeMatlist[i].Matnr.ToString();
                                row["Meins"]      = resp.TeMatlist[i].Meins.ToString();
                                row["Menge"]      = resp.TeMatlist[i].Menge;
                                row["Werks"]      = resp.TeMatlist[i].Werks.ToString();
                                //row["Ckats"] = resp.TeMatlist[i].Ckats;
                                row["Lmein"] = resp.TeMatlist[i].Lmein.ToString();
                                row["Umrez"] = resp.TeMatlist[i].Umrez;
                                row["Umren"] = resp.TeMatlist[i].Umren;


                                tbl_Malzeme.Rows.Add(row);
                            }
                        }

                        tbl_Malzeme.AcceptChanges();
                        txt_sas.Text = "";
                        siparisListesiDoldur(irsaliyeNo);
                    }
                    else
                    {
                        txt_sas.Text = "";
                        MessageBox.Show(resp.TeReturn[0].RcText, "HATA");
                    }
                }
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show(ex.Message, "HATA");
            }
        }