Example #1
0
        private void btn_Ekle_Click(object sender, EventArgs e)
        {
            logger.info("frm_31_Mal_Giris_btn_Ekle_Click begin");
            try
            {
                Cursor.Current = Cursors.WaitCursor;

                WS_Kontrol.ZKT_WM_WS_KONTROLSERVICE  srv     = new KoctasWM_Project.WS_Kontrol.ZKT_WM_WS_KONTROLSERVICE();
                WS_Kontrol.ZkmobilMatlist[]          matlist = new KoctasWM_Project.WS_Kontrol.ZkmobilMatlist[0];
                WS_Kontrol.ZkmobilReturn[]           ret     = new KoctasWM_Project.WS_Kontrol.ZkmobilReturn[0];
                WS_Kontrol.ZKtWmWsMgCheckSas         sas     = new KoctasWM_Project.WS_Kontrol.ZKtWmWsMgCheckSas();
                WS_Kontrol.ZKtWmWsMgCheckSasResponse resp    = new KoctasWM_Project.WS_Kontrol.ZKtWmWsMgCheckSasResponse();


                sas.TeMatlist = matlist;
                sas.TeReturn  = ret;
                sas.IEbeln    = txtSiparisNo.Text.Trim();

                srv.Credentials = GlobalData.globalCr;
                srv.Url         = Utility.getWsUrlForWM("zkt_wm_ws_kontrol");
                resp            = srv.ZKtWmWsMgCheckSas(sas);


                // Eger SAS kontrolu sonras?nda siparis kaydi HOROZ'a ait bir
                // kay?t ise, checkbox ?n seçilmesi isteniyor.
                if ((resp.ExType1 == "1") && (!chk_horoz.Checked))
                {
                    MessageBox.Show("Bu sipari? için 'Horoz Lojistik' kutusunu i?aretleyiniz.", "HATA");
                }
                else if (resp.TeReturn.Length > 0)
                {
                    if (resp.TeReturn[0].RcCode.ToUpper() == "S" && resp.TeMatlist.Length > 0)
                    {
                        //lst_Siparis.Items.Add(txt_sas.Text.Trim());
                        lst_Siparis.Items.Insert(0, txtSiparisNo.Text.Trim());
                        for (int i = 0; i < resp.TeMatlist.Length; i++)
                        {
                            //try { materials.Add(Convert.ToInt64(resp.TeMatlist[i].Matnr)); }
                            //catch { }
                            try
                            {
                                materials.Add(Convert.ToInt64(resp.TeMatlist[i].Ean11));
                            }
                            catch { }
                            //try { materials.Add(Convert.ToInt64(resp.TeMatlist[i].Ean112)); }
                            //catch { }
                            sas_fs[lenght]       = resp.TeMatlist[i];
                            sas_fs[lenght].Ebeln = txtSiparisNo.Text.Trim();
                            lenght++;
                        }
                        txtSiparisNo.Text = "";
                    }
                    else
                    {
                        txtSiparisNo.Text = "";
                        MessageBox.Show(resp.TeReturn[0].RcText, "HATA");
                    }
                }
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show(ex.Message, "HATA");
                logger.error("frm_31_Mal_Giris_btn_Ekle_Click " + ex.Message);
            }
            logger.info("frm_31_Mal_Giris_btn_Ekle_Click end");
        }
        private void btn_Ekle_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(txtMalzemeNo.Text) || String.IsNullOrEmpty(txtMiktar.Text))
                {
                    return;
                }


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

                //bool miktar_aşımı = false;
                Int64 matnr = Convert.ToInt64(txtMalzemeNo.Text.Trim()); //140509

                //malzeme kontrol yap.
                if (materials.Contains(matnr))
                {
                    decimal miktar         = decimal.Parse(txtMiktar.Text.Trim());
                    decimal kalan_miktar   = miktar;
                    decimal eklenen_miktar = 0;
                    string  siparisNo      = "";
                    decimal kontrolMiktar  = 0;

                    //barkod no ile gelen malzemenin 'malzeme no' su bulunuyor
                    for (int i = 0; i < sas_lenght; i++)
                    {
                        if ((Convert.ToInt64(sas_fs[i].Ean11.Trim()) == matnr && Convert.ToInt64(sas_fs[i].Matnr.Trim()) != matnr))
                        {
                            matnr = Convert.ToInt64(sas_fs[i].Matnr.Trim());
                            break;
                        }
                    }

                    //malzemenin bütün siparişlerdeki toplam miktarı:
                    decimal max_menge = 0;
                    for (int i = 0; i < sas_lenght; i++)
                    {
                        //Eger horoz siparişi ise Amenge miktarı kontrol ediliyor
                        if (Horoz == true)
                        {
                            kontrolMiktar = sas_fs[i].Amenge;
                        }
                        else
                        {
                            kontrolMiktar = sas_fs[i].Menge;
                        }


                        if ((Convert.ToInt64(sas_fs[i].Ean11.Trim()) == matnr || Convert.ToInt64(sas_fs[i].Matnr.Trim()) == matnr) && (siparisNo != sas_fs[i].Ebeln.ToString().Trim()))
                        {
                            max_menge += kontrolMiktar;
                            siparisNo  = sas_fs[i].Ebeln.ToString().Trim();
                        }
                    }

                    //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());
                        }
                    }

                    if (Horoz == true)
                    {
                        if (miktar > max_menge)
                        {
                            MessageBox.Show("Girmek istediğiniz miktar açık sipariş miktarından fazla olamaz", "HATA");
                            return;
                        }
                    }

                    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_Kontrol.ZkmobilMatlist[] sas_mat = new KoctasWM_Project.WS_Kontrol.ZkmobilMatlist[1000];
                    int inx = 0;
                    siparisNo = "";
                    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)
                        {
                            if (siparisNo != sas_fs[i].Ebeln.ToString().Trim())
                            {
                                sas_mat[inx] = sas_fs[i];
                                inx++;
                                siparisNo = sas_fs[i].Ebeln.ToString().Trim();
                            }
                        }
                    }
                    for (int i = 0; i < inx; i++)
                    {
                        //Eger horoz siparişi ise Amenge miktarı kontrol ediliyor
                        if (Horoz == true)
                        {
                            kontrolMiktar = sas_mat[i].Amenge;
                        }
                        else
                        {
                            kontrolMiktar = sas_mat[i].Menge;
                        }

                        if (kalan_miktar > (kontrolMiktar)) //Son siparişe kadar, sipariş miktarlarını kapatarak git
                        {
                            miktar = kontrolMiktar;
                        }
                        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["S"]        = "";

                        if (chk_Son.Checked || miktar >= kontrolMiktar)
                        {
                            row["S"] = "X";
                            dt_mal.Rows.InsertAt(row, 0);
                        }

                        //Sipariş miktarındaki miktardan fazla miktar eklenmiş ise
                        else if ((Horoz == false) && (eklenen_miktar >= kontrolMiktar))
                        {
                            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.InsertAt(row, 0);
                        }

                        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[0]["menge"].ToString()) + kalan_miktar;
                        dt_mal.Rows[0]["menge"] = sonMiktar.ToString();

                        grd_mal.DataSource = null;
                        grd_mal.DataSource = dt_mal;
                    }
                    txtMalzemeNo.Text = txtMiktar.Text = "";
                    Utility.selectText(txtMalzemeNo);

                    Cursor.Current = Cursors.Default;
                }
                else
                {
                    MessageBox.Show("Bu malzeme girilen siparişlerde bulunmuyor.", "HATA");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Example #3
0
        private void btn_KontrolEt_Click(object sender, EventArgs e)
        {
            logger.info("frm_31_Mal_Giris_btn_KontrolEt_Click begin");
            if (txtSevkiyatNo.Text.Trim() == "")
            {
                MessageBox.Show("Sevkiyat No giriniz", "HATA");
                return;
            }

            try
            {
                Cursor.Current = Cursors.WaitCursor;

                WS_Kontrol.ZKT_WM_WS_KONTROLSERVICE       srv        = new KoctasWM_Project.WS_Kontrol.ZKT_WM_WS_KONTROLSERVICE();
                WS_Kontrol.ZmbSevkiyatHrzDty[]            itDetay    = new KoctasWM_Project.WS_Kontrol.ZmbSevkiyatHrzDty[0];
                WS_Kontrol.ZmbSevkiyatHrz[]               itSevkiyat = new KoctasWM_Project.WS_Kontrol.ZmbSevkiyatHrz[0];
                WS_Kontrol.ZKtWmWsSevkiyatSiparis         chk        = new KoctasWM_Project.WS_Kontrol.ZKtWmWsSevkiyatSiparis();
                WS_Kontrol.ZKtWmWsSevkiyatSiparisResponse resp       = new KoctasWM_Project.WS_Kontrol.ZKtWmWsSevkiyatSiparisResponse();

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

                srv.Credentials = GlobalData.globalCr;
                srv.Url         = Utility.getWsUrlForWM("zkt_wm_ws_kontrol");
                resp            = srv.ZKtWmWsSevkiyatSiparis(chk);

                // 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_Kontrol.ZKT_WM_WS_KONTROLSERVICE  srv2    = new KoctasWM_Project.WS_Kontrol.ZKT_WM_WS_KONTROLSERVICE();
                        WS_Kontrol.ZkmobilMatlist[]          matlist = new KoctasWM_Project.WS_Kontrol.ZkmobilMatlist[0];
                        WS_Kontrol.ZkmobilReturn[]           ret     = new KoctasWM_Project.WS_Kontrol.ZkmobilReturn[0];
                        WS_Kontrol.ZKtWmWsMgCheckSas         sas     = new KoctasWM_Project.WS_Kontrol.ZKtWmWsMgCheckSas();
                        WS_Kontrol.ZKtWmWsMgCheckSasResponse resp2   = new KoctasWM_Project.WS_Kontrol.ZKtWmWsMgCheckSasResponse();

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

                        srv2.Credentials = GlobalData.globalCr;
                        srv2.Url         = Utility.getWsUrlForWM("zkt_wm_ws_kontrol");
                        resp2            = srv2.ZKtWmWsMgCheckSas(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.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++;
                                }
                            }
                        }
                    }
                }
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show(ex.Message, "HATA");
                logger.error("frm_31_Mal_Giris_btn_KontrolEt_Click " + ex.Message);
            }

            if (lenght == 0)
            {
                MessageBox.Show("Girilen sevkiyat numaras?na ait mal kabulu yap?lacak sipari? listesi bulunmamaktad?r.", "B?LG?");
            }
            logger.info("frm_31_Mal_Giris_btn_KontrolEt_Click end");
        }