#region using
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
#endregion

namespace LLNet.Tienda.MainForms
{
    public partial class frmGarantiaE: LLNet.GUI.FormBases.frmBase
    {
        public int Agregarsku = 0;
        public string Sku ;
        public string Documento = Program.FrmMainPos.Order.ToString();
        public string Linea;
        public string SkuG;
        public string EsquemaC;
        public string FechaE;
        public frmGarantiaE()
        {
            InitializeComponent();

            GUI.CApp.TraducirForm(this);
        }

        public override void Init(object[] pArgs)
        {
            #region Limpiando el dataset
            dsPDV1.TDA_V_FACTURAS.Clear();
            dsPDV1.TDA_DETALLE_PEDIDO.Clear();            
            #endregion

            #region Inicializando propiedades de la pantalla
            rowTotal.Properties.Value = null;
            rowCliente.Properties.Value = null;
            rowNit.Properties.Value = null;
            vGridControl1.FocusedRow = rowCliente;
            vGridControl1.Focus();            

            #endregion            
            base.Init(pArgs);
            this.Linea = pArgs[1].ToString();
            this.SkuG = pArgs[2].ToString();
            FindFactura(Convert.ToDecimal(pArgs[0].ToString()));            
            EsquemaC = Utils.Helpers.ObjToStr(GUI.CApp.GetParam("NDEC"));
        }

        public bool FindFactura(decimal pDocumento)
        {
            #region Asignando parametros para busqueda del documento
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();            
            qp.AddReplaceParam("DOCUMENTO", Program.FrmMainPos.Order.ToString());            
            #endregion            
            dsPDV1.TDA_V_FACTURAS.Clear();            
            Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, qp, "FacturaGe"), dsPDV1);
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("DOCUMENTO", Program.FrmMainPos.Order.ToString()+" AND MESES_GARANTIA IS NOT NULL AND SKU NOT IN (" +SkuG +")");
            Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_DETALLE_PEDIDO.TableName, qp2), dsPDV1);
            this.FechaE = Convert.ToDateTime(dsPDV1.TDA_V_FACTURAS[0].FECHA_EMISION.ToString()).ToShortDateString();
            cmdAceptar.Enabled  = (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0);
            return (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0);
        }
        public bool FindFactura(string pSerie, decimal pFactura)
        {
            #region Asignando parametros para busqueda del documento
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("SERIE", pSerie.ToString());
            qp.AddReplaceParam("NO_DOCUMENTO", pFactura.ToString());

            #endregion
            dsPDV1.TDA_V_FACTURAS.Clear();
            if (pSerie != "")
            {
                Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, qp, "Facturae"), dsPDV1);
                if (dsPDV1.TDA_V_FACTURAS.Rows.Count == 0)
                {
                    if (EsquemaC != string.Empty)
                    {
                        Utils.Helpers.Merge(GUI.CApp.bll.getConnTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, EsquemaC, qp, "Facturae"), dsPDV1);
                    }
                }
            }
            else
            {
                Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, qp, "FacturaSse"), dsPDV1);
                if (dsPDV1.TDA_V_FACTURAS.Rows.Count == 0)
                {
                    if (EsquemaC != string.Empty)
                    {
                        Utils.Helpers.Merge(GUI.CApp.bll.getConnTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, EsquemaC, qp, "FacturaSse"), dsPDV1);
                    }
                }
            }
            if (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0)
            {
                #region Obteniendo detalles del producto

                qp.Clear();
                qp.AddReplaceParam("DOCUMENTO", dsPDV1.TDA_V_FACTURAS[0].DOCUMENTO.ToString());
                this.Documento = dsPDV1.TDA_V_FACTURAS[0].DOCUMENTO.ToString();
                this.FechaE = dsPDV1.TDA_V_FACTURAS[0].FECHA_EMISION.ToShortDateString ();

                dsPDV1.TDA_DETALLE_PEDIDO.Clear();
                Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_DETALLE_PEDIDO.TableName, qp), dsPDV1);
                if (dsPDV1.TDA_DETALLE_PEDIDO.Rows.Count > 0)
                {
                    this.Linea = dsPDV1.TDA_DETALLE_PEDIDO[0].LINEA.ToString();
                }
                cmdAceptar.Enabled = (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0);
                #endregion
            }
            else
            {
                if (pSerie != "")
                {
                    if (EsquemaC != string.Empty)
                    {
                        Utils.Helpers.Merge(GUI.CApp.bll.getConnTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, EsquemaC, qp, "Facturae"), dsPDV1);
                    }
                }
                else
                {
                    if (EsquemaC != string.Empty)
                    {
                        Utils.Helpers.Merge(GUI.CApp.bll.getConnTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_V_FACTURAS.TableName, EsquemaC, qp, "FacturaSse"), dsPDV1);
                    }
                }
                if (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0)
                {
                    #region Obteniendo detalles del producto

                    qp.Clear();
                    qp.AddReplaceParam("DOCUMENTO", dsPDV1.TDA_V_FACTURAS[0].DOCUMENTO.ToString());
                    this.Documento = dsPDV1.TDA_V_FACTURAS[0].DOCUMENTO.ToString();
                    this.FechaE = dsPDV1.TDA_V_FACTURAS[0].FECHA_EMISION.ToShortDateString();

                    dsPDV1.TDA_DETALLE_PEDIDO.Clear();
                    if (EsquemaC != string.Empty)
                    {
                        Utils.Helpers.Merge(GUI.CApp.bll.getConnTypedDataSet(dsPDV1.GetType(), dsPDV1.TDA_DETALLE_PEDIDO.TableName, EsquemaC, qp), dsPDV1);
                    }
                    if (dsPDV1.TDA_DETALLE_PEDIDO.Rows.Count > 0)
                    {
                        this.Linea = dsPDV1.TDA_DETALLE_PEDIDO[0].LINEA.ToString();
                    }
                    cmdAceptar.Enabled  = (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0);
                    #endregion
                }
            }
            return (dsPDV1.TDA_V_FACTURAS.Rows.Count > 0);
        }

        private void txtFactura_KeyDown(object sender, KeyEventArgs e)
        {
            
            if (e.KeyCode == Keys.Enter)
            
            {
                dsPDV1.TDA_DETALLE_PEDIDO.Clear();
                string Serie = Utils.Helpers.ObjToStr(mrowFactura.PropertiesCollection[0].Value);
                decimal Factura = Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).Text);
                if (FindFactura(Serie, Factura))
                {
                    rowCliente.Properties.Value = dsPDV1.TDA_V_FACTURAS[0].NOMBRE; ;
                    rowNit.Properties.Value = dsPDV1.TDA_V_FACTURAS[0].NIT;
                    rowTotal.Properties.Value = dsPDV1.TDA_V_FACTURAS[0].TOTAL;
                    mrowFactura.PropertiesCollection[1].Value = dsPDV1.TDA_V_FACTURAS[0].NO_DOCUMENTO;
                    mrowFactura.PropertiesCollection[0].Value = dsPDV1.TDA_V_FACTURAS[0].SERIE ;                    
                }
                else
                    GUI.CApp.ShowMessage("Factura no encontrada", "Consola de ReImpresiones", true);
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }

        private void cmdAceptar_Click(object sender, EventArgs e)
        {
            if (this.gridView1.RowCount > 0)
            {
                Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                qp.AddReplaceParam("DOCUMENTO", this.Documento);
                qp.AddReplaceParam("PEDIDO", Program.FrmMainPos.Order.ToString());
                qp.AddReplaceParam("LINEA", this.gridView1.GetFocusedRowCellValue(this.colLINEA).ToString());
                qp.AddReplaceParam("LINEAP", this.Linea);
                qp.AddReplaceParam("SKUG", this.SkuG);
                qp.AddReplaceParam("SKU", this.gridView1.GetFocusedRowCellValue(this.colSKU).ToString());
                qp.AddReplaceParam("FECHA_EMISION", FechaE);

                GUI.CApp.bll.ExecuteSql("Generar_GarantiasE", qp, "PDV");
            }
            DialogResult = DialogResult.OK;
        }

        private void frmGarantiaE_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            { 
                case Keys.F12:
                    cmdAceptar_Click(null, null);
                    break;
                case Keys.Escape:
                    btnCancelar.PerformClick();
                    break;
            }
        }
        

        

    }
}