using System;
using System.Collections;
using System.Web.Services;
using System.Web.Script.Services;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class kosar : System.Web.UI.Page
{
    protected int cegID = 0;

    protected int felhasznaloID;

    protected void Page_Load(object sender, EventArgs e)
    {

        string UserName = Page.User.Identity.Name;
        db.adatbazisMuveletek.UserNameToCegID(UserName, out cegID);
        db.adatbazisMuveletek.UserNameToKontaktID(UserName, out felhasznaloID);
        kezdolapBetoltes();
        ddlSzalitasiCimFeltolt();



    }
    public void imgbtn_Click(object sender, EventArgs e)
    {
        ImageButton imgbtn = (ImageButton)(sender);
        db.adatbazisMuveletek.kosarbolEszkozTorlese(Convert.ToInt32(imgbtn.ID), felhasznaloID);
        kezdolapBetoltes();

    }
    protected void kezdolapBetoltes()
    {
        int osszNettoAr = 0;
        div1.Controls.Clear();
        System.Collections.Generic.List<db.kosarTermekLista> kosarTermekLista = new System.Collections.Generic.List<db.kosarTermekLista>();
        db.adatbazisMuveletek.kosarTartalomLekerdezese(felhasznaloID, out kosarTermekLista);

        for (int i = 0; i < kosarTermekLista.Count; i++)
        {
            osszNettoAr= osszNettoAr+(kosarTermekLista[i].ar*kosarTermekLista[i].mennyiseg);
            Table tb = new Table();
            Panel pnl = new Panel();
            pnl.Width = System.Web.UI.WebControls.Unit.Pixel(818);

            if (i % 2 == 0)
            {
                pnl.BackColor = System.Drawing.Color.Lavender;
            }
            else
            {
                pnl.BackColor = System.Drawing.Color.White;
            }
            //mennyiseg
            TextBox tb1 = new TextBox();
            tb1.Width = System.Web.UI.WebControls.Unit.Pixel(30);
            tb1.ID = "tb_" + kosarTermekLista[i].termekID;
            tb1.Text = kosarTermekLista[i].mennyiseg.ToString();
            AjaxControlToolkit.FilteredTextBoxExtender ftbExtender = new AjaxControlToolkit.FilteredTextBoxExtender();
            ftbExtender.ID = "ftbEx" + i.ToString();
            ftbExtender.TargetControlID = "tb_" + kosarTermekLista[i].termekID;
            ftbExtender.FilterType = AjaxControlToolkit.FilterTypes.Numbers;
            //cikkszam
            Label lbl2 = new Label();
            lbl2.ID = "lbl2" + i.ToString();
            lbl2.Text = kosarTermekLista[i].cikkszam;
            //megnevezes
            Label lbl3 = new Label();
            lbl3.ID = "lbl3" + i.ToString();
            lbl3.Text = kosarTermekLista[i].megnevezes;
            //ar
            Label lbl4 = new Label();
            lbl4.ID = "lbl4" + i.ToString();
            lbl4.Text = kosarTermekLista[i].ar.ToString();
            //osszar
            Label lbl5 = new Label();
            lbl5.ID = "lbl5" + i.ToString();
            lbl5.Text = (kosarTermekLista[i].ar * kosarTermekLista[i].mennyiseg).ToString();
            //törlésgomb
            ImageButton imgbtn2 = new ImageButton();
            imgbtn2.ID = "ID_"+kosarTermekLista[i].termekID.ToString();
            //imgbtn.Width = System.Web.UI.WebControls.Unit.Pixel(13);
            //imgbtn.Height = System.Web.UI.WebControls.Unit.Pixel(14);
            imgbtn2.Click += new ImageClickEventHandler(tetelUpdate);
            imgbtn2.ToolTip = "Mennyiség módosítása";
            if (i % 2 == 0)
            {
                imgbtn2.ImageUrl = "~/img/update2.png";
            }
            else
            {
                imgbtn2.ImageUrl = "~/img/update.png";
            }
            //UPDATE gomb
            ImageButton imgbtn = new ImageButton();
            imgbtn.ID = kosarTermekLista[i].termekID.ToString();
            //imgbtn.Width = System.Web.UI.WebControls.Unit.Pixel(13);
            //imgbtn.Height = System.Web.UI.WebControls.Unit.Pixel(14);
            imgbtn.Click += new ImageClickEventHandler(imgbtn_Click);
            imgbtn.ToolTip = "Tétel törlése";
            if (i % 2 == 0)
            {
                imgbtn.ImageUrl = "~/img/del2.png";
            }
            else
            {
                imgbtn.ImageUrl = "~/img/del.png";
            }

            TableRow tr = new TableRow();
            TableCell td1 = new TableCell();
            td1.HorizontalAlign = HorizontalAlign.Center;
            td1.Width = System.Web.UI.WebControls.Unit.Pixel(75);
            TableCell td2 = new TableCell();
            td2.Width = System.Web.UI.WebControls.Unit.Pixel(150);
            TableCell td3 = new TableCell();
            td3.Width = System.Web.UI.WebControls.Unit.Pixel(343);
            TableCell td4 = new TableCell();
            td4.Width = System.Web.UI.WebControls.Unit.Pixel(75);
            td4.HorizontalAlign = HorizontalAlign.Right;
            TableCell td5 = new TableCell();
            td5.Width = System.Web.UI.WebControls.Unit.Pixel(72);
            td5.HorizontalAlign = HorizontalAlign.Right;
            TableCell td6 = new TableCell();
            td6.Width = System.Web.UI.WebControls.Unit.Pixel(50);
            td1.Controls.Add(tb1);
            td1.Controls.Add(ftbExtender);
            td2.Controls.Add(lbl2);
            td3.Controls.Add(lbl3);
            td4.Controls.Add(lbl4);
            td5.Controls.Add(lbl5);
            
            //gombok
            Table tblfunkciok = new Table();
            TableRow trF = new TableRow();
            TableCell tdF1 = new TableCell();
            tdF1.Width = System.Web.UI.WebControls.Unit.Pixel(30);
            TableCell tdF2 = new TableCell();
            tdF2.Width = System.Web.UI.WebControls.Unit.Pixel(30);
            tdF1.Controls.Add(imgbtn);
            tdF2.Controls.Add(imgbtn2);
            trF.Controls.Add(tdF1);
            trF.Controls.Add(tdF2);
            tblfunkciok.Controls.Add(trF);
            td6.Controls.Add(tblfunkciok);
            tr.Controls.Add(td1);
            tr.Controls.Add(td2);
            tr.Controls.Add(td3);
            tr.Controls.Add(td4);
            tr.Controls.Add(td5);
            tr.Controls.Add(td6);
            tb.Controls.Add(tr);
            pnl.Controls.Add(tb);
            div1.Controls.Add(pnl);
        }
        if(osszNettoAr==0){lblOsszNettoAr.Text="0";}else{lblOsszNettoAr.Text = szamToPenz(osszNettoAr);}

        if (osszNettoAr == 0) { lblOsszBruttoAr.Text = "0" ; } else { osszNettoAr = Convert.ToInt32(osszNettoAr * 1.2); lblOsszBruttoAr.Text = szamToPenz(osszNettoAr); }
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        System.Collections.Generic.List<db.kosarTermekLista> kosarTermekLista = new System.Collections.Generic.List<db.kosarTermekLista>();
        db.adatbazisMuveletek.kosarTartalomLekerdezese(felhasznaloID, out kosarTermekLista);
        for (int i = 0; i < kosarTermekLista.Count; i++)
        {
            db.adatbazisMuveletek.kosarbolEszkozTorlese(kosarTermekLista[i].termekID, felhasznaloID);
        }
        kezdolapBetoltes();
    }
    protected string szamToPenz(int szam)
    {
        int millios;
        int ezres;
        int tizes;
        string t, e, m;
        //átalakítom a számot sztringgé úgy, hogy a megjelenítésnél pontokkal tagolt legyen. pl: 12.345.681
        tizes = szam % 1000;
        ezres = ((szam - tizes) / 1000) % 1000;
        millios = (szam - ((ezres * 1000) + tizes)) / 1000000;
        
        t = tizes.ToString(); if (tizes == 0) { t = "000"; }
        e = ezres.ToString(); if (ezres == 0) { e = "000"; }
        m = millios.ToString();
        //if (Convert.ToInt32(e) < 100) { if (Convert.ToInt32(e) < 10 && Convert.ToInt32(e) != 0) { e = "00" + e; } else { e = "0" + e; } }
        //if (Convert.ToInt32(t) < 100) { if (Convert.ToInt32(t) < 10 && Convert.ToInt32(t) != 0) { t = "00" + t; } else { e = "0" + t; } }
        if (millios > 0)
        {
            switch (e.Length)
            {
                case 1: e = "00" + e; break;
                case 2: e = "0" + e; break;
                default: break;
            }
        }
        if (ezres > 0 || millios>0)
        {
            switch (t.Length)
            {
                case 1: t = "00" + t; break;
                case 2: t = "0" + t; break;
                default: break;
            }
        }
        if (szam > 1000000) { return m + "." + e + "." + t; }
        if (szam < 1000000 && szam > 1000) { return e + "." + t; }
        if (szam < 1000) { return szam.ToString(); } else { return ""; }

    }
    protected void tetelUpdate(object sender, EventArgs e)
    {
        int kulonbseg = 0;
        int ujRendelendo, ujKeszlet, termekID;

        ImageButton imgbtn = (ImageButton)(sender);
        string[] split = imgbtn.ID.ToString().Split(new Char[] { '_' });
        termekID = Convert.ToInt32(split[1]);
        System.Collections.Generic.List<db.kosarTermekLista> kosarbolTermek = new System.Collections.Generic.List<db.kosarTermekLista>();
        db.adatbazisMuveletek.kosarbolEgyTermekLekerdezese(felhasznaloID, termekID, out kosarbolTermek);

        db.termekLista termekJellemzok = new db.termekLista();
        db.adatbazisMuveletek.termekLekerdezes(termekID, out termekJellemzok);
       

        TextBox tb = (TextBox)div1.NamingContainer.FindControl("tb_" + termekID.ToString());
        if (kosarbolTermek[0].mennyiseg == Convert.ToInt32(tb.Text))
        {
            // ha nem történt módosítást
        }
        if (Convert.ToInt32(tb.Text) != 0)
        {
            //Ha a módosítás nem nullára történt
            if (kosarbolTermek[0].mennyiseg > Convert.ToInt32(tb.Text))
            {
                // ha a textboxban a módosított mennyiség kisebbre értékre cserélődik
                kulonbseg = kosarbolTermek[0].mennyiseg - Convert.ToInt32(tb.Text);
                if (kulonbseg >= termekJellemzok.rendelendo)
                {
                    ujRendelendo = 0;
                    ujKeszlet = termekJellemzok.keszlet + kulonbseg;
                }
                else
                {
                    ujRendelendo = termekJellemzok.rendelendo - kulonbseg;
                }
                //UPDATE Eszkoz

                //UPDATE kosarTartalma
                db.adatbazisMuveletek.kosarUpdateCsokkent(termekID, kulonbseg, 1, felhasznaloID);
            }
        }
        else
        {
            //Ha a módosítás nullára történt, akkor a terméket töröljük a kosárból
            db.adatbazisMuveletek.kosarbolEszkozTorlese(termekID, felhasznaloID);
            
        }
        if (kosarbolTermek[0].mennyiseg < Convert.ToInt32(tb.Text))
        {
            // ha a textboxban a módosított mennyiség nagyobb értékre cserélődik
            kulonbseg = Convert.ToInt32(tb.Text) -kosarbolTermek[0].mennyiseg;
            db.adatbazisMuveletek.kosarbaTesz(termekID, kulonbseg, 1, felhasznaloID);
        }
        kezdolapBetoltes();

    }

    protected void ddlSzallitasiCim_SelectedIndexChanged(object sender, EventArgs e)
    {
        
    }
    protected void ddlSzalitasiCimFeltolt()
    {
        ddlSzallitasiCim.Items.Clear();
        ddlSzallitasiCim.Items.Add(new ListItem("Válassz...","0"));
        ddlSzallitasiCim.Items.Add(new ListItem("Új cím megadása", "9999"));
        System.Collections.Generic.List<db.szallitasicim> szCimLista = new System.Collections.Generic.List<db.szallitasicim>();
        db.adatbazisMuveletek.szCimLekerdezCegIDalapjan(cegID, out szCimLista);
        string szcim = "";
        for (int i = 0; i < szCimLista.Count; i++)
        {
            szcim = szCimLista[i].irszam + " " + szCimLista[i].varos + ", " + szCimLista[i].utcaHazszam;
            ddlSzallitasiCim.Items.Add(new ListItem(szcim, szCimLista[i].szCimID.ToString()));
        }
    }
    protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
    {
        
        int LegnagyobbMegrendSzam;
        int cegID;
        int szCimID;
        int reszszallitas;
        int errorCount=0;
        db.termekLista termekjellemzok = new db.termekLista();
        System.Collections.Generic.List<db.kosarTermekLista> kosarTermekLista = new System.Collections.Generic.List<db.kosarTermekLista>();
        db.adatbazisMuveletek.legnagyobbMegrendSzamLekerdez(out LegnagyobbMegrendSzam);
        ++LegnagyobbMegrendSzam;
        db.adatbazisMuveletek.felhasznaloIdToCEGID(felhasznaloID, out cegID);
        szCimID = ddlSzallitasiCim.SelectedIndex;
        db.adatbazisMuveletek.kosarTartalomLekerdezese(felhasznaloID, out kosarTermekLista);

        if (CheckBox1.Checked)
        {
            reszszallitas = 1;
        }
        else
        {
            reszszallitas = 0;
        }

        for (int i = 0; i < kosarTermekLista.Count; i++)
        {
            //db.abEditLekerdez.termekLekerdezes(kosarTermekLista[i].termekID, out termekjellemzok);
            // kosartermeklista[i].mennyiseg;
            // megjegyzés TextBox1.Text
            if (!db.adatbazisMuveletek.megrendelesRogzit(LegnagyobbMegrendSzam, cegID, szCimID, kosarTermekLista[i].termekID, kosarTermekLista[i].ar, kosarTermekLista[i].mennyiseg, @TextBox1.Text, reszszallitas)) { errorCount++; }

            

        }
        if (errorCount == 0)
        {
            // mi van ha a megrendelés rögzítés felénél megszakad a kapcsolat? Akkor a megrendelésből mindent vissza a kosűrba...
            System.Collections.Generic.List<db.kosarTermekLista> kosarTermekLista2 = new System.Collections.Generic.List<db.kosarTermekLista>();
            db.adatbazisMuveletek.kosarTartalomLekerdezese(felhasznaloID, out kosarTermekLista2);
            for (int i = 0; i < kosarTermekLista2.Count; i++)
            {
                db.adatbazisMuveletek.kosarbolEszkozTorleseMegrendelesEseten(kosarTermekLista2[i].termekID, felhasznaloID);
            }
        }
        else
        {
            //legutolsó megrendelés törlése
        }
        //kezdolapBetoltes();

        // megrendeléslapra ugrás
        //Response.Redirect("");

    }
}
