using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LLNet.Utils;
using LLNet.GUI;

namespace LLNet.Tienda.MainForms.Forms.CierreConsol
{
    public partial class FrmRegsitroRetiro : Form
    {
        string varqueo;
        int vmoneda;
        public FrmRegsitroRetiro(string arqueo, int moneda)
        {
            varqueo = arqueo;
            vmoneda = moneda;
            InitializeComponent();
            LoadArqData(arqueo, moneda);
        }

        private void btnGuardarArq_Click(object sender, EventArgs e)
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();

            for (int i = 0; i < dgvArqueoRetiro.RowCount; i++)
			{
                if ( !String.IsNullOrEmpty(dgvArqueoRetiro.Rows[i].Cells["CANTIDAD"].Value.ToString()))
	            {
                    qp.AddReplaceParam("pCANTIDAD", dgvArqueoRetiro.Rows[i].Cells["CANTIDAD"].Value.ToString());
                    qp.AddReplaceParam("pUSUARIO", GUI.CApp.usuario);
                    qp.AddReplaceParam("pARQUEO", varqueo);
                    qp.AddReplaceParam("pMONEDA", vmoneda.ToString());
                    qp.AddReplaceParam("pFACTOR", dgvArqueoRetiro.Rows[i].Cells["FACTOR"].Value.ToString());
                    GUI.CApp.bll.ExecuteSql("GuardarArqueo", qp, "PDV");
                    qp.Clear();

                    qp.AddReplaceParam("pARQUEO", varqueo);
                    qp.AddReplaceParam("pMONEDA", vmoneda.ToString());
                    lblAcumulado.Text = GUI.CApp.bll.GetSingleValue("MontoRetiro", qp, "PDV").ToString();
                    qp.Clear();
		 
	            }
			 
			}

            LoadArqData(varqueo, vmoneda);
        }

        private void LoadArqData(string arqueo, int moneda)
        {
            DataSet dsretiro;
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("ARQUEO", arqueo);
            qp.AddReplaceParam("MONEDA", moneda.ToString());

            dsretiro = GUI.CApp.bll.getDataSet("PDV", "ArqueoRetiro", qp);

            dgvArqueoRetiro.DataSource = dsretiro.Tables[0];
            dgvArqueoRetiro.Refresh();

            EstadoArqueo();
        }

        private void EstadoArqueo()
        {

            dgvArqueoRetiro.Columns["DENOMINACIONES"].ReadOnly = true;
            dgvArqueoRetiro.Columns["MONEDA"].ReadOnly = true;
            dgvArqueoRetiro.Columns["TASA_CAMBIO"].ReadOnly = true;
            dgvArqueoRetiro.Columns["CANTIDAD"].ReadOnly = false;
            dgvArqueoRetiro.Columns["TOTAL"].ReadOnly = true;
            dgvArqueoRetiro.Columns["FACTOR"].ReadOnly = true;
            dgvArqueoRetiro.Refresh();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            decimal validacion;
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();

            qp.AddReplaceParam("pARQUEO", varqueo);
            qp.AddReplaceParam("pMONEDA", vmoneda.ToString());
            validacion = Convert.ToDecimal(GUI.CApp.bll.GetSingleValue("MontoRetiro", qp, "PDV"));

            qp.Clear();

            qp.AddReplaceParam("ARQUEO", varqueo);

            if (validacion == 0)
            {
                GUI.CApp.bll.ExecuteSql("ElimDetArq", qp, "PDV");
            }

            //qp.AddReplaceParam("ARQUEO", varqueo);
            GUI.CApp.bll.ExecuteSql("CerrarArqueo", qp, "PDV");


            Program.CloseWindow(this);
        }

        private void FrmRegsitroRetiro_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Modifiers == Keys.None)
            {
                switch (e.KeyCode)
                {
                    case Keys.F9:
                        btnGuardarArq_Click(null, null);
                        break;
                    case Keys.Escape:
                        btnSalir_Click(null, null);
                        break;
                }
            }
        }


    }
}
